i
LỜI CẢM ƠN
Nhờ sự dẫn dắt của các thầy, cô giáo trường Đại học Lạc Hồng đến nay tôi đã
hoàn thành luận văn tốt nghiệp này.
Tôi xin chân thành cảm ơn các thầy, cô trường Đại học Lạc Hồng nói chung và
Khoa Công Nghệ Thông Tin nói riêng đã tận tình chỉ bảo, hướng dẫn cho tôi trong
suốt thời gian khóa học.
Tôi xin bày tỏ lòng biết ơn đối với thầy Nguyễn Quang Tấn, người đã trực tiếp
hướng dẫn chúng tôi thực hiện luận văn này. Nếu không có sự truyền đạt kiến thức quý
báo và hướng dẫn tận tình của thầy chắc chắn rằng luận văn của tôi sẽ rất khó hoàn
thành.
Cuối cùng tôi xin gửi lời cám ơn đến gia đình, bạn bè, những người đã luôn
bên chúng tôi, động viên và khuyến khích tôi trong quá trình thực hiện đề tài
nghiên cứu của mình.
Mặc dù đã rất cố gắng, song chắc chắn luận văn không tránh khỏi những thiếu
sót. Tôi rất mong nhận được sự thông cảm và những ý kiến đóng góp tận tình của các
thầy, cô giáo và các bạn cũng như những ai quan tâm tới lĩnh vực trong luận văn này.
Xin chân thành cảm ơn!
Đồng Nai, ngày tháng năm 2013
Học viên Bùi Văn Lem
ii
LỜI CAM ĐOAN
Tôi ng các kt qu nghiên cu trong lung vn
mang tính ph bin mà tác gi cp ti dm
là hoàn toàn mi, nhng v tham khc trích dn c th. Các hình, minh ha,
ví d và kt qu do chính tác gi thc hin. Ni dung c c công b trên
các công trình nghiên cu khác.
Tôi ng mi sc thc hin lu
2.1.2. Phân loi tri thc theo hii. 11
2.2. Biu din tri thc. 12
2.3. Biu din tri thc bng lut dn xut (lut sinh). 14
2.3.1. Khái nim. 14
2.3.2. suy lun trên các lut sinh. 15
2.3.3. m ca biu din tri thc bng lut. 18
2.3.3.1. m. 18
2.3.3.2. m. 18
2.4. Công ngh tri thc. 19
2.4.1. X lý tri thc. 19
2.4.2. X lý tri thc bng lut. 19
2.4.3. X lý tri thc bng các lut có dùng bin. 21
2.4.4. X lý tri thc bng lp lun. 22
iv
2.5. Khái quát v lp trình logic. 26
2.6. Ngôn ng Prolog. 28
2.6.1. Prolog là ngôn ng lp trình logic. 28
2.6.2. Xây dng s kin và lut. 30
2.6.2.1. Xây dng s kin. 30
2.6.2.2. Xây dng lut 35
2.6.3. Mt s ví d v 37
2.7. Kt lun. 40
D LIU SUY DIN. 41
3.1. Gii thiu chung. 41
3.2. Mt s khái ni. 42
3.2.1. Ngôn ng cp mt. 42
3.2.2. 43
3.3. d liu suy din. 45
3.3.1. ng quát 45
3.3.2. c. 46
STT
Từ viết tắt
Diễn giải
Ghi chú
1
CSDL
2
DES
Datalog Education System
3
EDB
Extended Database
4
IDB
Intentional Database
5
RBTV
DANH MỤC HÌNH
Tên hình. Trang
CSDL quan h cho phép tip nh và x lý mng ln d liu. Vic
nghiên cu CSDL quan h c rt nhiu thành công, có nhin
trong vic qun lý. Tuy nhiên ngoài vic tip nh và x lý d lii ta
cn mt loi CSDL có kh n ra các thông tin t các d li.
ng nhu cu thc t t mô hình CSDL m
CSDL suy diễn. Ngoài vi các thông tin mt cách rõ ràng theo kiu CSDL
quan h, CSDL suy di c các lut có kh n ra nhng kt
qu mi da trên d li
So vi CSDL quan h thì CSDL suy din tha nhn mt kiu lý thuyt chng
t lý thuyt bao gm mt tp các công thc cp
mt, còn vic thc hin mt câu truy vn hoc làm tha mãn mt RBTV có th xem
ng minh mt công thc cp mt là h qu logic ca lý thuy
CSDL suy din là mt s m rng ca CSDL quan h bi vì bên cnh nhng tính
cht, nhng nguyên tc vn có ca CSDL quan h nó còn có thêm các nguyên tc tng
c suy din và RBTV
2
CHƢƠNG 1: TỔNG QUAN.
N: Trình bày tổng quan về nguồn gốc và sự phát triển của lập luận
logic; nhu cầu của CSDL suy diễn trong thực tế và tổng quan về nội dung chính của
luận văn.
1.1. Nguồn gốc và sự phát triển của lập luận logic.
Theo truyn thc nghiên ct nhánh ca trit hc, nó
c nht ngành nghiên cu v n c. Mc dù
a logic vn là v ãi gia các trit gia. Tuy
nhiên khi môn hnh thì nhim v ca nhà logic hc vn
y mnh tin b ca vic phân tích các suy lun có hiu lc và suy lun ngy bin
i ta có th phân bic lun c nào là hp lý và lun c nào có ch không
hp lý.
T gia th k c nghiên cu trong toán hc và lut (theo
có trung gian, là nhng , nhng khái nim . Ví d nhn bit s
a A và C khi A=B, B=C,thì phi s dng các khái ni
hng, s
Suy lun có tính trng và tng quát. Suy lun dm
mà chúng ta phi tha nhn là khái nim bao gi ng và tng quát. Ví d
khái nii" ch nh tt c mc tính chung ci,
ch n tính riêng bit tri ca Socrates
Hercules hay tính ích k, tham lam, nh nhen c
Suy lun bao gi n lin vi ngôn ng m khác bit vi trc
giác. Vì th u gì nhn bic nh suy lun, thì có th i khác hiu
4
trn vn nó thông qua ngôn ng chun xác. Khi bc nghe chng minh mu
gì, bn s hin.
Tuy nhiên, trong các ng cnh trit hc ng, lp lum
li cho s m giác ca ta bt c cái gì có th hiu
c mà nhng hành vi trí óc kia có th hàm cha, tri nghim ca ta
v.
p lun logic: suy luận diễn dịch, suy luận quy nạp, suy luận
loại suy phép tương tự. Lp lun b
ng hp c th này tng hp c th khác, kt lun ca lp lun bng phép
ch là có th p lun b rng gp trong nhn thc
ng, khoa hc, trit hc và khoa h c chp
nh tr.
Suy diễn logic, lập luận bằng suy diễn hay suy diễn là lp lut
luc rút ra t các s kic bic theo kiu : nu các ti t
lun ph kii rng kt lu
Suy diễn u suy lun t ng hp ti
ng hp c th t lu chính xác tính ngang
bng vi các ti.
Ví dụ:
a
6
CSDL suy din là sn phm t nhiên ca lc
s dng cho các khái nim tính toán mô hình trc tip. K thut CSDL suy dic
ng dng nhiu trong các h h tr quynh và các h chuyên gia. Cùng vi các k
thut phát trin ca CSDL quan h, CSDL suy din mt
ng lc suy di
Các h h tr quynh, các h chuyên gia là nhc có ng dng k
thut CSDL suy dic ng dng rng rãi trong vic phân tích tài
chính, phân tích ngôn ng, cú pháp, Nó cho phép phân tích mng ln các d liu
ng suy luCSDL suy din, m
có nhiu kt qu có giá tr u v cn nghiên cu tip, chng hn
v ng a ph nh và tn.
n CSDL ta không th cn mt yu t lập
trình logicn ca lp trình logic là s dng logic toán ht ngôn
ng lu cp trong tài liu cc
t ngôn ng lu
tiên, tc là ngôn ng lp trình PROLOG (PROgramming LOGic). Nh s hình thc
p con ca các logic bc mt, gi là logic m Horn.
Mt câu hay mt m theo logic có th có nhiu ki có mt
hay không có kt lu
i vi nhu cu thc hành CSDL suy din x lý các câu không phc t
câu trong h thng lp trình logic. S các lut, tc là s các câu v u kin
không trng trong CSDL suy din nh các s kin, tc các câu vu kin
rng.
Mt khía cnh khác nhau na gia CSDL suy din và lp trình logic là h thng
lp trình logic nhn mnh các ch CSDL suy din nhn mnh tính
hiu qu suy din dùng trong CSDL suy di tính toán tr lc
t thng lp trình logic.
Ni dung chính: Trình bày về hệ thống tri thức, cách thức biểu diễn tri thức và
một số công nghệ xử lý tri thức; khái quát về lập trình logic và ngôn ngữ Prolog. 8
Chƣơng 3: d liu suy din.
Ni dung chính: Chương này sẽ trình bày một số vấn đề về CSDL suy diễn (CSDL
dựa trên logic); mô hình CSDL suy diễn, chương trình Datalog.
Chƣơng 4: Xây dng demo ng dng.
Ni dung chính: Xây dựng demo ứng dụng: “Ứng dụng CSDL suy diễn vào việc
tìm kiếm thông tin sách trong thư viện”
Chƣơng 5: Kt lung phát trin.
9
CHƢƠNG 2: CƠ SỞ LÝ THUYẾT.
Ni dung chính: Trình bày về hệ thống tri thức, cách thức biểu diễn tri thức và
một số công nghệ xử lý tri thức; khái quát về lập trình logic và ngôn ngữ Prolog.
2.1. Tri thức và hiểu biết.
2.1.1. Một số khái niệm.
Tri thức là các thông tin tài liệu, các cơ sở lý luận, các kỹ năng khác nhau, đạt
được bởi một tổ chức hay một cá nhân thông qua các trải nghiệm thực tế hay thông
qua sự giáo dục đào tạo (theo ); các hiu bit v lý thuyt hay
thc t v mng, mt v, có th lý gic v nó; là nh
c hiu bit trong mc c th hay toàn b, trong tng th, các
thông tin, tài liu, các hiu bit hoc nhng th c bng kinh nghim
thc t hoc do nhng tình hung, hoàn cnh c th. Tuy nhiên không có mt nh
chính xác nào v tri thc hic mi chp nhn, có th bao quát
c toàn b, vn còn nhiu hc thuyt, các lý lun khác nhau v tri thc.
Tri th c thông qua các quá trình nhn thc phc tp: Quá trình tri
giác, quá trình hc tp, tip thu, quá trình giao tip, quá trình tranh lun, quá trình lý
lun, hay kt hp các quá trình này.
ca nhân viên trong các tình hung phc t nhng tri thc khi các nhóm
làm vic tan rã hay tái ln vic xây dng nên h thng qun lý tri thc tr
nên cn thit.
11
2.1.2. Phân loại tri thức theo hiện đại.
T lâu, các nhà tâm lý hc v nhn thng lý thuyt gii thích v gii
quyt v. Các lý thuyi ta thy các dng tri thi hay dùng,
i t chc này và cách dùng các tri thc mt
cách có hiu qu. Các nhà nghiên cu v trí tu nhân to dùng các kt qu nghiên cu
phát trin các k thut th hin tri thc trên máy tính.
Không có lý thuyt nào gic cách t chc tri th
không có cu trúc th hin tri thng c. V i phi bit
chn k thut th hin tri thc và các dng tri thc mà các k thut này có th th hin
c.
Tri th c phân loi theo kiu hi i gm các dng sau (theo
):
Tri thức thủ tục: Din t cách mà v c gii quyt. Dng tri thc này cho
bing thc hin. Ví d: Các lut, các chic, lch và các th t
chính là các da tri thc th tc.
Tri thức mô tả: Ví d khái niệm, các đối tượng, các sự kiện. Nó cho bit
mt v c th nào. Tri thc này bao gm các khn,
mang tính giá tr
Tri thức may rủi: Din t lut may ri dn dt quá trình lp lun. Tri thc may ri
c gi là tri thc nông cn, nó da vào kinh nghim, tri thc do gii
quyt v ng ly các tri thn v v
tri thu lun, các quan h chi chuyn chúng thành
các may rn khi gii quyt v.
12
Tri thức cấu trúc: Din t các cu trúc ca tri thc. Loi tri thc này mô t mô
bn là cú pháp và ngữ nghĩa.
+ Cú pháp ca mt ngôn ng bao gm các ký hiu v các quy tc liên kt các ký
hiu (các lu to thành các câu (công thc) trong ngôn ng. Các câu
là biu din ngoài, cn phân bit vi biu din bên trong máy tính. Các câu s c
chuyn thành các cu trúc d liu thích ht trong mt vùng nh a
u din bên trong. Bng mt ni dung nào
c.
+ Ngữ nghĩa ca ngôn ng a các câu trong mt
mia th gii hin thc. Chng hn trong ngôn ng các biu thc s hc,
dãy ký hiu (x+y)*z là mt câu vi a ngôn ng này cho
phép ta hiu rng, nu x, y, z ng vi các s nguyên, ký hiu + ng vi phép toán cng,
còn * ng vi phép toán nhân thì biu thc (x+y)*z biu din quá trình tính toán: ly s
nguyên x cng vi s nguyên y, kt qu c nhân vi s nguyên z.
Ngoài hai thành phn cú pháp và ng ngôn ng biu din tri thc cc
cung c suy lun. Mt suy lun cho phép ta suy ra mt công thc t mt tp nào
c. Chng hn, trong logic m, lut modus ponens t hai công thc
A và A > B suy ra công thi ta s hiu lp lun hoc suy lun là mt quá
trình áp dng các lut suy lu t các tri th tri thc và các s kin ta
nhc các tri thc mnh:
Ngôn ng biu din tri thc = Cú pháp + Ng suy lun.
Mt ngôn ng biu din tri thc tt cn phi có kh u din rng, tc là có
th mô t c mi ta mun nói. Nó cn phi hiu qu
14
i các kt lun, th tc suy lui ít thi gian tính toán và ít không gian nh.
n ngôn ng biu din tri thc gn vi ngôn ng t nhiên.
i ta tp trung nghiên cu logic v t cp mt, ngôn ng biu din tri
thc, bi vì logic v t cp mt có kh u dii t
s cho nhiu ngôn ng biu din tri thc hu
logic m, nó là ngôn ng n, có kh u din hn ch, song thun tin
cho ta trong viu khái nim quan trng trong logic.
Trong ngôn ng lp trình, mi mt lut sinh là mt câu lnh.
IF (P1 AND P2 AND AND Pn) THEN Q.
Trong lý thuyt hiu ngôn ng t nhiên, mi lut sinh là mt phép dch :
t.
t
biu din mt tp lung phi ch rõ hai thành phn chính sau:
(1) Tp các s kin F(Facts)
F={f1,f2, fn}
(2) Tp các quy tc R(Rules) áp dng trên các s kin d
f1 f2, fnq
iu thuc F
Ví dụ tri th
Các s kin : A, B, C, D, E, F, G, H, K
Tp các quy tc hay lut sinh (rule):
R4 : E
R5 : E B
R6 : D E
R7 : G K
2.3.2. Cơ chế suy luận trên các luật sinh.
Suy diễn tiến : Là quá trình suy lun xut phát t mt s s kinh các
s kin có th c "sinh" ra t s kin này.
16
S kiu : H, K
R3 : HA{A, H, K}
A, E, H, H}
Hình 2.1: Cấu trúc đồ thị AND/OR. c nguyên nhân gây ra hng hóc là do cng hng hay
cáp màn hình lng, h thng phi l kiu kin
n vào máy "có", âm thanh ci mc, nu giá tr cn xác
nh không th c suy ra t bt k mt lut nào, h thng s yêu ci dùng trc
tip nhp vào. Chng h bin không, h thng s hin ra màn
hình câu hi "Bn kin vào máy tính không (kin)?
(C/K)". thc hi suy lung s d
ghi nhn li nhm tra).
18
2.3.3. Ƣu điểm và nhƣợc điểm của biểu diễn tri thức bằng luật.
2.3.3.1. Ƣu điểm.
Biu din tri thc bng luc bit hu hiu trong nhng tình hung h thng c
ra nhng da vào nhng s kin có th c. Nó có nh
m chính y
Các lut rt d hiu nên có th d i vi dùng (vì nó là
mt trong nhng dng t nhiên ca ngôn ng).
Có th d dàng xây d suy lun và gii thích t các lut.
Vic hiu chnh và bo trì h thi d dàng.
Có th ci tin d tích hp các lut m.
Các lung ít ph thuc vào nhau.
2.3.3.2. Nhƣợc điểm.
Các tri thc phc ti quá nhiu (hàng ngàn) luu này s
làm ny sinh nhiu v liên quan n t ln qun tr h thng.
Thng kê cho thi xây dng h thng trí tu nhân to thích s dng lut