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... Các kiểu dữ liệu của RDF tương thích với các
Trang 1TÊ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
Trang 2H U
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
Trang 3H U
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
Trang 4tự 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
Trang 5Cấ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
Trang 6Hệ 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
Trang 7xử 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:
Trang 8Hình 2: Semantic Web
Trang 9Tà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ý
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
Trang 10- 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
Trang 11hệ 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
Trang 13H U
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
Trang 14cơ 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:
Trang 15H U
!
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:
Trang 16H U
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 cung-nút Nút có thể là uri, nút rỗng, ký số (literal)
nút-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
Trang 17Phầ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 (http://www.w3.org/TR/xmlschema-2/)
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="http://burningbird.net/earthstars/contest.htm">
<pstcn:photos>
<rdf:Bag>
<rdf:li rdf:resource="http://burningbird.net/earthstars/capo.jpg" />
Trang 18cfluorite.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
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
Trang 19Cá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
Ví dụ:
<http://www.minhkhai.com.vn/books/000805.htm>
<http://purl.org/dc/elements/1.1/creator> “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 (.)
Trang 203.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ư
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
dùng ñể xây dựng ràng buộc giữa các lớp thuộc tính
Hình 8: Mối quan hệ giữa dữ liệu RDF và RDF Schema
Trang 21H U
Trên ñường nét ñứt trong hình trên, chúng ta thấy ví dụ RDF Schema ñịnh nghĩa từ
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
nguyên của lớp RDF
Datatype tương ứng với kiểu
dữ liệu của mô hình 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ứ
gốc như string và integer
dựng những danh sách mô tả hoặc loại danh sách khác
biểu của lớp trong RDF, quy ñịnh theo N3
các thay thế
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
không thứ tự
Container
Lớp ngăn chứa chưa có thứ tự
Trang 22H U
thứ tự rdfs:ContainerMem
bershipProperty
Các thuộc tính quan hệ với vật chứa
thành viên, rdf:_1, rdf:_2,…, tất cả thuộc tính con của thành viên
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
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
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
ñể 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
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
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
Trang 23H U
ñượ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
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
ñược ñịnh nghĩa bởi chủ thể tài nguyên nào
Tài nguyên O ñịnh nghĩa S
rdfs:isDefinedBy là một thành phần con của rdfs:seeAlso
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
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
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
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
biểu RDF
Trang 24là ñối tượng của S
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ì
ñược dùng ñể phát biểu tài nguyên này
là thực thể của một lớp
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")…
Trang 25H U
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”
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
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
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)
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
Trang 26H U
nghĩa một ñơn thể OWL Full cho phép một bản thể gia cố ý nghĩa của từ vựng
Nó không bảo ñảm các phần mềm suy luận sẽ hoàn toàn hỗ trợ mọi tính năng của OWL Full
Ba ngôn ngôn ngữ trên có quan hệ nhau như sau (lưu ý là quan hệ một chiều)
OWL Full có thể xem như phần mở rộng của RDF, trong khi OWL Lite và OWL DL
có thể xem như mở rộng có giới hạn của RDF Mọi tài liệu OWL (Lite, DL, Full) cũng
là tài liệu RDF, và mọi tài liệu RDF là một tài liệu OWL Full, nhưng chỉ một số tài liệu RDF sẽ là tài liệu OWL Lite hoặc OWL DL hợp lệ Vì vậy phải cẩn thận khi muốn chuyển tài liệu RDF sang OWL
3.3.2 Bảng tóm tắt ngôn ngữ
Trong mục này các từ in nghiêng là OWL Tiền tố rdf: hoặc rdfs: ñược dùng khi những
từ này ñã có trong RDF hoặc lược ñồ RDF, còn không thì là từ của riêng OWL a) Bảng tóm tắt OWL Lite
Tính năng RDF
Schema
Class (Thing, Nothing) equivalentClass ObjectProperty
rdfs:subClassOf equivalentProperty DatatypeProperty
InverseFunctionalProperty
Ràng buộc thuộc tính Ràng buộc số lượng Thông tin tiêu ñề
Restriction minCardinality (0 hoặc 1) Ontology
onProperty maxCardinality (0 hoặc 1) imports
allValuesFrom cardinality (0 hoặc 1)
Trang 27H U
someValuesFrom
Kiểu dữ liệu backwardCompatibleWith rdfs:seeAlso
OWL phân biệt 6 loại mô tả lớp:
1 Định danh lớp (một tham chiếu URI)
2 Một liệt kê các cá thể kết hợp thành một thể hiện của lớp
3 Một giới hạn thuộc tính
4 Giao của hai hoặc nhiều mô tả lớp
5 Hợp của hai hoặc nhiều mô tả lớp
Trang 28Năm dạng mô tả lớp khác chứa tập hợp các RDF triple bằng một nút rỗng thể hiện lớp ñược
mô tả Nút rỗng có một thuộc tính rdf:type có giá trị là owl:Class
Hai lớp OWL ñịnh danh ñược ñịnh nghĩa trước, tên là owl:Thing và owl:Nothing Mở rộng lớp của owl:Thing là tập hợp các cá thể Mở rộng lớp của owl:Nothing là tập rỗng Do ñó, mọi lớp OWL là lớp con của owl:Thing và owl:Nothing là lớp con của mọi lớp
Liệt kê
tính OWL phải là tập hợp các thể hiện của lớp Điều này cho phép mô tả lớp bằng liệt
Có hai loại giới hạn thuộc tính: ràng buộc giá trị và ràng buộc số lượng ràng buộc giá
vốn áp dụng cho mọi tình huống mà thuộc tính ñược dùng
Ràng buộc số lượng áp ñặt ràng buộc về số lượng giá trị của một thuộc tính có thể có Mẫu chung:
<owl:Restriction>
<owl:onProperty rdf:resource="(vài thuộc tính)" />
Trang 29Thuộc tính giới hạn có thể áp dụng cho thuộc tính kiểu dữ liệu và thuộc tính ñối tượng
các giá trị ñược liệt kê
<owl:Restriction>
<owl:onProperty rdf:resource="#hasParent" />
<owl:allValuesFrom rdf:resource="#Human" />
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasParent" />
<owl:someValuesFrom rdf:resource="#Physician" />
</owl:Restriction>
một cá thể hoặc một giá trị dữ liệu
<owl:Restriction>
<owl:onProperty rdf:resource="#hasParent" />
<owl:hasValue rdf:resource="#Clinton" />
</owl:Restriction>
Schema nonNegativeInteger Có nhiều nhất N giá trị với N là giá trị của ràng buộc
<owl:Restriction>
Trang 30owl:minCardinality Giới hạn có ít nhất N giá trị với N là giá trị của ràng buộc
owl:cardinality: Giới hạn này ràng buộc phải có ñúng N giá trị với N thuộc kiểu dữ liệu của XML Schema không âm
Giao, hợp và bù
Ba loại này có thể xem như phép toán AND, OR và NOT trong lớp
owl:intersectionOf mô tả một lớp mà mở rộng của nó có những giá trị mà mở rộng lớp của lớp kia cũng có mà các thành viên của mở rộng lớp của cả hai lớp nằm trong danh sách
Trang 31H U
giao là một lớp có các cá thể là Tosca, vì nó có trong cả hai danh sách
owl:intersectionOf có thể xem như phép giao
owl:unionOf mô tả một lớp mà mở rộng của nó có những giá trị có trong cả hai danh sách của hai lớp kia
owl:complementOf mô tả một lớp mà mở rộng của nó có những giá trị không thuộc mở rộng lớp của lớp kia
Ví dụ dùng bù tức "không là meat" ñựơc viết như sau:
- owl:equivalentClass có phần mở rộng lớp giống như của lớp kia
- owl:disjointWith không có thành viên nào là có trong mở rộng của lớp kia
b) Các thuộc tính (properties)
OWL phân biệt giữa hai loại thuộc tính:
Trang 32H U
owl:ObjectProperty và owl:DatatypeProperty ñều là lớp con của rdf:Property
Một tiên ñề thuộc tính ñịnh nghĩa ñặc trưng của một thuộc tính Dạng ñơn giản nhất là ñịnh nghĩa sự tồn tại của một thuộc tính Ví dụ:
<owl:ObjectProperty rdf:ID="hasParent"/>
Thông thường, tiên ñề thuộc tính ñịnh nghĩa ñặc trưng mới của thuộc tính OWL hỗ trợ các dạng sau:
owl:InverseFunctionalProperty
- owl:equivalentProperty có thể ñược dùng ñể chỉ hai thuộc tính là có cùng mở rộng thuộc tính
- owl:inverseOf có hướng từ miền sang phạm vi, thường dùng ñể ñịnh nghĩa quan hệ theo hai chiều: người sở hữu xe, xe thuộc người
- owl:FunctionalProperty là thuộc tính chỉ có thể có giá trị y với mỗi x Nên không có tồn tại hai giá trị y1, y2 có thể (x, y1) và (x, y2)
- owl:TransitiveProperty ñịnh nghĩa thuộc tính P là một thuộc tính bổ ngữ có nghĩa là nếu một cặp (x,y) là một thể hiện của P, và cặp (y,z) cũng là thể hiện của P thì có thể suy ra cặp (x,z) cũng là một thể hiện của P
Trang 33http://example.org/book/book1”:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?title
WHERE { <http://example.org/book/book1> dc:title ?title }
PREFIX là tiền tố giúp các câu SPARQL ngắn gọn vì không phải lặp lại các ñoạn URI khá dài Tiền tố cũng giống như không gian miền của XML hay tiền tố của N3 Mệnh
ñề SELECT ñể chứa các biến Các biến này là giá trị trả về của truy vấn Ở ví dụ trên
có một biến tên “title” Mệnh ñề WHERE chứa các mẫu triple dựa trên cú pháp của
Trang 34H U
N3 Các mẫu triple hợp lại là mẫu ñồ thị Truy vấn sẽ tìm các triple thỏa các mẫu Mỗi
bộ giá trị của các biến gọi là giải pháp (solution)
Hai câu truy vấn dưới ñây giống hoàn toàn câu truy vấn trên
WHERE { <book1> dc:title ?title }
BASE cho phép ñịnh nghĩa ñịa chỉ cơ sở giống như xml:base Thay vì phải viết ñầy ñủ http://example.org/book/book1 ta chỉ cần viết book1 nếu như ñịa chỉ cơ sở http://example.org/book/ ñược ñịnh nghĩa
Trong câu truy vấn SQL, mệnh ñề FROM là bắt buộc ñể xác ñịnh nơi chứa dữ liệu cần truy suất nhưng trong SPARQL thì mệnh ñề FROM không bắt buộc Mệnh ñề FROM cung cấp URI của tập dữ liệu RDF ñược dùng URI ñó có thể là URL của ñồ thị trên web hoặc có thể là tập tin cục bô Khi không dùng mệnh ñề FROM thì phải chỉ ñịnh RDF model trong API của ñộng cơ tìm kiếm
Cú pháp của IRI
Đoạn nằm trong "<>" là tham chiếu IRI IRI là trừu tượng hoá của URI và hoàn toàn tương thích với URI và URL
Cú pháp của ký số
xsd:boolean cũng có thể viết trực tiếp thành true hoặc false Cú pháp literal trong câu truy vấn hoàn toàn giống với cú pháp literal trong RDF
Trang 35H U
Cú pháp của biến
Biến trong câu truy vấn SPARQL có phạm vi toàn cục; biến ñược xác ñịnh bởi "?"; ký
Cú pháp của mẫu triple
Mẫu triple trong SPARQL gồm ba thành phần: chủ thể, thuộc tính, và ñối tượng Có nhiều cách viết tắt các mẫu triple, rất giống với cú pháp n3 Các mẫu triple ñược gom trong một nhóm bằng dấu ngoặc nhọn {} Nếu chủ thể lặp lại có thể viết gọn hơn gồm danh sách các mẫu thuộc tính – ñối tượng
3.4.2 Làm việc với RDF Literal
RDF Literal trong câu truy vấn SPARQL là một chuỗi, có thể có thẻ ngôn ngữ hoặc
xsd:decimal, xsd:double và xsd:boolean
Ví dụ một vài dạng literal trong cú pháp của SPARQL:
• "chat"
• "Việt Nam"@vicó thẻ ngôn ngữ “vi”
• "xyz"^^<http://example.org/ns/userDatatype>
• "abc"^^appNS:appDataType
• 1.0e6, tương ñương với"1.0e6"^^xsd:double
• false, tương ñương với"false"^^xsd:boolean
Trang 36Tương tự ta có thể viết một cách tường minh chỉ rõ kiểu dữ liệu Câu truy vấn dưới
giá trị và biến
SELECT ?v WHERE { ?v ?p "abc"^^<http://example.org/datatype#specialDatatype> }
Đối sánh thẻ ngôn ngữ
Câu truy vấn có dùng thẻ ngôn ngữ sẽ tìm thấy một giải pháp của biến x là :z :
SELECT ?x WHERE { ?x ?p "cat"@en }
Tuy nhiên, nếu bỏ thẻ ngôn ngữ trong câu truy vấn sẽ không tìm thấy một giải pháp nào vì literal bằng nhau khi có cùng ngôn ngữ
Đối sánh mẫu Optional
Trang 37_:a rdf:type foaf:Person
_:a foaf:name "Alice"
_:a foaf:mbox <mailto:alice@example.com>
_:a foaf:mbox <mailto:alice@work.example>
_:b rdf:type foaf:Person
_:b foaf:name "Bob"
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name
OPTIONAL { ?x foaf:mbox ?mbox }
Trang 38_:a foaf:name "Alice"
_:a foaf:mbox <mailto:alice@work.example>
Giới hạn phạm vi của biến
GRAPH khác hoặc trong ñồ thị mặc ñịnh trong dataset
Giả sử câu truy vấn là tìm email, biệt danh, tên ñồ thị mô tả lý lịch của người ñó mà chủ nhân của email alice@work.example quen biết
Trang 39H U
PREFIX data: <http://example.org/foaf/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
<mailto:bob@work.example> "Robert" <http://example.org/foaf/bobFoaf>
Kết hợp FROM và FROM NAMED
NAMED dùng ñể chỉ ñịnh phạm vi là các ñồ thị
# Đồ thị mặc ñịnh (lưu ở http://example.org/dft.ttl)
@prefix dc: <http://purl.org/dc/elements/1.1/>
<http://example.org/bob> dc:publisher "Bob Hacker"
<http://example.org/alice> dc:publisher "Alice Hacker"
# Đồ thị có tên: http://example.org/bob
@prefix foaf: <http://xmlns.com/foaf/0.1/>
Trang 40H U
_:a foaf:name "Bob"
_:a foaf:mbox <mailto:bob@oldcorp.example.org>
# Đồ thị có tên: http://example.org/alice
@prefix foaf: <http://xmlns.com/foaf/0.1/>
_:a foaf:name "Alice"
_:a foaf:mbox <mailto:alice@work.example.org>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?who ?g ?mbox
FROM <http://example.org/dft.ttl>
FROM NAMED <http://example.org/alice>
FROM NAMED <http://example.org/bob>
"Bob Hacker" <http://example.org/bob> <mailto:bob@oldcorp.example.org>
"Alice Hacker" <http://example.org/alice> <mailto:alice@work.example.org>
Câu truy vấn này tìm mbox cùng với những thông tin trong ñồ thị mặc ñịnh
<http://example.org/dft.ttl>
DISTINCT
Từ khóa DISTINCT bảo ñảm mọi tổ hợp biến trong các giải pháp là duy nhất
@prefix foaf: <http://xmlns.com/foaf/0.1/>
_:a foaf:name "Alice"
_:a foaf:mbox <mailto:alice@org>
_:z foaf:name "Alice"
_:z foaf:mbox <mailto:smith@work>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?name WHERE { ?x foaf:name ?name }
Name
"Alice"
ORDER BY
là một biến hoặc một lời gọi hàm Thứ tự tăng là mặc ñịnh Có thể ñặt lệnh sắp xếp
... hạn RDF Mọi tài liệu OWL (Lite, DL, Full)là tài liệu RDF, tài liệu RDF tài liệu OWL Full, số tài liệu RDF tài liệu OWL Lite OWL DL hợp lệ Vì phải cẩn thận muốn chuyển tài liệu RDF sang...
Datatype tương ứng với kiểu
dữ liệu mô hình RDF
được gọi tài ngun,
là thực thể lớp rdfs:Resource Đây lớp thứ
gốc string integer
dựng danh sách mô tả loại...
_:b foaf:name "Bob"
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name