.2 Cây SLD đối với câu truy vấn p(1, Y) trong ví dụ 2.2

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Datalog và cơ sở dữ liệu suy diễn (Trang 42 - 46)

Nhánh bên trái nhất của cây hợp giải này là kéo dài vô hạn, vì vậy phép định giá SLD sẽ đi vào vòng lặp vô hạn khi tìm kiếm các lời giải của câu truy vấn. Trong phần tiếp theo, trình bày hai phƣơng pháp hiệu quả để xử lý tình huống này.

2.2.2. Định giá bảng [15]

Phần này trình bày kỹ thuật định giá bảng bằng cách dùng các ký hiệu của phép hợp giải SLG (Linear Resolution with Selection function for General logic programs) trong [15] nhƣng đƣợc xây dựng lại đơn giản hơn trên lớp các chƣơng trình Datalog

Kỹ thuật định giá bảng mở rộng khả năng của các ngôn ngữ lập trình logic vì nó có thể đƣợc dùng để định giá các câu truy vấn đệ qui nhƣ trong Prolog nhƣng với các tính chất kết thúc tốt hơn nhiều. Phƣơng pháp này sẽ ngăn chặn các vòng lặp vô hạn đã xảy ra trong phƣơng pháp định giá SLD và đảm bảo việc định giá sẽ kết thúc đối với chƣơng trình Datalog. p(1, Y) p(1, Z) p(Z, Y) p(1, Z1) p(Z1, Y) a(1, 2) p(2, Y) a(1, 3) a(1, 2) a(1, 3) p(3, Y)

Ý tƣởng chính của phƣơng pháp định giá bảng nhƣ sau: trong suốt quá trình định giá câu truy vấn, các đích con và các câu trả lời đƣợc lƣu giữ vào một bảng. Một bảng bao gồm một tập các đích con, mỗi đích con gắn liền với một tập các câu trả lời, hai đích con hoặc các câu trả lời đƣợc xem là đồng nhất với nhau trong bảng nếu chúng là các biến thể của nhau. Mỗi lời gọi đến đích con phải đƣợc kiểm tra xem đích con này (hoặc một biến thể của nó) có đƣợc gọi trƣớc đó hay không. Nếu không có thì đích con này đƣợc chèn vào bảng và các quy tắc đƣợc hợp giải dựa vào đích con này y nhƣ trong phƣơng pháp định giá SLD. Kết quả của việc định giá sẽ đƣợc đƣa vào bảng. Nếu có một biến thể của đích con đã đƣợc gọi trƣớc đó, đích con sẽ đƣợc hợp giải dựa vào các câu trả lời đã có trong bảng. Các câu trả lời mới nhận đƣợc, đến lƣợt nó sẽ đƣợc thêm vào bảng và gắn liền với một đích con trong suốt quá trình định giá. Việc định giá sẽ kết thúc khi tất cả các quy tắc và câu trả lời đƣợc hợp giải nhờ vào việc áp dụng tất cả các đích con. Do các câu trả lời đƣợc tạo ra trong suốt tiến trình của cùng một ƣớc lƣợng đã sử dụng chúng nên việc ƣớc lƣợng bảng có thể xem nhƣ một tính toán điểm bất động theo hƣớng dƣới lên truyền thống. Việc ƣớc lƣợng trên các đích con đạt tới điểm cố định thì những đích con này đƣợc gọi là đƣợc ƣớc lƣợng đầy đủ.

Định nghĩa 2.3 (Hệ thống SLG)

Một hệ thống SLG là một rừng cây SLG đƣợc xây dựng nhƣ sau:

Nút gốc của cây SLG có dạng: q q, trong đó q là một đích con. Nút gốc đƣợc gọi là đầy đủ khi cây tƣơng ứng với nó là đƣợc ƣớc lƣợng đầy đủ (xem Định nghĩa 2.6)

Các nút không phải là nút gốc có một trong hai dạng:

- Nút thất bại (ký hiệu Fail) đƣợc thêm vào nhƣ một nút lá của các nhánh thất bại, hoặc:

- Nút có dạng: Answer_Template Goal_List, trong đó Answer_Template là một nguyên tố biểu diễn các trị buộc thay đổi của các đích con đƣợc xếp vào bảng trong quá trình định giá,

