Tải bản đầy đủ (.doc) (28 trang)

TÌM HIỂU ONTOLOGY VÀ ỨNG DỤNG CỦA ONTOLOGY

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.17 MB, 28 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
GV. HƯỚNG DẪN : PGS.TS. ĐỖ VĂN NHƠN
HỌC VIÊN : PHAN TỬ ÁNH
MÃ HV : CH1301080
BÀI THU HOẠCH MÔN BIỂU DIỄN TRI THỨC
VÀ SUY LUẬN
ĐỀ TÀI:
TÌM HIỂU ONTOLOGY VÀ ỨNG DỤNG CỦA
ONTOLOGY
MỤC LỤC
MỞ ĐẦU 3
NỘI DUNG 4
1. CÁC KHÁI NIỆM 4
1.2. Tổng quan về Ontology: 4
1.3. Logic mô tả 7
2. ỨNG DỤNG CỦA ONTOLOGY 8
2.1. Mạng ngữ nghĩa 8
2.2. Hệ chuyên gia 11
2.3. Lập trình hướng đối tượng 12
3. PHƯƠNG PHÁP XÂY DỰNG ONTOLOGY 13
4. NGÔN NGỮ ONTOLOGY WEB LANGUAGE (OWL) DL 14
5. CÔNG CỤ PROTÉGÉ 18
6. XÂY DỰNG CƠ SỞ TRI THỨC Y KHOA BẰNG ONTOLOGY 19
6.1. Mục Vêu 19
6.2. Thông Vn kỹ thuật 20
6.3. Các khái niệm chủ yếu 21
6.4. Định nghĩa các quan hệ 22
6.5 Biểu diễn luật 24
KẾT LUẬN 27
TÀI LIỆU THAM KHẢO 28


2
MỞ ĐẦU
Việc biểu diễn tri thức đóng vai trò hết sức quan trọng trong việc khẳng định khả
năng giải quyết vấn đề của một hệ cơ sở tri thức. Để hiểu rõ điều này, ta hãy tìm hiểu
về mối liên hệ giữa tri thức và biểu diễn tri thức.
Tri thức là tập hợp các thông tin được phát biểu một cách tường minh.
Biểu diễn tri thức là một phương pháp mã hóa tri thức sao cho máy tính có thể xử
lý được chúng.
Ngày nay, với sự bùng nổ thông tin, nhất là thông tin trên web đang được rất
nhiều nhà nghiên cứu quan tâm. Thế nhưng máy tính hiện nay chỉ có tác dụng nhận và
hiển thị thông tin chứ không có khả năng đọc và hiểu được thông tin. Do vậy, việc tìm
kiếm, tách chiết, lập luận để đưa ra tri thức cần thiết càng ngày càng khó khăn. Năm
1998, Tim Berners-Lee đã đề xuất ra web ngữ nghĩa (Semantic web), một sự phát triển
của web hiện tại. Theo ông, web ngữ nghĩa ra đời sẽ khắc phục được những nhược
điểm quan trong của web hiện tại, làm cho máy tính có thể hiểu thông tin trên web và
như thế việc xử lý thông tin trên web trở nên thuận lợi và chính xác hơn. Cũng theo
ông, nền tảng cơ bản của web ngữ nghĩa là Ontology.
Trong một vài năm gần đây, việc áp dụng ontology như một hình thức biểu diễn
tri thức trong các lĩnh vực ứng dụng khác nhau đã có những bước tiến quan trọng.
Ontology mô tả không chỉ khái niệm và thuộc tính mà còn cung cấp các quan hệ cũng
như các tiên đề phục vụ cho việc suy luận. Ontology có rất nhiều lợi thế như cho phép
thêm ngữ nghĩa vào dữ liệu, quản lý và cập nhật tri thức, tích hợp dữ liệu cũng như tái
sử dụng các thành phần dễ dàng hơn. Nhờ đó, ontology là mô tả chính thức của một số
bộ từ vựng chuyên môn.
Công dụng quan trọng nhất của ontology là biểu diễn tri thức. Ontology đã được
sử dụng thành công trong các hệ thống chuyên gia, mạng ngữ nghĩa… Do hình thức lý
thuyết là logic mô tả, ontology có lợi thế cả về diễn đạt ngữ nghĩa lẫn cơ chế suy luận.
Mục tiêu của bài thu hoạch này là tiếp cận các kiến thức về ontology, cũng như
ngôn ngữ OWL (Ontology Web Language), từ đó xây dựng thử nghiệm một hệ cơ sở
tri thức về lĩnh vực y khoa.

