Tải bản đầy đủ (.pdf) (94 trang)

Xây dụng ngôn ngữ truy vấn cho 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 (1.99 MB, 94 trang )


ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN







TRẦN NGUYỄN THANH NGÂN






XÂY DỰNG NGÔN NGỮ TRUY
VẤN CHO ONTOLOGY COKB



Chuyên ngành: Đảm bảo Toán học cho Máy tính và Hệ thống tính toán
Mã số: 60 46 35






LUẬN VĂN THẠC SĨ TOÁN HỌC








NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS. ĐỖ VĂN NHƠN




Thành phố Hồ Chí Minh - 2011
LỜI CÁM ƠN


Xin chân thành cám ơn PGS. Đỗ Văn Nhơn, người đã tận tình hướng dẫn và
có những ý kiến quý báu giúp tôi trong suốt quá trình học tập nghiên cứu để hoàn
thành đề tài.
Xin chân thành cám ơn quý Thầy Cô khoa Toán Tin và khoa Công nghệ
Thông tin đã tận tình hướng dẫn và cung cấp những kiến thức bổ ích.
Xin chân thành cám ơn các bạn học viên cùng khóa đã giúp đỡ và động viên
tôi trong lúc khó khăn.
Tác giả cũng xin chân thành cám ơn các đồng nghiệp tại Trung tâm Tin học
Đại học Sư phạm, Ban Giám Đốc Trung tâm Tin học đã hỗ trợ và tạo điều kiện
thuận lợi cho tôi trong suốt quá trình thực hiện đề tài.
Xin dành lòng biết ơn sâu sắc cho gia đình và các bạn hữu xa gần.

Trần Nguyễn Thanh Ngân


6
LỜI MỞ ĐẦU
Trong khoa học về trí tuệ nhân tạo, vấn đề nghiên cứu về các mô hình và các
phương pháp biểu diễn tri thức đóng vai trò rất quan trọng cho 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 mô hình và phương pháp
biểu diễn tri thức cho các hệ thống cơ sở tri thức khác nhau đã được đưa ra và có
nhiều ứng dụng trong nhiều lĩnh vực [6], [10], [16]. Trong đó, ontology là một
phương pháp hiện đại đã và đang được nghiên cứu phát triển do khả năng ứng dụng
của nó trong việc biểu diễn tri thức, đặc biệt là việc xây dựng các hệ trí tuệ nhân tạo
phân tán [15]. Một số ontology được đề xuất để xử lý cho một miền tri thức cụ thể.
Liệu có mô hình ontology nào có thể biểu diễn và xử lý được nhiều miền tri thức?
Một trong những ontology đã được hình thành và được xây dựng từ quá trình
nghiên cứu những phương pháp cho việc biểu diễn tri thức và thiết kế các hệ cơ sở
tri thức ứng dụng thực tế cũng như các hệ giải toán dựa trên tri thức là ontology
COKB - Computational Object Knowledge Base Ontology (gọi tắt là COKB-ONT)
[1]. Nó 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. Đây là một phương pháp hiện đại, dễ dàng cho người sử dụng và dùng cho
bộ suy diễn. Theo mô hình COKB, các bài toán được mô hình hóa được dễ dàng để
thiết kế các thuật toán giải tự động và đề xuất ngôn ngữ đơn giản để đặc tả.
Với ontology COKB, chúng ta có thể biểu diễn cho nhiều miền tri thức khác
nhau như toán học, vật lý, …Vậy làm thế nào để người dùng tìm kiếm và truy vấn
tri thức trong kho cơ sở tri thức đã được đặc tả bởi ngôn ngữ đặc tả COKB? Trong
luận văn này, tập trung xây dựng và phát triển một ngôn ngữ đặc tả truy vấn
trên mô hình biể u diễn tri thức COKB-ONT. Ngôn ngữ truy vấn này sẽ giúp ta
truy vấn tri thức trong cơ sở tri thức các đối tượng tính toán biểu diễn thông qua
ontology COKB một cách hiệu quả và tự nhiên hơn.
1
Mục lục
Mục lục 1
Danh mục ký hiệu, chữ viết tắt 4

