ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
====================***==================
Giáp Thị Ngọc Thúy CHUYỂN ĐỔI TỪ MÔ HÌNH UML SANG OWL
ONTOLOGY VÀ ỨNG DỤNG
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
====================***================== Giáp Thị Ngọc Thúy CHUYỂN ĐỔI TỪ MÔ HÌNH UML SANG OWL
ONTOLOGY VÀ ỨNG DỤNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
3
MỤC LỤC
TÓM TẮT NỘI DUNG 7
MỞ ĐẦU 8
CHƯƠNG 1: GIỚI THIỆU VỀ UML VÀ OWL ONTOLOGY 9
1.1. Ngôn ngữ UML (Unified Modeling Language) 9
1.1.1. Ngôn ngữ mô hình hóa UML 9
1.1.2. Một số thành phần chủ yếu của ngôn ngữ UML 9
1.2. Ontology 14
1.3. OWL (Web Ontology Language) 14
1.3.1. Các mức của OWL 15
3.3. Mẫu thiết kế Composite 53
3.4. Bài toán 55
3.4.1. Các bước thực hiện 56
4
CHƯƠNG 4: KIỂM TRA KẾT QUẢ TÍCH HỢP MẪU UNION PATTERN VÀO MÔ
HÌNH THIẾT KẾ HÀNH VI CÁC CON VẬT 58
4.1. Mô tả bài toán cụ thể 58
4.2. Các bước thực hiện 60
4.2.1. Bước 1: Biển đổi hai biểu đồ lớp UML sang siêu mô hình 60
4.2.2. Bước 2: Chuyển đổi từ siêu mô hình UML sang OWL Ontology 60
4.2.3. Các luật ràng buộc : 73
4.2.4. Bước 3: Kiểm tra bằng công cụ 75
4.3. Kết quả kiểm tra và đánh giá. 75
CHƯƠNG 5: TỔNG KẾT 76
5.1. Kết quả đạt được: 76
5.2. Kết luận 76
PHỤ LỤC 1 77
PHỤ LỤC 2 91
Tài liệu tham khảo 104
11
Hình 1.5. Biểu đồ lớp và biểu đồ đối tượng của lớp. [1]
12
Hình 1.6. Biểu đồ trạng thái. [1]
12
Hình 1.7. Các thành phần mô hình thường dùng. [1]
13
Hình 1.8. Giao diện Protégé 3.4.4.
27
Hình 1.9. Giao diện Altova SematicWorks.
28
Hình 1.10. Giao diện Altova SematicWorks.
29
Hình 1.11. Các lớp và thuộc tính với các ràng buộc.
30
Hình 1.12. Các thuộc tính.
30
Hình 1.13. Các thể hiện của lớp.
31
Hình 2.1. Kí hiệu gói.
33
Hình 2.2. Ví dụ về gói.
33
Hình 2.3. Kí hiệu Lớp UML.
34
Hình 2.4. Ví dụ minh họa lớp ảo.
35
Hình 2.5. Ví dụ minh họa Interface.
36
Hình 2.6. Minh họa quan hệ thừa kế.
Hình 3.2. Ví dụ về mô hình áp dụng mẫu Union Pattern. 52
Hình 3.3. Trường hợp áp dụng sai mẫu UP. 52
Hình 3.4. Trường hợp áp dụng sai mẫu UP. 52
Hình 3.5. Trường hợp áp dụng sai mẫu UP. 53
Hình 3.6. Cấu trúc mẫu Composite 53
Hình 3.7. Trường hợp áp dụng mẫu Composite đúng 54
Hình 3.8. Mô hình ban đầu 54
Hình 3.9. Trường hợp áp dụng sai mẫu Composite 55
Hình 3.10. Các bước trong quy trình kiểm tra. 57
Hình 4.1. Các lớp UML ban đầu. 58
Hình 4.2. Biểu đồ lớp sau khi tinh chế áp dụng mẫu Union Pattern 59
Hình 4.3. Siêu mô hình của các biểu đồ lớp
60
Hình 4.4. Các lớp sau khi chuyển đổi từ siêu mô hình bằng công cụ Protégé. 61
Hình 4.5. Các thuộc tính của lớp Class. 61
Hình 4.6. Thuộc tính của lớp Operation 62
Hình 4.7. Thuộc tính của lớp Parameter. 63
Hình 4.8. Thuộc tính lớp Parameter_Direction_Kind. 64
Hình 4.9. Thuộc tính của lớp Visibility 64
Hình 4.10. Toàn bộ thuộc tính của các lớp. 65
Hình 4.11. Các thể hiện của lớp Class 66
Hình 4.12. Các thể hiện của lớp Operation. 67
Hình 4.13. Các Thể hiện của lớp Parameter. 68
Hình 4.14. Các thể hiện của lớp Parameter 69
Hình 4.15. Các thể hiện của lớp Parameter_Direction_Kind 69
Hình 4.16. Các thể hiện của lớp Visibility_Kind 70
Hình 4.17. Các thể hiện của lớp Class 70
Hình 4.18. Các thể hiện của lớp Class: lớp Mammal 71
Hình 4.19. Các thể hiện của lớp Operation. 71
Hình 4.20. Thể hiện của lớp Operation: phương thức makeSound của lớp Mammal. 72
hành thử nghiệm ứng dụng quy trình này để kiểm tra kết quả áp dụng mẫu thiết kế
trong phát triển phần mềm hướng đối tượng.
8
MỞ ĐẦU
UML là ngôn ngữ mô hình hóa thống nhất, với các kí hiệu trực quan nên
được sử dụng phổ biến trong ngành công nghiệp phần mềm. Một mô hình UML
thường chứa nhiều biểu đồ thể hiện các khía cạnh khác nhau của hệ thống và
thêm vào đó là các ràng buộc được mô tả bằng lời hoặc bằng ngôn ngữ ràng buộc
đối tượng để cho ngữ nghĩa của các yếu tố mô hình được chặt chẽ hơn.
Để kiểm tra các yếu tố mô hình UML có thỏa mãn một số thuộc tính đã
được định nghĩa, chúng ta không thể thực hiện được bằng các công cụ đặc tả
UML hiện tại. Cho đến nay, chúng ta thường phải chuyển mô hình UML sang đặc
Ontology, ta cần hiểu được các khái niệm thế nào là UML, Ontology và OWL
Ontology. Và chương 1 sẽ trình bày chi tiết và rõ ràng hơn về vấn đề này.
9
CHƯƠNG 1: GIỚI THIỆU VỀ UML VÀ
OWL ONTOLOGY
1.1. Ngôn ngữ UML (Unified Modeling Language)
1.1.1. Ngôn ngữ mô hình hóa UML
Ngôn ngữ mô hình hóa UML là một ngôn ngữ biểu diễn mô hình theo
phương pháp hướng đối tượng được xây dựng bởi ba tác giả là: James Rumbaugh,
Grady Booch và Ivar Jacobson với mục đích là:
Thứ nhất là tạo ra một công cụ để có thể mô hình hóa các hệ thống sử
dụng các khái niệm hướng đối tượng.
Thứ hai là, nó sẽ thiết lập một mối liên hệ từ nhận thức của con người
đến các sự kiện cần mô hình hóa.
Thứ ba, nó sẽ giải quyết vấn đề về thừa kế trong các hệ thống phức tạp,
có nhiều ràng buộc khác nhau.
Và cuối cùng, nó tạo nên một ngôn ngữ mô hình hóa mà cả con người và
máy tính đều có thể hiểu được.
Như vậy, ngôn ngữ UML là ngôn ngữ biểu diễn mô hình, nó dựa trên một
tập hợp các kí tự để xây dựng các mô hình của hệ thống. Mỗi một thành phần
của nó mang một ý nghĩa khác nhau để có thể biểu diễn các khía cạnh khác nhau
của hệ thống. Để tìm hiểu thêm về UML, phần tiếp theo chúng ta sẽ nói kĩ hơn
về một số thành phần cơ bản của nó.
1.1.2. Một số thành phần chủ yếu của ngôn ngữ UML
1.1.2.1. Các loại biểu đồ
Trong UML có rất nhiều loại biểu đồ khác nhau được sử dụng để cung cấp
một cái nhìn chi tiết nhất về tất các các khía cạnh của hệ thống. Đầu tiên là biểu
đồ Ca sử dụng, sau đó là các Biểu đồ tuần tự, Biểu đồ cộng tác, Biểu đồ lớp, Biểu
Hình 1.3. Biểu đồ cộng tác của hệ thống Đặt Sách
o Biểu đồ lớp
Biểu đồ chỉ ra cấu trúc các lớp trong hệ thống. Các lớp quan hệ với nhau
thông qua liên kết, phụ thuộc, tổng quát hóa hay đóng gói. Tất cả các mối quan hệ
đó đều được thể hiện trong biểu đồ lớp, với cấu trúc bên trong của lớp gồm các
khái niệm thuộc tính và phương thức [1]. Ví dụ:
Hình 1.4. Biểu đồ lớp Thư Viện. [7]
o Biểu đồ đối tượng
Biểu đồ đối tượng chỉ ra một loạt các đối tượng thực thể của lớp thay vì các
lớp. Một biểu đồ đối tượng là một ví dụ của biểu đồ lớp. Ví dụ:
12Hình 1.5. Biểu đồ lớp và biểu đồ đối tượng của lớp. [1]
o Biểu đồ chuyển trạng thái
Biểu đồ chuyển trạng thái chỉ ra các trạng thái mà các đối tượng của lớp đó
có thể có và các sự kiện gây nên sự biến đổi trạng thái đó.
Hình 1.6. Biểu đồ trạng thái. [1]
Bên cạnh các loại biểu đồ, trong UML còn có các kí hiệu được sử dụng bên trong
các loại biểu đồ, thể hiện các vai trò và ý nghĩa khác nhau hỗ trợ cho việc lập mô
hình, và có thể đặc tả đầy đủ các khía cạnh của hệ thống.
1.1.2.2. Các thành phần trong mô hình UML
Đó là các kí hiệu được sử dụng trong biểu đồ. Nó là các phần tử của mô
hình, thể hiện các khái niệm hướng đối tượng quen thuộc. Chẳng hạn như các
tìm hiểu các khái niệm thế nào là Ontology? và nó có những đặc điểm như thế
nào. Trước tiên, thuật ngữ “Ontology”, nó có nghĩa là “bản thể học”. Đối tượng
nghiên cứu chủ yếu của Ontology là các sự vật và phân loại chúng dựa vào các
điểm đặc trưng mang tính bản chất của nó ở trong thực tế.
Trong lĩnh vực công nghệ thông tin và khoa học máy tính, ontology còn là
sự biểu diễn tri thức mang tính hình thức bằng việc thiết lập các khái niệm trong
một miền lĩnh vực nào đó và các mối quan hệ giữa các khái niệm đó. Nó được sử
dụng để suy luận về các đặc tính hoặc để mô tả miền lĩnh vực nào đó [9].
Ontology có thể biểu diễn dựa trên các logic mô tả và khai thác được khả
năng biểu diễn tri thức cũng như khả năng lập luận hiệu quả của logic mô tả. Vì
thế, chúng ta sử dụng Ontology với các mục đích:
o Thứ nhất là để chia sẻ những tri thức về các khái niệm, cấu trúc thông tin
giữa con người hoặc giữa các hệ thống phần mềm. Ontology giống như
một cuốn từ điển chuyên ngành, nó sẽ cung cấp và giải thích các thuật ngữ
cho người dùng khi được yêu cầu.
o Thứ hai, nó sẽ cho phép tái sử dụng tri thức. Chúng ta có thể trộn hai hay
nhiều Ontology với nhau, và sử dụng lại các khái niệm được định nghĩa
trong các Ontology này. Bài toán đặt ra làm cách nào để bổ xung các quan
hệ, thuộc tính sẵn có vào một hệ thống mới hay đó chính là vấn đề tái sử
dụng tri thức.
o
Và thứ ba là nó đưa ra các giả thiết rõ ràng về miền lĩnh vực. Ontology có
thể dễ dàng thay đổi sự thực thi khi tri thức về lĩnh vực đó thay đổi. Thêm
vào đó, việc đặc tả rõ ràng về một miền tri thức sẽ giúp cho người mới tiếp
cận hiểu được ngữ nghĩa của các miền tri thức ấy.
Để xây dựng được một Ontology, người ta có thể sử dụng khá nhiều ngôn ngữ
khác nhau, nhưng một trong những ngôn ngữ biểu diễn Ontology một cách dễ dàng và
hiệu quả nhất là OWL (Web Ontology Language).
o OWL DL (OWL Discription Logic):Ttrợ giúp những người dùng cần sự
diễn đạt nhiều nhất trong khi vẫn duy trì được tất cả các chức năng có thể
được tính toán (đảm bảo các kết luận có thể được tính toán) và có khả năng
đưa ra quyết định (tất cả các tính toán sẽ kết thúc trong thời gian có hạn
định). OWL bao gồm tất cả cấu trúc của ngôn ngữ OWL Lite, nhưng có thể
sử dụng các ràng buộc ở dạng phức tạp hơn.
o OWL Full: Người sử dụng có thể diễn đạt nhiều nhất và có cấu trúc cũng tự
do của RDF mà không cần đảm bảo về mặt tính toán của các biểu thức. Ví
dụ, trong một lớp của OWL Full có thể được coi là một tập hợp các thể
hiện và cũng đồng thời là chính nó cũng là một thể hiện. OWL Full cho
phép các ontology tăng thêm ý nghĩa cho vốn từ vựng đã được định nghĩa
trước đó (RDF hoặc OWL).
Trong đó, OWL Full là sự mở rộng của OWL DL, OWL DL lại là sự mở
rộng của OWL Lite. OWL có thể được xem như là sự mở rộng của ngôn ngữ
RDF, còn OWL Lite và OWL DL có thể được xem như là sự mở rộng ràng buộc
của RDF. Và sau đây là một số các đặc điểm của OWL Lite, tiếp đó là các đặc
điểm mở rộng của OWL DL và OWL Full.
1.3.2. Bản mô tả từ vựng ngôn ngữ OWL Lite
Và sau đây là các thành phần chính của OWL Lite: 16
BẢNG 1: BẢNG MÔ TẢ TỪ VỰNG CỦA OWL LITE.
RDF Schema So sánh Các kiểu thuộctính
Class(Thing, Nothing) equivalentClass ObjectProperty
rdfs:subClassOf equivalentProperty DatatypeProperty
rdf:Property sameAs inverseOf
rdfs:subPropertyOf differentFrom TransitiveProperty
priorVersion rdfs:comment
backwardCompatibleWit
h
rdfs:seeAlso
incompatibleWith rdfs:isDefinedBy
DeprecatedClass AnnotationProperty
DeprecatedProperty OntologyProperty
Một phần không thể thiếu để có thể biểu diễn các thuộc tính dữ liệu trong
Ontology đó là các kiểu dữ liệu. OWL hỗ trợ rất nhiều kiểu dữ liệu, và sau đây là
bảng mô tả các kiểu dữ liệu của OWL:
BẢNG 4. CÁC KIỂU DỮ LIỆU.
xsd:string xsd:normalizedString xsd:boolean
xsd:decimal xsd:float xsd:double
xsd:integer xsd:nonNegativeInteger xsd:positiveInteger
xsd:nonPositiveInteger xsd:negativeInteger xsd:short
xsd:long xsd:int xsd:byte
xsd:unsignedLong xsd:unsignedInt xsd:unsignedShort
xsd:hexBinary xsd:unsignedByte xsd:date
xsd:dateTime xsd:base64Binary xsd:gDay
xsd:gYear xsd:time xsd:language
xsd:anyURI xsd:gYearMonth xsd:NCName
xsd:NMTOKEN xsd:gMonthDay
xsd:gMonth
xsd:token
xsd:Name
thuộc tính con của một hoặc một vài thuộc tính khác. Chẳng hạn như thuộc tính
hasSibling có thể là thuộc tính con của thuộc tính hasRelative. Ta có:
19
o rdfs:domain : Một miền của thuộc tính giới hạn các thể hiện có thể được
ứng dụng . Hay nói khác đi là nó xác đinh thuộc tính của miền này thuộc vào lớp
nào. Như ví dụ lớp Sinh vật ở trên, thuộc tính name được khai báo với
rdfs:domain thì thuộc tính name này thuộc lớp Sinh_vat.
o rdfs:range : Phạm vi của thuộc tính cũng bị giới hạn các giá trị có được. Ta
xét ví dụ sau:
Giá trị cụ thể của thuộc tính “hasFlight” sẽ là một hoặc một vài thể hiện của lớp
Flight.
o Các thể hiện: Các thể hiện đó là các minh họa cụ thể của lớp. Ví dụ, sinh
viên Lan, là một thể hiện của lớp Sinh_vien, với thuộc tính name có giá trị là
Lan, .v.v.
Ta có ví dụ sau:
Ta tạo một thể hiện cho lớp Dong_vat: o equivalentClass (Lớp tương đương): Hai lớp cũng có thể tương đương
nhau, các lớp tương đương có cùng các trường hợp. Ví dụ, người viết một
cuốn sách (Writer) là một tác giả của cuốn sách ấy (Author) thì hai cách gọi
Writer và Author là tương đương nhau. Vì vậy, một thể hiện của Writer cũng
là một thể hiện của Author và ngược lại.
20
o inverseOf: Các thuộc tính nghịch đảo là với mỗi một hoạt động, nó có
tương ứng một hoạt động ngược lại. Ví dụ, thuộc tính subClass, có thể có
thuộc tính superClass.
Ví dụ như: o TransitiveProperty (thuộc tính bắc cầu): Nếu A là tổ tiên của B biểu diễn
bằng thuộc tính isAncestorOf. Tương tự, B là tổ tiên của C thì suy ra A là
tổ tiên của C, hay là với thuộc tính isAncesorOf là thuộc tính bắc cầu. Đó
là tính chất bắc cầu. Ví dụ: o SysmetricProperty (Thuộc tính đối xứng): chẳng hạn thuộc tính isFriendOf
là thuộc tính đối xứng, chẳng hạn nều An là bạn của Nam, thì Nam là bạn
của An. Ví dụ biểu diễn: o FunctionalProperty (thuộc tính chức năng): Đây là thuộc tính chỉ có giá trị
duy nhất.
Ví dụ
22
o InverseFunctionalProperty (thuộc tính chức năng nghịch đảo): Ví dụ:
Khi đó, thuộc tính producesWine chỉ có 1 giá trị, và thuộc tính nghịch đảo
của nó là hasMaker.
o hasValue: Một thuộc tính nào đó yêu cầu cần phải có chắc chắn một giá
trị.
ví dụ :
Thuộc tính hasSugar phải có ít nhất một giá trị, và đó là giá trị Dry.
o disjointWith: Các lớp có thể được bắt đầu được phân tách ra thành các
phần khác nhau. Ví dụ, Man và Woman có thể được tách ra các lớp. Giả
dụ, A là một thực thể của Man, thì A không thể là thực thể của Woman. Ta
xét ví dụ:
24 Khi đó, nếu một thực thể của EdibleThing thuộc Pasta thì sẽ không thể là
Meat, Fowl, Seafood, Dessert, Fruit. Chỉ có Pasta là phân tách với các lớp trên,
chứ không khẳng định có phân tách giữa các lớp còn lại với nhau, chẳng hạn như
Meat và Fruit.
o unionOf, complementOf, intersectionOf: OWL DL và OWL Full cho
phép tính dựa vào sự kết hợp các lớp và các ràng buộc theo kiểu Boolean
(Đại số Boolean): unionOf (hợp), complementOf (giao), và intersectionOf
(phần bù).
Ví dụ: o minCardinality, maxCardinality, cardinality: Trong OWL DL và OWL
Full không giới hạn số lượng các phần tử như trong OWL Lite. Nghĩa là
một thuộc tính nào đó có thể có số lượng phần tử nhỏ nhất là 2.
OWL còn rất nhiều cú pháp lệnh nữa, nhưng trong khóa luận này, chúng tôi