BO GIAO DUC VA DAO TAO
DAI HOC HUE
TRUONG DAI HOC KHOA HOC
TRAN QUOC PHU
TIM HIEU NGU NGHIA CHUONG TRINH DATALOG
DANG TUYEN CO TINH KE THUA VA UNG DUNG
CHUYEN NGANH: KHOA HOC MAY TINH MA SO: 8 48 01 01
LUAN VAN THAC SI KHOA HOC
DINH HUONG NGHIEN CUU
NGƯỜI HƯỚNG DÂN KHOA HỌC PGS.TS TRƯƠNG CƠNG TUẦN
Thừa Thiên Huế, 2020
Trang 2
Do thời gian cĩ hạn và bản thân chỉ mới bước đầu nghiên cứu về lĩnh vực này nên khơng thể tránh khỏi những thiếu sĩt, kính mong sự giúp đỡ và gĩp ý thêm của
Trang 3LOI CAM ON
ơi xin gởi lời cảm ơn chân thành sâu sắc đến Quý thầy cơ giáo
›hệ thơng tin - Trường Đại học Khoa học Huế đã tận tình hướng dẫn, thức, tạo điều kiện thuận lợi trong quá trình học tập và thực hiện
truyền đạt kiế luận văn tốt nghiệp
Tơi xin chân thành gửi lời biết ơn đến PGS.TS Trương Cơng Tuấn, người
thầy đã hướng dẫn tận tình và cĩ những gĩp ý sâu sắc, hướng dẫn rất quý báu cho tơi trong suốt quá trình nghiên cứu, kịp thời cho tơi nhiều lời động viên cũng như những nhận xét đúng đắn dé tơi cĩ thể hồn thành tốt được dé tai này
Trong quá trình thực hiện để tài, xin chân thành gửi lời cảm ơn đến sự giúp đỡ, những lời động viên từ phía gia đình, đồng nghiệp, bạn bè là động lực to lớn giúp tơi hồn thành tốt dé tài nghiên cứu của mình
Bản thân tơi đã cố gắng hết sức trong quá trình thực hiện để tài này nhưng chắc chắn sẽ khơng tránh khỏi những thiếu sĩt Kính mong quý thầy cơ và các bạn
Trang 4khái niệm thỏa mãn của các quy tắc là chưa đáp ứng đầy đủ cho mục đích này vì nĩ
khơng lưu ý đến sự hiện diện của những xung đột Vì vậy, trước hết ta trình bày một
số định nghĩa sau:
Định nghĩa 2.3 [2] Cho thể hiện 7 và zạ, › e grownđ(TD) là hai quy tắc nền xung dét, sao cho L € Head(ry), ta noi rằng r¡ ghi chồng r› trên L trong thê hiện 7 nêu:
(i) obj_of (11) < 0bj_of (72)
(1) ¬.L e1,
(ii) Phần thân của zz là đúng trong 7
Dinh nghia 2.4 [2] Mot quy tic r € ground(I]) gọi là được ghỉ chồng trong I nêu voi méi L € Head(r), ton tai_r; € ground(IT) sao cho r¡ ghi chồng rtrén L trong 7
Khái niệm ghi chồng cho phép ta giải quyết được các xung đột phát sinh giữa các quy tắc mà phần đầu bù nhau Chẳng hạn, giả sử ø và ¬ø đều dẫn xuất lần lượt trong 7 từ quy tắc z và z° Nếu r chuyên biệt hơn ?ˆ trong sơ dé kế thừa thì z bị ghi
chồng, nghĩa là z là được thừa nhận hon la wa boi vi no duoc dẫn xuất từ một quy
tắc đáng tin cậy hơn
Ví dụ 2.2 Xét trở lại chương trình II trong ví dụ 2.1: on {av Ab <¢, not d}
02:0, {be ¬aVc<& ce b}
Cho I = {=a, b, c} 1a một thé hién Quy tắc nave eH trong đối tượng ø; ghi
chồng quy tắc { v ¬Ư < ¢, not d} trong 0, trén literal a trong J Hơn nữa, quy tắc b < trong ø; ghi chồng quy tắc ø v ¬ð < c, not đ trong 0, trén literal Gb trong 7 Như vậy, quy tắc a v ¬ð < e, not đtrong ø¡ được ghi chồng trong 7
Định nghĩa 2.5 Cho 7 là một thể hiện của IL 7 là mơ hành của II nếu mỗi quy tắc trong grouna(TD là được thỏa mãn hoặc được ghi chồng trong I 7 là mơ hình cực
tiểu của LI nễu khơng tổn tại tập con thực sự của 7 là mơ hình cua IT
Trang 5CHU ONG 3 UNG DUNG CUA CHUONG TRÌNH DATALOG DANG
TUYỂN CĨ TÍNH KÉ THỪA - 52 22225122212212212221222E te 27
3.1 HỆ THĨNG DL/V 22222 2222221221211222122112212212222222222 are 27 3.1.1 Giới thiệu về hệ thống DLV 2- 222222 22122212221127122111221211222 e6 27 3.1.2 Thực thi chương trình bằng hệ thống DL.V 2222222222222 28
3.2 CÀI ĐẶT VÀ THỰC THỊ MỘT BÀI TỐN BẰNG HỆ THĨNG DLV 29 3.3 TIỂU KÉT CHƯƠNG 3 - 221 E12E12111121121121 22t rrererse 39
Trang 7DANH MỤC CÁC KÝ HIỆU
Cơ sở Herbrand của chương trình P Vũ trụ Herbrand của chương trình P
Tập tất cả các tập con của cơ sở Herbrand 8p
Mơ hình nhỏ nhất của P
Tốn tử hệ quả trực tiếp
Trang 8DANH MUC CAC CHU VIET TAT
CSDL Cơ sở dữ liệu
Trang 9Hinh 3 Hinh 3 Hinh 3 Hinh 3 Hinh 3 Hinh 3 Hinh 3 DANH MỤC CÁC HiNH VE
Kiến trúc tổng quát của hệ thống DL,V . -2 -2c22zcc2 28 Kết quả thực thi của chương trình T, -22222222E22E222E22xzz2 30 Kết quả thực thi của chương trình IIo, - 31 Kết quả thực thi của chương trình IIo, 31 Hình vẽ minh họa bài tốn 7 giới khối _ s.222-222-ce 32 Kết quả thực thi của chương trình TĨ; - -222222E22E222z22xcs2 36 Kết quả thực thi của chương trình T, 22222222E22E222x22xzse 38
Trang 10MO DAU
Trong hơn hai thập kỷ qua, việc nghiên cứu vé chuong trinh Datalog dang tuyển đã đạt được nhiều thành tựu quan trọng cả về lý thuyết và ứng dụng Lĩnh vực nghiên cứu về chương trình Datalog dạng tuyển đã được nhiều nhà khoa học quan
tâm và được áp dụng vào việc biểu diễn và xử lý tri thức trong lĩnh vực trí tuệ nhân tạo và các lĩnh vực nổi lên khác như quan tri trí thức và tích hợp thơng tin
Chương trình Dafalog dạng tuyên với sự kế thừa giữa các quy tắc là sự mở rộng của chương trình Datalog dạng tuyển Lớp chương trình này đã được cơng
nhận rộng rãi để biểu diễn tri thức và các lập luận thơng thường Điểm mạnh của
chương trình Datalog dạng tuyển là khả năng của nĩ trong việc mơ hình hĩa tự nhiên các tri thức khơng đầy đủ Với việc bổ sung thêm sự kế thừa giữa các quy tắc sẽ làm nổi bật những đặc tính của các ngơn ngữ biểu diễn tri thức mới, nhằm mở rộng phương pháp lập trình logic đạng tuyển với sự kế thừa
Luận văn nghiên cứu về ngữ nghĩa của chương trình Datalog dạng tuyển cĩ tính kế thừa giữa các quy tắc Những nội dung nghiên cứu của luận văn cĩ ý nghĩa khoa học về mặt lý thuyết cũng như trong ứng dụng trong thực tiễn
Cấu trúc luận văn gồm phần mở đầu, ba chương nội đung, phần kết luận và tài
liệu tham khảo
Chương l trình bày về tổng quan về ngơn ngữ logic bậc nhất cùng với cú pháp và ngữ nghĩa của chương trình Datalog dạng tuyên
Chương 2 trình bày về cú pháp và ngữ nghĩa của chương trình Datalog dạng tuyển cĩ tính kế thừa giữa các quy tắc
Chương 3 trình bày ứng dụng của chương trình Datalog dạng tuyển cĩ tính kế thừa giữa các quy tắc thơng qua một số bài tốn và tiến hành cài đặt, thực thi bằng hệ thống lap trinh logic DLV
Trang 11Do thời gian cĩ hạn và bản thân chỉ mới bước đầu nghiên cứu về lĩnh vực này nên khơng thể tránh khỏi những thiếu sĩt, kính mong sự giúp đỡ và gĩp ý thêm của
Trang 12CHUONG 1
CAC KHAI NIEM CO SO VE
CHUONG TRINH DATALOG DANG TUYEN
Chương này sẽ trình bày các khái niệm cơ sở về chương trình Datalog dạng tuyển cùng với các tiếp cận ngữ nghĩa của lớp chương trình này Do chương trình Datalog dạng tuyển dựa trên ngơn ngữ logic bậc nhất và là sự mở rộng của chương trình Datalog nên trước hết, chương l sẽ trình bày một số khái niệm của ngơn ngữ bậc nhất, chương trình Datalog Đây là những kiến thức cơ bản làm tiên để cho các nghiên cứu trong các chương tiếp theo
1.1 NGON NGU LOGIC BAC NHAT
Phần này trình bày các khái niệm cơ sở của ngơn ngữ logic bậc nhất Khái niệm đầu tiên là bộ ký tự và các cơng thức logic
Định nghĩa 1.1 (Bộ ký tự) Bộ ký tự bao gồm các lớp những ký hiệu sau:
1 Hằng, thường ký hiệu bởi các chữ cái thường, ví dụ a, Ư, é, 2 Biến, thường ký hiệu bởi các chữ cái in hoa, ví dụ X, Y, Z ,
3 Ký hiệu hàm, thường ký hiệu bởi các chữ cái thường, ví dụ ƒ, ø, Ù, ,
4 Ký hiệu vị từ, thường ký hiệu bởi các chữ cái thường, ví dụ p, 4, r, ,
5 Hằng vi tir: true, false
6 Ký hiệu kết nối: ¬(phủ định), v (tuyển), ~ (hdi), < (suy ra), © (néu va chỉ
nếu)
7 Ký hiệu lượng từ: V (với mọi), 3 (tồn tại)
§ Dấu ngoặc đơn trai ( dấu ngoặc đơn phải ), đấu phẩy
Trong một bộ ký tự, các ký hiệu hằng để chỉ các đối tượng nào đĩ, các ký hiệu vị từ để chỉ mối quan hệ giữa các đối tượng Mỗi vị từ được gắn liền với một số tự nhiên, gọi là ngơi để chỉ số các đối của vị từ Các ký hiệu hàm biểu diễn các
Trang 13nhiên nhăm xác định sơ các đơi của hàm Bộ ký tự cũng bao gơm các biên, mơi biên là ký hiệu cho một đối tượng chưa được chỉ rõ
Trên cơ sở bộ ký tự đã cho, người ta đưa ra định nghĩa về hạng thức Hạng
thức là yếu tố quan trọng của cơng thức logic, được xây dựng từ các hằng, biến,
hàm và được định nghĩa hình thức như sau:
Định nghĩa 1.2 (Hạng thức) Cho 41 là bộ ký tự HJạng thức được định nghĩa đệ qui như sau:
i Mỗi hằng trong 44 là một hạng thức ii Mỗi biến trong 44 là một hạng thức
ill Néu fla ký hiệu ham n-ng6i trong A va hy, ,f, la cac hang thire thi f(h, ,4)) là một hạng thức
¡v Hạng thức chỉ được sinh ra bởi các quy tắc trên
Định nghĩa 1.3 (Nguyên tố, literal) Cho 44 bộ ký tự và 7 là tập các hạng thức trên A Lúc đĩ:
(i) Néu p là ký hiệu vị từ n-ng6i trong A va h, ., f„ là các hạng thức thuộc T thi p(h, ., 4.) được gọi là một nguyên tố
(đi) Một nguyên tố p được gọi là một literal đương và phủ định của nguyên tố,
ký hiệu ¬p, được goi 1a literal dm
Nguyên tơ/hạng thức khơng chứa biến được gọi là nguyên tố/hạng thức nền và literal nền là literal được xây đựng từ nguyên tố nên
Ví dụ 1.1 Cho phunu, con lần lượt là các ký hiệu vị từ l-ngơi và 2-ngơi, ký hiệu X, Y là các biến Lúc đĩ, phunu(X) la nguyên tổ để chỉ Y la mot phu nữ, con(X,Y) la
nguyên tố dé chi Y là con của X
Trang 14này được gọi là các cơng (hức logic (hoặc đơn giản là cơng thức) và được định nghĩa như sau:
Định nghĩa 1.4 (Cơng thức) Cho 7 là tập các hạng thức trên bộ ký tự 41 Cơng thức được định nghĩa đệ quy như sau:
Œ) Nguyên tổ là cơng thức,
Œ) Nếu E và Ƒ là các cơng thức th: (¬E), Œ AP), (Œ vÉ), (F< E), (E © F) là các cơng thức;
Œ) Nếu Ƒ là cơng thức và X là một biến trong Athi VY (FP),
3X Œ) là các cơng thức; VX và 3X được gọi là phần /ượng fừ, F là miễn tác dụng
của lượng từ;
(y) Cơng thức chỉ được sinh ra bởi một số hữu hạn các quy tắc trên
Một cơng thức/hạng thức khơng chứa biến được gọi là cơng thức/hạng thức nên
Định nghĩa 1.5 (Cơng thức đĩng)
1 Vị trí của biến Y trong một cơng thức được gọi là rằng buộc nêu X nằm trong
miễn tác dụng của lượng từ VX cĩ mặt trong cơng thức đĩ; trái lại, nĩ được gọi là tr ao
2 Một biến được gọi là biến ràng buộc (t.ư biến tự đo) trong một cơng thức, nếu tổn tại các vị trí ràng buộc (t.ư vị trí tự do) của nĩ trong cơng thức đĩ Một cơng
thức khơng cĩ biến tự do được gọi là cơng fhức đĩng
Ví dụ 1.2 VY 3X (p(X,Y) ^A q(X)) là cơng thức đĩng, trong khi cơng thức 3X (p(X,Ÿ) A q4(Y)) khơng phải là cơng thức đĩng, vì Y là biến tự do
Trang 15thirc cé dang VF, ta thuong bo qua luong tt V, luc đĩ lượng từ V sẽ được hiéu
ngầm định
Từ các khái niệm về bộ ký tự và cơng thức, ta cĩ định nghĩa sau về ngơn ngữ
bậc nhất:
Định nghĩa 1.6 (Ngơn ngữ bậc nhất) Một ngơn ngữ: bậc nhất bao gồm một bộ ký tự và những cơng thức được xây dựng trên bộ ký tự đĩ
1.2 NGỮ NGHĨA CỦA CƠNG THỨC
Định nghĩa 1.7 (Thể hiện) Một 7 hiện I của ngơn ngữ bậc nhất 7 bao gồm:
1 Một tập D khác rong, được gọi là miễn của thể hiện 7
2 Mỗi hằng e trong 7 được gán bởi một phần tử c¡ của 7
3 Mỗi ký hiệu hàm ƒ z-ngơi trong 7, được gán với một ánh xạ ƒ từ Ð* vào D
4 Mỗi ký hiệu vị từ p ngơi trong L được gán với một ánh xạ j¡ từ J” vào tập các giá tri chan ly {true, false}
Thể hiện của các hằng, hàm và ký hiệu vị từ là cơ sở cho việc gan giá frị chân
]ý các cơng thức của ngơn ngữ bậc nhất Ngữ nghĩa của cơng thức là một giá trị chân lý và ngữ nghĩa này phụ thuộc vào các thành phần của cơng thức
Trang 16Gọi 7 là ngơn ngữ bậc nhất được xây dựng từ hằng a, ký hiệu hàm s và các ký hiệu vị từ ø, ø từ các cơng thức ở trên Xét một thể hiện 7 của ngơn ngữ bậc nhất 7 như sau:
- Mién D Ia tap sé tu nhién N,
- Hằng a được gán bởi số 0 của D,
- Ham s 1-ng6i duge gan boi ham s;: D > D nhw sau:
Vn € D, s(n) =n+1,
- VỊ từ p I-ngơi được gán bởi ánh xạ p;: D > {true, false} nhu sau:
Vn e D, pín) = true,
- Vị từ ø3-ngơi được gán bởi ánh xạ g;: DÍ—2 {#rue, ƒaise} như sau:
VWXYZ €D, of X,Y,Z) = true néu Z=X+Y va q(X.Y,Z) = false néu Z # X+Y
Định nghĩa 1.8 (Ngữ nghĩa của cơng thức) Cho 7 là một thê hiện của ngơn ngữ bậc nhất L cĩ miền D và Ƒ là một phép gán biến Lúc đĩ một cơng thức trong 7, sẽ cĩ mot gia tri chan ly 1a ¢rue hoac false nhu sau:
1 Néu cơng thức là một nguyên tổ píđ ín) thì giá trị chân lý của p nhận được
từ giá trị của ?'(/ , ¿„ ), trong đĩ p’ 1a ánh xạ được gán đối với nguyên tế p bởi thể
hiện J va ¿, , z„ là các phép gán hạng thức của í¡ íạ theo 7 và Ƒ
2 Nếu cơng thức cĩ đạng 3X 7, thì giá trị chân lý của cơng thức là re nếu ton tai d € D sao cho F co gia tri đúng theo J va V(X/d), trong do V(X/d) chinh la V ngoại trừ XY được gán bởi đ, ngược lại giá trị chân lý của cơng thie la false
Trang 174 Néu cong thuc co dang HE, EAR, EV FL, F eH ELE © F thi gia tri chan ly
của cơng thức được cho bởi bảng sau đây: EE i ¬E | EAFH | EvF | Fe ELE | ESF True | true | false true true true true True | false | false | false true false false false | true true | false true true false false | false | true | false | false true true
Nhận xét: Giá trị chân lý của một cơng thức đĩng khơng phụ thuộc vào phép gan biến, vì vậy ta cĩ thể nĩi rằng giá trị chân lý của cơng thức đĩng gắn liền với thể
hiện
Định nghĩa 1.9 Cho 7 là một thể hiện của ngơn ngữ bậc nhất 7 và Ƒ là cơng thức đĩng trong 7 Lúc đĩ, # là đứng trong 7 nếu V (Ƒ) là đúng theo J
Định nghĩa này cĩ thê mở rộng đối với tập các cơng thức bằng cách xem xét tập cơng thức như là phép biêu diễn của một phép hội Chang han, tap {F}, F,} la
đúng trong 7 nếu V (: A A Fạ) là đúng theo 7
Định nghĩa 1.10 (Mơ hình của cơng thức đĩng) Cho 7 là một thể hiện của ngơn ngữ bậc nhất 7 và F là một cơng thức đĩng của 7 Lúc đĩ 7 là mơ hình của F nếu F đúng trong J
Vi du 1.4 Xem céng thire F : VX 3Y (p(Y.Y)) và thể hiện 7 như sau: - Miễn D là tập số nguyên khơng âm,
Trang 18V(XY) € D’ , p(X,¥) = true nếu X < Y và p(X,Y) = ƒalse nếu ngược lại
Lúc đĩ thê hiện 7 là mơ hình của cơng thức # Trong thể hiện 7 cơng thức F biêu diễn mệnh để đúng: “ Mọi số nguyên khơng âm đều tổn tại số nguyên khơng âm lớn hơn nĩ ” Mặt khác, 7 khơng phải là mơ hình của cơng thức 3X VỸ (p(X,P))
Khái niệm về mơ hình của một cơng thức đĩng cĩ thể mở rộng đối với một tập
cơng thức đĩng
Định nghĩa 1.11 (Mơ hình của tập cơng thức đĩng) Cho 7 là thê hiện của ngơn ngữ
bậc nhất 7 và Š là một tập các cơng thức đĩng của L 7 được gọi là mơ hình của S
nếu 7 là mơ hình của mỗi cơng thức trong ở
Chú ý: Nếu Š = {Ƒ: Ƒạ} là một tập hữu hạn các cơng thức đĩng thì 7 là mơ hình
của ,Š nêu và chỉ nêu 7 là mơ hình của #) A A #?n Vi du 1.5 Xét chương trình logic P gồm các mệnh đề: rn: Mae, ry: p(X) r(W, rs: q(X) <— p(X) Goi L là ngơn ngữ bậc nhất được xây đựng từ hằng a trong chuong trình P, biến X, các ký hiệu vị từ một ngơi r, ?, g e Xétthể hiện 7 của; - Miền D= {a}, - Hằng a được gán với a € D,
- p(a) = true, r(a) = true, q(a) = true
Trang 19- Mién D = {a},
- Hing a duoc gan véi a € D,
- p(a) = false, r(a) = true, g(a) = true
Ta co J khéng phai la m6 hinh cia P vi ménh dé p(¥) < r(X) khơng đúng trong J
Rõ ràng một tập cơng thức đĩng Š cĩ thể cĩ vơ số thể hiện nhưng khơng cĩ thể hiện nào là mơ hình của Š, chẳng hạn Š = {FƑˆ, ¬Ƒ} với Ƒ là cơng thức đĩng tùy ý Những tập cơng thức đĩng như vậy được gọi là khơng thỏa mãn được Khi ta dùng các cơng thức để biểu diễn “thế giới” thì cần thiết phải đâm bảo rằng những cơng
thức này là /Øhỏa mãn được, nghĩa là cĩ ít nhất một mơ hình, và đặc biệt thế giới được mơ tả là một mơ hình cua S
Định nghĩa 1.12 Cho Š là một tập các cơng thức đĩng của ngơn ngữ bậc nhất 7 () 8 là thỏa mãn được nêu Š cĩ ít nhất một mơ hình
(1) S khơng thỏa mãn được nếu khơng cĩ thê hiện nào của 7, là mơ hình của ẩ Định nghĩa 1.13 (Hệ quả logic) Cho Š là một tập các cơng thức đĩng của ngơn ngữ bậc nhất L Cơng thức đĩng Ƒ la hệ quả logic của S néu F đúng trong mọi mơ hình
của S, ky hiéu SFF
1.3 CHUONG TRINH DATALOG DANG TUYEN 1.3.1 Ca phap
Định nghia 1.14 (Quy tic Datalog dang tuyên) [4] Một quy ắc Dafalog dạng tuyển (hoặc gzy đắc) là cơng thức cĩ dạng:
điV Vd„<— bị, , Đụ, ¬Đgy.1, mạ, ()
trong đĩ #> 1,m>k >0, a; (¡= 1, , m) và b,Ú = 1, , m) là các nguyên tố, dấu
phẩy trong (1) thay cho ký hiệu của phép hội (A), đi Vv va, la phần đầu và dy,
Trang 20.„ b, Ủy ,¬Ủ„ là phần thân của quy tac Néu n= 1 va k= m= 0 thi (1) con được gọi là một sự kién (fact)
Cho z là một quy tắc cĩ đạng (1) Ký hiệu :
H(r) = {ai a„} là tập các nguyên tố trong phan dau của z,
B Œ) = fbi, by} là tập các literal đương xuất hiện trong phan thân của 7, B (r) = tỗạ-, , ¬B„„} là tập các literal âm xuất hiện trong phan thân của r,
Br) = B*(r) U B (7) la tap cac literal trong phan thân của z
Định nghĩa 1.15 (Chương trình Datalog dạng tuyển) [4] Một chương trình Dafalog đạng huyền là một tập hữu hạn các quy tắc Datalog dạng tuyên Một chương trình Datalog dạng tuyển khơng cĩ ký hiệu phủ định được gọi là một chương trình Datalog dạng tuyển dương
Vi du 1.6 Cho a,đ, í; và í; là các hằng: Xà biến, mon_hoc va bo_tri la cac vi tt
2-ngơi Xem chương trình Datalog dạng tuyến sau : mị: mon hoc(đ) <—
rz, bo_tri(X, tl) v bo_tri(X, t2) v bo_tri(X, 13) — mon hoc(Y)
Trong chương trình này, z¡ là một quy tắc để diễn ta z là một mơn học và quy tắc rz là quy tắc với ý nghĩa là: “Mơn học X được bố trí thi vào một trong ba thời
gian í\, í: hoặc í;”
1.3.2 Ngữ nghĩa
Phần này trình bày các tiếp cận ngữ nghĩa của chương trình Datalog dạng tuyển Đối với lớp chương trình Datalog dạng tuyển dương, tập các mơ hình cực tiêu thường được sử dụng là ngữ nghĩa Tuy nhiên, đối với chương trình logic tuyển, ngữ nghĩa được chấp nhận một cách phơ biến là ngữ nghĩa tập trả lời [4] 1.3.2.1 Ngữ nghĩa chương trình Datalog dạng tuyển dương
Định nghĩa 1.16 (Vũ trụ Herbrand và Cơ sở Herbrand) Cho P là một chương trình Datalog dạng tuyên
Trang 211 Vũ trụ Herbrand của P, ký hiệu Up, la tap tat cả các hằng của P
2 Cơ sở Herbrand của P, ký hiệu Bp, là tập tất cả các nguyên tố nền được xây dựng từ các ký hiệu vị từ trong P cĩ đối là các hằng từ vũ trụ Herbrand Ù; của P Ví dụ 1.7 Xét chương trình Datalog dạng tuyển P gồm các quy tắc sau: r(1)— r(2)<— PD) v (X) <1) s%)_ < r0, —4Œ) Ta cĩ : e Vũ trụ Herbrand của P la: Up = {1, 2} e Cơ sở Herbrand của ? là : Bp = tr), 72), pC) PZ) gC) a2), s(D, s(2)}
Định nghĩa 1.17 (Thể hiện Herbrand) Cho P là một chương trình Datalog dạng
tuyển Một thê hiện Herbrand của P là tap con J cua Bp
Vi du 1.8 Xét chương trình Datalog dạng tuyển P ở ví dụ 1.7 Một số thê hiện Herbrand của ? là:
1 = ữQ), r2), pQ))
1 = tr), r) pŒ) g2) sCÐ} 1 = tr), r2), p2) 4D) s(2)}
Định nghĩa 1.18 (Hiện hành nền) #iện hành nền của một quy tắc r trong chương trình Datalog dang tuyén P là quy tắc nhận được bằng cách thay thế các biến trong r bởi các hằng trong Up
Ta su dung ky hiéu Ground(P) dé chi tap tất cả các hiện hành nền của các
quy tắc xuất hiện trong P
Vi du 1.9 Xét chương trình Datalog đạng tuyên P ở ví dụ 1.7 Lúc đĩ chương trình
Ground(P) nhận được từ P sau khi thay thế tất cả các đối của các vị từ bởi các hằng
Trang 221 va 2 la: rl) <— 2) — PO) v qd) — r sd) <r), aq) P2) v q2) — 72) s(2) <—r(2), aq(2)
Định nghĩa 1.19 Cho P là một chương trình Datalog dạng tuyên và 7 là một thể hiện Herbrand của P Ta nĩi rằng literal đương nên 4 là đứng (tương ứng s2?) trong 7 nếu A eI (trong tng A £ 7), literal âm nền —⁄4 là đứng (tương ứng s2?) trong 7 nếu 4 £ ï (ương ứng 4A e ))
Định nghĩa 1.20 Cho P là một chương trình Datalog dạng tuyển và 7 là một thể hiện Herbrand của P Một quy tắc r € Ground(P) la ding trong I néu it nhat mot nguyén té thudc H(r) la ding trong J hoặc ít nhất một literal thuộc 80) là sai trong I
Định nghĩa 1.21 (Mơ hình Herbrand) Cho P là một chương trình Datalog dạng
tuyển và 7 là một thể hiện Herbrand của P 7 được gọi là mơ hình Herbrand của P
néu moi quy tic r « Ground(P) la đúng trong J
Ví dụ 1.10 Xét các thé hién 1, b, Jz cha chương trình Datalog dạng tuyển P ở ví dụ 1.7, rõ ràng 7¡ khơng phải là mơ hình Herbrand của P Tuy nhién J, = {7(1),
r(2), pC), q(2), s(1)} va Jz = {r(1), r(2) p(2) q(1) s(2)} là các mơ hình Herbrand của P
Để đơn giản, từ đây về sau chúng ta sẽ gọi thể hiện Herbrand là thể hiện và mơ hình Herbrand là mơ hình
Định nghĩa 1.22 (Mơ hình cực tiêu) Cho P là một chương trình Datalog đạng tuyển
Mơ hình 3⁄4 của P được gọi là mơ hình cực tiểu nếu khơng tổn tại mơ hình N nao
khác của P sao cho W c A⁄ Nếu mơ hình cực tiêu của P là duy nhất thì nĩ cũng
Trang 23được gọi là mơ hình nhỏ nhất của P
Vi du 1.11 Cho chương trình Datalog dạng tuyên P gồm các quy tắc sau : avbe cea P cĩ 4 mơ hình là: 1= {5}, M, = {a, c}, Ms; = {b, c}, M, = {a, b, c} ViM, (M3 CM, vaM,c M,, nhung M, U My, và À2 Ú Ä Do đĩ P cĩ hai mơ hình cực tiểu là ÄZ¡ và À⁄¿
Đối với chương trình Datalog dạng tuyển dương cĩ một tập các mơ hình đem lại ngữ nghĩa đáng mong đợi là tập các mơ hình cực tiều
Vi du 1.12 Xét chương trình Dafalog dạng tuyển P trong ví dụ 1.7 P cĩ 4 mơ hình cực tiểu là: 1= ữ(), r2), p(Ù, pØ), s(), sŒ)) 1 = (1), r2), ạCD, p2) s)} 5 = ữ(), r2), p(), aG) s(} 1h = ữQ), r2), 4), a@)}
Định nghĩa 1.23 Ngữ nghĩa của chương trình Datalog dạng tuyển dương P là tập
các mơ hình cực tiểu của P, ký hiệu A⁄A⁄Z(P)
1.3.2.2 Ngữ nghĩa chương trình Datalog dạng tuyển
Phần này trình bày ngữ nghĩa tập trả lời đối với chương trình Datalog dạng tuyển, trong đĩ thân quy tắc cĩ thể chứa phủ định Các chương trình như thế này
được sử dụng một cách rộng rãi như là một cơng cụ đánh giá đối với việc biểu diễn
tri thức và các lập luận thơng thường Một trong những điểm mạnh của chương trình Datalog đạng tuyên là khả năng của nĩ trong việc mơ hình hĩa tự nhiên các tri thức khơng đầy đủ Trước khi đi vào ngữ nghĩa chương trình Datalog dạng tuyển, ta
Trang 24xét vi du sau:
Vi du 1.13
Xét kịch bản sau:
Giả sử “Ta vừa thấy anh An cĩ một cánh tay bị gãy nhưng ta lại khơng nhớ là tay nào Nhưng ta lại biết rằng An viết bằng tay trái Vì thế An cĩ thể viết được nếu tay trái anh ta khơng gãy.”
Câu hỏi đặt ra là An cĩ thê viết được hay khơng?
Từ những thơng tin khơng đầy đủ đĩ ta khơng thể khắng định được một cách chính xác về tình trạng cánh tay của An Tuy nhiên, ở đây ta cĩ thể đặt ra hai khả năng để trả lời cho câu hỏi trên: (a) “Tay trái của An bị gãy và anh ta khơng thê viết”, và (b) “Tay phải của An bị gãy và anh ta cĩ thê viết được”,
Trong ngơn ngữ của các chương trình Datalog dạng tuyển, hiện trạng này được mơ tả dưới dạng các quy tắc:
mị: la broken v ra_broken — rz, can_write < —la_broken
Ngữ nghĩa của chương trình Datalog đạng tuyên P„„ chứa các quy tắc r; va r,
được đưa ra bởi hai mơ hình sau:
M1 = {la broken, ¬ra broken, ¬can_ wrile} AM = { ra broken, ¬la broken, can wrile }
M, va M, la hai kịch bản cĩ thể xây ra và nĩ tương ứng chính xác với hai khả năng đã chỉ ra
Sự hiện điện của dạng tuyến trong phần đầu của mệnh đề đã làm cho chương trình Datalog dạng tuyển khá phức tạp (nghĩa là thơng tin mới cĩ thé làm mất hiệu lực các kết luận đưa ra) Nhiều tác giả đã nghiên cứu và đưa ra nhiều ngữ nghĩa chương trình Datalog dạng tuyên nhưng một ngữ nghĩa được chấp nhận rộng rãi — ngữ nghĩa tập các câu trả lời, đĩ là mở rộng của ngữ nghĩa mơ hình bền vững được
đề xuất bởi Gelfond and Lifschitz Ngữ nghĩa này được xác định bằng phép biến đơi chương trình Datalog dạng tuyển P ban đầu theo một thê hiện 7 cho trước thành chương trình Datalog dạng tuyển dương PỨ Ta cĩ các định nghĩa hình thức sau:
Trang 25Định nghĩa 1.24 [4] Cho P là một chương trình Datalog đạng tuyển và 7 là một thé
hiện của P PÍ là chương trình nhận được từ grouná(P) sau khi thực hiện các phép
biến đổi:
() Loại bỏ tất cả các quy tắc r e Grownd(P) cĩ literal âm ¬B trong thân của
nĩ với Ư e Ï và
(ii) Loai b6 cac literal âm trong thân của các quy tắc cịn lại
Như vậy, với phép biến đổi này thì với thé hiện bất kỳ 7 cho trước, các quy tắc
cĩ chứa các literal âm là sai trong thé hiện 7 sẽ bị loại bỏ Tất cả các literal âm cịn
lại trong thân các quy tắc cịn lại cũng được bỏ đi Từ đĩ chương trình PÍ thu được sau phép biến đổi này sẽ khơng chứa phủ định nên nĩ là chương trình Datalog đạng tuyển đương
Định nghĩa 1.25 (Tập trả lời) [4] Một thể hiện 7 của chương trình Datalog dạng
tuyển P được gọi là fáp trả lời của P nếu 7 là một mơ hình cực tiểu của chương
trình Datalog đạng tuyển đương P”
Định nghĩa 1.26 (Ngữ nghĩa của chương trình Datalog dạng tuyên) [4] Ngữ nghĩa của chương trình Datalog dạng tuyển P được xác định bởi tập các tập trả lời của P, ky hiéu AS(P) Vi du 1.14 Cho chvong trinh Datalog dang tuyển P gồm các quy tắc sau: avb«<-e c <a ab Xét các thể hiện cĩ thể cĩ của P gồm: 1, = ©, 1, = {a}, 1, = {b}, 1, = {ce},
I, = {a, b}, 15 = {a, c}, Ig = {b, c}, Ip = {a, b, c}
Các chương trình nhận được sau phép biến đổi chương trình P đối với các thé hiện này là:
5 ={avb«<,c< a}, = favbe,ceah,
P” ={avb<}, 5 = {ee a},
Trang 26" = fav b<}, © = {ee ah, Ph=Ø,pP” =Ø Các tập mơ hình cực tiểu tương ứng của các chương trình nhận được ở trên là: MMCP °)= {{b} {a €} MM(P * ) = {{B}, {a, c}} MM(P *) = {fa}, {b}} MMCP *)= {Ø) MMCP *)= {{a} {b}} MMCP ˆ)= {Ø) MMCP *)= (Ø) MMCP ")= {Ø) Ta cĩ: h =Ø£ MM(P °) I= {a} ¢ MM(P*) 1,= {b} eMMKP °) 1= {c} ¢ MM(P”) l,= {a, b} #£ MM(P ˆ*) Is= {a,c} ¢ MM(P*) Is= {b, c} € MM(P*) I= {a, b,c} ¢ MM(P”)
Vậy ngữ nghĩa của chương trình Datalog đạng tuyển P là tap AS(P) = {{b}} Nhận xét: Rõ ràng nếu P là chương trình Datalog dạng tuyển dương thì PÏ trùng với Grouná(P) Do đĩ đối với chương trình Datalog dạng tuyển dương thì A⁄A⁄(P) = AS(P)
1.4 KET LUAN CHUONG 1
Chương 1 đã trình bày tổng quan các khái niệm cơ sở của ngơn ngữ logic bậc nhất, cú pháp và ngữ nghĩa của chương trình Datalog dạng tuyển Đối với lớp chương trình Datalog dạng tuyển dương, ngữ nghĩa mơ hình cực tiểu được trình bày chỉ tiết Đối với lớp chương trình Datalog dạng tuyển, khi thân của các mệnh đề cĩ chứa phép phủ định, ngữ nghĩa tập trả lời đã cho thấy là sự mở rộng tự nhiên so với ngữ nghĩa mơ hình cực tiểu của chương trình Datalog dạng tuyên đương Trong chương hai sẽ trình bày về chương trình Datalog dạng tuyển cĩ tính kế thừa giữa các quy tắc
Trang 27CHUONG 2
NGU NGHIA CHUONG TRINH DATALOG
DANG TUYEN CO SU KE THUA
Chương trình Datalog dạng tuyển cĩ sự kế thừa là sự mở rộng của chương trình Datalog đạng tuyển đã xét trong chương 1 Chương này trình bày cú pháp và ngữ nghĩa của lớp chương trình này
2.1 CÚ PHÁP CHƯƠNG TRÌNH DATALOG DẠNG TUYỂN CĨ TÍNH KÉ
THỪA
Phần này trình bày các mơ tả hình thức của các cấu trúc cú pháp của chương trình Datalog dạng tuyên cĩ tính kế thừa [2]
Ký hiệu O là tập các chuỗi, mỗi phan tử cua O được gọi là một fên đối tượng và < là một quan hệ thứ tự bộ phận chặt trên O, nghĩa là quan hệ < thỏa mãn 2 tính
chất:
(i) Khong phan xa: c ¢ ¢, Ve € O,
(ii) Bac ctu: a<banb<c>a<c,VabceO
Hai literal cĩ dạng p và ¬p được gọi bù nhau, với p là nguyên tố và ¬ là ký
hiệu của phủ định mạnh
Với Ƒ là literal cho trước, ký hiệu ¬.È là literal bù của nĩ Với 41 là một tập các literal, ký hiệu ¬.⁄4 là tập {¬.L | U e 4}
Một quy tắc Datalog dạng tuyển z cĩ dạng như sau:
av va,—b,, ,b;, not bay, ., not b,, (n51,m>0) trong đĩ đi, , đ„, Ưị, , bạ là các literal cĩ đối là hằng hoặc biến
av va,la phan đầu của r va by, ,b;, not Dysy, , not b,, la phan than của r by, ,b, được gọi là phan dương của thân quy tic r và
not Ưy.¡, , not ð„ được gọi là phần NAF (iegafion as failure) cia thân quy tắc r Ta thường ký hiệu tập các literal xuất hiện trong phần đầu, trong phần đương của
Trang 28thân và trong phần NAF của thân quy tắc r lần lượt la Head(r), Body'(r), Body (nr), nghĩa là:
Head(r) = {a,, , ay}
Body'(r) = {b,, , by
Body (r) = {bys1, , On}
Ti day vé sau, dé don gian, ta goi quy tic Datalog dang tuyén la quy tac Ta cĩ các định nghĩa sau:
Định nghĩa 2.1 (Đối tượng, Cơ sở tri thức) [2]
() Một đối tượng o la mt cap (oid(o), X(0)) trong đĩ oid(o) la tên đối trong trong O va X(0) la mét tap cde quy tắc
(1) Một cơ sở fri thức trên O là một tập các đối tượng
Định nghĩa 2.2 (Chương trình Datalog dạng tuyển với sự kế thừa) [2] Cho K là một cơ sở tri thức và một tên đối tượng ø e O Chương trình Datalog dạng tuyển cĩ tính
kế thừa đối với o trên K, là một tập LI các đối tượng:
II= {(ø', 3ø”) e K|o= o` hoặc o < ư`}
Quan hệ < tạo ra một thứ tự bộ phận trên II theo cách thơng thường, nghĩa là:
Với các đối tượng ø; = (øi4(o,), X(ø,)) và 0; = (oi4(o,), 3(o,)) cho trước, lúc đĩ ø; < 0; nếu và chỉ nếu øi(o,) < oid(o;) (ta noi “o; chuyên biệt hơn o)`)
Một cách khơng hình thức, một cơ sở trí thức được xem là một tập các đối
tượng và gắn định nghĩa các thuộc tính của chúng thơng qua các quy tắc Datalog
dạng tuyển, được tổ chức theo sơ đồ kế thừa IS-A (được tạo ra bởi quan hệ <) Một
chương trình II đối với một đối tượng o trên một cơ sở tri thức K bao gồm phần của K “được nhìn thấy” từ ø với việc tìm kiếm trong sơ đồ kế thừa IS-A Nhờ vào cơ
chế kế thừa, II tích hợp tri thức được xác định rõ ràng đối với o cộng thêm trị thức được kế thừa từ các đối tượng cao hơn
Trang 29Nếu một cơ sở tri thức thừa nhận một phần tử đáy (nghĩa là một đối tượng
nhỏ hơn tất cả các đối tượng khác theo quan hệ < ) thì cơ sở tri thức thường xem như là một “chương trình”, bởi vì nĩ bằng với chương trình đối với phần tử đáy
Ngồi ra, ta cĩ thể biêu diễn tính bắc cầu trên các đối tượng Đề biểu diễn quan hệ thành viên của một cặp đối tượng (tương ứng các tên đối tượng) (øs, ø¡) đối
với tính bắc cầu của quan hệ <, ta dùng ký hiệu 0, : 0, để chỉ rằng øs là một đối
tuwong con (sub-object) truc tiếp của oy, nghĩa là khơng tồn tại déi trong o ma 0, <0
Và O< OI
Ví dụ 2.1 Xét chương trinh [I như sau: O71 {av ab < ¢, not d}
02:0, {rmavcee
be c<b}
II bao gồm 2 đối tượng la 0, va 02, 0, la đối tượng con của ø¡ Như đã nêu ở trên, cơ sở tri thức mà II được định nghĩa trên đĩ là đồng nhất với II và o; là đối
tượng đáy
2.2 NGỮ NGHĨA CỦA CHƯƠNG TRÌNH DATALOG DẠNG TUYỂN CĨ
TINH KE THUA
Trong phan này, chúng ta giả sử K là một cơ sở tri thức đã cho và ø là một đổi tượng cố định Gọi II là chương trình Datalog dạng tuyên cĩ tính kế thừa đối
với o trên K Ta cĩ một số khái niệm tương tự với vũ trụ Hebrand và cơ sở
Herbrand của chương trình Datalog trong chương 1:
Vit tru Ủp của TT là tập các hằng xuất hiện trong các quy tắc
Co’ so’ Bp cua LÍ là tập tất cả literal nén duoc xây dựng từ các vị từ xuất hiện
trong các quy tắc của II và các hằng xuất hiện trong Up
Trang 30Để ý rằng, khơng giống như trong chương trình Datalog truyền thống, cơ sở Bọ của chương trình Datalog dạng tuyên cĩ tính kế thừa chứa cả literal dương và literal 4m
Cho r một quy tắc trong II, mot hiện hành nền của r là quy tắc nhận được từ
r bằng cách thay thế mọi biến X trong bởi ø(z), trong đĩ ø là phép thế các biến xuất hiện trong z với các hằng trong Lp
Ky hiéu ground(I1) la tap tất cả các hiện hành nên của các quy tắc xuất hiện trong II Do trong grøznđ(T]) thì một quy tắc cĩ thể xuất hiện trong một số đối tượng khác nhau của II nên ta địi hỏi hiện hành nền tương ứng phải phân biệt Vì vậy, ta cần định nghĩa một hàm øðj òƒ từ hiện hành nền của các quy tắc trong
grounda(1D lên tập O các tên đối tượng, hàm này sẽ liên kết một hiện hành nên 7 của
r với một đối tượng duy nhất của z
Một tập con các literal nền của Ư8; được gọi là øhấ? quán nêu nĩ khơng chứa cặp literal bù nhau
Mot thé hiện I 1a một tap con nhat quan cua Bp Mot literal nén L (dương hoặc âm) la dung theo thể hiện 7 nếu 7 e 7, 7 là sai theo 7 nếu ngược lại
Cho z e grouna(TT) là một quy tắc nền, đầu của quy tắc z là ding trong I néu cĩ ít nhất một literal trong phần đầu của r là đứng theo 7 Phan than của r là đứng trong 7 nếu:
(i) Moi literal trong Body'(r) la đúng theo J, (11) Moi literal trong Body (r) là sai theo J
Quy tic r € ground(I]) gọi là được thỏa mãn trong 7 nếu đầu của r là đúng trong 7 hoặc phần thân của z là khơng đúng trong 7
Hai quy tắc nền 7\ và z; là xưng đội trên literal nền L nếu nếu 7, e Head(r,) va a.L € Head(r2)
Trong phần tiếp theo sẽ trình bày khái niệm mơ hừah đối với chương trình Datalog dạng tuyên cĩ tính kế thừa Khơng giống như lập trình logic truyền thống,
Trang 31khái niệm thỏa mãn của các quy tắc là chưa đáp ứng đầy đủ cho mục đích này vì nĩ
khơng lưu ý đến sự hiện diện của những xung đột Vì vậy, trước hết ta trình bày một
số định nghĩa sau:
Định nghĩa 2.3 [2] Cho thể hiện 7 và zạ, › e grownđ(TD) là hai quy tắc nền xung dét, sao cho L € Head(ry), ta noi rằng r¡ ghi chồng r› trên L trong thê hiện 7 nêu:
(i) obj_of (11) < 0bj_of (72)
(1) ¬.L e1,
(ii) Phần thân của zz là đúng trong 7
Dinh nghia 2.4 [2] Mot quy tic r € ground(I]) gọi là được ghỉ chồng trong I nêu voi méi L € Head(r), ton tai_r; € ground(IT) sao cho r¡ ghi chồng rtrén L trong 7
Khái niệm ghi chồng cho phép ta giải quyết được các xung đột phát sinh giữa các quy tắc mà phần đầu bù nhau Chẳng hạn, giả sử ø và ¬ø đều dẫn xuất lần lượt trong 7 từ quy tắc z và z° Nếu r chuyên biệt hơn ?ˆ trong sơ dé kế thừa thì z bị ghi
chồng, nghĩa là z là được thừa nhận hon la wa boi vi no duoc dẫn xuất từ một quy
tắc đáng tin cậy hơn
Ví dụ 2.2 Xét trở lại chương trình II trong ví dụ 2.1: on {av Ab <¢, not d}
02:0, {be ¬aVc<& ce b}
Cho I = {=a, b, c} 1a một thé hién Quy tắc nave eH trong đối tượng ø; ghi
chồng quy tắc { v ơ < Â, not d} trong 0, trén literal a trong J Hơn nữa, quy tắc b < trong ø; ghi chồng quy tắc ø v ¬ð < c, not đ trong 0, trén literal Gb trong 7 Như vậy, quy tắc a v ¬ð < e, not đtrong ø¡ được ghi chồng trong 7
Định nghĩa 2.5 Cho 7 là một thể hiện của IL 7 là mơ hành của II nếu mỗi quy tắc trong grouna(TD là được thỏa mãn hoặc được ghi chồng trong I 7 là mơ hình cực
tiểu của LI nễu khơng tổn tại tập con thực sự của 7 là mơ hình cua IT
Trang 32Định nghĩa 2.6 [2| Cho 7 là một thể hiện của II, #ø hep của II theo I, ký hiệu là
GD là tập các quy tắc nhận được tir ground(I]) bằng cách: 1) Loại bỏ mọi quy tắc được ghi chồng trong 7,
2) Loại bỏ mọi quy tacrma Body (r)N140,
3) Loại bỏ phần NAF trong thân của các quy tắc cịn lại Ví dụ 2.3 Xét trở lại chương trình II của ví dụ 2.1
Cho 7ï = {¬a, b, c}là một thể hiện Như đã xét trong ví dụ 2.2, quy tắc
av ab © c, not đ được ghi chồng trong 7 Vì vậy, GD là tập các quy tắc {¬aVée<,b<—, e< b} Bây giờ, xét thể hiện Ä⁄ = {a, b, e} Ta cĩ „(1D =
{:V¬b —c,¬ave<,b<,c< db}
Chúng ta để ý rằng thu hẹp G11) của chương trình TI chỉ bao gồm các quy tắc nên Với Š là tập các quy tắc nền cho trước, ký hiệu là øos(S) là chương trình Datalog dạng tuyển dương, nhận được từ S bằng cách xem xét mỗi literal âm ¬p(Ä) như là một literal dương với ký hiệu vị từ —p
Định nghĩa 2.7 [2] Cho Ä⁄Z là một mơ hình của II Ta nĩi rằng A⁄ là đập frả lời của chương trình II nếu A⁄ là một mơ hình cực tiểu của pos(G„(T)) của G41
Vi du 2.4 Xét chương trình II trong ví dụ 2.1:
Ta cĩ thể hiện 7 = {¬a, b, c} của ví dụ 2.3 khơng phải là tập trả lời của II Thực vậy, mặc dù 7 là mơ hình của pos(G[ D)), nĩ khơng phải là cực tiểu, bởi vì thể
hiện {7, c} cũng là một mơ hình của pos(G,(IT)) Chú ý rằng, thể hiện 7' = {b, c}
cũng khơng phải là tập trả lời của II, bởi vì: G„(LD = {a V ¬ỗ — c, ¬a Ve<—=, b<,
e đ} và ï khơng là mơ hình của øos(G;(TD), vì quy tắc a v ¬ ở < c khơng thỏa mãn trong J’
Mặt khác, thể hiện A⁄ = {a, b, c} trong vi du 2.3 la mét tap tra loi cua I], vi M
là mơ hình cực tiểu của pos(G„1D) Hơn nữa, cĩ thể nhận thấy rằng Ä⁄ là tập trả lời duy nhất của II
Trang 33Định lý 2.1 [2] Cho II là chương trình Datalog đạng tuyên cĩ tính kế thừa chỉ bao
gồm một đối tượng o = (oid(o),X(o0)) Lúc đĩ, M la tap trả lời của II khi và chỉ khi
AM là tập trả lời nhất quán của S9)
2.3 MOT SO Vi DU
Trong phần này sẽ trình bày một số ví dụ minh họa việc biêu diễn tri thức bằng chương trình Datalog dạng tuyên cĩ tính kế thừa
Vi dụ 2.5 Xem chương trình II với O(ID bao gồm ba đối tượng birđ, penguin và tweety, trong đĩ penguin là đối tượng con của bird và nveefy là đối tượng con của
penguin:
bird {fly}
penguin : bird {7 fly —} tweety : penguin {}
Khơng giống như lập trình logic truyền thống, chương trình Datalog dạng
tuyển cĩ tính kế thừa hỗ trợ hai loại phủ định, đĩ là phú định mạnh và phủ định do
thất bại Phủ định mạnh hữu dụng trong việc biểu diễn thơng tin phủ định dưới giả thiết thơng tin đầy đủ Do vậy, một sự kiện âm (theo phủ định mạnh —) là đúng chỉ
khi nĩ được dẫn xuất một cách rõ ràng từ các quy tắc của chương trình Kết quả là phần đầu của các quy tắc cũng cĩ thê chứa các literal phủ định và các quy tắc này cĩ thê xung đột với một vài literal Theo nguyên tắc kế thừa, mối quan hệ theo thứ tự giữa các lớp đối tượng cĩ thê giúp chúng ta đưa ra các mức độ tin cậy khác nhau cho các quy tắc và điều này cho phép chúng ta giải quyết được các xung đột Chẳng
hạn, trong ví dụ trên, kết luận xung đột nhau đối với đối tuong tweety la tweety co
thé vira “fly” lan “-fly” và cĩ vẽ như điều này được kế thừa từ chương trình (vi tweety la penguin và penguin cũng là bird, cả hai tình huống fly va fly co thể được dẫn xuất từ các quy tắc của chương trình) Tuy nhiên, trường hợp này khơng thể xảy ra Thực vậy, quy tac “thap hon” —fly — duoc chi ra trong lớp đối tượng penguin được xem như sự sắp /oe đối với quy tắc tổng quát đầu tiên, và do vậy ngữ nghĩa của chương trình là khá rõ ràng: #weeíy là “=ƒÏy” vì weefy là penguin Nghĩa là, ¬ƒÏy
Trang 34< được ưu tiên hơn quy tắc Sly — do lược đỗ kế thừa đã được chỉ định Như vay, M
= {= fly} chính là một kết luận hợp lý duy nhất
Vi dụ tiếp theo mơ tả đơn giản về quyển truy cập cơ sở dữ liệu, trong đĩ kết
hợp việc sử dụng cả hai kiểu phủ định mạnh và phủ định yếu
Vi du 2.6 Xét cơ sở tri thức biểu diễn tập các đặc tả về bảo mật theo sơ đồ kế thừa
như sau:
0; {r,: authorize(phu) — not quthorize(linh)
r; :authorize(linh)v authorize(binh) — not ~authorize(quy)}
02:0; {ry: ¬gufhorlze(guy)<— }
03: 0, {rạ: ¬authorize(phu)<— }
Các đối tượng ø; và o; đều là đối tượng con của đối tượng ø; Quyên truy cập
đến các đối tượng được chỉ định bởi các quy tắc với vị từ đầu là aw/horize và các
đối tượng được cấp quyên truy cập xuất hiện như các đối Trong ví dụ này, phủ định
mạnh được sử dụng để mã hĩa quyền phủ định nhằm thể hiện sự £ừ chối rõ ràng
Phủ định do thất bại được dùng đề chỉ sự &hơng cĩ của quyền truy cập (hoặc khẳng
định hoặc phủ định) Việc kế thừa thực hiện sự lan truyền tự động các quyền từ một
lớp đối tượng đến tất cả lớp đối tượng con của nĩ Cơ chế ghi chồng cho phép
chúng ta biểu diễn sự loại trừ: Chẳng hạn, nếu một đối tượng ø kế thừa quyền khẳng định nhưng lại cĩ một sự từ chối đối với một đối tượng được chỉ định trong
o, lc đĩ quyền phủ định sẽ được ưu tiên hơn quyền khẳng định
Xét chương trình IIa, = {(øy, {11, 72}), (02, {r3})} đối với đối tượng 0, trén co
sở tri thức ở trên Chương trình này định nghĩa việc điều khiển truy cập đối với đối
tượng ø; Nhờ vào cơ chế kế thừa, các quyền truy cập được chỉ định đối với đối
tượng ø¡, chứa o;, cũng được truyền cho ø; Nĩ bao gồm các quy tac 1), zs (kế thừa từ ø¡) và z¿ Quy tắc r¡ chỉ ra pz được quyền truy cập tới đối tượng 02, miễn là khơng tổn tại quyển truy cập cho 7n tới o¿ Quy tắc r› cho phép đối tượng iinh hoặc binh truy cap tới o; miễn là khơng cĩ sự từ chối đối tượng gwy truy cập tới ø› được dẫn xuất Cuối cùng, quy tắc z; xác định sự từ chối gøy truy cập tới lớp đối
Trang 35tong 02 Do su thiéu vang quyén truy cAp cho /inh nén quyén truy c4p déi véi phu tới đối tượng ø; được dẫn xuất (theo quy tắc z¡) Hơn nữa, việc từ chối rõ rang guy truy cập tới lớp đối tượng øs (quy tắc z;) dẫn đến cả hai đối tượng /imh và binh đều khơng cĩ quyền truy cập tới 0, (quy tac r) Vi thé, tap tra lời đuy nhất của chương trình này la {authorize(phu), ¬authorize(qw))}
Bây giờ ta xét chuong trinh To, = {(01, {71, 72}) (03, {ra})} đối với đối tượng
03 Quy tac r; xac dinh su từ chối pz truy cập tới đối tượng ø; Quyên truy cập đối
voi phu (duoc xac định theo quy tắc r¡) khơng cịn được dẫn xuất nữa Thực vậy,
ngay cả nếu quy tắc z¡ cho phép dẫn xuất một quyển như vậy thì do sự thiếu vắng quyền truy cập cho 77, quy tắc đĩ bị ghi chồng bởi sự từ chối rõ ràng (quy tắc r;) được định nghĩa trong đối tượng ø; (tức là ở mức cụ thể hơn) Phần thân quy tac r, được kế thừa từ ø¡ là đúng đối với chương trình này được dẫn xuất vì khơng cĩ sự từ chối đối với quy, và điều này dẫn đến việc truy cập loại trừ lẫn nhau cho 7i và bình tới đối tượng o; (lưu ý là khơng cĩ phần đầu nào khác chứa øfhorize(linh) hay authorize(phw)) Chương trình IIo, này cĩ hai tập trả lời là:
{authorize(linh), ~authorize(phu)} {authorize(binh), ~authorize(phu)}
biểu diễn hai tập trả lời về quyén truy cập và cĩ thể được dùng để cấp quyển truy
cập tới đối tuong 03
2.4 KET LUAN CHUONG 2
Chương 2 đã trình bày một mở rộng của chương trình Datalog dạng tuyển là chương trình Datalog đạng tuyển cĩ tính kế thừa Ngữ nghĩa của lớp chương trình
này được thực hiện theo tiếp cận của lý thuyết mơ hình và được xác định bởi các tập trả lời của nĩ Các ví dụ minh họa được giải thích chỉ tiết nhằm minh họa cho tính
kế thừa của lớp chương trình này Trong chương 3 sẽ tập trung tìm hiểu việc ứng dụng của chương trình Datalog dạng tuyển cĩ tính kế thừa thơng qua một số bài
tốn
Trang 36CHƯƠNG 3
UNG DUNG CUA CHUONG TRINH DATALOG DANG TUYEN
CO TINH KE THUA
Chương 3 sẽ trình bày việc ứng dụng của chương trình Datalog dạng tuyển cĩ
tính kế thừa thơng qua việc biểu diễn một số bài tốn và tiến hành cài đặt, thực thi
các chương trình này trên hệ thống lập trình logie DL.V cĩ hỗ trợ tính kế thừa
Trước hết, ta sẽ giới thiệu tổng quan về hệ thống lập trình logie DLV, bao gồm kiến trúc hệ thống DLV, cấu trúc chương trình trong hệ thống DLV và kỹ thuật thực thi
chương trình Datalog đạng tuyển cĩ tính kế thừa trên DLV
3.1 HE THONG DLV
3.1.1 Giới thiệu về hệ thống DLV
DLV là một hệ thống cơ sở dữ liệu suy diễn dựa trên chương trình Datalog dạng tuyên Hệ thống DLV được xây dựng bởi một nhĩm nghiên cứu người Y va
Áo (thuộc trường Đại học Calabria va trrong Dai học Cơng nghệ Vienna) Địa chỉ
trang Web của hệ thống DLV là:
www.dlvsystem.com
Phiên bản đầu tiên của hệ thống DLV ra đời vào năm 1997 và đã được cải tiễn
đáng kê trong những năm vừa qua: tăng khả năng ngơn ngữ, kết hợp các tính năng mới và các kỹ thuật tối ưu cĩ liên quan vào tất cả các module của hệ thống Hiện
tại, DLV là một hệ thống biểu diễn tri thức và suy diễn Nhờ cĩ sự nỗ lực lâu dài về
lý thuyết và thực hành mà ngơn ngữ của hệ thống được hỗ trợ bởi hệ thống thực thi thời gian thực hiệu quả
Hệ thống DLV duoc cai dat trên các hệ điều hành (HĐH) Unix/Linux hoặc
Windows Ở đây, sử dụng hệ thống DLV trên HĐH Windows Đường link của hệ thống DLV:
http://www.dlvsystem.com/dlv Sau đây là kiến trúc tổng quat cua hé théng DLV
Trang 37Model Checker Input Intelligent }+|WCH le Model Output Program Grounder Generator EU 4 ® Relational Relational Database Database
Hình 3 1 Kiến trúc tơng quát của hệ thống DLV
Ngay khi khởi động, chương trình đầu vào đặc tả bởi người dùng được phân tích cú
pháp và biến đổi vào một cấu trúc dữ liệu nội tại của hệ thống Chương trình đầu
vào cĩ thê viết dưới dang tập tin văn bản, nhưng DLV cịn cung cấp một giao diện đối với cơ sở dữ liệu quan hệ qua ODBC Module IG (Intelligent Grounder) phat sinh một chương trình nền Grozwa(P) cĩ kích thước nhỏ hơn nhiều so với chương
trình nên đầy đủ Sau đĩ, sự tính tốn được thực hiện bởi các module MG (Model
Generator) va MC (Model Checker) Chu y rang, trong sự cĩ mặt của các ràng buộc yếu, sau quá trình nền hĩa chương trình, sự tính tốn được chi phối bởi module WCH (Weak Constraints Handler) và bao gồm hai pha: (i) Pha dau tiên xác định chi phí của một mơ hình bền vững tối ưu cùng với mơ hình bền vững tối ưu đĩ và (ii) Pha thứ hai tính tất cả các mơ hình bền vững tơi ưu mà cĩ chỉ phí tối ưu đĩ
3.1.2 Thực thi chương trình bằng hệ thống DLV
Sau khi tải về từ Website của DLV, hệ thống DLV là một tập tin nhị phân cĩ tên
divymingw.exe Tập tin chương trình để thực thi trên DLV thường cĩ phần mở rộng
là dl Trước hết, ta thực hiện viết chương trình trong một tập tin văn bản theo cầu trúc ngơn ngữ của hệ thống DLV và lưu vào một thư mục nào đĩ Sau đĩ, thực hiện
dịng lệnh chạy chương trình từ dấu nhắc lệnh như sau:
Đường dân\dymingw.exe [Các tùy chọn|Tên chương trình Trong đĩ, một số tùy chọn thường sử dụng là:
Trang 38-filter=tén vi tu[, tén vi tu[, .] chi xuất ra màn hình các thể hiện của các vị từ được chỉ định
-silent nếu ta khơng muốn thấy dịng thơng tin trạng thái của hệ thống
-nofacts nếu ta khơng muốn xuất hiện các sự kiện EDB trong kết xuất
-n=n chi tính nhiều nhất là n mơ hình Nếu ø là rỗng hoặc zï/ thì tất cả mơ hình
đều được tính
Trong hệ thống DLV, dữ liệu vào được chia thành hai loại: cơ sở dữ liệu EDB là một tập các sự kiện đã cho và cơ sở dữ liệu IDB chứa các quy tắc được sử dụng dé suy luận ra các sự kiện moi CSDL EDB va IDB cĩ thể đặt trong cùng một file hoặc lưu trữ trong các file khác nhau Lúc đĩ, câu lệnh thực thi chương trình cĩ
dạng:
dlvmingw.exe [Cac tity chọn| Tên file CSDL EDB Tên file CSDL IDB
3.2 CAI DAT VA THUC THI MOT BAI TOAN BANG HE THONG DLV
Trang 39Tiến hành thực thi chương trình nay bằng hệ thống DLV ta nhận được một tập trả lời duy nhất của I], la {a, b, c}, duoc cho ở hình sau:
fa@ Administrator: C\Windows\system32\cmd.exe L¬.Lm eee) DEBS AUT A le a eee
DLU Chuild BEN/Dec 17 2612 gece 4.6.11] Kh c, a}
ID: >DLU >
Hình 3 2 Kết quả thực thi của chương trình II
Bài tốn 2: Xét cơ sở tri thức biểu diễn tập các đặc tả về bảo mật (Vi du 2.6
Chuong 2) nhu sau:
o, Í
rạ : authorize(phu) <— not authorize(linh)
rạ :authorize(lHnh) v authorize(binh) — not ~authorize(quy)
}
O;: 0y {ry: ¬gufhorize(qn„y) <— }
03 0; {r¿: ~authorize(phu) <— }
Xét chuong trinh Io, = {(0), {7), 72}), (02, {r3})} đối với đối trong o, trên cơ sở trí thức ở trên, ma hoa Io, bang DLV ta duoc: ol { authorize(phu):- not authorize(linh) authorize(linh) v authorize(binh):- not -authorize(quy) 02 : ol { -authorize(quy) }
Tiến hành thực thi chương trình này bằng hệ thống DLV ta nhận được một tập trả
loi duy nhat cua To, la {authorize(phu), ~authorize(quy)} và được cho ở hình sau:
Trang 40fe Administrator: C\Windows\system32\cmd.exe (=n) = ID:DLU>đdlu truụcap.d1 IDLU Chuild BEN/Dec 17 2612 gec 4.6.11] =authnrizeCquu2„ authorize€Cphu>? ID: DLU >
Hình 3 3 Kết quả thực thi của chương trình II,
Xét chương trình Ho, = {(6, f7ạ z2}), (0s, {z4})} đối với đối tượng o, trên cơ sở trí thức ở trên, ma hoa Io, bang DLV ta duc: ol { authorize(phu):- not authorize(linh) authorize(linh) v authorize(binh):- not -authorize (quy) 03 : ol { -authorize(phu) }
Tiến hành thực thi chương trình này bằng hệ thống DLV ta nhận được hai tập trả lời cua ITo, la: {authorize(linh), ~authorize(phu)}, {authorize(hoang), ~authorize(linh)} và được cho ở hình sau: fe Administrator: C:\Windows\system32\cmd.exe |
VERS AIRS Raced 5 ee
IDLU Chuild BEN/Dec 17 2612 gec 4.6.11]
pee eat Gl authorizeChinh3? X=authnrizeCphu3„ authnrizeClinh3?
ID: \DLU>_
Hình 3 4 Kết quả thực thi của chuong trinh To,
Bài tốn 3: Xét bài tốn “Thế giới khối” (ðiockswori2), đây là bài tốn kinh điển
của lĩnh vực trí tuệ nhân tạo: Với một cái bàn và một số khối trong một trạng thái