Tải bản đầy đủ (.docx) (34 trang)

Bài giảng web ngữ nghĩa căn bản

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 (779.87 KB, 34 trang )

1. Web ngữ nghĩa là gì?
Tim Berners-Lee: Web có ngữ nghĩa là sự mở rộng của WEB hiện tại mà trong đó
thông tin được định nghĩa rỏ ràng sao cho con người và máy tính có thể cùng làm
việc với nhau một cách hiệu quả hơn. (Được định nghĩa để máy tính xử lý được,
tích hợp DL động; DL/tri thức được sử dụng lại thông qua các ứng dụng khác
nhau)
Theo định nghĩa của Tổ chức World Wide Web (W3C): “WebNN là một cách
nhìn về cách thức tổ chức dữ liệu: đó là ý tưởng về việc dữ liệu trên Web được
định nghĩa và liên kết theo một cách mà nó có thể được sử dụng bởi máy tính với
mục đích không chỉ cho việc hiển thị mà còn tự động hoá, tích hợp và sử dụng lại
dữ liệu qua các ứng dụng khác nhau”.
⇒Phân biệt WebNN với Trí tuệ nhân tạo: TTNT là làm cho máy tính thông
minh hơn còn WebNN là làm cho ứng dụng thông minh hơn (Biểu diễn thông tin,
DL theo cách nào đó để ứng dụng có thể hiêu được)
⇒Tại sao cần đến WebNN: Vấn đề chính với Web hiện nay là nội dung web
thiếu ngữ nghĩa, dẫn đến việc tìm kiếm DL trên web chủ yếu dựa vào keyword và
theo đó là:
-Tìm ra nhiều kết quả→tính chính xác thấp
-Không có kết quả nếu tìm quá chặt chẽ
-Kq rất phụ thuộc vào sự “nhạy cảm” của từ ngữ
-Người sử dụng phải tốn nhiều thời gian, công sức để xử lý kết quả trả về.
→Nói chung thao tác chủ yếu là thao tác trên nội dung thấy được. Quan trọng là
máy tính không hiểu được ngữ nghĩa của DL.
2. Kiến trúc của WebNN
Trong đó:
-Unicode và URI: cơ sở để xây dựng các tài liệu
-XML+NS+XMLschema: Công nghệ xây dựng tài liệu bán cấu trúc
-RDF và RDFs: mô tả siêu DL trên WebNN
-Ontology vocabulary: Mô tả các quan hệ cũng như các khái niệm trong miền ứng
dụng.
-Logic: Cơ sở để chuẩn hóa các khái niệm cho WebNN


-Proof và Trust: Là các ứng dụng cao cấp mà WebNN muốn đạt đến cho Web hiện
tại.
Trong đó:
-Unicode và URI: cơ sở để xây dựng các tài liệu
-XML: công nghệ xây dựng tài liệu bán cấu trúc.
-RDF: Chuẩn trao đổi siêu DL WebNN
-Ontology (RDFs, OWL) và ngôn ngữ các luật: Mô tả các quan hệ cũng như các
khái niệm trong miền ứng dụng và suy diễn của chúng.
+SPARQL: ngôn ngữ truy vấn cho DL RDF và ontology
-Đồng nhất về logic: cơ sở để chuẩn hóa các khái niệm cho WebNN
-Proof và Trust: Là các ứng dụng cao cấp mà WebNN muốn đạt đến ho web hiện
tại.
-Tầng trên cùng: Giao diện người dùng và các ứng dụng.
Giải thích chi tiết:
Từ sơ đồ kiến trúc của Web ngữ nghĩa, ta thấy có bảy tầng kiến trúc. Trong đó, với
hệ thống Web hiện tại (World Wide Web) là đang ở tầng thứ hai.
Unicode: là một bảng mã chuẩn chung có đủ các ký tự để thống nhất sự giao tiếp
trên tất cả các quốc gia, đáp ứng tính nhất quán toàn cầu của web.
URI (Uniform Resource Identifier): là kí hiệu nhận dạng Web đơn giản. Cụ thể,
nó là một xâu ngắn cho phép nhận dạng tài nguyên Web như: với các xâu bắt đầu
với "http:" hoặc "ftp:" mà chúng ta thường thấy trên World Wide Web. Bất kỳ một
người nào cũng có thể tạo một URI, và sở hữu chúng và chúng là một công nghệ
cơ sở để xây dựng một hệ thống Web toàn cầu. Hệ thống World Wide Web được
xây dựng trên chúng và bất kỳ cái gì mà có một URI thì được coi là "trên Web".
URL (Uniform Resource Locator): là một dạng đặc biệt của URI, cụ thể nó là
một địa chỉ trên mạng.
(URI (Uniform Resource Identifier) có thể hiểu là một chuỗi định danh tài nguyên
trên mạng. Mỗi một nguồn tài nguyên trên mạng sẽ có một địa chỉ duy nhất xác
định nó, đó chính là URI. Một dạng thức quen thuộc của URI là URL (Uniform
Resource Locator) được sử dụng để định danh một địa chỉ Web nào đó trên

Internet. Nói theo cách khác, URI là sự mở rộng của URL.)
RDF (Resource Description Framework): Khung mô tả tài nguyên - RDF được
W3C giới thiệu để cung cấp một cú pháp chuẩn để tạo, thay đổi và sử dụng các chú
thích trong Web ngữ nghĩa. Một mệnh đề RDF là một bộ ba có dạng: [chủđề
thuộctính đốitượng]. Trong đó, chủ đề là tài nguyên mà được mô tả bằng thuộc
tính và đối tượng. Thuộc tính thể hiện mối quan hệ giữa chủ đề và đối tượng. Còn
đối tượng ở đây có thể là một tài nguyên hoặc một giá trị. Ba thành phần trên trong
RDF đều là các URI.
RDFS (RDF schema): RDFS là một ngôn ngữ ontology đơn giản của web ngữ
nghĩa, được coi là một ngôn ngữ cơ sở của web ngữ nghĩa. RDFS là ngôn ngữ mô
tả bộ từ vựng trên các bộ ba RDF. Nó cung cấp các công việc sau:
- Định nghĩa các lớp tài nguyên
- Định nghĩa các quan hệ giữa các lớp
- Định nghĩa các loại thuộc tính mà các lớp trên có
- Định nghĩa các mối quan hệ giữa các thuộc tính.
Ontology Vocabulary: Bộ từ vựng ontology được xây dựng trên cơ sở tầng RDF
và RDFS, cung cấp biểu diễn ngữ nghĩa mềm dẻo cho tài nguyên web và có khả
năng hỗ trợ lập luận. Để xây dựng được các bộ từ vựng này, người ta đã sử dụng
các ngôn ngữ ontology để biểu diễn chúng như: RDFS, OIL, DAML, DAML+OIL,
OWL, Các ngôn ngữ này cung cấp khả năng biểu diễn và hỗ trợ lập luận khác
nhau và chúng dựa trên nền tảng là các ngôn ngữ logic mô tả tương ứng khác nhau.
Tầng Logic: Việc biểu diễn các tài nguyên dưới dạng các bộ từ vựng ontology có
mục đích là để máy có thể lập luận được. Mà cơ sở lập luận chủ yếu dựa vào logic.
Chính vì vậy mà các ontology được ánh xạ sang logic, cụ thể là logic mô tả để có
thể hỗ trợ lập luận. Vì logic mô tả có biểu diễn ngữ nghĩa hình thức (đặc trưng của
lý thuyết mô hình), và cung cấp các dịch vụ lập luận, là cơ sở để hỗ trợ máy có thể
lập luận và hiểu tài nguyên.
Tầng Proof: Tầng này đưa ra các luật để suy luận. Cụ thể từ các thông tin đã có ta
có thể suy ra các thông tin mới. Ví dụ: A là cha của B, A là em trai C thì khi đó ta
có thông tin mới là C là bác của B. Để có được các suy luận này thì cơ sở là FOL

(First-Order-Logic). Và tầng này hiện nay các nhà nghiên cứu đang xây dựng các
ngôn ngữ luật cho nó như: SWRL, RuleML.
Tầng Trust: Đảm bảo tính tin cậy của các ứng dụng trên Web ngữ nghĩa. Ví dụ:
có một người bảo x là xanh, một người khác lại nói x không xanh, như thế Web
ngữ nghĩa là không đáng tin cậy? Câu trả lời ở đây được xem xét trong các ngữ
cảnh. Mỗi ứng dụng trên web ngữ nghĩa sẽ có một ngữ cảnh cụ thể, chính vì thế
các mệnh đề trên có thể nằm trong các ngữ cảnh khác nhau khi đó ngữ nghĩa tương
ứng khác nhau nên các mệnh đề đó vẫn đúng, đáng tin cậy trong ngữ cảnh của nó.
Để có được sự chứng minh về độ tin cậy thì các lập luận được áp dụng là không
đơn điệu và có các cơ chế kiểm tra chứng minh kết hợp với công nghệ chữ ký điện
tử để xác nhận độ tin cậy. Các ngôn ngữ chứng minh là ngôn ngữ cho ta chứng
minh một mệnh đề là đúng hay sai.
3. RDF (Resource Description Framework): Khung mô tả tả tài nguyên
Khung mô tả tài nguyên (RDF) là một ngôn ngữ siêu dữ liệu để biểu diễn dữ
liệu trên Web và cung cấp một mô hình để mô tả và tạo các mối quan hệ giữa các
tài nguyên. RDF định nghĩa một nguồn tài nguyên (resource) như một đối tượng
bất kỳ có khả năng xác định duy nhất bởi một URI. Các nguồn tài nguyên có các
thuộc tính đi kèm. Các thuộc tính (predicate/property) được xác định bởi các kiểu
thuộc tính và các kiểu thuộc tính có các giá trị tương ứng. Kiểu thuộc tính biểu
diễn các mối quan hệ của các giá trị được kết hợp với các tài nguyên.
Mô hình dữ liệu của RDF là các bộ ba (triple) gồm: <Chủ thể, Thuộc-tính, Đối
tường>
• Chủ-thể (Subject): được xác định bởi URI cụ thể.
• Thuộc-tính (Predicate): thuộc tính của siêu dữ liệu, cũng được xác định bởi
một URI.
• Đối-tượng (Object): giá trị của thuộc tính, có thể là một giá trị (literal) hoặc
một URI.
Ví dụ: Dữ liệu về tên họ của một cá nhân có mã số (ID) xác định
RDF mô tả siêu dữ liệu về các tài nguyên trên Web. RDF dựa trên cú pháp XML tuy
nhiên XML chỉ mô tả dữ liệu, RDF còn có khả năng biểu diễn ngữ nghĩa giữa chúng

thông qua các tài nguyên được định danh bằng URI. Ở kỳ này chúng ta sẽ có một cái
nhìn cụ thể và bao quát hơn về RDF.
Thông tin và tri thức trên web ngữ nghĩa sử dụng liên kết URIs và RDF.
Giống như web của văn bản, web của dữ liệu được xây dựng dựa trên các tài
liệu trên web. Tuy nhiên, không giống web của văn bản, các liên kết là quan trên
văn bản biểu diễn dưới dạng HTML, web của dữ liệu liên kết các “thực thể được
đặt tên” thông qua RDF. URIs xác định các loại đối tượng và khái niệm.
RDF chính là nền tảng trung tâm của web ngữ nghĩa. Trong khi XML cung
cấp cú pháp để mã hóa dữ liệu thì RDF mô tả siêu dữ liệu về các tài nguyên trên
Web. RDF dựa trên cú pháp XML tuy nhiên XML chỉ mô tả dữ liệu, RDF còn có
khả năng biểu diễn ngữ nghĩa giữa chúng thông qua các tài nguyên định danh bằng
URI.
*Nguyên lý: Tim Berners- Lee tóm tắt 4 nguyên lý nền tảng cho hoạt động
của dữ liệu liên kết (Linked Data) trong bài báo “Design Issues: Linked Data”
(2006):
- Sử dụng các URIs để xác định, “đặt tên” các “thực thể”
- Sử dụng giao thức HTTP URI để con người có thể tìm kiếm, duyệt chúng
- Cung cấp thông tin hữu ích ( siêu dữ liệu, mô tả có cấu trúc) về các “thực thể
được đặt tên” đó khi URI của chúng được duyệt
- Chứa các liên kết đến các URIs khác liên quan trong dữ liệu vừa được duyệt giúp
có thể duyệt các thông tin khác liên quan.
Hiện tại có các định dạng cú pháp tuần tự hóa để cài đặt dữ liệu liên kết, chú
thích ngữ nghĩa như RDF, RDFa, RDF/XML, N3, Turtle
RDF - Resource Description Framework, định dạng dữ liệu cho phép mô tả
thực thể, tài nguyên và quan hệ nội tại giữa chúng bằng bộ ba đối tượng – thuộc
tính – giá trị ( subject – predicate – object).
RDFa (RDF – in – attributes) bổ sung tập các thuộc tính mở rộng cho
XHTML để nhúng siêu dữ liệu trong văn bản web.
N3 (Notation3): cú pháp phi XML của RDF, được thiết kế dễ đọc hơn so với
các chú thích RDF/XML. Turtle (Terse RDF Triple Language) định dạng tuần tự

hóa cho các đồ thị RDF, tập con của N3.
Ví dụ: Mô hình RDF được chú thích bằng XML chuẩn
3.1. Mô hình RDF
3.1.1. Namespace và Qualified name:
Namespace là một tập các tên( name) , được định danh bởi các URI, được sử
dụng trong các tài liệu XML như các element type và attribute name.
Một namespace được khai báo sử dụng một tập các thuộc tính có đã được
định nghĩa. Tên của một thuộc tính phải có xmlns hay xmlns: như là một tiếp đầu
ngữ.
Cách khai báo một namespace:
NSAttName ::= PrefixedAttName | DefaultAttName
PrefixedAttName ::= 'xmlns:' NCName
DefaultAttName ::= 'xmlns'
NCName ::= (Letter | '_') (NCNameChar)*
NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender
Qualified name (QName) bao gồm một tiếp đầu ngữ đã được gán trước đó
bởi một URI theo sau là dấu ‘:’ và tên cục bộ.
- Cách định nghĩa một QName
QName::= (Prefix ':')? LocalPart
Prefix::= NCName
LocalPart::= NCName
- Cách dùng QName đối với kiểu dữ liệu là element
STag::= '<' QName (S Attribute)* S?'>’
ETag::= '</' QName S? '>'
EmptyElemTag::= '<' QName (S Attribute)* S?'/>'
3.1.2. Bộ ba RDF (RDF triple)
Mô hình cơ bản của RDF gồm ba bộ phận sau:
- Tài nguyên (Resources) là tất cả những gì được mô tả bằng biểu thức RDF
- Thuộc tính (Properties) là đặc tính hay quan hệ mô tả tính chất tài nguyên
- Phát biểu (Statements) mỗi phát biểu gồm ba thành phần sau

+ Subject (chủ thể): địa chỉ hay vị trí tài nguyên muốn mô tả.
+ Predicate (thuộc tính): xác định tính chất của tài nguyên.
+ Object (đối tượng): nội dung gán cho thuộc tính.
Mỗi một mệnh đề (subject, predicate, object) còn gọi là một bộ ba (triple).
Ví dụ: Xét mệnh đề 1 Le Van Son works for Semantic Groups
Mệnh đề 2: “Le Van Son was born in 1948”
Mệnh đề 3: “Semantic Group is headquartered in Da Nang”
Các bộ ba liên kết với nhau tạo thành đồ thị RDF
Tập các triple hợp lại tạo thành đồ thị RDF (RDF Graph). Các node trong đồ thị có
thể là các subject và object trong triple và các cung (arc) trong đồ thị là các
predicate. Nên một triple còn có thể được mô tả dưới dạng node-arc-node. Hướng
của đồ thị rất quan trọng, cung của đồ thị luôn bắt đầu từ subject đến object.
3.1.3. Literal
Literal được sử dụng để biểu diễn các giá trị như con số, ngày tháng, chuỗi Bất
cứ cái gì có thể biểu diễn bởi một giá tri Literal cũng có thể được biểu diễn dưới
dạng một URI. Một Literal có thể là object của một phát biểu nhưng không thể là
subject hay là predicate.
Literal có hai kiểu sau: plain literal hay là typed literal.
- plain literal là một chuỗi được kết hợp với một tag tùy ý. Trong ngôn ngữ tự
nhiên ta có thể gọi nó là một kiểu text.
- typed literal hình thành bằng cách kết hợp một chuỗi với định danh URI để
biểu diễm kiểu dữ liệu đặc biệt nào nó. Kết quả trả về là một node trong đồ thị
tương tự như kiểu literal. Kiểu giá trị được biểu diễn bằng typed literal sẽ được ánh
xạ đến kiểu giá trị đặc biệt mà ta đã khai báo thông qua URI.
3.1.4 Kiểu dữ liệu có cấu trúc và Blank node
Hầu hết các dữ liệu trên Web đều liên quan đến các cấu trúc phức tạp.Trong ví dụ
trên ngày của trang web được tạo ra được khai báo bởi thuộc tính
exterms:creationdate, với một kiểu dữ liệu là plain literal.
Các mệnh đề RDF (bao gồm các cung và node) sau đó sẽ được biểu diễn ra trong
đồ thị với node mới vừa tạo là subject.

Xét đồ thị sau:
Có thể viết dưới dạng tripple như sau:
exstaff:85740 exterms:address exaddressid:85740 .
exaddressid:85740 exterms:street "1501 Grant Avenue" .
exaddressid:85740 exterms:city "Bedford" .
exaddressid:85740 exterms:state "Massachusetts" .
exaddressid:85740 exterms:postalCode "01730" .
Cách biểu diễn thông tin có cấu trúc như vậy đòi hỏi phải có một địa chỉ URI
exaddressid:85740 để mô tả khái niệm kết hợp( địa chỉ của Mr Joe). Những khái
niệm như thế này có thể không được sử dụng bởi các thành phần khác trong đồ thị
và chính vì vậy định danh này không cần thiết. Chính vì vậy ta nên dùng một node
trống (blank node) để biểu diễn node này.
Và có thể mô tả dưới dạng tripple như sau:
exstaff:85740 exterms:address ??? .
??? exterms:street "1501 Grant Avenue" .
??? exterms:city "Bedford" .
??? exterms:state "Massachusetts" .
??? exterms:postalCode "01730" .
??? để chỉ sự hiện diện của blank node. Trong trường hợp đồ thị sử dụng nhiều
blank node, để phân biệt các blank node ta dùng một định danh (blank node
identifiers), có dạng _:name, để chỉ sự hiện diện của một blank node. Ví dụ như,
trong ví dụ này định danh _:joeaddress được sử dụng để chỉ blank node (là địa chỉ
của Mr Joe). Viết lại tripple sau:
exstaff:85740 exterms:address _:joeaddress .
_:johnaddress exterms:street "1501 Grant Avenue" .
_:johnaddress exterms:city "Bedford" .
_:johnaddress exterms:state "Massachusetts" .
_:johnaddress exterms:postalCode "01730" .
3.2. Cấu trúc RDF/XML
Mô hình RDF thể hiện một mô hình ở mức trừu tượng để định nghĩa metadata. Cú

pháp RDF được dùng để tạo ra và trao đổi metadata. RDF dựa trên cú pháp XML.
Cú pháp cơ bản của RDF có dạng như sau:
[1] RDF ::= ['<rdf:RDF>'] description* ['</rdf:RDF>']
[2] description ::= '<rdf:Description' idAboutAttr? '>' propertyElt*
'</rdf:Description>'
[3] idAboutAttr ::= idAttr | aboutAttr
[4] aboutAttr ::= 'about="' URI-reference '"'
[5] idAttr ::= 'ID="' IDsymbol '"'
[6] propertyElt ::= '<' propName '>' value '</' propName '>'| '<' propName
resourceAttr '/>'
[7] propName ::= Qname
[8] value ::= description | string
[9] resourceAttr ::= 'resource="'tham chiếu URI'"'
[10] Qname ::= [ NSprefix ':' ] name
[11] URI-reference ::= string, interpreted per [URI]
[12] IDsymbol ::= (bất kỳ ID nào hợp lệ nào của XML)
[13] name ::= (bất kỳ tên hợp lệ nào của XML)
[14] NSprefix ::= (bất kỳ tiếp đầu ngữ namespace hợp lệ nào)
[15] string ::= (bất kỳ chuỗi nào)
Ví dụ : Xét phát biểu
ex:index.html exterms:creation-date "August 16, 1999" .
Cú pháp RDF/XML để biểu diễn cho phát biểu trên như sau:
1. <?xml version="1.0"?>
2. <rdf:RDF xmlns:rdf="
3. xmlns:exterms="
4. <rdf:Description rdf:about="
5. <exterms:creation-date>August 16, 1999</exterms:creation-date>
6. </rdf:Description>
7. </rdf:RDF>
Trong đó:

Dòng 1: là khai báo XML, cho biết nội dung theo sau dựa trên cú pháp XML và
phiên bản XML được dùng.
Dòng 2 và 3: bắt đầu với thẻ rdf:RDF , cho biết rằng nội dung XML tiếp
theo mô tả RDF. Từ khóa này xác định tài liệu này được biểu diễn dưới dạng RDF.
Tiếp theo là phần khai báo XML namespace được sử dụng trong tài liệu, tùy vào
nhu cầu và mục đích sử dụng mà ta có thể dùng các namespace khác nhau cho từng
tài liệu.
Dòng 4, 5, 6: mô tả những mệnh đề RDF. Để mô tả bất kỳ phát biểu nào
dạng RDF/XML có thể dùng rdf:Description, và rdf:about , đây chính là
subject của phát biểu. Thẻ bắt đầu rdf:Description trong dòng 4 cho biết bắt đầu
mô tả về một resource, và tiếp tục định danh resource này dùng thuộc tính
rdf:about để chỉ ra URI của subject resource. Dòng 5 cung cấp 1 phần tử thuộc
tính, với Qname exterms:creation-date như là thẻ của nó. Nội dung của phần tử
thuộc tính này là object của statement, có giá trị là kiểu plain literal “August 19,
1999 “.
Dòng 7: cho biết kết thúc của thẻ rdf:RDF bắt đầu ở dòng 2 và cũng là thẻ
kết thúc của tài liệu RDF
3.3. RDF Container
Để mô tả tập hợp của nhiều đối tượng như 1 quyển sách được viết bởi nhiều tác
giả, danh sách các học viên trong 1 khoá học, v.v RDF cung cấp nhiều kiểu và
nhiều thuộc tính tích hợp sẵn giúp mô tả được những tập như vậy, trong đó có kiểu
khai báo container, dùng để lưu danh sách các tài nguyên hoặc các kiểu giá trị. Các
phần tử của 1 container có thể là các tài nguyên URI (có thể là blank nodes) hay là
các giá trị literals.
RDF định nghĩa 3 loại đối tượng container: Bag, Sequence, và Alternative.
- Bag là danh sách không có thứ tự của các tài nguyên hoặc các giá trị. Bag cho
phép những giá trị có thể trùng lặp nhau.
- Sequence là danh sách có thứ tự của các tài nguyên hoặc các giá trị. Chẳng hạn
dùng Sequence để lưu trữ các giá trị theo thứ tự bảng chữ cái. Sequence cho phép
những giá trị có thể trùng lặp nhau.

- Alternative là một danh sách các tài nguyên hoặc các giá trị, được dùng để biểu
diễn các giá trị lựa chọn của một thuộc tính.
Ví dụ: Xét phát biểu sau
“Book with ISBN 978-0-596-15381-6 wrote by Toby Segaran, Colin Evans, Jamie
Taylor"
Có mô hình RDF là
Ta biểu diễn dưới dạng cú pháp RDF/XML như sau:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="
xmlns:c="
<rdf:Description rdf:about="
<c:creator>
<rdf:Bag>
<rdf:li rdf:resource="
<rdf:li rdf:resource="
<rdf:li rdf:resource="
</rdf:Bag>
</c:creator>
</rdf:Description>
</rdf:RDF>
3.4. RDF Collection
RDF Collection cho phép khai báo một tập hợp đóng, tương tự một danh sách, có
phần tử đầu (rdf:first), phần tử kế (rdf:rest) và phần tử cuối (rdf:nil).
Ví dụ: Xét phát biểu sau
“Book with ISBN 978-0-596-15381-6 wrote by Toby Segaran, Colin Evans, Jamie
Taylor"
Có mô hình RDF là
RDF / XML cung cấp một cách định nghĩa để mô tả một tập hợp, bằng cách sử
dụng một thuộc tính có attribute là rdf:parseType=”Collection”. Ta có thể viết lại
ví dụ trên một cách ngắn gọn hơn như sau:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="
xmlns:c="
<rdf:Description rdf:about="
<c:creator rdf:parseType="Collection">
<rdf:Description rdf:about="
<rdf:Description rdf:about="
<rdf:Description rdf:about=" Taylor"/>
</c:creator>
</rdf:Description>
</rdf:RDF>
4. Ontology
Thuật ngữ Ontology bắt nguồn từ triết học, nó được sử dụng như tên của một
lĩnh vực nghiên cứu về sự tồn tại của tự nhiên, xác định các vật thể trong tự nhiên
và làm thế nào để mô tả chúng. Chẳng hạn như quan sát thế giới thực, xác định các
đối tượng và sau đó nhóm chúng lại thành các lớp trừu tượng dựa trên thuộc tính
chung.
Tuy nhiên, trong những năm gần đây, Ontology đã trở thành một thuật ngữ được
biết đến nhiều trong lĩnh vực khoa học máy tính và có ý nghĩa khác xa so với nghĩa
ban đầu của nó. Ontology được xem như là “linh hồn” của WebNN. Chúng giúp
con người và máy có thể hợp tác, cùng nhau làm việc, giúp máy có thể “hiểu” và
có khả năng xử lý thông tin hiệu quả. Các Ontology được phát triển trong lĩnh vực
trí tuệ nhân tạo để sử dụng lại và chia xẻ tri thức được thuận tiện hơn. Đầu những
năm 1990, Ontology trở thành một chủ đề nghiên cứu phổ biến. Ontology được
nghiên cứu bởi một số cộng đồng nghiên cứu trí tuệ nhân tạo, bao gồm kỹ sư tri
thức, xử lý ngôn ngữ tự nhiên và biểu diễn tri thức.
Một định nghĩa chung cho ontology là: Ontology là một đặc tả hình thức của sự
khái niệm hóa về một lĩnh vực ứng dụng cụ thể. Định nghĩa này nhấn mạnh hai
điểm chính: sự khái niệm hóa (conceptualisation) là hình thức và do đó cho phép
suy diễn bởi máy tính; và một ontology trên thực tế được thiết kế cho một miền

ứng dụng cụ thể nào đó. Các ontology bao gồm các khái niệm (các lớp - classes),
các quan hệ (các thuộc tính - properties), các thể hiện (instances) và các tiên đề
(axioms).
Hình Ví dụ về Ontology
Xét ví dụ trên, ta có ba lớp Employee, Country và Publication, trong đó lớp
Employee có 2 thực thể LeVanSon và PhanHuyKhanh, cả hai thực thể này có quan
hệ đồng nghiệp với nhau. LeVanSon có thuộc tính là isCitizenOf thực thể Vietnam,
và thuộc tính hasWritten với thực thể NetworkProgramming.
4.1.Các thành phần ontology
Các ontology hiện nay đều có nhiều điểm tương tự về mặt cấu trúc, bất kể ngôn
ngữ được dùng để biểu diễn. Hầu hết các ontology đều mô tả các đối tượng (thực
thể), lớp (khái niệm), thuộc tính và các quan hệ.
4.1.1 Thực thể
Thực thể (instance) là phần cơ bản của một ontology. Các thực thể trong một
ontology có thể bao gồm các thực thể rời rạc như con người, con vật, xe, nguyên
tử, hành tinh, trang web, cũng như các đối tượng trừu tượng như con số và từ.
4.1.2 Lớp
Lớp (class) là những nhóm, bộ hoặc tập hợp các đối tượng. Lớp có thể phân loại
các thực thể, các lớp khác, hay một tổ hợp của cả hai.
Một lớp có thể cộng gộp nhiều lớp hoặc được gộp vào lớp khác; một lớp xếp gộp
vào lớp khác được gọi là lớp con (hay kiểu con) của lớp gộp (hay kiểu cha). Quan
hệ xếp gộp được dùng để tạo nên một cấu trúc phân cấp các lớp, thông thường có
một lớp tổng quát lớn nhất . Kết quả là tính kế thừa của các thuộc tính từ lớp cha
đến lớp con.
Một số ví dụ của lớp:
• Person, lớp của tất cả con người, hay các đối tượng trừu tượng có thể được
mô tả bởi các tiêu chuẩn làm một con người.
• Vehicle, lớp của tất cả xe cộ, hay các đối tượng trừu tượng có thể được mô
tả bởi các tiêu chuẩn làm một chiếc xe.
• Car, lớp của tất cả xe hơi, hay các đối tượng trừu tượng có thể được mô tả

bởi các tiêu chuẩn làm một chiếc xe hơi.
• Class, biểu diễn lớp tất cả các lớp, hay các đối tượng trừu tượng có thể được
mô tả bởi các tiêu chuẩn để làm một lớp.
• Thing, biểu diễn lớp tất cả mọi thứ, hay các đối tượng trừu tượng có thể
được mô tả bởi các tiêu chuẩn để làm một thứ gì đó (và không phải không-là-gì
cả).
5.1.3 Thuộc tính
Các thực thể trong một ontology có thể được mô tả bằng cách liên hệ chúng với
những thứ khác, thường là các đặc điểm riêng hay bộ phận gọi là thuộc tính. Một
thuộc tính có thể là một lớp hay một cá thể. Kiểu của đối tượng và kiểu của thuộc
tính xác định kiểu của quan hệ giữa chúng. Một quan hệ giữa một đối tượng và
một thuộc tính biểu diễn một sự kiện đặc thù cho đối tượng mà nó có liên hệ.
Các ontology chỉ mang đầy đủ ý nghĩa nếu các khái niệm có liên hệ với các khái
niệm khác (các khái niệm đều có thuộc tính). Nếu không rơi vào trường hợp này,
thì hoặc ta sẽ có một phân loại (nếu các quan hệ bao hàm tồn tại giữa các
khái niệm) hoặc một từ điển có kiểm soát. Những thứ này đều hữu ích nhưng
không được xem là ontology.
4.1.4. Quan hệ
Các thực thể trong một miền ontology có quan hệ sẽ cho biết các thực thể liên hệ
với thực thể khác như thế nào. Quan hệ là của một loại (hay lớp) cụ thể này chỉ rõ
trong ngữ cảnh nào thực thể được liên hệ với thực thể khác trong ontology.
Phần lớn sức mạnh của ontology 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ủa domain. Tập các dạng quan hệ được sử
dụng (lớp quan hệ) và cây phân loại thứ bậc của chúng thể hiện sức mạnh diễn đạt
của ngôn ngữ dùng để biểu diễn ontology.
Sự xuất hiện của quan hệ ‘là lớp con của’ tạo ra một cấu trúc phân cấp thứ bậc;
dạng cấu trúc cây này (hay tổng quát hơn, là tập có thứ tự từng phần) mô tả rõ ràng
cách thức các đối tượng liên hệ với nhau. Trong cấu trúc này, mỗi đối tượng là
‘con’ của một ‘lớp cha’ (Một số ngôn ngữ giới hạn quan hệ là lớp con của trong
phạm vi một cha cho mọi nút, nhưng đa số thì không như thế).

Một dạng quan hệ phổ biến khác là quan hệ meronymy, gọi là ‘bộ phận của’, biểu
diễn làm thế nào các đối tượng kết hợp với nhau đề tạo nên đối tượng tổng hợp.
Nếu đưa quan hệ meronymy vào ontology này, ta sẽ thấy rằng cấu trúc cây đơn
giản và nhẹ nhàng trước đó sẽ nhanh chóng trở nên phức tạp và cực kỳ khó hiểu.
Điều này không khó lý giải; một lớp nào đó được mô tả rằng luôn luôn có một
thành viên là bộ phận của một thành viên thuộc lớp khác thì lớp này cũng có thể có
một thành viên là bộ phận của lớp thứ ba. Kết quả là các lớp có thể là bộ phận của
nhiều hơn một lớp. Cấu trúc này được gọi là đồ thị chu trình có hướng.
Ngoài những quan hệ chuẩn như ‘là lớp con của’ và ‘được định nghĩa là bộ phận
của’, ontology thường chứa thêm một số dạng quan hệ làm trau chuốt hơn ngữ
nghĩa mà chúng mô hình hóa. Ontology thường phân biệt các nhóm quan hệ khác
nhau. Ví dụ nhóm các quan hệ về:
• Quan hệ giữa các lớp
• Quan hệ giữa các thực thể
• Quan hệ giữa một thực thể và một lớp
• Quan hệ giữa một đối tượng đơn và một tập hợp
• Quan hệ giữa các tập hợp.
Các dạng quan hệ đôi khi đặc thù chuyên ngành và do đó chỉ sử dụng để lưu trữ
các dạng sự kiện đặc thù hoặc trả lời cho những loại câu hỏi cụ thể. Nếu định nghĩa
của dạng quan hệ được chứa trong một
4.2. Vai trò cua ontogogy
Với ý nghĩa và cấu trúc như trên, Ontology đã trở thành một công cụ quan trọng
trong lĩnh vực. Web ngữ nghĩa. Có thể kể ra một số lợi ích của Ontology như:
Để chia sẻ những hiểu hiểu biết chung 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: đây là vai
trò quan trọng nhất của một Ontology, không những trong lĩnh vực Web ngữ
nghĩa mà còn trong nhiều ngành và lĩnh vực khác. Về phương diện này, có thể hình
dung Ontology giống như một cuốn từ điển chuyên ngành, cung cấp và giải thích
các thuật ngữ cho người không có cùng chuyên môn khi được yêu cầu. Không chỉ
được sử dụng bởi con người, Ontology còn hữu ích khi cần sự hợp tác giữa các hệ

thống phần mềm. Lấy ví dụ, Open Biological là bộ Ontology nổi tiếng được phát
triển bởi trường đại học Stanford nhằm cung cấp các thuật ngữ một cách đầy đủ
trong ngành sinh vật học. Ontology này hiện đã được tích hợp vào một số ứng
dụng Web trên Internet. Sau đó, một phần mềm tra cứu hoặc dạy sinh học trên máy
tính có thể kết nối với các ứng dụng Web trên để lấy thông tin cho mục tiêu chú
giải.
Cho phép tái sử dụng tri thức: đây là một vấn đề khó và là mục tiêu nghiên cứu
quan trọng trong những năm gần đây. Nó liên quan đến bài toán trộn hai hay nhiều
Ontology thành một Ontology lớn và đầy đủ hơn. Nhưng vấn đề ở đây là tên các
khái niệm được định nghĩa trong các Ontology này có thể giống nhau trong khi
chúng được dùng để mô tả các loại vật hoàn toàn khác nhau. Tuy nhiên cũng có thể
có trường hợp ngược lại, khi tên các khái niệm khác nhau nhưng cùng mô tả một
sự vật. Ngoài ra, làm thế nào để bổ sung các quan hệ, thuộc tính có sẵn vào một hệ
thống mới càng làm cho vấn đề trở nên phức tạp.
Cho phép tri thức độc lập với ngôn ngữ: đây cũng là vấn đề liên quan đến lĩnh
vực tái sử dụng tri thức đã nói ở trên, tuy nhiên bài toán của nó là làm thế nào để
một hệ thống Ontology có thể được dùng bởi các ngôn ngữ của các quốc gia khác
nhau mà không phải xây dựng lại. Giải pháp mà Ontology mang lại là cho phép tên
các khái niệm và quan hệ trong Ontology mới tham khảo các khái niệm, định nghĩa
của một hệ thống Ontology chuẩn thường được xây dựng bằng tiếng Anh. Điều
này có thể sẽ phá vỡ phần nào rào cản về mặt ngôn ngữ khi mà kết quả tìm kiếm sẽ
không bó gọn trong từ khóa và ngôn ngữ mà nó sử dụng. Ngoài ra, Ontology có thể
sẽ trở thành hướng đi mới cho một lĩnh vực đã quen thuộc là dịch tài liệu tự động.
Có thể nói như vậy, bởi ngữ nghĩa các từ vựng trong văn bản sẽ được dịch chính
xác hơn khi được ánh xạ vào đúng ngữ cảnh của nó.
Cho phép tri thức trở nên nhất quán và tường minh: các khái niệm khác nhau
trong một hay nhiều lĩnh vực cụ thể có thể cùng tên và gây nhập nhằng về ngữ
nghĩa, tuy nhiên khi được đưa vào một hệ thống Ontology thì tên mỗi khái niệm là
duy nhất. Một giải pháp cho vấn đề này là Ontology sẽ sử dụng các tham khảo URI
làm định danh thật sự cho khái niệm trong khi vẫn sử dụng các nhãn gợi nhớ bên

trên để thuận tiện cho người dùng.
Cung cấp một phương tiện cho công việc mô hình hóa: Ontology là một tập
các khái niệm phân cấp được liên kết với nhau bởi các quan hệ. Cơ bản mỗi khái
niệm có thể xem như là một lớp, mà đối tượng của lớp đó cùng các quan hệ đã góp
phần tạo nên cấu trúc của bài toán hay vấn đề cần giải quyết.
Cung cấp một phương tiện cho việc suy luận: hiện nay, một số ngôn ngữ
Ontology đã tích hợp lớp Ontology suy luận (Ontology Inference Layer) bên trong
cho mục đích suy luận logic trên tập quan hệ giữa các đối tượng trong hệ thống.
4.3. Xây Dựng Ontology
Có nhiều phương pháp khác nhau để xây dựng một Ontology, nhưng nhìn chung
các phương pháp đều thực hiện hai bước cơ bản là: xây dựng cấu trúc lớp phân
cấp và định nghĩa các thuộc tính cho lớp. Trong thực tế, việc phát triển một
Ontology để mô tả miền cần quan tâm là một công việc không đơn giản, phụ thuộc
rất nhiều vào công cụ sử dụng, tính chất, quy mô, sự thường xuyên biến đổi của
miền cũng như các quan hệ phức tạp trong đó. Những khó khăn này đòi hỏi công
việc xây dựng Ontology phải là một quá trình lặp đi lặp lại, mỗi lần lặp cải thiện và
tinh chế dần sản phẩm chứ không phải là một quy trình khung với các công đoạn
tách rời nhau.
Ngoài ra, công việc xây dựng Ontology cũng cần phải tính đến khả năng mở rộng
miền quan tâm trong tương lai, khả năng kế thừa các hệ thống Ontology có sẵn,
cũng như tính linh động để Ontology có khả năng mô tả tốt nhất các quan hệ phức
tạp trong thế giới thực. Nội dung chương này sẽ đề cập đến một số nguyên tắc cơ
bản của việc xây dựng Ontology qua các các công đoạn cụ thể sau đây:
• Xác định miền quan tâm và phạm vi của Ontology.
• Xem xét việc kế thừa các Ontology có sẵn.
• Liệt kê các thuật ngữ quan trọng trong Ontology.
• Xây dựng các lớp và cấu trúc lớp phân cấp.
• Định nghĩa các thuộc tính và quan hệ cho lớp.
• Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp.
• Tạo các thực thể cho lớp.

Bước 1, Xác định miền quan tâm và phạm vi của Ontology: Giống như mọi
công đoạn đặc tả khác, đặc tả Ontology bắt đầu bằng việc trả lời những câu hỏi
mang tính phân tích để nhận diện chính xác các yêu cầu. Thông thường, các yêu
cầu đối với một hệ thống Ontology là mô tả miền quan tâm nhằm phục vụ cơ sở tri
thức trong việc giải quyết những mục đích chuyên biệt. Do đó, những câu hỏi này
thường là:
• Ontology cần mô tả miền nào?
• Ontology phục vụ cho mục đích chuyên biệt gì?
• Cơ sở tri thức trong Ontology sẽ trả lời những câu hỏi gì?
• Ontology nhằm vục vụ đối tượng nào?
• Ai là người sẽ xây dựng, quản trị Ontology?
Nhìn chung, câu trả lời cho các câu hỏi dạng này có thể sẽ thường xuyên thay đổi
trong suốt quá trình lặp xây dựng một Ontology. Nhất là khi có sự thay đổi về mục
đích hoặc cần bổ sung tính năng trong việc sử dụng cơ sở tri thức. Tuy nhiên, việc
trả lời chính xác các câu hỏi trên tại mỗi bước lặp sẽ giúp giới hạn phạm vi thực sự
của mô hình cần mô tả và dự trù các kỹ thuật sẽ sử dụng trong quá trình phát triển.
Lấy ví dụ, nếu dự trù khả năng xảy ra sự khác biệt về ngôn ngữ giữa người phát
triển và người sử dụng thì Ontology phải được bổ sung cơ chế ánh xạ (mapping)
qua lại các thuật ngữ giữa các ngôn ngữ khác nhau. Hoặc giả sử Ontology cần xây
dựng có chức năng xử lý ngôn ngữ tự nhiên, ứng dụng dịch tài liệu tự động thì
cũng cần thiết phải có kỹ thuật xác định từ đồng nghĩa chẳng hạn.
Sau khi đã phát thảo phạm vi Ontology dựa trên việc trả lời những câu hỏi trên,
người thiết kế sẽ trả lời các câu hỏi mang tính đánh giá, qua đó tiếp tục tinh chỉnh
lại phạm vi của hệ thống cần xây dựng. Các câu hỏi dạng này thường dựa trên cơ
sở tri thức của Ontology và được gọi là câu hỏi kiểm chứng khả năng (competency
question):
• Ontology đã có đủ thông tin để trả lời cho các câu hỏi được quan tâm trên
cơ sở tri thức hay không?
• Câu trả lời của cơ sở tri thức đã đáp ứng được mức độ, yêu cầu nào của
người sử dụng?

• Các ràng buộc và quan hệ phức tạp trong miền quan tâm đã được biểu diễn
hợp lý chưa?
Bước 2, Xem xét việc kế thừa các Ontology có sẵn: đây là một công đoạn
thường hay sử dụng để giảm thiểu công sức xây dựng một Ontology. Bằng cách kế
thừa các Ontology tương tự có sẵn, người xây dựng có thể thêm hoặc bớt các lớp,
quan hệ giữa các lớp, thực thể để tinh chỉnh tùy theo mục đích của mình. Ngoài
ra, việc sử dụng lại các Ontology có sẵn cũng rất quan trọng khi cần sự tương tác
giữa các ứng dụng khác nhau. Lý do là các ứng dụng sẽ cần phải hiểu các lớp, thực
thể, quan hệ của nhau để thuận tiện trong việc trao đổi hoặc thông nhất thông tin.
Vấn đề xây dựng một Ontology mới bằng cách kế thừa các hệ thống có sẵn liên
quan đến một bài toán rất phức tạp là trộn (merging) các Ontology. Như đã nói
trong mục trước, tên các khái niệm được định nghĩa trong các Ontology này có thể
giống nhau trong khi chúng được dùng để mô tả các loại vật hoàn toàn khác nhau.
Trong khi đó, cũng có thể xảy ra trường hợp ngược lại, khi tên các khái niệm khác
nhau nhưng cùng mô tả một sự vật. Và một vấn đề nữa là làm thế nào để bổ sung
các quan hệ, thuộc tính có sẵn vào một hệ thống mới. Tuy nhiên, hầu hết các
Ontology sử dụng trong ngành khoa học máy tính nói chung và Web ngữ nghĩa nói
riêng đều được xây dựng trên các hệ thống xây dựng và quản trị Ontology. Có thể
kể tên một số công cụ, chẳng hạn: Sesame, Protégé, Ontolingua, Chimaera,
OntoEdit, OidEd Hiện nay, đa số các phần mềm này đều hỗ trợ chức năng tự
động trộn các Ontology cùng hoặc thậm chí khác định dạng với nhau. Mặc dù vậy,
ở mức nào đó, người xây dựng cũng cần phải kiểm tra lại một cách thủ công,
nhưng đây có lẽ cũng không phải là một công việc
phức tạp.
Hiện có rất nhiều Ontology được chia sẻ trên Web.
Có thể kể ra một số Ontology nổi tiếng như:
UNSPSC (www.unspsc.org) do Chương trình phát
triển của Liên Hiệp Quốc hợp tác với tổ chức Dun &
Bradstreet nhằm cung cấp các thuật ngữ của các sản
phẩm và dịch vụ thương mại. Các Ontology trong

lĩnh vực thương mại khác như: RosettaNet
(www.rosettanet.org), DMOZ (www.dmoz.org),
eClassOwl, Open Biological, BioPax trong lĩnh
vực sinh vật học, UMLS trong lĩnh vực mạng ngữ nghĩa, GO (Gene Ontology),
WordNet (đại học Princeton)
Bước 3, Liệt kê các thuật ngữ quan trọng trong Ontology: Đây là bước rất ích
hữu, làm tiền đề cho hai bước tiếp theo là xây dựng cấu trúc lớp phân cấp và định
nghĩa các thuộc tính cho lớp. Công đoạn này bắt đầu bằng việc liệt kê tất cả các
thuật ngữ xuất hiện trong miền quan tâm (có thể đồng nghĩa hoặc chồng nhau) như
tên khái niệm, quan hệ, thuộc tính Ví dụ, các thuật ngữ xuất hiện trong ví dụ
Ontology về sinh vật trong chương trước là: động vật, thực vật, cây hạt kín, chim,
thú, cộng sinh, cạnh tranh Thông thường, các thuật ngữ là danh từ sẽ trở thành
các lớp, tính từ sẽ trở thành thuộc tính, còn động từ sẽ là quan hệ giữa các lớp.
Bước 4, Xây dựng các lớp và cấu trúc lớp phân cấp: Như đã nói, đây là một
trong hai bước quan trọng nhất của công việc xây dựng một Ontology. Nhiệm vụ
của bước này là định nghĩa các lớp từ một số thuật ngữ đã liệt kê trong bước 3, sau
đó xây dựng cấu trúc lớp phân cấp theo quan hệ lớp cha-lớp con theo các phương
pháp phân loại đã đề cập trong chương 2. Lớp ở vị trí càng cao trong cấu trúc này
sẽ có mức độ tổng quát càng cao. Vị trí đầu tiên thuộc về lớp gốc, tiếp theo là các
lớp trung gian, và cuối cùng là lớp lá. Lớp lá là lớp không thể triển khai được nữa
và chỉ được biểu hiện bằng các thực thể.
Quan hệ giữa thực thể của lớp con với lớp cha nó trong mô hình phân cấp này là
quan hệ “is-a”. Nghĩa là một thực thể của lớp con cũng “là-một” thực thể
Nhìn chung, có nhiều hướng tiếp cận khác nhau cho vấn đề xây dựng cấu trúc lớp
phân cấp. Có thể kể ra ba hướng như sau:
• Hướng xây dựng từ trên xuống (top-down): bắt đầu bằng các lớp có mức
độ tổng quát cao nhất, sau đó triển khai dần đến lớp lá.
• Hướng xây dựng từ dưới lên (bottom-up): Ngược với hướng xây dựng cấu
trúc lớp phân cấp từ trên xuống, hướng này bắt đầu bằng việc xác định các
lớp được cho là cụ thể nhất, sau đó tổng quát hóa đến khi được lớp gốc.

• Cách kết hợp (combination): cách này kết hợp cả hai hướng xây dựng trên.
Đầu tiên chọn các lớp nổi bật nhất trong miền quan tâm, sau đó tổng quát
hóa và cụ thể hóa cho đến khi được cấu trúc mong muốn.
Bước 5, Định nghĩa các thuộc tính và quan hệ cho lớp: Bản thân các lớp nhận
được ở bước trên chỉ mới là những thuật ngữ phân biệt với nhau bằng tên gọi. Về
cơ bản, chúng chưa đủ để phục vụ cho việc biểu diễn tri thức. Muốn như vậy, các
thuộc tính của lớp cần được định nghĩa. Thuộc tính của lớp là các thông tin bên
trong của lớp, mô tả một khía cạnh nào đó của lớp và được dùng để phân biệt với
các lớp khác. Thuộc tính được chia làm nhiều loại khác nhau:
• Về mặt ý nghĩa, các thuộc tính có thể được chia làm hai loại: thuộc tính bên
trong (intrinsic property) và thuộc tính bên ngoài (extrinsic property). Thuộc
tính bên trong mô tả các tính chất nội tại bên trong sự vật, ví dụ: chất, lượng,
cấu tạo Trong khi đó, thuộc tính bên ngoài mô tả phần biểu hiện của sự vật,
ví dụ: màu sắc, hình dạng
• Về mặt giá trị, các thuộc tính cũng được chia làm hai loại: thuộc tính đơn
(simple property) và thuộc tính phức (complex property). Thuộc tính đơn là
các giá trị đơn ví dụ: chuỗi, số , còn thuộc tính phức có thể chứa hoặc tham
khảo đến một đối tượng khác.
Một chú ý quan trọng nữa trong bước này là việc một lớp sẽ kế thừa toàn bộ các
thuộc tính của tất cả các cha nó. Do đó, cần phải xem xét một thuộc tính đã được
định nghĩa ở các lớp thuộc mức cao hơn hay chưa. Thuộc tính chỉ nên được định
nghĩa khi nó là tính chất riêng của lớp đang xét mà không được biểu hiện ở các lớp
cao hơn.
Bước 6, Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp: Các ràng
buộc giới hạn giá trị mà một thuộc tính có thể nhận. Hai ràng buộc quan trọng nhất
đối với một thuộc tính là lượng số (cardinality) và kiểu (type). Ràng buộc lượng số
quy định số giá trị mà một thuộc tính có thể nhận. Hai giá trị thường thấy của ràng
buộc này là đơn trị (single) và đa trị (multiple). Nhưng một số phần mềm còn cho
phép định nghĩa chính xác khoảng giá trị của lượng số. Ràng buộc thứ hai là về
kiểu. Về cơ bản, các kiểu mà một thuộc tính có thể nhận là: chuỗi, số, boolean, liệt

kê và kiểu thực thể. Riêng kiểu thực thể có liên quan đến hai khái niệm gọi là:
miền (domain) và khoảng (range).
Khái niệm miền được dùng để chỉ
lớp (hay các lớp) mà một thuộc
tính thuộc về. Trong khi đó,
khoảng chính là lớp (hay các lớp)
làm kiểu cho giá trị thuộc tính
kiểu thực thể. Lấy ví dụ, lớp động
vật trong hình 4.1 có thuộc tính
“loại thức ăn” thuộc kiểu thực thể
(cỏ cây, côn trùng ). Lúc này, miền của loại thức ăn là động vật, sinh vật Còn
khoảng của nó chính là lớp cỏ, cây,
Bước 7, Tạo các thực thể cho lớp: Đây là bước cuối cùng khép lại một vòng lặp
xây dựng Ontology. Công việc chính lúc này là tạo thực thể cho mỗi lớp và gán giá
trị cho các thuộc tính. Nhìn chung, các thực thể sẽ tạo nên nội dung của một cơ sở
tri thức và là vấn đề được quan tâm trong lĩnh vực Web ngữ nghĩa.
5. Ngôn ngữ Ontology
5.1. RDFschema
RDF: mô tả các nguồn tài nguyên bằng các lớp, các thuộc tính và các giá trị, cung
cấp tính liên thông giữa các ứng dụng.
Tuy nhiên, chúng ta cần phải định nghĩa các lớp và các thuộc tính trong các
ứng dụng chuyên biệt. Để làm được điều này, chúng ta sẽ phải sử dụng một
phiên bản mở rộng của RDF, gọi là RDFS hay RDF Schema.
Ngôn ngữ RDF chỉ giúp cho thông tin được thể hiện ở dạng bộ ba theo đúng mô
hình RDF chứ thông tin vẫn chưa thể hiện gì về mặt ngữ nghĩa. Bởi vậy, xây dựng
RDFS là điều cần thiết để hình thành nên ngữ nghĩa cho thông tin, là cơ sở để
xây dựng các công cụ tìm kiếm ngữ nghĩa. RDFS và RDF có mối liên hệ
tương đối gần gũi nên đôi lúc ta gọi ngôn ngữ này là RDF/RDFS.
RDFs:
• Cho biết DL được mô tả trên RDF được diễn dịch như thế nào

• Định nghĩa từ vựng cho RDF
• Tổ chức từ vựng dưới dạng cây phân cấp
• Khả năng khai báo tường minh các quan hệ ngữ nghĩa giữa các vocabulary
terms
Hình 4.1 cho chúng ta sự phân biệt giữa RDFS với RDF :
Trong hình vẽ chúng ta thấy, ở tầng RDF chỉ biểu diễn được thông tin ở dạng bộ
ba. Đến tầng RDFS, thông tin đã được phân loại rõ ràng. Chẳng hạn như Quan
Thanh Tho có kiểu là Lecturer và Lecturer là lớp con của Academic Staff v.v…
Ví dụ: Xét lược đồ RDF sau Horse là subclass của class Animal
Hình Horse là subclass của class Animal
Ta sử dụng RDF Schema để định nghĩa, chú thích các mối quan hệ:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="
xmlns:rdfs="
xml:base="e/animals#">
<rdf:Description rdf:ID="animal">
<rdf:type rdf:resource="
</rdf:Description>
<rdf:Description rdf:ID="horse">
<rdf:type rdf:resource="
<rdfs:subClassOf rdf:resource="#animal"/>
</rdf:Description>
</rdf:RDF>
Khi lớp RDFS là tài nguyên RDF, ta có thể dùng rdfs:Class thay vì dùng
rdf:Description và bỏ qua thông tin trong rdf:type như sau:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="
xmlns:rdfs="
xml:base="e/animals#">
<rdfs:Class rdf:ID="animal"/>

<rdfs:Class rdf:ID="horse">
<rdfs:subClassOf rdf:resource="#animal"/>
</rdfs:Class>
</rdf:RDF>5.1.1 Định nghĩa lớp (class)
Các tài nguyên trên Web có thể chia thành các nhóm gọi là class. Các thành viên
của nhóm được xem như là thể hiện của lớp đó. Thông qua các định danh URI, các
tài nguyên được truy xuất và có thể được mô tả bằng các RDF properties. Thuộc
tính rdf: type được sử dụng để chỉ ra một resource là một thể hiện của một class.
5.1.2 Định nghĩa thuộc tính (property)
RDF Schema cung cấp một bộ từ vựng để mô tả làm thế nào mà các thuộc tính và
lớp có thể được sử dụng cùng nhau trong RDF. Thuộc tính quan trọng nhất được
sử dụng trong trường hợp này là rdfs:range và rdfs:domain
Cách sử dụng rdfs:range
Thuộc tính rdfs:range dùng để chỉ giá trị của một thuộc tính là thể hiện của một
lớp. Ví dụ như, nếu công ty example.org muốn chỉ rằng thuộc tính ex:author có giá
trị là thể hiện của lớp ex:Person, ta sẽ viết phát biểu RDF như sau:
ex:Person rdf:type rdfs:Class .
ex:author rdf:type rdf:Property .
ex:author rdfs:range ex:Person .
Phát biểu này chỉ rằng ex:Person là một lớp, ex:author là một thuộc tính, và thuộc
tính ex:author có object là thực thể của lớp ex:Person. Tuy nhiên một thuộc tính có
thể có nhiều rdfs:range, như ví dụ sau:
ex:hasMother rdfs:range ex:Female .
ex:hasMother rdfs:range ex:Person .
Thuộc tính rdfs:range có thể được sử dụng để chỉ ra giá trị của kiểu typed literal
ex:age rdf:type rdf:Property .
ex:age rdfs:range xsd:integer .
Cách sử dụng rdfs:domain
Thuộc tính rdfs:domain được sử dụng để chỉ rằng một thuộc tính là thuộc tính của
một lớp nào đó. Ví dụ như, công ty example.org muốn thuộc tính ex:author là

thuộc tính của lớp ex:Book , ta có phát biểu sau:
ex:Book rdf:type rdfs:Class .
ex:author rdf:type rdf:Property .
ex:author rdfs:domain ex:Book .
Và một thuộc tính cũng có nhiều thuộc tính rdfs:domain khác
exterms:weight rdfs:domain ex:Book .
exterms:weight rdfs:domain ex:MotorVehicle .
5.1.3 Luật suy diễn ngữ nghĩa trong RDFS
Có 6 trường hợp suy diễn theo các cấp loại lớp, thuộc tính, lớp con, thuộc tính con,
miền (domain), dãi (range)
Trường hợp 1: Suy diễn về loại của lớp (type)
IF (c2, subClassOf, c1)
AND (x, type, c2)
THEN (x, type, c1)
Ví dụ:
IF (Man, subClassOf, Person)
AND (Tom, type, Man)
THEN (Tom, type, Person)
Trường hợp 2: Suy diễn về thuộc tính của lớp (Property)
IF (p2, subPropertyOf, p1)
AND (x, p2, y)
THEN (x, p1, y)
- Ví dụ:
IF (author, subPropertyOf, creator)
AND (Tom, author, Report2010)
THEN (Tom, creator, Report2010)
Trường hợp 3: Suy diễn về lớp con của lớp (subclassOf)
IF (c2, subClassOf, c1)
AND (c3, subClassOf, c2)
THEN (c3, subClassOf, c1)

- Ví dụ:
IF (Person, subClassOf, Animal)
AND (Man, subClassOf, Person)
THEN (Man, subClassOf, Animal)
Trường hợp 4: Suy diễn về thuộc tính con của thuộc tính (subPropertyOf)
IF (p2, subPropertyOf, p1)
AND (p3, subPropertyOf, p2)
THEN (p3, subPropertyOf, p1)
- Ví dụ:
IF (parent, subPropertyOf, ancestor)
AND (father, subPropertyOf, parent)
THEN (father, subPropertyOf, ancestor)
Trường hợp 5: Suy diễn trong miền (domain)
IF (p1, domain, c1)
AND (x, p1, y)
THEN (x, type, c1)
- Ví dụ:
IF (author, domain, Human)
AND (Tom, author, Report2010)
THEN (Tom, type, Human)
Trường hợp 6: Suy diễn trong dãy giới hạn (range)
IF (p1, range, c1)
AND (x, p1, y)
THEN (y, type, c1)
- Ví dụ:
IF (author, range, Document)
AND (Tom, author, Report2010)
THEN (Report, type, Document)
5.4.1 Ví dụ về xây dựng ontology với RDFS
Chúng ta sẽ dùng cú pháp cơ bản sau để biễu diễn cho một phát biểu (statement):

{subject,predicate,object}
Nếu có nhiều hơn một thuộc tính cho một chủ thể thì:
{subject,

×