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

LUẬN VĂN:CHUYỂN ĐỔI TỪ MÔ HÌNH UML SANG OWL ONTOLOGY VÀ ỨNG DỤNG potx

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 (8.82 MB, 105 trang )















ĐẠ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












HÀ NỘI - 2010

1

















ĐẠ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


Cán bộ hướng dẫn: ThS.Vũ Diệu Hương
Cán bộ đồng hướng dẫn: ThS. Đặng Việt Dũng






HÀ NỘI - 2010
2

LỜI CẢM ƠN

Bài khóa luận “Chuyển đổi từ mô hình UML sang OWL Ontology và ứng
dụng” của em được hoàn thành bên cạnh nhờ sự nỗ lực của bản thân, em còn
được sự chỉ bảo tận tình từ phía các thầy cô để giúp em hoàn thành khóa luận này.
Em xin chân thành cảm ơn các thầy cô trong bộ môn Công nghệ phần mềm
– khoa CNTT – trường ĐH Công Nghệ vì đã tạo cơ hội cho em thực hiện khóa
luận này. Đặc biệt là tới cô Vũ Diệu Hương và thầy Đặng Việt Dũng, là những
người đã tận tình giúp đỡ và trực tiếp hướng dẫn để em hoàn thành được khóa
luận này.
Cuối cùng, em kính mong nhận được những ý kiến đóng góp của thầy cô để
khóa luận này của em được hoàn chỉnh hơn. Em xin chân thành cảm ơn.

Giáp Thị Ngọc Thúy
Khoa Công nghệ thông tin
Trường Đại học Công nghệ - ĐHQGHN



















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

1.3.2. Bản mô tả từ vựng ngôn ngữ OWL Lite 15
1.4. OWL Ontolgogy 24
1.4.1. Các phần tử trong OWL Ontology 25
1.4.2. Một số công cụ hỗ trợ việc xây dựng OWL Ontology 25

CHƯƠNG 2: CÁC QUY TẮC CHUYỂN ĐỔI TỪ MÔ HÌNH UML SANG OWL
ONTOLOGY 32
2.1. Giới thiệu 32
2.2. Quy tắc chuyển đổi từ mô hình UML sang OWL Ontology 32
2.2.1 Gói (Package) 33
2.2.2. Lớp (Class) 34
2.2.3. Chú thích 35
2.2.4. Giao diện (Interface) 36
2.2.5. Tổng quát hóa 36
2.2.6. Liên kết (Association) 37
2.2.7. Các vai trò (Roles) 41
2.2.8. Các thuộc tính (Attributes) 41
2.2.9. Ràng buộc số lượng 42
2.2.10. Mối quan hệ phụ thuộc 44
2.2.11. Liệt kê 45
2.2.12. Kết tập 46
2.2.13. Phương thức 47

CHƯƠNG 3: QUY TRÌNH THỰC HIỆN KIỂM TRA KẾT QUẢ ÁP DỤNG MẪU
VÀO MÔ HÌNH THIẾT KẾ UML 50
3.1. Giới thiệu 50
3.2. Mẫu Union Pattern (UP) 50
3.2.1. Giới thiệu 50
3.2.2. Các tính chất cấu trúc cần đảm bảo 51
3.2.3. Một số trường hợp áp dụng sai mẫu Union Pattern 52

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




















5

DANH MỤC BẢNG BIỂU
BẢNG 1: BẢNG MÔ TẢ TỪ VỰNG CỦA OWL LITE. 16
BẢNG 2. CẤU TRÚC TỪ VỰNG OWL LITE MÔ TẢ RÀNG BUỘC 16
BẢNG 3. BẢNG TỪ VỰNG XÂY DỰNG THÔNG TIN VỀ PHIÊN BẢN VÀ CHÚ
THÍCH 16
BẢNG 4. CÁC KIỂU DỮ LIỆU 17
BẢNG 5: BẢNG LIỆT KÊ CÁC QUY TẮC CHUYỂN ĐỔI 32

