BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
ĐOÀN VĂN CỰ
(In hoa, cỡ chữ 14, font chữ Times New Roman)
TÌM HIỂU ONTOLOGY TRONG CHIA SẺ TRI THỨC
VÀ ỨNG DỤNG TRONG LĨNH VỰC Y TẾ
TẠI HUYỆN PHÚ VANG
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01
(In hoa, cỡ chữ 14, font chữ Times New Roman)
LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS. LÊ MẠNH THẠNH
Huế, 2013
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu do chính bản thân tôi làm dưới
sự hướng dẫn của Phó Giáo sư Tiến sĩ Lê Mạnh Thạnh. Các số liệu, kết quả nêu trong
luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác.
Trong luận văn đã có sự tham khảo các tài liệu và các luận văn khác đều được trích
dẫn nguồn gốc rõ ràng.
Học viên
Đoàn Văn Cự
Tôi xin được bày tỏ lòng biết ơn chân thành và sâu sắc nhất đến
thầy giáo hướng dẫn, Phó Giáo sư Tiến sĩ Lê Mạnh Thạnh, người đã
tận tình dẫn dắt và tạo mọi điều kiện tốt nhất để tôi có thể hoàn
thành luận văn này.
Tôi xin chân thành cảm ơn các thầy cô giáo khoa Công nghệ
thông tin trường Đại học Khoa học Huế.
1.1.4.1 Giới thiệu 6
1.1.5. Yêu cầu khi xây dựng Ontology 8
1.1.6. Xây dựng ontology 9
1.2. Ngôn ngữ ontology 12
1.2.1. RDF (Resource Description Framework): 12
1.2.1.1. Tổng quan RDF: 12
1.2.1.2. Chia sẻ dữ liệu RDF: 13
1.2.2. RDFS (RDF-Schema) 15
1.2.2.1. Các lớp và thuộc tính trong RDF/RDFS: 16
1.2.2.2. Xây dựng Ontology với RDFS: 17
1.2.3. OWL (Web Ontology Language) 18
1.3. Phần mền công cụ hỗ trợ xây dựng và quản trị ontology 21
1.3.1. Phần mềm Chimaera 21
1.3.2. Phần mềm Protégé 22
1.3.3 KAON 24
1.4. Kết luận chương 26
CHƯƠNG 2. CHIA SẺ TRI THỨC VÀ ỨNG DỤNG TRONG ONTOLOGY 27
2.1. Tri thức trong lĩnh vực y tế 27
2.1.1. Nhu cầu chia sẻ tri thức trong lĩnh vực y tế 27
2.1.2. Khái quát về UMLS 28
2.1.3. Chia sẻ tri thức trong lĩnh vực y tế 28
2.2. Cơ sở dữ liệu suy diễn trong chăm sóc sức khỏe 30
2.2.1. Chuyển đổi các phần tử của RDFS và OWL(DAML+OIL) thành các luật suy diễn 33
2.2.1.1. Chuyển đổi phần tử của RDFS 33
2.2.1.2. Chuyển đổi phần tử của OWL(DAML+OIL) 35
2.3. Vai trò của ontology trong truy vấn và suy diễn 37
2.4. Ontology trong lĩnh vực y tế 39
2.4.1. Ontology cho UMLS 40
2.5. Tích hợp thông tin 45
CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG TRONG LĨNH VỰC Y TẾ Ở HUYỆN
Unified Medical Language System (Hệ
thống ngôn ngữ y học thống nhất)
URI
Uniform Resource Identifier (Định danh
tài nguyên đơn nhất)
W3C
World Wide Web Consortium (Tổ chức
W3C)
XML
Extensible Markup Language (Ngôn ngữ
đánh dấu mở rộng)
DANH MỤC CÁC HÌNH VẼ
Số hiệu
hình vẽ
Tên hình vẽ Trang
1.1 Ví dụ về Ontology 6
1.2 Kiến trúc phân tầng của web ngữ nghĩa 7
1.3 So sánh giữa RDF và RDFS 15
1.4 Chimaera hỗ trợ hầu hết các định dạng Ontology 22
1.5 Giao diện phần mềm Protégé 23
1.6 Giao diện KAON 25
3.1 Cấu trúc tổng quát của chương trình Demo 51
3.2 Chức năng khám bệnh. 53
3.3 Chức năng nhập bệnh 54
3.4 Chức năng tìm kiếm bệnh 55
3.5 Cây biểu diễn cấu trúc dữ liệu XML 55
3.6 File dữ liệu XML 56
3.7 Hệ thống đơn giản 58
3.8 Hệ thống đa người dùng 58
MỞ ĐẦU
tế tại Huyện Phú Vang ” là nhằm nêu cách giải quyết và đáp ứng phần nào
nhu cầu cấp thiết đối với việc chia sẻ tri thức trong lĩnh vực y tế đến cộng
đồng nói chung các tổ chức, cá nhân nói riêng.
2. Tình hình nghiên cứu và tính mới của đề tài
Trên thế giới, việc chia sẻ tri thức đã được nghiên cứu và đạt được một
số thành tựu mong đợi. Trong lĩnh vực y tế cũng có các công trình nghiên cứu
và triển khai để chia sẻ tri thức đến cộng đồng một cách hiệu quả. Việc tìm
hiểu ontology trong chia sẻ tri thức và ứng dụng trong lĩnh vực y tế, giúp các
tổ chức cá nhân có một sự hiểu biết nhất định về lĩnh vực y tế.
Ở Việt nam, đã có các nghiên cứu về việc chia sẻ tri thức, nhưng chưa có
công trình nào công bố về chia sẻ tri thức trong lĩnh vực y tế, để chia sẻ tri
thức sử dụng ontology
3. Mục đích của đề tài
- Tìm hiểu về ontology trong chia sẻ tri thức
- Nghiên cứu phương pháp sử dụng các kỹ thuật Web ngữ nghĩa, đặc
biệt là ontology trong chia sẻ tri thức và ứng dụng vào lĩnh vực y tế.
4. Phương pháp nghiên cứu
- Khảo sát, nghiên cứu các công trình của thế giới có liên quan đến đề tài.
- Tìm tài liệu từ sách, báo, tập chí khoa học gần đây nhất (2005 trở lại đây).
- Nghiên cứu lý thuyết, phân tích, tổng hợp, khái quát rút ra những vấn
đề cần thiết cho đề tài
5. Nội dung của đề tài
- Luận văn bao gồm các nội dung và được tổ chức như sau:
Chương 1. Tìm hiểu về Ontology và các kỹ thuật Ontology
Tìm hiểu về khái niệm ontology, các ngôn ngữ ontology, các công cụ hỗ
trợ xây dựng và quản trị ontology cũng như các phương thức xây dựng ontology.
2
Chương 2. Chia sẻ tri thức và ứng dụng Ontology
Trình bày chi tiết cách thức, phương pháp và các chuẩn ưng dụng cơ
sở của ontology trong chia sẻ tri thức ứng dụng trong lĩnh vực y tế.
đúng ra, ontology không cần chứa bất kỳ đối tượng nào, nhưng ontology có
thể cung cấp một phương tiện để phân loại các đối tượng.
4
Lớp (khái niệm): Class
Hầu hết ontology đều tập trung xây dựng các lớp được tổ chức theo cấu
trúc phân cấp để mô tả các lớp trong miền cần quan tâm. Ví dụ “động vật” là
một lớp trong ngữ cảnh động vật học. Bên dưới lớp này có thể có các lớp con
ví dụ “động vật có vú” và “đông vật không có vú”,…
Thuộc tính: Property
Các đối tượng trong ontology có thể được mô tả thông qua việc khai
báo các thuộc tính của chúng. Mỗi một thuộc tính đều có tên và giá trị của
thuộc tính đó. Các thuộc tính được sử dụng để lưu trữ các thông tin mà đối
tượng có thể có. Ví dụ, đối tượng là con người thì có thể có các thuộc tính:
Họ_tên, ngày_sinh, quê_quán, số_cmnd,…
Quan hệ: Relation
Quan hệ giữa các đối tượng trong một ontology cho biết các đối tượng
liên hệ với đối tượng khác như thế nào. Sức mạnh của ontolgy nằm ở khả
năng diễn đạt quan hệ. Tập hợp các quan hệ cùng nhau mô tả ngữ nghĩa của
domain. Tập các dạng quan hệ được sử dụng và cây phân loại thứ bậc của
chúng thể hiện sức mạnh diễn đạt của ngôn ngữ dùng để biểu diễn ontology.
Ontology thường phân biệt các nhóm quan hệ khác nhau. Vd:
• Quan hệ giữa các lớp
• Quan hệ giữa các thực thể
• Quan hệ giữa một thực thể và một lớp
• Quan hệ giữa một đối tượng đơn và một tập hợp
• Quan hệ giữa các tập hợp.
5
Hình 1.1. Ví dụ về Ontology
Xét ví dụ ở hình 1.1, ta có ba lớp Employee, Country và Publication,
trong đó lớp Employee có 2 cá thể Person -1 và Person -2, cả hai cá thể này
sự giao tiếp trên tất cả các quốc gia.
- URI (Uniform Resource Identifier):là kí hiệu nhận dạng Web đơn
giản.
- Tầng XML: XML (eXtensible Markup Language) là ngôn ngữ đánh
dấu mở rộng, cho phép người dùng có thể tùy thêm vào những thẻ theo yêu
cầu của mình.
- Tầng RDF (Resource Description Framework): Khung mô tả tài
nguyên - RDF được W3C giới thiệu để cung cấp một cú pháp chuẩn để tạo,
thay đổi và sử dụng các chú thích trong Web ngữ nghĩa.
7
2008
- Tầng Ontology: Ontology Vocabulary (Bộ từ vựng ontology) được
xây dựng trên cơ sở tầng RDF và RDFS, cung cấp biểu diễn ngữ nghĩa mềm
dẻo cho tài nguyên web và có khả năng hỗ trợ lập luận.
- Tầng Logic: Việc biểu diễn các tài nguyên dưới dạng các bộ từ vựng
ontology có mục đích là để máy có thể lập luận được. Mà cơ sở lập luận chủ
yếu dựa vào logic.
- Tầng Proof: Tầng này đưa ra các luật để suy luận. Cụ thể từ các thông
tin đã có ta có thể suy ra các thông tin mới.
- Tầng Trust: Đảm bảo tính tin cậy của các ứng dụng trên Web ngữ nghĩa.
1.1.5. Yêu cầu khi xây dựng Ontology
Ngôn ngữ ontology cho phép người sử dụng viết rõ ràng, các khái niệm
hình thức của mô hình miền. Các yêu cầu chính:
Cấu trúc rõ ràng: đây là điều kiện cần cho máy có thể xử lý thông tin.
Ngữ nghĩa hình thức miêu tả ý nghĩa tri thức một cách chính xác: Ý
nghĩa của ngữ nghĩa hình
thức tồn tại trong một thời gian dài trong miền toán logic. Việc sử dụng ngữ
nghĩa hình thức cho phép con người suy diễn tri thức. Với tri thức trong
ontology chúng ta có thể suy diễn về:
Thành viên của lớp: Nếu x là một thể hiện của lớp C và C là lớp
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 kế thừa 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ó
9
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 trong ontology.
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ây dựng các lớp và cấu trúc lớp phân cấ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ó 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.
11
Bước 7: Tạo các thực thể cho lớp.
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 đó.
1.2. Ngôn ngữ ontology
Một Ontology cần được mô tả bằng một cấu trúc chặt chẽ và theo những
chuẩn chung nhất để người sử dụng có thể chia sẻ (với người sử dụng khác)
hoặc sử dụng lại những Ontology đã có sẵn. Trong phần này trình bày về RDF
(Resource Description Framework), RDFS (RDF-Schema) một framework cho
việc mô hình hóa, mô tả tài nguyên trên Web và OWL (Web Ontology
Language) đang được sử dụng rộng rãi để biểu diễn tri thức hiện nay.
1.2.1. RDF (Resource Description Framework):
1.2.1.1. Tổng quan RDF:
RDF là nền tảng cho việc biểu diễn dữ liệu trong lĩnh vực Web ngữ
nghĩa. Thông tin biểu diễn theo mô hình RDF là một phát biểu (statement)ở
dạng cấu trúc bộ ba gồm ba thành phần cơ bản là: subject, predicate, object.
Trong đó:
Subject chỉ đối tượng đang được mô tả đóng vai trò là chủ thể.
Predicate (còn được gọi là property)là kiểu thuộc tính hay quan hệ.
Object là giá trị thuộc tính hay đối tượng của chủ thể đã nêu. Object
có thể là một giá trị nguyên thủy như số nguyên, chuỗi, hoặc cũng có thể là
một tài nguyên.
12
Ví dụ:
Đây là phát biểu mô tả một chủ thể person-1 có kiểu thuộc tính name với
Và biểu diễn ví dụ trên trong tài liệu RDF :
<rdf :RDF xmlns:rdf= “
<rdf :Description rdf:about= “#person-1”>
<rdf :Name rdf:literal= “An”>
<rdf :Phone rdf:literal= “0909213456”>
</rdf :Description>
</rdf :RDF>
Thuộc tính rdf : about dùng để chỉ định URI của một resource, còn
#person-1 cho ta biết rằng person-1 đã được khai báo trong cùng tài liệu này
(trong ví dụ trên chúng ta không chỉ ra person-1 đã được khai báo ở đâu). Nếu
person-1 không được khai báo thì chúng ta phải đưa URI của nó vào để sử
dụng hoặc là dùng namespace để đại diện cho URI đó. Chúng ta dùng thuộc
tính rdf :ID để gán định danh cho một tài nguyên :
<rdf :Description rdf :ID= “person-1”>
<rdf :type rdf :resource= “ />ns#person-1”/>
</rdf :Description>
Ở đây, tài nguyên />ns#person-1 đã được định danh bởi person-1. Thuộc tính ID giúp cho chúng
ta sử dụng tài nguyên person-1 mà không phải dùng lại URI của nó dài dòng
mà phức tạp.
14
1.2.2. RDFS (RDF-Schema)
RDF-Schema là một ngôn ngữ Ontology cơ bản. Nó được phát triển ở
tầng trên của RDF cho nên bản thân RDF-Schema cũng chính là RDF, nó
được mở rộng từ RDF và bổ sung thêm các tập từ vựng để hỗ trợ cho việc xây
dựng các Ontology được dễ dàng. Như chúng ta đã biết, ngôn ngữ RDF chỉ
giúp cho thông tin được thể hiện ở dạng bộ ba theo đúng mô hình RDF chứ
thông tin vẫn chưa thể hiện gì về mặt ngữ nghĩa. Do đó, xây dựng RDFS là
điều cần thiết để hình thành nên ngữ nghĩa cho thông tin, là cơ sở để xây dựng
các công cụ tìm kiếm ngữ nghĩa. RDFS và RDF có mối liên hệ tương đối gần
gũi nên đôi lúc ta gọi ngôn ngữ này là RDF/RDFS. Hình 1.3 cho chúng ta sự
rdf :member (Thành viên của một lớp chứa - container)
rdf :first (Phần tử đầu tiên trong một danh sách RDF)
rdf :rest (Danh sách các phần tử còn lại)
16
rdfs :seeAlso (Các thông tin bổ sung)
rdfs :isDefinedBy (Được định nghĩa bởi)
rdf :value (Gán một giá trị nào đó cho chủ thể)
rdf :subject (Chủ thể của một phát biểu)
rdf :predicate (Thuộc tính của một phát biểu)
rdf :object (Giá trị thuộc tính của một phát biểu)
Với những lớp và thuộc tính được liệt kê trên đây, RDF/RDFS đủ
mạnh để xây dựng các Ontology. Tuy nhiên bản thân nó còn chứa đựng
nhiều hạn chế như là chưa hỗ trợ tốt về mặt suy luận, cũng như chưa có ràng
buộc về kiểu và số yếu tố, mà các ngôn ngữ thế hệ sau sẽ khắc phục
(chúng ta sẽ bàn về điều này trong phần OWL).
Các lớp và thuộc tính thường dùng trong RDF/RDFS chủ yếu là:
Resource, Class, Property, type, label, subClassOf, subPropertyOf, domain,
và range. Trong đó domain là miền tài nguyên sử dụng thuộc tính đó, còn
range là phạm vi giá trị có thể gán cho thuộc tính đó. Ví dụ ta có lớp thuộc
tính là hasChild thì domain của hasChild là lớp Person, còn range là lớp số
nguyên dương chẳng hạn(số con từ 1 trở lên).
1.2.2.2. Xây dựng Ontology với RDFS:
Chúng ta sẽ dùng cú pháp cơ bản sau để biễu diễn cho một phát biểu:
{subject, predicate, object}
Nếu có nhiều hơn một thuộc tính cho một chủ thể thì:
{subject,
{predicate1, object1}
{predicate2, object2}
}
Nếu có nút trống thì biểu diễn như sau: