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

tìm hiểu hệ thống web ngữ nghĩa, cài đặt thử nghiệm chương trình tìm kiếm thông tin y tế

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, 47 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
TÌM HIỂU HỆ THỐNG WEB NGỮ NGHĨA,
CÀI ĐẶT THỬ NGHIỆM CHƯƠNG TRÌNH
TÌM KIẾM THÔNG TIN Y TẾ
Sinh viên thực hiện : Lưu Đạt Long
Lớp CNPM – K51
Giáo viên hướng dẫn: TS Cao Tuấn Dũng
HÀ NỘI 6-2011
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Lưu Đạt Long
Điện thoại liên lạc: 01649029362 Email:
Lớp: Công nghệ phần mềm Hệ đào tạo: Đại học
Đồ án tốt nghiệp được thực hiện tại:
Thời gian làm ĐATN: Từ ngày 4/2011 đến 6/2011
2. Mục đích nội dung của ĐATN
Tìm hiểu về hệ thống Web ngữ nghĩa. Triển khai thử nghiệm hệ thống tìm kiếm có
ngữ nghĩa thông tin về y tế tại Bộ Y tế.
3. Các nhiệm vụ cụ thể của ĐATN
- Hiểu được về hệ thống web ngữ nghĩa
- Sử dụng được một số công cụ cho phép triển khai hệ thống: jena, sparql
- Hiểu được về ngôn ngữ biểu diễn ngữ nghĩa: RDF, OWL
- Cài đặt thử nghiệm chương trình tìm kiếm thông tin về y tế, triển khai tại Bộ Y tế
4. Lời cam đoan của sinh viên:
Tôi – Lưu Đạt Long - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự


hướng dẫn của TS Cao Tuấn Dũng.
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ
công trình nào khác.
Hà Nội, ngày tháng năm
Tác giả ĐATN
Lưu Đạt Long
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo
vệ:
Hà Nội, ngày tháng năm
Giáo viên hướng dẫn
Học hàm học vị+điền tên giáo viên hướng
dẫn
Chữ ký giáo viên hướng dẫn.
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
Mục Lục
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2
Chữ ký giáo viên hướng dẫn 2
Mở Đầu 4
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
Mở Đầu
World Wide Web(WWW) có thể được coi là một trong những phát minh quý báu
của nhân loại, www cho phép con người có thể dễ dàng tiếp xúc được với nền tri thức của
nhân loại, nó giống như một kho dữ liệu mở để con người có thể khai thác. Thực tế mà xét
thì lượng dữ liệu trên web là vô cùng lớn, con người muốn khai thác được thông tin từ
lượng dữ liệu đó cũng không phải là việc dễ dàng. Với mong muốn xây dựng một thế hệ
web mới tổ chức W3C đã đề xuất một thế hệ web mới, web ngữ nghĩa. Web ngữ nghĩa là
một thế hệ web cải tiến so với web hiện tại , trong đó dữ liệu trên web được tổ chức để
không chỉ con người mới có thể tìm thấy được thông tin mà ngay cả máy móc cũng có thể
hiểu được về chúng. Trong ý tưởng về web ngữ nghĩa thì các thực thể trên web được định
nghĩa, các ràng buộc giữa chúng được cấu trúc lại dựa trên mô hình biểu diễn ngữ nghĩa.

Bằng những tính năng vượt trội của web ngữ nghĩa trong biểu diễn ngữ nghĩa, nó
phép xây dựng lên những hệ thống ngữ nghĩa một miền thông tin, trong đồ án của mình em
đã chọn đề tài ‘triển khai hệ thống tìm kiếm có ngữ nghĩa thông tin về cơ sở y tế’. Mục
đích của hệ thống là xây dựng được một hệ thống ngữ nghĩa thông tin về các cơ sở Y tế,
triển khai bộ máy tìm kiếm giúp người dùng có thể nhanh chóng nắm bắt được thông tin
cần thiết. Trong phần nội dung của đồ án mình em sẽ đề cập đến những nội dung sau
 Giới thiệu về hệ thống web ngữ nghĩa cùng những công cụ cho phép triển
khai.
 Áp dụng web ngữ nghĩa triển khai chương trình tìm kiếm thông tin về cơ sở
y tế.
Là sinh viên năm cuối yêu cầu phải hoàn thành đồ án của mình, trong quá trình
thực hiện em vẫn còn gặp những khó khăn trong trong việc tìm hiểu về công cụ cũng như
yêu cầu về nghiệp vụ do đó đồ án còn có nhiều phần chưa thể hoàn thành như mong muốn.
Để có thể hoàn thành được đồ án này em cũng xin gửi lời cảm ơn đến thầy hướng dẫn làm
đồ án: TS. Cao Tuấn Dũng đã giúp đỡ em nhiều trong quá trình thực hiện đồ án này.
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
Phần 1 – Đặt Vấn Đề Và Định Hướng Giải Pháp
1. Bài toán tìm kiếm thông tin về Y tế
Thông tin về lĩnh vực y tế rất phong phú, có thể kể đến như: thông tin về
bệnh viện, thông tin về bác sĩ, thông tin về bệnh nhân, các bệnh án…Nhưng nếu các
thông tin đó chỉ được tổ chức ở dạng văn bản, định dạng mà chỉ con người mới có
thể hiểu được thì thật là khó để có thể khai thác nguồn tài nguyên lớn vậy. Với một
nguồn tài nguyên lớn mà mong muốn khai thác triệt để thì nó phải được xử lý bằng
máy tính, tức là máy tính có thể hiểu và suy luận giúp con người nhanh chóng tìm
đến cái mình cần. Xét về các bộ máy tìm kiếm hiện tại thì chúng tìm kiếm đơn
thuần dựa trên việc so khớp từ, khi đó vấn đề nhập nhằng về từ khóa xảy ra, có thể
kết quả trả về là không phải cái con người cần tìm, hoặc có thể chúng trả về rất
nhiều kết quả trùng lặp. Vậy yêu cầu bài toán đặt ra là cần phải xây dựng một hệ
thống tìm kiếm giúp con người khai thác dữ liệu nhanh và hiệu quả, trong đó dữ
liệu được tổ chức ở một định dạng nào đó mà máy tính hoàn toàn có thể hiểu và xử

lý được tự động.
Web ngữ nghĩa là một công nghệ đã được phát triển trong vài năm gần đây,
ý tưởng về hệ thống ngữ nghĩa là xây dựng một hệ thống trong đó thông tin được
định dạng lại theo một mối quan hệ có ngữ nghĩa. Với những định dạng, cấu trúc đó
thì máy tính có thể hiểu và tự xử lý tự động được.
Với những ý tưởng về Web ngữ nghĩa thì nó là giải pháp để cho chúng ta
giải quyết bài toán tìm kiếm thông tin đã đặt ra. Trong bài toán tìm kiếm ta sẽ xây
dựng một hệ thống ngữ nghĩa các thông tin trên miền Y tế, đảm bảo máy tính có thể
tự động suy diễn để dẫn dắt ta đến kết quả cần tìm.
2. Tổng quan về hệ thống Web ngữ nghĩa
Web ngữ nghĩa là một thế hệ web trong đó các tài liệu được tạo ra ở các định
dạng mà không chỉ con người mà máy tính cũng có thể hiểu để xử lý được một cách
tự động. Các thành phần của Web có ngữ nghĩa được chia thành ba nhóm chính như
sau:
 Ontology - ngôn ngữ dùng để biểu diễn ngữ nghĩa thông tin.
Ontology là bản mô tả một cách tường minh các khái niệm trong một miền ứng
dụng nào đó cùng với quan hệ giữa những khái niệm này. Ontology cung cấp từ
vựng chung cho việc trao đổi thông tin giữa các ứng dụng và dịch vụ Web. Bản
thân phần ngữ nghĩa của Web có ngữ nghĩa bao gồm ontology và giá trị cụ thể của
khái niệm định nghĩa trong ontology. Để biểu diễn ontology và dữ liệu cần có
ngôn ngữ thích hợp. Trong quá trình hình thành Web có ngữ nghĩa, nhiều ngôn ngữ
như vậy đã được đề xuất và phát triển, trong đó được biết đến nhiều nhất là RDF
và RDFS , DAML+OIL, OWL
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
 Công cụ tạo dựng ngữ nghĩa cũng như cấu trúc hạ tầng của Web có
ngữ nghĩa. Để tạo và sử dụng Web có ngữ nghĩa cần có sự hỗ trợ của các loại
công cụ sau:
 Công cụ tạo và liên kết ontology. Các công cụ này cho phép
tạo ra khái niệm, thuộc tính của khái niệm, quan hệ và phân cấp giữa các khái niệm.
Công cụloại này thường có giao diện đồ hoạ và tuân theo chuẩn của ứng dụng

Web. Ví dụ điển hình cho công cụ loại này là Protégé.
 Công cụ chú giải (annotation tools). Công cụ chú giải cho phép
tạo phần ngữ nghĩa, tức là giá trị cụ thể của khái niệm, thuộc tính và quan hệ từ
dữ liệu thông thường phù hợp với một ontology nào đó. Giá trị tạo ra có thể được
biểu diễn bởi các ngôn ngữ được nhắc tới ở phần trên. Hiện nay đa số công cụ chỉ
cho phép chú giải bằng tay, do vậy quá trình chú giải thường đòi hỏi nhiều thời
gian.
 Các kho chứa. Ontology ở dạng model, graph có thể được lưu
trữ lâu dài trên các hệ cơ sở dữ liệu.
 Dịch vụ suy diễn. Dịch vụ suy diễn giúp cho máy tính có thể
xử lý được tự động, dựa tên một mô hình có sẵn nhưng áp dụng suy diễn vào thì
máy tính có thể tìm ra những tri thức mới.
 Các ứng dụng. sử dụng Web có ngữ nghĩa cho phép tăng cường chức
năng của các ứng dụng, Web ngữ nghĩa giúp nâng cao mức độ thông minh và tính
tự động hoá của nhiều ứng dụng hiện có. Những lĩnh vực ứng dụng đặc biệt hứa hẹn
cho Web có ngữ nghĩa là các dịch vụ Web, quản lý tri thức và thương mại điện tử .
Dịch vụ Web là các chương trình và thiết bị có thể truy cập thông qua hạ tầng
WWW. Web có ngữ nghĩa cung cấp thông tin và tri thức cần thiết cho việc tìm
kiếm, tương tác, chia sẻ và kết hợp các dịch vụ Web.
3. Ontology
Trong hệ thống Web ngữ nghĩa thì ontology là trái tim của hệ thống, một
ontology là một mô hình dữ liệu biểu diễn một lĩnh vực và được sử dụng để suy
luận về các đối tượng trong lĩnh vực đó và mối quan hệ giữa chúng. Ontology 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 miền mà có thể
được giao tiếp giữa người và các hệ thống ứng dụng phân tán hỗn tạp khác.
a. Định nghĩa
Một Ontology đơn giản bao gồm 4 thành phần (C, R, I, A). Dùng để biểu

diễn các tài nguyên cùng quan hệ giữa chúng, mà người ta gọi là Graph. Mỗi tài
nguyên có một URI duy nhất, do đó Ontology có thể triển khai phân tán mà không
lo về sự nhập nhằng, trùng lặp.
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
 C – Concepts: là tập các khái niệm, nó còn có thể gọi là Class. Dùng để biểu
diễn cho một tập các thể trong một lĩnh vực.
Ví dụ: Con người, Học sinh có thể là Class
 R – Relations: là tập các quan hệ, biểu diễn cho mối quan hệ của các cá thể
trong miền.
Ví dụ: Con người có thể có các thuộc tính, hay có mối quan hệ khác. Vậy một số
quan hệ có thể ứng với con người như: có con, có tuổi…
 I – Instance: là các cá thể, thể hiện của Class. Nó là các thực thể có thực
trong thực tế, được định nghĩa thông qua một Class nào đó
Ví dụ: Tôi là một cá thể, tôi được tạo ra từ Class Con người
 A – Aximo: là tập các khẳng định, các luật được tạo ra. Nó giúp cho máy
tính có thể dựa vào đó để suy diễn.
Ngôn ngữ sử dụng cho biểu diễn Ontology có cú pháp XML, tức nó cũng có
cấu trúc phân cấp, nhưng tư tưởng về cách thức quản lý của nó thì hoàn toàn khác.
Ontology thật sự là một Data Model, trong đó bao gồm một tập các Statement, còn
được gọi là Triple. Một Statement được biểu diễn gồm có 3 thành phần: Subject –
predicate - object
 Subject: một tài nguyên, thông thường là class, instance
 Predicate: một tài nguyên, dùng để chỉ một thuộc tính hay đặc điểm của
subject
 Object: một tài nguyên, giá trị tương ứng cho Subject trong quan hệ
Predicate
Ví dụ:

b. Ngôn ngữ biểu diễn
Trong biểu diễn Ontology có một số ngôn ngữ cho phép ta biểu diễn chúng,

