Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn

TÓM TẮT— Hiện nay, cùng với sự mở rộng của World Wide Web là sự tăng trưởng nhanh chóng của dữ liệu. Nguồn dữ liệu khổng lồ hiện nay vẫn được lưu trữ trong các mô hình cơ sở dữ liệu khác nhau, phổ biến là các mô hình: cơ sở dữ liệu quan hệ (relational database), cơ sở dữ liệu ngữ nghĩa, Sự phong phú của các loại cơ sở dữ liệu gây khó khăn cho người dùng có thể theo kịp với những phát triển của ngôn ngữ truy vấn trong việc truy cập vào các kho dữ liệu mà họ cần tra cứu. Bài báo này trình bày hướng tiếp cận cho phép người sử dụng có thể lựa chọn và truy vấn được dữ liệu mong muốn từ hai loại cơ sở dữ liệu phổ biến hiện nay là cơ sở dữ liệu ngữ nghĩa (RDF database), cơ sở dữ liệu quan hệ (relational database). Dựa trên ngữ nghĩa của câu truy vấn bằng ngôn ngữ tự nhiên và loại cơ sở dữ liệu lựa chọn, hệ thống sẽ đề nghị ra một câu truy vấn tương ứng cho phép người dùng kiểm tra trước khi đồng ý thực thi

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 1

Trang 1

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 2

Trang 2

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 3

Trang 3

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 4

Trang 4

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 5

Trang 5

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 6

Trang 6

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 7

Trang 7

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 8

Trang 8

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 9

Trang 9

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 12 trang xuanhieu 9320
Bạn đang xem 10 trang mẫu của tài liệu "Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn

Mô hình truy vấn dữ liệu tùy chọn dựa trên ngữ nghĩa của câu truy vấn
âu truy vấn SPARQL. Ví dụ: 
 WHERE prename = “Nguyễn” 
 Được chuyển đổi thành 
 FILTER (?prename = “Nguyễn”) 
 WHERE name = prename 
 Được chuyển đổi thành 
 FILTER (?name = ?prename) 
 Toán tử AND và OR được sử dụng để lọc các bản ghi dựa trên nhiều điều kiện, sẽ được thay thế bằng “&&” và 
