ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCH MÔN
BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
ĐỀ TÀI
TÌM HIỂU MÔ HÌNH COKB- ONTO
SUY DIỄN SỬ DỤNG BÀI TOÁN MẪU
GVHD: PGS.TS. Đỗ Văn Nhơn
SVTH: Nguyễn Hải Yến
MSSV: CH1301074
LỚP : Cao học CNTT khoá 9
TP. Hồ Chí Minh, ngày 29 tháng 03 năm 2014
t
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
LỜI NÓI ĐẦU
Biểu diễn tri thức có vai trò quan trọng trong việc thiết kế hệ thống CSTT
(KBS) và hệ chuyên gia (ES), đặc biệt là trong lĩnh vực giáo dục. Có rất nhiều mô
hình và phương pháp khác nhau để biểu diễn tri thức (mô hình logic vị từ, mô
hình mạng ngữ nghĩa, mô hình hệ luật dẫn, mô hình mạng nơ-ron, đồ thị khái
niệm,… ) đã được đề xuất và áp dụng trong nhiều lĩnh vực của khoa học. Nhưng
những mô hình này có những hạn chế nhất định trong biểu diễn và suy luận trên
các tri thức phức tạp. Ontology là một hướng đang được nghiên cứu và phát triển.
Ontology về tri thức các đối tượng tính toán COKB-ONTO là mô hình được sử
dụng rất hiệu quả trong việc biểu diễn cơ sở tri thức phức tạp. COKB-ONT bao
gồm mô hình, ngôn ngữ đặc tả, ngôn ngữ truy vấn và kỹ thuật xử lý hay suy diễn
Sau khi mô hình hóa cho cơ sở tri thức thì việc thiết kế một bộ suy diễn
trên cơ sở tri thức đó ( thiết kế thuật toán suy diễn) là một bước rất quan trọng.
Nó là nhân tố ảnh hưởng lớn đến hiệu quả xử lý bài toán. Để cải thiện thời gian
suy diễn thì phương pháp suy diễn kết hợp hueristic hay suy diễn sử dụng các bài
toán mẫu được đề xuất. Và sau đây là bài thu hoạch của em về “ Tìm hiểu mô
hình COKB-ONTO và suy diễn sử dụng các bài toán mẫu”.
Em xin cảm ơn Thầy PGS.TS. Đỗ Văn Nhơn đã tận tình truyền đạt kiến
thức và có những định hướng giúp em hoàn thành bài thu hoạch.
Mặc dù đã rất cố gắng nhưng bài thu hoạch của em còn nhiều thiếu sót em
mong Thầy góp ý nhận xét để bài thu hoạch hoàn thiện hơn.
SVTH : CH1301074 – Nguyễn Hải Yến 2
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
MỤC LỤC
LỜI NÓI ĐẦU 2
TÌM HIỂU VỀ MÔ HÌNH COKB-ONTO 4
PHƯƠNG PHÁP SUY DIỄN DỰA TRÊN TRI THỨC BÀI TOÁN MẪU 33
TÀI LIỆU THAM KHẢO 41
SVTH : CH1301074 – Nguyễn Hải Yến 3
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
Chương 1.
TÌM HIỂU VỀ MÔ HÌNH COKB-ONTO
1.1. Mô hình ontology COKB-ONTO
Mô hình ontology COKB-ONTO là một hệ thống gồm 6 thành phần:
K = (C, H, R, Ops, Funcs, Rules)
Trong đó:
− C: tập các khái niệm về đối tượng tính toán C-Object
− H: tập các quan hệ phân cấp giữa các loại đối tượng
− R: tập các quan hệ giữa các loại khái niệm trên các C-Object
− Ops: tập các toán tử
− Funcs: tập các hàm
− Rules: tập các luật
Mỗi khái niệm trong C là một lớp của C-Objects. Cấu trúc C-objects có thể
được mô hình hóa bằng (Attrs, F, Facts, Rules).
1.1.1. Tập các khái niệm về đối tượng tính toán
Khái niệm được định nghĩa bằng một tên duy nhất. Các khái niệm được
phân loại, áp dụng cơ chế kế thừa. Có các loại khái niệm sau:
− Khái niệm nền: kiểu boolean, số tự nhiên, số nguyên, số hữu tỉ, số thực,
tập hợp và danh sách hay một số kiểu tự định nghĩa.
− Khái niệm cơ bản: có cấu trúc rỗng hoặc có một số thuộc tính có khái
niệm nền. Ví dụ khái niệm đối tượng DIEM có kiểu mô tả không có cấu
trúc thiết lập. Các khái niệm này làm nền cho các khái niệm cấp cao
hơn.
− Khái niệm cấp 1: Các đối tượng này chỉ có các thuộc tính kiểu khái
niệm nền và có thể được thiết lập trên một danh sách nền các đối tượng
cơ bản. Ví dụ: đối tượng DOAN[A,B] trong đó A, B là các đối tượng cơ
bản loại DIEM, thuộc tính a biểu thị độ dài đoạn thẳng có kiểu tương
ứng là “real”.
SVTH : CH1301074 – Nguyễn Hải Yến 4
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
− Khái niệm cấp 2: có các thuộc tính là khái niệm nền và khái niệm cấp 1,
có thể thiết lập từ danh sách các khái niệm nền hoặc cơ bản. Mỗi khái
niệm cấp 2 là một đối tượng tính toán gồm các thành phần:
(Name, Constructs, Isa, Attrs, Constraints, F, Facts, Rules)
Trong đó:
− Name: tên của khái niệm
− Constructs: các thuộc tính xác định khái niệm
− Isa: phân cấp khái niệm
− Attrs: tập hợp các thuộc tính của khái niệm
− Constraints: tập hợp các điều kiện ràng buộc trên các thuộc tính
− F: tập hợp các quan hệ suy diễn tính toán
− Facts: tập hợp các tính chất hay các sự kiện vốn có của khái niệm
− Rules: tập hợp các luật suy diễn trên các sự kiện liên quan đến các thuộc
tính cũng như liên quan đến bản thân khái niệm.
Ví dụ : Tri thức về tam giác gồm các yếu tố như: 3 cạnh a, b, c; 3 góc tương
ứng A, B, C; 3 đường cao tương ứng ha, hb, hc; diện tính S; chu vi P; Các công
thức liên hệ giữa chúng: định lý góc trong tam giác, định lý sin, định lý cosin,
công thức tính diện tích. Ta có một đối tượng tam giác biễu diễn theo mô hình
COKB như sau:
Name: TAMGIAC
Constructs: A, B, C
Isa: {}
Attrs: {GocA, GocB, GocC, a, b, c, ha, hb, hc, S, P}
Constraints: {a>0, b>0, c>0, ha>0, hb>0, hc>0, S>0, P>0}
F: {GocA + GocB + GocC = Pi, a*sin(GocB)=b*sin(GocA), a^2 = b^2
+ c^2 – 2*b*c*cos(GocA),…}
Facts: {}
Rules: {{GocA=GocB}⇒{a=b},{a=b}⇒{GocA=GocB},{a^2=b^2+c^2}⇒
{GocA=pi/2},{GocA=pi/2}⇒{a^2=b^2+c^2, b⊥c},…}
SVTH : CH1301074 – Nguyễn Hải Yến 5
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
− Khái niệm cấp n: Các đối tượng này có các thuộc tính kiểu khái niệm nền
và các thuộc tính loại đối tượng cấp thấp hơn, có thể được thiết lập trên một
danh sách nền các đối tượng cấp thấp hơn.
1.1.2. Tập các quan hệ phân cấp
Trên tập C ta có một quan hệ phân cấp, một số khái niệm sẽ là trường hợp
đặc biệt của một số khái niệm khác. Ví dụ: tam giác vuông cân cũng là một tam
giác. Nếu xem quan hệ phân cấp này là quan hệ có thứ tự trên C thì H chính là một
biểu đồ Hasse.
Biểu đồ Hasse thể hiện phân cấp của các khái niệm tam giác
1.1.3. Tập các quan hệ
Mỗi quan hệ được xác định bởi:
(Name, Args, Facts)
Trong đó:
− Name: tên của quan hệ
− Args: các đối tượng (thuộc kiểu khái niệm) của quan hệ.
− Facts: các sự kiện định nghĩa quan hệ.
Quan hệ có tính chất: phản xạ, đối xứng, phản xứng và bắc cầu.
Ví dụ : Quan hệ vuông góc giữa hai đường thằng được mô tả như sau:
Name: VUONG
Args: a,b: DUONGTHANG
Facts: A, B là hai điểm; A thuộc a và A không thuộc b; B thuộc b và B không
thuộc a; Góc tạo bởi A, B và giao điểm của a, b là góc vuông.
SVTH : CH1301074 – Nguyễn Hải Yến 6
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
1.1.4. Tập các hàm
Hàm thể hiện các quy tắc tính toán trên các loại khái niệm. Có hai loại:
− Hàm cơ bản: các hàm trên số tự nhiên, số nguyên, số hữu tỉ, số thực và
số phức.
− Hàm cấp n (n>0): được mô tả bằng tập các sự kiện và trong cấu trúc mô
tả bao gồm các khái niệm, quan hệ, hàm và toán tử. Trong cấu trúc mô
tả phải xuất hiện ít nhất các khái niệm, quan hệ, hàm và toán tử có cấp
n.
Mỗi hàm gồm các thành phần: (Name, Args, Return, Facts)
Trong đó:
− Name: tên của hàm
− Args: đối số của hàm là các đối tượng thuộc kiểu khái niệm.
− Return: khái niệm trả về của hàm
− Facts: các sự kiện định nghĩa hàm.
Ví dụ : Hàm xác định giao điểm của hai đường thẳng
Name: GIAODIEM
Args: a,b: DUONGTHANG
Return: X: DIEM
Facts: X thuộc a và X thuộc b
1.1.5. Tập các toán tử
Gồm các phép toán trên các biến thuộc các loại khái niệm. Có hai loại:
− Toán tử nền: các phép toán trên các kiểu boolean, số tự nhiên, số
nguyên, số hữu tỉ, số thực, tập hợp và danh sách.
− Toán tử cấp n: các phép toán số học và tính toán trên các đối tượng, các
thuộc tính của đối tượng tương tự như đối với các biến thực.
Một toán tử gồm các thành phần:
(Name, Args, Return, Facts)
Trong đó:
− Name: tên toán tử
− Args: danh sách các toán hạng
− Return: kiểu trả về của toán tử
SVTH : CH1301074 – Nguyễn Hải Yến 7
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
− Facts: các sự kiện định nghĩa toán tử
Ví dụ : phép toán trừ hai góc được mô tả như sau:
Name: “-”
Args: g1, g2: GOC
Return: x: real
Facts: x = op1.sd – op2.sd
1.1.6. Tập các luật
Các luật thể hiện tri thức. Mỗi luật cho ta một qui tắc suy luận để đi đến
kết luận từ những sự kiện giả thuyết dưới dạng luật dẫn. Mỗi luật gồm các thành
phần:
(Name, Kind, Vars, Hypothesis, Goal)
Trong đó:
− Name: tên của luật
− Kind: chuỗi mô tả loại luật
− Vars: Các đối tượng thuộc kiểu khái niệm
− Hypothesis: tập các sự kiện giả thuyết của luật
− Goal: tập các sự kiện kết luận của luật.
Ví dụ : Luật hai tam giác bằng nhau:
Name: “TAM_GIAC_BANG_NHAU”
Kind: “BANG_NHAU”
Vars: tg1, tg2: TAMGIAC
Hypothesis: 3 cạnh của tg1 bằng với 3 cạnh tương ứng của tg2
Facts: tg1 = tg2
SVTH : CH1301074 – Nguyễn Hải Yến 8
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
1.2. Các loại sự kiện trong mô hình COKB-ONTO
Có 11 loại sự kiện :
• Sự kiện loại 1: Sự kiện thông tin về loại của đối tượng.
Cấu trúc sự kiện:
[<đối tượng>, <loại đối tượng>]
Ví dụ: Tam giác cân ABC được định nghĩa như sau :
[TAMGIAC[A,B,C], “TAMGIACCAN”].
• Sự kiện loại 2: Sự kiện về tính xác định của một đối tượng hay của một thuộc
tính của đối tượng.
Cấu trúc sự kiện:
<đối tượng>|<đối tượng >.<thuộc tính>
Ví dụ: Trong tam giác ABC ta có các cạnh AB, AC, BC và các góc ABC,
góc BAC và góc ACB được định nghĩa như sau:
− Các cạnh: DOAN[A,B], DOAN[A,C], DOAN[B,C].
− Các góc: GOC[A,B,C], GOC[B,A,C], GOC[A,C,B].
• Sự kiện loại 3: Sự kiện về tính xác định của một đối tượng hay của một thuộc
tính của đối tượng thông qua biểu thức hằng.
Cấu trúc sự kiện:
<đối tượng> | <đối tượng >.<thuộc tính> = <biểu thức hằng>
Ví dụ: DOAN[A,B].a = 5; GOC[A,B,C] = Pi/2.
• Sự kiện loại 4: Sự kiện về sự bằng nhau của một đối tượng hay một thuộc tính
của đối tượng với một đối tượng hay một thuộc tính khác.
Cấu trúc sự kiện:
<đối tượng> | <đối tượng >.<thuộc tính> = <đối tượng> | <đối tượng
>.<thuộc tính>
Ví dụ: DOAN[A,B].a = DOAN[B,C].a, GOC[A,B,C].a = GOC[A,C,B].a.
SVTH : CH1301074 – Nguyễn Hải Yến 9
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
• Sự kiện loại 5: Sự kiện về sự phụ thuộc giữa các đối tượng và các thuộc tính
của các đối tượng thông qua một công thức tính toán hay một đẳng thức theo
các đối tượng hay các thuộc tính.
Cấu trúc sự kiện:
<đối tượng>|<đối tượng >.<thuộc tính>=<biểu thức theo các đối tượng
hay thuộc tính >
Ví dụ: CV = DOAN[A,B].a + DOAN[A,C].a + DOAN[B,C].a
• Sự kiện loại 6 : Sự kiện về một quan hệ trên các đối tượng hay trên các thuộc
tính của các đối tượng.
Cấu trúc sự kiện:
[<tên quan hệ>,<object1>,<object2>,…]
Ví dụ: ["THUOC", M,DOAN[A,B]] Điểm M thuộc đoạn AB.
• Sự kiện loại 7: Sự kiện về tính xác định của một hàm.
Cấu trúc sự kiện: <hàm>
Ví dụ: TRUNGDIEM(A,B) Hàm xác định trung điểm của 2 điểm A,B.
• Sự kiện loại 8: Sự kiện về tính xác định của một hàm thông qua một biểu thức
hằng.
Cấu trúc sự kiện:
<hàm> = <biểu thức hằng>
Ví dụ: KHOANGCACH(d1, d2) = 9 Khoảng cách giữa 2 đường thẳng
d1 và d2 bằng 9.
• Sự kiện loại 9: Sự kiện về sự bằng nhau giữa một đối tượng hay thuộc tính với
một hàm.
Cấu trúc sự kiện:
<đối tượng> | <đối tượng >.<thuộc tính> = <hàm>
Ví dụ : GOC[A,B,C] = GOC(d1, d2), H1 = HINHCHIEU(A, d)
SVTH : CH1301074 – Nguyễn Hải Yến 10
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
• Sự kiện loại 10: Sự kiện về sự bằng nhau của một hàm với một hàm khác.
Cấu trúc sự kiện:
<hàm> = <hàm>
Ví dụ: KHOANGCACH(d,d1) = KHOANGCACH(d1,d2)
• Sự kiện loại 11: Sự kiện về sự phụ thuộc của một hàm theo các hàm hay các đối
tượng khác thông qua một công thức tính toán.
Cấu trúc sự kiện:
<hàm> = <biểu thức theo các hàm hay các đối tượng>
Ví dụ: GOC(d,d1) = GOC(d,d2) + GOC(d,d3).
1.3. Mô hình bài toán
1.3.1. Bài toán
Dựa vào mạng các các đối tượng tính toán , ta có mô hình bài toán của
ontology COKB-ONT gồm 3 thành phần:
O = {O
1
, O
2
, . . ., O
n
},
F = {f
1
, f
2
, . . ., f
m
},
Goal = { g
1
, g
2
, . . ., g
k
}.
Trong đó: O là tập hợp gồm n C-Objects, F là tập hợp các sự kiện giữa các C-
Objects, (O, F) là một mạng các đối tượng tính toán, và G là tập hợp các mục tiêu
của bài toán. Mục tiêu của bài toán có thể là:
- Xác định một đối tượng.
- Xác định thuộc tính của đối tượng.
- Chứng minh một quan hệ giữa các đối tượng.
- Tính giá trị các tham số
- Tính giá trị của hàm số trên các đối tượng.
Trong mạng các đối tượng tính toán (O, F), tác giả xem xét vấn đề đó là xác
định các thuộc tính của tập G bằng những thuộc tính trong tập H. Vấn đề này được
ký hiệu là H→G.
SVTH : CH1301074 – Nguyễn Hải Yến 11
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
1.3.2. Thuật toán suy diễn trong mạng các đối tượng tính toán
Cho một mạng các đối tượng tính toán (O, F) và M là một tập hợp các
thuộc tính liên quan. Giả sử A là một tập hợp con của M.
(1) với mỗi , ký hiệu là hội của tập A với tập hợp bao gồm toàn bộ
thuộc tính của M suy luận ra được từ A bởi . Tương tự, với mỗi đối tượng tính
toán , là hội của tập A với tập hợp bao gồm toàn bộ thuộc tính (trong
M) mà đối tượng có thể xác định được từ những thuộc tính trong A.
(2) Giả sử D = [t
1
, t
2
, , t
m
] là một danh sách các phần tử trong F ∪ O. Ký hiệu A0
= A, A
1
= t
1
(A
0
), . . ., A
m
= t
m
(A
m-1
), và D(A) = A
m
. Ta có A
0
⊆ A
1
⊆ . . . ⊆ A
m
=
D(A) ⊆ M.
Một vấn đề H→G được gọi là khó thể giải được nếu tồn tại một danh sách
D ⊆ F ∪ O như là D(A) ⊇ B. Trong trường hợp này, ta nói D chính là giải pháp để
giải quyết vấn đề trên.
Thuật toán sau dùng để tìm bài giải cho một H→G trên mạng các đối tượng
tính toán. Các đối tượng có thể tham gia vào trong bài giải như là những mối quan
hệ của đối tượng tính toán.
Algorithm :
Step 1: Solution ← empty;
Step 2: if G ⊆ H then
begin
Solution_found ← true;
goto step 5;
end
else
Solution_found ← false;
Step 3: Repeat
Hold ← H;
Select f ∈ F;
SVTH : CH1301074 – Nguyễn Hải Yến 12
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
while not Solution_found and (f found) do
begin
if (applying f from H produces
new facts) then
begin
H ← H ∪ M(f);
Add f to Solution;
end;
if G ⊆ H then
Solution_found ← true;
Select new f ∈ F;
end; { while }
Until Solution_found or (H = Hold);
Step 4: if not Solution_found then
begin
Select O
i
∈ O such thatO
i
(H) ≠ H;
if (the selection is successful) then
begin
H ← O
i
(H);
Add O
i
to Solution;
if (G ⊆ H) then
begin
Solution_found ← true;
goto step 5;
end;
else
goto step 3;
end;
end;
Step 5: if not Solution_found then
There is no solution found;
else
Solution is a solution of the problem;
Ví dụ: xem xét mạng các đối tượng tính toán (O, F) trong ví dụ ở phần trước, và
vấn đề H→G, trong đó H = {O
1
.a, O
1
.A}, và G = {O
2
.a}.
Chúng ta có:
M(f
1
) = { O
1
.c , O
3
.a },
M(f
2
) = { O
1
.b , O
4
.a },
M(f
3
) = { O
2
.b , O
4
.a },
M(f
4
) = { O
2
.c , O
3
.a },
M(f
5
) = { O
1
.α , O
2
.α },
SVTH : CH1301074 – Nguyễn Hải Yến 13
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
M = { O
1
.a, O
1
.b, O
1
.c, O
1
.A, O
2
.b, O
2
.c, O
2
.A , O
2
.a, O
3
.a, O
4
.a }.
Thuật toán trên sẽ sinh ra được bài giải:
D = [ f
5
, O
1
, f
1
, f
2
, f
3
, f
4
, O
2
],
Và quá trình mở rộng tập thuộc tính như sau:
A
0
5
f
→
A
1
1
O
→
A
2
1
f
→
A
3
2
f
→
A
4
3
f
→
A
5
4
f
→
A
6
2
O
→
A
7
Trong đó:
A
0
= A = {O
1
.a , O
1
.A},
A
1
= {O
1
.a , O
1
.A, O
2
.A},
A
2
= { O
1
.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c },
A
3
= {O
1
.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c, O
3
.a},
A
4
= {O
1
.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c, O
3
.a, O
4
.a},
A
5
= {O
1
.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c, O
3
.a, O
4
.a, O
2
.b},
A
6
= {O
1
.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c, O
3
.a, O
4
.a, O
2
.b, O
2
.c},
A
7
= {O
1
.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c, O
3
.a, O
4
.a, O
2
.b, O
2
.c, O
2
.a}.
1.4. Quy trình xây dựng một ứng dụng trên cơ sở tri thức
Quy trình xây dựng một ứng dụng gồm các giai đoạn sau:
• Giai đoạn 1: Thu thập tri thức thực tế dựa trên mô hình COKB-ONT.
• Giai đoạn 2: Phân loại tri thức trong Giai đoạn 1, để phân tích các yêu cầu.
• Giai đoạn 3: Xây dựng tổ chức cơ sở tri thức cho hệ thống dựa trên mô
hình COKB-ONT và đặc điểm kỹ thuật ngôn ngữ của nó. Cơ sở tri thức có
thể được tổ chức bởi các tập tin văn bản có cấu trúc. Chúng bao gồm các
tập tin dưới đây.
− Tập tin OBJECT_KINDS.txt lưu trữ tên của các khái niệm
begin_Objects
<object name >
<object name>
end_Objects
Ví dụ:
begin_Objects
COLLECTION
SVTH : CH1301074 – Nguyễn Hải Yến 14
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
MAP
SERIES
FUNCTION
DERIVATION
INITIAL_FUNCTION
end_Objects
− Tập tin HIERARCHY.txt lưu trữ các sơ đồ Hasse đại diện cho thành
phần H của mô hình COKB.
begin_Hierarchy
[<high-order object>, <low-grade object>]
[<high-order object>, <low-grade object>]
end_Hierarchy
Ví dụ
begin_Hierarchy
INJECTION, MAP
SURJECTION, MAP
BIJECTION, MAP
IDENTITY_MAPPING, MAP
POWER_FUNCTION, FUNCTION
EXPONENTIAL, FUNCTION
LOGARIT_FUNCTION, FUNCTION
POSITIVE_SERIES, SERIES
FUNCTIONS_SERIES, SERIES
end_Hierarchy
− Các tập tin RELATIONS.txt và RELATIONS_DEF.txt lưu trữ các đặc
điểm kỹ thuật của các quan hệ (thành phần R của mô hình COKB).
SVTH : CH1301074 – Nguyễn Hải Yến 15
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
begin_Relations
[<relation name>,<object 1>,<object 2>],
{<behavior>,< behavior >, }
[<relation name>,<object 1>,<object 2>],
{<behavior>,< behavior >, }
end_Relations
Ví dụ:
begin_Relations
[CONSTRUCTION, COLLECTION, MAP],{}
[CONSTRUCTION, COLLECTION, FUNCTION],{}
[INHERITANCE, INJECTION, MAP],{}
[INHERITANCE, SURJECTION, MAP],{}
[INHERITANCE, BIJECTION, MAP],{}
[INHERITANCE,SERIES, ARRAY],
{CONVERGENCE, DIVERGENCE}
[INHERITANCE, FUNCTION_POWER,
FUNCTION],{ODD_EVEN}
end_Relations
− Các tập tin OPERATORS.txt và OPERATORS_DEF.txt lưu trữ các đặc
điểm kỹ thuật của các toán tử (thành phần Ops của mô hình COKB).
begin_object: <Object name>
begin_variables
<attribute 1>
<attribute 2>
end_ variables
begin_contains
<path to file which stores object content>
SVTH : CH1301074 – Nguyễn Hải Yến 16
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
end_contains
end_object
Ví dụ:
COLLECTION.txt:
begin_object: COLLECTION
begin_variables:
n: NUMBER_OF_ITEM
A: ARRAY#LIST_OF_ITEM
end_variables
begin_contains
\Contains_Object\COLLECTION
end_contains
end_object
− Các tập tin FUNCTIONS.txt và FUNCTIONS_DEF.txt lưu trữ các đặc
điểm kỹ thuật của các hàm (thành phần funcs của mô hình COKB).
Begin_Functions
Begin_Function<name of function>([<list of
arguments>])
<argument>:<kind>
Return <variable result>:<kind>
Begin_description
<path to the file which describes function>
End_description
End_Function
Begin_Function<name of function>([<list of
arguments>])
<argument>:<kind>
Return <variable result>:<kind>
Begin_description
<path to the file which describes function>
SVTH : CH1301074 – Nguyễn Hải Yến 17
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
End_description
End_Function
End_Functions
Ví dụ:
Begin_Functions
Begin_Function INVERSE_FUNCTION(y)
y: FUNCTION
Return f: FUNCTION #f is the inverse function of y
Begin_description
\Contains_Object\INVERSE_FUNCTION
End_description
End_Function
Begin_Function LIMIT_OF_ARRAY(d)
d: ARRAY
Return a: REAL
Begin_description
\Contains_Object\ LIMIT_OF_ARRAY
End_description
End_Function
etc.
End_Functions
- Tập tin FACT_KINDS.txt lưu trữ các định nghĩa của các loại sự kiện.
Begin_Methods
Begin_Method< name of method>
Begin_description
<path to the file which describes method>
End_description
End_Method
SVTH : CH1301074 – Nguyễn Hải Yến 18
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
Begin_Method<name of method>
Begin_description
<path to the file which describes method>
End_description
End_Method
End_Methods
Ví dụ :
Begin_Methods
Begin_Method INDETERMINATE_FORM_ELIMINATION
Begin_description
\Contains_Object\
INDETERMINATE_FORM_ELIMINATION
End_description
End_Method
Begin_Method FUNCTION_EXPLORATION_PROCESS
Begin_description
\Contains_Object\
FUNCTION_EXPLORATION_PROCESS
End_description
End_Method
End_Methods
− Tập tin RULES.txt lưu trữ quy tắc suy luận.
Begin_Rules
Begin_Rule<Rule name>:<kind of rule>
Variables:
<object>:<kind>
SVTH : CH1301074 – Nguyễn Hải Yến 19
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
<object>:<kind>
Begin_description
< path to the file which describes rules>
End_description
Goal:
<result of using rule>
End_Goal
End_Rule
Begin_Rule<Rule name>:<kind of rule>
Variables:
<object>:<kind>
<object>:<kind>
Begin_description
< path to the file which describes rules>
End_description
Goal:
<result of using rule>
End_Goal
End_Rule
End_Rules
− Tập tin SOMEOBJECTS.txt lưu trữ các đối tượng nhất định.
• Giai đoạn 4: Mô hình hóa các vấn đề và thiết kế thuật toán. Vấn đề được
trình bày bằng cách sử dụng một mô hình được gọi là mạng lưới của C-
objects. Nó bao gồm ba bộ dưới đây.
O = {O1, O2, . , On}.
F = {f1, f2,. . Fm.},
SVTH : CH1301074 – Nguyễn Hải Yến 20
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
Goal = {g1, g2,. . , Gm}.
Trong mô hình trên, tập O bao gồm n C-objects, F là tập hợp các sự kiện
được đưa ra trên các đối tượng, và Goal bao gồm các mục tiêu.
Việc thiết kế các thuật toán suy luận để giải quyết vấn đề và thiết kế giao
diện của hệ thống có thể được phát triển bởi ba bước cho mô hình:
− Bước 1: Phân loại bài toán chẳng hạn như sườn bài, bài toán xác định
hoặc chứng minh của một sự kiện, các bài toán tìm kiếm các đối tượng
hoặc sự kiện, vv
− Bước 2: Phân loại các sự kiện và trình bày dựa trên các loại sự kiện của
mô hình COKB.
− Bước 3: Mô hình hóa phân loại các bài toán trong bước 1 và 2. Từ các
mô hình của từng loại, chúng ta có thể xây dựng một mô hình chung
cho các bài toán, cho hệ thống để giải quyết chúng.
Kỹ thuật cơ bản để thiết kế các thuật toán suy luận là sự thống nhất của các sự
kiện. Dựa trên các loại sự kiện và cấu trúc của nó, sẽ có tiêu chuẩn cho sự thống
nhất
Sau đó, nó tạo ra các thuật toán để kiểm tra sự thống nhất của hai sự kiện.
Công việc quan trọng tiếp theo là làm nghiên cứu về chiến lược khấu trừ để giải
quyết các bài toán trên máy tính. Điều khó khăn nhất là mô hình cho thử nghiệm,
cho phản ứng hợp lý, và trực giác của con người để tìm các quy tắc rút kinh
nghiệm, có thể bắt chước tư duy của con người để giải quyết bài toán.
• Giai đoạn 5: Tạo một ngôn ngữ truy vấn cho mô hình.Ngôn ngữ giúp thiết
kế giao tiếp giữa hệ thống và người sử dụng bằng các từ.
• Giai đoạn 6: Thiết kế giao diện của phần mềm và lập trình phần mềm. Ứng
dụng của chúng tôi đã được thực hiện bằng cách sử dụng các công cụ lập
trình và hệ thống đại số máy tính như Visual Basic, dot Net, C#, SQL
Server. Chúng dễ dàng được sử dụng cho sinh viên, để tìm kiếm, tự động
truy vấn và giải toán
• Giai đoạn 7: Kiểm tra, duy trì và phát triển các ứng dụng. Giai đoạn này
tương tự như trong các hệ thống máy tính khác.
SVTH : CH1301074 – Nguyễn Hải Yến 21
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
1.5. Sơ đồ tổ chức tri thức
Mối liên hệ về cấu trúc thông tin trong cơ sở tri thức có thể được minh hoạ trên sơ
đồ sau đây:
1.6. Ngôn ngữ đặc tả Ontology-COKB
1.6.1. Ký pháp EBNF
BNF (Backus-Naur Form) là tập ký hiệu dùng để mô tả văn phạm các ngôn
ngữ lập trình, các tập lệnh và giao thức truyền thống.
EBNF (Extended BNF) là phiên bản mở rộng của BNF được đơn giản hóa
bằng cách sử dụng một số quy ước đặt biệt để định nghĩa danh sách và các tập hợp
tùy chọn.
Quy ước cú pháp EBNF:
<…>: Tên của cấu trúc cú pháp được gọi là ký hiệu không kết thúc.
Mỗi ký hiệu không kết thúc được định nghĩa bằng một hoặc nhiều luật. Mỗi luật
có dạng:
X := s
Trong đó:
- X : là ký hiệu không kết thúc.
- s : một xâu gồm 0 hay nhiều ký hiệu kết thúc.
- | : hoặc
- […] : phần tùy chọn
SVTH : CH1301074 – Nguyễn Hải Yến 22
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
- {…} : có thể lặp lại với số lần tùy ý.
Ví dụ:
<số>::= -<số thập phân>|<số thập phân>
<số thập phân> ::= <dãy chữ số> | <dãy chữ số>.<dãy chữ số>
<dãy chữ số> ::= <chữ số> | <chữ số><dãy chữ số>
<chữ số> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<If-stm> ::= IF <Expression> THEN <stms> [ELSE <Stms> ] end
1.6.2. Định nghĩa C-Object
Khái niệm C-Object được định nghĩa trong cặp từ khóa COBJECT,
ENDCOBJECT. Mỗi khái niệm có một tên duy nhất. Khi định nghĩa một khái
niệm C-Object mới, có thể định nghĩa phân cấp khái niệm đó qua từ khóa ISA.
cobject-type ::= COBJECT name
[description]
[isa]
[attributes]
[constructs]
[constraints]
[crelations]
[facts]
[rules]
ENDCOBJECT
• Mô tả khái niệm
description ::= DESCRIPTION: string;
• Thuộc tính
Hầu hết các khái niệm đều có thuộc tính. Các giá trị thuộc tính có kiểu cơ
bản (số nguyên, số thực…) hoặc có kiểu đối tượng C-Object. Khai báo thuộc tính
của khái niệm bắt đầu bằng từ khóa ATTRIBUTE và nằm trong phần định nghĩa
khái niệm.
SVTH : CH1301074 – Nguyễn Hải Yến 23
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
attributes ::= ATTRIBUTE: attribute-def+
attribute-def ::= name <, name >*: type;
• Thuộc tính thiết lập
Thuộc tính thiết lập là tính chất đặc trưng tạo nên một khái niệm mới trên
cơ sở kế thừa từ một khái niệm nào đó, được khai báo sau từ khóa CONSTRUCT.
constructs ::= CONSTRUCT: construct-def+
construct-def ::= name <, name >*: type
• Ràng buộc
Các điều kiện ràng buộc liên quan đến thuộc tính được thể hiện qua các
biểu thức logic, có cú pháp như sau:
constraints ::= CONSTRAINT: condition+
condition ::= logic-expr | rel-expr;
Ví dụ: định nghĩa khái niệm ma trận
COBJECT MATRAN
DESCRIPTION:
“Ma tran tren truong K la bang chu nhat gom m x n phan tu trong K
duoc viet thanh m dong va n cot.";
ISA:
CONSTRUCT:
ENDCONSTRUCT
ATTRIBUTE:
m, n: INTEGER;
a: ARRAY(1 m, 1 n);
ROW: ARRAY(1 m);
COL: ARRAY(1 n);
ENDATTRIBUTE
CONSTRAINT:
SVTH : CH1301074 – Nguyễn Hải Yến 24
Biểu diễn tri thức và suy luận PGS.TS Đỗ Văn Nhơn
m > 0;
n > 0;
ENDCONSTRAINT
ENDCOBJECT
• Quan hệ tính toán
Các quan hệ tính toán thể hiện mối liên hệ giữa các thuộc tính của khái
niệm đang định nghĩa. Có thể đặt trong khai báo khái niệm COBJECT hoặc định
nghĩa thành một tập riêng. Nếu đặt trong COBJECT thì phải đặt trong từ khóa
CRELATION.
crelations ::= CRELATION:
crelation-def+
ENDCRELATION;
crelation-def ::= CR name;
MF: name <, name>*;
MFEXP: equation;
ENDCR;
equation ::= expr = expr
Ví dụ: khai báo các mối quan hệ suy diễn tính toán trong khái niệm tam giác
của hình học phẳng.
CRELATION:
CR r1;
MF: GocA, GocB, GocC;
MFEXP: GocA + GocB + GocC = Pi;
ENDCR;
CR r2;
MF: a, b, c, GocA;
SVTH : CH1301074 – Nguyễn Hải Yến 25