còn phải hợp giải. Giả thiết quá trình tính toán trên các qui tắc đƣợc thực hiện từ trái sang phải, các nguyên tố đƣợc chọn của một nút là nguyên tố bên trái nhất trong Goal_List.

Một nút lá trong cây SLG đƣợc gọi là một nút trả lời nếu Goal_List của nó là rỗng.

Trong hệ thống SLG không có hai cây cùng nút gốc, nghĩa là các đích con tƣơng ứng của chúng không thể là các biến thể đổi tên lẫn nhau.

Ƣớc lƣợng câu truy vấn bằng cách dùng hệ thống SLG đƣợc gọi là một ƣớc lƣợng SLG, nó đƣợc định nghĩa nhƣ sau:

Định nghĩa 2.4 (Định giá SLG)

Giả sử P là chƣơng trình Datalog, định giá SLG đối với đích truy vấn root là một dãy các rừng cây F0, F1, …,Fn, sao cho:

F0 là rừng chứa một cây đơn root root.

Với mỗi i 0, hữu hạn, Fi+1 nhận đƣợc từ Fi bằng cách áp dụng một trong các phép toán SLG (Định nghĩa 2.5). Nếu không có phép toán nào đƣợc áp dụng vào Fn thì Fn đƣợc gọi là hệ thống cuối cùng của định giá SLG.

Các cây mới sẽ đƣợc tạo ra bởi phép toán tạo đích con mới khi đích con đƣợc đƣa vào bảng (là đích con mới cần tính) trở thành các literal đƣợc chọn của các nút. Gốc của các cây đôi khi còn đƣợc gọi là các nút tổ tiên và các nút trong (nút trong là nút mà literal đƣợc chọn của nó là không đƣợc đƣa vào bảng). Nếu literal đƣợc chọn của một nút là đƣợc đƣa vào bảng thì các con của nó đƣợc sinh ra bởi phép toán hợp giải câu trả lời. Các phép toán này đƣợc định nghĩa nhƣ sau:

Định nghĩa 2.5 (Các phép toán SLG)

(i) Đích con mới: Giả sử N là nút không phải nút gốc:

Answer_Template S Goal_list

Trong đó đích con S đƣợc xếp vào bảng. Nếu S là đích con mới đối với việc định giá thì thêm một cây mới với gốc là S S.

(ii) Hợp giải quy tắc:

- Với N là một nút gốc S S và R là quy tắc Head Body, trong đó Head

hợp nhất với đích con S với mgu là . Thêm nút (S Body) nhƣ là một nút con của nút N nếu nó là nút mới.

- Với nút N: Answer_Template S Goal_List không phải là nút gốc, đích con S không xếp vào bảng, R là quy tắc Head Body, trong đó Head hợp nhất với đích con S với mgu là . Thêm nút (Answer_Template Body Goal_List) nhƣ là nút con của nút N.

(iii) Hợp giải câu trả lời: Giả sử N không phải nút gốc mà đích con S đƣợc chọn của nó là đƣợc xếp vào bảng và Ans là một nút trả lời. Gọi N’ là hợp nhất của N và Ans trên S. Lúc đó nếu N’ không phải là con của N thì thêm N’ nhƣ là nút con của N.

(iv) Kết thúc: Cho trƣớc một tập S các đích con đƣợc ƣớc lƣợng đầy đủ (xem định nghĩa 2.6), các nút gốc của các cây ứng với các đích con trong S gọi là nút đầy đủ.

Để minh hoạ các phép toán trong định nghĩa 2.5 ta xét ví dụ

Ví dụ 2.3 Xét trở lại chƣơng trình Datalog P trong ví dụ 2.2:

r1: p(X, Y) p(X, Z) p(Z, Y) r2: p(X, Y) a(X, Y)

Câu truy vấn (Q): ? p(1, Y).

Trong đó a là vị từ EDB, giả sử quan hệ của vị từ a gồm các bộ: (1, 2), (1, 3), (2, 3). Định giá SLG của chƣơng trình P nhƣ hình vẽ sau:

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Datalog và cơ sở dữ liệu suy diễn (Trang 42 - 46)

Tải bản đầy đủ (PDF)

(98 trang)