Danh mục các bảng biểu, đồ thị 5
LỜI MỞ ĐẦU 6
Chương 1. TỔNG QUAN 7
1.1. Ontology là gì? 7
1.1.1. Ontology trong triết học 7
1.1.2. Ontology trong tin học 7
1.2. Mô hình tri thức các đối tượng tính toán - ontology COKB 9
1.3. Mục tiêu đề tài 15
Chương 2. NGÔN NGỮ ĐẶC TẢ ONTOLOGY COKB 18
2.1. Các quy ước mô tả cú pháp COL 18
2.2. Các thành phần của COL (elements language) 18
2.2.1. Tập ký tự (characters set) 18
2.2.2. Từ vựng (tokens) 19
2.2.3. Kiểu dữ liệu 22
2.3. Cú pháp và ngữ nghĩa 24
2.3.1. Biểu thức (expression) 24
2.3.2. Câu lệnh (statement) 26
2.3.3. Định nghĩa C-Object 27
2.3.4. Các phân cấp 30
2.3.5. Sự kiện 30
2.3.6. Quan hệ 32
2.3.7. Luật 33
2
2.3.8.
Hàm 34
2.3.9. Phép toán 36
2.3.10. Cú pháp khai báo 37
2.4. Tổ chức cơ sở tri thức theo COL 39
Chương 3. NGÔN NGỮ TRUY VẤN ONTOLOGY COKB 45
3.1. Định nghĩa 45

3.2. Quy ước về cú pháp câu truy vấn 46
3.3. Từ khóa truy vấn 46
3.4. Cú pháp 47
3.4.1. Truy vấn tính đúng sai của phát biểu 47
3.4.2. Truy vấn các khái niệm trong ontology 52
3.4.2.1 Loại không chứa đối số 52
3.4.2.2 Loại chứa đối số 53
3.4.3. Truy vấn tính chất của khái niệm 58
3.4.3.1 Liên quan đến một khái niệm 58
3.4.3.2 Liên quan đến một số thuộc tính của đối tượng, đối tượng
khác hay liên quan đến các khái niệm khác như quan hệ, phép toán 60

3.4.3.3 Thỏa điều kiện cho trước 61
3.4.4. Truy vấn thông tin có điều kiện 62
3.4.4.1 Thông tin giả thiết thỏa điều kiện 62
3.4.4.2 Thông tin kết luận thỏa điều kiện giả thiết 63
3.5. Thuật giải 63
3.5.1. Thuật giải cho câu truy vấn loại 1. 63
3.5.2. Thuật giải cho câu truy vấn loại 2. 66
3.5.3. Thuật giải cho câu truy vấn loại 3. 69
3.5.4. Thuật giải cho câu truy vấn loại 4. 69
3
3.5.5.
Chương trình chính. 70
Chương 4. ỨNG DỤNG 72
4.1. Mô tả ứng dụng 72
4.2. Tổ chức các biến lưu trữ cơ sở tri thức trong chương trình 74
4.3. Một số thủ tục chính 76
4.4. Đánh giá kết quả thực hiện chương trình 80
Chương 5. KẾT LUẬN 90

5.1. Kết quả đạt được 90
5.2. Hạn chế của luận văn 91
5.3. Hướng phát triển 92
Tài liệu tham khảo. 93
Phụ lục A: Danh sách câu truy vấn Đại số tuyến tính 95
Phụ lục B: Ký pháp EBNF 114

4
Danh mục ký hiệu, chữ viết tắt
CSTT cơ sở tri thức.
COKB Computational Object Knowledge Base.
COKB-ONT Computational Object Knowledge Base Ontology.
PTTT phương trình tuyến tính.
C C-Objects.
H Hierarchy.
R Relations.
Ops Operators.
Funcs Functions.

5
Danh mục các bảng biểu, đồ thị
Hình 1.1 Biểu đồ Hasse thể hiện phân cấp của các khái niệm tam giác
Hình 3.1 Lưu đồ thuật toán loại 1
Hình 3.2 Lưu đồ thuật toán loại 2
Hình 4.1 Sơ đồ quá trình thực hiện truy vấn
Hình 4.2: Bảng kết quả thực hiện câu truy vấn loại 1


7
Chương 1. TỔNG QUAN


Chương này sẽ trình bày tổng quan về khái niệm ontology và giới thiệu một
ontology dùng để biểu diễn tri thức - ontology COKB [1]. Tiếp theo sẽ trình bày
mục tiêu của đề tài về xây dựng ngôn ngữ truy vấn cho tri thức biểu diễn theo mô
hình COKB.

