Tải bản đầy đủ (.docx) (16 trang)

NGÔN NGỮ ĐẶC TẢ ONTOLOGY COKB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (969.84 KB, 16 trang )

NGÔN NGỮ ĐẶC TẢ ONTOLOGY COKB
Ngôn ngữ ontology COKB, viết tắt là COL là ký pháp đặc tả cho ontology COKB được
mô tả theo ký pháp EBNF. COL bao gồm các thành phần chính của một ngôn ngữ như tập
ký tự, từ vựng, các kiểu dữ liệu, cú pháp ngôn ngữ và cú pháp mô tả các thành phần trong
mô hình COKB
1.1. Các qui ước mô tả cú pháp COL
1.2. Các thành phần của COL (COL elements)
1.2.1. Tập các ký tự
Tập ký tự bao gồm ký tự chữ, ký tự số và một số ký tự đặc biệt
a. Ký tự chữ
b. Ký tự số
1
c. Một số ký tự đặc biệt
1.2.2. Từ vựng (tokens)
Từ vựng gồm các từ khóa, tên, các phép toán, các chuỗi và các con số.
a. Từ khóa (keyword)
2
3
b. Tên (name)
Tên là một chuỗi gồm một hoặc nhiều ký tự. Tên dùng để chỉ một loại khái niệm (đối
tượng, quan hệ, thuộc tính, toán tử, hàm, thủ tục, luật). Các tên không được trùng nhau. Có
hai loại tên: name (symbol) và indexed names.
Dạng tên đơn giản nhất là một chuỗi ký tự, số và dấu gạch dưới.
Ví dụ:
my_name1
MA_TRAN, CHUYEN_VI, MA_TRAN_KHA_NGHICH
A[1, 2]
Ngoài ra còn các tên được định nghĩa trước, gọi là hằng (constant)
4
c. Phép toán
d. Chuỗi (string)


Chuỗi gồm dãy các ký tự đặt giữa hai dấu nháy kép “”.
e. Số
1.2.3. Kiểu dữ liệu
Ngoài các C-Object, COL còn được sử dụng các kiểu dữ liệu cơ bản và kiểu có cấu
trúc, tương tự các kiểu dữ liệu của Maple.
a. Kiểu cơ bản
b. Kiểu dữ liệu có cấu trúc
- Dãy (sequence)
Kiểu dãy gồm các biểu thức phân cách bởi dấu phẩy (,). Đây là thành phần cơ bản tạo
nên kiểu tập hợp, danh sách và lời gọi hàm (function call).
5
- Danh sách (list)
Danh sách là dãy biểu thức có thứ tự, được đặt giữa hai dấu ngoặc vuông []. Các phần
tử của danh sách có thể là một danh sách khác.
- Tập hợp (set)
Kiểu tập hợp biểu diễn tập hợp trong toán học, gồm một dãy biểu thức đặt giữa hai
dấu ngoặc nhọn {}. Không quan tâm đến thứ tự các phần tử và không có phần tử trùng lắp.
- Mảng (array)
Mảng là mở rộng của danh sách, dùng để biểu diễn dãy dữ liệu theo một hoặc nhiều
chiều.
c. Kiểu đối tượng tính toán
1.2.4. Cú pháp và ngữ nghĩa
Phần này sẽ mô tả cú pháp và ngữ nghĩa các thành phần của COKB-ONT (C, H,
Relations, Funs, Ops, Rules) theo ký pháp EBNF
1.2.4.1. Biểu thức (expression)
Trong mô hình tri thức các đối tượng tính toán COKB, biểu thức là thành phần quan
trọng nhất. Biểu thức thường xuất hiện trong các luật, các ràng buộc, sự kiện và các câu truy
vấn. Có các dạng biểu thức sau: biểu thức tính toán, biểu thức quan hệ, biểu thức hàm cơ
bản, biểu thức logic, biểu thức vị từ. Trong biểu thức có thể chứa các hàm cơ bản (như sin,
cos, …), hàm được định nghĩa (hàm cấp n).