3
NỘI DUNG
1. CÁC KHÁI NIỆM
1.1. Biểu diễn tri thức: là một phương pháp mã hóa tri thức sao cho máy tính có thể xử
lý được chúng.
1.2. Tổng quan về Ontology:
Thuật ngữ “Ontology” đã xuất hiện từ rất sớm. Trong cuốn sách “Siêu hình”
(Metaphysics) của mình, Aristotle đã định nghĩa: “Ontology là một nhánh của triết học,
liên quan đến sự tồn tại và bản chất các sự vật trong thực tế”. Hay nói cách khác, đối
tượng nghiên cứu chủ yếu của Ontology xoay quanh việc phân loại các sự vật dựa trên
các đặc điểm mang tính bản chất của nó. Ontology là một thuật ngữ mượn từ triết học
được tạm dịch là “bản thể học”, nhằm chỉ khoa học mô tả các loại thực thể trong thế giới
thực và cách chúng liên kết với nhau.
Trong ngành khoa học máy tính và khoa học thông tin, Ontology mang ý nghĩa là các
loại vật và quan hệ giữa chúng trong một hệ thống hay ngữ cảnh cần quan tâm. Các loại
vật này còn được gọi là khái niệm, thuật ngữ hay từ vựng có thể được sử dụng trong một
lĩnh vực chuyên môn nào đó. Ontology cũng có thể hiểu là một ngôn ngữ hay một tập các
quy tắc được dùng để xây dựng một hệ thống Ontology. Một hệ thống Ontology định
nghĩa một tập
các từ vựng mang tính phổ biến trong lĩnh vực chuyên môn nào đó và quan hệ giữa
chúng. Sự định nghĩa này có thể được hiểu bởi cả con người lẫn máy tính. Một cách khái
quát, có thể hiểu Ontology là "một biểu diễn của sự khái niệm hoá chung được chia sẻ"
của một miền hay lĩnh vực nhất định. Nó cung cấp một bộ từ vựng chung bao gồm các
khái niệm, các thuộc tính quan trọng và các định nghĩa về các khái niệm và các thuộc tính
này. Ngoài bộ từ vựng, Ontology còn cung cấp các ràng buộc, đôi khi các ràng buộc này
được coi như các giả định
cơ sở về ý nghĩa mong muốn của bộ từ vựng, nó được sử dụng trong một lĩnh vực mà có
thể được giao tiếp giữa người và các hệ thống ứng dụng phân tán khác.
Ontology được sử dụng trong trí tuệ nhân tạo, công nghệ Web ngữ nghĩa (Semantic
4

Web), các hệ thống kỹ thuật, kỹ thuật phần mềm, tin học y sinh và kiến trúc thông tin như
là một hình thức biểu diễn tri thức về thế giới hoặc một số lĩnh vực cụ thể. Việc tạo ra các
lĩnh vực về Ontology cũng là cơ sở để định nghĩa và sử dụng của cơ cấu một tổ chức kiến
trúc(an enterprise architecture framework).
Định nghĩa 1:
Thông thường, ontology được định nghĩa như một cấu trúc bao gồm những thành
phần sau (Gruber 1993; Fensel 2001):
• C – tập các khái niệm (Concept);
• I – tập các thể hiện của khái niệm;
• R – tập các quan hệ hai ngôi được định nghĩa trên C;
• Z – tập các tiên đề, là các công thức logic biểu diễn các ràng buộc toàn vẹn
trong tập các thể hiện và khái niệm.
Định nghĩa 2:
Một ontology là một bộ tứ O = (C, P, R, A), trong đó:
• C là một tập các khái niệm được định nghĩa trong một miền. Một khái niệm
thường được xem như một lớp của ontology.
• P là một tập các thuộc tính. Một thuộc tính p ∈ P được định nghĩa như một
thể hiện của một quan hệ ba ngôi có dạng p(c, v, f), trong đó c ∈ C là một
khái niệm ontology, v là một giá trị thuộc tính gắn với c và f định nghĩa các
mặt giới hạn trên v. Một vài mặt giới hạn bao gồm loại (f
t
), lực lượng (f
c
) và
phạm vi (f
r
). Mặt giới hạn f
t
có thể là bất kỳ kiểu dữ liệu nào được hỗ trợ bởi
trình soạn thảo ontology, ví dụ như f

t

{boolean, integer, float, string,
symbol, instance, class, …}. Mặt giới hạn lực lượng f
c
định nghĩa cận trên

cận dưới của số lượng giá trị thuộc tính. Mặt giới hạn phạm vi f
r
chỉ định
một phạm vi các giá trị có thể gán cho thuộc tính.
• R = {r | r ⊆ C × C × R
t
} là một tập các quan hệ ngữ nghĩa hai ngôi
được định nghĩa giữa các khái niệm trong C. R
t
= {một-một, một-nhiều,
nhiều- nhiều} là tập các kiểu quan hệ.
• A là một tập các tiên đề. Mỗi tiên đề là một chân lý hoặc luật suy diễn.
Ontology lĩnh vực:
Một Ontology lĩnh vực mô hình hóa một lĩnh vực chuyên môn, hay một phần
của thế giới. Ontology lĩnh vực thể hiện những ý nghĩa riêng của các vấn đề khi áp
dụng vào lĩnh vực đó. Ví dụ, từ “card” có nhiều rất nghĩa. Một ontology chuyên về
bài pocker sẽ mô phỏng nghĩa “playing card” (lá bài) của thế giới, trong khi một
5
ontology lĩnh vực về máy tính lại mô phỏng ý nghĩa “puched card” (thẻ đục lỗ) và
“video card” (card màn hình).
Định nghĩa 3:
Một Ontology lĩnh vực định nghĩa một tập các thuật ngữ gọi là khái niệm. Các
mối quan hệ giữa những khái niệm này diễn tả một thế giới mục tiêu. Ontology

