Chuyển đổi sang câu truy vấn Insert

Một phần của tài liệu Phát triể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 NL2SQL SPARQL (Trang 52 - 55)

C ƢƠN 3 PHÁT TRIỂN HỆ THỐNG TRUY VẤN DỮ LIỆU TÙY

3.2.2.Chuyển đổi sang câu truy vấn Insert

a. Chuyển từ ngôn ngữ tự nhiên sang SQL

Quá trình chuyển đổi câu truy vấn NNTN trƣờng hợp Truy vấn Insert 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 hiện các ý nghĩa của những từ thành phần.

Bƣớc 1: Xác định thành phần của câu truy vấn Insert bằng NNTN có cấu trúc tƣơng ứng với cấu trúc câu truy vấn SQL

Dựa vào tìm hiểu về cấu trúc, thành phần của câu truy vấn INSERT ở chƣơng I, có thể thấy thành phần chính của câu gồm:

Insert into: phía sau từ khóa Insert into là chỉ định tên của bảng muốn thêm

hàng.

Values: sau từ khóa From là danh sách các giá trị trong hàng cần thêm. Select expression: Trả về các dòng giá trị cần thêm vào trong bảng đích.

Để xác đinh các thành phần của câu INSERT, mô hình cũng sử dụng kỹ thuật ánh xạ các từ vào bộ từ điển để tìm ra vị trí của từng thành phần của câu INSERT trong truy vấn bằng NNTN. Bộ từ điển đƣợc xây dựng nhƣ Bảng 3.1.

ảng Danh sách từ và giá trị tương trong thành phần câu INSERT

Từ khóa Từ ó tƣơn ứng trong SQL

“insert”, “add”, “append”, “enter”, “insertion”, “get into”, “sell into”, ”entered into”, “join in”, “join into”

Insert into

“values”, “include”, “worth”, “scope”,”fair

value”, “import” Values

“put”, “initialize”,”fill”, “introduce”,

“selective”, “select show” Select expression

Từ câu truy vấn của ví dụ trên, xác định các thành phần của câu truy vấn đó nhƣ sau:

Insert into: là từ append và các từ khóa “First Name”, “Last Name” phía sau là chỉ định tên của bảng muốn thêm hàng.

Values: : là từ worth và từ khóa “Contact” là danh sách các giá trị trong hàng cần thêm.

Select expression: là từ put và cụm từ khóa “Last Name” trả về các dòng giá trị cần thêm vào trong bảng đích.

Bƣớc 2: Sau khi xác định đƣợc các thành phần của câu truy vấn, sử dụng kỹ thuật ánh xạ các thuộc tính, bảng có tên gọi bằng NNTN với bộ từ điển đƣợc xây dựng để xác định tên đƣợc quy định trong CSDL. Cuối cùng tiến hành tổng hợp các thành phần xác định đƣợc của câu truy vấn để tạo thành câu truy vấn SQL hoàn chỉnh.

Ví dụ:

Sau khi xác định các thành phần, ta đƣợc câu nhƣ sau: INSERT “Last Name”, “First Name” VALUES “Contact”

Tiến hành ánh xạ để tạo thành câu truy vấn SQL hoàn chỉnh:

INSERT name, prename VALUES contact

b. Chuyển đổi sang câu truy vấn SPARQL

Ví dụ với câu truy vấn SQL: INSERT “Last Name”, “First Name” VALUES “Contact” đã tạo đƣợc ở bƣớc chuyển đổi câu truy vấn bằng NNTN sang câu truy vấn

SQL. Các bƣớc chuyển đổi sang câu truy vấn SPARQL nhƣ sau:

Bƣớc 1: Câu truy vấn SQL đƣợc phân tích để xác định các bảng, trƣờng dữ liệu, và mệnh đề WHERE và GROUP BY nếu có.

INSERT name, prename: thuộc tính name, prename. VALUES contact: bảng contact.

Bƣớc 2: Xác định các tiền tố PREFIX của SPARQL dựa vào các bảng đã xác định đƣợc trong Bƣớc 1 và URI tƣơng ứng đã đƣợc khai báo.

Ví dụ với bảng contact sẽ có PREFIX là:

PREFIX contact: <http://www.semanticweb.org/itc/ontologies/2016/3/contact#>

Bƣớc 3: Mệnh đề INSERT SPARQL đƣợc tạo ra bằng cách mỗi “thuộc_tính” sẽ đƣợc định dạng là “?thuộc_tính”.

Ví dụ: INSERT name, prename đƣợc biến đổi thành INSERT ?name ?prename

Bƣớc 4: Thành phần đầu tiên của mệnh đề VALUES SPARQL là kết quả của quá trình tạo các mẫu bộ ba từ các thuộc tính trong mệnh đề INSERT SQL, đƣợc tạo ra bằng cách thêm một biến cho mọi thuộc tính dữ liệu trong danh sách INSERT SQL. Cấu trúc tổng quan nhƣ sau:

?gia trị :thuộc_tính ?thuộc_tính.

Ví dụ: thuộc tính name, prename trong bảng contact đƣợc tạo với cấu trúc nhƣ sau:

?x contact:name ?name.

?x contact:prename ?prename.

Nếu câu INSERT có nhiều giá trị, thì hệ thống sẽ tự gán mỗi giá trị ?biến khác nhau. Ví dụ có thêm thuộc tính salary của bảng contract thì câu đƣợc tạo nhƣ sau:

?x contact:name ?name.

?x contact:prename ?prename. ?y contract:salary ?salary. )

Bƣớc 5: 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 INSERT SPARQL hoàn chỉnh.

Với ví dụ trên, câu truy vấn SPARQL hoàn chỉnh nhƣ sau:

PREFIX contact: <http://www.semanticweb.org/itc/ontologies/2016/3/contact#> INSERT ?prename ?name

VALUES {

?x contact:prename ?prename. ?x contact:name ?name. }

Một phần của tài liệu Phát triể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 NL2SQL SPARQL (Trang 52 - 55)