DANH MỤC HÌNH VẼ
Hình 1.1. Biểu đồ Ca sử dụng của một công ty bảo hiểm. [1]
10
Hình 1.2. Biểu đồ trình tự cho Print Server. [1]
10
Hình 1.3. Biểu đồ cộng tác của hệ thống Đặt Sách
11
Hình 1.4. Biểu đồ lớp Thư Viện. [7]

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ế.

37
Hình 2.7. Lớp Author liên kết với lớp Computer.
38
Hình 2.8. Minh họa liên kết một hướng.
38
Hình 2.9. Minh họa mối liên kết hai chiều.
39
Hình 2.10. Lớp liên kết.
40
Hình 2.11. Ví dụ minh họa các vai trò.
41
Hình 2.12. Minh họa thuộc tính lớp.
41
Hình 2.13. Minh họa ObjectPropeprty.
42
Hình 2.14. Sơ đồ lớp biểu diễn hệ thống quản lý dịch vụ tiết kiệm.
42
Hình 2.15. Minh họa mối sự phụ thuộc.
44
Hình 2.16. Quan hệ phụ thuộc.
45
Hình 2.17. Minh họa kiểu liệt kê.
46
Hình 2.18. Minh họa mối quan hệ kết tập.
47
6

Hình 2.19. Siêu mô hình của biểu đồ lớp UML.
48
Hình 3.1. Mô hình của mẫu Union Pattern. 51

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 4.21. Thể hiện của lớp Operation: phương thức makeSound trong lớp Cat. 72
Hình 4.22. Thể hiện của lớp Parameter. 73

BẢNG CHỮ VIẾT TẮT
OWL Web Ontology Language
UML Unified Modeling Language
UP Union Pattern
OCL
Object Constraint Language

7

TÓM TẮT NỘI DUNG

Ngôn ngữ mô hình hóa UML được sử dụng phổ biến nhất trong công nghệ
phần mềm nhưng lại không đủ chặt chẽ và chưa có công cụ hỗ trợ kiểm tra tính
đúng đắn của đặc tả. Do vậy, chúng ta thường phải kết hợp với các ngôn ngữ đặc tả
khác để thu được bản đặc tả hệ thống vừa trực quan, dễ hiểu vừa có ngữ nghĩa chặt
chẽ, được kiểm tra tự động bởi các công cụ. Và trong quá trình áp dụng các mẫu
thiết kế để thu được một mô hình thiết kế tối ưu hơn, ta có thể gặp phải những sai
sót. Do vậy, ta cần phải kiểm tra xem mô hình thu được có thỏa mãn các tính chất
của mẫu hay không. Điều đó rất quan trọng để có thể giảm thiểu rủi ro và tăng hiệu
quả trong quá trình phát triển phần mềm. Trong khóa luận này, tôi sẽ vận dụng các
quy tắc chuyển đổi đặc tả UML sang OWL, từ hai mô hình thiết kế ban đầu và sau
khi áp dụng mẫu, ta sẽ thu được hai đặc tả OWL, từ đó ta kết hợp với các ràng buộc
được viết bằng ngôn ngữ đặc tả OCL hoặc Prolog, và với các công cụ kiểm tra tự
động, ta sẽ kiểm tra hai đặc tả OWL có tương đương nhau hay không, cũng tức là
hai mô hình đó có tương đương nhau hay không. Do đó, khóa luận của tôi sẽ tập
trung vào quy trình chuyển từ đặc tả UML sang đặc tả OWL, kết hợp với các ngôn
ngữ đặc tả OCL, Prolog để cho ngữ nghĩa của các đặc tả chặt chẽ hơn. Nó cũng tiến

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

tả bằng các ngôn ngữ có tính hình thức cao hơn và sử dụng các công cụ hỗ trợ
ngôn ngữ đó để phân tích tính đúng đắn của đặc tả.
Dựa trên hướng nghiên cứu này, chúng tôi đề xuất sử dụng ngôn ngữ OWL
và Prolog để kiểm tra các yếu tố của mô hình UML. Theo cách tiếp cận này, các
yếu tố của mô hình sẽ được chuyển đổi sang các yếu tố tương ứng của đặc tả
OWL, còn các ràng buộc sẽ được mô tả bằng Prolog. Khóa luận này tập trung vào
tìm hiểu cách thức chuyển đổi từ đặc tả UML sang đặc tả OWL, sử dụng Prolog
để thể hiện các ràng buộc cho các yếu tố mô hình và thực hiện một ứng dụng thử
nghiệm.
Bài toán được chọn để thực hiện ứng dụng thử nghiệm là kiểm tra kết quả áp
dụng mẫu thiết kế cho một mô hình UML cho trước. Mẫu thiết kế cung cấp giải
pháp tốt để giải quyết các vấn đề gặp phải trong giai đoạn thiết kế. Các giải pháp
này được thẩm định nhiều lần trong các dự án thực tế trước đây, và nếu áp dụng
đúng các giải pháp mẫu đưa ra thì chúng ta sẽ thu được thiết kế có kiến trúc tốt
hơn so với mô hình ban đầu. Tuy nhiên, trong thực tế đã có rất nhiều trường hợp
áp dụng sai giải pháp mẫu đưa ra, dẫn đến mô hình thiết kế mới không thỏa mãn
các tính chất cấu trúc của giải pháp mẫu.
Khóa luận sẽ trình bày quy trình chuyển đổi các mô hình UML sang đặc tả
bằng ngôn ngữ OWL, các tính chất cấu trúc của giải pháp mẫu được mô tả bằng
Prolog để có thể kiểm tra được tính đúng đắn của việc áp dụng mẫu bằng công cụ
tự động. Việc xây dựng công cụ sử dụng ở đây được thực hiện bởi khóa luận tốt
nghiệp của sinh viên Vũ Văn Thế.
Cấu trúc của Khóa luận này bao gồm năm chương. Chương 1 trình bày khái
quát về UML, OWL Ontology và bản mô tả từ vựng của OWL cùng các mức của
nó. Chương 2 trình bày về các quy tắc chuyển đổi từ mô hình UML sang OWL
Ontology. Chương 3 trình bày về quy trình thực hiện kiểm tra kết quả áp dụng
mẫu vào mô hình thiết kế UML. Chương 4 sẽ thực hiện kiểm tra kết quả tích hợp
mẫu Union Pattern vào mô hình thiết kế cụ thể, và chương 5 sẽ tổng kết những
kết quả đạt được.
Trước tiên, để hiểu được các quy tắc chuyển đổi từ UML sang OWL

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

đồ đối tượng, Biểu đồ chuyển trạng thái, v.v
o Biểu đồ Ca sử dụng
Biểu đồ này mô tả chức năng mà hệ thống cung cấp, đó là các hành vi,
nhiệm vụ của hệ thống mà người sử dụng mong muốn nó thực hiện, nó không
miêu tả các chức năng hoạt động bên trong hệ thống ra sao.
10


Hình 1.1. Biểu đồ Ca sử dụng của một công ty bảo hiểm. [1]

Biểu đồ này được xây dựng ở giai đoạn đầu của công việc thiết kế, nó xác
định chức năng theo các nhìn của người sử dụng và với mục đích là xác định ngữ
cảnh của hệ thống, giúp nhà phát triển phần mềm nắm bắt được yêu cầu và kiểm
chứng kiến trúc hệ thống [7]. Dựa vào các chức năng mà nó cung cấp, ta có thể
xây dựng hệ thống ở mức chi tiết hơn ở các loại biểu đó sau đó.
o Biểu đồ tuần tự
Chỉ ra trình tự hoạt động giữa các đối tượng, thứ tự giữa các thông điệp gửi
đi giữa các đối tượng và trình tự tương tác giữa các đối tượng theo sự sắp xếp về
thời gian


Hình 1.2. Biểu đồ trình tự cho Print Server. [1]

o Biểu đồ cộng tác
Chỉ ra sự cộng tác giữa các đối tượng. Bên cạnh việc thể hiện các trao đổi
thông điệp (còn gọi là sự tương tác), nó còn thể hiện các đối tượng và quan hệ
giữa chúng.
11



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ụ:
12


Hì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

phần tử: Lớp, Đối tượng, Trạng thái, Nút, Gói, Thành phần, .v.v. [1].

13


Hình 1.7. Các thành phần mô hình thường dùng. [1]
Trong đó, một vài quan hệ đáng chú ý như sau:
o Liên kết (Association): Liên kết các phần tử và các thực thể với nhau.
Kí hiệu:

o Tổng quát hóa (Generalization): Còn được gọi là tính kế thừa, với nghĩa
rằng, phần tử này có thể là một sự chuyên biệt hóa của phần tử khác.
Kí hiệu:

o Sự phụ thuộc (Dependency): Chỉ ra rằng một phần tử này phụ thuộc trong
một phương thức nào đó với phần tử khác.
Kí hiệu:

o Kết tập (Aggregation): Một dạng đặc biệt của liên kết, trong đó, một phần tử
này chứa các phần tử khác.
Kí hiệu:

o Mối quan hệ thực hiện (Realization): Một quan hệ thực hiện chỉ ra một lớp
thực hiện hành vi đặc tả bởi một lớp khác (thường là một giao diện)[7] và
được kí hiệu:

14

1.2. Ontology
Để thực hiện việc chuyển đổi từ UML sang OWL Ontology, trước hết ta hãy

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).


1.3. OWL (Web Ontology Language)
OWL (Web Ontology Language) là ngôn ngữ Ontology được phát triển bởi
tổ chức W3C (The World Wide Web Consortium). Nó có thể xử lý thông tin chứa
trong các văn bản, và đưa ra nội dung cần thiết cho người dùng, nó đối lập với
trường hợp là chỉ đưa ra nội dung thông tin ấy có mặt ở đâu cho người sử dụng.
Ngoài ra, OWL còn có thể được sử dụng để biểu diễn các ý nghĩa của một nhóm
từ vựng và các mối quan hệ giữa các nhóm đó một cách rõ ràng rành mạch hơn.
OWL có khả năng biểu diễn ý nghĩa và ngữ nghĩa một cách dễ dàng hơn là
XML (Extensible Markup Language-Ngôn ngữ đánh dấu mở rộng), RDF
(Resource Description Framework- Khung mô tả tài nguyên), hay RDF-S (RDF
15

Schema). OWL là một bộ từ vựng, mở rộng của khung mô tả tài nguyên (RDF) và
được thừa kế từ ngôn ngữ DAML+OIL Web Ontology- một dự án được hỗ trợ
bởi W3C. Nó kế thừa các ưu thế của ngôn ngữ này đồng thời khắc phục những
hạn chế của RDFS. OWL có thêm khả năng mô tả các thuộc tính và các lớp, mối
quan hệ giữa các lớp, các ràng buộc về số lượng, so sánh, nhiều kiểu thuộc tính,
những nét đặc trưng của thuộc tính, .v.v. Vì vậy mà OWL có khả năng biểu diễn
thông tin tri thức, nó là ngôn ngữ Ontology khá mạnh.
Trong OWL có các mức khác nhau, mỗi mức lại có các đặc điểm riêng, và
sau đây là chi tiết của từng mức.
1.3.1. Các mức của OWL
OWL có 3 mức đó là OWL Lite, OWL DL và OWL Full. Ba mức này có
khả năng diễn đạt cao dần, mức cao hơn là sự mở rộng của mức thấp hơn.
o OWL Lite: Hỗ trợ những người dùng chủ yếu cần sự phân lớp theo thứ bậc
và các ràng buộc đơn giản. Có nghĩa nó cho phép bạn định nghĩa các lớp và
các thuộc tính cũng như thể hiện của các lớp và một vài ràng buộc đơn
giản. Ví dụ như, khi trợ giúp các ràng buộc về số lượng các phần tử, nó chỉ
cho phép số lượng các phần tử là 0 hoặc 1. Nó ít có khả năng để diễn đạt
các mối quan hệ phức tạp và nó ít phức tạp hơn là OWL DL.

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