lĩnh
vực được định nghĩa qua bốn tầng, bao gồm tầng lĩnh vực, tầng phân hệ,
tầng sự
kiện, và tầng chứa các lớp. Một ontology miền thể hiện một tên miền của một
ontology và bao gồm nhiều phân hệ khác nhau được định nghĩa bởi các chuyên gia
trong lĩnh vực. Mỗi phân hệ được tổ hợp bới các tập sự kiện, kế thừa từ những bản
thông tin bởi các chuyên gia lĩnh vực. Mỗi sự kiện bao gồm một vài khái niệm của của
tầng chứa lớp. Trong tầng chứa lớp, mỗi khái niệm chứa một tên khái niệm, một tập
thuộc tính và một tập tóa tử cho một ứng dụng lĩnh vực. Ontology lĩnh vực có ba loại
quan hệ, bao gồm khái quát hóa, quy nạp và liên đới. Quan hệ giữ lĩnh vực và các phân
hệ tương ứng là sự khái quát hóa, thể hiện quan hệ “thuộc loại”. Quan hệ giữa mỗi
phân hệ và những sự kiện tương ứng là sự quy nạp. Quan hệ quy nạp diễn tả quan hệ
“là một phần của”. Liên đới
là một quan hệ ngữ nghĩa giữa các lớp trong một tầng.
Hình 1: Mô hình Ontology lĩnh
vực
6

Ontology thượng tầng:
Một ontology thượng tầng (hay ontology nền) là một mô hình các đối tượng
thuật ngữ thông dụng mà có thể áp dụng cho số lượng lớn các ontology miền.
Ontology thượng tầng chứa một từ điển cốt lõi trong đó mô tả những đối tượng
thuật
ngữ thuộc một tập hợp các lĩnh vực. Có rất nhiều ontology được chuẩn
hóa có thể sử
dụng được, bao gồm Dublin Core, GFO, OpenCyc/ResearchCyc, SUMO, and DOLCE.
WorldNet, đôi khi được xem như một ontology thượng tầng, thực ra không hoàn toàn
là một ontology. Mặc dù vậy, WorldNet được cài đặt như là một công cụ ngôn ngữ để
nghiên cứu ontology lĩnh vực.
1.3. Logic mô tả

Logic mô tả (Description logics, viết tắt DL) là một họ các ngôn ngữ biểu diễn tri
thức có thể sử dụng để biểu diễn tri thức thuật ngữ của một miền ứng dụng theo một
cách có cấu trúc và được hiểu rõ một cách hình thức. Mặt khác, cái tên logic mô tả có
ý nói đến các mô tả về khái niệm được dùng để mô tả một miền và ngữ nghĩa dựa trên
logic (logic-based semantics) thu được qua việc dịch từ logic mệnh đề bậc nhất. Logic
mô tả được thiết kế như là một mở rộng của khung ngữ nghĩa (semantic frame) và lưới
ngữ nghĩa (semantic network), vốn không được trang bị một ngữ nghĩa dựa trên logic
hình thức.
Cú pháp: bao gồm
• Một tập các ký hiệu mệnh đề dùng để ký hiệu các tên khái niệm (concept
name);
• Một tập các ký hiệu mệnh đề đôi để ký hiệu các tên vai trò (role name);
• Một định nghĩa đệ quy để định nghĩa các thuật ngữ khái niệm từ các tên khái
niệm và tên vai trò bằng cách sử dụng các tạo tử (constructor).
Trong lôgic mô tả, các tên khái niệm được xem là các khái niệm nguyên tử,
các tên vai trò được coi là các vai trò nguyên tử. Nhìn chung, một khái niệm đại
diện cho tập các cá thể thuộc về nó, và một vai trò đại diện cho một quan hệ giữa
các khái niệm.
Cú pháp của một thành viên trong gia đình lôgic mô tả được đặc trưng bởi
định nghĩa đệ quy của nó, các định nghĩa đệ quy này định nghĩa các tạo tử có thể
được dùng để tạo các thuật ngữ khái niệm.
Một số tạo tử thông dụng bao gồm các tạo tử lôgic trong logic bậc nhất như
phép giao (intersection) hay tuyển (conjunction) của các khái niệm, phép hợp
(union) hay hội (disjunction) của các khái niệm, phép phủ định (negation) hay lấy
phần bù (complement) của các khái niệm, hạn chế giá trị (hạn chế với mọi -
universal restriction), hạn chế tồn tại (existential resctriction), v.v Các tạo tử
khác có thể còn bao gồm các hạn chế đối với các vai trò thường thấy trong các
quan hệ nhị phân, ví dụ, tính đảo (inverse), tính bắc cầu (transitivity), chức năng
(functionality), v.v Đặc biệt đối với phép giao và phép hợp, lôgic mô tả sử dụng
các ký hiệu và để phân biệt chúng với




trong lôgic bậc nhất.
Dưới đây là một ví dụ về định nghĩa cú pháp của lôgic mô tả:
• một khái niệm nguyên tử là một khái niệm;
• khái niệm đỉnh ( ) là một khái niệm;

khái niệm đáy ( ) là một khái niệm;
• phần bù của một khái niệm C cũng là một khái niệm (ký hiệu là ¬C);
• giao của hai khái niệm C và D cũng là một khái niệm (ký hiệu là C D);

nếu C là một khái niệm và R là một tên vai trò, thì

