Ontology được sử dụng rộng rãi trong công nghệ tri thức, trí tuệ nhân tạo, và khoa học máy tính trong các ứng dụng liên quan đến quản lý tri thức, xử lýngôn ngữ tự nhiên, thương mại điện
Trang 1Đại học Công Nghệ Thông Tin
Giáo viên hướng dẫn: PGS.TS ĐỖ VĂN NHƠN
Học viên thực hiện: CH1301020 - Hồ Văn Linh
Ngày 25 tháng 03 năm 2014
Trang 2LỜI CÁM ƠN
Em xin gởi lời cám ơn chân thành đến Thầy PGS TS Đỗ Văn Nhơn
đã giảng dạy và hướng dẫn chúng em tận tình trong suốt thời gian môn học Biểu diễn tri thức và suy luận và đó là kiến thức rất quý báu và hữu ích cho em.
Do thời gian hạn chế, bài thu hoạch còn nhiều thiếu sót Rất mong nhận được ý kiến đóng góp của Thầy!
Xin chân thành cảm ơn !
Trang 3MỤC LỤC
CHƯƠNG I - TÌM HIỂU ONTOLOGY 5
1.1 Khái niệm Ontology 5
1.1.1 Ontology là gì? 5
1.1.2 Yêu cầu khi xây dựng ontology 6
1.1.3 Các thành phần của ontology 6
1.1.4 Giới hạn trong sức mạnh biểu diễn của RDF/RDFS 7
1.1.5 Ngôn ngữ OWL 8
1.2 Phương pháp xây dựng Ontology 9
1.2.1 Quy trình phát triển Ontology 9
1.2.2 Công cụ phát triển ontology 12
1.3 Các ngôn ngữ truy vấn Ontology 14
1.3.1 Giới thiệu 14
1.3.2 Các dạng câu truy vấn 14
1.4 Xây dựng Ontology cho Elearning 21
1.4.1 Mô tả Ontology 21
1.4.2 Sử dụng Protégé tạo Ontology 22
1.5 Cơ sở dữ liệu cho elearning 27
1.5.1 Mô hình quan niệm 27
1.5.2 Đặc tả dữ liệu và từ điển dữ liệu 27
1.6 Mô hình Use-Case 29
CHƯƠNG II - TÌM HIỂU VỀ WEB NGỮ NGHĨA (SEMATIC WEB) 32
2.1 Tổng quan về Semantic Web 32
2.2 Sự ra đời của Semantic Web 32
2.3 Semantic Web là gì? 32
2.4 Kiến trúc Semantic Web 35
2.4.1 Giới thiệu 35
2.5 Vai trò các lớp trong kiến trúc Semantic Web 36
2.5.1 Lớp định danh tài nguyên-URI 36
Trang 42.5.2 Lớp XML và XML Schema 37
2.5.3 Lớp RDF - RDF Schema 39
2.5.4 Lớp Ontology 40
2.5.5 Lớp logic 41
2.5.6 Lớp Proof 41
2.5.7 Lớp Trust 42
2.6 Các ngôn ngữ Semantic Web 42
CHƯƠNG III- KẾT LUẬN 52
3.6 Kết quả đạt được 52
3.2 Các mặt hạn chế: 52
3.3 Hướng phát triển: 52
TÀI LIỆU THAM KHẢO 53
Trang 5CHƯƠNG I - TÌM HIỂU ONTOLOGY
1.1.1 Ontology là gì?
Trước hết ta cần phải biết Ontology là gì? Nói một cách đơn giản ontology
là tập từ vựng để mô hình hóa thế giới bên ngoài, nó đưa ra các khái niệm cơbản và định nghĩa quan hệ giữa các khái niệm đó trong một miền lĩnh vực.Đồng thời ontology còn cung cấp các ràng buộc, là các giả định cơ sở về ýnghĩa mong muốn của bộ từ vựng
Ontology được xây dựng nhằm các mục đích sau:
Chia sẻ hiểu biết chung về cấu trúc thông tin giữa con người và phầnmềm agent
Sử dụng lại tri thức về một miền lĩnh vực đã được xây dựng từ trước
Trang 6
Hình 1-1 Trao đổi thông tin thông qua Ontology
Trong hình trên ta thấy các ứng dụng khác nhau, muốn trao đổi thông tinvới nhau thì cần phải có một tri thức chung, vì vậy các ứng dụng này đểu sửdụng một ontology để có thể chia sẻ tri thức cho nhau
Ontology được sử dụng rộng rãi trong công nghệ tri thức, trí tuệ nhân tạo,
và khoa học máy tính trong các ứng dụng liên quan đến quản lý tri thức, xử lýngôn ngữ tự nhiên, thương mại điện tử, tích hợp thông tin, tìm kiếm thông tin,thiết kế cơ sở dữ liệu…
1.1.2 Yêu c u khi xây d ng ontology ầu khi xây dựng ontology ựng ontology
Ngôn ngữ ontology cho phép người sử dụng viết rõ ràng, các khái niệm hình thức của mô hình miền Các yêu cầu chính:
Cấu trúc rõ ràng: đây là điều kiện cần cho máy có thể xử lý thông tin
Ngữ nghĩa hình thức miêu tả ý nghĩa tri thức một cách chính xác: Ý nghĩa
của ngữ nghĩa hình thức tồn tại trong một thời gian dài trong miền toán logic.Việc sử dụng ngữ nghĩa hình thức cho phép con người suy diễn tri thức Vớitri thức trong ontology chúng ta có thể suy diễn về:
oThành viên của lớp: Nếu x là một thể hiện của lớp C và C là lớp con của
lớp D thì chúng ta có x là thể hiện của lớp D
oCác lớp tương đương: Nếu lớp A tương đương với lớp B và lớp B
tương đương với lớp C, thì lớp A cũng tương đương với lớp C
oTính nhất quán: Giả sử chúng ta khai báo x là thể hiện của lớp A và A là
lớp con của B∩ C, A là lớp con của lớp D, Lớp B và lớp D không có quan
hệ với nhau (disjoint) Thì chúng ta không nhất quán bởi vì A nên là rỗngnhưng lại có thể hiện là x Đây là một dấu hiệu của một lỗi trong ontology
oPhân loại : nếu chúng ta khai báo các cặp thuộc tính giá trị đã biết là điều
kiện đủ cho thành viên trong một lớp A, thì nếu một cá thể x thỏa mãn cácđiều kiện, chúng ta có thể kết luận x phải là một thể hiện của A
Ngữ nghĩa là điều kiện tiên quyết cho việc hỗ trợ suy diễn: Hỗ trợ suy diễn
rất quan trọng bởi vì nó cho phép kiểm tra tính nhất quán của ontology và trithức, kiểm tra các quan hệ thừa giữa các lớp, tự động phân loại các thể hiệntrong lớp
Trang 7Ngữ nghĩa hình thức và hỗ trợ suy diễn thường được cung cấp bởi việcánh xạ một ngôn ngữ ontology đến hình thức logic và sử dụng suy diễn tựđộng bởi các hình thức luôn tồn tại OWL được ánh xạ logic miêu tả và sửdụng các suy diễn đang tồn tại như FaCT và RACER Các logic mô tả là tậpcon của logic vị từ nhằm hỗ trợ suy diễn hiệu quả.
1.1.3 Các thành ph n c a ontology ầu khi xây dựng ontology ủa ontology
Ontology được sử dụng như là một biểu mẫu trình bày tri thức về thếgiới hay một phần của nó Ontology thường miêu tả:
Cá thể (Individuals) – Thể hiện
Cá thể là thành phần cơ bản của một ontology Các cá thể trong mộtontology có thể bao gồm các đối tượng rời rạc như xe, con cọp , cũng nhưcác đối tượng trừu tượng như con số và từ
Lớp (Classes) - Khái niệm
Lớp là những nhóm, bộ hoặc tập hợp các đối tượng Một lớp có thể gộpnhiều lớp hoặc được gộp vào lớp khác Một lớp gộp vào lớp khác được gọi làlớp con của lớp gộp Điều quan trọng của quan hệ xếp gộp là tính kế thừa
Thuộc tính (Properties)
Các đối tượng trong ontology có thể được mô tả thông qua việc khaibá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ủathuộc tính đó Các thuộc tính được sử dụng để lưu trữ các thông tin mà đốitượ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
Mối quan hệ (Relation)
Quan hệ giữa các đối tượng trong một ontology cho biết các đối tượngliên hệ với đối tượng khác như thế nào Sức mạnh của ontolgy nằm ở khảnăng diễn đạt quan hệ Tập hợp các quan hệ cùng nhau mô tả ngữ nghĩa củadomain Tập các dạng quan hệ được sử dụng và cây phân loại thứ bậc củachúng thể hiện sức mạnh diễn đạt của ngôn ngữ dùng để biểu diễn ontology Ontology thường phân biệt các nhóm quan hệ khác nhau Ví dụ:
Trang 81.1.4 Giới hạn trong sức mạnh biểu diễn của RDF/RDFS
RDF và RDFS cho phép biểu diễn một vài tri thức ontology Mô hình
cơ bản của RDF/RDFS liên quan đến tổ chức bộ từ vựng trong việc phân cấp:các quan hệ lớp con, thuộc tính con, các ràng buộc domain và range, các thểhiện của lớp Tuy nhiên một số các đặc điểm bị thiếu Ví dụ như:
Tách rời các lớp: Thỉnh thoảng chúng ta muốn chỉ ra các lớp tách rời nhau.
Ví dụ lớp Male và lớp Female là tách rời, nhưng trong RDFS chúng ta chỉ có thể để ở quan hệ lớp con, ví dụ: Female là lớp con của lớp Person
Phạm vi giá trị của thuộc tính: rdfs:range định nghĩa dải giá trị của thuộc
tính áp dụng cho tất cả các lớp Vì vậy trong RDF Schema chúng ta không thểkhai báo các ràng buộc với dải giá trị chỉ áp dụng với một vài lớp nhất định Ví
dụ, trong RDFS chúng ta không thể định nghĩa bò chỉ ăn cỏ, trong khi các loàiđộng vật khác cũng có thể ăn cỏ
Kết hợp các lớp với nhau: Đôi khi chúng ta muốn xây dụng một lớp mới
được tạo ra từ việc kết hợp các lớp khác sử dụng hợp hoặc giao hoặc bù Ví
dụ chúng ta có thể định nghĩa lớp Person bằng việc hợp hai lớp phân biệt là
Male và Female RDF Schema không cho phép chúng ta định nghĩa như vậy.
Các ràng buộc về lực lượng: Chúng ta muốn các ràng buộc bao nhiêu giá
trị thuộc tính phân biệt có thể có hoặc bắt buộc Ví dụ: Chúng ta thích nóirằng một người có đúng hai cha mẹ, hoặc một khóa học được dạy bởi ít nhấtmột giảng viên Kiểu ràng buộc này không thể biểu diễn trong RDF Schemađược
Các đặc điểm cụ thể của thuộc tính: Nó hữu ích khi nói một thuộc tính là
bắc cầu (ví dụ “Lớn hơn”), hoặc duy nhất (“là mẹ của”), hoặc nghịch đảo của thuộc tính khác (như thuộc tính “là mẹ của”, và thuộc tính “là con của”)
Vì những hạn chế này mà chúng ta cần một ngôn ngữ ontology giàu có hơn(cách biểu diễn phong phú ) RDF Schema Trong thiết kế một ngôn ngữ nênchú ý đến sự cân bằng giữa sức mạnh biểu diễn và hỗ trợ suy diễn hiệu quả.Nên ngôn ngữ ontology cho web (OWL – Ontology Web Language) ra đời.OWL đưa ra tiêu chuẩn cho ontology sử dụng trong web Mục đích chính củaOWL là sẽ cung cấp các chuẩn để tạo ra một nền tảng để quản lý tài nguyên,
để chia sẻ cũng như tái sử dụng dữ liệu trên Web
1.1.5 Ngôn ngữ OWL
OWL (The Web Ontology Language) là một ngôn ngữ gần như XML dùng
để mô tả các hệ cơ sở tri thức OWL là một ngôn ngữ đánh dấu dùng để xuấtbản và chia sẻ dữ liệu trên Internet thông qua những mô hình dữ liệu gọi là
“ontology” Ontology mô tả một lĩnh vực (domain) và diễn tả những đối tượngtrong lĩnh vực đó cùng những mối quan hệ giữa các đối tượng này OWL là
Trang 9phần mở rộng về từ vựng của RDF và được kế thừa từ ngôn ngữ DAML+OILWeb ontology – một dự án được hỗ trợ bởi W3C OWL biểu diễn ý nghĩa củacác thuật ngữ trong các từ vựng và mối liên hệ giữa các thuật ngữ này đểđảm bảo phù hợp với quá trình xử lý bởi các phần mềm.
OWL được xem như là một kỹ thuật trọng yếu để cài đặt cho SemanticWeb trong tương lai OWL được thiết kế đặc biệt để cung cấp một cách thứcthông dụng trong việc xử lý nội dung thông tin của Web Ngôn ngữ này được
kỳ vọng rằng sẽ cho phép các hệ thống máy tính có thể đọc được thay thế chocon người Vì OWL được viết bởi XML, các thông tin OWL có thể dễ dàng traođổi giữa các kiểu hệ thống máy tính khác nhau, sử dụng các hệ điều hành vàcác ngôn ngữ ứng dụng khác nhau Mục đích chính của OWL là sẽ cung cấpcác chuẩn để tạo ra một nền tảng để quản lý tài sản, tích hợp mức doanhnghiệp và để chia sẻ cũng như tái sử dụng dữ liệu trên Web OWL được pháttriển bởi nó có nhiều tiện lợi để biểu diễn ý nghĩa và ngữ nghĩa hơn so vớiXML, RDF và RDFS, và vì OWL ra đời sau các ngôn ngữ này, nó có khả năngbiểu diễn các nội dung mà máy có thể biểu diễn được trên Web
Các phiên bản của OWL: Hiện nay có ba loại OWL: OWL Lite, OWL DL(description logic), và OWL Full
OWL Lite: hỗ trợ cho 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 Ví dụ: Trong khi nó hỗ trợ các ràng buộc vềtập hợp, nó chỉ cho phép tập hợp giá trị của 0 hay 1 Điều này cho phép cungcấp các công cụ hỗ trợ OWL Lite dễ dàng hơn so với các bản khác
OWL DL (OWL Description Logic): hỗ trợ cho những người dùng cần sự
diễn cảm tối đa trong khi cần duy trì tính tính toán toàn vẹn (tất cả các kết luậnphải được đảm bảo để tính toán) và tính quyết định (tất cả các tính toán sẽ kếtthúc trong khoảng thời gian hạn chế) OWL DL bao gồm tất cả các cấu trúccủa ngôn ngữ OWL, nhưng chúng chỉ có thể được sử dụng với những hạnchế nào đó (Ví dụ: Trong khi một lớp có thể là một lớp con của rất nhiều lớp,một lớp không thể là một thể hiện của một lớp khác) OWL DL cũng được chỉđịnh theo sự tương ứng với logic mô tả, một lĩnh vực nghiên cứu trong logic
đã tạo nên sự thiết lập chính thức của OWL
OWL Full muốn đề cập tới những người dùng cần sự diễn cảm tối đa và sự
tự do của RDF mà không cần đảm bảo sự tính toán của các biểu thức Ví dụ,trong OWL Full, một lớp có thể được xem xét đồng thời như là một tập củacác cá thể và như là một cá thể trong chính bản thân nó OWL Full cho phépmột ontology gia cố thêm ý nghiã của các từ vựng được định nghĩa trước(RDF hoặc OWL)
Các phiên bản này tách biệt về các tiện ích khác nhau, OWL Lite là phiên bản
dễ hiểu nhất và phức tạp nhất là OWL Full
Trang 10Mối liên hệ giữa các ngôn ngữ con của OWL:
Mọi ontology hợp lệ dựa trên OWL Lite đều là ontology hợp lệ trên OWLDL
Mọi ontology hợp lệ dựa trên OWL DL đều là ontology hợp lệ trên OWLFull
Mọi kết luận hợp lệ dựa trên OWL Lite đều là kết luận hợp lệ trên OWL DL
Mọi kết luận hợp lệ dựa trên OWL DL đều là kết luận hợp lệ trên OWL Full
1.2 Phương pháp xây dựng Ontology
1.2.1 Quy trình phát triển Ontology
Trong những năm gần đây, một loạt các phương pháp luận khác nhauđược thiết kế để trợ giúp cho việc tiến hành phát triển các nhiệm vụ được báocáo trong tài liệu trí tuệ nhân tạo Các phương pháp truyền thống gồm Cyc(Lenat & Guha 1990), Uschold và King (Uschold $ King 1995), Gruninger vàFox (Gruninger $ Fox 1995), Kactus (Kactus 1996),và Methontology(Fernandez-Lopez, Gomes-Perez & Juritso 1997) Các phương pháp luậncung cấp các chỉ dẫn chung và có cấu trúc Nếu làm theo có thể tăng quy trìnhphát triển và cải tiến chất lượng cho kết quả cuối cùng Theo như đánh giáphương pháp luận “Methontology” là phương pháp luận thiết kế ontology phổbiến nhất (được hỗ trợ môi trường WebODE)
Quy trình phát triển Ontology là một quy trình gồm nhiều bước, tuynhiên vẫn chưa có một phương pháp chuẩn hóa nào để phát triển cácontology Quy trình phát triển gồm 7 bước do Stanford Center for BiomedicalInformatics Research đưa ra (đây là nhóm phát triển phần mềm Protégé đểtrình diễn và soạn thảo Ontology)
Bước 1: Xác định lĩnh vực và phạm vi của Ontology
Trong giai đoạn này cần xác định mục đích của việc xây dựng ontology
là gì? Phục vụ đối tượng nào? Ontology sắp xây dựng cần có đặc điểm gì, liênquan đến lĩnh vực, phạm vi nào Quá trình khai thác, quản lý và bảo trìontology được thực hiện ra sao?
Bước 2: Xem xét việc sử dụng lại các ontology có sẵn
Cấu trúc của một Ontology bao gồm 3 tầng: tầng trừu tượng (Abstract),tầng miền xác định (Domain) và tầng mở rộng (Extension) Trong đó tầng trừutượng có tính tái sử dụng rất cao, tầng miền xác định có thể tái sử dụng trongmột lĩnh vực nhất định Cộng đồng Ontology cũng đang lớn mạnh và có rấtnhiều Ontology đã được tạo ra, với tâm huyết của nhiều chuyên gia Do đótrước khi bắt đầu xây dựng ontology, cần xét đến khả năng sử dụng lại các
Trang 11ontology đã có Nếu có thể sử dụng lại một phần các ontology đã có, chi phí
bỏ ra cho quá trình xây dựng ontology sẽ giảm đi rất nhiều
Bước 3: Liệt kê các thuật ngữ quan trọng
Ontology được xây dựng trên cơ sở các khái niệm trong một lĩnh vực cụthể, vì vậy khi xây dựng ontology cần bắt đầu từ các thuật ngữ chuyên ngành
để xây dựng thành các lớp trong ontology tương ứng Tất nhiên không phảithuật ngữ nào cũng đưa vào ontology, vì chưa chắc đã định vị được cho thuậtngữ đó Do đó cần phải liệt kê các thuật ngữ, để xác định ngữ nghĩa cho cácthuật ngữ đó, cũng như cân nhắc về phạm vi của ontology Việc liệt kê cácthuật ngữ còn cho thấy được phần nào tổng quan về các khái niệm trong lĩnhvực đó, giúp cho các bước tiếp theo được thuận lợi
Bước 4: Xác định các lớp và phân cấp của các lớp
Công việc xác định các lớp không chỉ đơn giản là tiến hành tìm hiểu vềngữ nghĩa của các thuật ngữ đã có để có được các mô tả cho thuật ngữ đó,
mà còn phải định vị cho các lớp mới, loại bỏ ra khỏi ontology nếu nằm ngoàiphạm vi của ontology hay hợp nhất với các lớp đã có nếu có nhiều thuật ngữ
có ngữ nghĩa như nhau (đồng nghĩa, hay đa ngôn ngữ) Ngoài ra không phảithuật ngữ nào cũng mang tính chất như một lớp
Một công việc cần phải tiến hành song song với việc xác định các lớp làxác định phân cấp của các lớp đó Việc này giúp định vị các lớp dễ dàng hơn
Có một số phương pháp tiếp cận trong việc xác định phân cấp của cáclớp:
Phương pháp từ trên xuống (top-down): bắt đầu với định nghĩa của các
lớp tổng quát nhất trong lĩnh vực và sau đó chuyên biệt hóa các khái niệm đó
Ví dụ: Trong Ontology về quản lý nhân sự, ta bắt đầu với lớp Người, sau đóchuyên biệt hóa lớp Người đó bằng cách tạo ra các lớp con của lớp Ngườinhư: Kỹ sư, Công nhân, Bác sỹ,…Lớp Kỹ sư cũng có thể chuyên biệt hóabằng cách tạo ra các lớp con như Kỹ sư CNTT, Kỹ sư điện, Kỹ sư cơ khí,
Phương pháp từ dưới lên (bottom-up): bắt đầu với định nghĩa của các lớp
cụ thể nhất, như các lá trong cây phân cấp Sau đó gộp các lớp đó lại thànhcác khái tổng quát hơn Ví dụ: ta bắt đầu với việc định nghĩa các lớp như:nhân viên lễ tân, nhân viên vệ sinh, nhân viên kỹ thuật Sau đó tạo ra một lớpchung hơn cho các lớp đó là lớp nhân viên
Phương pháp kết hợp: kết hợp giữa phương pháp từ trên xuống và từ dưới
lên: bắt đầu từ định nghĩa các lớp dễ thấy trước và sau đó tổng quát hóa vàchuyên biệt hóa các lớp đó một cách thích hợp Ví dụ ta bắt đầu với lớp nhânviên trước, là thuật ngữ hay gặp nhất trong quản lý nhân sự Sau đó chúng ta
Trang 12có thể chuyên biệt hóa thành các lớp con: nhân viên lễ tân, nhân viên vệ sinh,
… hoặc tổng quát hóa lên thành lớp Người
Bước 5: Xác định các thuộc tính
Để xác định thuộc tính cho các lớp, ta quay trở lại danh sách các thuậtngữ đã liệt kê được Hầu hết các thuật ngữ còn lại (sau khi đã xác định lớp) làthuộc tính của các lớp đó Với mỗi thuộc tính tìm được, ta phải xác định xem
nó mô tả cho lớp nào Các thuộc tính đó sẽ trở thành thuộc tính của các lớpxác định Ví dụ lớp Người có các thuộc tính sau: Họ, Tên, Ngày sinh, Giớitính, Nghề nghiệp, Địa chỉ, Điện thoại,…
Bước 6: Xác định ràng buộc của các thuộc tính
Các thuộc tính có thể có nhiều khía cạnh khác nhau: như kiểu giá trị,các giá trị cho phép, số các thuộc tính (lực lượng), và các đặc trưng khác màgiá trị của thuộc tính có thể nhận Ví dụ: “Năm sinh” của một “nhân viên” chỉ códuy nhất và là số nguyên, có thể nhận giá trị từ 1948 đến 1990 Cần phải xácđịnh các ràng buộc cho một thuộc tính càng chặt chẽ càng tốt, để tránh trườnghợp nhập dữ liệu sai, dẫn đến đổ vỡ của các ứng dụng sử dụng Ontology này
Bước 7: Tạo các thể hiện / thực thể
Bước cuối cùng là tạo ra các thể hiện của các lớp trong sự phân cấp.Việc tạo thể hiện cho một lớp là quá trình điền các thông tin vào các thuộc tínhcủa lớp đó
1.2.2 Công cụ phát triển ontology
Một số công cụ phát triển và hiệu chỉnh có giá trị trong việc làm giảm độphức tạp và thời gian dùng cho nhiệm vụ xây dựng ontology Các công cụ nhưKaon, OileEd và Protégé cung cấp các giao diện nhằm giúp đỡ người sử dụngthực hiện các hoạt động chính yêu trong trong quá trình phát triển mộtontology Việc lựa chọn một công cụ hiệu chỉnh phù hợp nhất có nhiều khókhăn vì mỗi kiểu ontology có các yêu cầu về kinh phí, thời gian, tài nguyênkhác nhau Để giúp cho việc giải quyết vướng mắc này, Singh & Murshed(2005) đưa ra các tiêu chuẩn đánh giá công cụ tạo ontology Tiêu chuẩn baogồm tính năng, khả năng sử dụng lại, lưu trữ dữ liệu, mức độ phức tạp, quan
hệ, tính lâu bền, độ an toàn, độ chắc chắn, khả năng học, tính khả dụng, hiệulực, và tính rõ ràng Protégé và OntoEditFree được phát triển bởi Singh &Murshed sử dụng các tiêu chuẩn này
Trang 13Một số công cụ hiệu chỉnh Ontology phổ biến:
BẢNG 1-1 Các công cụ phát triển Ontology
Protégé hỗ trợ OWL, là công cụ được sử dụng rộng rãi và lâu nhất hiệnnay Nó cho phép người sử dụng định nghĩa và chỉnh sửa các lớp ontology,các thuộc tính và quan hệ và các thể hiện sử dụng cấu trúc cây Các ontology
có thể được đưa ra theo các định dạng RDF(S), XML Schema Platformprotégé cung cấp hai cách chính mô hình hóa ontology thông qua Protégé -Frame và Protégé – OWL, ngoài ra có thể có nhiều plugin Chúng ta có thểquan sát một cách trực quan thông qua OWL Viz, nó cho phép quan sátontology dưới dạng đồ họa và đưa file ảnh JPEG Ngoài ra còn hỗ trợ truyvấn SPARQL
Trang 14@prefix foaf: <http://xmlns.com/foaf/0.1/>
_:a foaf:name "Alice"
1.3 Các ngôn ngữ truy vấn Ontology
1.3.1 Gi i thi u ới thiệu ệu
RDF có thể được sử dụng để biểu diễn thông tin cá nhân, mạng xã hội,siêu dữ liệu về tài nguyên số cũng như cung cấp một số công cụ để tích hợptrên các nguồn thông tin khác nhau Đặc điểm này quyết định cú pháp và ngữnghĩa của ngôn ngữ truy vấn SPARQL dùng cho RDF
Ngôn ngữ truy vấn SPARQL được phát triển bởi nhóm RDF DataAccess Working Group-một phần trong hoạt động của Semantic Web và đãđược W3C-tổ chức chịu trách nhiệm xây dựng, quản lý đưa ra các chuẩn liênquan đến World Wide Web - khuyến nghị vào năm 2008
SPARQL có liên quan mật thiết đến thông số kỹ thuật sau:
- SPARQL Protocol for RDF [SPROT]: xác định giao thức từ xa để phát racác lệnh truy vấn và nhận kết quả trả về
- SPARQL Query Results XML Format [RESULTS]: Xác định định dạng vănbản XML để biểu diễn kết quả từ các truy vấn SPARQL SELECT và SPARQLASK
1.3.2 Các d ng câu truy v n ạng câu truy vấn ấn
SPARQL có 4 hình thức truy vấn Các hình thức truy vấn này sử dụng cáclời giải từ việc đối chiếu mẫu để tạo ra các kết quả hay còn gọi là các đồ thịRDF
1.3.2.1 Truy vấn SELECT
SelectQuery ::= 'SELECT' ( 'DISTINCT' | 'REDUCED' )? ( Var + | '*' )
DatasetClause * WhereClause SolutionModifier
Dạng truy vấn SELECT trả về các biến và các ràng buộc của chúng Cú
pháp SELECT * là một dạng viết tắt để chọn tất cả các biến trong một truy
vấn
Trang 15@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
<http://example.org/person#Alice> vcard:FN "Alice"
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
CONSTRUCT { <http://example.org/person#Alice> vcard:FN ?name }
WHERE { ?x foaf:name ?name }
@prefix foaf: <http://xmlns.com/foaf/0.1/>
_:a foaf:name "Alice"
_:a foaf:mbox <mailto:alice@example.org>
1.3.2.2 Truy vấn CONSTRUCT
Dạng truy vấn CONSTRUCT trả về một đồ thị RDF đơn được xác định bởi
một mẫu đồ thị Đồ thị RDF này được hình thành bằng cách lấy mỗi lời giảitruy vấn trong chuỗi lời giải thay thế cho các biến trong mẫu đồ thị, và kết nối
3 ba thành phần cấu thành RDF thành một đồ thị RDF duy nhất
Nếu bất kỳ một sự kết hợp nào mà tạo ra một bộ ba thành phần mà trong
đó có chứa một biến không điều kiện hoặc một RDF không hợp pháp, chẳnhạn một literal ở vị trí subject hoặc predicate thì khi đó bộ ba thành phần nàykhông được đưa vào trong đồ thị RDF đầu ra Mẫu đồ thị có thể chứa các bộ
ba thành phần mà không có biến (được xem như là đất hoặc bộ ba minhbạch), và các bộ ba này cũng xuất hiện trong đồ thị RDF đầu ra mà được trả
về bởi dạng truy vấn CONSTRUCT
Tạo ra các thuộc tính vcard từ thông tin FOAF:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?nameX ?nameY ?nickY
ConstructQuery ::= 'CONSTRUCT' ConstructTemplate
DatasetClause * WhereClause SolutionModifier
nameX nameY nickY
"Alice" "Bob"
"Alice" "Clare" "CT"
Trang 16@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
@prefix foaf: <http://xmlns.com/foaf/0.1/>
_:a foaf:givenname "Alice"
_:a foaf:family_name "Hacker"
_:b foaf:firstname "Bob"
_:b foaf:surname "Hacker"
CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <http://example.org/aGraph> { ?s ?p ?o } }
Các mẫu với các nút trống (blank node)
Một mẫu có thể tạo ra một đồ thị RDF có chứa các blank node Cácnhãn blank node xuất hiện trong một mẫu dành cho mỗi một lời giải Nếu nhãnnày xuất hiện 2 lần trong một mẫu thì sẽ có một blank node được tạo ra chomỗi lời giải truy vấn, nhưng sẽ có các blank node khác nhau cho các bộ bađược tạo ra bởi các lời giải truy vấn khác nhau
Tạo ra các thuộc tính vcard phù hợp với thông tin FOAF:
Việc sử dụng biến x trong mẫu, mà trong ví dụ này sẽ được ràng buộcvới các blank node với các nhãn _a: và _b: trong dữ liệu, gây ra bởi cácnhãn blank node khác nhau (_:v1 và _:v2) trong đồ thị kết quả RDF
Truy cập Đồ thị trong bộ dữ liệu Data RDF
Sử dụng CONSTRUCT, có thể kết xuất vài phần hoặc toàn bộ các đồthị từ tập hợp RDF đích Ví dụ đầu tiên trả về một đồ thị (nếu nó có trong tậphợp RDF) với nhãn IRI http://example.org/aGraph; nếu không có, nó sẽ trả vềmột đồ thị rỗng
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
Trang 17PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX site: <http://example.org/stats#>
CONSTRUCT { [] foaf:name ?name }
@prefix foaf: <http://xmlns.com/foaf/0.1/>
@prefix site: <http://example.org/stats#>
_:a foaf:name "Alice"
Trong đó app:customDate định nghĩa một chức năng mở rộng(extension function) để chuyển định dạng dữ liệu sang một RDFxsd:dateTime
Solution Modifiers and CONSTRUCT
Các solution modifiers (các bổ sung lời giải) của một truy vấn có ảnhhưởng đến kết quả của một truy vấn CONSTRUCT Trong ví dụ này, đồ thị kếtxuất từ mẫu CONSTRUCT được hình thành từ 2 trong số các lời giải củabảng đối chiếu mẫu Truy vấn này cho ra một đồ thị với tên của những người
có 2 trang WEB hàng đầu , đánh giá bởi lượt truy cập Ba thành phần trong đồthị RDF không được đặt lệnh
@prefix foaf: <http://xmlns.com/foaf/0.1/>
_:x foaf:name "Alice"
_:y foaf:name "Eve"
Trang 18PREFIX foaf: <http://xmlns.com/foaf/0.1/>
ASK { ?x foaf:name "Alice" ;
@prefix foaf: <http://xmlns.com/foaf/0.1/>
_:a foaf:name "Alice"
_:a foaf:homepage <http://work.example.org/alice/>
_:b foaf:name "Bob"
_:b foaf:mbox <mailto:bob@work.example>
1.3.2.3 Truy vấn AKS
AskQuery ::= 'ASK' DatasetClause * WhereClause
Có thể dùng truy vấn ASK để kiểm tra xem một mẫu truy vấn có lời giảihay không Không có thông tin về các lời giải truy vấn khả dĩ trả về mà chỉ tra
về là có lời giải đó tồn tại hay không mà thôi
Truy vấn SPARQL cho kết quả có dạng là XML :
Với cùng một dữ liệu, truy vấn sau đây trả về không phù hợp vì mboxcủa Alice không được đề cập
1.3.2.4 Truy vấn DESCRIBE
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
ASK { ?x foaf:name "Alice" }
DescribeQuery ::= 'DESCRIBE' ( DatasetClauseVarOrIRIref* WhereClause+ | '*' )? SolutionModifier
Trang 19PREFIX foaf: <http://xmlns.com/foaf/0.1/>
DESCRIBE ?x ?y <http://example.org/>
WHERE {?x foaf:knows ?y}
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
DESCRIBE ?x
WHERE { ?x foaf:name "Alice" }
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
DESCRIBE ?x
WHERE { ?x foaf:mbox <mailto:alice@org> }
DESCRIBE <http://example.org/>
Dạng truy vấn DESCRIBE trả về một đồ thị đơn RDF chứa dữ liệu RDF
về các nguồn tài nguyên Dữ liệu này không được xác định bởi một truy vấnSPARLQL, nơi đó khách hàng truy vấn cần phải biết cấu trúc của RDF trongnguồn dữ liệu, mà thay vào đó nó được xác định bởi bộ xử lý truy vấnSPARQL Mẫu truy vấn được sử dụng để tạo ra một tập hợp kết quả Dạngtruy vấn DESCRIBE lấy mỗi một tài nguyên xác định bởi một lời giải, cùng vớibất cứ tài nguyên nào được đặt tên bởi IRI, và hình thành nên một đồ thị đơnRDF bằng cách lấy một “mô tả” mà nó đến từ bất kỳ một thông tin sẵn có baogồm cả tập dữ liệu đích RDF Sự mô tả này được xác định bởi dịch vụ truyvấn Cú pháp DESCRIBE* là một dạng viết tắt mô tả tất cả các biến trong mộttruy vấn
Thuộc tính foaf:mbox được xác định như là một thuộc tính chức năngtrong trong từ vựng FOAF Khi được quy định như vậy thì truy vấn này sẽ trả
về thông tin về một người Tuy nhiên, nếu mẫu truy vấn có nhiều lời giải, dữliệu RDF cho mỗi lời giải là sự hợp nhất của tất cả các mô tả của đồ thị RDF
Nhiều hơn một IRI hoặc một biến được cho dưới đây:
Trang 20PREFIX ent: <http://org.example.com/employees#>
DESCRIBE ?x WHERE { ?x ent:employeeId "1234" }
Descriptions of Resources
RDF được xác định bởi nhà xuất bản thông tin Thật là hữu ích khi nhàdich vụ có một tài nguyên RDF này có thể bao gồm cac tài nguyên khác:chẳng hạn như một Dữ liệu RDF cho một cuốn sách có thể bao gồm các chitiết về tác giả
Ví dụ có một truy vấn đơn giản sau:
Truy vấn này trả về một mô tả về nhân viên và một số chi tiết hữu íchkhác:
Trong đó bao gồm blank node để giới hạn cho từ vựng vcard vcard:N.Các cơ chế khác để quyết định thông tin nào để trả về kể cả Concise BoundedDescriptions (CBD)
Đối với một từ vựng như FOAF, mà tại đó các tài nguyên là các nodetrắng điển hình, việc trả về thông tin đầy đủ để định nghĩa một node chẳnghạn như InverseFunctionalProperty foaf: mbox_shalsum cũng như thông tinchẳng hạn tên và các thông tin chi tiết khác sẽ là phù hợp Trong ví dụ này,bảng đối chiếu của mệnh đề WHERE được trả về, nhưng điều này thì không
có yêu cầu
@prefix foaf: <http://xmlns.com/foaf/0.1/>
@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0>
@prefix exOrg: <http://org.example.com/employees#>
Trang 211.4 Xây dựng Ontology cho Elearning
1.4.1 Mô t Ontology ả Ontology
Hình 1.2 Ontology mô tả các tài nguyên học tập
Trang 21/54
Trang 221.4.2 S d ng Protégé t o Ontology ử dụng Protégé tạo Ontology ụng Protégé tạo Ontology ạng câu truy vấn
1.4.2.1 Mô hình các lớp:
HÌNH 1-3 Màn hình Ontology được tạo bằng công cụ Protégé 3.0
Trang 22/54
Trang 23Hình 1.4
Trang 23/54
Trang 24Dc: title Chapter 1: What is LILO?
Dc: description Chương 1: Giới thiệu về LILO Dcq:ispartof http://Linux/Bai2
El: Chuongke http://Linux/Bai2/LS01.html
Chuong:
About=http://Linux/
Bai2/LSG01.html
Trang 25li http://Linux/Bai2
el:thamkhao http://www.ibg.uu.se/maclinux/ el:kieubh http:// /elaearning.owl#Webpage MonHoc:
About=http://Linux
Trang 261.4.2.4 Ánh xạ dữ liệu ở dạng triple sang RDF/XML
Trang 26/54
Trang 271.5 Cơ sở dữ liệu cho elearning
1.5.1 Mô hình quan ni m ệu
1.5.2 Đ c t d li u và t đi n d li u ặc tả dữ liệu và từ điển dữ liệu ả Ontology ữ liệu và từ điển dữ liệu ệu ừ điển dữ liệu ển dữ liệu ữ liệu và từ điển dữ liệu ệu
1.5.2.1 Danh sách các bảng:
Trang 27/54