rdfs:domain AllDifferent SymmetricProperty
rdfs:range distinctMembers FunctionalProperty
Individual InverseFunctionalProperty

Trong OWL cũng hỗ trợ để xây dựng các mối ràng buộc trong Ontolgy, sau đây là
cấu trúc từ vựng của để mô tả các ràng buộc đó.
BẢNG 2. CẤU TRÚC TỪ VỰNG OWL LITE MÔ TẢ RÀNG BUỘC

Các ràng buộc thuộc
tính
Ràng buộc về tập hợp Các thông tin tiêu đề
Restriction minCardinality (chỉ có 0
hoặc 1)
Ontology

onProperty maxCardinality (chỉ có 0
hoặc 1)
imports
allValuesFrom cardinality (chỉ có 0
hoặc 1)

someValuesFrom

Cũng như một số ngôn ngữ lập trình khác, OWL cho phép xây dựng những đoạn
ghi chú, các thông tin về phiên bản của nó, v.v.
BẢNG 3. BẢNG TỪ VỰNG XÂY DỰNG THÔNG TIN VỀ PHIÊN BẢN VÀ
CHÚ THÍCH.
Phần giao của lớp Phiên bản Chú thích
intersectionOf versionInfo rdfs:label
17


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




18

Sau đây là mô tả chi tiết về một số thành phần của ngôn ngữ OWL Lite:
o Class (lớp): Một lớp được định nghĩa là một tập hợp các thể hiện cùng
có một số thuộc tính như nhau. Ví dụ như Nam và Hoa đều thuộc lớp
Người. Các lớp được tổ chức thành hệ thống phân cấp với việc sử dụng
subClassOf. Ví dụ: Ta tạo ra 3 lớp : Động vật, Thực vật, và Con người:
Thực tế, thông thường ta luôn có
một lớp được định nghĩa sẵn là
owl:Thing, lớp này là lớp cha của tất cả
các lớp mà ta dùng định nghĩa. Hoặc
OWL cũng định nghĩa một lớp rỗng owl:Nothing.

o rdfs:subClassOf : Tạo ra một hệ thống phân cấp các lớp, một lớp là lớp con
của một lớp khác. Chẳng hạn, lớp Động vật có thể là lớp con của lớp Sinh vật:


o rdf:Property: Các thuộc tính có thể được sử dụng để biểu diễn các mối
quan hệ giữa các thể hiện hoặc các thể hiện với các giá trị dữ liệu. Ví dụ
các thuộc tính như hasChild, hasSibling, hay hasAge. Trong OWL có
owl:DatatypeProperty và owl:ObjectProperty đều là lớp con của
rdf:Property trong RDF.
Ví dụ: Máy bay có các chuyến bay  lớp Plane có thuộc tính hasFlight,
liên quan đến lớp Flight.

Còn thuộc tính name của lớp sinh vật có thuộc tính kiểu dữ liệu xsd:string.


o subPropertyOf: các thuộc tính cũng phân cấp, một thuộc tính này có thể là

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



Hoặc:

Với điều kiện trước đó, ta đã khai báo lớp FictionBook là lớp con của
lớp Book, lớp Book lại có thuộc tính là genreOf, thì lớp FictionBook được gọi
là tương đương với lớp Book có thuộc tính genreOf có giá trị là Fiction.