R.C (hạn chế giá trị)
cũng là một khái niệm;
• nếu R là một tên vai trò, thì ∃R. (hạn chế tồn tại) cũng là một khái
niệm.
Ngữ nghĩa:
Ngữ nghĩa của lôgic mô tả được định nghĩa bằng cách giải nghĩa các khái niệm như là
các tập hợp gồm các cá thể, và các vai trò như là các tập gồm các cặp cá thể. Các cá thể
đó thường được cho là thuộc một miền xác định cho trước. Sau đó, ngữ nghĩa của các
khái niệm và vai trò không nguyên tử được định nghĩa theo các khái niệm và vai trò
nguyên tử. Điều này được thực hiện bằng một định nghĩa đệ quy tương tự như trong cú
pháp.
2. ỨNG DỤNG CỦA ONTOLOGY
2.1. Mạng ngữ nghĩa
Người đặt nền tảng cho mạng thông tin toàn cầu Tim Berners-Lee đã nhiều lần đề
cập đến mạng ngữ nghĩa (Sematic Web). Trong đó, các hệ thống có thể giao tiếp với
nhau, phân tích và diễn giải ý nghĩa của mọi dữ liệu trên site, rồi tập hợp nội dung liên

quan từ nhiều nguồn khác nhau. Nhờ đó, một công ty du lịch sẽ biết khách hàng của
họ có bao nhiêu đứa con, công việc, sở thích riêng để tìm ra điểm nghỉ mát lý tưởng
nhất cho cả gia đình.
Ý tưởng trọng tâm của là tạo ra những "metadata": chuỗi các cơ sở dữ liệu nối
tiếp nhau, có nhiệm vụ bổ sung cho thông tin trên web để các máy tính có thể hiểu và
giải quyết những vấn đề ngữ nghĩa phức tạp.
Mạng ngữ nghĩa được tổ chức dưới dạng một đồ thị, trong đó các nút biểu diễn
các đối tượng và cung biểu diễn quan hệ giữa các đối tượng.
Hình 2: Một mô hình mạng ngữ
nghĩa
Không chỉ thuận lợi cho việc tìm kiếm thông tin, mạng ngữ nghĩa còn hỗ trợ cơ
chế suy diễn khá hiệu quả mà điển hình là bài toán tam giác tổng quát.
Hình 3: Mạng ngữ nghĩa dùng để giải toán tam
giác
Việc tiếp cận ngữ nghĩa tài nguyên Web thông qua các Ontology thì mềm
dẻo hơn vì người sử dụng có thể lựa chọn bộ từ vựng và các ràng buộc trong các
Ontology. Ví dụ, các ứng dụng trong các miền khác nhau có thể sử dụng các
Ontology khác nhau. Đặc biệt, các Ontology có thể được sử dụng để đặc tả ý nghĩa
của các tài nguyên Web (thông qua các chú thích) bằng cách xác nhận các tài
nguyên như các trường hợp cụ thể của một số khái niệm quan trọng và hay hoặc
khẳng định các tài nguyên có quan hệ với các tài nguyên khác thông qua một số
thuộc tính quan trọng đã định nghĩa trong các Ontology.
2.2. Hệ chuyên gia
Với năng biểu diễn tri thức và cơ chế suy luận dựa trên logic mô tả,
ontology là mô hình tuyệt vời cho các hệ chuyên gia. So với phương pháp biểu
diễn bằng luật sinh vốn chỉ hỗ trợ quan hệ nếu… thì…, ontology cho phép biểu
diễn tri thức của chuyên gia một cách đa dạng và phong phú hơn qua nhiều loại
quan hệ khác nhau mà người
dùng có thể tự định nghĩa.

2.3. Lập trình hướng đối tượng
Ontology là một đồ thị thưa có kích thước lớn nên việc biểu diễn dưới dạng ma
trận liên kết là không khả thi.
Hình 4: Không thể hiện thực Ontology dưới dạng ma trận liên
kết
Khi ứng dụng vào thực tế, Ontology thường được biểu diễn dưới dạng frame và
điều này khá phù hợp với lập trình hướng đối tượng. Ngôn ngữ lập trình hướng đối
tượng hỗ trợ rất mạnh các khái niệm tương ứng với Ontology như lớp, thuộc tính
(quan hệ) và các thực thể. Do đó, đây là công cụ hoàn hảo để cài đặt Ontology.
HìnhHình 5: Siêu mô hình của một Ontology cài đặt bằng hướng đối
tượng
Ngược lại, Ontology mở rộng khả năng của lập trình hướng đối tượng. Thay vì
phải tập trung vào việc cài đặt cơ sở dữ liệu và các thuật toán xử lý, mô hình Ontology
hướng nỗ lực của người thiết kế sang việc khai báo và mô tả tri thức. Việc này còn cho
phép những chuyên gia có thể tạo dựng nên những ứng dụng hữu ích mà không cần
am hiểu nhiều về lập trình. Đây rõ ràng là mục tiêu mà các ngôn ngữ lập trình thế hệ
mới đang cố gắng hiện thực hóa.
3. PHƯƠNG PHÁP XÂY DỰNG ONTOLOGY
Quy trình phát triển Ontology là một quy trình gồm nhiều bước, tuy nhiên vẫn
chưa có một phương pháp chuẩn hóa nào để phát triển các ontologies. Sau đây là quy
trình phát triển gồm 7 bước do Stanford Center for Biomedical Informatics Research
đưa ra (đây là nhóm phát triển phần mềm Protégé để trình diễn và soạn thảo
Ontology).
+ Bước 1: Xác định lĩnh vực và phạm vi của Ontology
Trong giai đoạn này cần xác định mục đích của việc xây dựng ontology là gì?
Phục vụ đối tượng nào? Ontology sắp xây dựng cần có đặc điểm gì, liên quan đến lĩnh
vực, phạm vi nào. Quá trình khai thác, quản lý và bảo trì ontology được thực hiện ra
sao?
+ Bước 2: Xem xét việc sử dụng lại các ontology có sẵn
Cấu trúc của một Ontology bao gồm 3 tầng: tầng trừu tượng (Abstract), tầng