“| |” trong SPARQL. 
 WHERE name = „Tin‟ AND prename = „Nguyễn Văn‟ OR homeaddress = „Phổ Văn - Đức Phổ - Quảng Ngãi‟ 
 Được chuyển đổi thành 
 FILTER (?name = "Tin" && ?prename = "Nguyễn Văn" || ?homeaddress = "Phổ Văn - Đức Phổ - Quảng 
Ngãi") 
 Nếu câu truy vấn có sử dụng toán tử LIKE, cần tạo biểu thức regex: 
 WHERE name LIKE „t‟ 
346 MÔ HÌNH TRUY VẤN DỮ LIỆU TÙY CHỌN DỰA TRÊN NGỮ NGHĨA CỦA CÂU TRUY VẤN 
 Được chuyển đổi thành 
 FILTER regex(?name, “t”) 
 Bước 5: Chuyển đổi các câu lệnh GROUP BY, ORDER BY, LIMIT 
 Bước 6: Tích hợp các kết quả từ bước 2 đến bước 5 để tạo thành câu truy vấn SPARQL hoàn chỉnh. 
 III. CÀI ĐẶT VÀ THỬ NGHIỆM 
 Trong cài đặt thử nghiệm mô hình đề xuất, chúng tôi sử dụng các công cụ Framework Apache OpenNLP dùng 
để hỗ trợ trong việc xử lý ngôn ngữ tự nhiên và General SQL Parser giúp phân tích cú pháp câu truy vấn SQL. 
A. Giới thiệu về framework Apache OpenNLP và General SQL Parser 
1. Framework Apache OpenNLP 
 OpenNLP được bắt đầu phát triển vào năm 2000 bởi Jason Baldridge và Gann Bierner. Các thư viện Apache 
OpenNLP14 là một thư viện Java phục vụ cho việc xử lý văn bản NNTN. Nó bao gồm nhiều thành phần hỗ trợ các 
nhiệm vụ NLP phổ biến nhất, ví dụ như bộ tách từ, phân chia câu, gán nhãn từ loại, trích xuất thực thể có tên, phân tích 
cú pháp, phân giải đồng tham chiếu. Những nhiệm vụ này rất cần thiết để xây dựng các dịch vụ xử lý văn bản nâng cao 
hơn. OpenNLP cũng bao gồm các dữ liệu ngẫu nhiên cực đại và thuật toán Perceptron dựa trên học máy. OpenNLP hỗ 
trợ các xử lý NLP: Bộ tách từ, phân chia câu, gán nhãn từ loại, nhận dạng thực thể có tên, phân tích cú pháp, phân giải 
đồng tham chiếu. 
2. General SQL Parser 
 Gudu Software đã phát triển bộ phân tích cú pháp SQL giúp đơn giản hóa việc giải mã ngữ pháp SQL và giúp 
ứng dụng được cập nhật với phiên bản mới nhất của chương trình cơ sở dữ liệu. General SQL Parser15 là một gói phần 
mềm cho phép thêm chức năng SQL mạnh mẽ cho ứng dụng. General SQL Parser cung cấp bộ công cụ SQL tùy chỉnh 
cho nhiều cơ sở dữ liệu sử dụng rộng rãi, trong đó có cú pháp truy vấn cho các hệ cơ sở dữ liệu như SQL Server, 
Oracle, DB2, MySQL, PostgreSQL, Access. 
 General SQL Parser giải quyết được nhiều vấn đề chung và khó khăn trong phát triển SQL, bao gồm: 
 - Kiểm tra cú pháp SQL ngoại tuyến, do đó có thể xác nhận cú pháp mà không cần kết nối cơ sở dữ liệu. 
 - Các định dạng SQL với hơn 100 định dạng tùy chọn tùy biến cao. 
 - Thực hiện phân tích chuyên sâu các tập lệnh SQL, bao gồm phân tích cú pháp chi tiết câu SQL thành cấu trúc 
 nút. 
 - Cung cấp truy cập đầy đủ đến các cây cú pháp truy vấn SQL, bao gồm tìm kiếm, sửa đổi và viết lại các phân 
 đoạn SQL. 
 - Ngăn chặn các cuộc tấn công SQL Injection. 
 - Dịch SQL giữa các cơ sở dữ liệu khác nhau. 
 General SQL Parser bao gồm đầy đủ các gói thư viện có sẵn cho các môi trường phát triển như .NET, Java, 
C/C++, COM, VCL. 
B. Cài đặt mô hình đã đề xuất 
 Dựa vào mô hình hệ thống tổng quan ở phần III và phần giới thiệu các framework hỗ trợ nhiệm vụ chuyên biệt 
trong hệ thống, chúng tôi xây dựng nên một sơ đồ cài đặt giải pháp chi tiết như H n 5. Hệ thống bao gồm các module 
xử lý truy vấn bằng NNTN. Trong module này, chúng tôi sử dụng framework Apache OpenNLP hỗ trợ quá trình xử lý 
NNTN và đầu ra là danh sách các từ và từ loại của từ đó. Module thứ hai là xây dựng câu truy vấn SQL dựa vào các từ, 
từ loại của từ, từ khóa đã xác định ở module 1, từ đó phân tích ngữ nghĩa của câu truy vấn bằng NNTN để xác định các 
thành phần và sinh ra câu truy vấn SQL. Module thứ ba sử dụng framework General SQL Parser để phân tích câu truy 
vấn SQL thành cây phân tích cú pháp có định dạng, là đầu vào của module thứ tư để sinh ra câu truy vấn SPARQL. 
 14 https://opennlp.apache.org 
 15  
Nguyễn Thanh Tuấn, Hoàng Thị Thanh Hà, Nguyễn Văn Tin, Lê Thành Nhân 347 
 H n 5. Sơ đồ cài đặt mô hình chi tiết 
 Khi người dùng nhập câu vấn bằng NNTN, hệ thống sẽ xử lý câu truy vấn nhờ sự giúp đỡ của framework 
Apache OpenNLP để đưa ra danh sách các từ và từ loại của từ đó. Dùng bộ từ điển để ánh xạ xác định thành phần của 
câu truy vấn, từ đó tổng hợp các thành phần thành câu truy vấn SQL. Nếu người dùng chọn truy vấn dữ liệu RDF, hệ 
thống sẽ dùng framework General SQL Parser để phân tích câu truy vấn SQL thành dạng cây phân tích cú pháp có định 
dạng, từ đó chuyển sang câu truy vấn SPARQL. 
 Từ sơ đồ cài đặt chi tiết, tiến hành xây dựng chương trình bằng Java với các hàm thực hiện các công việc cụ thể. 
Một số hàm chính được cài đặt được giới thiệu và mô tả ngắn gọn trong Bản 5. 
 Bản 5. Mô tả một số hàm chính được cài đặt trong chương trình 
 CÁC HÀM CHÍNH ĐƯỢC CÀI ĐẶT TRONG CHƯƠNG TRÌNH 
 Hàm, đầu vào và đầu ra của àm Mô tả n ắn ọn về àm 
Generate Hàm có nhiệm vụ phân tích câu truy vấn NNTN có cấu trúc thành 
Đầu vào: Câu truy vấn NNTN có cấu trúc và loại các từ và xác định từ loại của chúng. Sau đó gọi các hàm trong 
câu truy vấn tùy chọn class GenerateSQL và GenerateSPARQL để lấy kết quả là câu 
Đầu ra: Câu truy vấn tương ứng truy vấn tương ứng. 
 Hàm có nhiệm vụ sinh ra câu truy vấn Select SQL dựa vào 
querySelect 
 phương pháp ánh xạ danh sách từ vào các từ điển đã được định 
Đầu vào: Danh sách các từ và từ loại của chúng. 
 nghĩa trước trong các file XML để xác định các thành phần của 
Đầu ra: Câu truy vấn Select SQL 
 câu truy vấn. 
queryInsert 
Đầu vào: Danh sách các từ khóa. Hàm có nhiệm vụ sinh câu truy vấn Insert SQL. 
Đầu ra: Câu truy vấn Insert SQL 
 Hàm processQuery sử dụng General SQL Parser để phân tích cú 
querySPARQL 
 pháp câu SQL thành cây cú pháp. Sau đó dựa vào số bảng trong 
Đầu vào: Câu truy vấn Select SQL 
 mệnh đề FROM SQL để gọi các hàm simpleLightSelectWhere cho 
Đầu ra: Câu truy vấn Select SPARQL 
 một bảng và complexLightSelectWhere cho nhiều bảng. 
C. Kết quả thực nghiệm hệ thống 
1. Cơ sở dữ liệu dùng cho thực nghiệm 
 CSDL được xây dựng đơn giản để kiểm tra việc chuyển đổi câu truy vấn tự nhiên có cấu trúc sang câu truy vấn 
SQL và SPARQL. Mục đích CSDL là lưu trữ thông tin của một liên hệ (contact) chứa các thông tin gồm họ tên, địa chỉ 
và số điện thoại nhà, địa chỉ và số điện thoại nơi làm việc, địa chỉ mail. 
348 MÔ HÌNH TRUY VẤN DỮ LIỆU TÙY CHỌN DỰA TRÊN NGỮ NGHĨA CỦA CÂU TRUY VẤN 
 . Cơ sở dữ liệu quan hệ 
 CSDL quan hệ được xây dựng với tên bảng là đối tượng liên hệ (contact), với các thuộc tính có khóa chính là id, 
bảng contact được biểu diễn như sau: 
 contact (id, name, prename, homeaddress, hometelephone, workaddress, worktelephone, email) 
 . Cơ sở dữ liệu ngữ nghĩa 
 CSDL ngữ nghĩa được xây dựng tương tự như của CSDL quan hệ gồm class contact, với các thuộc tính dữ liệu 
(data properties) tương tự thuộc tính được biểu diễn ở CSDL quan hệ. Một đối tượng contact sẽ được lưu trong file dữ 
liệu dưới dạng như sau: 
 01656558000 
 01234757113 
 Tin 
 Nguyễn Văn 
 1 
 Phổ Văn - Đức Phổ - Quảng Ngãi 
 Liên Chiểu - Đà Nẵng 
 vantinqng@gmail.com 
 Ngoài ra, chúng tôi xây dựng thêm bộ từ điển mô tả cho từng thuộc tính của CSDL giúp cho người dùng dễ 
dàng truy vấn dữ liệu bằng NNTN. 
 Bản 6. Từ khóa và thuộc tính tương ứng trong CSDL 
 Từ khóa Thuộc tính tương ứng trong CSDL 
 Last Name name 
 First Name prename 
 Home address homeaddress 
 Home phone number hometelephone 
 Work address workaddress 
 Work phone number worktelephone 
 Email email 
2. Xây dựng hệ thống thực nghiệm mô hình NL2SQL-SPARQL 
 Chúng tôi xây dựng hệ thống NL2SQL-SPARQL gồm các ca sử dụng như H n 6. 
 - Truy vấn CSDL bằng NNTN có cấu trúc: khi người dùng muốn truy vấn dữ liệu, người dùng nhập câu truy 
 vấn bằng NNTN và chọn mô hình CSDL. 
 - Truy vấn dữ liệu mySQL: khi người dùng muốn truy vấn CSDL mySQL. 
 - Truy vấn dữ liệu RDF: khi người dùng muốn truy vấn CSDL RDF. 
 - Cấu hình CSDL mySQL: muốn kết nối tới CSDL mySQL, người dùng cần cấu hình các thông số như: 
 hostname, username, password, database name 
 - Cấu hình CSDL RDF: cấu hình đường dẫn tới tập tin lưu trữ CSDL RDF. 
 - Tạo câu truy vấn SQL: ca sử dụng thực hiện phân tích câu truy vấn NNTN có cấu trúc để sinh câu truy vấn 
 SQL. 
 - Tạo câu truy vấn SPARQL: ca sử dụng thực hiện phân tích câu truy vấn SQL để sinh câu truy vấn SPARQL. 
 - Kết nối CSDL mySQL: thực hiện kết nối tới CSDL mySQL dựa trên các thông tin đã được cấu hình. 
 - Kết nối CSDL RDF: thực hiện kết nối tới CSDL RDF dựa trên đường dẫn đã được cấu hình. 
Nguyễn Thanh Tuấn, Hoàng Thị Thanh Hà, Nguyễn Văn Tin, Lê Thành Nhân 349 
 H n 6. Sơ đồ ca sử dụng của chương trình 
 Giao diện chính của NL2SQL-SPARQL như trong H n 7 chứa: 
 + Một nhóm nút cho phép chọn kết quả sinh ra của câu truy vấn NNTN là SQL hoặc SPARQL, khi chọn một 
trong hai nút sẽ hiện ra thông tin cấu hình CSDL tương ứng; 
 + Giao diện nhập câu truy vấn bằng NNTN, có chứa một số mẫu câu truy vấn có sẵn. Bên cạnh có một danh 
sách chứa các từ khóa gợi ý cho người dùng để nhập câu truy vấn bằng NNTN; 
 + Giao diện chứa câu kết quả câu truy vấn được sinh ra; 
 + Bảng chứa kết quả truy vấn CSDL; 
 + Các nút thực thi. 
 H n 7. Giao diện chính của hệ thống NL2SQL-SPARQL và kết quả thực nghiệm 
 H n minh họa kết quả của từng bước xử lý của hệ thống NL2SQL-SPARQL với ví dụ: 
choose "First Name", "Last Name" in "contact" with "Last Name" like "t" 
350 MÔ HÌNH TRUY VẤN DỮ LIỆU TÙY CHỌN DỰA TRÊN NGỮ NGHĨA CỦA CÂU TRUY VẤN 
 H n 8. Sơ đồ biểu diễn kết quả từng bước xử lý của hệ thống 
3. Một vài kết quả thử nghiệm 
 Để đánh giá khả năng thực thi của chương trình đã xây dựng, chúng tôi đã đưa ra một vài ví dụ để chương trình 
chuyển đổi câu truy vấn và thực hiện truy vấn lấy kết quả từ CSDL. Sau khi thực hiện những ví dụ bằng NL2SQL-
SPARQL, chúng tôi đã tổng hợp các kết quả ở Bản 7. 
 Bản 7. Minh họa kết quả truy vấn của chương trình 
 Câu truy vấn NNTN Câu truy vấn SQL Câu truy vấn SPARQL Kết quả 
list "First Name", SELECT prename, SELECT ?prename ?name 
"Last Name" in name FROM contact WHERE{ 
"contact" ?x contact:prename 
 ?prename . 
 ?x contact:name ?name . 
 } 
find "Last Name" and SELECT name, SELECT ?name ?prename 
"First Name" in prename WHERE{ 
"contact" with "Last FROM contact ?x contact:name ?name . 
Name" = "Tin" or WHERE ?x contact:prename 
"Last Name" = "Chi" name = 'Tin' OR name ?prename . 
 = 'Chi' FILTER(?name="Tin" || 
 ?name="Chi") 
 } 
choose "First Name", SELECT prename, SELECT ?prename ?name 
"Last Name" in name WHERE{ 
"contact" with "Last FROM contact ?x contact:prename 
Name" like "t" WHERE name ?prename . 
 LIKE '%t%' ?x contact:name ?name . 
 FILTER( 
 regex(?name,"t","i") ) 
 } 
Nguyễn Thanh Tuấn, Hoàng Thị Thanh Hà, Nguyễn Văn Tin, Lê Thành Nhân 351 
 IV. KẾT LUẬN 
 Như vậy, bài báo này đã đề xuất mô hình chuyển đổi câu truy vấn CSDL bằng NNTN thành câu truy vấn CSDL 
quan hệ hoặc câu truy vấn CSDL ngữ nghĩa. Mô hình này sử dụng các bộ công cụ Apache OpenNLP để hỗ trợ trong 
việc thực hiện các bước phân tích NNTN. Sau đó, chúng tôi sử dụng kỹ thuật từ điển để tìm ra các tự tương ứng để xây 
dựng câu truy vấn SQL cho CSDL quan hệ. Trong trường hợp người dùng muốn chuyển đổi câu truy vấn NNTN thành 
câu truy vấn CSDL ngữ nghĩa SPARQL, chúng tôi sử dụng bộ tích hợp General SQL Parser để phân tích câu truy vấn 
SQL, sau đó xây dựng câu truy vấn cho CSDL ngữ nghĩa. Mô hình này đã được thực nghiệm bằng hệ thống NL2SQL-
SPARQL . Bước đầu NL2SQL-SPARQL đã thử nghiệm thành công việc sinh câu truy vấn chọn (select) sang mô hình 
CSDL quan hệ và sang CSDL ngữ nghĩa. Tuy nhiên hiệu quả của hệ thống phụ thuộc rất nhiều vào từ vựng trong từ 
điển, đây là khó khăn lớn nhất và là vấn đề cơ bản của bất kỳ hệ thống xử lý ngôn ngữ tự nhiên nào. Việc mở rộng từ 
điển và phân tích sâu hơn ngữ nghĩa của câu truy vấn bằng NNTN sẽ là hướng nghiên cứu tiếp theo của bài báo. Ngoài 
ra, hệ thống chỉ mới thử nghiệm ở câu lệnh select. Hướng sắp tới, chúng tôi sẽ mở rộng từ điển và áp dụng NL2SQL-
SPARQL cho các loại câu truy vấn còn lại. Cuối cùng, việc mở rộng mô hình để hỗ trợ thêm nhiều loại mô hình CSDL 
khác ngoài CSDL quan hệ và CSDL ngữ nghĩa cũng là một trong những hướng phát triển khác của chúng tôi. 
 TÀI LIỆU THAM KHẢO 
[1] I. Androutsopoulos, G. D. Ritchie, and P. Thanisch, “Natural Language Interfaces to Databases - An Introduction,” Journal of 
 Natural Language Engineering, no. 709, p. 50, 1995. 
[2] R. Alexander, P. Rukshan, and S. Mahesan, “Natural Language Web Interface for Database (NLWIDB),” no. July, pp. 6–7, 
 2013. 
[3] D. T. Jayakumar, Naveenkumar, Raj, SDjoshi, “A Survey of Natural Language Query Builder Interface to Database,” 
 International Journal of Advanced Research in Computer Science and Software Engineering, vol. 2, no. 9, pp. 62 – 70, 2012. 
[4] N. K. Anh and P. T. T. Hoài, “Truy vấn ngôn ngữ tự nhiên không hoàn chỉnh đối với các cơ sở dữ liệu quan hệ,” 2006, pp. 
 117–122. 
[5] C. Unger and P. Cimiano, “Pythia: Compositional meaning construction for ontology-based question answering on the semantic 
 web,” in Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in 
 Bioinformatics), 2011, vol. 6716 LNCS, pp. 153–160. 
