1. Trang chủ
  2. » Luận Văn - Báo Cáo

chuyển đổi từ mô hình uml sang owl ontology và ứng dụng

105 703 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 105
Dung lượng 8,82 MB

Nội dung

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

Trang 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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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

đồ 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

Trang 11

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

Trang 12

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

Trang 13

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]

Trang 14

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

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:

Trang 15

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

Trang 16

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:

Trang 17

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

Trang 18

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

Trang 19

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

Trang 20

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

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

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:

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

Trang 21

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

rằng thuộc tính writerOf, và thuộc tính authorOf chỉ cùng một khái niệm

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

Trang 22

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ụ

Trang 23

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

Trang 24

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

Trang 25

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ư

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

Trang 26

Hay nói một cách ngắn gọn hơn, OWL Ontology là ontology được xây dựng

sử dụng OWL

1.4.1 Các phần tử trong OWL Ontology

o Các cá thể hay là các thể hiện (individuals):

Các cá thể là các thành phần cơ bản, nền tảng của một ontology Các

cá thể trong một ontology có thể bao gồm các đối tượng cụ thể như con người, động vật, cái bàn hoặc là các cá thể trừu tượng như các thành viên hay công ty v.v

o Các lớp hay là các khái niệm (Class):

Lớp là một nhóm, một tập hợp các đối tượng trừu tượng có chung các đặc tính nào đó Chúng có thể chứa các cá thể, các lớp khác, hay là sự phối hợp của cả hai Hầu hết các Ontology đều tập trung xây dựng các lớp được

tổ chức theo một cấu trúc phân cấp để mô tả các loại vật trong một miền lĩnh

vực cần quan tâm Ví dụ “sinh vật” là một lớp trong ngữ cảnh sinh vật học Bên dưới lớp này có thể có các lớp con ví dụ như lớp “động vật” và “thực

vật”

o Các thuộc tính (Properties)

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 với một cá nhân có thể có các thuộc tính:

Họ_tên, ngày_sinh, quê_quán, số_cmnd

Giá trị của một thuộc tính có thể có các kiểu dữ liệu phức tạp

o Các mối ràng buộc (Relation)

Các mối ràng buộc mô tả một số ràng buộc về ý nghĩa của các khái niệm và quan hệ với các khái niệm khác Chẳng hạn với tính chất

“Employee_ID” chẳng hạn, sẽ mỗi nhân viên chỉ có duy nhất một mã số

1.4.2 Một số công cụ hỗ trợ việc xây dựng OWL Ontology

Về mặt lý thuyết thì người ta có thể hoàn toàn xây dựng được một OWL Ontology mà không cần đến các công cụ để hỗ trợ, mà có thể thực hiện trực tiếp

và thủ công bằng các ngôn ngữ như OWL Tuy nhiên, nếu một Ontology có kích thước lớn và có cấu trúc phức tạp, thì việc thực hiện thủ công sẽ mất khá nhiểu thời gian và công sức Thêm vào đó, việc xây dựng nên một Ontology không chỉ đòi hỏi việc tao ra các cấu trúc phân cấp, định nghĩa các thuộc tính, ràng buộc, v.v mà nó còn liên quan đến việc kiểm tra tính đúng đắn và đầy đủ của Ontology, suy luận trên Ontology, v.v Vì vậy, các công cụ hỗ trợ sẽ làm giảm được thời gian xây dựng cũng như có thể kiểm chứng được mô hình Ontology Công cụ hỗ

Trang 27

trợ góp phần đắc lực trong việc xây dựng Ontology và ảnh hưởng rất lớn đến chất lượng của một hệ thống Ontology Sau đây là một số các công cụ hỗ trợ xây dựng OWL Ontology:

1.4.2.1 Protégé

Protégé là một bộ phần mềm mã nguồn mở Java nổi tiếng, được nghiên cứu

và phát triển từ năm 1978 do một nhóm nghiên cứu của Mark Musen, ĐH, Stanford, để quản lý thông tin trong lĩnh vực y học Mã nguồn của Protégé có thể được tìm thấy tại website:

http://smi-protege.stanford.edu/repos/protege/owl/trunk

Các ưu điểm của Protégé là:

o Đầu tiên, công cụ này hỗ trợ đầy đủ ba phiên bản của ngôn ngữ OWL là OWL Lite, OWL DL và OWL Full

o Thứ hai là, nhờ việc sử dụng mô hình hướng đối tượng của ngôn ngữ Java, Protégé tỏ ra rất hiệu quả trong việc mô hình các lớp, thực thể, và các mối quan hệ, v.v

o Thứ ba, giao diện thiết kế của nó có tính trực quan và tính tương tác cao Người sử dụng có thể định nghĩa các thành phần của Ontology bằng cách điền trực tiếp vào các form cho sẵn

o Thứ tư, nó cho phép biểu diễn trực quan Ontology dưới dạng các sơ đồ

o Thứ năm là nó cung cấp chức năng tìm kiếm lỗi, kiểm tra tính nhất quán và

đầy đủ của Ontology Để sử dụng, người thiết kế chọn chức năng Run

Ontology Test và Check Consistency

o Và cuối cùng, nó hỗ trợ sinh mã tự động Protégé cho phép chuyển Ontology thành mã nguồn RDF/XML, OWL, DIG, Java, EMF Java Interfaces, Java Schema Classes Các mã này có thể được nhúng trực tiếp vào ứng dụng và là đầu vào cho các thao tác trên Ontology khi cần

Ngoài ra, nó còn cung cấp đầy đủ chuẩn giao tiếp cho các Plug-in Và sau đây

là giao diện của Protégé 3.4:

Trang 28

Hình 1.8 Giao diện Protégé 3.4.4

Bên cạnh công cụ hỗ trợ xây dựng Ontology hữu hiệu như là Protégé, còn có một số công cụ khác, cũng hỗ trợ để xây dựng, và chỉnh sửa OWL Ontology rất trực quan và khá hiệu quả Một trong số đó là Altova Semantic Works

1.4.2.2 Altova SemanticWorks ® 2010

Altova SemanticWorks cung cấp sự hỗ trợ hiệu quả trong việc tạo ra và

chỉnh sửa những OWL Ontology một cách rất trực quan

Altova SemanticWorks ® 2010 hỗ trợ cả ba mức ngôn ngữ của OWL Sử dụng SemanticWorks, ta có thể tạo ra những ontology phức tạp một cách trực quan, có các biểu tượng trực quan, v.v

Altova SemanticWorks ® 2010 chia ra các thành phần khác nhau tạo nên một ontology thành năm mục: Classes (Các lớp), Properties (Thuộc tính), Instances (các ví dụ cụ thể), allDifferent và Ontologies Trong mục Classes, nó hiển thị tất cả các lớp của ontology và một phần cửa sổ hiện ra sẽ là danh sách các thuộc tính và những thể hiện của lớp đó Toàn bộ thuộc tính của ontology cũng được liệt kê trong mục Property, và có một cửa sổ ngăn cách là các mục liệt kê các miền của thuộc tính đó Tất cả các thể hiện của lớp được liệt kê trong mục Instances, còn mục allDifferent là danh sách các mục (items) phân biệt với nhau trong một ontology Và cuối cùng là mục Ontologies chứa tất cả các tài nguyên là các ontology, bao gồm các ontology đã được nhập vào file hiện tại

Trang 29

Công cụ này cung cấp cấu trúc kiểm tra xem OWL ontology có thể chuyển thành đặc tả RDF/XML, đồng thời, nó cũng hỗ trợ việc kiểm tra ngữ nghĩa trong OWL DL và OWL Lite, và đưa ra các danh sách lỗi hoặc xung đột

Hình 1.9 Giao diện Altova SematicWorks

Trang 30

Hình 1.10 Giao diện Altova SematicWorks

Hiện nay, còn rất nhiều công cụ có khả năng hỗ trợ tạo ra OWL Ontology, song Protégé là công cụ rất hữu ích để xây dựng một ontology một cách rất trực quan và được sử dụng khá phổ biến Nó hỗ trợ khá chi tiết về các lớp, thuộc tính

và mối quan hệ ràng buộc trong các ontology Do vậy, chúng tôi sẽ sử dụng công

cụ hỗ trợ Protégé 3.4 để tạo ra OWL Ontology trong bài khóa luận này Và sau đây là một ví dụ về một OWL Ontology biểu diễn một hệ thống các sinh vật bằng Protégé:

Trang 31

Hình 1.11 Các lớp và thuộc tính với các ràng buộc

Hình 1.12 Các thuộc tính

Trang 33

CHƯƠNG 2: CÁC QUY TẮC CHUYỂN ĐỔI

TỪ MÔ HÌNH UML SANG OWL

ONTOLOGY

2.1 Giới thiệu

Như đã giới thiệu ban đầu, bài toán được đặt ra là kiểm tra mô hình sau khi áp dụng thiết kế mẫu có thỏa mãn các tính chất cấu trúc của giải pháp mẫu hay không, nhờ vào việc chuyển đổi từ mô hình UML sang OWL và sử dụng Prolog để thể hiện các yếu tố ràng buộc trong mô hình Tuy nhiên, trong OWL không hỗ trợ đầy đủ các ràng buộc, liên kết mà các yếu tố trên mô hình UML thể hiện Ví dụ như công cụ không hỗ trợ việc biểu diễn phương thức trong các lớp, các liên kết, v.v Vì vậy, cần có các quy tắc chuyển đổi từ mô hình UML sang OWL để biến đổi một mô hình UML sang OWL sao cho đạt kết quả thật chính xác Và sau đây tôi xin trình bày một số quy tắc chuyển đổi

2.2 Quy tắc chuyển đổi từ mô hình UML sang OWL Ontology

BẢNG 5: BẢNG LIỆT KÊ CÁC QUY TẮC CHUYỂN ĐỔI

Gói (Package) owl:Ontology Được khai báo trong phần

đầu Lớp (Class)

owl:ObjectProperty Mỗi trường hợp có một

cách chuyển đổi khác nhau

Trang 34

Ràng buộc số lượng owl:cardinality

owl:minCardinality owl:maxCardinality

đổi theo cách riêng

Và sau đây là mô tả một cách chi tiết các quy tắc chuyển đổi từ UML sang OWL:

2.2.1 Gói (Package)

Gói là một nhóm các phần tử của mô hình gồm có các lớp, các quan hệ và các gói nhỏ hơn Gói được mô tả trong UML gồm có tên gói, có thể có các lớp,gói nhỏ khác và được kí hiệu như sau:

Hình 2.1 Kí hiệu gói

Biểu diễn trong OWL: owl: Ontology

Các thông tin về gói dữ liệu sẽ được khai báo ở ngay phần đầu của file OWL Ontology Các lớp trong gói sẽ chung một tên gói được khai báo trong phần đầu

Trang 35

là những hàm chưa được cài đặt nội dung thực hiện trong lớp chúng được khai báo, mà những hàm này sẽ được cài đặt trong các lớp con cháu sau đó ở các lớp

cụ thể

Ta có quy tắc chuyển đổi từ lớp cụ thể sang OWL Ontology như sau:

Hình 2.3 Kí hiệu Lớp UML

OWL: Class

Trang 36

2.2.2.2 Lớp ảo

UML:Abstract Class

OWL: owl:Class, DatatypeProperty:isAbtract

Trong OWL sẽ khai báo Lớp, với tên lớp là tên lớp ảo trong UML, và có

thuộc tính ‘isAbstract’ kiểu DatatypeProperty:Boolean, và giá trị cho thuộc tính này sẽ là ‘true’

Đối với lớp ảo, ta có ví dụ dưới đây, lớp Nhan Vien là lớp ảo, việc chuyển đổi sang OWL :

Hình 2.4 Ví dụ minh họa lớp ảo

2.2.3 Chú thích

UML: Comment , Note

OWL: owl:comment

Trang 37

2.2.4 Giao diện (Interface)

UML: Giao diện (Interface)

Giao diện là tập hợp những thao tác quan sát được từ bên ngoài của một lớp và/ hoặc một thành phần, không có nội dung cài đặt riêng lớp đó

OWL: owl:Class, rdfs:subClassOf

OWL sẽ định nghĩa giao diện như một lớp (owl:Class), và định nghĩa thêm lớp thừa kế lớp đó (rdfs:subClassOf) và có các thành phần để cài đặt lớp cha Ta xét ví dụ sau:

Hình 2.5 Ví dụ minh họa Interface

Ta sẽ định nghĩa giao diện “Person”:

Trang 38

Tổng quát hóa là đi từ các lớp dưới lên trên, sau đó hình thành lớp tổng quát (lớp trên, lớp cha), tức là cây cấu trúc từ lá đến gốc Khi đó tổng quát hóa chính là quan hệ kế thừa giữa các lớp Trong đó, lớp con (lớp dưới, lớp kế thừa hay lớp dẫn xuất) kế thừa trực tiếp các thuộc tính và các phương thức thuộc loại công khai (public), hay được bảo vệ (protected) của lớp cha (lớp trên hay lớp cơ sở)

Trong OWL sẽ được biểu diễn bằng owl:subClassOf Ta có ví dụ sau:

Hình 2.6 Minh họa quan hệ thừa kế

Lớp B thừa kế lớp A:

Ta sẽ định nghĩa lớp A, sau đó định nghĩa lớp B là lớp con của lớp A:

Ví dụ trên được chuyển sang OWL Ontology:

Khi muốn khai báo hai lớp con (B và C cùng thừa kế một lớp cha A) tách rời nhau thì ta sẽ sử dụng:

owl:disjointWith

2.2.6 Liên kết (Association)

UML : Mối quan hệ liên kết

OWL: owl:ObjectProperty

Trang 39

Một liên kết là một sự nối kết giữa các lớp, nó liên quan về ngữ nghĩa giữa các đối tượng của các lớp tham gia Lớp và liên hệ giữa các lớp là những công cụ rất mạnh mẽ cho việc mô hình hóa các hệ thống phức tạp, ví dụ như cấu trúc sản phẩm, cấu trúc văn bản và tất cả các cấu trúc thông tin khác

Ví dụ:

Hình 2.7 Lớp Author liên kết với lớp Computer

Theo nguyên tắc, khi chuyển liên kết sang OWL Ontology, thì liên kết sẽ được chuyển thành một thuộc tính đối tượng (kiểu ObjectProperty) Tùy từng loại liên kết thì có quy tắc chuyển khác nhau

2.2.6.1 Trường hợp Liên kết theo một hướng

Ví dụ:

Hình 2.8 Minh họa liên kết một hướng

Khi đó, trong OWL Ontology, tạo ra 2 lớp HTBanHang và PhieuBanHang, các thuộc tính của lớp tương ứng và thêm một thuộc tính đối tượng (ObjectProperty) là “Ghi_nhan” sẽ được tạo ra trong lớp HTBanHang để liên kết hai lớp HTBanHang và PhieuBanHang Trong trường hợp không có tên vai trò

Trang 40

2.2.6.2 Liên kết theo hai hướng

Với liên kết theo hai hướng, với mỗi liên kết ta cũng chuyển đổi tương tự như đối với liên kết theo 1 hướng Tùy vào chiều mũi tên mà ta có thuộc tính đối tượng của vai trò liên kết đó sẽ ở lớp nào, và thuộc tính đối tượng còn lại của vai trò liên kết có thể theo kiểu ngược lại (inverseOf) với thuộc tính của vai trò kia hoặc không Ví dụ:

Hình 2.9 Minh họa mối liên kết hai chiều