miền xác định (Domain) và tầng mở rộng (Extension). Trong đó tầng trừu tượng có
tính tái sử dụng rất cao, tầng miền xác định có thể tái sử dụng trong một lĩnh vực nhất
định. Cộng đồng Ontology cũng đang lớn mạnh và có rất nhiều Ontology đã
được tạo ra, với tâm huyết của nhiều chuyên gia. Do đó trước khi bắt đầu xây dựng
ontology, cần xét đến khả năng sử dụng lại các ontology đã có. Nếu có thể sử dụng lại
một phần các ontology đã có, chi phí bỏ ra cho quá trình xây dựng ontology sẽ giảm đi
rất nhiều.
+ Bước 3: Liệt kê các thuật ngữ quan trọng
Ontology được xây dựng trên cơ sở các khái niệm trong một lĩnh vực cụ thể, vì
vậy khi xây dựng ontology cần bắt đầu từ các thuật ngữ chuyên ngành để xây dựng
thành các lớp trong ontology tương ứng. Tất nhiên không phải thuật ngữ nào cũng
đưa vào ontology, vì chưa chắc đã định vị được cho thuật ngữ đó. Do đó cần phải liệt
kê các thuật ngữ, để xác định ngữ nghĩa cho các thuật ngữ đó, cũng như cân nhắc về
phạm vi của ontology. Việc liệt kê các thuật ngữ còn cho thấy được phần nào tổng
quan về các khái niệm trong lĩnh vực đó, giúp cho các bước tiếp theo được thuận lợi.
+ Bước 4: Xác định các lớp và phân cấp của các lớp
Công việc xác định các lớp không chỉ đơn giản là tiến hành tìm hiểu về ngữ
nghĩa của các thuật ngữ đã có để có được các mô tả cho thuật ngữ đó, mà còn phải
định vị cho các lớp mới, loại bỏ ra khỏi ontology nếu nằm ngoài phạm vi của
ontology hay hợp nhất với các lớp đã có nếu có nhiều thuật ngữ có ngữ nghĩa như nhau
(đồng nghĩa, hay đa ngôn ngữ). Ngoài ra không phải thuật ngữ nào cũng mang tính
chất như một lớp.
Một công việc cần phải tiến hành song song với việc xác định các lớp là xác định phân
cấp của các lớp đó. Việc này giúp định vị các lớp dễ dàng hơn.
Có một số phương pháp tiếp cận trong việc xác định phân cấp của các lớp:
• Phương pháp từ trên xuống (top-down): bắt đầu với định nghĩa của các lớp
tổng quát nhất trong lĩnh vực và sau đó chuyên biệt hóa các khái niệm đó. Ví dụ: Trong
Ontology về quản lý nhân sự, ta bắt đầu với lớp Người, sau đó chuyên biệt hóa lớp
Người đó bằng cách tạo ra các lớp con của lớp Người như : Kỹ sư, Công nhân, Bác
sỹ,… Lớp Kỹ sư cũng có thể chuyên biệt hóa bằng cách tạo ra các lớp con như Kỹ sư

CNTT, Kỹ sư điện, Kỹ sư cơ khí, …
• Phương pháp từ dưới lên (bottom-up): bắt đầu với định nghĩa của các lớp cụ
thể nhất, như các lá trong cây phân cấp. Sau đó gộp các lớp đó lại thành các khái tổng
quát hơn. Ví dụ: ta bắt đầu với việc định nghĩa các lớp như: nhân viên lễ tân, nhân
viên vệ sinh, nhân viên kỹ thuật. Sau đó tạo ra một lớp chung hơn cho các lớp đó là
lớp nhân viên.