a. Biểu thức tính toán
b. Biểu thức logic
Biểu thức logic được tạo bởi các phép toán logic, có giá trị là hằng TRUE hoặc
FALSE.
c. Biểu thức quan hệ
Biểu thức quan hệ được tạo bởi các phép toán quan hệ có giá trị là hằng TRUE hoặc
FALSE.
6
d. Biểu thức hàm cơ bản
Biểu thức hàm cơ bản được tạo bởi lời gọi hàm
e. Biểu thức vị từ
Biểu thức vị từ được tạo bởi các lượng từ, cho phép ta lượng hóa đủ tổng quát để diễn
tả ngôn ngữ tự nhiên ở mức đơn giản.
1.2.5. Câu lệnh
Gồm ba loại câu lện sau
- Câu lệnh điều kiện
- Câu lệnh điều khiển
- Câu lệnh trả về giá trị trong hàm
1.3. Định nghĩa C-Object
Khái niệm C-Object được định nghĩa trong từ khóa COBJECT, ENDCOBJECT. Mỗi
khái niệm có một tên duy nhất, tên này được dùng như là một định danh của khái niệm. Khi
định nghĩa một khái niệm C-Object mới, có thể định nghĩa phân cấp của khái niệm đó (qua
từ khóa ISA).
7
a. Mô tả khái niệm
b. Thuộc tính
Hầu hết khái niệm điều có thuộc tính. Các giá trị của thuộc tính có kiểu cơ bản (số
nguyên, số thực, …) hoặ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 khai niệm.
c. 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ê cơ sở kế thừa
một khái niệm nào đó, được khai báo sau từ khóa CONSTRUCT.
d. 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ú pháp logic được thể hiện như sau:
e. Quan hệ tính toán
Các quan hệ tính toán thể hiện mối quan 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 có thể định nghĩa thành
một tập riêng. Nếu đặt trong COBJECT thì đặt sau từ khóa CRELATION
Cú pháp khai báo như sau:
8
1.4. Các 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.
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:
1.5. 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:
Ví dụ:
1. Sự kiện thông tin về đối tượng
9
MA_TRAN_VUONG(A): A là một ma trận vuông
2. Xác định đối tượng/thuộc tính thông qua tên của đối tượng/thuộc tính
A: ma trận A
A.a[i, j]: phần tử dòng i cột j của ma trận A
3. Xác định đối tượng/thuộc tính thông qua biểu thức hằng
A.a[i, j]=1 : phần tử dòng i cột j của ma trận A là 1
4. Hai đối tượng/thuộc tính bằng nhau
A=B : ma trận A= ma trận B (quan hệ bằng nhau)
A.m=B.m : số dòng của hai ma trận bằng nhau

5. Biểu thức đối tượng/thuộc tính thể hiện sự phụ thuộc của đối tượng/thuộc tính
vào đối tượng thuộc tính khác:
C.a[i, j] = A.a[i, j] +B.a[i, j]
A^t=B^T
A*B^T=A^T*B^T
6. Sự kiện về quan hệ giữa các đối tượng/thuộc tính
A GIAO_HOAN B : ma trận A giao hoán với ma trận B (quan hệ giao hoán).
7. Sự kiện về biểu thức hàm cơ bản
KHA_NGHICH(A): hàm cho biết tính khả nghịch của ma trận A
8. 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
DINH_THUC(A)=0 : định thức của ma trận A là 0
KHA_NGHICH(A)=TRUE //TRUE là hằng 1, FALSE là hằng 0
9. 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:
B=MA_TRAN_NGHICH_DAO(A): ma trận B là ma trận nghịch đảo của A.
10. Sự kiện về sự bằng nhau của một biểu thức hàm với một biểu thức hàm khác
HANG(A)=HANG(B)
11. Sự kiện về sự phụ thuộc của một biểu thức hàm cơ bản vào các biểu thức hàm cơ
bản khác thông qua phương trình
HANG(A) = HANG(B) + 1
DINH_THUC(A) = DINH_THUC(B) + DINH_THUC(C)
1.6. 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
10
1.7. Luật
Các luật có thể khai báo bên trong phần định nghĩa COBJECT hoặc trong một tập luật
riêng. Nếu khai báo bên trong định nghĩa COBJECT thì đặt trong từ khóa RULE,
ENDRULE; ngược lại các luật được đặt trong cặp từ khóa RULES, ENDRULES.
Cú pháp khai báo luật như sau:
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:

RULE R1;
KINDRULE: “”;
HYPOTHISIS:
GocA=GocB;
ENDHYPOTHISIS
GOAL:
a=b;
ENDGOAL
ENDRULE
11
Ví dụ: Cho hai ma trận A và B. Nếu ma trận chuyển vị của A = ma trận chuyển vị
của B thì A=B
RULE R1;
KINDRULE: TINH_CHAT;
VARIABLE:
A, B: MA_TRAN;
HYPOTHISIS:
A^T=B^T;
ENDHYPOTHISIS
GOAL:
A=B;
ENDGOAL
ENDRULE
1.8. Hàm
Mỗi hàm có một tên và một dãy các đối số. Hàm thực hiện các tính toán trên các loại
khái niệm (đối tượng, thuộc tính, quan hệ, …) và trả về giá trị. Có hai loại hàm: hàm cơ bản
và hàm định nghĩa.
- Hàm cơ bản
- Hàm được định nghĩa
Có thể định nghĩa hàm theo hai cách:

+ Mô tả dưới dạng các sự kiện
+ Mô tả dưới dạng một sự kiện (gồm nhiều phát biểu)
Trong định nghĩa hàm có thể mô tả ràng buộc giữa các đối số nếu có.
Dạng 1:
12
Dạng 2:
Ví dụ: Hàm biến đổi dòng k trong ma trận A thành c* dòng k + dòng 1
FUNCTION BIEN_DOI_SO_CAP_2;
ARGUMENT:
A: MA_TRAN;
c: REAL;
k, l: INTEGER;
13
RETURN:
A: MA_TRAN;
CONSTRAINT:
k>0 AND k<A.m;
l>0 AND l<A.m;
k<>l;
DEFINE:
A.ROW[k] :=c* A.ROW[k] + A.ROW[l]
ENDFUNCTION;
Gọi hàm:
Lưu ý: Các đối số được truyền cho hàm dưới dạng dãy các biểu thức và phải theo
đúng thứ tự đã khai báo.
Ví dụ: BIEN_DOI_SO_CAP_2(A, 3, 1, 4);
1.9. Phép toán
Phép toán được định nghĩa trong cặp từ khóa OPERATOR, ENDOPERATOR. Có hai
loại phép toán: phép toán một ngôi và phép toán hai ngôi. Được phân biệt qua số lượng đối
số.

Ví dụ: Phép cộng hai ma trận
OPERATOR “+”;
ARGUMENT:
A, B: MA_TRAN;
RETURN:
C: MA_TRAN;
CONSTRAINT:
A.m=B.m;
A.n=B.n;
14
DEFINE:
FORALL (i, j), C.a[i, j] := A.a[i, j]+ B.a[i, j];
ENDOPERATOR;
1.10. Cú pháp khai báo
Khai báo kiểu dữ liệu
Ví dụ
x INTEGER;
lst LIST;
Khai báo kiểu dữ liệu là một kiểu tính toán C-Object
Mỗi thể hiện của một khái niệm C-Object được khai báo như sau:
Ví dụ: Khai báo đối tượng là một ma trận
A: MA_TRAN[m, n, a];
B: MA_TRAN;
Gọi một quan hệ
Ví dụ: Quan hệ bằng nhau của hai ma trận A, B
A=B;
Quan hệ tương đương của dòng của hai ma trận A, B
A TUONG_DUONG_DONG B
Gọi một phép toán
Ví dụ:

Phép chuyển vị của ma trận A (phép toán một ngôi): A^T;
Phép cộng hai ma trận (phép toán hai ngôi): 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 tính một kiểu khái niệm, ta sử
dụng ký pháp dấu chấm . như sau:
Ví dụ: truy xuất đến số dòng m của ma trận A: A.m
Lưu ý: dấu chấm . được hiểu là phép toán khi có dạng: số thực.đối tượng (ví dụ: c.A),
ngược lại sẽ được hiểu là phép truy xuất khi có dạng: đối tượng.thuộc tính đối tượng (ví dụ:
A.m, A.a[i, j]).
Khai báo hằng
15
Ví dụ: khai báo hằng số PI
CONSTANT:
PI: 3.14;
1.11. Tổ chức cơ sở tri thức theo COL
Cơ sở tri thức K gồm các thành phần (C, H, R, Func, Ops, Rules). Mỗi thành phần
được biểu diễn thành một file văn bản có cấu trúc và được lưu trữ trong một folder với cấu
trúc như sau:
File .txt là file lưu trữ tập các khái niêm thuộc tính thành phần x, với x ={C, H, R,
Func, Ops, Rules} và được mô tả theo ngôn ngữ COL. Ngoài ra còn có thêm một số tập tin:
- Cobject_kinds.txt: lưu trữ tên các khái niệm
- Relation_kinds.txt: lưu trữ tên các quan hệ
- Operator_kinds.txt: lưu trữ tên các phép toán
- Function_kinds.txt: lưu trữ tên các hàm
- Fact_kinds.txt: lưu trữ định nghĩa các loại sự kiện, tính chất.
16

×