1.1. Ontology là gì?
Ontology là một thuật ngữ được dùng trong trí tuệ nhân tạo có nguồn gốc từ
triết học và mang nhiều ý nghĩa khác nhau.
1.1.1. Ontology trong triết học
Thuật ngữ “Ontology” đã xuất hiện từ rất sớm. Theo Aristotle thì “ontology là
một siêu hình học nghiên cứu về sự tồn tại và hiện thân của tự nhiên.”
Đối tượng nghiên cứu của ontology xoay quanh sự tồn tại, sự phân loại và cấu
trúc của các đối tượng, các thuộc tính, biến cố, quy trình và các quan hệ trong mọi
lĩnh vực. Các nhà triết học dùng “ontology” như là một từ đồng nghĩa với “siêu hình
học”. Ontology gốc Latin là “ontologia”. Thuật ngữ “ontologia” có từ năm 1613, do
hai nhà triết học Rudolf Göcke (trong Lexicon philosophicum) và Jacob Lorhard
(trong Theatrum philosophicum) đưa ra. Từ tiếng Anh “ontology” xuất hiện lần đầu
trong An Universal Etymological English Dictionary (năm 1721), được Nathaniel
Bailey định nghĩa là “an Account of being in the Abstract”
1
.
1.1.2. Ontology trong tin học
Trong những năm gần đây, thuật ngữ “ontology” được sử dụng nhiều trong các
lĩnh vực của khoa học máy tính và thông tin. Nó nảy sinh từ vấn đề “tháp Babel”.


1

8

Nhóm các nhà thiết kế hệ cơ sở dữ liệu và tri thức đều có thuật ngữ và khái niệm
của riêng họ. Dựa trên các thuật ngữ, khái niệm đó, họ biểu diễn thông tin. Các cơ
sở dữ liệu khác nhau có thể dùng cùng một tên gọi nhưng với ý nghĩa khác nhau.
Ngược lại, cùng một ý nghĩa, nhưng có thể được diễn tả bằng các tên gọi khác nhau.
Khi các nhóm cần chia sẻ thông tin thì nảy sinh vấn đề: làm thế nào gom tất cả các
thông tin đa dạng này trong cùng một hệ thống. Cần phải tìm ra phương pháp để
giải quyết tính xung khắc của các thuật ngữ và khái niệm.
Ban đầu sự xung khắc được giải quyết từng trường hợp một. Dần dần người ta
nhận thấy có thể đưa ra một cấu trúc tham khảo chung – phân loại khái niệm, các
thuộc tính và mối liên hệ giữa các khái niệm. Lúc này, thuật ngữ “ontology” ra đời,
và cho phép người dùng tổ chức thông tin theo các phân loại khái niệm cùng với các
thuộc tính của nó và mô tả các mối liên hệ giữa các khái niệm. Theo ngữ nghĩa này
thì ontology là một từ điển các thuật ngữ tạo nên cú pháp và từ vựng để biểu diễn tri
thức là các khái niệm để có thể chia sẻ tri thức giữa các hệ thống thông tin khác
nhau (như một tiếng nói chung).
Có thể điểm qua một số định nghĩa về ontology như sau:
• Ontology là sự đặc tả tường minh, hình thức của khái niệm - An ontology is
an explicit specification of a conceptualization (Thomas R. Gruber-1993)
[11]. Định nghĩa này cho thấy ontology là đặc tả các khái niệm trong một
lĩnh vực và đặc tả các quan hệ giữa các khái niệm đó.
• Ontology là một bảng liệt kê các loại sự vật tồn tại trong lĩnh vực D mà con
người dùng ngôn ngữ L để mô tả lĩnh vực D (John F. Sowa-2000, [10])
• Ontology cung cấp mô hình khái niệm trong một lĩnh vực, có thể được chia
sẻ (được con người và hệ thống sử dụng để trao đổi và tích hợp thông tin)
và xử lý trên máy tính (L. Stojanovic-2004, [17])
Từ một số định nghĩa trên cho thấy ontology định nghĩa các khái niệm
(concepts) dùng để mô tả và biểu diễn một lĩnh vực của tri thức. Các loại khái
niệm được mô tả gồm:
9
! Lớp đối tượng trong lĩnh vực (classes).

! Đối tượng cụ thể (instance).
! Mối quan hệ giữa các đối tượng (relationships).
! Thuộc tính, tính chất của các đối tượng (properties).
! Hàm (functions) liên quan đến các đối tượng.
! Ràng buộc (constraints) và luật (rules) liên quan đến các đối tượng.
1.2. Mô hình tri thức các đối tượng tính toán - ontology COKB
Các phương pháp biểu diễn tri thức truyền thống trong [6], [18] đã được ứng
dụng nhiều. Tuy nhiên, các phương pháp đó chưa đủ mạnh để xây dựng các chương
trình tự động hay biểu diễn cơ sở tri thức thuộc các lĩnh vực tri thức khác nhau. Mô
hình tri thức các đối tượng tính toán đượ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. Theo hướng này sẽ cho
phép mô hình được các bài toán cũng như thiết kế các giải thuật.
Mô hình tri thức các đối tượng tính toán, viết tắt là COKB (Computational
Objects Knowledge Base) đề xuất trong [1], là một hệ thống gồm 6 thành phần:
(C, H, R, Ops, Funcs, Rules )
trong đó mỗi thành phần được mô tả như sau:
a/ Tập các khái niệm về các đối tượng tính toán (C-Objects) C
Khái niệm được mô tả bởi một tên duy nhất. Các khái niệm được tổ chức theo
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, 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ó kiểu khái
niệm nền (ví dụ khái niệm DIEM trong hình học phẳng). Các khái niệm này
làm nền cho các khái niệm cấp cao hơn.
10
– Khái niệm cấp 1: có một 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ể được 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)
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 của 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.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 với 3 cạnh : A, B, C; 3 đường cao tương ứ ng : ha, hb, hc; diện tích S
của tam giác; nửa chu vi p của tam giác; bán kính đường tròn ngoại tiếp
R của tam giác, v.v … cùng vớ i các công thức liên hệ giữa chúng như
định lý góc trong tam giác, định lý sin, định lý cosin, các 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 trên
như sau:
Name: TAMGIAC
Construct: A, B, C
Isa: {}
Attrs: {GocA, GocB, GocC, a, b, c, ha, hb, hc, ma,
mb,mc, pa, pb, pc, S, p, r, R, ra, rb, rc}
Constraints: {a>0, b>0, c>0, ha>0, hb>0, hc>0, s.0, p>0,
R>0, }
11
F: {GocA + GocB + GocC = Pi,
a*sin(GocB)=b*sin(GocA),a^2 = b^2 + c^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}, …}
Ví dụ 1.2: Tri thức cho đối tượng hệ phương trình tuyến tính gồm các yếu tố: ma
trận hệ số A, ma trận cột cho hệ số tự do B, ma trận cột các biến X; cùng
với công thức liên hệ giữa chúng AX=B. Đối tượng hệ phương trình
tuyến tính được biểu diễn qua các tập hợp như sau:
Name: HE_PTTT
Construct: { A, X, B }
Isa: {}
Attrs: {}
F: {AX=B}
Facts: {}
Rules: {}
Sự kiện là phát biểu được mô tả bằng các biểu thức, đẳng thức, quan hệ giữa
các đối tượng, thuộc tính, hoặc các hàm mà có thể cho giá trị đúng hoặc sai. Sự kiện
còn mô tả thông tin về đối tượng (đối tượng thuộc khái niệm nào và các thuộc tính
tạo nên đối tượng).
Có 11 loại sự kiện sau:
1. Sự kiện thông tin về loại đối tượng. Ví dụ: A là một ma trận vuông.
2. 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 của thuộc tính. Ví dụ: Phần tử dòng i cột j của
ma trận A.
3. 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ử tại dòng i cột j trong ma trận A là 1.
12
4. Sự kiện về sự bằng nhau của hai đối tượng hay hai thuộc tính. Ví dụ: Ma
trận A = ma trận B.
5. Sự kiện về sự phụ thuộc của đối tượng vào các đối tượng khác thông qua
biểu thức tính toán. Ví dụ: Phần tử dòng i cột j của ma trận C bằng tổng

phần tử dòng i cột j của ma trận A và phần tử dòng i cột j của ma trận B.
6. Sự kiện về quan hệ giữa các đối tượng hay thuộc tính các đối tượng. Ví dụ:
Ma trận A giao hoán với ma trận B.
7. Sự kiện về biểu thức hàm cơ bản. Ví dụ: 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. Ví dụ: Định thức của ma trận A là 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.
Ví dụ: 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. Ví dụ: Hạng của ma trận A bằng hạng của ma trận B cộng 1.
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 hoặc đối tượng khác thông qua phương trình. Ví dụ: Hạng
của ma trận A bằng hạng của ma trận B + 1.
b/ Tập các quan hệ phân cấp H
Trên tập C ta có một quan hệ phân cấp, theo đó, một số khái niệm là sự đặc biệt
hóa của các khái niệm khác. Ví dụ tam giác 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.
13

Hình 1.1 Biểu đồ Hasse thể hiện phân cấp của các khái niệm tam giác
c/ Tập các quan hệ giữa các loại khái niệm R
Mỗi quan hệ được xác định bởi:
(Name, Args, Facts)
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ó các tính chất: phản xạ, đối xứng, phản xứng và bắc cầu.
Ví dụ 1.3: Quan hệ vuông góc giữa 2 đường thẳng được mô tả như sau:
Name: VUONG

Args: a, b: DUONGTHANG
Facts: A và B là 2 đ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
d/ Tập các hàm Funcs
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, 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ả
gồm có khái niệm, quan hệ, hàm, 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, toán tử có cấp n.
TAM_GIAC_VUONG_CAN TAM_GIAC_DEU
TAM_GIAC_VUONG TAM_GIAC_CAN
TAM_GIAC
14
Mỗi hàm gồm các thành phần:
(Name, Args, Return, Facts)
Name: tên 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: tập các sự kiện định nghĩa hàm
Ví dụ 1.4: Hàm xác định giao điểm của 2 đường thẳng:
Name: GIAODIEM
Args: a, b: DUONGTHANG
Return: X: DIEM
Facts: x thuộc a và x thuộc b
e/ Tập các toán tử Ops
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ó 2 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, 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ư với các biến thực.
Một toán tử gồm thành phần:
(Name, Args, Return, Facts)
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ụ 1.5: Phép toán trừ hai góc được mô tả như sau:
Name: “–”
Agrs: g1, g2: GOC
Return: x: real
Facts: x = op1.sd – op2.sd
15
f/ Tập các luật Rules
Các luật thể hiện tri thức. Mỗi luật cho ta một quy tắc suy luận để đi đến các sự
kiện mới (kết luận) từ sự kiện nào đó (giả thiết) dưới dạng các luật dẫn. Mỗi luật
gồm các thành phần:
(Name, Kind, Vars, Hypothesis, Goal)
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ả thiết của luật
Goal: tập các sự kiện kết luận của luật
Ví dụ 1.6: Luật hai tam giác bằng nhau:
Kind: “TAMGIAC = TAMGIAC”
Name: “”
Vars: tg1, tg2: TAMGIAC
Hypothesis: 3 cạnh của tg1 bằng với 3 cạnh tương ứng của

tg2
Goal: tg1 = tg2
1.3. Mục tiêu đề tài
Mô hình tri thức trong mục 1.2 được đề xuất trong [1] là mô hình tri thức các
đối tượng tính toán, bao gồm mô hình có các thành phần (C, H, R, Ops, Funcs,
Rules), ngôn ngữ đặc tả để biểu diễn các khái niệm [4], ngôn ngữ truy vấn và kỹ
thuật xử lý. Dựa trên mô hình COKB-ONT, luận văn hướng đến việc xây dựng
ngôn ngữ truy vấn cho các tri thức biểu diễn theo mô hình này. Cho đến nay vẫn
chưa có nghiên cứu nào đề xuất ngôn ngữ truy vấn một cách đầy đủ để trả lời nhiều
loại câu truy vấn.Trong [3], [4], [5] có đề cập đến ngôn ngữ truy vấn cho COKB-
ONT nhưng còn nhiều hạn chế, chỉ mới đáp ứng cho một số ít câu truy vấn đơn
giản, chủ yếu là truy vấn các thành phần trong mô hình. Chẳng hạn, trong [3] truy
vấn chủ yếu là lấy thông tin trực tiếp trong các thành phần của mô hình như: cho
biết định nghĩa khái niệm, thuộc tính của đối tượng, ràng buộc thuộc tính hay các
quan hệ tính toán. Nó chưa đáp ứng dạng câu hỏi có liên quan đến nhiều đối tượng
16
(chỉ liên quan đến thuộc tính của đối tượng), dạng câu hỏi xác nhận đúng sai hay
dạng câu hỏi có điều kiện. Ví dụ: Cho biết các mệnh đề quan hệ giữa ma trận
nghịch đảo với giải hệ PTTT? Nếu chuyển vị của A khả nghịch thì A có khả nghịch
không ? Khi nào thì định thức của hai ma trận bằng nhau? Trong khi đó truy vấn
trong [5] đáp ứng được dạng câu hỏi xác nhận đúng sai nhưng chưa đầy đủ. Hơn
nữa vẫn chưa đáp ứng dạng câu hỏi có liên quan đến nhiều đối tượng và dạng câu
hỏi có điều kiện liên quan đến nhiều đối tượng.
Bài toán đặt ra là xây dựng ngôn ngữ truy vấn tri thức theo mô hình ontology
COKB theo các tiêu chí sau:
(i) Truy vấn được tri thức thuộc lĩnh vực bất kỳ được biểu diễn theo COKB.
(ii) Trả lời cho các câu hỏi xoay quanh các khái niệm, các thuộc tính, quan
hệ, phép toán của khái niệm cũng như các thành phần của mô hình.
(iii) Trả lời các câu hỏi liên quan đến nhiều thành phần của mô hình.
(iv) Phủ được hầu hết các câu hỏi trong lĩnh vực cụ thể.