Phương pháp kết hợp: kết hợp giữa phương pháp từ trên xuống và từ dưới
lên: bắt đầu từ định nghĩa các lớp dễ thấy trước và sau đó tổng quát hóa và chuyên
biệt hóa các lớp đó một cách thích hợp. Ví dụ ta bắt đầu với lớp nhân viên trước, là
thuật ngữ hay gặp nhất trong quản lý nhân sự. Sau đó chúng ta có thể chuyên biệt hóa
thành các lớp con: nhân viên lễ tân, nhân viên vệ sinh,… hoặc tổng quát hóa lên
thành lớp Người.
+ Bước 5: Xác định các thuộc tính
Để xác định thuộc tính cho các lớp, ta quay trở lại danh sách các thuật ngữ đã liệt
kê được. Hầu hết các thuật ngữ còn lại (sau khi đã xác định lớp) là thuộc tính của các
lớp đó. Với mỗi thuộc tính tìm được, ta phải xác định xem nó mô tả cho lớp nào. Các
thuộc tính đó sẽ trở thành thuộc tính của các lớp xác định. Ví dụ lớp Người có các
thuộc tính sau: Họ, Tên, Ngày sinh, Giới tính, Nghề nghiệp, Địa chỉ, Điện thoại,…
+ Bước 6: Xác định giới hạn của các thuộc tính (lực lượng, kiểu giá trị).
Các thuộc tính có thể có nhiều khía cạnh khác nhau: như kiểu giá trị, các giá trị
cho phép, số các thuộc tính (lực lượng), và các đặc trưng khác mà giá trị của thuộc
tính có thể nhận. Ví dụ: “Năm sinh” của một “nhân viên” chỉ có duy nhất và là số
nguyên, có thể nhận giá trị từ 1948 đến 1990. Cần phải xác định các ràng buộc cho một
thuộc tính càng chặt chẽ càng tốt, để tránh trường hợp nhập dữ liệu sai, dẫn đến đổ vỡ
của các ứng dụng sử dụng Ontology này.
+ Bước 7: Tạo các thể hiện / thực thể
Bước cuối cùng là tạo ra các thể hiện của các lớp trong sự phân cấp. Việc tạo thể
hiện cho một lớp là quá trình điền các thông tin vào các thuộc tính của lớp đó.
4. NGÔN NGỮ ONTOLOGY WEB LANGUAGE (OWL) DL

Ontology Web Language (OWL) là ngôn ngữ đánh dấu được sử dụng để xuất bản
và chia sẻ dữ liệu sử dụng các ontology trên Internet. OWL là một bộ từ vựng mở rộng
của khung mô tả tài nguyên (RDF) và được kế thừa từ ngôn ngữ DAML+OIL Web
ontology – một dự án được hỗ trợ bởi W3C. OWL biểu diễn ý nghĩa của các thuật ngữ
trong các từ vựng và mối liên hệ giữa các thuật ngữ này để đảm bảo phù hợp với quá
trình xử lý bởi các phần mềm.
Hình 6: Kiến trúc của một ứng dụng
Ontology
OWL được xem như là một kỹ thuật trọng yếu để cài đặt cho Semantic Web
trong tương lai. OWL được thiết kế đặc biệt để cung cấp một cách thức thông dụng
trong việc xử lý nội dung thông tin của Web. Ngôn ngữ này được kỳ vọng rằng sẽ cho
phép các hệ thống máy tính có thể đọc được thay thế cho con người. Vì OWL được
viết bởi XML, các thông tin OWL có thể dễ dàng trao đổi giữa các kiểu hệ thống máy
tính khác nhau, sử dụng các hệ điều hành và các ngôn ngữ ứng dụng khác nhau. Mục
đích chính của OWL là sẽ cung cấp các chuẩn để tạo ra một nền tảng để quản lý tài
sản, tích hợp mức doanh nghiệp và để chia sẻ cũng như tái sử dụng dữ liệu trên Web.
OWL được phát triển bởi nó có nhiều tiện lợi để biểu diễn ý nghĩa và ngữ nghĩa hơn
so với XML, RDF và RDFS, và vì OWL ra đời sau các ngôn ngữ này, nó có khả năng
biểu diễn các nội dung mà máy có thể biểu diễn được trên Web.
Bảng 1: Các mô tả thuộc tính của
OWL
Bảng 2: Các mô tả thuộc tính lớp của
OWL
Bảng 3: Các tiên đề và sự kiện của
OWL
Ví dụ:
Namespace(elp=<

htt p


://e x

a m p

l e

. o

rg/Li ba

ry #

>) Ontology(elp:Ontology
Class(elp:Sach)
Class(elp:Nguoi)
Class(elp:TacGia partial exp:Nguoi)
Class(elp:NguyenDuy partial exp:TacGia )
Class(elp:HoChiMinh partial exp:TacGia )
Class(elp:PhanThiTuoi partial exp:TacGia )
ObjectProperty(elp:viet)
Class(elp:TacGia Complete elp: Nguoi
restriction(elp:viet allValuesFrom( unionOf (elp:Sach))
)
)
Class(elp: < ProgrammingTheSemanticWeb partial exp:Sach)
Individual(elp: < ProgrammingTheSemanticWeb type(elp:TobySegaran)
value(elp:viet)
)
)
Hình 7: Khung ứng dụng Jena hỗ trợ phát triển ứng dụng

Ontology.
5. CÔNG CỤ PROTÉGÉ
Protégé là công cụ soạn thảo Ontology miễn phí, mã nguồn mở và cũng là một
khung ứng dụng cho hệ cơ sở tri thức. Thông tin và gói cài đặt chương trình có thể tìm
thấy tại trang web chính thức: http

://p

ro

tege.

stanfo

rd

.

edu

/
Nền tảng Protégé hỗ trợ hai cách chính để mô hình hóa các ontology thông qua
Protégé-Frames và trình soạn thảo Protégé-OWL. Các ontology của Protégé Có thể
được xuất ra bằng nhiều định dạng khác nhau, bao gồm RDF(S), OWL và XML
Schema.
Protégé được viết dựa trên on Java, có khả năng mở rộng và cung cấp một
môi trường plug-and-play, tạo ra một nền tảng linh động phục vụ cho việc tạo mẫu
nhanh chóng và phát triển phần mềm ứng dụng.
Hình 8: Giao diện của công cụ
Protégé

