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.
Kỷ yếu Hội nghị Khoa học Quốc gia lần thứ IX “Nghiên cứu ứng dụng Công nghệ thơng tin (FAIR'9)”; Cần Thơ, ngày 4-5/8/2016 DOI: 10.15625/vap.2016.00042 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 Nguyễn Thanh Tuấn1, Hoàng Thị Thanh Hà2, Nguyễn Văn Tin3, Lê Thành Nhân4 Trường Đại học Sư phạm, Đại học Đà Nẵng Trường Đại học Kinh tế, Đại học Đà Nẵng Đại học Đà Nẵng Đại học Nice Sophia-Antipolis nttuan@ued.udn.vn, ha.htt@due.edu.vn, vantinqng@gmail.com, Nhan.LE-THANH@unice.fr TÓM TẮT— Hiện nay, với mở rộng World Wide Web tăng trưởng nhanh chóng liệu Nguồn liệu khổng lồ lưu trữ mơ hình sở liệu khác nhau, phổ biến mô hình: sở liệu quan hệ (relational database), sở liệu ngữ nghĩa,… Sự phong phú loại sở liệu gây khó khăn cho người dùng theo kịp với phát triển ngôn ngữ truy vấn việc truy cập vào kho liệu mà họ cần tra cứu Bài báo trình bày hướng tiếp cận cho phép người sử dụng lựa chọn truy vấn liệu mong muốn từ hai loại sở liệu phổ biến sở liệu ngữ nghĩa (RDF database), sở liệu quan hệ (relational database) Dựa ngữ nghĩa câu truy vấn ngôn ngữ tự nhiên loại sở liệu lựa chọn, hệ thống đề nghị câu truy vấn tương ứng cho phép người dùng kiểm tra trước đồng ý thực thi Từ khóa— RDF, SQL, SPARQL, chuyển đổi câu truy vấn sở liệu I GIỚI THIỆU Hiện nay, World Wide Web chứa khối lượng liệu khổng lồ Với hệ Web 2.0 tại, nhu cầu tốc độ xử lý đáp ứng yêu cầu người dùng, đồng thời việc khai phá nội dung Web gặp nhiều khó khăn Vì vậy, hệ Web 3.0 (Web ngữ nghĩa) đời nhằm giải vấn đề Web ngữ nghĩa bước tiến lớn so với kỹ thuật Web khả làm việc với thơng tin thay đơn lưu trữ, với xử lý ngôn ngữ tự nhiên, trí thơng minh nhân tạo,… giúp cho web hiểu nghĩ Song song với việc thay đổi cấu trúc mô tả liệu cho Web ngữ nghĩa, nguồn liệu khổng lồ lưu trữ mơ hình sở liệu (CSDL) khác nhau, phổ biến mơ hình: CSDL quan hệ (relational database), CSDL hướng tài liệu (document-oriented database), CSDL ngữ nghĩa (RDF Database)… Sự phong phú loại CSDL gây khó khăn cho người dùng theo kịp với phát triển ngôn ngữ truy vấn việc truy vập vào kho liệu mà họ cần tra cứu Để giúp người dùng ngơn ngữ tự nhiên (NNTN) truy vấn cách dễ dàng với mơ hình CSDL phổ biến hệ sở liệu CSDL ngữ nghĩa, có nhiều nghiên cứu xây dựng hệ thống hỗ trợ việc chuyển đổi câu truy vấn tùy thuộc vào nhu cầu người dùng vào mơ hình CSDL Một số mơ hình phát triển để giúp chuyển đổi câu truy vấn NNTN sang câu truy vấn SQL (ngôn ngữ truy vấn phổ biến CSDL quan hệ) SPARQL2 (ngôn ngữ truy vấn cho CSDL ngữ nghĩa) cơng bố nhiều cơng trình ngồi nước Bài báo trình bày hướng tiếp cận cho phép người sử dụng lựa chọn truy vấn liệu mong muốn từ hai loại CSDL phổ biến CSDL ngữ nghĩa (RDF database), CSDL quan hệ (relational database), dựa ngữ nghĩa câu truy vấn NNTN loại CSDL lựa chọn, hệ thống đề nghị câu truy vấn tương ứng cho phép người dùng kiểm tra trước đồng ý thực thi II TRUY VẤN CƠ SỞ DỮ LIỆU BẰNG NGÔN NGỮ TỰ NHIÊN A Tổng quan mơ hình chuyển đổi loại sở liệu Một lĩnh vực áp dụng hiệu kết Xử lý ngơn ngữ tự nhiên (Natural Language Processing - NLP) hệ truy vấn CSDL, CSDL thường phủ miền tri thức đủ nhỏ nên số tình huống, nhập nhằng ngơn ngữ tự nhiên giải Các hệ thống ngơn ngữ tự nhiên dùng cho truy vấn CSDL gọi chung Giao diện ngôn ngữ tự nhiên CSDL (Natural Language Interface to Database) Giao diện ngôn ngữ tự nhiên xuất từ năm 60, 70 kỷ trước [1] Một số hệ thống tiêu biểu phát triển là: - LUNAR giao diện NNTN cho sở liệu mang phân tích hóa học mẫu đá mặt trăng mang từ Apollo-11 William A Woods3 https://msdn.microsoft.com/en-gb/library/windows/desktop/ms714670(v=vs.85).aspx https://www.w3.org/TR/rdf-sparql-query/ http://parsecraft.com/ Nguyễn Thanh Tuấn, Hoàng Thị Thanh Hà, Nguyễn Văn Tin, Lê Thành Nhân 341 - LIFER / LADDER hệ thống xử lý ngơn ngữ CSDL Nó thiết kế giao diện NNTN đến sở liệu thông tin tàu Hải quân Hoa Kỳ Hệ thống này, sử dụng ngữ nghĩa ngữ pháp để phân tích câu hỏi truy vấn phân phối sở liệu [2] Ngồi cịn nhiều hệ thống khác nghiên cứu phát triển, thơng tin hệ thống tìm thấy [3] Cũng có số nghiên cứu việc truy vấn ngôn ngữ tiếng Việt [4], nhiên kết truy vấn CSDL quan hệ chưa thấy nhiều ứng dụng rộng rãi Việc sử dụng giao diện tìm kiếm ngơn ngữ tự nhiên hệ thống điều kiển giọng nói, trợ lý ảo hay ứng dụng nhúng tìm thấy tảng công ty công nghệ lớn Wolfram Alpha Wolfram, Siri5 Apple, Alexa6 Amazon… Các ứng dụng giao diện tìm kiếm NNTN có phần quan trọng tảng truy vấn sở liệu Các tảng tiêu biểu mà trình bày là: - Quepy7 tảng viết python sử dụng để chuyển đổi truy vấn NNTN sang ngôn ngữ truy vấn sở liệu Nó dễ dàng tùy chỉnh đến loại câu hỏi khác NNTN truy vấn sở liệu Vì vậy, ta xây dựng hệ thống sử dụng NNTN để truy xuất sở liệu Hiện Quepy cung cấp hỗ trợ cho ngôn ngữ SPARQL MQL8 - Pythia9 hệ thống trả lời tự động dựa ontology [5] Nó cấu trúc hóa thành phần có nghĩa cách sử dụng từ vựng phù hợp với từ vựng ontology cho Bằng cách làm dựa phân tích sâu ngơn ngữ, cho phép xây dựng truy vấn hình thức từ câu hỏi phức tạp NNTN - KUERI10 tảng cho phép tích hợp vào ứng dụng khả truy cập tìm kiếm liệu NNTN Nó cho phép tạo truy vấn SQL JSON nhiều dạng CSDL khác - EasyQuery11 thư viện cho tảng Net cho phép xây dựng giao diện truy vấn NNTN, thư viện làm làm việc với CSDL quan hệ Xét tiêu chí như: vấn đề cần giải quyết, loại CSDL truy vấn ngôn ngữ truy vấn sinh ra, Bản so sánh tảng Bản So sánh tảng tiêu biểu truy vấn CSDL NNTN Các tản Vấn đề iải Loại CSDL truy vấn N ôn n ữ truy vấn Chuyển đổi truy vấn NNTN sang Ngữ nghĩa SPARQL, MQL Quepy ngôn ngữ truy vấn CSDL Xây dựng hệ thống trả lời tự động Ngữ nghĩa SPARQL Pythia Nền tảng tích hợp khả truy cập 12 Quan hệ, NoSQL SQL, JSON13 KUERI tìm kiếm NNTN Thư viện xây dựng giao diện truy vấn Quan hệ SQL EasyQuery NNTN Như thấy, tảng phát triển hướng đến loại CSDL quan hệ hay ngữ nghĩa, trừ KUERI sử dụng với CSDL noSQL, chưa thấy hệ thống cho phép truy vấn sở liệu ngữ nghĩa sở liệu quan hệ Trong hầu hết hệ thống chuyển đổi câu truy vấn NNTN sang câu truy vấn tương ứng ngôn ngữ truy vấn, giải pháp xử lý giống nhau, phải trải qua nhiều bước: - Gắn thẻ từ loại Kiểm tra ngữ pháp Sinh câu truy vấn Thu thập liệu https://www.wolframalpha.com/ http://www.apple.com/ios/siri/ https://developer.amazon.com/public/solutions/alexa http://quepy.machinalis.com/ http://wiki.freebase.com/wiki/MQL https://github.com/cunger/pythia 10 http://simpleql.com/ 11 http://devtools.korzh.com/easyquery/ 12 https://www.mongodb.com/nosql-explained 13 http://www.json.org/ 342 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 Kiến trúc hệ thống NLDBi [6] Trong kiến trúc hệ thống Natural language database interface (NLDBi) phát triển H n 1, mơ tả cách bố trí trình bao gồm việc chuyển đổi truy vấn NNTN thành câu truy vấn cú pháp SQL để thực hệ quản trị CSDL quan hệ Toàn trình liên quan đến việc gắn thẻ cho câu đầu vào, áp dụng ngữ pháp đại diện ngữ nghĩa để tạo phân tích cú pháp, phân tích phân tích cú pháp sử dụng ngữ pháp dịch để tạo câu truy vấn SQL tương ứng H n Cấu trúc hệ thống nghiên cứu [7] Trong nghiên cứu [7] tác giả đề xuất hệ thống sinh thực thi SQL từ NNTN có cấu trúc H n 2, gồm bước gần giống với hệ thống NLDBi: - Phân tích hình thái học: từ cá thể phân tích thành thành phần thẻ - Phân tích cú pháp: trình tự tuyến tính từ chuyển thành cấu trúc miêu tả liên quan từ - Phân tích ngữ nghĩa: cấu trúc tạo phân tích cú pháp gán nghĩa - Câu truy vấn ánh xạ từ kết bước để tạo câu truy vấn SQL Hiện nay, nghiên cứu biến đổi SQL sang SPARQL nghèo nàn, chưa hỗ trợ miễn phí cho người dùng Trong [8], tác giả xây dựng tảng gọi tên R2D, cung cấp giao diện quan hệ sang lưu trữ liệu hình thức ba RDF Trình tự triển khai thủ tục dịch SQL sang SPARQL tảng R2D minh họa H n Nguyễn Thanh Tuấn, Hoàng Thị Thanh Hà, Nguyễn Văn Tin, Lê Thành Nhân 343 H n Trình tự triển khai thủ tục dịch SQL sang SPARQL R2D [8] Thuật tốn phân tích cú pháp file ánh xạ tạo lược đồ quan hệ thông qua tiện ích cài đặt sẵn, sau phân tích câu truy vấn SQL chuyển đổi SQL sang SPARQL Như vậy, mơ hình [1] [2] có chung mục đích chuyển đổi từ câu truy vấn NNTN sang câu truy vấn mô hình CSDL phổ biến CSDL quan hệ, CSDL ngữ nghĩa Các mơ hình chuyển đổi tiến hành xử lý phân tích cú pháp NNTN, sau phân tích ngữ nghĩa chuyển đổi câu truy vấn CSDL quan hệ SQL Còn mơ hình [3] tập trung vào việc chuyển đổi từ câu truy vấn SQL thành câu truy vấn SPARQL dựa vào đồ (Map) Có thể thấy chưa có hệ thống hay tảng cho phép chuyển đổi câu truy vấn NNTN sang truy vấn CSDL quan hệ CSDL ngữ nghĩa Phần tiếp theo, báo đề xuất mơ hình chuyển đổi câu truy vấn từ NNTN sang câu truy vấn SQL câu truy vấn SPASQL B Mơ hình chuyển đổi câu truy vấn NNTN sang CSDL quan hệ CSDL ngữ nghĩa Dựa vào tìm hiểu mơ tả phần trước, phát biểu toán đặt nghiên cứu công bố, thấy mơ hình hệ thống cần phải có bước sau: - Phân tích câu truy vấn NNTN có cấu trúc: phân tích câu truy vấn NNTN mà người dùng nhập vào để xác định từ khóa, từ loại từ Chuyển đổi thành câu truy vấn SQL: từ phân tích bước dựa vào kho từ điển, tiến hành phân tích ngữ nghĩa để xác định thành phần câu truy vấn Từ tạo thành câu truy vấn SQL Phân tích câu truy vấn SQL Chuyển đổi thành câu truy vấn SPARQL Kết nối với sở liệu tùy chọn thực câu truy vấn, trả kết cho người dùng Vì vậy, chúng tơi xây dựng mơ hình hệ thống tổng quan H n 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 344 H n Mơ hình hệ thống Mơ hình hệ thống tổng quan kế thừa bước hai quy trình hệ thống xây dựng trước đó: - - Quy trình chuyển đổi câu truy vấn NNTN có cấu trúc sang câu truy vấn SQL: phân tích câu, cú pháp, phân tích ngữ nghĩa xác định loại câu truy vấn, thành phần câu truy vấn đó, từ tạo thành câu truy vấn SQL Quy trình từ câu truy vấn SQL sang câu truy vấn SPARQL: phân tích câu truy vấn SQL, ánh xạ sang câu truy vấn SPARQL Đồng thời tích hợp hai quy trình vào mơ hình để giải mục đích truy vấn CSDL tùy chọn dựa ngữ nghĩa câu truy vấn C Chuyển đổi truy vấn NNTN sang câu truy vấn SQL câu truy vấn SPARQL Cấu trúc câu truy vấn NNTN kỹ thuật xử lý Câu truy vấn câu tự nhiên bình thường có chứa từ khóa chứa ngoặc kép “” Các từ khóa mơ tả NNTN cho: tên bảng, tên thuộc tính, giá trị thuộc tính CSDL Ví dụ: choose "Last Name" in "Contact" with "Last Name" like "t" Các bước xử lý câu truy vấn NNTN có cấu trúc: - Tách từ từ khóa câu truy vấn NNTN có cấu trúc: dựa vào phương pháp tách từ NLP từ khóa chứa dấu ngoặc kép - Xác định từ loại từ: dựa vào gán nhãn từ loại NLP Chuyển đổi sang câu truy vấn SQL Quá trình chuyển đổi câu truy vấn NNTN sang câu truy vấn SQL dựa vào việc phân tích ngữ nghĩa mức độ ngữ nghĩa từ vựng, biểu ý nghĩa từ thành phần Bản Từ khóa kết tương ứng xác định loại câu truy vấn Từ khóa “delete”, “erase”, “cancel”, “obliterate”, “drop”, “destroy”, “demolish” “select”, “choose”, “find”, “want”, “opt”, “determine”, “prefer”, “what”, ”list”, “display” “insert”, “add”, “append”, “enter”, “include”, “put”, “initialize”,”fill”, “introduce” “update”, “amend”, “modernize”, “refresh”, “refurbish”, “rejuvenate”, “renew”, “renovate”, “restore”, “revise” Từ khóa tương ứng SQL DELETE SELECT INSERT UPDATE Nguyễn Thanh Tuấn, Hoàng Thị Thanh Hà, Nguyễn Văn Tin, Lê Thành Nhân 345 Bước 1: Xác định câu truy vấn NNTN thuộc câu truy vấn loại nào: SELECT, DELETE, UPDATE, INSERT Việc xác định nhờ vào việc gắn thẻ từ loại cho từ truy vấn từ điển Bước 2: Xác định thành phần câu truy vấn NNTN có cấu trúc tương ứng với cấu trúc câu truy vấn SQL Câu truy vấn SELECT Xác định thành phần câu SELECT Bản Từ khóa kết tương ứng xác định thành phần câu SELECT Từ khóa “select”, “choose”, “find”, “want”, “opt”, “determine”, “prefer”, “what”, ”list”, “display” “from”, “of”, “in”, “source” “filter”, “for”, “during”, “with”, “where” Từ khóa tương ứng SQL Select From Where Xác định toán tử so sánh mệnh đề WHERE Bản Từ khóa kết tương ứng xác định toán tử so sánh Từ khóa “equal to”, “is”, “=” “difference”, “” “less than”, “” “less than or equal to”, “” “and” “or” “like”, “contain”, “include” Giá trị tương ứng SQL = < > = AND OR LIKE Bước 3: Tổng hợp thành phần xác định câu truy vấn sinh câu truy vấn SQL hoàn chỉnh 3.Chuyển đổi sang câu truy vấn SPARQL Bước 1: Câu truy vấn SQL phân tích để xác định bảng, trường liệu, mệnh đề WHERE GROUP BY có Bước 2: Xác định tiền tố PREFIXE SPARQL dựa vào bảng xác định bước Bước 3: Mệnh đề SELECT SPARQL tạo cách thêm biến cho trường liệu (bao gồm trường tập hợp trường mệnh đề WHERE SQL) danh sách SELECT SQL Bước 4: Mệnh đề WHERE SPARQL tạo cách “biến” định dạng “?biến”, chúng có biệt danh riêng định dạng kiểu “?biệt danh_biến” câ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 OR sử dụng để lọc ghi dựa nhiều điều kiện, thay “&&” “| |” 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‟ 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 346 Được chuyển đổi thành FILTER regex(?name, “t”) Bước 5: Chuyển đổi câu lệnh GROUP BY, ORDER BY, LIMIT Bước 6: Tích hợp kết từ bước đến bước để 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ông cụ Framework Apache OpenNLP dùng để hỗ trợ việc xử lý ngôn ngữ tự nhiên General SQL Parser giúp phân tích cú pháp câu truy vấn SQL A Giới thiệu framework Apache OpenNLP General SQL Parser Framework Apache OpenNLP OpenNLP bắt đầu phát triển vào năm 2000 Jason Baldridge Gann Bierner Các thư viện Apache OpenNLP14 thư viện Java phục vụ cho việc xử lý văn NNTN Nó bao gồm nhiều thành phần hỗ trợ nhiệm vụ NLP phổ biến nhất, ví dụ 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ụ cần thiết để xây dựng dịch vụ xử lý văn nâng cao OpenNLP bao gồm liệu ngẫu nhiên cực đại thuật toán Perceptron dựa học máy OpenNLP hỗ trợ 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 General SQL Parser Gudu Software phát triển phân tích cú pháp SQL giúp đơn giản hóa việc giải mã ngữ pháp SQL giúp ứng dụng cập nhật với phiên chương trình sở liệu General SQL Parser 15 gói phần mềm cho phép thêm chức SQL mạnh mẽ cho ứng dụng General SQL Parser cung cấp công cụ SQL tùy chỉnh cho nhiều sở liệu sử dụng rộng rãi, có cú pháp truy vấn cho hệ sở liệu SQL Server, Oracle, DB2, MySQL, PostgreSQL, Access General SQL Parser giải nhiều vấn đề chung khó khăn phát triển SQL, bao gồm: - Kiểm tra cú pháp SQL ngoại tuyến, xác nhận cú pháp mà không cần kết nối sở liệu - Các định dạng SQL với 100 định dạng tùy chọn tùy biến cao - Thực phân tích chuyên sâu 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ú pháp truy vấn SQL, bao gồm tìm kiếm, sửa đổi viết lại phân đoạn SQL - Ngăn chặn công SQL Injection - Dịch SQL sở liệu khác General SQL Parser bao gồm đầy đủ gói thư viện có sẵn cho mơi trường phát triển 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 phần giới thiệu framework hỗ trợ nhiệm vụ chuyên biệt hệ thống, xây dựng nên sơ đồ cài đặt giải pháp chi tiết H n Hệ thống bao gồm module xử lý truy vấn NNTN Trong module này, sử dụng framework Apache OpenNLP hỗ trợ trình xử lý NNTN đầu danh sách từ từ loại từ Module thứ hai xây dựng câu truy vấn SQL dựa vào từ, từ loại từ, từ khóa xác định module 1, từ phân tích ngữ nghĩa câu truy vấn NNTN để xác định thành phần sinh 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 phân tích cú pháp có định dạng, đầu vào module thứ tư để sinh câu truy vấn SPARQL 14 15 https://opennlp.apache.org http://www.sqlparser.com/ Nguyễn Thanh Tuấn, Hoàng Thị Thanh Hà, Nguyễn Văn Tin, Lê Thành Nhân 347 H n Sơ đồ cài đặt mơ hình chi tiết Khi người dùng nhập câu vấn NNTN, hệ thống xử lý câu truy vấn nhờ giúp đỡ framework Apache OpenNLP để đưa danh sách từ từ loại từ Dùng từ điển để ánh xạ xác định thành phần câu truy vấn, từ tổng hợp thành phần thành câu truy vấn SQL Nếu người dùng chọn truy vấn liệu RDF, hệ thống dùng framework General SQL Parser để phân tích câu truy vấn SQL thành dạng 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 Java với hàm thực công việc cụ thể Một số hàm cài đặt giới thiệu mô tả ngắn gọn Bản Bản Mơ tả số hàm cài đặt chương trình CÁC HÀM CHÍNH ĐƯỢC CÀI ĐẶT TRONG CHƯƠNG TRÌNH Hàm, đầu vào đầu àm Generate Đầu vào: Câu truy vấn NNTN có cấu trúc loại câu truy vấn tùy chọn Đầu ra: Câu truy vấn tương ứng querySelect Đầu vào: Danh sách từ từ loại chúng Đầu ra: Câu truy vấn Select SQL Mô tả n ắn ọn àm Hàm có nhiệm vụ phân tích câu truy vấn NNTN có cấu trúc thành từ xác định từ loại chúng Sau gọi hàm class GenerateSQL GenerateSPARQL để lấy kết câu truy vấn tương ứng Hàm có nhiệm vụ sinh câu truy vấn Select SQL dựa vào phương pháp ánh xạ danh sách từ vào từ điển định nghĩa trước file XML để xác định thành phần câu truy vấn queryInsert Đầu vào: Danh sách từ khóa Đầu ra: Câu truy vấn Insert SQL Hàm có nhiệm vụ sinh câu truy vấn Insert SQL querySPARQL Đầu vào: Câu truy vấn Select SQL Đầu ra: Câu truy vấn Select SPARQL Hàm processQuery sử dụng General SQL Parser để phân tích cú pháp câu SQL thành cú pháp Sau dựa vào số bảng mệnh đề FROM SQL để gọi hàm simpleLightSelectWhere cho bảng complexLightSelectWhere cho nhiều bảng C Kết thực nghiệm hệ thống Cơ sở liệu dùng cho thực nghiệm CSDL 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 SPARQL Mục đích CSDL lưu trữ thơng tin liên hệ (contact) chứa thông tin gồm họ tên, địa số điện thoại nhà, địa số điện thoại nơi làm việc, địa mail 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 348 Cơ sở liệu quan hệ CSDL quan hệ xây dựng với tên bảng đối tượng liên hệ (contact), với thuộc tính có khóa id, bảng contact biểu diễn sau: contact (id, name, prename, homeaddress, hometelephone, workaddress, worktelephone, email) Cơ sở liệu ngữ nghĩa CSDL ngữ nghĩa xây dựng tương tự CSDL quan hệ gồm class contact, với thuộc tính liệu (data properties) tương tự thuộc tính biểu diễn CSDL quan hệ Một đối tượng contact lưu file liệu dạng 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, xây dựng thêm từ điển mô tả cho thuộc tính CSDL giúp cho người dùng dễ dàng truy vấn liệu NNTN Bản Từ khóa thuộc tính tương ứng CSDL Từ khóa Thuộc tính tương ứng CSDL Last Name name First Name prename Home address homeaddress Home phone number hometelephone Work address workaddress Work phone number worktelephone Email email 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 ca sử dụng H n - Truy vấn CSDL NNTN có cấu trúc: người dùng muốn truy vấn liệu, người dùng nhập câu truy vấn NNTN chọn mơ hình CSDL - Truy vấn liệu mySQL: người dùng muốn truy vấn CSDL mySQL - Truy vấn liệu RDF: 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 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 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 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 kết nối tới CSDL mySQL dựa thông tin cấu hình - Kết nối CSDL RDF: thực kết nối tới CSDL RDF dựa đường dẫn cấu hình Nguyễn Thanh Tuấn, Hồng Thị Thanh Hà, Nguyễn Văn Tin, Lê Thành Nhân 349 H n Sơ đồ ca sử dụng chương trình Giao diện NL2SQL-SPARQL H n chứa: + Một nhóm nút cho phép chọn kết sinh câu truy vấn NNTN SQL SPARQL, chọn hai nút thông tin cấu hình CSDL tương ứng; + Giao diện nhập câu truy vấn NNTN, có chứa số mẫu câu truy vấn có sẵn Bên cạnh có danh sách chứa từ khóa gợi ý cho người dùng để nhập câu truy vấn NNTN; + Giao diện chứa câu kết câu truy vấn sinh ra; + Bảng chứa kết truy vấn CSDL; + Các nút thực thi H n Giao diện hệ thống NL2SQL-SPARQL kết thực nghiệm Hn minh họa kết bước xử lý hệ thống NL2SQL-SPARQL với ví dụ: choose "First Name", "Last Name" in "contact" with "Last Name" like "t" 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 350 H n Sơ đồ biểu diễn kết bước xử lý hệ thống Một vài kết thử nghiệm Để đánh giá khả thực thi chương trình xây dựng, chúng tơi đưa vài ví dụ để chương trình chuyển đổi câu truy vấn thực truy vấn lấy kết từ CSDL Sau thực ví dụ NL2SQLSPARQL, chúng tơi tổng hợp kết Bản Bản Minh họa kết truy vấn chương trình Câu truy vấn NNTN Câu truy vấn SQL Câu truy vấn SPARQL list "First Name", "Last Name" in "contact" SELECT prename, name FROM contact SELECT ?prename ?name WHERE{ ?x contact:prename ?prename ?x contact:name ?name } find "Last Name" and "First Name" in "contact" with "Last Name" = "Tin" or "Last Name" = "Chi" SELECT name, prename FROM contact WHERE name = 'Tin' OR name = 'Chi' choose "First Name", "Last Name" in "contact" with "Last Name" like "t" SELECT prename, name FROM contact WHERE name LIKE '%t%' SELECT ?name ?prename WHERE{ ?x contact:name ?name ?x contact:prename ?prename FILTER(?name="Tin" || ?name="Chi") } SELECT ?prename ?name WHERE{ ?x contact:prename ?prename ?x contact:name ?name FILTER( regex(?name,"t","i") ) } Kết 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áo đề xuất mơ hình chuyển đổi câu truy vấn CSDL NNTN thành câu truy vấn CSDL quan hệ câu truy vấn CSDL ngữ nghĩa Mô hình sử dụng cơng cụ Apache OpenNLP để hỗ trợ việc thực bước phân tích NNTN Sau đó, chúng tơi sử dụng kỹ thuật từ điển để tìm 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 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 thực nghiệm hệ thống NL2SQLSPARQL 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ệ sang CSDL ngữ nghĩa Tuy nhiên hiệu hệ thống phụ thuộc nhiều vào từ vựng từ điển, khó khăn lớn vấn đề hệ thống xử lý ngôn ngữ tự nhiên Việc mở rộng từ điển phân tích sâu ngữ nghĩa câu truy vấn NNTN hướng nghiên cứu báo Ngoài ra, hệ thống thử nghiệm câu lệnh select Hướng tới, mở rộng từ điển áp dụng NL2SQLSPARQL cho loại câu truy vấ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 ngồi CSDL quan hệ CSDL ngữ nghĩa hướng phát triển khác 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 Hồi, “Truy vấn ngơn ngữ tự nhiên khơng hoàn chỉnh sở 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 ... với sở liệu tùy chọn thực câu truy vấn, trả kết cho người dùng Vì vậy, chúng tơi xây dựng mơ hình hệ thống tổng quan H n 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... câu truy vấn SPARQL Đồng thời tích hợp hai quy trình vào mơ hình để giải mục đích truy vấn CSDL tùy chọn dựa ngữ nghĩa câu truy vấn C Chuyển đổi truy vấn NNTN sang câu truy vấn SQL câu truy vấn. .. phân tích ngữ nghĩa xác định loại câu truy vấn, thành phần câu truy vấn đó, từ tạo thành câu truy vấn SQL Quy trình từ câu truy vấn SQL sang câu truy vấn SPARQL: phân tích câu truy vấn SQL, ánh