(v) Cập nhật được tri thức mới cho CSTT
Có thể phân loại thành các dạng truy vấn sau:
- Truy vấn TRUE/FALSE.
- Truy vấn tìm kiếm tri thức.
- Truy vấn cập nhật tri thức.
Luận văn đề xuất các cú pháp cho hai dạng sau:
+ Dạng 1: dạng truy vấn yêu cầu xác nhận tính đúng sai của thông tin đưa ra.
+ Dạng 2: truy vấn tri thức là các thành phần trong mô hình.
Các chương tiếp theo của luận văn gồm: chương 2 giới thiệu ngôn ngữ đặc tả
cho ontology COKB, chương 3 là chương chính của luận văn về xây dựng ngôn ngữ
truy vấn cho ontology COKB, trong đó có đề xuất cú pháp ngôn ngữ vấn tin trên
ontology COKB, chương 4 trình bày một ứng dụng trên lĩnh vực tri thức Đại số
17
tuyến tính và chương 5 là chương đúc kết vấn đề, đồng thời nêu những ưu điểm và
hạn chế của luận văn.
18
Chương 2. NGÔN NGỮ ĐẶC TẢ ONTOLOGY COKB

Ngôn ngữ ontology COKB (COKB Ontology Language), 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. Chương này tham khảo ở [4], [12] và có
một số bổ sung.

2.1. Các quy ước mô tả cú pháp COL
X::=Y cú pháp của X (non-keyword) được định nghĩa bở i Y
X | Y X hoặc Y
[X] phần tùy chọn, 0 hoặc 1 X
X* 0 hoặc nhiều X
X+ 1 hoặc nhiều X

<X> nhóm các phần để mô tả phạm vi của phép toán
CHỮ IN ĐẬM từ khóa của ngôn ngữ (keyword)
/* */ ghi chú
chữ thường non-keyword
2.2. Các thành phần của COL (elements language)
2.2.1. Tập ký tự (characters set)
Tập ký tự gồm các ký tự chữ, ký tự số và một số ký tự đặc biệt.
a/ Ký tự chữ
lower-letter ::= a | b | c | d | e | f | g | h | i | j |
k | l | m | n | o | p | q | r | s | t |
19
u | v | w | x | y | z
upper-letter ::= A | B | C | D | E | F | G | H | I | J |
K | L | M | N | O | P | Q | R | S | T | U | V
| W | X | Y | Z
letter ::= lower-letter | upper-letter
b/ Ký tự số
digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
c/ Một số ký tự đặc biệt
special-characters ::= ; | : | + | – | * | / | ^ | ! | = | < |
> | @ | . | , | ( | ) | [ | ] | { | } |
‘ | ’ | “ | & | _ | % | \ | # | ? | space
2.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)
Từ khoá Ý nghĩa
COBJECT
Khai báo đối tượng.
ENDCOBJECT
Kết thúc khai báo đối tượng