Protégé is được hỗ trợ bởi một cộng đồng lớn của mạnh các nhà phát triển phần
mềm và học thuật, chính phủ và các cộng tác viên. Họ đang sử dụng Protégé cho các
giải phảp kiến thức trong những lĩnh vực phong phú như chế phẩm sinh học, thu thập
tri thức và mô hình cộng tác.
Cộng đồng
Số người đăng ký sử dụng 153,642
Số thành viên website protege 17,235
Số thành viên tham gia thảo luận 2,746
Số thành viên protege-owl 2,248
Bảng 4: Thống kê người dùng tại website
Protege
6. XÂY DỰNG CƠ SỞ TRI THỨC Y KHOA BẰNG ONTOLOGY
6.1. Mục tiêu
Cơ sở tri thức về y khoa là một trong những hệ cơ sở tri thức thông dụng nhất.
Điều này một phần là do nhu cầu chăm sóc sức khỏe vốn là nhu cầu cơ bản nhất của
con người từ xưa đến nay. Mặt khác, cơ sở tri thức về y khoa là một trong những hệ tri
thức có khối lượng đồ sộ và được hệ thống hóa cao của con người.
Rất nhiều cách đã được ứng dụng để mô tả và khai thác các kiến thức y khoa
nhằm hỗ trợ chẩn đoán, điều trị và tư vấn sức khỏe và có rất nhiều hệ đã được hiện
thực, ứng dụng vào thực tế và thậm chí là thương mại hóa. Trong phạm vi thời gian
hạn hẹp, bài thu hoạch này đặt mục tiêu xây dựng thử nghiệm một bộ khung cơ sở tri
thức y khoa dựa trên kiến trúc Ontology và cài đặt sẵn một số kiến thức thông dụng
nhất. Hệ cơ sở này được đặt tên là MedicKBase.
Sau khi hoàn thành, hệ MedicKBase dự định sẽ được đưa vào một hệ thống tư
vấn sức khỏe cá nhân trên Internet, đồng thời tích hợp vào điện thoại di động dưới
hình thức một phần mềm tư vấn sức khỏe cá nhân. Điều này sẽ đáp ứng nhu cầu tự
chăm sóc sức khỏe tại nhà của người dân cũng như một kênh tuyên truyền các kiến
thức và chính sách y tế hiệu quả
Hình 9: Các chức năng chính của
MedicKBase

6.2. Thông tin kỹ thu

t
Cơ sở tri thức MedicKBase được cài đặt dựa trên ngôn ngữ OWL DL và công
cụ chủ yếu được s

dụng là Protégé version 4.1.0. Ngôn ngữ chính hiện được sử
dụng là tiếng Việt mới mục tiêu
trước h
ế
t

đ
ế
n
người sử dụng Việt Nam.
Hệ cơ sở tri thức này được lưu trữ trong một tập tin có tên là
MedicKBase
.
o
w
l

d
ư

i định dạng
R
DF
/

O
W
L
.
RFD là định dạng database chủ yếu
dùng để lưu trữ các Ontology. Định dạng
n
à
y
được hỗ trợ bới đa số các công cụ
thiết kế Ontology.
Mô hình Ontology được xây dựng là một mô hình Ontology lĩnh vực, có giới
hạn trong lĩnh v

c chăm sóc y tế thông thường với mục tiêu phục vụ đại đa số
người dùng không có nhiều kiến thức về y khoa.
6.3. Các khái niệm chủ y
ế
u
Các khái niệm được sử dụng trong hệ MedicKBase là những khái niệm thông
dụng trong lĩnh vực chăm sóc sức khỏe, được trích ra từ tài liệu [5] và từ internet. Các
khái niệm này được phân làm các phân hệ chính sau:
• Tình huống: là các sự kiện diễn ra mà trong đó người sử dụng cần đến sự hỗ
trợ về y khoa, trong trường hợp này là những thông tin tư vấn của cơ sở tri
thức MedicKBase, để có những xử lý thích hợp.
• Bệnh: các khái niệm và thông tin mô tả về các bệnh thông thường (cảm nắng,
nghẹt thở, co giật…). Bệnh được định nghĩa là trạng thái cơ thể hoặc bộ phận
cơ thể hoạt động không được bình thường. Xác định bệnh là mục tiêu của quá
trình chuẩn đoán và là tiền đề cho việc chữa trị.
• Triệu chứng: các dấu hiệu cùa người bệnh thể hiện ra bên ngoài hoặc qua xét