có thể kể đến như: RDF, RDFS, OWL. Việc lựa chọn ngôn ngữ biểu diễn nào tùy
thuộc vào tính ứng dụng của hệ thống của ta. Với những hệ thống chỉ cần yêu cầu
sự lưu trữ, miêu tả tài nguyên thì ta chỉ cần đến RDF là đủ. Nhưng với những ứng
dụng yêu cầu sự suy diễn cao thì ta cần đến ngôn ngữ OWL, OWL sẽ có một tập
các từ vựng cùng các luật suy diễn đi cùng cho phép ta thực hiện, triển khai.
Các ngôn ngữ biểu diễn Ontology đều dựa trên cú pháp XML, một cú pháp
quen thuộc cho phép chúng ta dễ dàng học. Hơn thế nữa là do tính độc lập về nền
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
Subject
Predicate
Object
tảng, một tài liệu XML có thể được trao đổi hay xử lý trên nhiều hệ thống khác
nhau. Do vậy các ngôn ngữ biểu diễn Ontology có thể được sử dụng để tạo dựng
Ontology mà không lo sợ vấn đề nền tảng
c. Ngôn ngữ RDF
RDF là một ngôn ngữ biểu diễn Ontology, hệ thống thường sử dụng như một
siêu dữ liệu, dữ liệu truyền, thông tin cấu hình hệ thống. RDF được xây dựng như là
một mô hình siêu dữ liệu, nó được thiết kế để dùng làm ngôn ngữ miêu tả tài
nguyên. Một RDF Model biểu diễn tài nguyên giống như là mô hình biểu diễn
Class. RDF được trang bị một tập các từ vựng dùng để đặc tả ngử nghĩa cho tài
nguyên nó biểu diến. Thêm vào đó là tập những từ vựng dùng để biểu diễn Class
được phát định nghĩa trên RDFS.
 Rdf:resource: mọi thứ trong Ontology đều là một tài nguyên, tương ứng
là một địa chỉ URI. Từ vựng dùng để chỉ định một tài nguyên và địa chỉ tương ứng.
 Rdf:Description: Từ vựng dùng để định nghĩa một tài nguyên, thông qua
đó định địa chỉ cho nó.
 Rdf:type: Từ vựng dùng để định nghĩa loại tài nguyên, giả sử như tài
nguyên là một Class, hay tài nguyên là một Property…
 Rdfs:Class: Từ vựng dùng để định nghĩa một Class, trong Ontology một
Class dùng để chỉ một tập các đối tượng

 Rdfs:subClassOf: Từ vựng dùng để định nghĩa một lớp con, những đối
tượng thuộc lớp con cũng thuộc lớp cha.
 Rdf:literal: Trong RDF có định nghĩa nhiều kiểu dữ liệu nguyên thủy để
có thể tiện dùng, một số kiểu dữ liệu như: integer, string, date…
 Rdf:property: từ vựng dùng để định nghĩa một thuộc tính, thuộc tính này
có thể là do người dùng định nghĩa.
<rdf:RDF
xmlns:rdf=" /> xmlns:dc=" /> <rdf:Description
rdf:about=" /> <dc:title>Tony Benn</dc:title>
<dc:publisher>Wikipedia</dc:publisher>
</rdf:Description>
</rdf:RDF>
Trong tài liệu RDF ở trên ta đã định nghĩa và xác định một tài nguyên
Tony_Benn, với địa chỉ uri= Tương ứng
với tài nguyên ta cũng xác định rõ hơn về tài nguyên bằng các thuộc tính: title is
Tonny Benn, publisher is Wikipedia.
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
d. Ngôn ngữ OWL
OWL là một ngôn ngữ dùng để biểu diễn Ontology, OWL có khả năng biểu
diễn được tri thức trong một miền, lĩnh vực cụ thể. Ontology biểu diễn bằng OWL
cho phép máy tính có thể tự động duy diễn dựa trên các luật được con người đặc tả
thông qua ngôn ngữ OWL. Ngôn ngữ OWL được phân thành 3 lớp nhỏ, hay là 3
ngôn ngữ con: OWL Lite, OWL DL, and OWL Full. Việc lựa chọn lớp ngôn ngữ
con nào để biểu diễn ontology là tùy thuộc theo mức độ.
I. Ba Ngôn ngữ con của OWL
 Ngôn ngữ OWL Lite: Sử dụng với mục đích chính là phân lớp các thực
thể, hoặc nếu có ràng buộc thì chúng ở dạng rất đơn giản, ví dụ như trong ràng buộc
về lực lượng giá trị ứng với một Property thì nó không có ràng buộc về max, min
mà chỉ có ràng buộc giá trị của lực lượng là 0 và 1. Trong ngôn ngữ có hỗ trợ một
tập các từ vựng như:

 Ngôn ngữ OWL DL: Ngôn ngữ có DL có sự mở rộng hơn về ràng buộc
nhưng nó vẫn bị giới hạn so với ngôn ngữ OWL Full. Về mặt suy diễn nó cũng bị
giới hạn hơn so với OWL Full, chỉ những ràng buộc chắc chắn mới được sử dụng
trong suy diễn, do vậy thời gian trả về kết quả là được giới hạn.
 Ngôn ngữ OWL Full: Ngôn ngữ Full thiết lập một chế độ biểu diễn tự do
nhất, không có một sự ràng buộc nào cho việc biểu diễn, tất cả các suy diễn đều có
thể được thực hiện, nếu không có kết quả trả về thì có thể kết luận là tài nguyên
không tồn tại. Giữa 3 ngôn ngữ có sự phụ thuộc, liên quan với nhau như sau
 Mỗi sự hợp pháp trong OWL Lite thì cũng hợp pháp trong DL
 Mỗi sự hợp pháp trong DL thì cũng hợp pháp trong OWL Full
 Mọi kết luận hợp lý trong Lite cũng là đúng cho DL
 Mọi kết luận hợp lý trong DL cũng là đúng trong Full
II. Tập từ vựng trong OWL
 Ngôn ngữ OWL Lite
• OWL:Class: sử dụng để định nghĩa Class, một Class
trong Ontology là một tập các cá thể, giữa các thể này có chia sẻ chung một tập các
thuộc tính. Class được tổ chức theo cấu trúc phân cấp, mọi Class đều kế thừa từ
class có tên Thing. Thing là Class mà mọi cá thể đều là thể hiện của nó.
Ví dụ: tạo một Class ứng với địa chỉ Base:people, đặt id cho nó là people
<owl:Class rdf:about=”#people” rdf:id=”people”>
• RDFS:subClassOf: sử dụng từ khóa rdfs:subClassOf
có thể tạo được lớp con, lớp con này cũng là một loại lớp cha, do đó nếu thực hiện
suy diễn kế thừa những thể hiện của lớp con này cũng là thể hiện của lớp cha.
Ví dụ: lớp student là một lớp con của lớp people, khi đó những thể hiện của lớp
student thì cũng là thể hiện của lớp people
<owl:Class rdf:about=”#student”>
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
<owl:subClassOf rdf:resource=”people”>
</owl:Class>
• RDF:Property: dùng để định nghĩa quan hệ giữa các

cá thể hoặc quan hệ giữa một cá thể và một giá trị, Property dùng để biểu diễn quan
hệ giữa những cá thể với nhau là ObjectProperty, Property dùng để biểu diễn quan
hệ giữa một cá thể với một giá trị gọi là DataTypeProperty.
Ví dụ: sau đây ta sẽ tạo một DataTypeProperty thể hiện giá trị tuổi cho cá thể thuộc
lớp people
<owl:dataTypeProperty rdf:about=”hasAge”>
<owl:domain rdf:resource=”people”>
<owl:range rdf:resource=”&xsd;nonNegativeInteger”>
</owl:dataTypeProperty>
• RDFS:subPropertyOf: Property cũng được tổ chức
theo cấu trúc phân cấp, một property có thể có subproperty, để định nghĩa một
subproperty có thể sử dụng từ vựng rdfs:property. Rdfs:property có thể sử dụng
trong suy diễn thừa kế, giả sử một cặp cá thể có quan hệ thông qua một property thì
nó cũng có quan hệ với nhau thông qua super property tương ứng.
Ví dụ: quan hệ has_color là một subproperty của quan hệ has_des
<owl:dataTypeProperty rdf:about=”has_color”>
<rdfs:subPropertyOf rdf:resource=”has_des”>
</owl:dataTypeProperty>
• OWL:Domain: Ontology bao gồm một tập các
statement, một statement bao gồm: subject – predicate – object, từ khóa owl:domain
quy định subject tương ứng với một property. Từ khóa có thể dùng trong suy diễn
như: xét một statement a – b – c, nếu b có domain là X thì có thể suy diễn ra: a là
một thể hiện của lớp
• OWL:Range: Ontology bao gồm một tập các
statement, một statement bao gồm: subject – predicate – object, từ khóa owl:range
quy định object tương ứng với một property. Từ khóa có thể dùng trong suy diễn
như: xét một statement a – b – c, nếu b có range là X thì có thể suy diễn ra: c là một
thể hiện của lớp
• Individual: còn gọi là cá thể, là thể hiện của một
Class, nó là dữ liệu chủ đạo. Một Class dùng để định nghĩa lên các Individual.

Vidu: sau đây ta sẽ định nghĩa một cá thể thuộc lớp people là peopleA có tuổi 20
<people rdf:about=”peopleA”>
<hasAge rdf:datatype="&xsd;positiveInteger">20</has Age>
</people>
• OWL:equivalentClass: một class có thể được định
nghĩa thông qua nhiều class khác, trong trường hợp này nó là hợp của nhiều class.
• OWL:equivalentProperty: một property có thể được
định nghĩa thông qua nhiều property khác, trong trường hợp này nó là hợp của các
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
property. Ví dụ, quan hệ has_des có thể định nghĩa là hợp của các quan hệ:
has_color, has_heigh
• OWL:sameAs: các individual có thể có nhiều tên
khác nhau, nhưng thực ra chúng là một trong thực tế. Ta có thể sử dụng sameAs
dùng để định nghĩa cùng một thực thể nhưng có nhiều tên gọi khác nhau
Ví dụ: cùng một người có thể có tên tiếng anh là A Nguyen, và tên tiếng việt là
Nguyễn A. ta có thể định nghĩa như sau:
<people rdf:about=”A_nguyen”>
<owl:sameAs rdf:resource=”nguyen_A>
</people>
• OWL:differentFrom: Khi định nghĩa một cá thể thì
nó có thể định nghĩa thông qua các cá thể khác, trong trường hợp này nó là không
giống với một số cá thể khác. Nếu xét đến suy diễn trong trường hợp này như
‘thông qua tập các cá thể khác để xác định một cá thể’ thì phải xét thêm cả
owl:cardinality để xác định nó là một cá thể duy nhất.
Ví dụ: trạng thái Tren_can có thể định nghĩa là khác các trạng thái: Tren_khong,
Duoi_nuoc.
• OWL:AllDifferent:
• OWL:ObjectProperty: dùng để định nghĩa một quan
hệ, trong trường hợp này là quan hệ giữa các cá thể với nhau, nó là phân biệt với
DataTypeProperty.

Ví dụ:
<owl:objectProperty rdf:about=”has_child”>
<owl:domain rdf:resource=”people”>
<owl:range rdf:resource=”people”>
</owl:objectProperty>
• DataTypeProperty: dùng để định nghĩa một quan hệ,
trong trường hợp này là quan hệ giữa cá thể với kiểu dữ liệu được định nghĩa sẵn
trong ngôn ngữ, nó là phân biệt với loại quan hệ ObjectProperty
Ví dụ:
<owl:dataTypeProperty rdf:about=”has_age”>
<owl:range rdf:resource =”&xsd;nonNegativeInteger”>
</owl:dataTypeProperty>
• OWL:inverseOf: dùng để định nghĩa một quan hệ
thông qua một quan hệ khác, trong trường hợp này một quan hệ được định nghĩa là
trái ngược với một quan hệ khác. Trong suy diễn nó có thể được sử dụng như sau,
giả sử ta có statement a – b – c, nếu b được định nghĩa là inverseOf của d thì ta có
thể suy diễn để được một statement mới c – d – a .
Ví dụ: xét 2 quan hệ has_child và has_mother, ta nhận thấy chúng là trái ngược
nhau và ta có thể định nghĩa quan hệ has_child thông qua quan hệ has_mother.
<owl:objectProperty rdf:about=”has_child”>
<owl:inverseOf rdf:resource=”has_mother”>
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
</objectProperty>
• OWL:TransitiveProperty: từ vựng dùng để định
nghĩa một quan hệ có tính chuyển tiếp, trong suy diễn thì có thể xảy ra như sau. Giả
sử ta có 2 statement như sau: a – b – c, c – b – d, nếu quan hệ b được định nghĩa là
một quan hệ có tính chuyển tiếp thì ta có thể suy diễn để có được statement mới: a –
b – d
• OWL:SymmetricProperty: từ vựng dùng để định
nghĩa một quan hệ có tính đối xứng. trong suy diễn ứng với kiểu quan hệ này có thể

