HUTECH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP KỸ THUẬT CÔNG NGHỆ
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
LUẬN VĂN TỐT NGHIỆP
TÊN ĐỀ TÀI:
NGHIÊN CỨU SEMANTIC WEB ỨNG DỤNG XÂY
DỰNG CƠ SỞ DỮ LIỆU LUẬT VIỆT NAM
TÊN SINH VIÊN:
HUỲNH PHƯỚC TÀI
MSSV:
10102159
GIÁO VIÊN HƯỚNG DẪN:
Th.S. LÊ TRUNG HIẾU
TP. HỒ CHÍ MINH
2006
HUTECH
2
LỜI CẢM ƠN
Em xin chân thành cám ơn thầy hướng dẫn, Ths.Lê Trung Hiếu ñã tận tình hướng dẫn
em trong quá trình làm ñồ án này.
Xin cám ơn bạn bè ñã chia sẽ những kinh nghiệm quý báu giúp tôi hoàn thành ñề tài.
HUTECH
Mục lục
CHƯƠNG 1: GIỚI THIỆU 1
1.1 Động cơ và mục ñích 1
1.2 Cấu trúc ñề tài 2
CHƯƠNG 2: TỔNG QUAN, CÁC NGHIÊN CỨU, ỨNG DỤNG 3
2.1 Semantic Web là gì? 3
2.2 Cấu trúc phân tầng của Semantic Web 6
2.3 Tích hợp ngữ nghĩa từ nhiều nguồn tài nguyên 8
CHƯƠNG 3: RDF, OWL, SPARQL, JENA 11
3.1 RDF 11
3.1.1 Khái niệm RDF 11
3.1.2 Xuất bản RDF 16
3.2 RDFS 17
3.3 OWL 21
3.3.1 Giới thiệu về OWL 21
3.3.2 Bảng tóm tắt ngôn ngữ 23
3.2.3 Các lớp 24
3.4 Ngôn ngữ SPARQL 30
3.4.1 Cơ bản về SPARQL 30
3.4.2 Làm việc với RDF Literal 32
3.4.3 Ngữ pháp SPARQL 39
3.3 Jena 43
CHƯƠNG 4: HIỆN THỰC, KẾT QUẢ 46
4.1 Phát biểu bài toán 46
4.2 Tổng quan hệ thống văn bản luật Việt Nam 46
4.3 Hiện thực dùng Semantic Web 48
4.3.1 Bảng từ vựng 49
4.3.2. Phân tích thiết kế 51
4.3.3 Cơ sở dữ liệu cho việc lưu trữ các văn bản 63
4.3.4 Cơ sở dữ liệu cho việc lưu dữ liệu RDF: 63
4.3.5 Xây dụng bộ lọc cho tìm kiếm theo Semantic Web 64
4.3.6 Thiết kế giao diện 65
4.4 Hiện thực phần tìm kiếm dùng chỉ mục Tsearch2 67
4.4.1 Giới thiệu về TSearch2 67
4.4.2 Phân tích thiết kế 70
4.4.3 Thiết kế giao diện 73
4.5 Xây dựng các chương trình hỗ trợ 74
CHƯƠNG 5: KẾT LUẬN 77
5.1 Tổng kết 77
5.2 Đánh giá 77
5.3 Hướng phát triển 78
HUTECH
1
CHƯƠNG 1: GIỚI THIỆU
1.1 Động cơ và mục ñích
Năm 1990 Tim Berners-Lee viết một trình duyệt ñầu tiên trên thế giới. Kể từ khi trình
duyệt ra ñời ñã tạo ra sự phát triển mạnh mẽ của internet làm thay ñổi cách thức truy
suất trao ñổi thông tin, giải trí, học tập, nghiên cứu. WorldWideWeb (Web) là tập hợp
các mạng thông tin và siêu văn bản khiến các thông tin dễ dàng truy suất ở phạm vi
toàn cầu và hiện nay là hệ thống thông tin thành công nhất ñược triển khai trên
internet. Các trang web - những linh hồn của internet liên tục phát triển và ñổi mới, các
phần mềm cho web cũng liên tục phát triển và ñổi mới. Web trở thành một phần không
thể thiếu trong ñời sống của nhiều người. Hiện nay lượng thông tin mà Web ñang lưu
trữ là vô cùng lớn. Đứng trước một lượng thông tin khổng lồ như vậy người truy cập
tự hỏi mình có thể tìm thấy những thông tin mình cần không và liệu có tin cậy không.
Con người luôn muốn hướng tới sự hoàn thiện do ñó không ngừng tìm tòi và sáng tạo
và Web cũng cần làm một cách mạng như một cách mạng trước ñây mà bản thân Web
ñã tạo ra. Tim Berners-Lee một con người tài năng, uy tín và có nhiều ñóng góp cho
thế giới Web ấp ủ một mơ ước thực hiện một cách mạng mới cho Web mà ông gọi là
Semantic Web. Những ñiều kỳ diệu mà Semantic Web hứa hẹn có thể mang ñến ñã
cuốn hút nhiều nhà nghiên cứu và tổ chức theo ñuổi nghiên cứu và hiện thực.
Một công nghệ mới có ñầy hứa hẹn như người hoạch ñịnh không và liệu có khả năng
hiện thực không? Vấn ñề tìm hiểu về Semantic Web và hiện thực một ứng dụng có sử
dụng kỹ thuật Semantic Web là một việc cần thiết ñể nắm bắt những kỹ thuật và khả
năng triển khai.
Hiện nay số lượng các văn bản pháp luật của Việt Nam rất lớn. Hằng năm lại bổ sung
thêm nhiều văn bản mới. Các văn bản lại có quan hệ với các văn bản khác như quan hệ
ñiều chỉnh bổ sung, thay thế… Bản thân các văn bản lại có kèm theo các biểu mẫu các
phụ lục… khiến người dùng khó tìm kiếm. Việc sắp xếp và tìm kiếm các văn bản pháp
luật gặp nhiều khó khăn do số lượng lớn và do các quan hệ giữa các văn bản phức tạp.
HUTECH
2
Đề tài này sẽ xây dựng một hệ thống cơ sở dữ liệu lưu trữ các văn bản pháp luật, các
công cụ hỗ trợ quản trị các văn bản, mô tả văn bản cùng công cụ hỗ trợ truy xuất cơ sở
dữ liệu luật này. Ứng dụng này chạy trên môi trường web, nên mọi người có thể truy
xuất dễ dàng nhanh chóng. Các văn bản sẽ ñược thể hiện dưới dạng một trang web, và
có các ñường liên kết ñến các văn bản liên quan. Ứng dụng này sẽ ñược xây dựng dựa
trên những kỹ thuật của Semantic Web.
1.2 Cấu trúc ñề tài
Cấu trúc của ñề tài gồm các phần sau:
Chương 1: Trình bày về ñộng cơ và mục ñích thực hiện ñề tài này.
Chương 2: Trình bày về các nghiên cứu và các ứng dụng của Semantic Web – một
công nghệ ñược xem sẽ là cuộc cách mạng về web lần thứ hai. Semantic Web ñược
ứng dụng vào hệ thống cơ sở dữ liệu luật Việt Nam.
Chương 3: Có nhiều dự án nhằm ñưa Semantic Web thành hiện thực một trong số ñó
là bộ công cụ nguồn mở Jena của hãng HP. Chương này sẽ giới thiệu về ngôn ngữ
RDF, RDFS, OWL và các tính năng của bộ công cụ Jena.
Chương 4: Trình bày về thiết kế của chương trình, hiện thực phần thiết kế và kết quả
thực nghiệm.
Chương 5: Tổng kết và ñánh giá những kết quả ñạt ñược.
HUTECH
3
CHƯƠNG 2: TỔNG QUAN, CÁC NGHIÊN CỨU, ỨNG DỤNG
2.1 Semantic Web là gì?
Hệ thống thông tin hiện nay, các ứng dụng cơ sở dữ liệu tập trung ñang thay ñổi nhanh
chóng. Sự thay ñổi do ngành công nghiệp phần mềm ñang hoàn thiện tạo ra những ñòi
hỏi về các giải pháp phần mềm chuẩn kích thích hình thành cách mạng về thông tin.
Những thay ñổi này ñặt ra những ñòi hỏi cho các dịch vụ thông tin phải ñồng nhất
trong thể hiện và khuôn mẫu, kiến trúc phần mềm mở, phạm vi phải toàn cầu. Các ñòi
hỏi này có hầu hết trong các ứng dụng thương mại ñiện tử, ngân hàng, sản xuất, huấn
luyện, giáo dục, quản lý.
Hệ thống thông tin tương lai sẽ phải hỗ trợ tích hợp với tài nguyên dữ liệu của rất
nhiều nhà cung cấp ñộc lập, tích hợp với các ứng dụng thừa kế, chạy trong môi trường
ñồng nhất và mạng thông tin phân tán. Siêu dữ liệu sẽ ñóng vai trò quan trọng trong
mô tả nội dung như tài nguyên dữ liệu và trong thuận tiện hóa vấn ñề tích hợp.
Cũng vậy, rất nhiều kiểu mẫu tích hợp hướng truyền thông sẽ phải hỗ trợ hệ thống
thông tin mới. Sự tích hợp sẽ bao gồm ñiều hướng, truy vấn, truy suất và phải kết hợp
với các thông tin phụ trợ của cá nhân. Sự tích hợp phải có giao diện tượng tác với phần
mềm ứng dụng và sẽ phải tích hợp ñộng với môi trường cộng tác. Hơn nữa, sự ñầu tư
mạnh mẽ trong tài nguyên thông tin của chính phủ và doanh nghiệp ñòi hỏi phải bảo
mật, riêng tư và chính xác trong nội dung.
Trên ñây là các thử thách ñặt ra cho các hệ thống thông tin thế hệ tiếp theo. Hệ thống
này ñược gọi là hệ thống thông tin cộng tác.
Thử thách chính trong việc xây dựng hệ thống thông tin cộng tác là phải phát triển kỹ
thuật cho phép tiếp tục phát triển và tiến hóa các hệ thống và tài nguyên thông tin hiện
tại. Các kỹ thuật này phải ñòi hỏi một cơ sở hạ tầng thích hợp hỗ trợ phần mềm phát
triển và tiến hóa.
HUTECH
4
Sự ra ñời của web ñã thay ñổi tất cả cách truy suất và chia sẽ thông tin. Cơ sở dữ liệu
hiện nay có thể chia sẽ cho mọi người dưới dạng web nơi ñó mọi người, các chương
trình ứng dụng có thể truy suất và thay ñổi. Trong bối cảnh này, ngữ nghĩa của dữ liệu
phải sẵn sàng cho truy suất như là dữ liệu. Đối với người dùng thì những ngữ nghĩa
này sẽ chuyển tải thành những ñịnh dạng thích hợp cho người dùng sẽ dàng tiếp nhận.
Đối với các chương trình ứng dụng thì ngữ nghĩa ñược cung cấp dưới dạng máy có thể
xử lý.
Từ khi ñược thiết kế, Web ñược xem là nơi ñể chứa thông tin, dữ liệu, và mục ñích
không những ñể con người và con người kết nối với nhau, mà còn cho phép máy tính
tham gia và trợ giúp con người. Thế nhưng một trong những trở ngại thực tế, ñó là
thông tin trên Web thực tế chỉ sử dụng ñược cho con người. Không ñề cập ñến vấn ñề
trí tuệ nhân tạo sẽ huấn luyện máy tính có những hành vi, tư duy giống con người, ý
niệm Semantic Web sẽ là ngôn ngữ giúp cho máy tính có thể tự xử lý trên những luồng
thông tin dữ liệu ñược ñịnh nghĩa và tổ chức tốt. Thay vì ñòi hỏi máy tính phải hiểu
ngôn ngữ của con người, nó sẽ cố gắng ñòi hỏi con người trang bị những thông tin mở
rộng cho nó. Semantic web mang ñến một ý niệm về web trong ñó dữ liệu ñược ñịnh
nghĩa và liên kết với nhau. Bằng cách này dữ liệu có thể ñược khai thác hiệu quả, tự
ñộng hóa, tích hợp và tái sử dụng trong nhiều ứng dụng khác nhau. Để Web có thể ñạt
ñược các giá trị tiềm năng, thì Web phải tiến hóa thành Semantic Web cung cấp nền
tảng có thể truy suất khắp nơi cho phép dữ liệu ñược chia sẽ và xử lý tự ñộng bởi các
công cụ cũng như con người.
Chúng ta hãy xem xét sự so sánh giữa hai mô hình cấu trúc tài nguyên như sau:
HUTECH
5
Hình 1: Web hiện nay
Các trang web là các tài nguyên. Các trang web chỉ liên kết với nhau thông qua ñường
liên kết. Con người có thể tìm thấy một chút ý nghĩa của liên kết thông qua tiêu ñề
hiện lên trên liên kết. Do ñó các thông tin giữa các liên kết là hạn chế. Đối với máy thì
không thể tìm thấy ý nghĩa các liên kết.
Hình 2: Semantic Web
HUTECH
6
Trong Semantic Web các tài nguyên ñều ñược phân loại, và các liên kết ñều mang ý
nghĩa. Như hình trên ta thấy ñuợc phần mềm này cần những thư viện gì, có tài liệu
hướng dẫn, tài liệu hướng dẫn này dựa trên tài liệu khác, chủ ñề của tài liệu, tác giả
của tài liệu, hình ảnh sử dụng trong tài liệu. Điều ñặc biệt là máy dễ dàng “hiểu” và
truy suất ñược các ngữ nghĩa này.
Đối tượng Web hiện nay Semantic Web
Tài nguyên
- Được xác ñịnh bởi URI.
- Không ñược phân loại
- Được ñịnh nghĩa chung bởi URI.
- Có thể mở rộng
- Có mối quan hệ.
Liên kết - Là href hay src,
- Có giới hạn, không có diễn giải.
- Được xác ñịnh bởi URI.
- Có thể mở rộng
- Có mối quan hệ.
Người dùng - Phải thu thập từ nội dung ñể lấy
ngữ nghĩa của tài nguyên – một
công việc nặng nhọc.
- Có ñầy ñủ thông tin cần thiết
Máy - Thông tin dữ liệu tự nhận ñược
rất khan hiếm.
- Có nhiều thông tin có thể xử lý
Máy và người - Làm việc, học hỏi và trao ñổi dữ
liệu một cách hiệu quả.
Semantic Web là ý tưởng của Tim Berners Lee. Ông là người phát minh
ra WWW, URIs, HTTP, và HTML. Ông Tim Berners Lee là giám ñốc
của tổ chức World Wide Web consortium (W3C) chuyên ñề xuất các chuẩn thống nhất
liên quan ñến Web giữa các công ty lớn trên thế giới. Có một nhóm người ở W3C
ñang làm việc tăng cường, mở rộng và chuẩn hóa các hệ thống, các ngôn ngữ, ñồng
thời phát triển các công cụ và các xuất bản… nhằm ñưa Semantic Web thành hiện
thực.
2.2 Cấu trúc phân tầng của Semantic Web
Sự phát triển Semantic Web ñược tiến hành theo từng bước, mỗi bước tương ứng với
một lớp, các lớp xếp chồng lên nhau. Cách tiếp cận này giúp chia nhỏ ñộ phức tạp của
Semantic Web. Thực tế Semantic Web cần một thời gian dài ñể hiện thực ñầy ñủ các
bản sắc của Semantic Web. Trong bối cảnh này, việc phân tầng giúp ñạt ñược những
thành quả theo giai ñoạn.
HUTECH
7
Hình 3: Cấu trúc phân tầng của Semantic Web do Tim Berners Lee ñưa ra.
* Tầng 1 - URI và Unicode
URI là viết tắt của Uniform Resource Identifiers – ñịnh danh tài nguyên ñồng nhất.
URI cho phép diễn ñạt cách truy tìm tài nguyên trên Internet
URI có 2 lớp con:
- Universal Resource Name (URN) cho phép mọi thứ ñược xác ñịnh duy nhất.
- Universal Resource Locator (URL) cho phép tài nguyên ñược truy suất.
Unicode là bộ mã tiêu chuẩn quốc tế cho phép thể hiện hầu hết ngôn ngữ trên thế giới.
* Tầng 2 – XML và Namespace (không gian tên)
XML là ñịnh dạng chuẩn xuất bản dữ liệu. XML rất phổ biến, có nhiều ứng dụng và có
nhiều công cụ hỗ trợ.
Namespace là phần mở rộng của XML cho phép nhóm các thẻ vào một nhóm.
Semantic Web có nhiều từ vựng trùng nhau, namespace cung cấp khả năng phân biệt ý
nghĩa các từ vựng trùng nhau trong các bộ từ vựng
HUTECH
8
* Tầng 3 – RDF Model và Syntax (cú pháp)
RDF Model là một ñồ thị gồm các nút và cung giống như mạng ngữ nghĩa hay ñồ thị
khái niệm. RDF Model là kho tri thức. Các tri thức ñược mô tả theo cú pháp của RDF.
* Tầng 4 - RDF Schema:
RDF Schema (RDFS) là ngôn ngữ dùng ñể mô tả từ vựng RDF. RDFS có thể mô tả
cây phân cấp lớp và cây phân cấp thuộc tính. RDFS ñược dùng ñể thể hiện mối quan
hệ giữa các lớp hơn là ñể ràng buộc cấu trúc như XML Schema.
* Tầng 5 - Ontoloty Web Language (OWL):
OWL giống RDFS mô tả ý nghĩa của từ vựng và quan hệ giữa các từ vựng với nhau.
OWL cung cấp nhiều tính năng hơn RDFS.
* Tầng 6 - Rules (các luật)
Tầng Rules cho phép ta suy luận tri thức mới và ra quyết ñịnh. Tầng Rules cung cấp
cách thức chuẩn ñể truy vấn và lọc RDF. Hiện nay mọi người ñang thí nghiệm với các
công cụ xử lý RDF dùng luật nhưng chưa có chuẩn thống nhất.
Tầng Rules là một dạng logic “căn bản” trong khi Logic Framework là logic “nâng
cao”. Tầng Logic Framework cho phép các chứng cứ logic (formal logic proofs) ñược
chia sẽ. Cuối cùng, với sự hỗ trợ của các chứng cứ mạnh (robust proofs), tầng Trust có
thể ñược thiết lập khi ñó dữ liệu ñã ñược chứng thực ñúng ñắn và sẵn sàng làm cơ sở
cho những suy luận dựa trên ñó.
2.3 Tích hợp ngữ nghĩa từ nhiều nguồn tài nguyên
Các hệ thống Semantic Web xử lý dữ liệu trên một nền tảng chung là RDF. Thực tế
nguồn dữ liệu ở các ñịnh dạng khác nhau như trong cơ sở dữ liệu hay như trong các
trang web cần ñược chuyển thể sang ñịnh dạng RDF. Kết quả trả về cho trạm tìm kiếm
hay các ứng dụng khác cũng là dữ liệu RDF/XML.
HUTECH
9
Hình 4: Cấu trúc cơ bản của việc tích hợp ngữ nghĩa từ nhiều nguồn tài nguyên
HUTECH
10
Phân Lớp Mô tả
Source Layer Chứa những dữ liệu tài nguyên bên ngoài như mối quan hệ
hoặc ñối tượng của cơ sở dữ liệu, trang HTML, nguồn XML,
hoặc RDF gốc. Chương trình sẽ tổng hợp hoàn toàn những
nguồn chung này, thông qua Web. Yêu cầu chính của tài
nguyên là có khả năng chuyển ñổi sang dạng XML.
XML Instance Layer XML instance layer sẽ lấy dữ liệu XML tuần tự này từ layer
trước ñó. Đôi khi hai lớp này ñược xem là một.
XML2RDF Layer XML2RDF layer ñược xem là cầu nối giữa XML instance
layer với Mediator RDF. Khi có một truy vấn từ lớp Mediator,
việc ánh xạ trong XML2RDF sẽ ñược thực hiện và ngược lại.
Inference / Mediating
Layer
RDF Mediator là trung tâm của kiến trúc này. Nó ñiều khiển
hoạt ñộng của mô hình, cung cấp truy vấn và ñưa ra dịch vụ,
kết quả tìm kiếm.
Mô hình khái niệm bao gồm một lớp phân cấp với lớp thuộc
tính, và môt bộ những quy tắc giao tiếp giữa lớp và thuộc tính.
Application Layer Lớp các chương trình ứng dụng, người dùng chỉ thao tác trực
tiếp với lớp này. Ví dụ ñiển hình chương trình tìm kiếm.
HUTECH
11
CHƯƠNG 3: RDF, OWL, SPARQL, JENA
3.1 RDF
3.1.1 Khái niệm RDF
Resource Description Framework (RDF) là ngôn ngữ ñược thiết kế ñể hỗ trợ
Semantic Web, giống như HTML là ngôn ngữ giúp hiện thực Web. RDF là một nền
tảng hỗ trợ mô tả tài nguyên hoặc siêu dữ liệu cho Web. RDF cung cấp những cấu trúc
cơ bản phổ thông ñể trao ñổi dữ liệu.
RDF là ngôn ngữ biểu diễn, mô tả thông tin tài nguyên của World Wide Web. Thông
tin ñược mô tả có thể là tựa ñề trang, tác giả, ngày cập nhật, bản quyền… liên quan
ñến trang web ñó, hoặc ñể có khả năng triển khai chiến lược chia sẻ tài nguyên. Ngoài
ra RDF còn có thể ñược dùng mô tả những thông tin có thể nhận dạng trên Web, ngay
cả những thông tin này có thể không ñược lấy trực tiếp từ trang web. RDF sẽ ñược
dùng ở nơi thông tin ñược xử lý bởi nhiều trình ứng dụng, hơn là nơi chỉ xuất thông tin
cho người xem.
RDF cung cấp một nền tảng chung (common framework) cho phép trao ñổi thông tin
giữa hai chương trình khác nhau mà ngữ nghĩa không bị thay ñổi. Khả năng trao ñổi
thông tin giữa hai chương trình có nghĩa là thông tin này sẽ ñược chương trình bên kia
“hiểu” ñược ngay khi thông tin ñược tạo ra. Từ nền tảng chung này, sẽ là ñòn bẩy ñể
những nhà thiết kế ứng dụng có thể phát triển những trình phân tích (parser) RDF
chung và những công cụ xử lý.
Xét ví dụ RDF:
HUTECH
12
Hình 5: Ví dụ ñồ thị mô tả
RDF cũng cung cấp một dạng ñồ vật hóa (reification) ñể một phát biểu RDF có thể là
một ñối tượng hoặc giá trị của một phát biểu khác. Điều này có nghĩa các ñồ thị có thể
gộp lại như một chuỗi xích. Ví dụ Nguyễn Du viết cái gì ñó ñược xuất tại ñịa chỉ
có tựa là “Truyện Kiều”, ñể rõ hơn ta mô
tả tiếp ñó là kiểu Book, Book ñược ñịnh nghĩa trong RDF schema.
Mô hình RDF và cú pháp dựa trên cú pháp XML thể hiện mô tả trên như sau:
<rdf:Description rdf:about="
<s:hasName>Nguyễn Du</s:hasName>
<s:hasWritten rdf:resource="
</rdf:Description>
<rdf:Description rdf:about="http://www. minhkhai.com/ISBN0001047588">
<s:title>Truyện Kiều</s:title>
<rdf:type rdf:resource="
</rdf:Description>
Cú pháp XML trên ñây chỉ là một trong nhiều cách viết mô hình RDF theo ñịnh dạng
XML vì RDF rất linh hoạt. Ví dụ ñoạn dưới có thể viết lại thành
<s:Book rdf:about="http://www. minhkhai.com/ISBN0001047588">
<s:title>Truyện Kiều</s:title>
</s: Book>
HUTECH
13
Thành phần cơ bản của RDF là RDF triple (bộ ba) gồm 3 thành phần. Thành phần ñầu
là chủ thể (subject), chủ thể là một tài nguyên ví dụ như quốc gia, con người. Thành
phần thứ hai là thuộc tính (predicate). Ví dụ một chủ thể con người có thể có các thuộc
tính màu tóc, trình ñộ học vấn… Thành phần thứ ba là giá trị gắn với thuộc tính.
Nhóm họat ñộng cho RDF ở W3C chọn ñồ thị RDF làm làm phương thức mặc ñịnh ñể
mô tả mô hình dữ liệu RDF vì ñồ thị trực quan dễ hiểu và bất kỳ mô hình dữ liệu RDF
nào cũng có thể thể hiện bằng ñồ thị.
Đồ thị RDF bao gồm một tập hợp các nút liên kết với nhau bởi cung, theo mẫu nút-
cung-nút. Nút có thể là uri, nút rỗng, ký số (literal).
Nút rỗng là nút không chứa URI. Các tài nguyên phân biệt bằng URI. Tuy nhiên khi
ñịnh danh tài nguyên của tài nguyên không tồn tại trong ñồ thị hoặc vô nghĩa thì thì tài
nguyên ñược thể hiện bằng nút rỗng.
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="
xmlns:pstcn="
xml:base="
<rdf:Description rdf:about="monsters1.htm">
<pstcn:bio>
<rdf:Description>
<pstcn:title>Tale of Two Monsters: Legends</pstcn:title>
<pstcn:created>1999-08-01T00:00:00-06:00</pstcn:created>
<pstcn:creator>Shelley Powers</pstcn:creator>
</rdf:Description>
</pstcn:bio>
</rdf:Description>
</rdf:RDF>
Hình 6: ñồ thị có nút rỗng
HUTECH
14
Trong ñồ thị, nút tài nguyên ñược thể hiện bằng hình êlip, nút ký số ñược thể hiện
bằng hình chữ nhật. Nhiều chương trình tự gán số (hay ñịnh danh) cho nút rỗng ñể dễ
phân biệt. Các cung trong ñồ thị là các cung hữu hướng và có nhãn là các thuộc tính
RDF. Cung ñược vẽ từ tài nguyên tới một ñối tượng.
Phần ký số bao gồm 3 phần: các chuỗi ký tự, thẻ ngôn ngữ (không bắt buộc) và kiểu
dữ liệu (không bắt buộc). Phần ký số chỉ ñược dùng ở thành phần thứ ba của phát biểu,
không ñược dùng làm chủ thể hay thuộc tính. Trong ñồ thị, phần ký số ñược thể hiện
bằng hình chữ nhật. Mọi ký số phải là từ ngữ thuộc về một ngôn ngữ nào ñó.
Ví dụ:
<rdfs:label xml:lang="vi">Tên tác giả</rdfs:label>
Ký số cũng có thể là các giá trị của một kiểu dữ liệu như ngày giờ, số nguyên… Khi
ký số có thẻ datatype thì giá tri là URI tham chiếu kiểu dữ liệu ñó. Các kiểu dữ liệu
của RDF tương thích với các kiểu dữ liệu của lược ñồ XML
(
Ví dụ:
<dc:date rdf:datatype=” />01T09:09:07Z</dc:date>
Hai ký số bằng nhau khi có cùng thể hiện trên cùng một ngôn ngữ, các ký tự bằng
nhau ñôi một có hoặc không có thẻ ngôn ngữ, nếu có thẻ ngôn ngữ thì phải giống
nhau; cùng có hoặc không có xác ñịnh kiểu dữ liệu nếu có kiểu dữ liệu thì URI tham
chiếu ñến kiểu dữ liệu phải giống nhau.
Các thuộc tính của tài nguyên có thể gom lại trong nhóm. RDF có các container như
rdf:Bag và rdf:Seq. Ví dụ về lớp rdf:Bag
<rdf:Description rdf:about="
<pstcn:photos>
<rdf:Bag>
<rdf:li rdf:resource=" />
HUTECH
15
<rdf:li rdf:resource=" />
<rdf:li rdf:resource=" />
<rdf:li rdf:resource=" />
<rdf:li rdf:resource=" />
<rdf:li rdf:resource=" />
</rdf:Bag>
</pstcn:photos>
</rdf:Description>
Như thế có nút rỗng giữa tài nguyên contest.htm và các tài nguyên capo.jpg, baritea.jpg,
cfluorite.jpg, ccinnibar.jpg, baryto.jpg, cbarite2a.jpg. Các thành phần con liệt kê dùng
rdf:li. Dạng rdf:Seq là container có thứ tự các thành phần liệt kê dùng rdf:_n với n là các
số từ lớn hơn 0 hoặc rdf:li.
RDF có dạng tập hợp (collection), là một nhóm hữu hạn các thành phần, ñược ñịnh
nghĩa dùng rdf:parseType="Collection"
<rdf:Description rdf:about="
<pstcn:menu rdf:parseType="Collection">
<rdf:Description rdf:about=" />
<rdf:Description rdf:about=" />
<rdf:Description rdf:about=" />
</pstcn:menu>
</rdf:Description>
Đồ thị tương ứng ñược tạo ra như sau
Hình 7: Đồ thị có Collection
HUTECH
16
3.1.2 Xuất bản RDF
Cú pháp RDF/XML là kỹ thuật ñể xuất bản RDF dựa trên XML ñược W3C khuyên.
Hiện nay có nhiều công cụ và API có thể làm việc với NTriple hoặc Notation 3 (N3).
Cú pháp RDF/XML không trực quan bằng cú pháp N3 vì viết trên cấu trúc XML.
Sơ lược về N3
Các tập tin N3 ñịnh dạng UTF-8. Cú pháp cơ bản của N3 là:
Chủ thể thuộc tính ñối tượng .
Trong cú pháp này, chủ thể, thuộc tính, và ñối tượng phân biệt bằng khoảng
trắng, và kết thúc bằng dấu chấm (.).
Ví dụ:
<
< “Nguyễn Thanh Phong” .
Trong ví dụ trên, URI ñược ñặt trong cặp dấu ngoặc < >. Có thể dùng không gian tên
ñể viết ngắn gọn hơn miễn là không gian tên ñược ñịnh nghĩa trong tài liệu, khi ñó ví
dụ trên có thể viết lại như sau:
<mk:000805.htm> dc:creator “Nguyễn Thanh Phong” .
Tập tin N3 có thể chứa các ghi chú. Dòng ghi chú bắt ñầu bằng ký tự (#). Các triple có
cùng chủ thể thì có thể viết gọn không cần lặp lại chủ thể, mỗi phát biểu kết thúc bằng
dấu chấm phẩy (;), kết thúc câu phức hợp trên bằng dấu chấm (.).
Ví dụ:
# Ví dụ
@prefix pc: < .
<
pc:author "Nguyễn Thanh Phong" ;
HUTECH
17
pc:title "Lập trình C++" .
Các chi tiết về N3 có thể tham khảo ở bài viết Getting into RDF & Semantic Web
using N3 của tác giả Tim Berners-Lee (
NTriple là tập con của N3, có nhiều ràng buộc hơn N3 không phóng khoáng như N3.
3.2 RDFS
RDF Schema ñược tạo ra ñể cung cấp thêm những siêu dữ liệu và dùng cho chương
trình, cung cấp cho các chương trình biết ñể có thể dùng ñúng và kiểm chứng các từ
vựng.
RDF Schema là một kỹ thuật cho phép ñịnh nghĩa từ vựng riêng cho dữ liệu RDF (ví
dụ như hasWritten) và các kiểu ñối tượng ñặc biệt ñể gán cho thuộc tính (ví dụ như
kiểu Writer). RDF Schema dùng các thuật ngữ ñã ñược ñịnh nghĩa trước như Class,
subClassOf và Property, ñể tạo lược ñồ. RDF Schema cũng dùng ñể kiểm hợp lệ các
phát biểu RDF. Sự khác nhau giữa phát biểu RDF và RDF Schema là RDF Schema tạo
ngữ nghĩa cho thuật ngữ và giải thích các phát biểu. Ví dụ, thuộc tính subClassOf cho
phép ñịnh nghĩa phân cấp lớp, ví dụ mọi FamousWriter ñều là Writer. Các ñối tượng có
thể cho biết kiểu bằng cách dùng thuộc tính type. Các thuộc tính domain và range có thể
dùng ñể xây dựng ràng buộc giữa các lớp thuộc tính.
Schema
Dữ liệu
Hình 8: Mối quan hệ giữa dữ liệu RDF và RDF Schema
HUTECH
18
Trên ñường nét ñứt trong hình trên, chúng ta thấy ví dụ RDF Schema ñịnh nghĩa từ
vựng cho ví dụ RDF ở trên: Book, Writer và FamousWriter là các lớp, và hasWritten là
thuộc tính. Một thể hiện bên dưới ñường nét ñứt ñược mô tả bằng các thuật ngữ của từ
vựng trên.
RDF/RDFS cung cấp các từ vựng ñể mô tả tài nguyên và mô tả từ vựng trong không
gian miền rdf và rdfs.
Lớp RDF/RDFS
Thành phần Lớp của Lớp con của
Chú thích
rdfs:Class Mọi lớp
Đây là lớp cha của mọi tài
nguyên của lớp RDF.
rdfs:Datatype Kiểu dữ liệu Class Tất cả mọi thực thể của
Datatype tương ứng với kiểu
dữ liệu của mô hình RDF.
rdfs:Resource Mọi tài nguyên Class Mọi cái mô tả trong RDF
ñược gọi là tài nguyên, và ñều
là thực thể của lớp
rdfs:Resource. Đây là lớp của
mọi thứ.
rdfs:Container Vật chứa
(container)
Resource Lớp rdfs:Container là lớp cha
của những lớp chứa khác, ví
dụ như: rdf:Bag, rdf:Seq,
rdf:Alt.
rdfs:Literal Chữ và số Resource Đây là lớp của những giá trị
gốc như string và integer.
rdf:List Danh sách Resource Lớp này có thể dùng ñể xây
dựng những danh sách mô tả
hoặc loại danh sách khác.
rdf:Property Các thuộc tính Resource
rdf:Statement Các phát biểu Resource Dùng ñể mô tả những phát
biểu của lớp trong RDF, quy
ñịnh theo N3.
rdf:Alt Vật chứa của
các thay thế
Container Lớp rdf:alt ñược dùng ñể xử
lý những việc chọn một trong
những thành viên trong ngăn
chứa. Thành viên ñầu tiên
rdf:_1, ñược xem là lựa chọn
mặc ñịnh.
rdf:Bag Danh sách
không thứ tự
Container
Lớp ngăn chứa chưa có thứ tự.
rdf:Seq Danh sách có Container
HUTECH
19
thứ tự
rdfs:ContainerMem
bershipProperty
Các thuộc tính
quan hệ với vật
chứa
Property Lớp chứa những thuộc tính
thành viên, rdf:_1, rdf:_2,…,
tất cả thuộc tính con của thành
viên.
Rdf:XMLLiteral
Giá trị ký số của
XML
Literal
Lớp rdf:XMLLiteral dùng ñể
khai báo XML như là dữ liệu
nguyên thủy.
Thuộc tính RDF/RDFS
Thành phần Phạm vi Miền Mô tả
rdfs:domain Property Class Miền của tài nguyên, ñược dùng ñể chỉ
ra các thành phần của tài nguyên thuộc
một lớp hay nhiều thực thể lớp.
VD ở dạng N3: P rdfs:domain C
P là một thực thể của lớp class
rdf:Property, C là một thực thể của lớp
rdfs:Class, phát biểu trên có nghĩa là P
là một thực thể của lớp C.
Khi một thành phần P có nhiều hơn một
rdfs:domain, thì tài nguyên P là thực thể
của tất cả các lớp ñược chỉ ñịnh bởi
rdfs:domain.
rdfs:range Property Class Phạm vi của một tài nguyên, ñược dùng
ñể phát biểu các giá trị của một thành
phần là các thực thể của một hay nhiều
lớp.
VD dạng N3: P rdfs:range C
P là thực thể của lớp rdf:Property, C là
một thực thể của lớp rdfs:Class, P là
thực thể của lớp C.
Khi P có nhiều hơn một thành phần
rdfs:range, thì P là thực thể của tất cả
các lớp ñi sau rdfs:range.
rdfs:subPropertyOf
Property Property Thành phần là thành phần con của một
thành phần khác, ñược dùng ñể phát
biểu tất cả tài nguyên liên quan bởi một
thành phần này cũng liên quan bởi
thành phần kia.
VD: P1 rdfs:subPropertyOf P2
P1 là thực thể của rdf:Property, P2 là
thực thể của rdf:Property và P1 là thành
phần con của P2.
rdfs:subClassOf Class Class Tài nguyên là lớp con của một lớp khác,
HUTECH
20
ñược dùng ñể phát biểu rằng tất cả các
thực thể của lột lớp là thực thể của lớp
cha.
VD: C1 rdfs:subClassOf C2
C1 là thực thể của rdfs:Class, C2 là thực
thể của rdfs:Class và C1 là một lớp con
của C2.
rdfs:comment Resource Literal Là ghi chú thân thiện với con người dễ
ñọc dễ hiểu.
rdfs:label Resource Literal Tên tài nguyên mà thân thiện với con
người, dễ ñọc dễ hiểu.
VD: R rdfs:label L
L là một tên dễ ñọc của tài nguyên R.
Có thể dùng các thuộc tính ngôn ngữ
trong thành phần rdfs:label ñể cho biết
ngôn ngữ nào ñang ñược dùng ñể ñặt
tên.
rdfs:isDefinedBy Resource Resource Được dùng ñể cho biết một tài nguyên
ñược ñịnh nghĩa bởi chủ thể tài nguyên
nào.
VD: S rdfs:isDefinedBy O
Tài nguyên O ñịnh nghĩa S.
rdfs:isDefinedBy là một thành phần con
của rdfs:seeAlso.
rdfs:seeAlso Resource Resource Thông tin bổ sung về một tài nguyên.
VD: S rdfs:seeAlso O
Tài nguyên O có thể cung cấp các thông
tin bổ sung cho S. Có thể lấy O từ Web,
nhưng ñiều này không cần thiết.
rdfs:member Resource Resource Thành viên của tài nguyên, rdfs:member
là một thực thể của rdf:Property – thành
phần cha của tất cả thành phần hội viên
VD. Mỗi thùng chứa của thành phần hội
viên có một quan hệ rdfs:subPropertyOf
tới thành phần rdfs:member.
rdf:first List Resource Là nhân tố ñầu tiên trong danh sách
RDF, có thể ñược dùng ñể xây dựng mô
tả của danh sách và các danh sách khác
giống cấu trúc.
rdf:rest List List Phần còn lại của chủ thể danh sách RDF
sau nhân tố ñầu tiên, có thể ñược dùng
ñể xây dựng mô tả của danh sách và
danh sách khác giống cấu trúc.
rdf:subject Statement Resource Chủ thể của tài nguyên trong một phát
biểu RDF.
HUTECH
21
VD: S rdf:subject R
S là một thực thể của rdf:Statement và
chủ thể của S là R.
rdf:predicate Statement Resource Khẳng ñịnh của tài nguyên trong một
phát biểu RDF.
VD: S rdf:predicate P
S là một thực thể của rdf:Statement, P là
một thực thể của rdf.
rdf:object Statement Resource Đối tượng của tài nguyên trong một
phát biểu RDF.
VD: S rdf:object O
S là một thực thể của rdf:Statement và O
là ñối tượng của S.
rdf:value Resource Resource Thành phần này dùng cho các giá trị.
Nó không có ý nghĩa của nó. Nó cho
biết ñây là giá trị nhưng không biết là
kiểu gì.
rdf:type Resource Class Tài nguyên là thực thể của một lớp,
ñược dùng ñể phát biểu tài nguyên này
là thực thể của một lớp.
VD: R rdf:type C
C là một thực thể của rdfs:Class và R là
một thực thể của C.
3.3 OWL
3.3.1 Giới thiệu về OWL
a) Tại sao cần OWL
Semantic Web là tương lai của Web mà thông tin ñược gắn với ý nghĩa, tức làm cho
thông tin dễ xử lý và tích hợp thông tin trong Web. Semantic Web dựa trên khả năng
của XML ñể ñịnh nghĩa các khuôn mẫu thẻ và RDF ñể thể hiện dữ liệu. Cấp ñầu tiên
trên RDF trong mô hình phân cấp Semantic Web là ngôn ngữ bản thể (ontology
language) có thể mô tả ý nghĩa của thuật ngữ dùng trong các tài liệu Web. Nếu muốn
máy thực hiện suy luận chính xác trên các tài liệu này, ngôn ngữ này phải rộng hơn
các ngữ nghĩa cơ bản của RDFS. Thực sự OWL là sự mở rộng của RDFS. • OWL ñưa
thêm vào từ vựng ñể mô tả thuộc tính và lớp như: quan hệ giữa các lớp (Vd:
disjointness), số lượng phần tử (Vd: "exactly one")…
HUTECH
22
Giới hạn biểu ñạt của RDFS
RDF và RDFS cho phép thể hiện tri thức bản thể. RDF/RDFS có quan hệ phân lớp là
subclass và subproperty, ràng buộc về miền (domain) và phạm vi (range), và các thực
thể lớp. Tuy nhiên RDF/RDFS thiếu một số các tính năng ví dụ như:
• rdfs:range xác ñịnh phạm vi của thuộc tính. Ví dụ thuộc tính eats
áp dụng cho
mọi lớp. Vì vậy RDFS không thể xác ñịnh phạm vi giới hạn cho vài lớp. Thí dụ
ta không thể nói “bò ăn cỏ, trong khi ñộng vật khác có thể ăn thịt”.
• Giả sử muốn biểu ñạt ý các lớp không có ñiểm chung như male và female là
ñộc lập nhau
hưng với RDFS ta chỉ có thể biểu ñạt quan hệ lớp con như female
là lớp con của person
OWL ñược thiết kế ñể ñáp ứng yêu cầu của ngôn ngữ bản thể Web. OWL hiện nay ñã
là bản Recommendation 10 February 2004.
b) Ba ngôn ngữ của OWL
OWL cung cấp 3 ngôn ngữ ñược thiết kế ñể nhà phát triển và người dùng sử dụng cho
các mục ñích riêng.
• OWL Lite hỗ trợ cho người dùng các yêu cầu chính yếu cần hệ phân cấp và các
ràng buộc ñơn giản. Ví dụ, nó hỗ trợ ràng buộc số lượng phần tử cho phép giá
trị là 0 hoặc 1. Việc cung cấp các công cụ hỗ trợ OWL Lite sẽ ñơn giản hơn so
với cho các ngôn ngữ tương ñương khác.
• OWL DL hỗ trợ người dùng muốn diễn ñạt thoáng hơn trong khi muốn giữ lại
khả năng máy tính toán (các kết luận ñược bảo ñảm có thể tính toán) và khả
năng ra quyết ñịnh (tất cả tính toán sẽ hoàn thành trong khoảng thời gian xác
ñịnh). OWL DL bao gồm tất cả thành tố của ngôn ngữ OWL, nhưng chỉ có thể
dùng trong các giới hạn (Vd, một lớp có thể là lớp con của một hay nhiều lớp,
một lớp không thể là một thể hiện (instance) của lớp khác).
• OWL Full dành cho người dùng muốn diễn ñạt tự do nhất. Ví dụ, trong OWL
Full một lớp có thể ñồng thời ñược coi là tập hợp của các cá thể dưới danh