Theo Tim Berners Lee, Semantic Web 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
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
HUỲNH TUẤN ANH
TÌM HIỂU SEMANTIC WEB VÀ XÂY DỰNG
ỨNG DỤNG MINH HỌA (Rút trích và chuyển đổi dữ liệu trong cơ sở dữ liệu quan
hệ thành dữ liệu dạng RDF)
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Nha Trang, tháng 12 năm 2007
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
TÌM HIỂU SEMANTIC WEB VÀ XÂY DỰNG
ỨNG DỤNG MINH HỌA (Rút trích và chuyển đổi dữ liệu trong cơ sở dữ liệu quan
hệ thành dữ liệu dạng RDF)
Nha Trang, tháng 12 năm 2007
Sinh viên thực hiện: Huỳnh Tuấn Anh
Mã số sinh viên: 45DT002
Giáo viên hướng dẫn: ThS Nguyễn Đức Thuần
Trang 3LỜI NÓI ĐẦU
World Wide Web (gọi tắt là Web) đã trở thành một kho tàng thông tin khổng lồcủa nhân loại, một môi trường chuyển tải thông tin không thể thiếu được trong thời đạicông nghệ thông tin ngày nay Sự phổ biến và bùng nổ thông tin trên Web cũng đặt ramột thách thức mới là làm thế nào để khai thác được thông tin trên Web một cách hiệuquả, mà cụ thể là làm sao để máy tính có thể trợ giúp con người xử lý tự động đượcnhững thông tin ấy Muốn vậy, trước hết máy tính phải hiểu được thông tin trên cáctài liệu Web, trong khi ở thế hệ Web hiện tại thông tin được biểu diễn dưới dạng vănbản thô mà chỉ con người mới đọc hiểu được
Để giải quyết vấn đề này, nhiều tổ chức nghiên cứu đã phối hợp nghiên cứu để
phát triển Semantic Web (Web có ngữ nghĩa) Theo Tim Berners Lee, Semantic Web
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 Mục tiêu
của Semantic Web là để phát triển các chuẩn chung và công nghệ cho phép máy tính
có thể hiểu được nhiều hơn thông tin trên Web, sao cho chúng có thể hỗ trợ tốt hơnviệc khám phá thông tin, tích hợp dữ liệu, và tự động hóa các công việc
Với sự lớn mạnh và khả năng lưu trữ thông tin ngữ nghĩa, Semantic Web sẽ trởthành một thế hệ Web cho tương lai, thế hệ Web mà chúng ta đang chờ đợi Và đócũng là lý do đề tài "Tìm hiểu Semantic Web và xây dựng ứng dụng minh họa" đượctôi chọn làm đề tài cho khóa luận tốt nghiệp
Mặt dù đã có những cố gắng, song do đây là một mảng kiến thức tương đối mới
do đó đề tài sẽ có nhiều sai sót Tôi rất mong sự đóng góp ý kiến của các thầy cô cùng
các bạn để đề tài được hoàn thiện hơn
Tôi xin chân thành cảm ơn thầy Nguyễn Đức Thuần đã tận tình hướng dẫn,
giúp đỡ tạo điều kiện để tôi hoàn thành đề tài này
Nha Trang, ngày 8 tháng 12 năm 2007
Huỳnh Tuấn Anh
Trang 4NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 5
MỤC LỤC
LỜI NÓI ĐẦU 1
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 4
Chương 1 GIỚI THIỆU SEMANTIC WEB 8
1.1 Web hiện tại và những hạn chế của nó 8
1.2 Semantic Web 8
1.2.1 Khái niệm Semantic Web 9
1.2.2 Một số đặc trưng của Semantic Web 10
1.2.3 Kiến trúc Semantic Web 11
Chương 2 RDF – NỀN TẢNG CỦA SEMANTIC WEB 16
2.1 Các khái niệm cơ bản về RDF 18
2.1.1 Resources 18
2.1.2 Properties 18
2.1.3 Statements 18
2.1.4 Ví dụ về statements 19
2.1.5 Reification 21
2.1.6 Data Types (Các kiểu dữ liệu) 21
2.1.7 Các hạn chế của RDF 22
2.2 RDF: XML - Base Syntax (RDF dựa trên cú pháp XML) 23
2.2.1 Thuộc tính rdf:resource 25
2.2.2 Nested Descriptions (sự mô tả lồng nhau) 26
2.2.3 The rdf:type Element (phần tử kiểu) 27
2.2.4 Abbreviated Syntax (cú pháp viết tắt) 27
2.2.5 Container Elements 28
2.3 RDF Schema: Basic Ideas 32
2.3.1 Classes and Properties 33
2.3.2 Class Hierarchies and Inheritance 33
2.2.3 Property Hierarchies 35
Trang 62.3.4 RDF versus RDFS Layers 35
2.4 Ngôn ngữ RDFS 36
2.4.1 Các lớp cơ bản trong RDFS 37
2.4.2 Các property cơ bản cho việc định nghĩa các mối liên hệ 37
2.4.3 Các property cơ bản cho việc giới hạn của property 37
2.4.4 Container class 38
2.4.5 Các property tiện ích 39
2.4.6 Ví dụ: RDFS mô tả về các giảng viên và các khóa học 39
2.5 Tóm tắt các lớp và các property của RDF và RDFS 40
2.5.1 Tóm tắt các lớp trong RDFS 41
2.5.2 Tóm tắt các lớp trong RDF 41
2.6 OWL (Ontology Web Language), ngôn ngữ mở rộng của RDF 42
2.6.1 Các phiên bản của OWL 43
2.6.2 Một số ví dụ về OWL 44
Chương 3 GIỚI THIỆU BỘ CÔNG CỤ MÃ NGUỒN MỞ JENA 46
Chương 4 CHUYỂN ĐỔI DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU THÀNH DỮ LIỆU DẠNG RDF 48
4.1 Giới thiệu 48
4.2 Ý tưởng 49
4.3 Sơ đồ thực hiện giải thuật: 49
4.4 Chi tiết thực hiện giải thuật: 50
4.4.1 Mô tả các thuộc tính của Database 50
4.2.2 Phát biểu SELECT để rút trích dữ liệu 50
4.2.3 Tạo RDFS 51
4.2.4 Tạo file RDF 51
4.5 Ví dụ 52
4.5.1 Bảng mô tả các thuộc tính: 53
4.5.2 Phát biểu SELECT để rút trích dữ liệu: 53
4.5.3 File RDFS 54
4.5.4 File RDF 54
Trang 74.6 Đánh giá giải thuật 55
Chương 5 CÀI ĐẶT ỨNG DỤNG 55
5.1 Mô tả ứng dụng: 55
5.2 Các yêu cầu của ứng dụng 56
5.2.1 Yêu cầu về giao diện 56
5.2.2 Yêu cầu chức năng 56
5.3 Triển khai ứng dụng 56
5.4 Hoạt động của hệ thống 56
5.4.1 Kết nối với cơ sở dữ liệu 56
5.4.3 Tạo RDF và RDFS trực tiếp bằng câu lệnh select: 65
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 68
Trang 8Chương 1GIỚI THIỆU SEMANTIC WEB1.1 Web hiện tại và những hạn chế của nó
Từ khi ra đời đến nay, Web đóng một vai trò quan trọng trong cuộc sống hàngngày của con người Nhờ có Web mà việc trao đổi thông tin trên Web dễ dàng hơn baogiờ hết Cùng với sự phát triển của Web, nhu cầu của con người trên Web cũng ngàycàng to lớn từ việc tìm kiếm thông tin đến việc chia sẻ dữ liệu giữa các ứng dụng độclập
Tuy nhiên, khối lượng các tài nguyên trên Web là vô cùng to lớn, điều này làmnảy sinh vấn đề nghiêm trọng là làm thế nào để tìm kiếm chính xác tài nguyên mìnhmong muốn Dữ liệu trong các file HTML hữu ích trong một vài ngữ cảnh nhưng vônghĩa đối với những ngữ cảnh khác Thêm vào đó HTML không thể mô tả về dữ liệu
đóng gói trong nó Vấn đề là hầu hết dữ liệu trên Web hiện tại đều ở dạng HTML,
không có một hệ thống chung nào đảm bảo việc xuất bản dữ liệu theo cách mà dữ liệu
đó có thể xử lý được bởi nhiều chương trình khác nhau cho nên dữ liệu trên Web rất
khó trong việc sử dụng ở phạm vi rộng lớn Vì vậy, nếu như các thành phần chính yếucủa dữ liệu trong Web trình bày theo dạng thức thông thường, thì thật khó sử dụng dữliệu này một cách phổ biến Một thiếu sót của Web hiện nay là thiếu cơ cấu hiệu quả
để chia sẻ dữ liệu vì các ứng dụng được phát triển một cách độc lập Do đó cần phải
mở rộng thế hệ Web hiện tại để máy tính có thể hiểu, tích hợp dữ liệu, cũng như tái sửdụng dữ liệu thông qua các ứng dụng khác nhau
1.2 Semantic Web
Thế hệ Web đầu tiên bắt đầu với những trang HTML tĩnh Thế hệ thứ hai dựatrên nền tảng XML và HTML để tạo nên những trang Web sống động hơn Dữ liệu
Web dưới dạng XML dựa vào các file CSS hay XSLT để biến đổi thành dạng HTML
và thể hiện lên trên trình duyệt Thế hệ thứ ba được gọi là Semantic Web với mục đích
là thông tin sẽ do máy tự động xử lý Theo Tim Berners-Lee đã mô tả trong cuốn sách
"Weaving the Web" [Berners-Lee, 1999] : "Semantic Web sẽ làm cho các dịch vụ
thông minh hơn ví dụ như môi giới thông tin, tác nhân tìm kiếm, bộ lọc thông
Trang 9tin Những dịch vụ thông minh trên hệ thống Web giàu ngữ nghĩa như thế chắc hẳn sẽ
vượt trội hơn những phiên bản sẵn có hiện tại của các dịch vụ này."
1.2.1 Khái niệm Semantic Web
Semantic Web là một mạng lưới thông tin được liên kết theo phương pháp sao cho thông tin có thể dễ dàng được xử lý bởi các máy tính trên toàn cầu Nó được xem
là cách mô tả thông tin rất hiệu quả trên World Wide Web, và nó cũng được xem là một cơ sở dữ liệu có khả năng liên kết toàn cầu.
Semantic Web được đề xuất bởi Tim Berners-Lee, người phát minh ra WWW,
URIs, HTTP, và HTML Hiện tại có một đội ngũ chuyên gia ở World Wide Webconsortium (W3C) đang làm việc để hoàn thiện, mở rộng và chuẩn hóa hệ thống, các
ngôn ngữ, xuất bản các bài báo về Semantic Web Một số công cụ và một số nghiêncứu đã được hoàn thiện cho Semantic Web Tuy nhiên công nghệ Semantic Web cònrất bé trong buổi ban đầu của nó Mặc dù tương lai của dự án được phát thảo rất làsáng sủa nhưng hiện nay dường như còn ít sự đồng tình về phương hướng và các đặc
trưng của một Semantic Web còn rất non trẻ
Semantic Web là sự mở rộng của Web hiện tại mà trong đó thông tin được địnhnghĩ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áchhiệu quả hơn Mục tiêu của Semantic Web là để phát triển các chuẩn chung và côngnghệ cho phép máy tính có thể hiểu được thông tin nhiều hơn trên Web, sao chochúng có thể hỗ trợ tốt hơn việc khám phá thông tin, tích hợp dữ liệu, và tự động hóacác công việc
Ví dụ: Ta cần tìm thông tin về chủ tịch Hồ Chí Minh Một chương trình tìmkiếm thông thường có thể đưa ra hàng nghìn kết quả khác nhau trong đó có những kếtquả không mong muốn như Hồ Chí Minh không phải là tên một người mà là tên củathành phố Một chương trình tìm kiếm trên Semantic Web dựa vào dữ liệu mô tả vềcác danh nhân có thể đưa ra chính xác kết quả mà ta mong muốn, đồng thời nó có thểcòn chỉ ra rằng Hồ Chí Minh còn là tác giả của tập thơ Nhật ký trong tù
Semantics Web liên kết các nguồn khác nhau (tài liệu, hình ảnh, con người,khái niệm, …) cho phép chúng ta mở rộng Web thành một môi trường mới với tập cácmối quan hệ mới (như hasLocation, worksFor, isAuthorOf, hasSubjectOf, dependsOn,
Trang 10) giữa các nguồn dữ liệu, tạo ra các mối liên hệ ngữ cảnh giữa các đối tượng của cácnguồn dữ liệu (contextual relationship), điều mà Web hiện tại chưa làm được.
Hình 1.1 Sự liên kết giữa nhiều nguồn dữ liệu khác nhau
1.2.2 Một số đặc trưng của Semantic Web
1.2.2.1 Máy tính có thể hiểu được dữ liệu trên Web
Những thông tin trên Web hiện tại chỉ dành cho người đọc, máy tính chỉ đơnthuần hiển thị các thông tin cho con người chứ hoàn toàn không hiểu được nhữngthông tin này Dữ liệu trên Semantic Web sẽ làm cho máy hiểu những thông tin mà nócung cấp cho con người Ví dụ:
• The Beatles là một ban nhạc nổi tiếng của Liverpool
• John Lennon là một thành viên của The Beatles
1.2.2.2 Thông tin được tìm kiếm nhanh chóng và chính xác hơn:
Với Semantic Web, việc tìm kiếm sẽ dễ dàng vì mọi thứ được đặt trong ngữcảnh Mục tiêu của Semantic Web là phát triển các tiêu chuẩn và kĩ thuật để giúp máytính hiểu nhiều thông tin trên Web hơn, để chúng tìm ra các thông tin dồi dào hơn, tíchhợp, duyệt dữ liệu, và tự động hóa các thao tác Với Semantic Web, chúng ta khôngnhững nhận được những thông tin chính xác hơn khi tìm kiếm thông tin từ máy tính,
Trang 11mà máy tính còn có thể giúp ta tích hợp thông tin từ nhiều nguồn khác nhau, biết sosánh các thông tin với nhau.
1.2.2.3 Dữ liệu liên kết động
Với Semantic Web, chúng ta có thể kết hợp các thông tin đã được mô tả mộtcách giàu ngữ nghĩa với bất kì nguồn dữ liệu nào
Ví dụ, bằng cách thêm các metadata (dữ liệu về dữ liệu) cho các tài liệu khi tạo
ra nó, chúng ta có thể tìm kiếm các tài liệu của tác giả Tim Berners-Lee Cũng nhờmetadata mà máy tính có thể tìm cho chúng ta chỉ những tài liệu thuộc loại tài liệunghiên cứu của một tác giả nào đó
Dựa vào sự liên kết, tham chiếu giữa các đối tượng với nhau thông qua các mốiquan hệ giữa các đối tượng, máy tính có thể cung cấp cho ta sự liên quan giữa đối
tượng này với các đối tượng khác Trong Semantic Web mỗi thuộc tính của mỗi đốitượng được xem là duy nhất (vì chúng được biễu diễn thông qua các không gian tên
riêng biệt) do đó mối quan hệ giữa các đối tượng mà máy tính chỉ ra là chính xác
Ví dụ dựa vào thuộc tính hasManual, isBasedOn, hasAuthor (hình 1.1), máytính có thể chỉ ra tài liệu liên quan đến một software, và tài liệu này dựa trên tài liệucủa một tác giả nào đó Đồng thời máy tính còn có khả năng chỉ ra được địa chỉ của tácgiả đó thông qua thuộc tính liveAt
1.2.2.4 Hỗ trợ công cụ tự động hóa
Dữ liệu trong Semantic Web được đánh dấu, phân lớp, mô hình hóa, được bổsung thêm các thuộc tính, các mối liên hệ… theo các lĩnh vực cụ thể, qua đó giúp chocác phần mềm máy tính có thể hiểu được dữ liệu và tự động xử lý được những dữ liệu
đó
1.2.3 Kiến trúc Semantic Web
Semantic Web là một tập hợp hay một chồng (stack) các lớp Tất cả các lớp của
Semantic Web được sử dụng để đảm bảo độ an toàn và giá trị thông tin trở nên tốt
nhất Tuy nhiên từ tầng Logic trở lên có thể được xem là các tầng xử lý của SemanicWeb Ở các tầng này việc mô tả ngôn ngữ ít hơn nhiều so với việc suy luận, xử lý dữliệu Đây chính là một mảng ứng dụng của hệ chuyên gia, trí tuệ nhân tạo vàoSemantic Web
Trang 12Hình1.2 Kiến trúc của Semantic WebHiện tại từ tầng Ontology vocabulary trở xuống đã khá hoàn chỉnh còn từ tầngLogic trở lên vẫn còn đang trong giai đoạn nghiên cứu.
1.2.3.1 Unicode and URI
URI (Universal Resource Identifier ) là một chuỗi định dạng phục vụ cho việcnhận dạng một tài nguyên trừu tượng hay cụ thể nào đó Unicode cung cấp một con sốduy nhất cho mỗi ký tự, không phụ thuộc vào hệ điều hành, chương trình hay ngônngữ Tầng Unicode và URI nhằm đảm bảo việc sử dụng tập ký tự chuẩn Unicode và
các URI để mô tả các tài nguyên
URI đơn giản chỉ là một định danh Web giống như các chuỗi bắt đầu bằng
“http” hay “ftp” mà ta vẫn thường xuyên thấy trên mạng Bất kỳ ai cũng có thể tạo một
URI, và có quyền sở hữu chúng Khi sử dụng URI, chúng ta có thể dùng cùng mộtcách đặt tên đơn giản để đề cập đến các tài nguyên dưới các giao thức khác nhau:HTTP, FPT, EMAIL,
Một dạng thức quen thuộc của URI là URL - Uniform Resource Locator MộtURL là một địa chỉ cho phép chúng ta thăm một trang Web, như:
Trang 13http://www.w3.org/Addressing/ Nếu click vào nó, URL sẽ bảo máy tính nơi để tìmthấy trang Web.
URI không nhất thiết phải ở dạng thức URL, nó có thể là một địa chỉ email, haymột ISBN của một cuốn sách hay một mã số nào đó dùng để phân biệt người này với
người khác ví dụ như số chứng minh nhân dân của mỗi người chẳng hạn
1.2.3.2 XML + NS + xmlschema
Dữ liệu trong Semantic Web được mô tả theo cú pháp XML, điều này cho phépSemantic Web có thể phát triển dựa trên Web hiện tại Thực tế, XML là một siêu ngônngữ mà các ngôn ngữ của Semantic Web sử dụng cú pháp của nó để mô tả các từvựng cũng như dữ liệu trên Web Ví dụ, XML Schema sử dụng cú pháp XML địnhnghĩa các lớp của tài liệu XML, RDF cung cấp bộ khung để mô tả siêu dữ liệu(metadata) về tài nguyên Web, OWL (Ontology Web Language) và các ngôn ngữ Webkhác cũng sử dụng cú pháp của XML Một cách tổng quát, cú pháp XML cho phép đặc
tả và đánh dấu các tài liệu có thể đọc được bởi máy tính
XML là một mở rộng của ngôn ngữ đánh dấu cho các cấu trúc tài liệu bất kỳ,trái với HTML, là một loại ngôn ngữ đánh dấu chỉ dành cho các loại tài liệu siêu liênkết Một tài liệu XML bao gồm một tập các thẻ đóng và thẻ mở được lồng vào nhau, ở
đó mỗi một thẻ có thể có các thuộc tính và giá trị Khác với HTML, tài liệu XML đòi
hỏi cú pháp chặt chẽ hơn XML là một dạng dữ liệu còn HTML chính là cách để hiểnthị tài liệu XML cho người dùng thông qua các tập tin css hay xslt
1.2.3.3 RDF and RDF schema
RDF và RDF schema là một tầng quan trọng trong Semantic Web
Resource Descrption Framework (RDF) là một ngôn ngữ dùng để mô tả các dữliệu trên Web dưới dạng bộ ba object-attribute-value (hay subject-predicate-object) vàcác mạng ngữ nghĩa Một tài nguyên được mô tả trong RDF bởi một danh sách các
statement (triplets) hay là các câu đơn, trong đó tài nguyên Web ( Web resource) là
object, hai phần còn lại là thuộc tính (property hay attribute) và giá trị của thuộc tính
Ví dụ:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
Trang 14http://www.university/person#101 http://www.mydomain.org/uni-ns#name Grigoris Antoniou
http://www.university/person#101 http://www.mydomain.org/uni-ns#title Professor
Việc biểu diễn RDF dưới dạng các triple phù hợp với ngôn ngữ tự nhiên hơn vìcác triple giống như một câu đơn bao gồm chủ ngữ, vị ngữ và bổ ngữ
RDF và RDFS cung cấp một mô hình chuẩn để mô tả về các tài nguyên Web,
nhưng chúng có nhiều hạn chế về mặt ngữ nghĩa chẳng hạn như RDF không thể chỉ ra
hai lớp tài nguyên là tương đương nhau Để mô tả tài nguyên Web một cách chi tiết
hơn ta cần phải có một mô hình cao hơn, chi tiết và giàu ngữ nghĩa hơn OWL
(Ontology Web Language) là một ngôn ngữ mở rộng của RDF và RDFS nhằm khắcphục các hạn chế của RDF và RDFS
1.2.3.4 Ontology vocabulary
Ontology là một tập các khái niệm và quan hệ giữa các khái niệm được địnhnghĩa cho một lĩnh vực nào đó nhằm vào việc biểu diễn và trao đổi thông tin Đâycũng là một hướng tiếp cận để xây dựng Semantic Web Ontology được định nghĩadựa trên các ngôn ngữ RDF, RDFS, OWL
Một Ontology định nghĩa một bộ từ vựng mang tính phổ biến và thông thường,
nó cho phép các nhà nghiên cứu chia sẻ thông tin trong một hay nhiều lĩnh vực Nóbao gồm các định nghĩa về các khái niệm căn bản trong một lĩnh vực và các mối liên
hệ giữa chúng mà máy tính có thể hiểu được Ví dụ, để định nghĩa một ontology để mô
Trang 15tả thông tin về các giảng viên với các thuộc tính tên, môn học giảng dạy, ta định nghĩacác lớp và thuộc tính như sau:
Thuộc tính mon_hoc_giang_day có domain (subject) là giang_vien (giảng viên)
và giá trị là #mon_hoc (môn học) cũng là một tài nguyên (resource) đã được địnhnghĩa ở đâu đó Như vậy ở đây đã có sự tham chiếu giữa hai tài nguyên là giang_vien
và mon_hoc
1.2.3.5 Logic and Proof
Logic là tầng cung cấp cách thức để ghi các luật logic cho tài liệu Các luật
logic này dùng để khẳng định tính đúng đắn của một tài liệu hay một tài liệu có được
suy ra từ một tài liệu nào khác hay không Một trong những ứng dụng của tầng này làviệc trong đổi dữ liệu giữa các cơ sở dữ liệu có cấu trúc không phụ thuộc nhau nhưng
được liên kết với nhau bởi những semantic links Các semantic link này cho phép
chuyển đổi một câu truy vấn từ một cơ sở dữ liệu này thành một câu truy vấn trong cơ
sở dữ liệu khác
Các luật được suy diễn bởi motor suy diễn, là một phần mềm ứng dụng cho
phép đưa ra các sự kiện hay các luật kết hợp từ các thông tin có sẵn Kết luận và các
Trang 16luật kết luận cho phép đưa ra các dữ liệu mới từ các dữ liệu sẵn có Do đó, các tri thứcmới có thể được thêm vào các tri thức cơ sở Việc sử dụng các motor suy diễn trongSemantic Web cho phép các ứng dụng có thể đặt ra các câu hỏi về một kết luận cụ thể
nào đó Như vậy một ứng dụng ngữ nghĩa (semantic application) cần phải chứng minh
các kết luận mà nó đưa ra Tầng proof đảm bảo công việc này.
1.2.3.6 Trust
Trust là tầng trên cùng của cấu trúc Semantic Web Tầng này cung cấp việcchứng thực của sự nhận dạng và căn cứ cho việc dữ liệu và các dịch vụ có tin cậy haykhông
1.2.3.7 Digital signature:
Chữ ký số (Digital Signature) là thông tin đi kèm theo tài liệu nhằm mục đíchxác nhận chủ thể của dữ liệu đó
Digital signature được đưa vào mô hình của Semantic Web từ tầng thứ ba cùng
với RDF/RDFS lên đến tầng proof trong mô hình Chữ ký điện tử được coi là mộtthành phần quan trọng nhằm xác thực nguồn gốc và độ tin cậy của tài liệu Chữ ký
điện tử làm cho Semantic Web trở thành Web của sự tin cậy
Chương 2RDF – NỀN TẢNG CỦA SEMANTIC WEB
XML là một siêu ngôn ngữ phổ biến dùng để định nghĩa các định dạng XMLcung cấp một bộ khung thống nhất, và một tập các công cụ như bộ phân tích cú pháp
dùng để trao đổi dữ liệu và siêu dữ liệu giữa các ứng dụng Tuy nhiên XML không
cung cấp cách thức để mô tả ngữ nghĩa của dữ liệu Ví dụ, XML không đề cập tới ngữnghĩa của các thẻ lồng nhau; mỗi ứng dụng cụ thể phải tự giải thích ngữ nghĩa của sựlồng nhau này Để bổ sung phần ngữ nghĩa cho dữ liệu ta cần dùng ngôn ngữ RDF
Mặt dù thường được gọi là “ngôn ngữ”, nhưng về thực chất RDF là một môhình dữ liệu RDF dựa trên cơ sở xây dựng bộ ba: object-attribute-value (hay subject-predicate-object), gọi là statement Hiển nhiên một mô hình dữ liệu trừu tượng cầnphải có cú pháp chặt chẽ để mô tả và chuyển đổi chúng RDF sử dụng cú pháp của
Trang 17XML Tuy nhiên có những cú pháp khác được RDF dùng để mô tả dữ liệu mà khôngdựa trên XML.
RDF là một lĩnh vực không phụ thuộc vào các lĩnh vực cụ thể khác sử dụng nó
RDF cho phép người dùng có thể định nghĩa các thuật ngữ riêng của mình thông qualược đồ ngôn ngữ gọi là RDF Schema (RDFS) Tên RDF Schema là một sự lựa chọn
không chuẩn xác cho lắm, nó dễ gây nhầm lẫn cho những người đã từng quen sử dụngXML RDF Schema khác với XML Schema XML Schema ràng buộc cấu trúc của tàiliệu XML trong khi RDF Schema định nghĩa từ vựng sử dụng trong mô hình RDF.Trong RDFS chúng ta có thể định các từ vựng, chỉ định các thuộc tính (properties) cho
các đối tượng (objects) và các giá trị mà các thuộc tính có thể nhận được, mô tả mối
quan hệ giữa các đối tượng Ví dụ ta có thể viết:
Lecturer is a subclass of academic staff member
Câu trên có nghĩa tất cả các giảng viên đại học đều là thành viên của học viện
Ý nghĩa quan trọng nhất của câu trên là cụm từ “is a subclass of”, các ứng dụng cụ thểkhông cần phải xử lý ngữ nghĩa của cụm từ này, ý nghĩa của cụm từ này được xử lýbởi các phần mềm xử lý RDF Thông qua việc ổn định ngữ nghĩa của một số thànhphần nào đó, RDF/RDFS cho phép ta mô hình hóa một số lĩnh vực cụ thể
Chúng ta hãy xem xét sự quan trọng của RDFS thông qua ví dụ Giả sử ta cócác phần tử XML sau:
<academicStaffMember> Grigoris Antoniou </academicStaffMember>
<professor> Michael Maher </professor>
<course name="Discrete Mathematics">
<isTaughtBy> David Billington </isTaughtBy>
</course>
Giả sử ta muốn thu thập thông tin của tất cả các thành viên trong học viện Câu
Xpath trong trường hợp này có thể là:
//academicStaffMember
Kết quả trả về chỉ là: Grigoris Antoniou Kết quả này đúng trong XML nhưng
về mặt ngữ nghĩa nó không đúng lắm Người đọc sẽ nhận ra kết quả trả về phải baogồm cả Michael Maher và David Billington bởi vì:
Trang 18- Tất cả các giáo sư (professor) đều là thành viên của học viện (staff members).
Có nghĩa là professor là một lớp con của academicStaffMember
- Các khóa khọc được giảng dạy bởi các giáo sư
Những thông tin này được sử dụng tạo ra một mô hình ngữ nghĩa cho một lĩnhvực đặc biệt, mô hình này không thể viết được bằng XML hay RDF, nó thường đượcviết trong RDFS Như vậy RDFS có thể làm cho các máy tính nhận biết được thông tinmột cách có ngữ nghĩa trong Semantic Web
2.1 Các khái niệm cơ bản về RDF
Các khái niệm nềm tảng của RDF là : resources, properties, và statements
2.1.1 Resources
Resources là các đối tượng, và những sự vật hay những gì mà ta muốn nói về
nó Resources có thể là : authors, books, publishers, places, people, hotels, rooms,những câu truy vấn Mỗi resource có một URI (Universal Resource Identifier) do đómột resource khi mô tả có thể được xem như là duy nhất Một URI có thể là một URL(Universal Resource Locator, hay địa chỉ Web) hay một cách nào đó để nhận dạngduy nhất ; chú ý rằng sự nhận dạng không cần thiết phải cung cấp khả năng truy cập
đến tài nguyên Các URI được định nghĩa không chỉ là vị trí của tài nguyên web mà
còn được định nghĩa cho nhiều đối tượng khác nhau như số điện thoại, số ISBN và các
vị trí địa lý, số chứng minh nhân dân của mỗi người Trong trường hợp tổng quát khi
chúng ta đề cập tới một URI là chúng ta đã xác định một tài nguyên Web
2.1.2 Properties
Properties là một dạng đặc biệt của resources ; nó mô tả mối quan hệ giữa cácresources Ví dụ: "written by", "age", "title" Properties trong RDF được nhận biếtbằng các URI (trong thực hành thường được thay thế bằng các URL) Ý tưởng dùng
các URI để nhận ra các sự vật và mối quan hệ giữa chúng là rất quan trọng Việc sử
dụng các URI đã giảm đáng kể vấn đề đồng âm khác nghĩa trong việc mô tả các dữliệu phân tán
2.1.3 Statements
Các statements xác định các properties cho các resources Một statement là một
bộ ba: object-attribute-value, bao gồm một resource, một property, và một value
Trang 19Values có thể là các resource hay các literals Literals là các giá trị nguyên tố (cácchuỗi).
2.1.4 Ví dụ về statements
Ví dụ 2.1
David Billington is the owner of the Web pagehttp://www.cit.gu.edu.au/~db
Cách đơn giản nhất để biểu diễn statement trên là cách dùng triple
( “David Billington”, http://www.mydomain.org/site-owner,
http://www.cit.gu.edu.au/~db)
Chúng ta có thể cho rằng triple (x,P,y) giống như một công thức logic P(x,y),
trong đó binary predicate (vị ngữ) P thể hiện mối liên hệ giữa object x và object y với
nhau Thực tế, RDF chỉ thường đề cập tới những binary predicate (properties) Chú ýrằng property "site-owner" là một trong hai object được xác định bởi các URL, objectcòn lại chỉ đơn giản được nhận biết bằng một chuỗi
Đồ thị mô tả một triple như hình 2.1
Hình 2.1 Đồ thị mô tả một triple đơn giản
Đồ thị mô tả cho các triple sau:
( http://www.cit.gu.edu.au/~db, http://www.mydomain.org/site-owner, “DavidBillington”)
( “David Billington”, http://www.mydomain.org/phone, “3875507”)
( “David Billington”, http://www.mydomain.org/uses,
http://www.cit.gu.edu.au/~arock/defeasible/Defeasible.cgi)
( “www.cit.gu.edu.au/~arock/defeasible/Defeasible.cgi”,
http://www.mydomain.org/site-owner, “Andrew Rock”)
như hình 2.2
Trang 20Hình 2.2 mạng ngữ nghĩa
Đồ thị trong hình 2.2 gọi là mạng ngữ nghĩa Đồ thị là một công cụ mạnh mẽ và trựcquan để mô tả các statement phù hợp với suy nghĩ của con người Nhưng semanticweb đòi hỏi các máy tính phải hiểu chúng, do đó cần phải có một sự biễu diễn khác
phù hợp hơn RDF dựa trên cú pháp XLM là một sự lựa chọn để mô tả RDF
Tài liệu RDF được mô tả trong XML được bắt đầu bằng thẻ rdf:RDF Nội dungcủa mỗi phần tử được mô tả bởi các thẻ bên trong thẻ rdf:Description Mỗi descriptiontạo nên một statement về resource Resource được nhận biết bằng một trong ba cáchsau:
- about attribute: Tham chiếu tới một resource sẵn có
- ID attribute: Tạo mới một resource
- không có attribute (resource không có tên): Resource ẩn danh
Ta biễu diễn ví dụ 2.1 bằng cú pháp XML như sau:
Trang 21Dòng đầu tiên chỉ ra rằng ta sử dụng XML.
Phần tử rdf:Description tạo một statement về resource
http://www.cit.gu.edu.au/~db Trong description các property được sử dụng như là các
thẻ tag, các nội dung của các thẻ tag là các giá trị của các thuộc tính
sử dụng như vậy Cơ chế này được gọi là reiflication Ta có thể hình dung việc làmnày cũng giống như việc chia một câu phức thành các câu đơn trong ngôn ngữ tựnhiên
Ý tưởng chính là đưa ra một đối tượng bổ trợ (axiliary object), ví dụ belief1 vàgắn chúng với mỗi một trong 3 phần của câu statement gốc thông qua các properties:subject, predicate, và object Trong ví dụ trên subject của belief1 là David Billington,predicate: creator, object: http://www.cit.gu.edu.au/~db
2.1.6 Data Types (các kiểu dữ liệu)
Giả sử rằng "3875507" Là một số điện thoại Một chương trình đọc mô hình dữliệu RDF không thể phân biệt được literal "3875507" biểu diễn một con số nguyên, và
nó thuộc hệ thập phân hay hệ bát phân Một chương trình chỉ nhận biết các resource
được mô tả như thế nào nếu nó được cung cấp các thông tin về resource Các ngôn
ngữ lập trình hay các hệ quản trị cơ sở dữ liệu thường cung cấp các thông tin về cáckiểu dữ liệu Trong RDF, typed literal được sử dụng để cung cấp các thông tin tương
Trang 22Ví dụ trên cho ta 2 chú ý: sử dụng dấu ^^ để báo hiệu kiểu của literal, và việc sửdụng của các kiểu dữ liệu đã được định nghĩa trước bằng XML Schema Việc sử dụngcác kiểu dữ liệu đã được định nghĩa từ bên ngoài trong mô hình RDF được cho phép,
nhưng hầu hết các trường hợp ta sử dụng các kiểu dữ liệu đã được định nghĩa sẵn bởiXML Schema XML Schema đã định nghĩa sẵn nhiều kiểu dữ liệu bao gồm: Boolean,
integer, float, time, date
2.1.7 Các hạn chế của RDF
Ta đã chỉ ra rằng RDF chỉ sử dụng các binary property Điều này khá hạn chế vì tathường sử dụng các predicate với nhiều hơn 2 biến Một cách may mắn, các predicatenhư vậy có thể được mô tả bởi một số các binary predicate Chúng ta xét một Graph
sau:
Một cách trực quan referee(X,Y,Z) được hiểu là X là trọng tài của hai người chơi cờ Y
và Z
Bây giờ chúng ta sử dụng một resource bổ trợ: chessGame và các predicates ref,
player1, player2 Sau đó chúng ta có thể biểu diễn referee(X,Y,Z) như sau:
ref(chessGame,X)
player1(chessGame,Y)
player2(chessGame, Z)
Một vấn đề nữa của RDF là việc sử dụng các property Như đã đề cập, property
là một dạng đặc biệt của resources Do đó property có thể được sử dụng như mộtobject trong object-attribute-value triple (statement) Mặc dù điều này khá mềm dẻo
nhưng nó là một điều không bình thường cho các mô hình ngôn ngữ, và có thể gây ra
khó chịu cho người thiết kế nó
Trang 23Một vấn đề nữa là cơ chế reification rất mạnh mẽ nhưng nó xuất hiện không
đúng trong các mô hình ngôn ngữ đơn giản như RDF Việc tạo một statement về mộtstatement đưa ra một mức độ phức tạp và không cần thiết cho lớp cơ bản của SemanticWeb Thay vào đó nó nên xuất hiện một cách tự nhiên hơn trong các lớp mạnh hơn để
cung cấp các khả năng biểu diễn giàu ngữ nghĩa hơn
Sau cùng, RDF dựa trên cơ sở XML dễ dàng cho việc xử lý của máy móc
nhưng nó không thân thiện cho con người
Tóm lại, RDF có những nét đặc trưng riêng và không phải là một mô hình ngônngữ tối ưu nhưng RDF có khả năng biểu diễn ngữ nghĩa một cách mạnh mẽ Về cơ bản
Semantic Web không được lập trình trong RDF, nhưng nó sử dụng các công cụ thân
thiện hơn để tự động chuyển đổi các mô tả cao hơn về RDF
2.2 RDF: XML - Base Syntax (RDF dựa trên cú pháp XML)
Một RDF document bao gồm một rdf:RDF element, nội dung của nó bao gồmmột số các biểu diễn (description) Ta xét ví dụ của RDF về các khóa và các giảngviên của trường đại học Griffith University trong năm 2001
Trang 24resource và sau đó được đưa vào tài liệu RDF khác Cơ chế này cho phép dùng lại các
resource bởi những người khác, những người có thể quyết định chèn các đặc tính bổsung vào các resource Kết quả là sự mở rộng, phân tán tri thức
Trang 25Thứ hai, thuộc tính rdf:about của phần tử rdf:Description đúng ra là tương
đương với thuộc tính ID, nhưng nó thường sử dụng để chỉ ra rằng object mà statement
đề cập đã được định nghĩa ở đâu đó Nói một cách hình thức, một tập các RDF
statement cùng nhau hình thành một đồ thị lớn, mối quan hệ giữa chúng thông qua cácthuộc tính, và ở đây không có một đối tượng nào được định nghĩa mà không có sựtham chiếu tới nó ở đâu đó
Thực tế trong ví dụ trên đã bị sai lệch đi một ít Nếu chúng ta muốn một cáchtuyệt đối chính xác, chúng ta nên thay đổi sự xuất hiện của các course và staff ID như
949352 và CIT bằng cách tham chiếu tới các không gian tên bên ngoài để đảm bảocác tài nguyên có URI là duy nhất Ví dụ:
<rdf:Description rdf:about=http://www.mydomain.org/uni-ns/#CIT3112>
Nội dung của phần tử rdf: Description được gọi là property elements Ví dụtrong description:
<rdf:Description rdf:about="CIT3116">
<uni:courseName>Knowledge Representation</uni:courseName>
<uni:isTaughtBy>Grigoris Antoniou</uni:isTaughtBy>
</rdf:Description>
Hai phần tử uni:courseName và uni:isTaughtBy đều định nghĩa cặp property-value cho
object CIT3116 Description trên đây tương đương với hai statement
Thứ ba, thuộc tính rdf:datatype="&xsd;integer" được sử dụng để chỉ ra kiểu dữliệu của giá trị của thuộc tính (property) age Mặc dù thuộc tính age đã được địnhnghĩa để có kiểu "&xsd;integer" trong phạm vi của chúng, nó còn đòi hỏi phải chỉ rakiểu của giá trị của thuộc tính này mỗi lần nó được sử dụng Điều này đảm bảo rằngmột bộ xử lý RDF có thể gán một giá trị đúng kiểu cho một thuộc tính, thậm chí nếu
nó không nhận ra RDF Schema tương ứng đã được định nghĩa trước đó
Cuối cùng, phần tử thuộc tính của một description có thể được đọc như một liên
từ Trong ví dụ trên đây, subject được gọi là "Knowledge Representation" và nó đượcgiảng dạy bởi Grigoris Antoniou
2.2.1 thuộc tính rdf:resource
Trang 26Ví dụ trên đây không thỏa ở một khía cạnh: mối quan hệ giữa các giảng viên vàcác khóa học không được định nghĩa Mối quan hệ này được hiểu ngầm thông qua sửdụng cùng một tên Đối với máy tính, việc sử dụng cùng một tên có thể là một sự trùnghợp ngẫu nhiên: ví dụ, David Billington người dạy CIT3112 có thể không cùng là một
người với người có ID 949318 cũng có tên là David Billington Chúng ta cần một đặc
tả hình thức về vấn đề này Xét ví dụ sau: the teacher of CIT1111 is the staff member,whose name is David Billington Ta có thể mô tả câu trên thông qua thuộc tính rdf :resource Ví dụ:
2.2.2 Nested Descriptions (sự mô tả lồng nhau)
Description có thể được định nghĩa trong một description khác Ví dụ, chúng ta
có thể thay thế những description của ví dụ trên đây với description lồng nhau:
Trang 27Các khóa học (course) khác như CIT3132 có thể tham chiếu tới resource
949318 Nói một cách khác, mặc dù một description có thể được định nghĩa trong một
description khác nhưng phạm vi của nó là toàn cục
2.2.3 The rdf:type Element (phần tử kiểu)
Trong ví dụ 2.2, những description đều được đặt trong 2 nhóm: courses vàlectures Thực tế ví dụ trên là rõ ràng đối với người đọc nhưng nó lại không rõ ràng đốivới máy tính, nó không phân biệt đâu là course và đâu là lecturer Trong RDF ta có thểlàm cho máy tính hiểu được điều này bằng cách dùng phần tử rdf:type Dưới đây là cácdescription bao gồm cả thông tin về kiểu
2.2.4 Abbreviated Syntax (cú pháp viết tắt)
Ta có thể dùng cú pháp viết tắt trong tài liệu RDF Các luật đơn giản như sau:
1 Các phần tử thuộc tính con trong các phần tử description có thể được thay thếbởi các thuộc tính XML, như trong XML
2 Đối với các phần tử description với một phần tử kiểu chúng ta có thể sử
dụng tên đã được đặc tả trong rdf:type element thay cho rdf:Description
tương đương với description (luật 1)
Vídụ Description
<rdf:Description rdf:ID="CIT1111">
<rdf:type rdf:resource="&uni;course"/>
<uni:courseName>Discrete Mathematics</uni:courseName>
Trang 28<uni:isTaughtBy rdf:resource="#949318"/>
</rdf:Description>
Viết lại theo luật 1:
<rdf:Description rdf:ID="CIT1111" uni:courseName="Discrete Mathematics">
Được sử dụng để chứa một số các resource hay các thuộc tính Trong ví dụ 2.2,
chúng ta có thể dùng Container Elements để đề cập tới các khóa học được dạy bởi mộtgiảng viên nào đó Có ba loại containers trong RDF:
- rdf:Bag là một container không theo thứ tự, có thể chứa nhiều sự kiện Một ví
dụ điển hình của rdf:Bag là các giảng viên trong một khoa hay các tài liệu trong mộtfolder – đây là những ví dụ mà thứ tự không được cho là quan trọng
-rdf:Seq là một container theo thứ tự, có thể chứa nhiều sự kiện Những ví dụ
điển hình của rdf:Seq, các module của một tiến trình, hay các mục của một chương
trình nghị sự, danh sách theo thứ tự các chữ cái của các thành viên trong viện - lànhững ví dụ mà thứ tự được cho là quan trọng
-rdf:Alt là một tập hợp của các lựa chọn Ví dụ điển hình việc dịch tài liệu sangcác ngôn ngữ khác nhau
Nội dung của các phần tử container là các phần tử được đăt tên rdf:_1,rdf:_2, Chúng ta viết lại toàn bộ ví dụ 2.2 như sau:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
Trang 30Thay vì viết rdf:_1, rdf:_2 ta có thể viết rdf:li.
<uni:course rdf:about="CIT1111" uni:courseName="Discrete Mathematics">
Các phần tử Container có thể có thuộc tính ID, với thuộc tính này các Container
có thể được nhận dạng và được tham chiếu đến
Một ứng dụng điển hình của các phần tử container là sự mô tả các predicate vớinhiều hơn hai biến Chúng ta xét lại ví dụ referee(X,Y,Z), trong đó X là referee của
Trang 31chess game giữa hai player Y và Z Giải pháp cho vấn đề này được mô tả qua cú pháp
được chỉ định trước nào đó, cấu trúc này gọi là RDF collection Một RDF collection là
một nhóm các đối tượng được biễu diễn theo một cấu trúc danh sách (list) Cấu trúc
này được xây dựng dựa trên một tập các từ vựng đã định nghĩa trước bao gồm:
rdf:List, rdf:first và rdf:rest, rdf:nil
Trang 322.3 RDF Schema: Basic Ideas
RDF là một ngôn ngữ tổng quát, nó cho phép ta có thể mô tả các resource bằngcách sử dụng các từ vựng riêng của nó RDF không nói về một lĩnh vực cụ thể nào cả,
Trang 33hay không định nghĩa ngữ nghĩa cho các lĩnh vực khác Ta có thể định nghĩa một bộ từ
vựng về một lĩnh vực cụ thể thông qua RDF Schema (RDFS)
2.3.1 Classes and Properties
Chúng ta mô tả về một lĩnh vực cụ thể bằng cách nào? Giả sử chúng ta mô tả vềlĩnh vực (domain) của các khóa học và các giảng viên tại trường đại học Griffith
University Đầu tiên ta phải chỉ ra những đối tượng mà ta muốn nói về nó sau đó mớinói đến những thuộc tính của đối tượng đó Trước tiên ta hãy làm rõ sự khác nhau cơ
Một điều quan trọng của việc sử dụng các lớp để áp đặt các giới hạn lên cácphát biểu trong tài liệu RDF bằng cách sử dụng schema Trong các ngôn ngữ lập trìnhkiểu được sử dụng để ngăn chặn những cách viết vô nghĩa (như A+1 trong khi A làmột mảng) Ví dụ như các câu phát biểu sau:
Discrete Mathematics is taught by Concrete Mathematics.
Room MZH5760 is taught by David Billington.
Phát biểu đầu tiên rõ ràng là vô lý, bởi vì các khóa học chỉ được dạy bởi các giảngviên Sự áp đặt các giới hạn ở đây được đặt lên giá trị của property "is taught by".Trong mathematical terms, chúng ta giới hạn dải giá trị của property
Phát biểu thứ hai cũng vô nghĩa bởi vì chỉ có các khóa học mới được giảng dạy
Sự áp đặt các giới hạn lên các object mà các property có thể được ứng dụng Về toánhọc chúng ta giới hạn các domain của property
2.3.2 Class Hierarchies and Inheritance
Giả sử chúng ta có các class sau và ta muốn thành lập mối quan hệ giữa cácclass này
Trang 34staff members assistant professors
academic staff members administrative staff members
Cách tổ chức phân cấp các class có một ý nghĩa rất quan trọng trong thực tế Taxét statement sau:
Courses must be taught by academic staff members only.