xét như, giả sử ta có statement a – b – c, nếu b là một quan hệ có tính
SymmetricProperty thì ta sẽ có thêm một statement mới c – b – a. Ví dụ: giữa 2
người có thể có quan hệ bạn bè, vậy quan hệ bạn bè có thể thiết lập là một quan hệ
có tính SymmetricProperty
• OWL:FunctionalProperty: từ vựng dùng để định
nghĩa một quan hệ, một cá thể thông qua quan hệ này sẽ chỉ có một giá trị duy nhất
tương ứng. Từ vựng này có thể sử dụng trong suy diễn như, nếu ta xác định được
giá trị thông qua một quan hệ có tính FunctionalProperty thì có thể xác định được cá
thể tương ứng.
• OWL:inverseFunctionalProperty: nó dùng để định
nghĩa một quan hệ, quan hệ này có tính chất FunctionalProperty, và nó là một quan
hệ nghịch đảo của một quan hệ khác.
• OWL:Restriction: dùng để định nghĩa cho một class,
class này được định nghĩa thông qua một class khác, nhưng nó không hoàn toàn là
class đó mà bị giới hạn ở một cái gì đó. Ví dụ, lớp động_vật_dưới_nước được định
nghĩa là lớp động_vật nhưng nó bị giới hạn, chỉ những động_vật có nơi_sống ở
dưới_nước thì mới thuộc về lớp đó.
Ví dụ
<owl:Class rdf:about=”dong_vat_duoi_nuoc”>
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf>
<rdf:Description rdf:about=”dong_vat”>
<owl:Restriction>
<owl:onProperty rdf:resource=”noi_song”>
<owl:hasValue rdf:resource=”duoi_nuoc”>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>

</owl:Class>
• OWL:Onproperty: dùng trong các định nghĩa cho
Restriction như
<owl:Restriction>
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
<owl:onProperty rdf:resource=”noi_song”>
<owl:hasValue rdf:resource=”duoi_nuoc”>
</owl:Restriction>
• OWL:allValueFrom: xét một statement subject –
predicate – object, từ vựng dùng để giới hạn về miền object, nó quy định tất cả các
object phải là.
• OWL:someValueFrom: xét một statement subject –
predicate – object, từ vựng dùng để giới hạn về miền object, nó không quá khắt khe
như allValueFrom, không bắt buộc hoàn toàn các object phải là, nhưng ít nhất phải
có một object thuộc về miền giới hạn đó.
• OWL:minCardinality: dùng để xác định lực lượng
cho object, lượng object trong quan hệ subject – property phải nhiều hơn một giá trị
nào đó. Trong OWL Lite thì giá trị này chỉ có thể là 0, 1.
• OWL:maxCardinality: dùng để xác định lực lượng
cho object, lượng object trong quan hệ subject – property không được nhiều hơn
một giá trị cho trước. Trong OWL Lite thì giá trị này chỉ có thể là 0, 1.
• OWL:cardinality: dùng để định nghĩa lực lượng cho
object trong statement: subject – predicate – object. Trong OWL Lite thì giá trị này
chỉ có thể là 0, 1.
• OWL:ontology: dùng để định nghĩa một ontology
• OWL:imports: Ontology có tính phân tán, tài liệu
Ontology có thể được nhập từ một nguồn khác, ontology này sẽ được hợp cùng với
ontology gốc.
<owl:imports rdf:resource="http://medicine/ont/doctor"/>
• OWL:intersectionOf: dùng để định nghĩa một class

khác, trong trường hợp này một class được định nghĩa là giao của một số class khác.
 Ngôn ngữ OWL DL và OWL Full
• OWL:oneOf: một class có thể được định nghĩa thông
qua một tập các cá thể, ví dụ trong một tuần có 7 ngày, vậy nếu định nghĩa class có
tên Date thì ta có thể định nghĩa nó thông qua 7 ngày trong tuần.
• OWL:disjointWith: dùng trong xác định class, class
được định nghĩa là hoàn toàn khác biệt với class khác, ví dụ 2 class có tên Man và
Woman là phân biệt hoàn toàn với nhau.
• OWL:equivalentClass: dùng trong định nghĩa class,
một class là hợp của một số class khác. Trong OWL Full, một class cho phép được
định nghĩa thông qua những class mà bản thân những class này có thể được định
nghĩa rất phức tạp.
• RDFS:subClassOf:
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
• OWL:unionOf: định nghĩa một class là hợp của một
số class khác
• OWL:complementOf: định nghĩa một class, một
class được định nghĩa là miền bù của một class khác. Ví dụ Man, Woman là hai
class bù của nhau
• OWL:intersectionOf: một class được định nghĩa là
giao của một số class, nhưng bản thân những class này có thể được định nghĩa rất
phức tạp.
• OWL:minCardinality: giống như trong OWL Lite,
nhưng giá trị lực lượng không bị ràng buộc chỉ bởi 0,1.
• OWL:maxCardinality: giống như trong OWL Lite,
nhưng giá trị lực lượng không bị ràng buộc chỉ bởi 0,1.
• OWL:hasValue: dùng trong xác định Restriction,
tương ứng với một quan hệ thì miền giá trị có thể là.
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
4. Công cụ Jena

Jena là một mô tơ Web ngữ nghĩa được triển khai trên Java, trong vấn đề web
ngữ nghĩa Jena là một công cụ rất mạnh cho phép tạo dựng Model, thực hiện đa
dạng các thao tác trên đó. Ngoài ra Jena còn mở rộng rất nhiều package tiện ích
như: suy diễn, kết nối cơ sở dữ liệu, hỗ trợ xây dựng truy vấn dựa trên ngôn ngữ
truy vấn dữ liệu như Sparql… Một số package được sử dụng như:
 com.hp.hpl.jena.rdf.model: package cho phép tạo dựng và thao tác với rdf
graph
Ontoloty được jena quản lý bằng model, model trong jena được định nghĩa là
một mô hình quan hệ các tài nguyên. Trong model jena cho phép thực hiện các thao
tác đến các phần tử trong model: class, model, individual, resource, statement, uri…
 Tạo dựng Model
Bằng sử dụng ModelFactory ta có thể tạo ra một số loại Model tùy theo cách
sử dụng, những thao tác đơn giản nhất của chúng đó là thao tác với các phần tử của
RDF Graph, một số loại model như:
 Model: một model đơn giản, nó cho phép tạo và thao tác đến
các phần tử của model, hoặc có thể nhập vào model một ontology từ file.
// tạo dựng model
Model model = ModelFactory.createDefaultModel();
// tạo dựng resource
Resource johnSmith = model.createResource(uri);
// tạo dựng statement
Model.createStament(resource, property, rdfnode)
// thêm statement vào model
Model.add(statement)
// thêm property, cùng giá trị tương ứng vào tài nguyên
Resource.addProperty(property,rdfNode)
// hỗ trợ một số truy vấn đơn giản như
// danh sách tài nguyên
// danh sách các subject
// danh sách các object

 InfModel: là một Model, đồng thời cho phép thực hiện các suy
diễn trên chúng.
// tạo dựng InfModel đồng thời thực hiện suy diễn của rdfs
ModelFactory.createRDFSModel(model)
// tạo dựng InfModel đồng thời thực hiện suy diễn từ bộ
Reasoner
ModelFactory.createInfModel(reasoner, model)
 OntModel: là một InfModel, trên model này cho phép tạo dựng
các loại tài nguyên như được định nghĩa trong OWL như: class, individual,
restriction…, suy diễn trên model này được thực hiện bằng suy diễn OWL
// tạo dựng OntModel
ModelFactory.createOntologyModel();
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
 com.hp.hpl.jena.reasoner: package dùng để tạo tạo dựng các bộ suy diễn,
dùng để suy diễn trên Ontology. Ontology sau khi suy diễn sẽ bao gồm các stement
của ontology ban đầu cùng với các statement có được do sự suy diễn. Một số loại
reasoner như:
• RDFS rule reasoner: thực thi các suy diễn dựa trên
các luật của RDFS, khi tạo dựng bộ suy diễn nó cho phép ta thiết lập tham số để
định mức độ suy diễn: simple, default, simple.
// tạo bộ reasoner
Reasoner reasoner = ReasonerRegistry.getRDFSReasoner();
//thiết lập chế độ cho bộ suy diễn
reasoner.setParameter(ReasonerVocabulary.PROPsetRDFSLevel,
ReasonerVocabulary.RDFS_SIMPLE);
• OWL, OWL Mini, OWL Micro Reasoners: bộ suy
diễn dựa trên các luật được định nghĩa bởi ngôn ngữ OWL.
// tạo bộ reasoner
ReasonerRegistry.getOWLReasoner()
• Transitive reasoner: Bộ suy diễn thực hiện các suy

diễn từ tính kế thừa như subClassOf, subPropertyOf
// tạo bộ suy diễn reasoner
ReasonerRegistry.getTransitiveReasoner()
• Generic rule reasoner: bộ suy diễn cho phép ta tự do
tạo các luật, và bộ suy diễn sẽ suy diễn dữ liệu dựa trên các luật đó
// tạo bộ suy diễn reasoner
List rules = Rule.parseRules(ruleSrc);
Reasoner reasoner = new GenericRuleReasoner(rules);
 com.hp.hpl.jena.db: package dùng để thực hiện để tạo kết nối với những
model, graph được lưu trữ trong cơ sở dữ liệu.
// tạo kết nối đến cơ sở dữ liệu
DBConnection conn = new
DBConnection(jdbc,username,password,db_type);
// tạo dựng ModelRDB
ModelRDB modelrdb = ModelRDB.createModel(DBConnection conn);
// đọc ModelRDB được lưu trữ trong cơ sở dữ liệu
ModelRDB modelrdb = ModelRDB.open(DBConnection conn);
 com.hp.hpl.jena.query: package cho phép thực hiện các truy vấn sparql trên
Ontology. Một số class hỗ trợ như:
 Query: câu truy vấn dựa trên ngôn ngữ sparql, nó được tạo bởi
QueryFactory
 QueryExecution: bộ thực thi câu truy vấn, nó được tạo bởi
QueryExecutionFactory
 Model, QuerySolution…: dùng để lấy dữ liệu trả về
// tạo câu truy vấn sparql
String queryString = " " ;
// tạo query từ câu truy vấn sparql
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
Query query = QueryFactory.create(queryString) ;
// tạo bộ thực thi câu truy vấn

QueryExecution qexec = QueryExecutionFactory.create(query,
model) ;
// thực hiện truy vấn, ví dụ truy vấn select
ResultSet results = qexec.execSelect() ;
5. Ngôn ngữ truy vấn SPARQL
 Cấu trúc câu truy vấn: Một câu truy vấn sparql gồm có 2 phần chính
 Phần định nghĩa các namespace
@prefix dc: < .
@prefix : < .
:book1 dc:title "SPARQL Tutorial" .
 Phần định nghĩa câu truy vấn
SELECT ?title
WHERE
{
<
< ?title .
}
 Một số loại câu truy vấn
 Câu truy vấn Select: dữ liệu trả về là tập các giá trị tương ứng với các
biến được chỉ định ở select. Tập giá trị trả về là giá trị biến có giá trị khớp với các
điều kiện trong khối Where. Cú pháp:
Select some_variable
Where { match_expression }
 Câu truy vấn Construct: dữ liệu trả về là một graph, graph này được
tạo lên bởi tập các statement, statement này được định nghĩa ở khối Construct. Cú
pháp:
Construct { Statement }
Where { matches_expression }
 Câu truy vấn Ask: Câu truy vấn thực hiện truy vấn dữ liệu và trả về
giá trị logic để trả lời xem có kết quả nào thỏa mãn. Cú pháp:

Ask some_variable
Where { matches_expression }
 Câu truy vấn Description: là một câu truy vấn mà dữ liệu trả về là một
graph miêu tả về tài nguyên trả về. Cú pháp:
Description some_variable
Where { matches_expression }
 Vấn đề so khớp
So khớp được đặt trong khối lệnh Where, mỗi so khớp là một bộ ba dùng để
so khớp với các statement trong model. Nếu tài nguyên ứng với biến tồn tại thì nó
phải đảm bảo việc so khớp chính xác với tất cả các match khi thay thế biến bằng tài
nguyên đó.
Ví dụ: select ?x
Where {
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
?x rdf:type owl:Class .
?y rdf:type owl:?x
}
Nếu có giá trị trả về, giả sử ?x = medicine:doctor Thì trong model phải có các
statement như: medicine:doctor rdf:type owl:Class, medicine:A rdf:type
medicine:doctor
Trong khối Where có thể thiết lập các bộ lọc để lọc các kết quả trả về theo ý
muốn, hoặc có lựa chọn kết quả trả về.
Filter có tầm ảnh hưởng trên cả khối chứa nó, kết quả chỉ tồn tại nếu giá trị
tương ứng với kết quả cũng làm cho bộ lọc có giá trị True
PREFIX dc: < />SELECT ?title
WHERE { ?x dc:title ?title
FILTER regex(?title, "^SPARQL")
}
Giá trị của ?title nếu có phải là một string có dạng “^SPARQL”
Optional dùng để mở rộng kết quả, nếu kết quả không đáp ứng được match

trong optional thì nó vẫn có thể được trả về miễn là nó khớp các match khác trong
khối Where.
PREFIX foaf: < />SELECT ?name ?mbox
WHERE { ?x foaf:name ?name .
OPTIONAL { ?x foaf:mbox ?mbox }
}
Kết quả có thể trả vể nếu statement{ ?x foaf:name ?name} được khớp, statement
{?x foaf:mbox ?mbox } chỉ có tác dụng điền thêm dữ liệu cho kết quả.
 Định hướng kết quả
Order By: định hướng sắp xếp kết quả theo một thứ tự. sau đây là truy vấn yêu cầu
kết quả trả về sắp xếp có thứ tự theo biến ?name
PREFIX foaf: < />SELECT ?name
WHERE { ?x foaf:name ?name }
ORDER BY ?name
Projection:
 Distinct: yêu cầu kết quả trả về không trùng nhau. Truy vấn sau yêu
