Các phương pháp trên xuống còn gọi là suy luận đích hoặc kết xâu lùi có điểm khởi đầu của việc tính toán là từ đích truy vấn và chúng sẽ không tính các sự kiện không thích hợp với câu tr
Trang 2Vũ Hồng Sơn
DATALOG
VÀ
CƠ SỞ DỮ LIỆU SUY DIỄN
Ngành: Công nghệ thông tin
Trang 3MỤC LỤC
LỜI CAM ĐOAN Error! Bookmark not defined LỜI CẢM ƠN Error! Bookmark not defined.
MỤC LỤC 1
DANH MỤC CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT 3
DANH MỤC CÁC HÌNH VẼ 4
MỞ ĐẦU 5
CHƯƠNG 1 KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU SUY DIỄN VÀ CHƯƠNG TRÌNH DATALOG 8
1.1 Ngôn ngữ cấp một (first order language) 8
1.2 Cơ sở dữ liệu suy diễn và chương trình Datalog 9
1.2.1 Cơ sở dữ liệu suy diễn 9
1.2.2 Cú pháp của chương trình Datalog 11
1.2.3 Giả thiết thế giới đóng và các tiếp cận để xác định ngữ nghĩa chương trình Datalog 16
1.2.4 Các thuật toán xác định ngữ nghĩa chương trình Datalog 19
1.3 Chương trình Datalog có chứa phủ định 25
1.3.1 Ngữ nghĩa mô hình hoàn hảo 25
1.3.2 Ngữ nghĩa mô hình bền vững 32
1.4 Kết luận 34
CHƯƠNG 2 TỐI ƯU CÂU TRUY VẤN ĐỐI VỚI CHƯƠNG TRÌNH DATALOG 36 2.1 Định giá câu truy vấn theo kiểu trên xuống (top-down) 36
2.2 Định giá câu truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ 37
2.2.1 Định giá SLD 38
2.2.2 Định giá bảng 40
2.3 Định giá câu truy vấn theo kiểu dưới lên (bottom-up) 45
2.3.1 Thuật toán định giá câu truy vấn theo phương pháp dưới lên 47
2.3.2 Thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh 48
2.4 Định giá câu truy vấn theo cách kết hợp trên xuống và dưới lên 53
2.5 Một số nhận xét so sánh về các phương pháp định giá bảng và ma tập 55
2.6 Kết luận 56
CHƯƠNG 3 PHƯƠNG PHÁP MA TẬP 57
3.1 Phương pháp ma tập 57
3.1.1 Tô điểm 57
3.1.2 Truyền thông tin sang ngang 58
3.1.3 Phép biến đổi ma tập (Magic set transformation) 60
3.1.4 Phương pháp ma tập 61
3.2 Cải tiến phương pháp ma tập trên một số lớp con của chương trình Datalog 62
Trang 43.2.1 Phương pháp ma tập cải tiến trên chương trình Datalog tuyên tính phải 62
3.2.2 Phép biến đổi ma tập trên chương trình Datalog không đệ qui 66
3.3 Phương pháp ma tập cải tiến 70
3.3.1 Thuật toán tổ điểm chương trình 71
3.3.2 Tối ưu bước tô điểm chương trình 75
3.3.3 Cải tiến việc thực thi chương trình Mag_Pad 77
3.3.4 Phương pháp ma tập cải tiến 82
3.4 Kết luận 83
KẾT LUẬN 84
TÀI LIỆU THAM KHẢO 85
PHỤ LỤC 88
Trang 5DANH MỤC CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT
CSDL: Cơ sở dữ liệu
CWA: Closed World Assumption – Giả thiết thế giới đóng
EDB: Extensionl Database – CSDL Ngoại diên
GCWA: Generalized Closed World Assumption – Giả thiết thế giới đóng tổng quát IDB: Intensionl Database – CSDL Nội hàm
mgu: most general unifier – Hợp nhất tử tổng quát nhất
SCC: Strongly Connect Component – Thành phần liên thông mạnh
Sips: Sideway Information Pausing - Truyền thông tin sang ngang
SLD: Linear Selection resolution for Definite clauses
SLG: Linear Resolution with Selection function for General logic programs
WGCWA: Weak Generalized Closed World Assumption – Giả thiết thế giới đóng yếu tổng quát
Trang 6DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Đồ thị phụ thuộc của chương trình trong ví dụ 1.5 16
Hình 1.2 Cây chứng minh của sự kiện p(a, d) 18
Hình 1.3 Đồ thị phụ thuộc của chương trình trong ví dụ 1.12 28
Hình 1.4 Đồ thị phụ thuộc của chương trình trong ví dụ 1.13 30
Hình 2.1 Cây SLD đối với câu truy vấn p(1, Y) trong ví dụ 2.1 39
Hình 2.2 Cây SLD đối với câu truy vấn p(1, Y) trong ví dụ 2.2 40
Hình 2.3 Định giá SLG của chương trình P trong ví dụ 2.3 44
Hình 2.4 Đồ thị phụ thuộc của chương trình trong ví dụ 2.5 49
Hình 2.5 Đồ thị phụ thuộc thu gọn của chương trình trong ví dụ 2.5 50
Hình 2.6 Đồ thị phụ thuộc của chương trình trong ví dụ 2.6 52
Hình 3.1 Đồ thị mở rộng của chương trình trong ví dụ 3.5 68
Hình 3.2 Truyền thông tin sang ngang trong ví dụ 3.7 72
Trang 7MỞ ĐẦU
CSDL suy diễn, một sự mở rộng CSDL quan hệ, không những chỉ có các nguyên tố nền tương ứng với các bộ của các quan hệ trong CSDL quan hệ mà còn có các quy tắc tổng quát (gồm các quy tắc suy diễn và các ràng buộc toàn vẹn) Những quy tắc này tạo thành phần mở rộng So với các hệ CSDL quan hệ, các hệ CSDL suy diễn thừa nhận một kiểu lý thuyết chứng minh, nghĩa là nó được xem xét như một lý thuyết bao gồm một tập các công thức cấp một, còn việc thực hiện một câu truy vấn hoặc làm thoả mãn một ràng buộc toàn vẹn có thể xem như chứng minh một công thức cấp một là hệ quả logic của lý thuyết đã cho
Sức mạnh biểu diễn của CSDL suy diễn là thật sự quan trọng trong nhiều lĩnh vực khác nhau Các ứng dụng tiêu biểu của CSDL bao gồm hệ chuyên gia, hệ hỗ trợ quyết định, phân tích tài chính, phân tích ngôn ngữ, cú pháp Tuy vậy, trong lĩnh vực CSDL suy diễn, mặc dù đã có nhiều kết quả có giá trị nhưng cũng có nhiều vấn đề cần nghiên cứu tiếp, đặc biệt là các vấn đề về ngữ nghĩa của phủ định và tối ưu hoá câu hỏi (truy vấn)
Luận văn nghiên cứu các kỹ thuật tối ưu câu truy vấn trên CSDL suy diễn được viết trong Datalog, là ngôn ngữ chuẩn của CSDL suy diễn Có ba kiểu tiếp cận khác nhau trong việc định giá câu truy vấn: Các phương pháp trên xuống, các phương pháp dưới lên và các phương pháp có sự kết hợp các đặc trưng của phương pháp trên xuống
và dưới lên Các phương pháp trên xuống (còn gọi là suy luận đích hoặc kết xâu lùi) có điểm khởi đầu của việc tính toán là từ đích truy vấn và chúng sẽ không tính các sự kiện không thích hợp với câu truy vấn Tuy nhiên quá trình tính toán có thể kéo dài vô hạn Các phương pháp dưới lên đảm bảo tính kết thúc trong quá trình tìm lời giải của câu truy vấn, nhưng điều này không có nghĩa là nó hiệu quả Chúng thường không định hướng đích, nhiều sự kiện không thích hợp với câu truy vấn cũng được tính Các chiến lược dưới lên không xem xét câu truy vấn trong suốt quá trình định giá, tức là việc tính
Trang 8toán không được gắn liền với câu truy vấn như thường xảy ra trong các phương pháp trên xuống
Trong thời gian gần đây, một số phương pháp mở rộng để trả lời câu truy vấn được đề xuất nhằm mục đích tạo ra một chiến lược tìm kiếm hướng đích, đồng thời có tính hiệu quả là đảm bảo kết thúc quá trình tính toán câu trả lời truy vấn Điển hình đó
là phép biến đổi ma tập (magic set transformation) và định giá bảng Các phương pháp này được đánh giá là một trong những kỹ thuật tối ưu câu truy vấn có hiệu quả trong CSDL suy diễn Nó đã kết hợp được các ưu điểm của kỹ thuật định giá theo kiểu trên xuống và dưới lên, do đó giảm thiểu được số các sự kiện cần tính và tìm kiếm trên CSDL Ở đây áp dụng hai phương pháp này để xử lý vòng lặp vô hạn trong quá trình định giá câu truy vấn trên chương trình Datalog
Ý tưởng chính của phép biến đổi ma tập là mô phỏng sự lan truyền các trị buộc được tạo ra trong phương pháp định giá câu truy vấn theo kiểu trên xuống Sự lan truyền này nhận được bằng cách viết lại chương trình gốc ban đầu Trong mỗi quy tắc gốc một điều kiện mới được thêm vào để hạn chế việc tính toán trên quy tắc Các điều kiện này được xem là các quan hệ lọc Một quy tắc mới được tạo ra để mô phỏng sự lan truyền các trị buộc
Mặc dầu kỹ thuật ma tập đã được đánh giá là rất hiệu quả nhưng nó chưa hẳn là chiến lược định giá câu truy vấn tốt nhất Trong luận văn này đi sâu vào phân tích một
số hạn chế của phương pháp này và giới thiệu một số cải tiến
Luận văn gồm phần mở đầu, ba chương nội dung, phần kết luận, tài liệu tham khảo và phần phụ lục
Chương 1 trình bày khái quát về CSDL suy diễn và chương trình D atalog Nội dung chính tập trung vào cơ sở lý thuyết của ngôn ngữ cấp một, CSDL suy diễn và chương trình Datalog Hai dạng ngữ nghĩa phổ biến của chương trình logic được thiết
Trang 9kế lại để áp dụng trên lớp chương trình Datalog có chứa phủ định là ngữ nghĩa mô hình hoàn hảo và ngữ nghĩa mô hình bền vững
Chương 2 trình bày về các cách tiếp cận khác nhau để trả lời câu truy vấn trong CSDL suy diễn Luận văn đã tiến hành thảo luận một cách chi tiết, phân tích làm rõ đặc trưng, ý nghĩa của mỗi cách tiếp cận Các phương pháp nhằm ngăn chặn các vòng lặp
vô hạn khi tìm kiếm lời giải của câu truy vấn đối với chương trình Datalog bằng phương pháp định giá bảng cũng như thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh đã được phân tích, xem xét
Chương 3 trình bày kỹ hơn về phương pháp biến đổi ma tập và thảo luận một số hạn chế của phép biến đổi ma tập Từ đó đã có được sự cải tiến thuật toán ma tập trên một số lớp con của chương trình Datalog là chương trình Datalog tuyến tính phải và chương trình Datalog không đệ qui Một số cải tiến khác về thuật toán ma tập trên chương trình Datalog cũng được xem xét [6]
Phần phụ lục trình bày một số phương pháp định giá chương trình Datalog bằng một số thuật toán đơn giản, dễ cài đặt Tuy nhiên một số phương pháp xử lý vòng lặp
vô hạn khi định giá trên xuống chưa được đề cập trong phụ lục này
Trang 10CHƯƠNG 1 KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU SUY DIỄN VÀ
CHƯƠNG TRÌNH DATALOG
Chương 1 trình bày cú pháp, ngữ nghĩa và các kỹ thuật định giá câu truy vấn đối với CSDL suy diễn và chương trình Datalog Phần lớn nội dung của chương này được tổng hợp từ nhiều công trình nghiên cứu của các tác giả ở trong và ngoài nước Đây là những kiến thức cơ sở cần thiết mà luận văn sẽ dùng trong các chương tiếp theo
CSDL suy diễn sử dụng ngôn ngữ logic cấp một làm ngôn ngữ cơ sở Vì vậy, chúng
ta bắt đầu từ ký pháp của logic cấp một
1.1 Ngôn ngữ cấp một [19] (first order language)
Chúng ta tìm hiểu về logic vị từ bậc nhất được xem như là một phương thức biểu diễn tri thức, đồng thời là một ngôn ngữ để diễn tả các phép toán trên các quan hệ
Một ngôn ngữ cấp một được xây dựng trên một bảng chữ và những công thức được
xây dựng trên bảng chữ đó
Định nghĩa 1.1 Bảng chữ bao gồm các hằng, biến, ký hiệu hàm, ký hiệu vị từ, hằng vị
từ: true, false, các toán tử liên kết: (phủ định), (hội), (tuyển), (kéo theo), (tương đương), các ký hiệu lượng từ: (tồn tại), (với mọi), các cặp dấu ngoặc đơn (), dấu phẩy (,)
Định nghĩa 1.2 Hạng thức (term) được định nghĩa đệ qui như sau:
(i) Mỗi hằng là một hạng thức
(ii) Mỗi biến là một hạng thức
(iii) Nếu f là ký hiệu hàm n đối và t1, t2, …, tn là các hạng thức thì f(t1, t2, …, tn ) là một hạng thức
từ có n đối và ti, i=1, …, n là những hạng thức Nguyên tố nền là nguyên tố không chứa biến Literal là một nguyên tố, gọi là literal dương hoặc phủ định của một nguyên tố,
Trang 11gọi là literal âm Với p là một nguyên tố, literal âm được ký hiệu p, p và p còn gọi
là phần bù của nhau
Định nghĩa 1.4 Công thức logic được định nghĩa một cách đệ qui như sau:
(i) Nguyên tố là một công thức
(ii) True và False là các công thức
(iii) Nếu E và F là các công thức logic thì E F, E, E F, E F, E F là các công thức logic
(iv) Nếu E là một công thức logic và X là một biến thì ( X)E, ( X)E là một công thức logic
Định nghĩa 1.5
Công thức không chứa các biến được gọi là công thức nền (ground formula)
Nếu trong các công thức ( X)E, ( X)E chứa biến X và có thể thêm một số biến khác không nằm dưới dấu , thì biến X được gọi là biến buộc, còn các biến khác được gọi là biến tự do
Công thức đóng là công thức không chứa các biến tự do
Ví dụ 1.1 Y X(p(X,Y) q(Y)) là công thức đóng Tuy nhiên X(p(X,Y) q(Y))
không phải là công thức đóng, vì Y là biến tự do
1.2 Cơ sở dữ liệu suy diễn và chương trình Datalog [23, 24]
Trong phần này chỉ tóm tắt một số khái niệm của CSDL suy diễn và tập trung vào
mô hình dữ liệu quan trọng của CSDL suy diễn là chương trình Datalog Datalog là một ngôn ngữ truy vấn rất mạnh dựa trên logic mệnh đề Horn và đã được nghiên cứu sâu sắc bởi nhiều chuyên gia như Ullman, Ceri, Gottlob, Tanca, … Chúng ta cũng thảo
luận một số tiếp cận ngữ nghĩa của chương trình Datalog khi cho phép các literal âm
xuất hiện trong thân quy tắc
1.2.1 Cơ sở dữ liệu suy diễn
Định nghĩa 1.6
Trang 12(i) Một CSDL suy diễn là một tập hữu hạn các mệnh đề có dạng:
p1 p2 … pm q1 q2 … qn (m 0, n 0) (*) trong đó pi (i=0, 1, …, m) là các nguyên tố và qj (j=0, 1, …, n) là các literal Tất cả các
đối của các pi và qj đều không chứa các ký hiệu hàm
Mệnh đề (*) có thể xuất hiện dưới các dạng khác nhau tuỳ thuộc vào các giá trị của m và n:
được gọi là quy tắc suy diễn Vị từ p được gọi là đầu quy tắc (head), q1 q2 … qn
được gọi là thân quy tắc (body) và qi (i = 1, …, n) được gọi là các đích con (subgoal)
Nếu p, qi (i = 1, …, n) là các nguyên tố thì quy tắc này gọi là quy tắc Datalog Ta cũng
nói rằng p q1 q2 … qn là quy tắc định nghĩa vị từ p
Trang 13và được gọi là quy tắc Datalog dạng tuyển p1 p2 … pm gọi là đầu quy tắc và q1
phủ định thì P được gọi là chương trình Datalog dạng tuyển Ngược lại, P được gọi là chương trình Datalog dạng tuyển mở rộng
1.2.2 Cú pháp của chương trình Datalog
Định nghĩa 1.7 Một chương trình Datalog là một CSDL suy diễn xác định bao gồm
một tập hữu hạn các mệnh đề Horn, nghĩa là các quy tắc có dạng:
p q1 q2 … qn (n 0)
Trong đó các vị từ p, qi là các nguyên tố
Để đảm bảo các kết quả của chương trình Datalog là hữu hạn, ta giả thiết mọi
quy tắc trong chương trình Datalog đều thoả mãn điều kiện an toàn: mỗi biến xuất hiện
trong đầu một quy tắc phải xuất hiện trong thân của nó
Định nghĩa 1.8 Giả sử P là chương trình Datalog
Vị từ nội hàm hay vị từ IDB là vị từ được định nghĩa bởi các quy tắc trong P Vị
từ ngoại diên hay vị từ EDB là vị từ không được định nghĩa qua các quy tắc, nó
chỉ xuất hiện trong thân quy tắc Các vị từ IDB hoặc EDB gọi là những vị từ thông thường
CSDL ngoại diên hoặc CSDL EDB của chương trình Datalog là tập các sự kiện được lưu trữ trong CSDL CSDL nội hàm hoặc CSDL IDB là tập các quy tắc
của chương trình
Trang 14Vị từ được cài sẵn (built-in predicate) là một vị từ so sánh số học =, , , , ,
Nếu là vị từ được cài sẵn thì ta viết X Y thay cho cách viết (X,Y)
Chú ý: Các vị từ EDB chỉ xuất hiện trong thân quy tắc còn các vị từ IDB có thể xuất
hiện ở cả thân và đầu của quy tắc Vị từ được cài sẵn chỉ được xuất hiện trong thân quy tắc
Định nghĩa 1.9 Với mỗi vị từ q có k đối được đặt tương ứng một quan hệ Q có k thuộc
tính Giá trị của quan hệ Q là tập các bộ, một bộ của quan hệ Q có k thuộc tính được biểu thị bởi (a1, a2, …, ak) trong đó các ai là hằng, q(a1, a2, …, ak) là đúng nếu (a1, a2,
…, ak) thuộc Q Quan hệ ứng với vị từ EDB (tương ứng IDB) gọi là quan hệ EDB (tương ứng IDB)
Với mỗi chương trình Datalog P, ta liên kết với ngôn ngữ cấp một L(P) bao gồm các vị từ, các hằng, các công thức trong P Ta có định nghĩa sau:
Định nghĩa 1.10 Giả sử P là chương trình Datalog Lúc đó:
Vũ trụ Herbrand (Herbrand universe) của P, ký hiệu Up, là tập tất cả các hạng
thức nền của P
Cơ sở Herbrand (Herbrand base) của P, ký hiệu Bp, là tập tất cả các nguyên tố nền của P
Thể hiện Herbrand (Herbrand interpretation) hoặc đơn giản ta chỉ gọi là thể
hiện, là một tập con I bất kỳ của cơ sở Herbrand Bp của P
- Nếu A I, ta nói rằng sự kiện A đúng trong I và viết I |= A
- Nếu A Bp nhưng A I, ta nói rằng sự kiện A sai trong I va viết I | A
Ví dụ 1.2 Xét chương trình Datalog P gồm các quy tắc sau:
q(a, b) q(b, c) p(X, Y) q(X, Y) p(X, Y) p(X, Z) p(Z, Y)
Trang 15Vũ trụ Herbrand của P là Up = {a, b, c} và cơ sở Herbrand của P là:
Bp = {p(a, a), p(a, b), p(a, c), p(b, a), p(b, b), p(b, c), p(c, a), p(c, b), p(c, c),
q(a, a), q(a, b), q(a, c), q(b, a), q(b, b), q(b, c), q(c, a), q(c, b), q(c, c), }
Định nghĩa 1.11 Một phép thế (substitution) là tậo hữu hạn có dạng {X1/t1, …,
Xn/tn} trong đó Xi là các biến phân biệt, ti là các hạng thức, Xi ti, mỗi phần tử Xi/ti là
ký hiệu của phép thế tương ứng biến Xi với hạng thức ti, i=1, …, n Nếu tất cả ti là hằng
thì được gọi là phép thế nền
Định nghĩa 1.12 Một biểu thức là một hạng thức, một literal hoặc hội hoặc tuyển các
literal
E , gọi là hiện hành của E bởi , là biểu thức nhận được từ E bằng cách thay thế đồng
thời các biến Xi xuất hiện trong E bởi các ti (i= 1, …, n) Nếu E không chứa biến thì
E được gọi là một hiện hành nền của E
Định nghĩa 1.14 Giả sử ta có hai phép thế
= {X1/t1, …, Xn/tn} = {Y1/t1, …,Ym/tm} Hợp thành của và , là phép thế nhận được bằng cách xoá khỏi tập hợp:
{X1/t1 , …, Xn/tn , Y1/t1, …,Ym/tm} Mọi phần tử Xi/ti mà Xi = ti và Yi/ti mà Yi {Xi, X2, …, Xn} Ký hiệu =
Định nghĩa 1.15 Phép hợp nhất
Cho E và F là hai nguyên tố Lúc đó:
(i) E và F gọi là có thể hợp nhất nếu tồn tại phép thế sao cho E = F , lúc đó
được gọi là phép hợp nhất của E và F
(ii) Cho 2 phép thế 1 và 2 Ta gọi phép thế 1 tổng quát hơn phép thế 2 nếu
tồn tại một phép thế sao cho 1= 2
Trang 16(iii) Cho là một phép hợp nhất của E và F Nếu tổng quát hơn mọi phép hợp
nhất khác của E và F thì được gọi là hợp nhất tử tổng quát nhất (most general unifier) của E và F, ký hiệu mgu(E, F)
Ví dụ 1.3 Cho E=p(f(x), z) và F=p(y, a)
Ta có E và F có thể hợp nhất và = {y/f(a), x/a, z/a} là một hợp nhất tử của E và F Hợp nhất tử tổng quát nhất của E và F là = {y/f(x), z/a} Để ý = {x|a}
Định lý 1.1 [19] Tồn tại thuật toán tìm hợp nhất tử tổng quát nhất của hai nguyên tố
nếu chúng có thể hợp nhất được và ngược lại thông báo không tồn tại hợp nhất tử
Định nghĩa 1.16 Giả sử P là chương trình Datalog Lúc đó:
Một thể hiện Herbrand I gọi là mô hình Herbrand (hoặc đơn giản là mô hình)
của P, ký hiệu I |= P, nếu với mọi quy tắc p q1 … qn trong P và mọi phép thế nền đối với quy tắc này, điều kiện sau đây là thoả:
Nếu qi I với mọi i = 1, 2, …, n thì p I
Mô hình I của P được gọi là mô hình cực tiểu (minimal model) nếu không tồn
tại một mô hình J nào khác của P sao cho J I
Mô hình I của P được gọi là mô hình nhỏ nhất (least model) nếu với mọi mô
hình J của P ta luôn có I J
Mệnh đề 1.1 [19] Đối với mọi chương trình Datalog P, luôn luôn tồn tại mô hình cực
tiểu duy nhất của P
Mô hình cực tiểu của chương trình Datalog P có thể tính được nhờ vào một toán
tử hệ quả trực tiếp (direct consequence operator) Tp Đối với thể hiện Herbrand I cho trước của chương trình Datalog P, toán tử Tp xây dựng nên một thể hiện Herbrand của
P là Tp(I) - chứa các sự kiện được dẫn xuất bởi các quy tắc trong P từ những sự kiện trong I
hiệu 2B p
là tập các tập con của Bp Toán tử hệ quả trực tiếp là một ánh xạ Tp:
Trang 172B p 2B p
được định nghĩa như sau: Với mỗi I 2B p
, Tp(I) = {A Bp| quy tắc p q1 … qn của P và phép thế nền đối với quy tắc này sao cho p = A và I |= (q1 …
qn ) }
Ví dụ 1.4 Xét quy tắc r: p(a,X) q(X, Y) r(Y, a) của chương trình Datalog P Giả sử
q(b, c), r(c, a) thể hiện Herbrrand I và phép thế nền = {X/b, Y/c} Lúc đó ta có (q(X, Y) r(Y, a)) = q(b, c) r(c, a) I và p(a, X) = p(a, b) nên suy ra p(a,b) Tp(I)
Định lý sau đây cho ta một tính chất quan trọng của toán tử Tp:
Định lý 1.2 [12] Giả sử P là chương trình Datalog Lúc đó:
(i) Tp đơn điệu tăng và có điểm bất động nhỏ nhất
(ii) Điểm bất động nhỏ nhất của Tp chính là mô hình cực tiểu duy nhất của P
Định nghĩa 1.18 Giả sử P là chương trình Datalog
Đồ thị phụ thuộc (dependency graph) của P là một đồ thị có hướng DG(P) = <V,
E>, trong đó V là tập đỉnh gồm các vị từ IDB và EDB của P và E là tập cạnh, cạnh (q, p) E nếu P chứa quy tắc với p là đầu và q ở trong thân
Chương trình P được gọi là đệ qui nếu đồ thị phụ thuộc DG(P) có ít nhất một chu trình, ngược lại P được gọi là không đệ qui Vị từ p nằm trong một chu trình
nào đó của đồ thị DG(P) được gọi là vị từ đệ qui, ngược lại gọi là vị từ không đệ qui
Ví dụ 1.5 Xét chương trình Datalog sau đây:
q(X, Y) p(Z, X) p(Z, Y) q(X, Y) r(Z, X) r(Z, Y) p(X, Y) r(Z, Y) s(X, Z) r(X, Y) p(Z, Y) s(Z, X)
Đồ thị phụ thuộc của chương trình trên có dạng như hình vẽ
Trang 18Hình 1.1 Đồ thị phụ thuộc của chương trình trong ví dụ 1.5 1.2.3 Giả thiết thế giới đóng và các tiếp cận để xác định ngữ nghĩa chương trình Datalog
1.2.3.1 Giả thiết thế giới đóng
Trong CSDL suy diễn, giả thiết thế giới đóng (CWA) của Reiter đóng vai trò
hết sức quan trọng CWA đã được sử dụng như một quy tắc ngầm định để đưa ra kết luận đối với các sự kiện phủ định Dưới CWA, nếu một nguyên tố nền p thuộc cơ sở Herbrand Bp của chương trình Datalog P không thể suy ra được từ những quan hệ EDB
và các quy tắc trong P thì p sẽ được xem là đúng Ký hiệu CWA(P) là tập được xác định bởi:
1.2.3.2 Tiếp cận theo quan điểm lý thuyết mô hình
Theo quan điểm lý thuyết mô hình, các quy tắc trong chương trình được xem là công cụ để xác định mô hình Một thể hiện của một tập các vị từ sẽ gán giá trị chân lý cho mỗi tình huống có thể có của các vị từ Để là mô hình của một tập các quy tắc, một thể hiện phải làm cho các quy tắc đúng với mọi phép gán giá trị cho các biến trong mỗi
q
Trang 19quy tắc được lấy từ miền giá trị đã cho Theo quan điểm này, ngữ nghĩa của chương trình Datalog P là mô hình cực tiểu của P EDB
Ví dụ 1.8 Xét chương trình Datalog sau đây:
Trong ví dụ này, có thể thấy rằng có một lượng vô hạn các mô hình phù hợp với CSDL {r(1), s(1, 2)} Thể hiện M1 là một mô hình đặc biệt, bởi vì nó là mô hình cực tiểu, theo nghĩa là chúng ta không thể làm cho một sự kiện đúng trong mô hình trở thành sai mà vẫn nhận được mô hình Để ý rằng mô hình M2 không có đặc tính này, chẳng hạn có thể loại bỏ sự kiện p(2), nghĩa là xem p(2) là sai, kết quả nhận được cũng
là một mô hình Hơn nữa, mô hình cực tiểu M1 là duy nhất phù hợp với CSDL {r(1), s(1, 2)}
1.2.3.3 Tiếp cận theo quan điểm lý thuyết chứng minh
Theo quan điểm lý thuyết chứng minh, các công thức của chương trình được xem là các tiền đề được sử dụng trong chứng minh Ngữ nghĩa của chương trình Datalog P được định nghĩa là tập tất cả các sự kiện có thể được dẫn xuất từ P bằng cách
áp dụng các quy tắc trong P và những sự kiện đã biết trong CSDL Quá trình có thể được thực hiện bắt đầu từ các sự kiện EDB đã cho và tiến hành lặp trên các quy tắc trong chương trình từ vế phải sang vế trái, tức là từ thân đến đầu, chẳng hạn ta xét ví dụ:
Trang 20Ví dụ 1.9 Xét chương trình gồm các quy tắc sau:
r1: p(X, Y) q(X, Y)
r2: p(X, Y) p(X, Z) p(Z, Y) trong đó q vị từ EDB, giả sử q(a, e) và q(e, d) là các sự kiện EDB Từ quy tắc r1 ta suy
ra p(a, e) và p(e, d) đúng và từ quy tắc r2 ta nhận được p(a, d) đúng Quá trình suy dẫn
để chứng minh p(a, d) có thể mô tả như hình vẽ sau:
Hình 1.2 Cây chứng minh của sự kiện p(a, d) 1.2.3.4 Tiếp cận theo quan điểm lý thuyết điểm bất động
Với các kết quả nghiên cứu về lý thuyết điểm bất động trong chương trình logic bởi Van Emden và Kowalski, Apt và Van Emden, ngữ nghĩa của chương trình Datalog
P cũng có thể được xác định là điểm bất động nhỏ nhất của toán tử hệ quả trực tiếp Tp(định lý 1.2)
Nhận xét: Trong cả ba cách tiếp cận trên, đối với trường hợp đơn giản là chương trình
Datalog nguyên thuỷ, nghĩa là các quy tắc không chứa phủ định thì tất cả phương pháp đều cho ra cùng một kết quả Trong trường hợp tổng quát, khi cho phép sử dụng nhiều loại quy tắc phức tạp hơn thì ta có nhiều cách tiếp cận khác nhau, dẫn đến nhiều câu trả lời khác nhau Trong nhiều trường hợp, không có gì đảm bảo chỉ có một câu trả lời duy nhất được tạo ra Chẳng hạn, với chương trình P = { p q, q p}, P có hai mô hình cực tiểu là {p} và {q}, tuy nhiên P không có mô hình nhỏ nhất Chúng ta xem xét kỹ hơn vấn đề này trong phần 1.3
p(a, d)
p(e, d) p(a, e)
q(e, d) q(a, e)
Trang 211.2.4 Các thuật toán xác định ngữ nghĩa chương trình Datalog
Mệnh đề sau đây được suy ra trực tiếp từ định lý 1.2:
Mệnh đề 1.2 Giả sử P là chương trình Datalog Mô hình nhỏ nhất của P là giới hạn của
dãy Tp n, n N, trong đó Tp 0 = , Tp (i+1) = Tp(Tp i)
Từ mệnh đề này ta có thuật toán:
Thuật toán 1.1
Vào: Chương trình Datalog P và DB là CSDL EDB đã cho
Ra: Mô hình nhỏ nhất của P
Phương pháp: Thuật toán được viết theo ngôn ngữ tựa Pascal như sau:
Trang 22I2 = Tp 2 = Tp(I1) = I1 {path(1, 2), path(2, 3), path(3, 4), path(4, 5)}
I3 = Tp 3 = Tp(I2) = I2 {path(1, 3), path(3, 4), path(4, 5)}
Giả sử P là chương trình Datalog có các vị từ EDB q1, , qm tương ứng với các quan hệ EDB Q1, , Qm và các vị từ IDB p1, …,pn tương ứng với các quan hệ IDB P1, , Pn
Ri, tính biểu thức đại số quan hệ EVAL-RULE(r, R1, …, Rn ) của thân quy tắc r theo các bước:
Q R Trong đó Vi là tập các thành phần chỉ chứa đúng một sự xuất hiện của mỗi biến X có trong các đối của Si, Fi là hội của các điều kiện sau đây:
a) Nếu tại vị trí thứ k của Si có một hằng a thì Fi có dạng: $k=a
Trường hợp Si chứa các biến khác nhau thì Qi = Ri
Trang 23Bước 1 b Đối với mỗi biến X không xuất hiện trong các đích con thông thường, ta tính
một biểu thức Dx để tạo ra quan hệ một ngôi chứa tất cả giá trị mà X có thể nhận trong phép gán làm cho các đích con của quy tắc r đúng
a) Nếu Y = a (hằng) thì Dx = {a}
b) Nếu y là biến xuất hiện như đối thứ j của đích con thông thường Si thì:
Dx = j(Ri)
định ở bước 2 Trong phép nối này ta xem Qi như là một quan hệ mà các thuộc tính là các biến xuất hiện trong Si và xem Dx là quan hệ có thuộc tính X
mỗi đích con được cài sẵn X Y xuất hiện trong p1, …, pn và E là biểu thức được xác định trong bước 3 Nếu không có đích con được cài sẵn thì biểu thức yêu cầu chính là
E
hệ đối với thân quy tắc của pi lên các thành phần tương ứng với các biến của đầu, sau
đó lấy hợp trên tất cả cá quy tắc có đầu là pi:
Giả sử Hi là tập các quy tắc có đầu là pi, giả thiết các pi có dạng pi (X1, …, Xk) trong đó Xi Xj với mọi i j, Q1, …, Qm là các quan hệ EDB, P1, …, Pn là các quan hệ IDB , lúc đó biểu thức đối với Pi sẽ là:
Trang 241.2.4.2 Thuật toán ngây thơ (naive) [25]
Thuật toán 1.2
EDB Q1, …, Qm cho trước và các vị từ IDB p1, …, pn tương ứng với các quan hệ IDB
P1, …, Pn cần tính
Ra: Mô hình nhỏ nhất của P
Phương pháp: Thuật toán được viết theo ngôn ngữ tựa Pascal như sau:
i
P i = 1, …, n;
Output Pi, i = 1, …, n
1.2.4.3 Thuật toán nửa ngây thơ (semi -naive) [25]
Theo thuật toán ngây thơ, khi tính Pi ở bước k+1 ta cần phải tính lại Pi ở bước k, điều này gây ra việc lãng phí thời gian bộ nhớ Thuật toán nửa ngây thơ sau đây khắc phục được nhược điểm đó, để tính (k 1)
i
P ở bước k+1 ta chỉ cần tính các bộ mới được sinh ra: (k 1) (k 1) ( )k
P P P
Xét quy tắc r với các đích con S1, …, Sn Đặt R1, …, Rn là các quan hệ hiện tại tương ứng với các đích con S1, …, Sn và đặt R1, …, Rn là các quan hệ gia tăng tương ứng ( Ri là tập hợp các bộ thêm vào của Ri ở vòng lặp gần nhất của thuật toán ngây thơ) Lúc đó quan hệ gia tăng đối với quy tắc r là hợp của n quan hệ EVAL-RULE(r,
R1, …, Ri-1, Ri, Ri+1, …, Rn ) i = 1, …, n
Trang 25Đặt: EVAL-RULE-INCR(r, R1, …, Ri-1, R1, …, Rn ) =
1 i n
EVAL-RULE(r, R1, …,
Ri-1, Ri, Ri+1, …, Rn )
Ta giả sử đối với các vị từ EDB q1, …, qk tương ứng bởi các quan hệ EDB Q1,
…, Qk Đối với mỗi vị từ IDB p1, …, pm được cho tương ứng với các quan hệ IDB P1,
…, Pm và các quan hệ gia tăng tương ứng P1, …, Pm
Với p vị từ IDB, EVAL-INCR(r, Q1, …, Qk, P1, …, Pm, P1, …, Pm ) là hợp của các EVAL-RULE-INCR sinh ra đối với mỗi quy tắc chứa p Ta có thuật toán:
Thuật toán 1.3
EDB Q1, …, Qk cho trước và các vị từ IDB p1, …, pm tương ứng với các quan hệ IDB
P1, …, Pm cần tính
Ra: Mô hình nhỏ nhất của P
Phương pháp: Thuật toán được viết theo ngôn ngữ tựa Pascal như sau:
For i := 1 to m do
Begin
Pi := EVAL(pi, Q1, …, Qk, , …, );
Pi := Pi; End;
Repeat
For i:=1 to m do
Pi’ := Pi; For i:=1 to m do
Begin
Pi := EVAL-INCR(pi, Q1, …, Qk, P1, …, Pm, P1, …, Pm);
Pi := Pi – Pi; End;
Trang 26For i:=1 to m do
Pi := Pi Pi; Until Pi = , i = 1, …, m;
Output Pi, i = 1, …, m
1.2.4.4 Tối ưu thuật toán nửa ngây thơ trong các trường hợp đặc biệt [1]
Trong trường hợp tổng quát hệ phương trình đại số quan hệ nhận được từ chương trình Datalog P có thể giải bằng các thuật toán ngây thơ và nửa ngây thơ tuy nhiên nếu
P có các tính chất đặc biệt, chẳng hạn P là chương trình tuyến tính thì ta có thể cải tiến thuật toán nửa ngây thơ nhằm nâng cao hiệu quả của nó
Định nghĩa 1.19 Giả sử P là chương trình Datalog Lúc đó:
Quy tắc r của P được gọi là tuyến tính trong P nếu có nhiều nhất một vị từ trong thân của r đệ qui lẫn nhau với vị từ đầu quy tắc
Chương trình Datalog P là tuyến tính nếu mọi quy tắc của P là tuyến tính
Gọi là hệ phương trình đại số quan hệ tương ứng với chương trình Datalog P,
hệ phương trình này có dạng: Pi = Ei (P1, …, Pn) (i=1, …, n)
Trường hợp 1: Chương trình Datalog P là tuyến tính Phép lặp của thuật toán nửa
Trường hợp 2: Nếu trong chương trình P vế phải của một quy tắc chỉ chứa một vị từ
IDB duy nhất là đầu của quy tắc thì phép lặp đơn giản là:
Trang 271.3 Chương trình Datalog có chứa phủ định
Phần này trình bày một số tiếp cận ngữ nghĩa quan trọng của chương trình Datalog có chứa phủ định Giả thiết thế giới đóng sẽ được sử dụng trong việc xác định ngữ nghĩa của các sự kiện phủ định
1.3.1 Ngữ nghĩa mô hình hoàn hảo
Lớp chương trình logic với ngữ nghĩa mô hình hoàn hảo (perfect model semantics) được xác định trên các chương trình phân tầng và phân tầng địa phương [11, 20, 24] Ngữ nghĩa mô hình hoàn hảo là một sự mở rộng của ngữ nghĩa mô hình nhỏ nhất
Định nghĩa 1.20
Quy tắc Datalog là công thức có dạng:
p q1 q2 … qm h1 h2 … hn (m 0, n 0) Trong đó p, qi, hj (i=1, …, m, j=1, …, n) là các nguyên tố có các đối chỉ có thể
là hằng hoặc biến Quy tắc này được gọi là an toàn nếu quy tắc p q1 q2 … qm
an toàn và mọi biến xuất hiện trong các đích con âm cũng xuất hiện trong các đích con dương
Một chương trình Datalog P là một CSDL suy diễn xác định gồm các quy tắc
Trang 28- Nếu có quy tắc với p là vị từ đầu và q là đích con phủ định thì có một cạnh
có hướng q p từ đỉnh q đến đỉnh p được gán nhãn “-” Lúc đó ta nói cạnh
q p là cạnh âm và vị từ p là phụ thuộc âm vào vị từ q
Định nghĩa 1.22 [11] Chương trình Datalog P gọi là đệ qui nếu đồ thị phụ thuộc
DG(P) của nó có chu trình, ngược lại P được gọi là không đệ qui Vị từ nằm trong chu trình được gọi là vị từ đệ qui, ngược lại gọi là vị từ không đệ qui
Định nghĩa 1.23 [11] Chương trình Datalog P gọi là được phân tầng nếu có một phép
gán str(.) các số nguyên tố 0, 1, 2, … cho các vị từ p trong P, sao cho với mỗi quy tắc r trong P ta có: Nếu p là vị từ đầu và q là đích con của r thì str(p) str(q) nếu q là nguyên tố và str(p) > str(q) nếu q là đích con âm Chương trình Datalog là phân tầng nếu nó được phân tầng
Mệnh đề 1.3 [11] Chương trình Datalog P là phân tầng khi và chỉ khi đồ thị phụ
thuộc DG(P) không có chu trình chứa cạnh âm, nghĩa là không có đích con phủ định đệ qui
Chú ý:
(i) Không phải mọi chương trình Datalog đều phân tầng
(ii) Các chương trình Datalog phân tầng thường có nhiều mô hình cực tiểu
và có thể không có mô hình nhỏ nhất
Ví dụ 1.11 Xét chương trình bao gồm các quy tắc sau:
r1: p(X) r(X) q(X)
r2: q(X) r(X) p(X) Trong đó r là vị từ EDB và p, q là các vị từ IDB Gọi P, Q và R lần lượt là quan
hệ cho những vị từ IDB p, q và r Giả sử R có một bộ dữ liệu là {1} Gọi S1 là một thể hiện trong đó P= và Q={1}, S2 là thể hiện trong đó P = {1} và Q = S1 và S2 đều là những mô hình cực tiểu nhưng chương trình này không có mô hình nhỏ nhất
Trang 29Nếu chương trình Datalog là phân tầng thì ta có thể tính các vị từ IDB theo thứ
tự các tầng của chúng, bắt đầu từ tầng thấp nhất Giả sử p là vị từ có tầng i, nếu quy tắc
có p là đầu và q là đích con có tầng nhỏ hơn i thì ta có thể nhận được quan hệ của q bởi
vì quan hệ này hoặc là quan hệ EDB hoặc đã được tính ở các tầng trước đó Rõ ràng không có đích con có tầng lớn hơn i và nếu q là đích con phủ định thì tầng của q là nhỏ hơn i Chiến lược này sẽ sinh ra một số mô hình cực tiểu của các quy tắc Quan trọng
hơn việc tính các vị từ IDB theo thứ tự chúng xuất hiện ở các tầng luôn luôn tự nhiên
và tạo ra một mô hình cực tiểu Vì vậy ta còn gọi mô hình này là mô hình hoàn hảo và
nó được xem là ngữ nghĩa của chương trình Datalog phân tầng
Giả sử quy tắc r trong P chứa đích con phủ định q(X1, …, Xn) có n biến Gọi Q
là quan hệ đã tính đối với q (hoặc đã cho nếu q là vị từ EDB) Để tính quan hệ cho đích con phủ định q(X1, …, Xn), ta có thể thực hiện như sau: Gọi DOM là hợp tất cả các hằng xuất hiện trong các quan hệ EDB và trong các quy tắc Do các quy tắc là an toàn nên không thể tồn tại một ký hiệu nào không thuộc DOM lại có thể xuất hiện trong một phép thế làm cho thân quy tắc đúng Vì vậy, ta có thể hạn chế quan hệ cho mỗi đích con phủ định chỉ chứa những bộ có các thành phần là những giá trị được chọn từ DOM Quan hệ
Thuật toán 1.4 {Tìm mô hình hoàn hảo của chương trình Datalog phân tầng)
Vào: Chương trình Datalog phân tầng, các quan hệ đối với các vị từ EDB của chương
trình
Ra: Mô hình hoàn hảo của P
Phương pháp: Thuật toán thực hiện theo các bước:
n lần
Trang 301 Tính DOM của P bằng cách chiếu tất cả quan hệ EDB lên các thành phần của chúng
và sau đó lấy hợp của các phép chiếu này và tập các hằng xuất hiện trong các quy tắc nếu có
2 Đánh số tầng cho tất cả các vị từ trong P, giả sử Pi là chương trình con của P ứng với tầng thứ i (i = 1, 2, …, k)
3 Với mỗi tầng i (i = 1, …, k) thực hiện các bước sau:
i) Tính các quan hệ cho các đích con phủ định trong quy tắc thuộc các tầng j
(j<i)
ii) Xem các quan hệ của các vị từ ở tầng thấp hơn là các vị từ EDB, tính mô
hình cực tiểu Mi của Pi
4 M = M1 M2 … Mk là mô hình hoàn hảo cần tìm của P
Định lý 1.3 [11] Thuật toán 1.4 tạo ra mô hình cực tiểu của chương trình Datalog
phân tầng
Định nghĩa 1.24 [11] Mô hình cực tiểu của chương trình Datalog được tạo ra bởi
thuật toán 1.4 được gọi là ngữ nghĩa mô hình hoàn hảo của P
Ví dụ 1.12 Xét chương trình Datalog gồm các quy tắc sau:
Trang 31Chương trình này phân tầng và ta có p, r, s thuộc tầng 0 và q thuộc tầng 1 Gọi
R, S là các quan hệ EDB tương ứng với các vị từ EDB r, s Gọi P, Q là các quan hệ IDB tướng ứng với vị từ IDB q, p Giả sử R = {1}, S = {1, 2} Ta có DOM = 1(R)
1(S) = R S = {1, 2} Ở tầng 1, ta có ngay quan hệ của P chính bằng R, sang tầng 2
ta có quan hệ đối với p(X) là
Định nghĩa 1.25 Giả sử P là Datalog và D là CSDL EDB cho trước Ký hiệu
ground(P, G) là chương trình nhận được từ P bằng cách thay thế tất cả các biến của
mọi quy tắc bởi các hằng trong P và loại bỏ các quy tắc có chứa đích con EDB sai
Để ý rằng nếu M là mô hình của chương trình P với CSDL EDB D cho trước thì
M cũng là mô hình của ground(P, D) và ngược lại
Định nghĩa 1.26 [20] Chương trình Datalog P gọi là phân tầng địa phương theo một
CSDL EDB D nếu ta có thể phân hoạch cơ sở Herbrand Bp của P thành các tập con B1,
B2, …, Bk, gọi là các tầng, sao cho đối với mọi quy tắc p q1 q2 … qm r1
r2 … rh của ground(P, D), nếu vị từ đầu p của quy tắc thuộc vào một tầng Bk
Trang 32Mệnh đề 1.4 [20] Chương trình Datalog là phân tầng địa phương theo một CSDL
EDB D nếu và chỉ nếu đồ thị phụ thuộc của ground(P, D) không có chu trình âm
Ví dụ 1.13 Xét chương trình Datalog P chỉ gồm một quy tắc:
Đồ thị phụ thuộc của ground(P, D) như hình vẽ sau:
Hình 1.4 Đồ thị phụ thuộc của chương trình trong ví dụ 1.13
Chương trình này phân tầng địa phương và q(1, 2), q(1, 3), q(2, 3), p(3) thuộc tầng 0, p(2) thuộc tầng 2 và p(1) thuộc tầng 2
Mọi chương trình Datalog phân tầng địa phương có chính xác một mô hình mà
ta cũng gọi là mô hình hoàn hảo Việc xác định mô hình hoàn hảo của chương trình Datalog phân tầng địa phương được thực hiện tương tự thuật toán tìm mô hình hoàn hảo của chương trình Datalog phân tầng Ta có thuật toán sau:
Thuật toán 1.5 (Tìm mô hình hoàn hảo của chương trình Datalog phân tầng địa
phương)
p(1)
p(2)
p(3) q(1, 3) q(2, 3)
q(1, 2)
-
-
-
Trang 33Vào: Chương trình Datalog P phân tầng địa phương theo CSDL EDB D
Ra: Mô hình hoàn hảo của P
Phương pháp:
1 Đánh số tầng cho tất cả các sự kiện trong P
2 Với mỗi tầng, bắt đầu từ tầng thấp nhất, tính mô hình cực tiểu của tập các quy tắc trong tầng đó
3 Mô hình hoàn hảo chính là hợp của các mô hình cực tiểu của các tầng
Ví dụ 1.14 Xét chương trình Datalog P phân tầng địa phương ở ví dụ 1.13, ta có:
Tầng 0: M0 = {q(1, 2), q(1, 3), q(2, 3)}
Tầng 1: M1 = {q(1, 2), q(1, 3), q(2, 3), p(2)}
Tầng 2: M2 = {q(1, 2), q(1, 3), q(2, 3), p(2), p(1)}
Vậy mô hình hoàn hảo của P là {q(1, 2), q(1, 3), q(2, 3), p(2), p(1)}
Định lý 1.4 [20] Thuật toán 1.5 xác định chính xác một mô hình cực tiểu của chương
trình Datalog P phân tầng địa phương
Quan hệ giữa chương trình Datalog P phân tầng, phân tầng địa phương được thể hiện qua các mệnh đề sau đây:
Mệnh đề 1.5 [20] Mọi chương trình Datalog phân tầng đều phân tầng địa phương Mệnh đề 1.6 [20] Nếu chương trình Datalog phân tầng địa phương cũng phân tầng t hì
mô hình hoàn hảo của chương trình Datalog phân tầng địa phương đồng nhất với mô hình hoàn hảo của chương trình Datalog phân tầng
Định lý 1.5 [20] Mô hình hoàn hảo của chương trình Datalog phân tầng (hoặc phân
tầng địa phương) được tính với thời gian đa thức
Trong phần tiếp theo, thảo luận một mở rộng quan trọng của ngữ nghĩa mô hình hoàn hảo đối với lớp chương trình Datalog là ngữ nghĩa mô hình bền vững
Trang 341.3.2 Ngữ nghĩa mô hình bền vững
Lớp các chương trình với ngữ nghĩa mô hình hoàn hảo bị hạn chế trên các chương trình phân tầng hoặc phân tầng địa phương Ngữ nghĩa mô hình bền vững (stable model semantics) là sự mở rộng ngữ nghĩa mô hình hoàn hảo, được đề xuất bởi Gelfond và Lifschitz [18] Ngữ nghĩa mô hình bền vững dựa trên cơ sở phép biến đổi
chương trình được gọi là phép biến đổi Gelfond-Lifschitz Phép biến đổi này tạo ra một
chương trình logic dương từ chương trình logic và thể hiện đã cho
Định nghĩa 1.27 [18] Giả sử P là chương trình Datalog và mỗi quy tắc của P được
thay thế bởi các hiện hành của quy tắc Đối với mỗi thể hiện I của P, phép biến đổi
Gelfond-Lifschitz của P theo I, ký hiệu P1, là chương trình nhận được từ P bằng cách:
Loại bỏ các quy tắc có chứa đích con q với q I
Xoá các đích con phủ định trong thân các quy tắc còn lại
Rõ ràng P1 là chương trình logic không chứa phủ định, vì vậy P1 có duy nhất một mô hình cực tiểu, ký hiệu Sp(I)
Định nghĩa 1.28 [18] Một thể hiện I của chương trình Datalog P được gọi là tập bền
vững của P nếu Sp(I) = I
Mệnh đề 1.7 [18] Mọi tập bền vững của P đều là mô hình cực tiểu P
Mệnh đề này cho phép ta gọi các tập bền vững là các mô hình bền vững
Định nghĩa 1.29 [18] Nếu chương trình Datalog P có đúng một mô hình bền vững thì
mô hình này được xem là ngữ nghĩa của P
Ví dụ 1.15 Xem chương trình sau:
q(1,2) p(X) q(X, Y) p(Y)
Trang 35Cho I = {q(1,2), p(1)} Phép biến đổi Gelfond-Lifchitz P1 là chương trình:
Trang 36P = {p q r t, p q, q p r t, r t, t } Với I={p, r, t}, ta có P1 = {p , r t, t }
Vậy Sp(I) = {p, r, t} Vậy I là mô hình bền vững của P Bây giờ nếu ta thêm một quy
tắc mới u u vào P, lúc này P không có mô hình bền vững
Sau đây là một số tính chất của mô hình bền vững:
Mệnh đề 1.8 [18] Đối với các chương trình Datalog P không chứa phủ định thì mô
hình nhỏ nhất của P chính là mô hình bền vững duy nhất
Định lý 1.6 [18] Nếu P là chương trình Datalog phân tầng thì P có duy nhất mô hình
bền vững và mô hình này đồng nhất với mô hình hoàn hảo của P
Định lý 1.7 Bài toán kiểm định thể hiện M là mô hình bền vững của chương trình
Datalog P được thực hiện với thời gian đa thức
trình Datalog, vì vậy việc kiểm định M là mô hình nhỏ nhất của PM được thực hiện với thời gian đa thức.[]
Để kết thúc phần này, ta có một số nhận xét: hai dạng ngữ nghĩa được thảo luận
ở trên chỉ được định nghĩa đối với một lớp hạn chế các chương trình logic Mặc dù ngữ nghĩa mô hình bền vững là mở rộng của ngữ nghĩa mô hình hoàn hảo nhưng việc tính toán mô hình bền vững không đơn giản và đòi hỏi chi phí cao; hơn nữa mô hình bền vững có thể không tồn tại
Trang 37cứu để mở rộng về ngữ nghĩa của trình Datalog có chứa phủ định trên logic 3 -trị cũng như các kỹ thuật tối ưu câu truy vấn trong CSDL suy diễn và chương trình Datalog
Trang 38CHƯƠNG 2 TỐI ƯU CÂU TRUY VẤN ĐỐI VỚI CHƯƠNG
TRÌNH DATALOG
Chương 2 trình bày về các cách tiếp cận khác nhau để trả lời câu truy vấn trong CSDL suy diễn Luận văn đã tiến hành thảo luận một cách chi tiết, phân tích làm rõ đặc trưng, ý nghĩa của mỗi cách tiếp cận Các phương pháp nhằm ngăn chặn các vòng lặp
vô hạn khi tìm kiếm lời giải của câu truy vấn đối với chương trình Datalog bằng phương pháp định giá bảng cũng như thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh đã được phân tích, xem xét
Tối ưu câu truy vấn là một trong những nhiệm vụ chính của CSDL suy diễn Chương trình Datalog là mô hình dữ liệu logic quan trọng của cơ sở suy diễn Có ba kiểu tiếp cận khác nhau trong việc định giá câu truy vấn trên chương trình Datalog: Các phương pháp tiếp cận trên xuống (top-down), các phương pháp tiếp cận dưới lên (bottom-up) và các phương pháp tiếp cận có sự kết hợp của hai phương pháp trên xuống và dưới lên
2.1 Định giá câu truy vấn theo kiểu trên xuống (top-down) [4]
Cách tiếp cận trên xuống (top-down) còn gọi là suy luận từ đích hoặc kết xâu lùi (backward-chaining) Xuất phát từ đích truy vấn, ta sẽ xem xét tất cả các cách thức có thể dẫn tới đích Trong việc định giá câu truy vấn theo kiểu trên xuống thì phép hợp nhất đóng vai trò trung tâm của quá trình tính toán
Các bước chính thực hiện việc đính giá phương pháp trên xuống như sau:
1 Khởi đầu từ đích truy vấn Q và chương trình Datalog P
2 Chọn một đích Ai từ đích truy vấn A1 A2 … Ai … An Việc chọn đích Aithường thực hiện từ phải sang trái Tìm một quy tắc A B1 B2 … Bm trong chương trình P sao cho A = Ai với là hợp nhất tử tổng quát nhất của A và Ai Kết thúc là thất bại nếu không có quy tắc nào như vậy
Trang 393 Cập nhật lại đích truy vấn bởi phép thế
(A1 A2 … Ai B1 B2 … Bm Ai+1 … An)
4 Nếu kết quả nhận được ở bước 3 là khác rỗng thì trở lại bước 2 Ngược lại, kết thúc
là thành công, ta nhận được một câu trả lời đối với truy vấn
Prolog là ví dụ điển hình cho cách tiếp cận này, thứ tự xử lý đích và các đích con được xác định dựa vào thứ tự các quy tắc được liệt kê trong chương trình
Việc sử dụng kiểu tiếp cận trên xuống có ưu điểm là cho phép khám phá chỉ các câu trả lời câu truy vấn, không tính các sự kiện không thích hợp với câu truy vấn
Tuy nhiên nó có những nhược điểm:
(i) Hỗ trợ không đầy đủ đối với bộ nhớ ngoài Việc tính toán không thể thực
hiện trên một tập khá lớn các sự kiện, và nếu bộ nhớ chính quá nhỏ thì sẽ không đem lại hiệu quả
(ii) Do việc tính toán được thực hiện “mỗi lần một bộ” nên có thể dẫn đến tình
trạng “thắt cổ chai” trong trường hợp có một số lượng thông tin lớn làm cản trở việc tính toán
(iii) Phương pháp trên xuống có sử dụng thủ tục quay lui để thử các quy tắc khác
khi một quy tắc thất bại, vì vậy đễ đi vào một vòng lặp vô hạn
(iv) Thủ tục quay lui không nhận ra các đích đã được gọi thực hiện trước đó nên
có thể lặp lại tính toán một cách không cần thiết
2.2 Định giá câu truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ
Để khắc phục những nhược điểm của phương pháp trên xuống, kỹ thuật ghi nhớ thường được sử dụng Ước lượng bảng (table evaluation) là phương pháp định giá truy vấn theo kiểu trên xuống đối với chương trình lôgic tổng quát, phương pháp này có sử dụng kỹ thuật ghi nhớ Phương pháp ước lượng bảng sẽ ngăn chặn các vòng lặp vô hạn
và đảm bảo việc định giá truy vấn sẽ kết thúc đối với chương trình Datalog, chi tiết hơn
có thể xem trong [3]
Trang 40Phần này tập trung trình bày chiến lược định giá bảng SLG nhằm ngăn chặn các vòng lặp vô hạn trong quá trình định giá câu truy vấn đối với các chương trình Datalog Chúng là các thuật toán hướng đích, có thể được áp dụng để định giá câu truy vấn đối với chương trình Datalog
đã tạo ra một sự phân chia chính xác trong không gian tìm kiếm: cần tính toán gì và thứ
tự tính toán là như thế nào Một điều đáng tiếc đối với phương pháp này là nó không hiệu quả, việc tính toán trên cây SLD có thể kéo dài vô hạn
Định nghĩa 2.1 Giả sử P là một chương trình Datalog và Q là một đích truy vấn Cây
SLD của đích truy vấn Q đối với chương trình P được xác định như sau:
Mỗi nút của cây là một đích và gắn kết với một phép thay thế
Đích Q là nút gốc, phép thay thế của Q là rỗng
Nếu Q’ = q1 q2 … qn (n 1) là một nút trong cây và q1 là vị từ IDB Các nút con của Q’ được xây dựng như sau: Với mọi quy tắc r trong P sao cho đầu của r và q1 là có thể hợp nhất được, đặt: H B1 B2 … Bn là một biến thể của r bằng cách dùng các biến mới Lúc đó một nút con Q” của Q’ là: