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

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
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
â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:
mo_hinh_truy_van_du_lieu_tuy_chon_dua_tren_ngu_nghia_cua_cau.pdf