ATTRIBUTE
Khai báo thuộc tính của đối tượng
ENDATTRIBUTE
Kết thúc khai báo thuộc tính
HIERARCHY
Khai báo sự phân cấp
ENDHIERARCHY
Kết thúc khai báo phân cấp
ARGUMENT
Khai báo đối số
ENDARGUMENT
Kết thúc khai báo đối số
20
CONSTRAINT
Khai báo ràng buộc
ENDCONSTRAINT
Kết thúc khai báo ràng buộc
CONSTRUCT
Khai báo thuộc tính điều kiện
ENDCONSTRUCT
Kết thúc khai báo thuộc tính điều kiện
PROPERTY
Khai báo thuộc tính
ENDPROPERTY
Kết thúc khai báo thuộc tính
CRELATION
Khai báo quan hệ tính toán
ENDCRELATION
Kết thúc khai báo quan hệ tính toán
FACT

Khai báo sự kiện
ENDFACT
Kết thúc khai báo sự kiện
RULE
Khai báo một luật
ENDRULE
Kết thúc khai báo mộ t luật
RULES
Khai báo luật
ENDRULES
Kết thúc khai báo luật
RELATION
Khai báo quan hệ.
ENDRELATION
Kết thúc khai báo quan hệ
OPERATOR
Khai báo toán tử.
ENDOPERATOR
Kết thúc khai báo toán tử
FUNCTION
Khai báo hàm
ENDFUNCTION
Kết thúc khai báo hàm
PROC
Khai báo thủ tục tính toán.
ENDPROC
Kết thúc khai báo thủ tục tính toán
DEFINE
Định nghĩa
ENDDEFINE

Kết thúc khai báo định nghĩa
21
RETURN
Giá trị trả về của hàm
KINDRULE
Khai báo loại luật
NAMERULE
Tên luật
HYPOTHESIS
Giả thiết của luật
ENDHYPOTHESIS
Kết thúc khai báo giả thiết
GOAL
Kết luận của luật
ENDGOAL
Kết thúc khai báo luật
AND
Phép “and” trong logic
OR
Phép “or” trong logic
XOR
Phép “XOR” trong logic
NOT
Phép “not” trong logic
IMPLIES
Phép “suy ra” trong logic
EQUIVALENT
Phép “tương đương” trong logic
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 (symbols) 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.
name ::= letter<letter>*<digit>*<under-score>*
under-score ::= _
index-name ::= name [ sequence ]
Ví dụ 2.1:
my_name_1
MA_TRAN, CHUYEN_VI, MA_TRAN_KHA_NGHICH
A[1, 2]
22
Ngoài ra còn có các tên được định nghĩa trước, gọi là hằng (constant).
constant ::= TRUE | FALSE | PI | NULL
TRUE ::= 1
FALSE ::= 0
PI ::= 3.1416…
NULL ::= <giá trị rỗng>
c/ Phép toán
arith-operator ::= + | – | * | /| ^ | ^-1 | ^T
assign-operator ::= :=
range-operator ::=
rel-operator ::= < | <= | > | >= | <> | =
set-operator ::= UNION | MINUS | INTERSECT | SUBSET
logical-operator ::= NOT | AND | OR | XOR | IMPLIES | EQUIVALENT
d/ Chuỗi (string)
Chuỗi gồm dãy các ký tự đặt giữa hai dấu nháy kép “ ”.
string ::= “<letter>*”
e/ Số
number ::= integer | real
integer ::= digit-sequence

real ::= digit-sequence.digit-sequence
digit-sequence ::= digit<digit>*
2.2.3. Kiểu dữ liệu
Ngoài các C-Object, COL còn sử dụng các dữ liệu kiể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.
23
type ::= basic-type | structured-type | cobject-type
a/ Kiểu cơ bản
base-type ::= NATURAL | INTEGER | REAL | BOOLEAN |RATIONAL |
STRING
b/ Kiểu dữ liệu có cấu trúc
structured-type ::= SEQUENCE | LIST | SET | ARRAY
b1/ 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 calls). Cú pháp định
nghĩa biểu thức (
expr) trong phần 3.3.1.
SEQUENCE ::= expr<, expr>*
Ví dụ 2.2:
1, 2, “hi world”, abc, Pi, 2
b2/ Danh sách (list)
Danh sách là dãy biểu thức có thứ tự, được đặt giữa 2 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.
LIST ::= [ expr <, expr>* ]|[list <,list>*]
Ví dụ 2.3:
[1, 2, “hi world”, abc, Pi, 2]
[[1, 2, 3], [4, 5, 6]]
Lưu ý: danh sách rỗng được biểu diễn là [].

b3/ 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.
set ::= { expr <, expr>* }

×