cầu kết quả là không lặp lại.
PREFIX foaf: < />SELECT DISTINCT ?name
WHERE { ?x foaf:name ?name }
 Reduced: yêu cầu giảm số lượng kết quả trả vể.
PREFIX foaf: < />SELECT ?name
WHERE { ?x foaf:name ?name }
ORDER BY ?name
LIMIT 5
OFFSET 10
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
 Offset: Thiết lập sự giao động cho lượng kết quả trả về, nó dùng kết
hợp với Limit.
 Limit: thiết lập số lượng lớn nhất kết quả trả về
PREFIX foaf: < />SELECT ?name

WHERE { ?x foaf:name ?name }
LIMIT 20
Phần 2 – Phân Tích, Thiết Kế Và Xây Dựng Chương Trình
1. Tìm hiểu yêu cầu
Bài toán của chúng ta là xây dựng hệ thống tìm kiếm có ngữ nghĩa thông tin
về Y tế. Miền thông tin được quan tâm ở đây là các thông tin về Y tế bao gồm
 Thông tin về Bệnh viện
 Thông tin về Bác sĩ
 Thông tin về Bệnh án
 Thông tin về Bệnh nhân
 Thông tin về Hồ sơ bệnh án
Người dùng tham gia vào hệ thống gồm
 Người dùng, người cần tìm kiếm thông tin
 Người cung cấp thông tin, người hiểu biết về Y tế
Yêu cầu về chức năng
 Chức năng tìm kiếm, dẫn dắt tìm kiếm cho người dùng
 Chức năng thêm thông tin vào Ontology
Yêu cầu đối với bài toán đặt ra là
 Xây dựng Ontology
 Lưu trữ, quản lý Ontology
 Xây dựng bộ tìm kiếm cho người dùng, triển khai trên môi
trường Web
2. Phân tích hệ thống
Trong một hệ thống web ngữ nghĩa, Ontology là trái tìm của hệ thống. Ontology
cho phép biểu diễn thông tin ở dạng có ngữ nghĩa để máy tính có thể suy luận, xử lý. Dựa
trên một mô hình có ngữ nghĩa được xác định thông qua Ontology, ta cần xây dựng bộ tìm
kiếm để dẫn dắt người dùng tìm đến kết quả. Do vậy trong xây dựng hệ thống có những
công việc chính ta cần phải thực hiện: Xây dựng Ontology, xây dựng bộ tìm kiếm.
a. Xây dựng Ontology
 Tìm hiểu về miền thông tin

Miền thông tin mà chúng ta quan tâm ở đây là thông tin về lĩnh vực Y tế,
Thông tin về Y tế rất nhiều có thể kể đến như: thông tin về cơ sở y tế, thông tin về
bệnh viện, thông tin về bác sĩ, thông tin về bệnh án, thông tin về bệnh nhân, hay có
thể là thông tin về bệnh…
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
Giới hạn về miền thông tin: Thông tin mà người dùng quan tâm ở đây với
mục đích là tìm kiếm hay tham khảo, không với mục đích dựa vào đó để nghiên
cứu.
 Tìm hiểu về người dùng
Người dùng ở đây ta chỉ quan tâm đến người sử dụng hệ thống của ta để tìm
kiếm thông tin về y tế. Người dùng quan tâm về lĩnh vực y tế có thể là:
 Bệnh nhân
 Bác sĩ
 Quản lý bệnh viện
Ứng với mỗi người dùng có thể có yêu cầu về thông tin khác nhau, qua tìm
hiểu ta có thể mô tả chi tiết như sau:
 Ứng với người dùng là bệnh nhân: Khi người bệnh bị mắc bệnh thì họ
sẽ tìm đến bệnh viện hay một cơ sở y tế, họ sẽ cần thông tin về các cơ sở đó. Thông
tin về một cơ sở y tế để họ có thể tìm đến có thể là: địa chỉ đường phố, địa chỉ
email, số điện thoại… đó là những thông tin để người dùng có thể tìm đến được cơ
sở y tế. Cơ sở y tế cũng cần có thông tin về các lĩnh vực y tế, dịch vụ cung cấp để
người bệnh có thể quan tâm tới. Người bệnh trong quá trình điều trị có thể cần
những hướng dẫn cụ thể về điều trị, bác sĩ là điểm hướng tới để người bệnh có thể
tìm được các hướng dẫn. Để tìm được thông tin về bác sĩ thì bác sĩ cũng cần có các
thông tin cơ bản để người bệnh có thể tìm đến, thông tin về bác sĩ có thể gồm: địa
chỉ email, số điện thoại, lĩnh vực y tế quan tâm, địa chỉ nhà….Khi người bệnh đến
cơ sở y tế có nhiều thủ tục mà người bệnh có thể chưa biết, vậy thông tin về các thủ
tục cần được làm rõ, các thủ tục có thể có như: thủ tục vào viện, thủ tục ra viện, thủ
tục bảo hiểm…
 Ứng với người dùng là bác sĩ: Bác sĩ có thể quan tâm đến các bệnh án

của người bệnh để đưa ra các quyết định cho việc điều trị, thông tin về bệnh án của
người bệnh có thể gồm: thông tin về người bệnh, thông tin về bệnh, thông tin về
biểu hiện bệnh. Bác sĩ có thể quan tâm đến kiến thức chuyên môn, các nghiên cứu
đã có để học hỏi, thông tin về các nghiên cứu có thể là: lĩnh vực y tế, địa chỉ bài
báo, tên đề tài cùng tác giả…
 Ứng với người dùng là quản lý bệnh viện: người quản lý có thể cần
đến thông tin về bệnh viện, các hồ sơ bệnh án của bệnh viện, thông tin về bác sĩ
trong bệnh viện, các thủ tục bệnh viện, các khoa điều trị trong viện, các lĩnh vực y
tế của viện
 Xác định các khái niệm, quan hệ
Dựa trên những tìm hiểu trên về lĩnh vực Y tế ta có thể rút ra một vài khái
niệm như:
 Cơ sở y tế, bệnh viện:
 Có Thông tin liên lạc
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
 Có Thông tin về lĩnh vực
 Có Thông tin các thủ tục
 Bác sĩ
 Có Thông tin liên lạc
 Có Thông tin về lĩnh vực
 Có Thông tin về bằng cấp
 Bệnh nhân
 Có Thông tin liên lạc
 Có Thông tin về bệnh
 Hồ sơ bệnh án, các hồ sơ bệnh án về một bệnh
 Có Thông tin về bệnh nhân
 Có Thông tin về bác sĩ điều trị
 Có Thông tin về bệnh án
 Địa chỉ liên lạc của bệnh viện, địa chỉ liên lạc của bác sĩ
 Có Địa chỉ đường phố

 Có Địa chỉ email
 Có Số điện thoại
 Có hình ảnh
 Các nghiên cứu
 Có địa chỉ bài báo
 Có tác giả
 Chuyên về lĩnh vực y tế
 Có kết quả đánh giá
 Các chuyên khoa
 Có Lĩnh vực y tế
 Có địa chỉ
 Thủ tục nhập viện, thủ tục bảo hiểm, thủ tục ra viện
 Có mô tả
 Có yêu cầu
 Xây dựng các Lớp, phân cấp các Lớp
