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