Nếu như các thành phần chính yếu của dữ liệu trong Web trình bày theo dạng thức thông thường, khó sử dụng dữ liệu này một cách phổ biến.. Các ứng dụng liên quan đến Semantic Web cũng đượ
Trang 1Tôi xin cam đoan để hoàn thành được luận văn, bản thân đã có quá trình tìm hiểu và học hỏi nghiêm túc Những gì được trình bày trong luận văn
là kết quả của quá trình học hỏi và nghiên cứu cùng với sự giúp đỡ hướng dẫn tận tình của giáo viên hướng dẫn và các thầy cô giáo trong khoa Công nghệ Thông tin, Trường Đại học Bách khoa Hà Nội Luận văn không sao chép lại nội dung của các luận văn đã có
Trang 3HTTP: Hypertext Transfer Protocol
Trang 4Hình 1-1 Kiến trúc Semantic Web 13
Trang 5CHƯƠNG I : GIỚI THIỆU SEMANTIC WEB 1.1 Worl wide web và những hạn chế của nó
Các kĩ thuật tạo lập Web hiện tại phần nào cản trở khả năng phát triển dịch vụ thông tin trên nó Sự đơn giản trong các kĩ thuật xây dựng tạo ra hiện tượng thắt cổ chai, gây khó khăn trong việc tìm kiếm, rút trích, bảo trì và phát sinh thông tin Máy tính chỉ được dùng như những thiết bị gửi và trả thông tin, không thể truy xuất được những nội dung thật sự cần Do đó, chúng chỉ
hỗ trợ ở một giới hạn nào đó, việc truy xuất và xử lý thông tin Kết quả tất yếu
là người sử dụng phải chịu trách nhiệm không chỉ truy cập và xử lý thông tin
mà còn phải rút trích và diễn giải thông tin
Tuy nhiên, Hoạt động thực tế tạo ra một khối lượng khổng lồ các tài nguyên trên Web Điều này làm nảy sinh vấn đề rất quan trọng là làm thế nào
để tìm kiếm chính xác tài nguyên mong muốn Dữ liệu trong các file HTML chỉ hữu ích trong một vài ngữ cảnh nhưng có thể không đem lại ngữ nghĩa trong ngữ cảnh khác Thêm vào đó, HTML không thể mô tả về dữ liệu đóng gói trong đó
Ví dụ, giả sử biết mã vùng (PostCode) và muốn tìm địa chỉ tương ứng
Do mỗi quốc gia có tên và hệ thống mã vùng khác biệt và Web không biểu diễn được mối liên hệ này, nên ta không thể nhận được kết quả như mong đợi Trái lại, đối với Semantic Web, có thể chỉ ra kiểu mối liên hệ này, chẳng hạn, Zip Code tương đương với PostCode Do vậy hoàn toàn có thể tìm được thông tin mong muốn
Nếu như các thành phần chính yếu của dữ liệu trong Web trình bày theo dạng thức thông thường, 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 khi ứng dụng được phát triển một cách độc lập Do đó, cần phải mở rộng Web để máy 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 Để khắc phục các yếu điểm của Web hiện tại, khái niệm
“Semantic Web” đã ra đời
Trang 61.2 Sự ra đời của Semantic Web
Semantic Web (hay Web có ngữ nghĩa) là thế hệ mở rộng của Web hiện tại được đưa ra bởi Tim Berners-Lee vào khoảng năm 1998 Mục tiêu ban đầu của Semantic Web là hỗ trợ người dùng tìm kiếm thông tin trên mạng một cách nhanh chóng, chuẩn xác và thông minh hơn so với các công cụ tìm kiếm truyền thống
Kể từ đó đến nay, các kỹ thuật liên quan đến Semantic Web không ngừng được hoàn thiện Các ứng dụng liên quan đến Semantic Web cũng được mở rộng như: Phát triển các chuẩn công nghệ chung để biểu diễn thông tin và cho phép máy tính có thể hiểu được một số thông tin trên Web, hỗ trợ tìm kiếm thông minh, hỗ trợ việc khám phá, tách chiết thông tin, tích hợp dữ liệu và tự động hóa một số công việc được thực hiện thủ công
Xét về mặt bản chất, Semantic Web chỉ là một công cụ để con người cũng như máy tính sử dụng để biểu diễn thông tin, hay nói chính xác hơn Semantic Web là một dạng dữ liệu trên Web Khác với các dạng thức dữ liệu được trình bày trong HTML, 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 cho cá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 đó
Semantic Web 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 tin v.v Những dịch vụ thông minh trên hệ thống web giàu ngữ nghĩa 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, vốn giới hạn về chức năng xử lý
1.2.1 Semantic Web là gì?
Semantic Web không phải là Web chuyên biệt, nhưng là một mở rộng của Web hiện tại, theo đó thông tin được xác định ý nghĩa tốt hơn, cho phép máy tính và người cộng tác với nhau tốt hơn
Semantic Web được hình thành từ ý tưởng của Tim Berners-Lee, người phát minh ra WWW, URI, HTTP và HTML
Trang 7Semantic Web là một mạng lưới các thông tin, được liên kết sao cho chúng có thể được xử lý dễ dàng bởi các máy tính ở phạm vi 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à 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 là một phương pháp cho phép định nghĩa và liên kết dữ liệu một cách có ngữ nghĩa, nhằm phục vụ cho máy tính có thể “hiểu” được Semantic Web còn cung cấp một môi trường chia sẻ và xử lý dữ liệu một cách
xử lý tự động bằng máy tính
Với Semantic Web ta có thể giải quyết vấn đề này theo 2 cách:
o Thứ nhất, nó sẽ mô tả chi tiết dữ liệu Do đó, một chương trình xử lý không cần quan tâm đến các format, hình ảnh, quảng cáo trên một trang Web
để tìm ra sự liên quan của thông tin
o Thứ hai, Semantic Web cho phép chúng ta tạo ra một file mô tả mối liên hệ giữa các tập dữ liệu khác nhau Ví dụ, có thể tạo một liên kết semantic giữa một cột ‘zip-code’ trong database với trường ‘zip’ ở trên form nhập liệu, nếu chúng có chung ý nghĩa Điều này cho phép máy tính theo các link và tích hợp dữ liệu từ nhiều nguồn khác nhau
Ý tưởng 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ác mối quan hệ mới (như hasLocation, worksFor, isAuthorOf, hasSubjectOf, dependsOn, ) giữa các nguồn dữ liệu, tạo ra các mối liên hệ ngữ cảnh (contextual relationship), Web hiện tại chưa làm được
Trang 81.2.2 Semantic Web mang lại những gì?
1.2.2.1 Máy có thể hiểu được thông tin trên Web
Internet ngày nay dựa hoàn toàn vào nội dung Web hiện hành giúp con người khai thác thông tin nhưng máy tính thì rất khó để hiểu được thông tin trên nó Semantic Web sẽ cung cấp ngữ nghĩa để máy tính có thể hiểu được
Ví dụ như:
• 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
• Bản nhạc “Hey Dude” do nhóm The Beatles trình bày
Con người có thể hiểu và suy luận được trên các câu này nhưng làm cho máy tính hiểu được như vậy không hoàn toàn đơn giản
Về hình thức người sử dụng máy tính vẫn có được nội dung thông tin như trước đây, nhưng đối với máy tính Semantic Web nới rộng khả năng xử
lý cho phép, máy không phải suy luận dựa vào ngữ pháp và các ngôn ngữ đánh dấu (Markup Language), do cấu trúc ngữ nghĩa của văn bản (text) khi đó hàm chứa những gì cần thiết cho xử lý
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ẽ trở nên dễ dàng do mọi thứ đã được đặt trong ngữ cảnh Ý tưởng chính yếu ở đây là toàn bộ ngữ cảnh đều được người sử dụng mô tả 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áy hiểu thông tin trên Web nhiều hơn, cho phép tìm ra các thông tin dồi dào hơn, tích hợp, duyệt dữ liệu và tự động hóa các thao tác
Với Semantic Web không những chỉ nhận được những thông tin chính xác hơn khi tìm kiếm từ một máy tính, mà máy tính còn có thể tích hợp thông tin từ nhiều nguồn khác nhau, so sánh chúng với nhau
1.2.2.3 Dữ liệu liên kết động
Với Semantic Web, có thể gắn các thông tin mô tả có ngữ nghĩa với bất
kì nguồn dữ liệu nào
Trang 9Ví dụ, nhờ thêm các metadata (siêu dữ liệu) cho các tài liệu khi tạo lập
ta có thể tìm kiếm các tài liệu có metadata về “tác giả của các tài liệu là Eric Miller” Tương tự, với metadata phối hợp có thể tìm kiếm các tài liệu thuộc loại “tài liệu nghiên cứu”
Với Semantic Web, ta không chỉ cung cấp các URI cho tài liệu như trước mà còn cung cấp các khái niệm, các mối liên hệ Như trong ví dụ trên,
sử dụng định danh cho ‘tác giả’ và khái niệm ‘tài liệu nghiên cứu’, ta đã làm
rõ thêm đó là ai và mối quan hệ của người này với một tài liệu nào đó về mặt tác giả Ngoài ra, ta có thể phân biệt những tài liệu của Eric Miller với những tài liệu của những người khác, có thể kết hợp những thông tin đã được mô tả
ở nhiều site khác nhau để biết thêm về người này ở những ngữ cảnh khác nhau ví dụ như vai trò khi là tác giả, nhà quản lý, nhà phát triển, …
1.2.2.4 Hỗ trợ công cụ tự động hóa
Ngoài ra, Semantic còn cung cấp các loại dịch vụ tự động từ các phạm
vi khác nhau: trong gia đình, các thư viện kĩ thuật số cho đến các dịch vụ kinh doanh điện tử và dịch vụ sức khỏe.v.v
Semantic Web cung cấp các phương tiện để mô tả các thông tin chi tiết trên Web hỗ trợ việc tự động hóa xử lý các dịch vụ
1.2.3 Kiến trúc Semantic Web
1.2.3.1 Giới thiệu :
Xét từ góc độ mô tả, Semantic Web chứa đựng một tập hợp các ngôn ngữ mô tả Các lớp của Semantic Web được sử dụng để tạo ra các giá trị thông tin tốt nhất cho các ứng dụng
Trang 10Hình 1-1 Kiến trúc Semantic Web
o Lớp Unicode & URI cho phép sử dụng tập kí tự quốc tế và cung cấp phương tiện khi định danh các đối tượng trong Semantic Web
o Lớp XML cùng với các định nghĩa về namespace và schema (lược đồ) cho phép có thể tích hợp các định nghĩa Semantic Web với các chuẩn dựa trên XML khác
o Lớp RDF [RDF] và RDFSchema [RDFS] cho phép tạo các phát biểu (statement) mô tả các đối tượng với từ vựng và định nghĩa của URI Các đối tượng này được tham chiếu đến khi sử dụng từ vựng và định nghĩa của URI ở trên Đây cũng là lớp có thể gán các kiểu (type) cho các tài nguyên liên kết, cũng là lớp quan trọng nhất trong kiến trúc Semantic Web
o Lớp Ontology: Cho phép hỗ trợ những tiến triển về từ vựng, cho phép định nghĩa mối liên hệ giữa các khái niệm khác nhau
o Lớp Digital Signature: được dùng để xác định chủ thể của tài liệu (ví dụ: tác giả của một tài liệu)
Các lớp Logic, Proof, Trust: các lớp này đang trong giai đoạn nghiên cứu chỉ một số thể hiện trong các ứng dụng giản đơn được xây dựng Lớp Logic cho phép đưa ra các luật (rule), lớp Proof tiến hành suy diễn trên các luật và cùng với lớp Trust đánh giá xem ứng dụng có nên chấp nhận minh chứng đã nêu hay không
Trang 111.2.3.2 Vai trò các lớp trong kiến trúc Semantic Web
Ta sẽ xem xét các thành phần khác nhau của Semantic Web và cách thức thể hiện các thành phần này
1.2.3.2.1 Lớp định danh tài nguyên-URI
URI (Uniform Resource Identifier) là định danh Web, tương tự như
“http” hay “ftp” Bất kỳ người sử dụng nào cũng có thể tạo một URI và có quyền sở hữu chúng, vì vậy URI đã hình thành một công nghệ nền để xây dựng một hệ thống mạng toàn cầu Mạng Internet cho phép mọi URI có thể lưu thông tin trên mạng
Khi sử dụng URI có thể dùng một cách đặt tên đơn giản để đề cập đến các tài nguyên khi sử dụng các giao thức khác nhau: HTTP, FPT, GOPHER, EMAIL,
Một dạng thức quen thuộc của URI là URL - Uniform Resource Locator Thực chất URL là địa chỉ, cho phép ta truy nhập trang Web, như: http://www.w3.org/Addressing/ Nếu click vào nó, URL sẽ bảo máy tính nơi đến
Mặc dù thường được tham chiếu đến như là URL, nhưng URI còn được tham chiếu đến như các khái niệm trong Semantic Web, để chỉ các resource
Ví dụ, chúng ta có một quyển sách với tiêu đề “Machine Learning”, với URI như sau:
http://www.cs.bris.ac.uk/home/pw2538/book/title#machinelearning.Dưới đây là ví dụ về URI:
• uuid:04b749bf-3bb2-4dba-934c-c92c56b709df: Đây là một UUID- Universal Unique Identifier UUID có thể được thiết lập bằng cách kết hợp thời gian và địa chỉ của Ethernet card hay một con số ngẫu nhiên được xác định duy nhất
• mailto:pw2538@bristol.ac.uk: xác định địa chỉ mail của một người nào đó
Trang 12URI là nền tảng của Semantic Web Mọi thành phần khác của Web có thể thay thế nhưng URI thì không được phép thay đổi URI liên hệ các thành phần của Web lại với nhau.
Để định danh các thành phần trên Web, ta sử dụng bộ định danh Do sử dụng một hệ thống đồng bộ các định danh, mỗi thành phần được định danh là một tài nguyên, nên ta gọi bộ định danh này là “Các Bộ Định Danh Tài Nguyên” hay URIs Có thể gán URI cho bất cứ thứ gì và bất cứ thứ gì có URI đều có thể biểu diễn trên Web Ví dụ, con người, quyển sách, con ruồi, Nếu muốn tất cả đều có thể có URI
Một nguyên tắc chung tạo các URI là bắt đầu với một trang Web Trang mô tả đối tượng được định danh và URL của trang là URI cho đối tượng đó Ví dụ muốn tạo một URI cho bản sao “Weaving the Web” của Tim Berners-Lee, trước tiên ta tạo một trang Web mô tả bản sao Sau đó, xem URI của bản sao quyển sách chính là URL của trang web tương ứng, nhờ vậy đã kết hợp URI (http://logicerror.com/myWeavingTheWeb) với bản sao
“WeavingTheWeb”
Có thể nhận thấy rằng trong thể hiện này, URI:
“http://logicerror/myWeaving TheWeb” thực hiện hai nhiệm vụ: biểu diễn nội dung cả quyển sách, cũng như trang Web mô tả Đây là một lĩnh vực đang được thảo luận, gọi là vấn đề định danh Semantic Web và nó là tâm điểm thảo luận khi phát triển Semantic Web
1.2.3.2.2 Lớp XML và XML Schema
Cho đến bây giờ , XML[Bray et al, 1998] được biết rộng rãi và đã nhanh chóng trở thành nền tảng khi phát triển phần mềm XML được thiết kế đơn giản cho phép trao đổi các tài liệu qua Web Thiết kế định dạng tài liệu và sau đó soạn thảo tài liệu theo định dạng đó
XML là một mở rộng của ngôn ngữ đánh dấu cho các các cấu trúc tài liệu, khác với HTML chỉ 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ên kết Một tài liệu XML bao gồm một tập các thẻ đóng và thẻ
Trang 13mở được lồng vào nhau, theo đó mỗi một thẻ có một cặp các thuộc tính và giá trị Phần cốt yếu của tài liệu XML là bộ từ vựng của các thẻ và cách kết hợp tuy không cố định, nhưng có thể xác định qua các ứng dụng XML
Đây là một ví dụ của một tài liệu dạng văn bản đơn giản:
I just got a new pet dog
Ở đây đã dùng các từ: “sentence”, “person” và “animal” trong ngôn ngữ định dạng Nhưng đây là các từ thông dụng Điều gì xảy ra nếu những người khác cũng dùng những từ này trong ngôn ngữ định dạng của họ?
Làm thế nào máy tính hiểu đúng?
Để ngăn ngừa sự bất cập này, phải xác định các phần tử định dạng một cách duy nhất Tốt hơn hết là định danh chúng bằng một URI: gán URI cho mỗi element và attribute, bằng cách sử dụng XML Namespace Theo cách này, một người có thể tạo các tag riêng và trộn chúng với những tag của người khác Một namespace chỉ là một cách nhận diện các phần của Web (space) để biết được ý nghĩa của những tên này Tạo một Namespace cho ngôn ngữ định dạng bằng cách dùng một URI cho nó
Như đã nói ở trên, ta sẽ tạo một trang Web để mô tả ngôn ngữ định dạng và dùng URL như URI cho namespace Vì các tag của mỗi người có các URI riêng nên không xẩy ra mâu thuẫn tên tag Tất nhiên, XML cho phép chúng ta rút gọn và đặt URI mặc định nên không phải gõ chúng ra mỗi lần sử dụng Xét “sentence” trong ví dụ dưới đây
Trang 14Ở đây http:// example.org/xml/documents/" là namespace mặc định và tất cả các element và attribute không có “c:” được đặt trước.
XML cho phép người dùng thêm cấu trúc cho các tài liệu của họ nhưng không đề mô tả được ý nghĩa của các cấu trúc Tên các tag không cung cấp ý nghĩa Semantic Web chỉ dùng XML cho mục đích mô tả cú pháp
1.2.3.2.3 Lớp RDF - RDF Schema
Ban đầu Web được tạo ra để người sử dụng: đọc, hiểu, … Mặc dù máy
có thể đọc được mọi thứ trên Web, nhưng nó không hiểu được dữ liệu trên Web Giải pháp được đưa ra là dùng siêu dữ liệu (metadata) mô tả dữ liệu trên Web để máy có thể hiểu được chúng Siêu dữ liệu là một dạng dữ liệu mô
tả về dữ liệu khác Nói cách khác siêu dữ liệu là những thông tin mô tả tài nguyên trên Web Chẳng hạn như, sách là một loại tài nguyên trên Web (http://www.amazon.com/CSharp.htm) Khi đó các thông tin mô tả cho tài nguyên này như: tên tác giả, tên tựa sách, ngày xuất bản, … chính là siêu dữ liệu
RDF (Resource Description Framework) là nền tảng của Semantic Web
và xử lý metadata, được định nghĩa bởi tổ chức W3C RDF cho phép trao đổi thông tin giữa các ứng dụng trên Web để máy tính có thể hiểu được
Về mặt cấu trúc RDF được mô tả rất đơn giản, gồm 3 thành phần:
o Subject: chủ thể - là vấn đề được đề cập, thường được định danh bởi một URI
o Predicate: thuộc tính của chủ thể, có kiểu metadata (ví dụ như tiêu
đề, tác giả, ), cũng có thể được xác định bởi một URI
o Object: giá trị của thuộc tính (ví dụ: tên tác giả như Eric Miller)
Trang 15Tập hợp các RDF được lưu dưới dạng cú pháp của XML, còn được gọi
URI thứ nhất là subject Trong thể hiện này subject là “me” URI thứ 2
là predicate Nó liên kết subject và object Trong thể hiện này predicate là
“reallyLikes” URI thứ 3 là object, ở đây object là “Tim Berners-Lee’s book
‘Weaving the Web’” Vì vậy, khai báo RDF trên cho ta thông tin “I really like
‘Weaving the Web’”
Ví dụ trên được viết dưới dạng RDF như sau:
Tuy nhiên, mô hình dữ liệu RDF không cung cấp những cơ chế cho việc khai báo các thuộc tính, cũng như không cung cấp bất kỳ cơ chế nào để
có thể định nghĩa ra những quan hệ giữa các thuộc tính và các tài nguyên Đó
là vai trò của RDF schema, nói cách khác RDF schema được dùng để định nghĩa các tài nguyên (các lớp trong RDF schema) và thuộc tính (thuộc tính trong RDF schema), cũng như các quan hệ qua lại giữa tài nguyên với tài nguyên, giữa thuộc tính với thuộc tính và giữa tài nguyên với thuộc tính
Tương tự XML schema, RDF schema là một tập những từ khoá cho phép người dùng định nghĩa bộ từ vựng (resource, property) cụ thể cho dữ
Trang 16liệu RDF (ví dụ như: hasName, hasPrice, authorOf, …) và định nghĩa các quan hệ của nó với các đối tượng liên quan Chẳng hạn như từ hasName được định nghĩa quan hệ của nó trên hai đối tượng:
“http://www.w3c.org/employee/id1321” và “Jim Lerners” như sau:
hasName (‘http://www.w3c.org/employee/id1321’,“Jim Lerners”)
1.2.3.2.4 Lớp Ontology
Ontology là một tập các khái niệm và quan hệ giữa các khái niệm được định nghĩa cho một lĩnh vực nào đó để biểu diễn và trao đổi thông tin Đây cũng là một hướng tiếp cận để xây dựng Semantic Web Tổ chức W3C cũng
đã đề ra một ngôn ngữ ontology trên Web (OWL: Web Ontoloty Language)
để xây dựng Sematic Web dựa trên nền tảng của ontology
Ontology định nghĩa một bộ từ vựng phổ biến thường gặp, cho phép các chia sẻ thông tin trong một hoặc nhiều lĩnh vực 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áy có thể hiểu được
Lý do cần thiết phải phát triển Ontology có thể biểu đạt như sau:
o Chia sẻ hiểu biết chung về cấu trúc thông tin giữa con người và các software agent
o Cho phép tái sử dụng tri thức lĩnh vực (domain knowledge)
o Làm tường minh các giả thuyết về lĩnh vực
o Tách biệt tri thức lĩnh vực (domain knowledge) khỏi tri thức tác nghiệp (operational knowledge )
Trang 17Sau đây là một ví dụ: Một công ty quyết định rằng người nào bán hơn
100 sản phẩm sẽ là thành viên của Super Salesman Club Chương trình thông minh có thể hiểu luật này thực hiện suy diễn đơn giản rằng khi “John bán được 102 sản phẩm, John sẽ là thành viên của Super Salesman Club”
1.2.3.2.6 Lớp Proof
Vấn đề là xây dựng các hệ suy diễn logic và dùng chúng để chứng minh Trước hết phải đưa ra các khai báo logic Sau đó máy tính có thể dùng những Semantic link (liên kết ngữ nghĩa) này để kiểm chứng
Ví dụ, tập hợp các thông tin bán hàng cho thấy Jane đã bán 55 widget
và 66 sprocket Hệ thống kiểm kê cho thấy widget và sprocket là những sản phẩm của các công ty khác nhau Nếu có luật thể hiện là 55 + 66 =121 và 121 lớn hơn 100 và người nào bán hơn 100 sản phẩm sẽ là thành viên của Super Salesman Club Máy tính kết hợp tất cả các luật logic lại với nhau thành một kết luận (proof):
Jane là một Super Salesman
Lớp proof được dùng để cung cấp các thông tin cho các agent kiểm tra chéo các kết quả được suy luận bởi các Agent Tuy nhiên, điều này đòi hỏi phải dịch các cơ chế suy luận nội tại của mỗi agent theo một ngôn ngữ thể hiện proof thống nhất
Trang 18CHƯƠNG II CÔNG NGHỆ XML 2.1 Giới thiệu
XML (Extensible Markup Language) ra đời vào tháng 2/1998, là ngôn ngữ có kiến trúc gần giống với HTML, XML nhanh chóng trở thành một chuẩn phổ biến trong việc chuyển đổi thông tin qua các trang web sử dụng giao thức HTTP HTML là ngôn ngữ chủ yếu cho phép hiển thị dữ liệu thì XML lại hướng về việc chuyển tải, trao đổi và thao tác dữ liệu XML đưa
ra một định dạng chuẩn cho cấu trúc của dữ liệu hoặc thông tin thông qua tự định nghĩa định dạng của tài liệu Bằng cách này, dữ liệu được lưu trữ bằng XML sẽ độc lập với xử lý Vì vậy, XML sẽ đáp ứng được yêu cầu ngày càng cao của lập trình trong vấn đề trao đổi và xử lý thông tin
2.2 Mục tiêu ra đời và lợi ích khi sử dụng XML
2.2.1 Mục tiêu ra đời của XML
Ngày nay, XML đang trở thành một chuẩn chung cho trao đổi dữ liệu cho những ứng dụng chạy trên môi trường Internet XML cho phép người dùng có thể tự định nghĩa các thẻ (tag) ( Thẻ này làm cho tài liệu XML đa dạng hơn những ngôn ngữ thông thường như HTML) Như vậy mục tiêu ra đời XML là gì? Đầu tiên phải tương thích với SGML, và thuận lợi khi viết những chương trình xử lý Kế tiếp, tài liệu XML diễn đạt rõ ràng, dễ đọc, dễ dàng tạo lập Và điều quan trọng là nó được nhiều ứng dụng hỗ trợ Nói tóm lại, XML dễ dàng cho phép chia sẻ thông tin qua những định dạng khác nhau thông qua môi trường Web Nói cách khác XML được thiết kế dành cho mọi người, được mọi người sử dụng
2.2.2 Lợi ích khi sử dụng XML
XML là sự lựa chọn hàng đầu vì nó dễ hiểu, dễ đọc, và dễ thực hiện Sau đây là một số lợi ích khi sử dụng XML
1 XML mô tả cấu trúc dữ liệu
Dữ liệu có cấu trúc khá phong phú như bảng tính, sổ địa chỉ, các thông
số cấu hình, quản lý kinh doanh và bản vẽ kỹ thuật XML cho phép định dạng
Trang 19văn bản theo cấu trúc dữ liệu hiện có XML không phải là một ngôn ngữ lập trình và bạn không cần phải là một lập trình viên mới sử dụng được nó XML
dễ tạo, dế đọc và làm cho cấu trúc dữ liệu được rõ ràng hơn XML tránh được những hạn chế trong thiết kế ngôn ngữ do XML có tính mở rông, độc lập về nền tảng và theo chuẩn Unicode
2 XML giống với HTML
Giống như HTML, XML dùng thẻ (tags - các từ được đặt giữa dấu "<"
và dấu ">") và thuộc tính (attributes - có dạng name="giá trị") HTML chỉ rõ
ý nghĩa, tác dụng của từng thẻ để hiển thị dữ liệu trên trình duyệt như thế nào thì XML sử dụng những thẻ chỉ cho mục đích phân định rõ các mảnh dữ liệu
và các ứng dụng có thể đọc được chúng Đây là một ví dụ, trong HTML thẻ
<p> được dùng để hiển thị đoạn văn bản (paragraph), nhưng trong XML có thể mang nhiều nội dung khác nhau như tên người, một con số, bí danh tùy thuộc vào nhu cầu người sử dụng
3 XML mô tả văn bản nhưng không chỉ để đọc
Chương trình ứng dụng thường xuất dưới dạng bảng tính, sổ địa chỉ, và các dữ liệu có cấu trúc, kết quả lưu trữ dữ liệu trên đĩa dưới dạng nhị phân hoặc định dạng văn bản Điều thuận lợi khi sử dụng dạng định dạng văn bản
là cho phép mọi người khi cần có thể xem những dữ liệu trên đó bằng chương trình biên soạn văn bản khác mà không nhất thiết phải xem bằng chương trình tạo ra nó Định dạng văn bản cũng cho phép người phát triển dễ dàng hơn trong việc gỡ lỗi (debug) của các ứng dụng Cũng giống như HTML, tập tin dưới định dạng văn bản XML không phải hoàn toàn dễ đọc Khác với HTML, các quy tắc trong các tập tin XML rất nghiêm ngặt Chỉ cần một thẻ mở mà quên đóng hay một thuộc tính không đặt giữa 2 dấu ngoặc kép sẽ làm cho tập tin XML trở nên vô dụng trong khi HTML vẫn có thể cho phép được hiển thị Đặc tả XML chính thức bắt buộc những ứng dụng khi đọc gặp lỗi trong tập tin XML phải dừng lại ngay tại dòng có lỗi và thông báo về lỗi đó
4 Kích thước tập tin XML
Trang 20Sử dụng XML như một định dạng văn bản và các thẻ phân định dữ liệu, các tập tin XML có kích thước lớn hơn so với những định dạng nhị phân Sử dụng định dạng văn bản hiển nhiên có những lợi thế và cũng có những điểm bất lợi tương ứng ở mức độ khác Do không gian lưu trữ trên đĩa hiện nay không còn đắt như trước đây, thêm vào đó những chương trình nén như zip và gzip có thể nén các tập tin rất tốt và rất nhanh, hơn nữa, giao thức truyền thông như HTTP cho phép nén dữ liệu trên đường truyền và tiết kiệm băng thông (tương tự như định dạng nhị phân mang lại), nên việc sử dụng XML là giải pháp chấp nhận được.
5 XML là tập hợp của những công nghệ
XML 1.0 đưa ra đặc tả định nghĩa các thẻ và các thuộc tính "Cộng đồng XML" là một tập hợp những modul dịch vụ hữu ích giúp hoàn thành các
siêu liên kết trong tập tin XML Xpointer và XFragments là những cú pháp
tương tự như URL, nhưng thay vì chỉ tới một tài liệu trên Web, Xpointer chỉ
ngữ cao cấp cũng có nhiệm vụ hiển thị trang web, XSL cần cho XML hơn so với CSS XSL dựa trên XSLT, một ngôn ngữ chuyển đổi dùng trong việc sắp xếp lại, thêm vào và xóa đi những thẻ và thuộc tính DOM là một bộ chuẩn
và 2 giúp người phát triển định nghĩa một cách chính xác cấu trúc của các tập tin định dạng dựa trên XML Nói cách khác, Schema cung cấp khả năng định nghĩa sự xuất hiện, kiểu dữ liệu của các thẻ, thuộc tính cùng các giới hạn và
http://www.isoc-vn.org/www/w3c/www.w3.org/TR để tìm hiểu thêm nhiều modul và công cụ
có sẵn hoặc đang phát triển)
6 Các phiên bản XML
Trang 21XML được bắt đầu được biết đến năm 1996 và đã được W3C tiến cử từ tháng 2-1998 Trước khi XML ra đời đã có SGML được phát triển trong những năm 80 - một siêu ngôn ngữ có thể tạo ra ngôn ngữ khác, trở thành một chuẩn ISO từ năm 1986 và được dùng cho những tài liệu dự án lớn HTML được phát triển từ ngăm 1990 Những người thiết kế ra XML đã chọn những phần tốt nhất của SGML và kết hợp với những kinh nghiệm từ HTML để tạo
ra XML sao cho có sức mạnh không thua kém SGML, đồng thời được phổ biến và dễ dàng sử dụng rộng rãi
7 XML dẫn HTML tới XHTML
XHTML là một ứng dụng định dạng tài liệu quan trọng XHTML của W3C được coi như "người kế vị" của HTML XHTML có nhiều thành phần giống như HTML Tuy vậy, cú pháp của XHTML được thay đổi đôi chút để thích hợp với các quy tắc của XML Một tài liệu "dựa trên XML" thừa kế cú pháp từ XML và cũng giới hạn nó theo cách đó (ví dụ: XHTML cho phép
"<p>" nhưng không cho "<r>"), XHTML cũng tăng thêm ý nghĩa vào cú pháp (đối với XHTML "<p>" biểu trưng cho "paragraph" và không biểu trưng cho
"price", "person" hoặc bất cứ thứ gì khác)
8 XML được modul hóa
XML cho phép bạn định nghĩa một định dạng tài liệu mới bằng cách kết hợp và dùng lại những định dạng khác Các định dạng được phát triển một cách độc lập có thể có những thành phần hoặc thuộc tính trùng tên (ví dụ:
"<p>" định dạng một đoạn văn trong HTML, nhưng lại có thể là viết tắt của
"person" trong XML) Để tránh việc lẫn lộn khi kết hợp các định dạng, XML cung cấp một kỹ thuật gọi là namespace XSL và RDF cho phép định dạng
cho phép lắp ghép một Schema mới từ hai Schema riêng biệt, để hợp nhất cấu trúc tài liệu một cách dễ dàng
9 XML là nền tảng cho RDF và Web có nghĩa
Trang 22Khung mô tả tài nguyên (Resource Description Framework - RDF) là một định dạng văn bản XML hỗ trợ việc mô tả tài nguyên và các ứng dụng siêu dữ liệu (metadata) như những playlist nhạc, tập album ảnh, các mục lục
Ví dụ, RDF có thể nhận diện được người trong một tập ảnh web album sử dụng thông tin của một danh sách các liên hệ cá nhân; sau đó chương trình nhận gửi thư sẽ tự động gửi message đến những người này thông báo cho họ biết ảnh của họ đang ở trên mạng Cũng như các văn bản tích hợp HTML, hệ thống menu và ứng dụng forms dùng để bắt đầu các Web gốc, ứng dụng tích hợp RDF và các tác nhân trong Semantic Web Cũng giống như ta cần có sự thống nhất về ý nghĩa của các từ được sử dụng trong giao tiếp, máy vi tính cần có cơ chế thống nhất để hiểu ý nghĩa các thuật ngữ, truyền đạt thông tin một cách hiệu quả Định nghĩa các thuật ngữ trong lĩnh vực (mua bán hay sản xuất) gọi là bản thể học, rất cần thiết trong Web Semantic RDF, bản thể học
và việc thể hiện ý nghĩa nhằm làm cho máy tính có thể giúp người ta tiến hành công việc một cách hiệu quả
10 XML cấp phép miễn phí, độc lập về nền tảng công nghệ và được hỗ trợ tốt
Khi chọn XML người sử dụng được hỗ trợ những công cụ thao tác với
nó Chọn XML cũng có phần giống việc chọn SQL cho các cơ sở dữ liệu: bạn vẫn xây dựng được cơ sở dữ liệu riêng đồng thời chương trình, quy trình vận hành có nhiều công cụ có sẵn và nhiều trợ giúp XML được cấp phép miễn phí có thể xây dựng những phần mềm của riêng mình giữa trên XML mà không cần phải mua bản quyền Tuy vậy XML không phải luôn là giải pháp tốt nhất
2.3 Một tài liệu XML thông dụng
Mục đích của việc tổ chức thông tin là để con người có thể đọc và hiểu được những gì cần truyền tải Ta xét một tập tin văn bản sau đây:
F10 Shimano Calcutta 47.76
F20 Bantam Lexica 49.99
Trang 23Theo cách tổ chức thông tin của tập tin trên, chúng ta thật khó để hiểu tập tin này muốn nói lên điều gì Bây giờ, chúng ta tổ chức tập tin trên theo định dạng một tài liệu XML một cách đơn giản nhất như sau:
Như vậy, bằng cách sử dụng định dạng XML, người dùng có thể hiểu
và biết được tập tin trên truyền tải nội dung gì
2.4 Tạo lập một tài liệu XML
Có thể sử dụng trình soạn thảo đơn giản nhất (chẳng hạn Notepad) để soạn thảo tài liệu XML, tuân thủ theo qui tắc sau:
Trang 242.5 Các thành phần của một tài liệu XML
Khai báo: Mỗi một tài liệu XML có một chỉ thị khai báo
Phần tử (Elements): Một tài liệu XML được cấu thành từ các phần
tử Một phần tử có thẻ mở và thẻ đóng Giữa thẻ mở và thẻ đóng là nội dung của phần tử đó Phần tử có thể chứa dữ liệu hoặc có thể lồng vào một phần tử khác
Phần tử gốc (root): Trong tài liệu XML, chỉ có một phần tử gốc, và phần tử này sẽ chứa tất cả những phần tử của tài liệu XML do chúng ta tạo ra
Theo ví dụ trên, ta thấy chỉ có một phần tử “Catalog”
Thuộc tính (Attributes): Như đã trình bày ở trên, một phần tử có thể chứa dữ liệu hoặc chứa phần tử khác hoặc cả hai Bên cạnh đó, phần tử có thể rỗng, khi đó nó có thể chứa thuộc tính Một thuộc tính chỉ là một sự lựa chọn
để gắn dữ liệu đến phần tử Một thuộc tính đặt trong thẻ mở của phần tử và chỉ ra giá trị của nó bằng cách sử dụng cặp “name=value”
Trang 25Như đã đề cập ở trên, tài liệu XML phải phù hợp với khuôn dạng là yếu
tố đầu tiên khi tạo lập tài liệu Phù hợp khuôn dạng nghĩa là mỗi tài liệu chỉ
có một nút gốc, mỗi phần tử phải có thẻ mở và thẻ đóng và phải lồng nhau chính xác Cuối cùng là tên thuộc tính chỉ xuất hiện một lần trong thẻ mở Nhưng một tài liệu XML hợp khuôn dạng không có nghĩa là nó hợp lệ Muốn kiểm tra sự hợp lệ của một tài liệu XML ta phải dựa vào DTD (Document Type Definition) hoặc Schema XML
2.6.1 DTD (Document Type Definition)
DTD và Schema là hai cách khác nhau để qui định những luật về nội dung của một tài liệu XML Tuy nhiên, DTD có một vài hạn chế Đầu tiên, tài liệu DTD không sử dụng định dạng XML, nghĩa là bản thân DTD không phải
là một tài liệu XML Điều thứ hai là kiểu dữ liệu có sẵn dùng để định nghĩa nội dung của một thuộc tính hoặc một phần tử thì rất giới hạn trong DTD Điều thứ ba, DTD không có khả năng mở rộng và không hỗ trợ namespace Cuối cùng, do không viết theo định dạng XML nên DTD khó viết và khó hiểu Vì vậy, việc sử dụng DTD để kiểm tra sự hợp lệ của một tài liệu XML
là không khả thi Chúng ta cần có một sự lựa chọn khác khả thi hơn để kiểm
Trang 26tra sự hợp lệ của tài liệu XML, đó là lược đồ XML - Schema XML Definition (XSD).
2.6.2 Lược đồ XML (Schema XML)
2.6.2.1 Định nghĩa lược đồ XML
Một lược đồ đơn giản chỉ là một tập những luật được định nghĩa lại để
mô tả nội dung dữ liệu của một tài liệu XML, nó tương tự như một định nghĩa cấu trúc bảng trong cơ sở dữ liệu quan hệ Trong lược đồ XML, chúng ta định nghĩa một tài liệu XML, những phần tử của nó, những kiểu dữ liệu của phần
tử và những thuộc tính liên quan và điều quan trọng nhất là mối quan hệ con” giữa những phần tử Ta có thể tạo lược đồ trong nhiều cách khác nhau Sau đây là một ví dụ một lược đồ XML
< xsd:element name = "Catalog"
msdata : IsDataSet = "true"
msdata : EnforceConstraints = "False" >
< xsd:complexType >
< xsd:choice maxOccurs = "unbounded" >
< xsd:element name = "Product" >
< xsd:complexType >
< xsd:sequence >
< xsd:element name = "ProductID"
type = "xsd:string"
minOccurs = "0" />
< xsd:element name = "ProductName"
type = "xsd:string"
minOccurs = "0" />
< xsd:element type = "xsd:string"
Trang 272.6.2.2 Các kiểu dữ liệu trong lược đồ XML
Khi tập tin XML hoạt động như một cơ sở dữ liệu và XSL, XPath được
sử dụng để truy vấn trên tập tin XML giống như một số ngôn ngữ truy vấn trong SQL, ta cần biết được vị trí của từng phần tử trong tập tin XML được khai báo ở đâu và với kiểu dữ liệu như thế nào Vì trong bất kỳ cơ sở dữ liệu quan hệ nào, ví dụ như SQL Server hoặc Oracle, tất cả những cột đều được định nghĩa kiểu dữ liệu và vì vậy thật sự cần thiết phải có kiểu dữ liệu trong lược đồ XML
Có hai loại kiểu dữ liệu trong lược đồ XML, đó là kiểu dữ liệu cơ bản
và kiểu dữ liệu mở rộng Kiểu dữ liệu cơ bản là kiểu dữ liệu gốc ví dụ như kiểu dữ liệu float Kiểu dữ liệu mở rộng dựa trên những kiểu dữ liệu khác, ví
dụ như kiểu integer dựa trên kiểu decimal
Kiểu dữ liệu cơ bản được định nghĩa trong lược đồ XML không nhất thiết phải giống hoàn toàn như trong cơ sở dữ liệu Sau đây là danh sách các kiểu dữ liệu của lược đồ XML
Tên kiểu dữ liệu Kiểu dữ liệu mở rộng Kiểu dữ liệu ràng buộc
base64Binary egativeInteger
Long
Trang 28Int Short Byte
2.7 XPath
Để xử lý một tài liệu XML, chương trình ứng dụng phải có cách di chuyển bên trong tài liệu để lấy ra giá trị của các phần tử (Elements) hay thuộc tính (Attributes) Do đó ngôn ngữ XML Path được ra đời (gọi tắt là Xpath) XPath đóng vai trò quan trọng trong việc truy vấn dữ liệu cho các chương trình ứng dụng cho phép lựa chọn hay sàng lọc ra những phần tử dữ liệu mong muốn để trao đổi hay hiển thị
Nếu khi làm việc với cơ sở dữ liệu, ta dùng các phát biểu SQL như SELECT FROM table_name WHERE để trích ra một số mẩu tin từ một bảng Làm việc với tập tin XML, XPath cho ta những biểu thức (expressions)
về điều kiện (criteria) giống như mệnh đề WHERE trong SQL
XPath là ngôn ngữ dùng để xử lý truy vấn trên tài liệu XML, cũng giống như SQL là một chuẩn để làm việc với cơ sở dữ liệu Một biểu thức
XPath có thể chỉ ra vị trí và mẫu để kết hợp Có thể áp dụng toán tử boolean, hàm string và toán tử số học trong biếu thức XPath để xây dựng câu truy vấn phức tạp trên tài liệu XML XPath cũng cung cấp một số hàm về số như tính tổng, hàm làm tròn (round), v.v…
2.8 Đặc điểm của XML
XML được xây dựng như là một chuẩn cho việc trình bày và trao đổi
dữ liệu trên web Tập đoàn W3C đã xây dựng chuẩn XML và những công nghệ liên quan bao gồm XML DOM, XPath, XSL, và XML Schema, Trong
đó XML DOM được sử dụng để tạo, thay đổi và duyệt qua tài liệu XML Xpath là ngôn ngữ dùng để truy vấn trên tài liệu XML XSL dùng để chuyển
Trang 29đổi tài liệu XML từ dạng này sang dạng khác XML Schema định nghĩa cấu trúc và kiểu dữ liệu cho những nút trong một tài liệu XML Tất cả những công nghệ này đã tạo nên sức mạnh cho XML Vì thế, XML ngày nay đang được
sử dụng rất phổ biến và tương lai sẽ là một chuẩn duy nhất được dùng trên web
Trang 30CHƯƠNG III TỔNG QUAN VỀ RDF 3.1 Giới thiệu
XML cung cấp cú pháp để mã hóa dữ liệu, RDF xác định cơ cấu biểu diễn dữ liệu Như tên gọi , RDF là một mô hình biểu diễn dữ liệu trên Web
Dữ liệu ở đây được hiểu là các tài nguyên trong RDF vocubulary (từ vựng)
Mô hình dữ liệu cơ sở của RDF đơn giản, bên cạnh tài nguyên (resources), RDF còn chứa thuộc tính (properties) và phát biểu (statements) Một property
là một khía cạnh, tính chất, thuộc tính, hay mối liên hệ mô tả cho một tài nguyên Một statement bao gồm một tài nguyên riêng biệt, thuộc tính được đặt tên và giá trị thuộc tính cho tài nguyên đó Giá trị này có thể là một tài nguyên hay một giá trị (literal value) hay dạng text tùy ý (free text)
Mặc dù thường được gọi là “ngôn ngữ” nhưng RDF thực chất là một
mô hình dữ liệu (data model) Nội dung cơ bản của nó chính là bộ ba attribute-value, còn gọi là một statement Dĩ nhiên, một mô hình dữ liệu trừu tượng cần một cấu trúc cú pháp để biểu diễn và truyền đạt, do đó RDF có cú pháp hoàn toàn tương tự như XML Chính vì vậy, nó thừa hưởng mọi ưu thế, lợi ích từ XML Tuy nhiên, cũng cần biết rằng vẫn tồn tại những cú pháp khác
object-để biểu diễn RDF, do đó cú pháp dựa trên nền XML không phải là thành phần tối cần thiết trong mô hình RDF
RDF độc lập với miền ứng dụng (domain - independent), tức là không giả định về một miền ứng dụng đặc biệt RDF hoàn toàn tùy thuộc vào người dùng để định nghĩa từ vựng (terminology) theo một lược đồ ngôn ngữ RDF Schema (RDFS) Gọi là RDF Schema không hoàn toàn chính xác, gợi lên rằng RDF Schema có mối quan hệ với RDF tương tự như XML Schema với XML Thực sự không phải vậy XML Schema đưa ra ràng buộc cấu trúc của tài liệu XML, trong khi đó RDF Schema định nghĩa từ vựng được sử dụng trong các mô hình dữ liệu RDF Trong RDFS, có thể định nghĩa các từ vựng, chỉ ra loại thuộc tính nào được dành cho loại đối tượng nào và những giá trị nào có thể nhận, cũng như mô tả mối quan hệ giữa các objects.Ví dụ:
Trang 31Lecturer is a subclass of academic staff member.
Câu này có nghĩa là tất cả các “lecturer” đều là “academic staff member” Điều đáng lưu ý ở đây là đã có một ý nghĩa mang tính định hướng được gán cho “is a subclass of”, tức là đã xuất hiện mối quan hệ “có hướng” Lúc này, nó không còn phụ thuộc vào các ứng dụng khi biên dịch khái niệm này Ý nghĩa mang tính định hướng này phải được “quan tâm” bởi các phần mềm xử lý RDF Nhờ khả năng “điều chỉnh” tính ngữ nghĩa của các thành phần, RDF/RDFS cho phép mô hình hóa miền ứng dụng riêng
Ví dụ sau đây sẽ minh họa mục đích quan trọng của RDF Schema:
cả Michael Maher và David Billington, bởi vì:
o Mọi “professor” đều là “academic staff member” (bởi vì “professor is a
subclass of academicStaffMember”)
o Các “Courses” chỉ được giảng dạy bởi các “academic staff member”
Loại thông tin này tạo ra việc sử dụng mô hình ngữ nghĩa cho các miền ứng dụng riêng biệt và không thể được hiện thực với XML hay RDF Tuy nhiên loại ngữ nghĩa điển hình này được khai báo trong RDF Schema Theo
đó, RDFS tạo ra thông tin mang tính ngữ nghĩa mà máy tính có thể truy cập được theo như viễn cảnh mà Semantic Web vạch ra
3.2 Các khái niệm dùng trong RDF
Trang 32Tài nguyên (resource): Có thể hiểu đơn giản một tài nguyên cũng giống như một đối tượng, một vật được đề cập Tài nguyên có thể là tác giả, quyển sách, nhà xuất bản, nơi chốn, con người, khách sạn, các câu truy vấn tìm kiếm v.v… Mỗi tài nguyên có một URI (Universal Resource Indentifier) Một URI
có thể là một URL (Unified Resource Locator) hoặc một định danh duy nhất nào đó Lưu ý rằng một định danh không nhất thiết phải cho phép truy cập tới tài nguyên Trong luận văn này giả định rằng URI định danh một tài nguyên web
Thuộc tính (Property): Thuộc tính là loại thông tin về tài nguyên, mô tả mối quan hệ giữa các tài nguyên, chẳng hạn như “written by”, “age”… Thuộc tính trong RDF cũng được xác định bởi URI (thường là URL) Ý tưởng dùng URI để xác định một vật và mối quan hệ giữa chúng là rất quan trọng, nó cho phép ta có cùng một mô hình đặt tên, do đó, giảm thiểu được những tình huống trùng tên, gây ra nhiều phiền toái đối với việc biểu diễn dữ liệu
Phát biểu (Statement): Một phát biểu xác định giá trị thuộc tính cho tài nguyên Một phát biểu là một bộ ba object-attribute-value gồm có tài nguyên, thuộc tính và giá trị Giá trị có thể là tài nguyên hoặc cũng có thể là giá trị kiểu chuỗi
Giả sử, ta có một phát biểu sau:
David Billington is the owner of the Web page http://www.cit.gu.edu.au/~db
Cách đơn giản để thể hiện phát biểu này là sử dụng định nghĩa về bộ ba object – attribute - value ở trên (”David Billington”, http://www.mydomain.org/site-owner, http://www.cit.gu.edu.au/~db) Ta có thể xem bộ ba (x, P, y) như là một biểu thức logic P(x,y), trong đó mệnh đề P chỉ ra mối quan hệ giữa x và y Thực ra, RDF biểu thị mệnh đề
Hình 3-1: Đồ thị biểu diễn bộ ba
Trang 33Để ý rằng thuộc tính “site-owner” và một trong hai đối tượng được xác định bởi URL, đối tượng còn lại được xác định bởi một chuỗi ký tự
Hình 3.1 biểu diễn đồ thị của phát biểu đã đưa ra Nó là một đồ thị có hướng với các node có gắn nhãn và các cung, các cung được nối trực tiếp từ tài nguyên (chủ ngữ - subject trong phát biểu) tới giá trị (túc từ - object trong phát biểu) Trong Trí tuệ nhân tạo, đồ thị này thường được gọi là mạng ngữ nghĩa (semantic net) Như đã nói, giá trị được nêu ra trong một phát biểu có thể là một tài nguyên Do đó, nó có thể được liên kết tới một tài nguyên khác như trong các bộ 3 sau:
o (http://www.cit.gu.edu.au/~db, http://www.mydomain.org/site-owner,
“David Billington”)
o (”David Bilington”, http://www.mydomain.org/phone, “3875507″)
o (”David Billington”, “http://www.mydomain.org/uses,
lý được Do đó, có một hình thức biểu diễn đáp ứng được yêu cầu đó là dựa
element của XML với thẻ là rdf:RDF Phần nội dung của element này đó là số lượng các mô tả (Descriptions) dùng thẻ rdf:Description Mỗi diễn giải như thế tạo nên một phát biểu về một tài nguyên, được xác định bằng một trong ba cách như sau:
Trang 34• Thuộc tính about: tham chiếu tới một tài nguyên đã có
• Thuộc tính ID : tạo ra một tài nguyên mới
• Không có tên: tạo ra một tài nguyên vô danh (anonymous )
Sau đây là ví dụ về cách thể hiện phát biểu đã đưa ra
Thành phần rdf:Description tạo ra một phát biểu về tài nguyên http://www.cit.gu.edu.au/~db, trong đó phần thuộc tính đóng vai trò như một thẻ và phần nội dung là giá trị của thuộc tính đó Việc mô tả đó tuân theo đúng một trật tự, nói cách khác cú pháp XML thiết lập một sự tuần tự (serialization) Thứ tự của các diễn giải (hay tài nguyên) không quan trọng,
mà tùy thuộc vào mô hình trừu tượng của RDF Điều này một lần nữa cho thấy rằng mô hình đồ thị là mô hình dữ liệu thực sự của RDF còn XML chỉ là hình thức biểu diễn cho đồ thị mà thôi
3.2.1 Namespace và cách khai báo
Namespace là một tập các tên (name), được định danh bởi các URI, được sử dụng trong các tài liệu XML như các element type và attribute name Một namespace được khai báo sử dụng một tập các thuộc tính có đã được định nghĩa Tên của một thuộc tính phải có xmlns hay xmlns: như là một tiếp đầu ngữ
Cách khai báo một namespace như sau:
Trang 35Sau đây là một ví dụ khai báo cho một namespace:
3.2.2 Qualified name(QName) và cách sử dụng
QName bao gồm một tiếp đầu ngữ( prefix), đã được gán trước bởi một URI tiếp theo là dấu ‘:’ và tên cục bộ Ví dụ, một QName prefix foo được gán cho một URI là http://example.org/somewhere/ nên ta có Qname foo:bar
là cách viết tắt của địa chỉ URI http://example.org/somewhere/bar
Cách định nghĩa một QName:
Cách dùng QName đối với kiểu dữ liệu là element
Trang 37prefix ex:, namespace URI: http://www.example.org/ (or
http://www.example.com/)
prefix xsd:, namespace URI: http://www.w3.org/2001/XMLSchema#
3.2.3 Mô hình RDF ( RDF Model)
Mô hình cơ bản của RDF gồm ba đối tượng sau:
Tài nguyên (Resources): là tất cả những gì được mô tả bằng biểu thức RDF Có thể là một trang web ví dụ như:
http://www.w3.org/Overview.html Cũng có thể là một phần của trang Web hoặc là một tập các trang Web, …
Thuộc tính (Properties): thuộc tính, đặc tính, hoặc quan hệ dùng để mô
tả tính chất của tài nguyên
Phát biểu (Statements): mỗi phát biểu gồm ba thành phần sau:
- Subject (Tài nguyên): địa chỉ hay vị trí tài nguyên được mô tả Thông thường, đây là chuỗi định URL hoặc URI
- Predicate (Vị ngữ): xác định tính chất của tài nguyên
- Object (Bổ ngữ): nội dung gán cho thuộc tính
http://www.example.org/index.html has a creator whose value is John Smith
Phát biểu trên được phân ra thành các phần sau:
Như đã biết, URI được dùng để mô tả mọi thứ có trên Web, nên ở phát biểu trên thay vì phải dùng từ “creator” và “John Smith”, sẽ dùng URI http://purl.org/dc/elements/1.1/creator và “http://www.example.org/staffid/85740”
để mô tả cho các khái niệm trên
Phát biểu trên được biểu diễn dưới dạng một bộ ba như sau:
Trang 38node-arc-Hình 3-3 Mối quan hệ giữa các thành phần trong triple.
Phát biểu trên được mô hình hóa bằng đồ thị có hướng sau:
Hình 3-4 Mô tả một phát biểu đơn giản bằng đồ thị
Ví dụ: Ta thêm các phát biểu sau cho cùng một subject
Trang 39http://www.example.org/index.html has a creation-date whose value
is August 16, 1999
http://www.example.org/index.html has a language whose value is
English
Được phân ra thành các thành phần sau:
http://www.example.org/index.htm
l
http://purl.org/dc/elements/1.1/creator http://www.example.org/staffid/8574
0 http://www.example.org/index.htm
Khi đó, các phát biểu được biểu diễn dưới cùng một đồ thị như sau:
Hình 3-5 Biểu diễn nhiều phát biểu cho cùng một subject
Mô hình trên chỉ ra rằng các đối tượng trong phát biểu RDF có thể là một URI hoặc cũng có thể là một giá trị Literal Ở hình trên ta dùng hình oval
để biểu diễn một resource là một URI và dùng hình chữ nhật để biểu diễn một resource là một giá trị Literal
3.2.3.3 Literal
Literal được sử dụng để biểu diễn các giá trị như con số, ngày tháng, chuỗi Bất cứ cái gì có thể biểu diễn bởi một giá tri Literal cũng có thể được biểu diễn dưới dạng một URI Một Literal có thể là object của một phát biểu
Trang 40nhưng không thể là subject hay là predicate Literal có hai kiểu sau : plain literal hay là typed literal.
• Một plain Literal là một chuỗi được kết hợp với một tag tùy ý Trong
ngôn ngữ tự nhiên ta có thể gọi nó là một kiểu text
Ví dụ sau:
Hình 3-6 Plain Literal biểu diễn cho tuổi của Mr John
Ví dụ trên mô tả tuổi của Mr John Smith là 27, ở đây ta biểu diễn tuổi của Mr John Smith là một kiểu plain literal Giá trị 27 ở đây chỉ là một chuỗi gồm 2 ký tự ‘2’ và ‘7’ Nhưng nếu ta muốn biểu diễn nó là một con số, một số nguyên thì phải làm như thế nào đây? Bằng cách dùng kiểu typed literal chúng ta sẽ có được cách định nghĩa mà chúng ta muốn
• Một typed literal được hình thành bằng cách kết hợp một chuỗi với một định danh URI để biểu diễn một kiểu dữ liệu đặc biệt nào nó Kết quả trả
về là một node trong đồ thị tương tự như kiểu literal Kiểu giá trị được biểu diễn bằng typed literal sẽ được ánh xạ đến kiểu giá trị đặc biệt mà ta đã khai báo thông qua URI Ở ví dụ trên , khi muốn biểu diễn tuổi của Mr John là một kiểu số nguyên, ta sẽ có cách khai báo như sau: