PHẦN II. Biểu diễn dữ liệu bằng RDF
(a) Giới thiệu mô hình dữ liệu
Tương tự như mô hình hướng đối tượng (object-oriented - OO), mô hình ngữ nghĩa (sematic) cũng sử dụng khái niệm class để mô tả nhóm các thực thể cùng tính chất và quan hệ. Trong hầu hết các mô hình hướng đối tượng một đối tượng là một thể hiện của một lớp bởi vì chúng nó được tạo bởi định nghĩa của lớp đó. Một khi một thể hiện được tạo ra nó sẽ chứa tất cả các thuộc tính và hành động của lớp tạo ra nó
Dữ liệu ngữ nghĩa, như chúng ta đã thấy nó tập trung vào mối quan hệ giữa các thực thể. Vì vậy mô hình ngữ nghĩa lại là mô hình hướng thuộc tính chứ không phải hướng đối tượng.
Các thực thể ngữ nghĩa không được sinh ra từ trong một lớp, mà chúng được hiểu là một thành phần của lớp dựa vào những thuộc tính của chúng cùng chung một nhóm. Chúng ta thấy phân biệt kiểu này thì quá chi tiết, nhưng việc tập trung vào các mối quan hệ sẽ cho mô hình trở nên tuyệt vời và mềm dẽo hơn.
Trong hê thống hướng đối tượng, một thuộc tính là 1 phần của lớp, một khi bạn biết đối tượng là nằm trong lớp nào bạn sẽ biết danh sách các thuộc tính của đối tượng đó. Trong hệ thống ngữ nghĩa, thuột tính được định nghĩa độc lập, một thuộc tính có thể khai báo nó thuộc kiểu tài nguyên nào ( resouce – tương tự class trong OO). Tập hợp các kiểu ( tài nguyên) sử dụng thuộc tính đó được gọi là domain ( lĩnh vực,phạm vi) của thuộc tính. Có nghĩa là một thuộc tính nằm có thể nằm trong nhiều kiểu khác nhau. Tương tự như vậy, tập hợp các giá trị của nó có thể nhận được thì gọi là range (miền xác định) của thuộc tính.
Hình 2-6: domain và range của thuôc tính thể hiện màu mắt (eye color)
Chúng ta hảy xem xét sự khác nhau giữa mô hình OO và mô hình ngữ nghĩa trong ví dụ đơn giản về màu mắt này.
Trong mô hình OO, eyeColor được định nghĩa bên trong lớp gọi là Animal (động vật chung chung), trong đó lớp Human (con người) là lớp kế thừa. Vì vậy con người cũng có eyeColor.
Trong mô hình ngữ nghĩa, chúng ta thể hiện eyeColor bằng một quan hệ gọi là hasEyeColor, quan hệ này có domain là Animal và Human với range là Color.
ex:hasEyeColor rdf:type rdf:Property . ex:hasEyeColor rdfs:domain ex:Animal . ex:hasEyeColor rdfs:domain ex:Human . ex:hasEyeColor rdfs:range ex:Color . và chúng ta nói Jamie có màu mắt blue với lệnh sau
<http://semprog.com/people/jamie> ex:hasEyeColor
<http://rdf.freebase.com/ns/en.blue> .
Mô hình cho ví dụ Movies
Để hiểu rõ hơn về ontology trên mô hình ngữ nghĩa, ta xem một ví dụ về Movies. Trong ví dụ này ta định nghĩa trước namespace sp là http://
www.semprog.com/film# để chỉ rõ các định nghĩa về URI trong Movies. Mô hình cơ bản về Movies đã thể hiện khá rõ ràng trong (hình 2-7), mà chúng ta đã tìm hiểu trong phần trước (hình 1-8).
Hình 2-7: đồ thị mô tả mô hình ngữ nghĩa của bộ phim Blade Runner.
Một số lưu ý về cách đặt tên:
+ Lớp phải là danh từ và chữ đầu tiên là chữ Hoa
+ Thuộc tính thường là vị từ,quan hệ có chữ cái đầu là thường
+ Đối tượng cụ thể phải đặt tên thường có dấu gạch dưới phân chia từ.
Chúng ta hãy tìm hiểu về hệ thống lớp và kế thừa của các loại tài nguyên trong mô hình trên (được hiểu là class). Nhìn vào hình 2-8 , chúng ta ai cung đã biết về khái niệm kế thừa, do đó ta không bàn thêm về nó nhiều ngoài việc lưu ý từ khóa rdfs:, nó là từ khóa chuẩn của rdf để mô tả schema của rdf.
Hình 2-8: hệ thống lớp cho Ontology
Quan tâm đên vấn đề chính mà chúng ta đã nói về Ontology đó là khái niệm
Hình 2-9: định nghĩa thuộc tính cho Ontolog
Nhìn vào hình 2-9 định nghĩa các thuộc tính trong mô hình,
Chúng ta thấy có một số khái niệm mới là owl:Class, owl:ObjectProperty, owl:DatatypeProperty là những kiểu lớp theo định dạng web ontology language – owl mà cũng ta sẽ tìm hiểu kỹ sau. Tuy nhiên nhìn vào tên Class chúng nó tả có thể hiểu nó phân làm 3 loại chính là Class tài nguyên, Class dành cho thuộc tính và Class dành cho phạm vi giá trị.
Xét thuộc tính sp:directedBy
+ có kiểu owl:ObjectProperty
+ rdfs:domain: phạm vi là phim, tức là đạo diễn thì chỉ có cho Film, nếu mở rộng nhạc kịch sân khấu hay gì đó thì nên bổ sung chúng vào thuộc tính này.
+ rdfs:range: miền giá trị của nó là những Director.
Tức là thuộc tính directedBy là một quan hệ giữa domain Film ( tức là film được đạo diễn). và thể hiện bằng giá trị là các director trong miền xác định.
Xét thuộc tính sp:name
+ rdfs:domain : sp:Object , tức là thuộc tính này có phạm vi cho tất cả các loại đối tượng tài nguyên trong hệ thống sp. Tất cả các loại đối tưỡng đều có thuộc tính này.
+ rdfs:range : miền xác định là chuỗi dữ liệu theo chuẩn xsd.
Sắp xếp lại các mối quan hệ
Nếu chúng ta bổ sung vào hệ thống thêm khái niệm Performance ( diễn) và Role (vai diễn) thì ta cần phải sử dụng tới Blank node mà chúng ta đã đề cập tới trong phần trước như hình 2-10.
Trong mô hình trước chúng ta chỉ nói về actor cho bộ phim, tuy nhiên để chi tiết hơn cần phải chỉ rõ actor này đóng vai gì trong quá trình diễn của ang ta. Như vậy ta phát sinh lớp khái niệm Performance ( một trình diễn, nghe hơi trừu tượng nhưng là để xác định rõ việc diễn xuất ) , Role ( vai diễn ) vào mô hình cùng với lớp Actor. Tuy nhiên cả nhóm 3 lớp khái niệm này lại cùng chung một nhóm liên quan đến diễn xuất nên ta buột phải tạo một Blank Node thay thế thể hiện nhóm này.
(b) Web Ontology Language (OWL)