o equivalentProperty (Thuộc tính tương đương): Chẳng hạn ta có thể chỉ ra
rằng thuộc tính writerOf, và thuộc tính authorOf chỉ cùng một khái niệm.


o sameAs: Hai cá thể (hay là thể hiện) có thể tương đương nhau. Cấu trúc này
có thể được sử dụng để tạo ra những cái tên khác nhau, nhưng đều cùng chỉ về
một cá thể (thể hiện). Ví dụ như: một dịch vụ có thể cung cấp cho bạn một thể
hiện của lớp Vat_dung (Vật dụng) là Coc , trong khi dịch vụ khác lại định nghĩa là
Ly ta khai báo:

Khi đó hệ thống đó sẽ biết rằng, bất kì thông tin nào về Coc (cốc) thì cũng áp
dụng được với Ly (ly) và ngược lại.

o differentFrom: Một thể hiện này được diễn tả khác với các cá thể khác, nó
ngược lại với sameAs. Ví dụ:
21



o AllDifferent: Tất cả các thể hiện được khai báo trong owl:AllDifferent sẽ
được phân biệt với nhau.


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.



Và sau đây là một số các ràng buộc trên thuộc tính của OWL Lite:
o allValuesFrom: Thể hiện sự ràng buộc của thuộc tính với lớp. Nó có
nghĩa là thuộc tính ấy trên lớp liên quan có một phạm vi ràng buộc đi kèm
với nó. Chẳng hạn, một lớp Person có một thuộc tính hasDaughter ràng
buộc kiểu allValuesFrom với lớp Woman. Khi đó, nếu có một thể hiện của
lớp Person là Nam, có thuộc tính hasDaughter có giá trị là An chẳng hạn,
thì có thể suy ra là An thuộc lớp Woman. Tức là tất cả các giá trị của
hasDaughter đều là thể hiện của lớp Woman.
o someValuesFrom: Ví dụ trang WebPaper có ràng buộc kiểu
someValuesFrom trên thuộc tính hasKeyword thì một vài giá trị của
hasKeyword có thể là các thể hiện của lớp WebPaper. Hay nói cách khác,
một trong số các giá trị của hasKeyword có thể là thể hiện của WebPaper.

Trên OWL Lite còn có sự ràng buộc về tập hợp:
o minCardinality và maxCardinality: số lượng nhỏ nhất và lớn nhất các
phần tử của tập hợp các giá trị của thuộc tính.
o cardinality: Số lượng phần tử của giá trị thuộc tính là một số xác định
o Khoảng giá trị: Được biểu diễn trong khoảng minCardinality và
maxCardinality. Trong OWL Lite, giá trị nguyên có thể gán là 0 và 1.
Ví dụ minh họa:
23



Một số các đặc điểm mở rộng của OWL DL và OWL Full:
o oneOf: Các lớp có thể được mô tả bằng một bảng liệt kê các thể hiện tạo
nên lớp đó. Ví dụ, lớp daysOfWeek có các thể hiện là Sunday, Monday,
Tuesday, Wednesday, Thursday, Friday, Saturday. Xét ví dụ:




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

chỉ xin trình bày những cấu trúc từ vựng thường dùng nhất và để thuận tiện cho
chuyển đổi từ mô hình UML sang OWL Ontology, tôi sẽ sử dụng OWL DL.

1.4. OWL Ontolgogy
OWL Ontology cũng có thể hiểu là một ngôn ngữ hay một tập các quy tắc
để mô tả một cách tường mình các khái niệm và các quan hệ giữa các khái niệm
để hỗ trợ tương tác giữa các hệ thống được sử dụng trong khoa học máy tính hay
công nghệ thông tin. Nó sẽ cung cấp một bộ từ vựng để xây dựng các khái niệm,
các thuộc tính quan trọng. Ngoài ra, OWL Ontology còn cung cấp các mối ràng
buộc được sử dụng trong một miền lĩnh vực nào đó để có thể giao tiếp giữa
người với một hệ thống ứng dụng phân tán khác.

×