nghiệm. Ví dụ: Chóng mặt, nhức đầu, sốt cao, tim đập nhanh… Đây là thông
tin đóng vai trò quyết định khi chẩn đoán bệnh lý. Đôi khi việc xuất hiện một
bệnh cũng đồng thời là triệu chứng của một bệnh khác. Do đó, Triệu chứng
cũng là lớp cha của Bệnh.
• Xét nghiệm: phân tích vật mẫu bằng phương pháp khoa học để giúp chẩn
đoán bệnh.
• Phương pháp xử lý: Các khái niệm mô tả các phương pháp cũng như trình
tự xử lý các bệnh lý được đề cập. Ngoài ra, cách xử lý còn được áp dụng cho
một số trường hợp cấp cứu mà không có thời gian hoặc kinh nghiệm đoán
bệnh lý chính xác.
• Phương tiện: Các phương tiện hỗ trợ cho việc di chuyển của bệnh nhân (xe
cấp cứu, xe taxi, cáng cứu thương…) hoặc hỗ trợ quá trình chẩn đoán (máy
siêu âm, x-quang) và chữa trị (máy lọc thận, máy trợ tim…). Với sự phát triểu
của công nghệ hiện đại, phương tiện đóng góp một phần quan trọng vào kết
quả điều trị.
• Dụng cụ: Các dụng cụ hỗ trợ cho việc chữa bệnh cũng như cấp cứu (băng,
gạc, nhiệt kế, khăn…).
• Thuốc: Chế phẩm hóa học được sử dụng trong việc điều trị bệnh lý
(paracetamol, oxy già…). Thuốc đóng vai trò chủ yếu trong việc chữa trị
hầu hết các loại bệnh. Thông tin về các loại thuốc thông dụng sẽ rất có ích
cho bệnh nhân, nhất là các thông tin về tính năng, cách sử dụng và tác dụng
phụ.
• Thông tin: Các thông tin bổ trợ phục vụ cho việc chẩn đoán cũng như xác
định phương pháp điều trị. Ví dụ: độ tuổi, giới tính, cân nặng, chiều cao…
Hình 10: Các phân hệ chính trong
MedicKBase
6.4. Định nghĩa các quan h

Các quan hệ trong MedicKBase được thiết kế không chỉ để mô tả mối tương
quan giữa các khái niệm đơn thuần mà còn làm nền tảng cho việc suy luận của hệ cơ

sở tri thức. Từ những thông tin đầu vào bao gồm triệu chứng, dấu hiệu và một số
thông tin khác, hệ thống sẽ suy diễn ra căn bệnh và cách điều trị.
• Xác định bởi: Mỗi tình huống được xác định bởi một bệnh đặc trưng. Điều
này có nghĩa là mỗi tình huống trong MedicKBase đều tương ứng với ít nhất
một bệnh.

Xác định: Khi một bệnh lý phát sinh cũng có nghĩa là ta có một tình huống
cần phải xử lý. Đây cũng là quan hệ đảo của quan hệ xác định bởi.
xác
định

bởi
Tình huống
Bệnh
xác

định
Hình 11: Quan hệ giữa bệnh và tình
hu

ng
• Có triệu chứng: Mỗi bệnh lý đều được nhận diện qua các triệu chứng. Do đó,
quan hệ có triệu chứng xác định các triệu chứng đặc trưng của một căn
bệnh. Đây là quan hệ chủ đạo trong việc chẩn đoán bệnh và có tính bắc
cầu.

Là triệu chứng của: là quan hệ đảo của quan hệ có triệu chứng.
• Cần thông tin: Quan hệ này xác định các nút thành viên thuộc lớp Thông tin
phục vụ cho việc suy luận tại một nút nào đó. Ví dụ, để quyết định sử dụng
phương pháp xử lý nghẹt thở là thúc vào bụng đối với người lớn, ta phải có

thông tin bệnh nhân là người lớn.

Là thông tin cần của: là quan hệ đảo của quan hệ cần thông tin.
• Xử lý bằng cách: xác định phương pháp ứng phó đối với mỗi tình huống. Đây
là quan hệ đại diện cho luồng xử lý chính của MedicKBase với đầu vào là một
tình huống cần hỗ trợ y tế và đầu ra là giải pháp cho tình huống đó.

Là cách xử lý của: là quan hệ đảo của quan hệ xử lý bằng cách.
6.5 Biểu diễn lu

t
Luồng suy diễn chủ đạo của MedicKBase đi từ các triệu chứng do người dung
cung cấp để chẩn
đ
o
á
n
bệnh, qua đó xác định tình huống và đưa ra cách xử lý. Tuy
nhiên, hệ MedicKBase cũng có thể được sử dụng để đưa ra những câu hỏi thu
thập thông tin bổ sung bên cạnh những thông tin do người dùng cung cấp, từ
đ
ó
có những chẩn đoán chính xác
hơn
.
Hình 12: Luồng suy diễn của
MedicKBase
Để thực hiện được cơ chế suy diễn trên, các luật suy diễn cần được đưa vào
không phải dưới d


ng nếu … thì … mà dưới dạng các quan hệ đã được nêu ở trên
cùng với những ràng buộc cụ thể theo ngôn ngữ logic diễn giải. Điều này thật ra
rất đơn giản vì ngôn ngữ của Ontology rất giàu ngữ nghĩa và gần v

i ngôn ngữ tự
nhiên.
Hình sau diễn tả một sơ đồ hướng dẫn xử lý tình huống nạn nhân bị nghẹt
thở với ba cách xử lý khác nhau. Mỗi cách xử lý được lựa chọn dựa trên các thông
tin điều hướng (Có nói được không? Có phải trẻ nhỏ không? )
Hình 13: Sơ đồ xử lý nghẹt
th

Trong
trường
hợp này, các luật được đưa vào dưới dạng các quan hệ và ràng
buộc của 3 khái ni

m: Thúc vào bụng với người lớn, Thúc vào bụng với trẻ nhỏ và
Thúc vào bụng với trẻ sơ sinh. Hai loại quan h

được sử dụng là có triệu chứng và
là cách xử lý.
Các luật của Thúc vào bụng với người lớn được diễn giải như
s
au
:
• có triệu chứng some Không nói
đ
ư


c
• cần thông tin some Người l

n
• là cách xử lý some Nghẹt th

×