Mô hình tri thức các đối tượng tính toán – ontology COKB Mô hình trí thức các đối tượng tính toán, viết tắt là COKB Computational Objects Knowledge Base đề xuất trong [3] được xây dựng
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆ THÔNG TIN
CHUYÊN ĐỀ
BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG
BÀI THU HOẠCH
TÌM HIỂU MÔ HÌNH COKB-ONT
Trang 2i
LỜI MỞ ĐẦU
Trong lĩnh vực Trí tuệ Nhân tạo, vấn đề về biểu diễn tri thức đóng vai trò rất quan trọng trong việc thiết kế các hệ cơ sở tri thức và các hệ chuyên gia Hiện nay đã có nhiều phương pháp biểu diễn tri thức cho các hệ thống khác nhau ứng dụng trong nhiều lĩnh vực Ontology là một phương pháp mới để biểu diễn tri thức đặc biệt là trong các
hệ trí tuệ nhân tạo phân tán Computational Object Knowledge Base Ontology ONT) [3] đã được đề xuất và ứng dụng vào các hệ giải toán 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 Do thời gian
(COKB-có hạn, bài thu hoạch này chỉ dừng lại ở mức tìm hiểu mô hình, ngôn ngữ đặc tả, mạng các đối tượng tính toán và thuật giải suy luận trên mạng các đối tượng tính toán của PGS TS Đỗ Văn Nhơn đã đưa ra trong [3]
Trang 3ii
Mục lục
LỜI MỞ ĐẦU i
Mục lục ii
Chương 1 TỔNG QUAN 1
1.1 Mô hình tri thức các đối tượng tính toán – ontology COKB 1
1.1.1 Tập các khai niệm về các đối tượng tính toán 1
1.1.2 Tập các quan hệ phân cấp 3
1.1.3 Tập các quan hệ giữa các khái niệm 4
1.1.4 Tập các hàm 5
1.1.5 Tập các toán tử 5
1.1.6 Tập các luật 6
Chương 2 NGÔN NGỮ ĐẶC TẢ ONTOLOGY COKB 8
2.1 Ký pháp EBNF 8
2.2 Định nghĩa C-Object 9
2.2.1 Cây phân cấp 12
2.2.2 Sự kiện 12
2.2.3 Quan hệ 13
2.2.4 Luật 13
2.2.5 Hàm 14
2.2.6 Phép toán 16
2.2.7 Cú pháp khai báo 17
Chương 3 MẠNG CÁC ĐỐI TƯỢNG TÍNH TOÁN 20
3.1 Định nghĩa mạng các đối tượng tính toán 20
3.2 Thuật giải suy diễn trong mạng các đối tượng tính toán 21
TÀI LIỆU THAM KHẢO 26
Trang 41
Chương 1 TỔNG QUAN
1.1 Mô hình tri thức các đối tượng tính toán – ontology COKB
Mô hình trí thức các đối tượng tính toán, viết tắt là COKB (Computational Objects Knowledge Base) đề xuất trong [3] được xây dựng theo cách tiếp cận hướng đối tượng kết hợp với các kỹ thuật lập trình tính toán hình thức, là một cấu trúc gồm 6 thành phần:
(C, H, R, Ops, Funcs, Rules) Trong đó:
- C: tập các khái niệm về đối tượng tính toán
1.1.1 Tập các khai niệm về các đố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
- 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 NGAY bao gồm các thuộc tính Ngay, Thang và Nam là các số tự
nhiên Các khái niệm này làm nền cho các khái niệm cấp cao hơn
Trang 52
- Khái niệm cấp 1: có một số thuộc tính là khái niệm nền và có thể thiết lập từ danh
sách các khái niệm cơ bả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ụ 1: 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}
Trang 6- Sự kiện thông tin về loại đối tượng Ví dụ: A là một tam giác vuông
- Sự kiện về tính xác định của đối tượng hay thuộc tính, được biểu diễn bởi tên của
đối tượng hay tên thuộc tính Ví dụ: Phần tử thứ i của mảng A
- Sự kiện về sự xác định của đối tượng hay thuộc tính thông qua một biểu thức
hằng Ví dụ: phần tử thứ i của mảng A là 0
- Sự kiện về sự bằng nhau của hai đối tượng hay hai thuộc tính Ví dụ: Mảng A = Mảng B
- Sự kiện về sự phụ thuộc của đối tượng vào đối tượng khác thông qua biểu thức
tính toán Ví dụ: Phần tử thứ i của mảng B bằng phần tử thứ i của mảng A cộng 1
- Sự kiện về quan hệ giữa các đối tượng hay thuộc tính các đối tượng
- Sự kiện về biểu thức hàm cơ bản
- Sự kiện về sự bằng nhau của một biểu thức hàm cơ bản với một giá trị hoặc biểu thức hằng
- Sự kiện về sự bằng nhau giữa một đối tượng với một biểu thức hàm cơ bản
- Sự kiện về sự bằng nhau giữa một biểu thức hàm với một biểu thức hàm khác
- Sự kiện về sự phụ thuộc của một biểu thức hàm cơ bản vào một biểu thức hàm cơ bản hoặc đối tượng khác thông qua phương trình
1.1.2 Tập các quan hệ phân cấp
Trang 74
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
Hình 1 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ệ giữa các khái niệm
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ụ 2: 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
Trang 85
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ụ 3: Hàm xác định giao điểm của hai đường thẳng
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
Trang 96
- 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ử
- Facts: các sự kiện định nghĩa toán tử
Ví dụ 4: phép toán trừ hai góc được mô tả như sau:
- 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
Trang 11<…>: 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 đó:
Trang 129
2.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
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
attributes ::= ATTRIBUTE: attribute-def+
attribute-def ::= name <, name >*: type;
Thuộc tính thiết lập
Trang 1310
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
Trang 14equation ::= 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;
Trang 1512
ENDCRELATION;
2.2.1 Cây phân cấp
Quan hệ phân cấp giữa các C-Object được thể hiện qua từ khóa ISA
isa ::= ISA: name <, name>*;
Các quan hệ phân cấp trong tập hợp H cũng có thể được mô tả trong cặp từ khóa
HIERARCHY, ENDHIERARCHY theo cú pháp sau:
hierarchy-def ::= HIEARARCHY
name ISA name;
ENDHIERARCHY
Ví dụ: phân cấp các khái niệm MA_TRAN trong đại số tuyến tính
MA_TRAN_VUONG ISA MA_TRAN;
MA_TRAN_TAM_GIAC_TREN ISA MA_TRAN_VUONG;
2.2.2 Sự kiện
Nếu tập các sự kiện được khai báo bên trong phần định nghĩa khái niệm thì đặt sau
từ khóa FACT như sau:
facts ::= FACT: fact-def+
fact-def ::= object-type |
attribute | name |
equation | relation | function object-type ::= cobject-type (name <, name>* )
Trang 1613
relation ::= name relation name
function ::= function ( name <, name>* )
2.2.3 Quan hệ
Quan hệ giữa các đối tượng và thuộc tính được mô tả bằng các sự kiện
relation-def ::= RELATION name;
ENDRULES
Trang 1714
rules ::= RULE: rule-def+
rule-def ::= RULE name;
KINDRULE: name;
[VARIABLE: variables-def;]
HYPOTHESIS: fact-def+
ENDHYPOTHESIS GOAL: fact-def+
ENDGOAL ENDRULE
variable-def ::= name <, name >*: type;
Ví dụ: khai báo các luật trong khái niệm tam giác của hình học phẳng
function ::= basic-funcion | def-function
Có 2 loại hàm: hàm cơ bản và hàm được định nghĩa:
Trang 1815
Hàm cơ bản
basic-func ::= SIN | COS | TAN | COTG | LN | EXP | SUM
Hàm được định nghĩa: mô tả dưới dạng các sự kiện và mô tả dưới dạng một thủ
argument-def ::= name <,name>: type;
return-def ::= name: type;
statement-def ::= assign-stmt | if-stmt | for-stmt
asign-stmt ::= name := expr;
if-stmt ::= IF logic-expr THEN statements+ |expr
Trang 2017
Phép toán được định nghĩa trong cặp từ khóa OPERATOR, ENDOPERATOR Có
2 loại phép toán: phép toán một ngôi và phép toán hai ngôi
operator-def ::= OPERATOR name
Trang 21 Khai báo kiểu dữ liệu là một đối tƣợng tính toán C-Object
object-def ::= name <, name>* : cobject-type[sequence]|name <, name>*: cobject-type;
Ví dụ:
A: MA_TRAN[m,n,a];
B: MA_TRAN ;
Gọi một quan hệ
rel-call ::= name rel-name name;
Ví dụ: quan hệ bằng nhau của hai ma trận A, B
Trang 2219
A^T
Ví dụ: Phép cộng hai ma trận
A + B
Truy xuất đến một thuộc tính của đối tƣợng: để truy xuất đến một thuộc tính
của đối tượng thuộc một kiểu khái niệm, ta sử dụng ký pháp dấu chấm như sau:
Trang 2320
Chương 3 MẠNG CÁC ĐỐI TƯỢNG TÍNH TOÁN
3.1 Định nghĩa mạng các đối tượng tính toán
Một mối quan hệ 𝑓 giữa những thuộc tính của các đối tượng hoặc giữa các đối tượng với nhau được gọi là mối quan hệ giữa các đối tượng
Một mạng các đối tượng tính toán bao gồm một tập hợp các đối tượng tính toán
𝑂 = {𝑂1, 𝑂2, … , 𝑂𝑛} và một tập hợp các quan hệ giữa các đối tượng tính toán 𝐹 ={𝑓1, 𝑓2… , 𝑓𝑚} Mạng các đối tượng tính toán thì được ký hiệu bằng: (𝑂, 𝐹) Sau đây là một số ký hiệu:
M(𝑓𝑖) = the set of attributes of C-objects in the relation 𝑓𝑖
Ví dụ: Trong hình bên dưới, giả sử rằng AB = AC, cho trước góc A và độ dài cạnh
BC ABDE và ACFG là hình vuông Xác định EG
Trang 2421
Vấn đề này có thể được xem xét trên mạng các đối tượng tính toán (O, F) như sau:
O = {O1: tam giác ABC với AB = AC, O2: tam giá AEG, O3: hình vuông ABDE, O4: hình vuông ACFG }, và F = {f1, f2, f3, f4, f5} bao gồm những quan hệ sau:
f1 : O1.c = O3.a cạnh c của tam giá ABC = cạnh của hình vuông ABDE f2 : O1.b = O4.a cạnh b của tam giá ABC = cạnh của hình vuông ACFG f3 : O2.b = O4.a cạnh b của tam giác AEG = cạnh hình vuông ACFG
f4 : O2.c = O3.a cạnh c của AEG = cạnh hình vuông ABDE
f5 : O1.A + O2.A =
3.2 Thuật giải 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
Trang 2522
(2) Giả sử D = [t1, t2, , tm] là một danh sách các phần tử trong F O Ký hiệu A0
= A, A1 = t1(A0), , Am = tm(Am-1), và D(A) = Am Ta có A0 A1 Am = D(A) M
Một vấn đề HG đượ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 HG 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 1: Tìm bài giải cho vấn đề HG trên mạng các đối tượng tính toán
Step 1: Solution empty;
Trang 26end; while Until Solution_found or (H = Hold); Step 4: if not Solution_found then
begin
Select Oi O such that Oi(H) H;
if (the selection is successful) then
begin
H Oi(H);
Add Oi to Solution;
if (G H) then begin
Solution_found true;
goto step 5;
end;
else goto step 3;
Trang 2724
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
đề HG, trong đó H = O1.a, O1.A, và G = O2.a
M = O1.a, O1.b, O1.c, O1.A, O2.b, O2.c, O2.A , O2.a, O3.a, O4.a
Thuật toán trên sẽ sinh ra được bài giải:
Trang 2825
A2 = O1.a , O1.A, O2.A, O1.b, O1.c ,
A3 = O1.a , O1.A, O2.A, O1.b, O1.c, O3.a,
A4 = O1.a , O1.A, O2.A, O1.b, O1.c, O3.a, O4.a,
A5 = O1.a , O1.A, O2.A, O1.b, O1.c, O3.a, O4.a, O2.b,
A6 = O1.a , O1.A, O2.A, O1.b, O1.c, O3.a, O4.a, O2.b, O2.c,
A7 = O1.a , O1.A, O2.A, O1.b, O1.c, O3.a, O4.a, O2.b, O2.c, O2.a