Ta sẽ xây dựng 2 lớp Customer và lớp Account, một thuộc tính đối tượng Holds thuộc lớp Customer, và thuộc tính Owned by thuộc lớp Account Thuộc tính Owned by theo kiểu đảo ngược với thuộc tính Holds Vì vậy, trong OWL, sơ

đồ trên sẽ được chuyển sang OWL như sau:

Ngày đăng: 17/02/2014, 22:51

HÌNH ẢNH LIÊN QUAN

Hình 1.3. Biểu đồ cộng tác của hệ thống Đặt Sách - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 1.3. Biểu đồ cộng tác của hệ thống Đặt Sách (Trang 12)
Hình 1.4. Biểu đồ lớp Thư Viện. [7] - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 1.4. Biểu đồ lớp Thư Viện. [7] (Trang 12)
Hình 2.6. Minh họa quan hệ thừa kế. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 2.6. Minh họa quan hệ thừa kế (Trang 38)
Hình 2.8.  Minh họa liên kết một hướng. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 2.8. Minh họa liên kết một hướng (Trang 39)
Hình 2.10. Lớp liên kết. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 2.10. Lớp liên kết (Trang 41)
Hình 2.11. Ví dụ minh họa các vai trò. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 2.11. Ví dụ minh họa các vai trò (Trang 42)
Hình 2.15. Minh họa mối sự phụ thuộc. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 2.15. Minh họa mối sự phụ thuộc (Trang 45)
Hình 2.16. Quan hệ phụ thuộc. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 2.16. Quan hệ phụ thuộc (Trang 46)
Hình 3.7 là kết quả của việc áp dụng đúng, các lớp trong mô hình thoả mãn tất - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 3.7 là kết quả của việc áp dụng đúng, các lớp trong mô hình thoả mãn tất (Trang 55)
Hình 3.7 .  Trường hợp áp dụng mẫu Composite đúng. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 3.7 Trường hợp áp dụng mẫu Composite đúng (Trang 55)
Hình  3.9  cũng  là  một  ví  dụ  về  áp  dụng  mẫu  sai  vì  lớp  Line,  Text,  Rectangle,  Image không thoả mãn các đặc trưng của lớp Leaf và Composite tương ứng - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
nh 3.9 cũng là một ví dụ về áp dụng mẫu sai vì lớp Line, Text, Rectangle, Image không thoả mãn các đặc trưng của lớp Leaf và Composite tương ứng (Trang 56)
Hình 3.10. Các bước trong quy trình kiểm tra. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 3.10. Các bước trong quy trình kiểm tra (Trang 58)
Hình 4.2. Biểu đồ lớp sau khi tinh chế áp dụng mẫu Union Pattern. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 4.2. Biểu đồ lớp sau khi tinh chế áp dụng mẫu Union Pattern (Trang 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é. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
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é (Trang 62)
Hình 4.5. Các thuộc tính của lớp Class. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 4.5. Các thuộc tính của lớp Class (Trang 62)
Hình 4.8. Thuộc tính lớp Parameter_Direction_Kind. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 4.8. Thuộc tính lớp Parameter_Direction_Kind (Trang 65)
Hình 4.10. Toàn bộ thuộc tính của các lớp. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 4.10. Toàn bộ thuộc tính của các lớp (Trang 66)
Hình 4.13. Các Thể hiện của lớp Parameter. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 4.13. Các Thể hiện của lớp Parameter (Trang 69)
Hình 4.20. Thể hiện của lớp Operation: phương thức makeSound của lớp Mammal. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 4.20. Thể hiện của lớp Operation: phương thức makeSound của lớp Mammal (Trang 73)
Hình 4.21. Thể hiện của lớp Operation: phương thức makeSound trong lớp Cat. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 4.21. Thể hiện của lớp Operation: phương thức makeSound trong lớp Cat (Trang 73)
Hình 4.22. Thể hiện của lớp Parameter. - chuyển đổi từ mô hình uml sang owl ontology và ứng dụng
Hình 4.22. Thể hiện của lớp Parameter (Trang 74)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w