Trước khi tiến hành xây dựng Ontology yêu tìm hiểu về các Ontology có sẵn
để tích hợp vào hệ thống là bắt buộc, Trong hệ thống này em quyết định tự xây
dựng ontology của mình do các lý do: không tìm thấy ontology không phù hợp với
miền bài toán tìm kiếm của mình ‘bài toán tìm thông tin về cơ sở y tế’, hệ thống này
khi triển khai là không tích hợp với một hệ thống nào sẵn có sử dụng ontology. Sau
đây là các lớp cùng sự phân cấp các lớp trong Ontology, thiết lập địa chỉ URI cho
các tài nguyên với phần prefix là medicine:
/>Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
 Address
o Các DataTypeProperty
o Các ObjectProperty
 Contact
o Các DataTypeProperty
o Các ObjectProperty
 Contact_has_address – address

o Các subclass
 Hospital_contact
 Doctor_contact
 Department_hospital_contact
 Medicine_Class
o Các DataTypeProperty
o Các ObjectProperty
 Patient_record
o Các DataTypeProperty
o Các ObjectProperty
o Các subclass
 Burn_patient_record
 Cutaneous_patient_record
 Gynecology_patient_record
 Procedure
o Các DataTypeProperty
o Các ObjectProperty
o Các subclass
 Input_procedure
 Insurance_procedure
 Output_procedure
 Xác định giá trị Literal tương ứng với DataTypeProperty
• Địa chỉ
• Contact
 has_name – String
 has_number_phone – String
 has_picture – String
• Contact_doctor
 Doctor_has_education – String
 Doctor_has_experience_years – integer

 Doctor_has_gender – String
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
 Doctor_study_at – String
• Hospital_contact
 Hospital_with_type – String
• Procedure_info
 Procedure_has_name – String
• Insurance_procedure_info
 Insurance_procedure_has_des – String
 Insurance_procedure_has_imageurl – String
• Record_with_info
 Record_has_id – String
 Record_has_bed_number – integer
 Record_has_come_in_date – date
 Record_has_room_number – integer
 Record_with_disease – String
 Record_with_expresssion_of_patient – String
 Patient_has_gender – String
 Patient_has_job – String
 Patient_has_name – String
• Research_info
 Research_has_artical_url – String
 Research_has_name – String
 Research_with_council – String
 Research_with_level – String
• Medicine_class_info
 Medicine_class_has_des – String
 Medicine_class_has_disease – String
 Medicine_class_has_name – String
• Come_in_procedure_info

 Come_in_procedure_des – String
 Come_in_procedure_request – String
• Go_out_procedure_info
 Go_out_procedure_des – String
 Go_out_procedure_request – String
b. Tìm hiểu yêu cầu người dùng
 Trong quá trình thực hiện truy vấn dữ liệu người dùng có thể đưa ra những
cấu hỏi như
 Thông tin về một bệnh viện
 Thông tin về một bệnh
 Thông tin về bác sĩ
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
 Thông tin về các nghiên cứu trong y tế
 Thông tin về các thủ tục
 Thông tin về
 Khi cập nhật dữ liệu có thể có những yêu cầu như
 Dữ liệu có thể cập nhật từ file theo định dạng
 Dữ liệu có thể cập nhật ở dạng form
c. Chức năng tìm kiếm
 Cách thức tìm kiếm
Hệ thống sẽ xuất phát từ những khái niệm ở mức cao trong miền y tế trả về
cho người dùng. Các khái niệm ở mức cao trong mô hình như
- Contact
- Medicine_class
- Patient_record
- Procedure
- Research
- Address
Đối với các khái niệm này, người dùng sẽ lựa chọn một miền khái niệm để
thực hiện tìm kiếm hoặc người dùng cũng có thể quyết định tìm ở những miền con

của các khái niệm đó. Khi người dùng đã lựa chọn một miền ứng dụng, tương ứng
với nó có thể có những quan hệ, người dùng có thể tiếp tục lựa chọn quan hệ và
thực hiện tìm kiếm dựa trên giá trị của quan hệ đó. Tóm lại, hệ thống dẫn dắt người
dùng để họ có thể giới hạn dần về miền tìm kiếm theo thứ tự
- xác định miền khái niệm
- xác định quan hệ
- xác định giá trị ứng với quan hệ, giá trị này dùng làm tìm kiếm
Biểu đồ chức năng mức cao
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
 Đặc tả các chức năng
Hệ thống phải có khả năng thực hiện truy xuất vào mô hình dữ liệu và trích
chọn các thông tin dẫn dắt người dùng, những truy vấn sau phải được thực hiện
 Tìm kiếm: giá trị tìm kiếm có thể là một khái niệm, một quan hệ hay
thể hiện. Hệ thống sẽ trả về cho người dùng các gợi ý để có thể đính
chính rằng mình muốn tìm gì
o Đầu vào: giá trị do người dùng nhập
o Đầu ra: dẫn dắt đến các chức năng mức thấp
 Tìm kiếm dựa trên miền khái niệm
 Tìm kiếm dựa trên một quan hệ
 Tìm kiếm dựa trên thể hiện
o Xử lý: Thực hiện truy vấn trả về: class, property, individual có
liên quan đến giá trị nhập.
 Tìm kiếm dựa trên một khái niệm: khi người dùng xác định được một
miền cần tìm kiếm thì hệ thống cần dẫn dắt người dùng đến các gợi ý
như
o Đầu vào: miền khái niệm, giá trị nhập vào
o Đầu ra: dẫn dắt người dùng theo các chức năng
 Chức năng tìm kiếm dựa trên: khái niệm, quan hệ
 Chức năng tìm kiếm dựa trên: khái niệm, object
o Xử lý: thực hiện truy vấn trả về: property, individual ứng với

miền khái niệm,
 Tìm kiếm dựa trên một quan hệ
o Đầu vào: một quan hệ, giá trị nhập
o Đầu ra: dẫn dắt người dùng theo các chức năng
Sinh viên thực hiện: [Lưu Đạt Long-20061907]. Khóa 51. Lớp CNPM
Tìm kiếm
Tìm kiếm dựa trên một
quan hệ
Tìm kiếm dựa trên
các thể hiện
Tìm kiếm dựa trên
một khái niệm,
object
Tìm kiếm dựa trên,
khái niệm, quan hệ
Tìm kiếm dựa trên
một miền khái niệm

×