[6] P. Toge, P. Gargote, and P. S. Bajpai, “Natural Language to Relational Query by Using Parsing Compiler,” International 
 Journal of Computer Science and Mobile Computing, vol. 4, no. 3, pp. 485–494, 2015. 
[7] S. Kaur and R. S. Bali, “SQL generation and execution from natural language,” International Journal of Computing & Business 
 Research, 2012. 
[8] S. Ramanujam, A. Gupta, L. Khan, B. Thuraisingham, and S. Seida, “R2D: A framework for the relational transformation of 
 RDF data,” International Journal of Semantic Computing, vol. 3, no. 4, 2009. 
 MODEL FOR QUERY OFTIONAL DATA BASED ON THE SEMANTICS 
 OF THE QUERY 
 Nguyen Thanh Tuan, Hoang Thi Thanh Ha, Nguyen Van Tin, Le Thanh Nhan 
ABSTRACT— Currently, along with the expansion of the World Wide Web is the rapid growth of data. Huge data source is still 
stored in the various database models: relational database, RDF database, ... The abundance of all kinds of database makes it 
difficult for users to keep up with the development of a query language for accessing databases in which they want to search. This 
paper presents the approach allows the user can select and query the desired data from two types of popular database are the RDF 
database and the relational database. Based on the semantics of the query in natural language and selected database type, the 
system will suggest a corresponding query allows users to check before agreeing to execute. 

File đính kèm:

  • pdfmo_hinh_truy_van_du_lieu_tuy_chon_dua_tren_ngu_nghia_cua_cau.pdf