Cơ sởdữliệu suy diễn (CSDLSD) Dạng luật trong CSDLSD Vịtừ được suy vàvịtừnền Luật không đệqui Tạo dữliệu qua phép AND, OR, NOT Suy diễn với luật không đệqui Suy diễn với luật đệqui Kiến thức cần nắm Lý thuyết CSDL quan hệ Lập trình logic 3 4 Cơ sởdữliệu suy diễn CSDL suy diễn tích hợp CSDL vàlập trình logic. Lập trình logic cóthếmạnh làkhả năng diễn đạt tri thức, ràng buộc toàn vẹn. CSDL cókhả năng quản trịdữliệu, bảo mật dữliệu. CSDL suy diễn cókhả năng sửdụng các tính năng của lập trình logic đểthực hiện các suy diễn nhằm tạo ra thông tin mới dựa trên các luật suy diễn vàdữliệu được lưu trữtrong CSDL. 5 Dạng luật trong CSDLSD Luật códạng tổng quát: H: G1 G2… G k Với Hlàphần đầu hay kết luận của luật. G1 G2… Gklàphần thân của luật. Các Gklà đích con(sub goal) hay tiền đềcủa
Trang 1Bài 1:
Cơ sở dữ liệu suy diễn
PGS.TS Đỗ PhúcTrường Đại học Công nghệ thông tin
Trang 3Kiến thức cần nắm
Trang 4Cơ sở dữ liệu suy diễn
CSDL
Trang 6Luật suy diễn
parent(X,Y): - father(X,Y) | mother(X,Y)
từ X,Y là các biến.
P(X,Y,Z) trong CSDL
Trang 7Vị từ được suy và vị từ nền
Vị từ được suy IDB (intensional predicate): là vị
từ xuất hiện trong phần kết luận của luật Vị từ
được suy cũng có thể xuất hiện trong phần thân của luật.
Vị từ nền EDB (extensional predicate): ứng với
một quan hệ được lưu trữ trong CSDL Một vị từ có thể nhận được giá trị đúng hay sai Nếu p là vị từ
nền và P là quan hệ nền thì p(a,b,c) với a, b, c là đối sẽ có giá trị đúng nếu bộ (a,b,c) sẽ tạo được
trong tiến trình suy diễn.
Trang 8 Vị từ ở phần đầu không xuất hiện trong
phần thân của luật
Ví dụ:
sibling(X,Y): - parent(Z,X) & mother(Z,Y).
Luật không đệ qui
Trang 9Luật đệ qui
thân của luật
ancestor(X,Y): - parent(X,Y).
ancestor(X,Y): - parent(X,Z) & ancestor(Z,Y)
Trang 10Tạo dữ liệu qua phép AND
Phép AND(&) được xây dựng trên cơ sở phép
kết và phép chiếu của đại số quan hệ
Với luật t(a,b,d,e):- r(a,b,c) & s(c,d,e), quan
hệ trong T(a,b,d,e) ứng với vị từ
t(a,b,d,e):được tính theo cách sau:
T(a,b,d,e) = Π a,b,d,e ( R(a,b,c) ⋈ S(c,d,e)).
Nếu dùng câu SQL, ta có câu lệnh tương ứng:
SELECT r.a, r.b, s.d, s.e
FROM r, s
WHERE r.c = s.c.
Trang 11Tạo dữ liệu qua phép OR
Phép OR (|) được xây dựng trên cơ sở phép hợp:
t(a,b,c): - r(a,b,c) | s(a,b,c)
Quan hệ T(a,b,c) trong t(a,b,c) được tính theo cách:
T(a,b,c) = R(a,b,c) ∪ S(a,b,c)
Nếu dùng SQL, ta có câu lệnh tương ứng :
SELECT * FROM r
UNION
SELECT * FROM s INTO t
Trang 12T ạo dữ liệu qua phép NOT ( ∼)
Phép not(∼) được xây dựng trên cơ sở phép
hiệu:
t(a,b,c): - r(a,b,c) & ( ∼s(a,b,c))
Quan hệ được suy T(a,b,c) của vị từ t(a,b,c)
được tính theo cách sau:
t(a,b,c) = r(a,b,c) \ s(a,b,c)
Nếu dùng SQL, ta có thể cài đặt như sau:
SELECT a, b, e
FROM r
WHERE a NOT IN (SELECT a FROM s)
Trang 13Suy diễn với luật không đệ qui
So khớp và đồng nhất biến: So sánh các thành
phần để tìm vị từ và sự kiện trong tiến trình suy diễn
Sau khi so khớp sẽ xảy ra tiến trình đồng nhất
biến theo nghĩa thay thế biến bằng một giá trị cụthể
Xét hai luật sau:
r1: grandfather(X,Y): - father(X,Z) & parent(Z,Y)
Trang 14So khớp và đồng nhất biến
mô tả bằng vị từ father(A,B),
mother(A,B) (hay EDB)
diễn chúng ta có thể tạo các quan hệ
cho các IDB là Parent(A,B) hay
grandfather(A,B).
Trang 15Đồ thị suy diễn
Có thể mô tả các luật suy diễn bằng đồ thị suy
diễn Ví dụ với hai luật trên ta có thể tạo đồ thị
dạng cây suy diễn ở hình sau:
Trang 16Tiến trình suy diễn
hệ cho vị từ được suy
grandfather(X,Y)
father(X,Z) và parent(Z,Y) Tìm các
sub goal
Trang 17Tiến trình suy diễn (tt)
Do father(X,Z) là quan hệ nền nên chỉ cần
Trang 18 FATHER (F C ) father( X Z ) father( Z Y )
an son an son an son loc vinh loc vinh loc vinh
Trang 19Phân giải luật không đệ qui
Có hai bước chính là:
liệu cho vị từ được suy.
r1: sibling(X,Y):- parent(X,Z) &
parent(Z,Y) & (X<>Y)
Trang 20bài toán Xử lý đệ qui với các đích con
là các lá của cây con vừa mới tạo được Nếu vị từ trong lá là vị từ nền thì không thể mở rộng được cây con
Phân giải luật không đệ qui (tt)
Trang 21Đồ thị suy diễn
Trang 22Tạo ra các quan hệ IDB trên đồ
thị suy diễn
Sau khi đã tạo xong đồ thị suy diễn, duyệt
cây để tạo sinh dữ liệu cho các vị từ được
suy
Ý tưởng của thuật toán như sau:
Tìm luật có phần đầu so khớp được với đích
Tạo dữ liệu cho các vị từ trong phần thân của luật
Thực hiện các phép toán logic để tạo dữ liệu cho vị từ được suy
Trang 23Tạo ra các quan hệ IDB trên đồ
thị suy diễn (tt)
Trang 24Suy diễn với luật đệ qui
Xét hai luật:
r1: ancestor(X,Y) :- parent(X,Y)
r2: ancestor(X,Y) :- parent(X,Z) & ancestor(Z,Y)
Với parent(X,Y) là vị từ nền, ancestor(X,Y) là vị từ được suy và các luật có dạng đệ qui Quan hệ
parent(X,Y) ứng với các bộ sau đây:
parent(X,Y)={(j,f)(j,h)(k,g)(k,i)(f,c)(f,e)(g,c)(h,d)(i,d) (c,a)(d,a)(d,b)(e,b)}
Với đích cần tìm là query parent(j,W) theo nghĩa j là
tổ tiên của ai? Một phần của cây suy diễn cho các
luật và đích nêu trên được trình bày ở hình sau:
Trang 25Tiến trình mở rộng cây suy diễn
Trang 2626Tạo dữ liệu cho các quan hệ