Để khắc phục các điểm yếu của thế hệ Web hiện tại, Tim Berner-Lee đã phác họa khái niệm “Semantic Web” Web ngữ nghĩa đầu tiên vào năm 1999 và nó có thể được hiểu như sau “Semantic Web nh
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 21
LỜI CAM ĐOAN
Tôi cam đoan rằng nội dung của luận văn này là kết quả nghiên cứu của bản thân, được thực hiện trên cơ sở nghiên cứu lý thuyết, khảo sát thực tiễn và dưới
sự hướng dẫn khoa học của: TS Cao Tuấn Dũng Tất cả những tham khảo từ các nghiên cứu liên quan điều được nêu rõ nguồn gốc một cách rõ ràng từ danh mục tài liệu tham khảo được đề cập ở phần sau của luận văn Các số liệu, mô hình, giải pháp thiết kế được đưa ra xuất phát từ thực tiễn và chưa từng công bố dưới bất kỳ hình thức nào
Tác giả luận văn
Phạm Tuấn Anh
Trang 32
LỜI CẢM ƠN
Tôi muốn bày tỏ ở đây lời cảm ơn sâu sắc gửi đến thầy hướng dẫn của tôi,
TS Cao Tuấn Dũng Thầy đã tận tình chỉ bảo tôi trong những ngày đầu tiếp cận hướng nghiên cứu của luận văn Sự nhiệt tình hướng dẫn, cộng với sự động viên, khích lệ thường xuyên của thầy đã giúp tôi vượt qua những khó khăn, phát huy hết sức khả năng trong tôi, nếu không luận văn này đã không thể hoàn thành Tôi biết rằng, bằng những lời thông thường nhất có lẽ cũng không chuyển tài hết lòng biết
ơn của tôi đối với thầy Dù vậy tôi vẫn viết ra đây và gửi đến thầy lời cảm ơn chân thành nhất
Tôi cũng muốn bày tỏ lòng biết ơn đối với tập thể các thầy cô Viện Công nghệ thông tin và Truyền thông, Viện Đào tạo sau đại học thuộc Trường Đại học Bách khoa Hà Nội, nơi tôi học tập và gắn bó nhiều năm qua, từ lúc học đại học đến lúc làm luận văn thạc sỹ Các thầy cô luôn tạo điều kiện để tôi hoàn thành tốt công việc của mình, và sự dạy dỗ của quí thầy cô đã giúp tôi trưởng thành Xin chân thành cảm ơn quí thầy cô!
Cảm ơn tập thể lớp Cao học Công nghệ thông tin 2009, chúng ta đã có quãng thời gian tươi đẹp biết bao, cùng nhau học tập và nghiên cứu
Tôi chân thành cảm ơn TS Lương Chí Thành, Viện trưởng Viện Công nghệ thông tin – Thư viện y học Trung ương, Bộ Y tế, nơi tôi đang công tác, đã động viên và tạo mọi điều kiện thuận lợi để tôi hoàn thành luận văn Cảm ơn các bạn đồng nghiệp cũng đã động viên và nhiệt tình chia sẻ kiến thức giúp tôi trong thời gian làm luận văn
Cuối cùng, chân thành cảm ơn gia đình, người thân, bạn bè luôn bên cạnh động viên, hỗ trợ về mặt tinh thần để tôi vượt qua khó khăn và hoàn thành tốt luận văn này
Trang 43
Danh mục các ký hiệu, các chữ viết tắt
API Application Programming Interface
RDFS Resource Description Framework Schema
SGML Standard Generalized Markup Language
SPARQL Simple Protocol and RDF Query Language
yte Tên ontology tác giả thiết kế phục vụ xây dựng Web ngữ
nghĩa
Trang 54
Mục lục
Lời cam đoan 1
Lời cảm ơn 2
Danh mục các ký hiệu, các chữ viết tắt 3
Mục lục 4
Danh mục các hình 6
Danh mục các bảng 7
Mở đầu 8
1 Đặt vấn đề 8
2 Mục tiêu luận văn 10
3 Cấu trúc luận văn 10
4 Phương pháp nghiên cứu 10
Chương 1 Tổng quan về Web ngữ nghĩa 11
1.1 Giới thiệu lịch sử phát triển của Web 11
1.2 URIs, HTTP và HTML 12
1.3 Từ HTML tới XML 14
1.4 Mô hình Trang vàng y tế hiện tại 16
1.5 Web ngữ nghĩa 17
1.4 Tổng kết 19
Chương 2 Ontology 20
2.1 Giới thiệu ontology 20
2.2 Định nghĩa ontology 20
2.3 Các phần tử trong ontology 21
2.4 Phân loại ontology 23
2.5 Ứng dụng của ontology trong Web ngữ nghĩa 24
2.6 Các ngôn ngữ ontology 28
2.7 Ngôn ngữ truy vấn ngữ nghĩa (SPARQL) 46
2.8 Tổng kết 53
Chương 3: Thiết kế ontology yte 55
Trang 65
3.1 Mục đích, phạm vi của ontology cần thiết kế 55
3.2 Kiến trúc hệ thống 57
3.3 Thiết kế cấu trúc ontology 57
3.4 Tìm kiếm ngữ nghĩa dựa trên ontology 60
3.5 Tổng kết 62
Chương 4: Xây dựng hệ thống trang vàng y tế dựa trên ontology yte 63
4.1 Cài đặt ontology sử dụng Protégé và Jena 63
4.2 Truy vấn dữ liệu SPARQL trên ontology .63
4.3 Xây dựng hệ thống 64
4.4 So sánh hệ thống mới xây dựng với hệ thống đang chạy 65
4.5 Tổng kết 67
Kết luận và kiến nghị 69
1 Kết quả về mặt nghiên cứu 69
2 Kết quả về chương trình ứng dụng 69
3 Hướng phát triển 69
Tài liệu tham khảo 71
Trang 76
Danh mục các hình
1.1 Mosaic – trình duyệt Web đầu tiên 12
1.2 URI- Hòa trộn giữa URL và URN 13
1.3 Sơ đồ kiến trúc Web ngữ nghĩa 17
2.1 Mô hình phương pháp kết hợp web service 26
2.2 Bộ ba RDF 32
2.3 Ví dụ về đồ thị RDF 32
2.4 Mô tả việc chia nhỏ giá trị một thuộc tính 34
2.5 Sử dụng nút trống 35
2.6 Mô hình RDF Container 38
3.1 Mô hình tổ chức của Bộ Y tế 56
3.2 Mô hình tổ chức của Sở Y tế 56
3.3 Kiến trúc hệ thống 57
3.4 Cây phân cấp Lĩnh vực y tế 58
3.5 Cây phân cấp Nhân sự 58
3.6 Cây phân cấp Đơn vị y tế 59
3.7 Phân cấp DataProperty 59
3.8 Phân cấp ObjectProperty 60
4.1 Truy vấn dữ liệu SPARQL 63
4.2 Giao diện trang chủ của hệ thống 64
4.3 Tìm kiếm với từ khóa “đức” 64
4.4 Tìm kiếm với từ khóa “đức” khi chọn lớp bệnh viện 65
4.5 Giao diện bản đồ số 65
4.6 Tìm kiếm từ khóa “đức” trên hệ thống cũ 67
Trang 9vụ tra cứu trực tuyến Những tính năng của công nghệ web cho phép kết nối và tăng cường giao lưu với người dùng tin, xóa đi sự cách trở, tạo ra môi trường tương tác thực sự giữa các đối tượng thông tin
Tuy nhiên tính đơn giản của các thế hệ Web hiện nay đã dẫn đến một số hạn chế Chúng ta có thể dễ dàng bị lạc hay đương đầu với một số lượng thông tin không hợp lý và không liên quan được trả về từ kết quả tìm kiếm trên Web Ta giả
sử trường hợp muốn tìm kiếm từ “Việt Đức”, với chức năng tìm kiếm hiện nay trên Web, kết quả trả về là tất cả các thông tin có đề cập đến Việt hay/và Đức như là một tên riêng, địa danh, blog, bài viết Như vậy câu hỏi đặt ra làm thế nào để chúng ta
có được một kết quả tìm kiếm chính xác và nhanh chóng theo đúng những gì chúng
ta mong muốn?
Các kỹ thuật Web hiện nay đã cản trở khả năng phát triển thông tin của nó Tính đơn giản của các kỹ thuật này đã gây ra hiện tượng “thắt cổ chai”, 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, chúng không thể truy xuất được những nội dung thật sự cần và do đó chúng chỉ hỗ trợ ở một mức giới hạn nào đó trong việc truy xuất và xử lý thông tin Kết quả là người sử dụng không những truy cập, xử lý thông tin mà còn phải rút trích và thông dịch mọi thông tin
Để khắc phục các điểm yếu của thế hệ Web hiện tại, Tim Berner-Lee đã phác họa khái niệm “Semantic Web” (Web ngữ nghĩa) đầu tiên vào năm 1999 và nó có thể được hiểu như sau “Semantic Web như một sự mở rộng của web hiện tại mà trong đó thông tin được xử lý một cách tự động bằng máy tính, làm cho máy tính và con người có thể hợp tác với nhau” Như vậy Semantic Web là một mạng lưới các
Trang 109
thông tin được liên kết theo một cách thức để máy có thể dễ dàng xử lý thông tin ở mức độ toàn cầu Chúng ta có thể hiểu đơn giản về nó như là một cách trình bày dữ liệu có hiệu quả trên mạng toàn cầu, hoặc là một cơ sở dữ liệu được kết nối toàn cầu Semantic Web là một sự tiến hóa mở rộng của Web hiện tại bằng cách cung
cấp các cơ chế để thêm dữ liệu mô tả ngữ nghĩa (semantic metadata) về các thực thể
và các khái niệm trên các tài liệu web hiện tại, dưới dạng các chú thích ngữ nghĩa
(semantic annotation), để máy tính có thể tích hợp và chia sẻ thông tin và dữ liệu giữa các ứng dụng một cách tự động Trên tinh thần đó, xác định các thực thể có tên trên các văn bản và thêm dữ liệu mô tả ngữ nghĩa về chúng trên chính các văn bản
đó, sử dụng các ontology, hoặc các cơ sở tri thức (knowledge base), đóng một vai
trò quan trọng trong việc đạt được mục tiêu phát triển web có ngữ nghĩa
Hiện nay cộng đồng người sử dụng Internet cũng như các nhà phát triển mong muốn rằng các trang web được bổ sung các chú thích ngữ nghĩa nhiều hơn nữa để tạo tiền đề cho việc phát triển các ứng dụng web có ngữ nghĩa Chúng ta có thể hình dung khi các trang web đã được bổ sung dữ liệu mô tả ngữ nghĩa về các thực thể và các khái niệm, với câu truy vấn về bệnh viện “Việt Đức” sẽ nhận được tài liệu nói về các chuyên ngành y khoa của bệnh viện Việt Đức, chứ không phải như các bộ máy tìm kiếm hiện hành trả về bất cứ tài liệu nào có cụm từ “Việt Đức”, mặc dù các tài liệu đó có thể đề cập đến Trường phổ thông trung học Việt Đức, thép Việt Đức,…
Để định hướng cho người sử dụng tra cứu, tìm kiếm thông tin trên Internet rất nhiều các trang web đã ra đời với mục đích trên Một trong những loại hình dịch
vụ tiêu biểu là trang vàng trực tuyến nhằm hỗ trợ người sử dụng rút ngắn thời gian tìm kiếm thông tin Cùng chung với sự phát triển đó, Viện Công nghệ thông tin - Thư viện y học Trung ương đã tiến hành xây dựng và phát triển sản phẩm trang vàng y tế trực tuyến (http://trangvangyte.vn) nhằm đáp ứng nhu cầu tìm kiếm thông tin trong chăm sóc sức khỏe cộng đồng Sản phẩm cũng đã áp dụng nhiều kỹ thuật mới hướng tới người sử dụng nhiều hơn: giao diện, hỗ trợ bản đồ chỉ đường…Trên trang vàng y tế trực tuyến hiện nay đã cập nhật khoảng 500 đơn vị, bao gồm: các
Trang 1110
bệnh viện tuyến Trung ương, các Sở Y tế, phòng khám…Trong tương lai số lượng này sẽ ngày một tăng cao, chính vì thế nhu cầu ứng dụng web ngữ nghĩa là cần thiết nhằm giúp người sử dụng tiếp xúc với thông tin chính xác, nhanh gọn hơn Đó cũng
là lý do tôi chọn đề tài luận văn “Xây dựng hệ thống Web ngữ nghĩa hỗ trợ tra cứu Trang vàng y tế trực tuyến dựa trên ontology ”
2 Mục tiêu luận văn
- Hiểu được lý thuyết về ontology và web ngữ nghĩa
- Xây dựng một tập từ vựng ontology nhằm mô tả về các cơ sở y tế và nhân
sự y tế
- Xây dựng hệ thống web ngữ nghĩa hỗ trợ tra cứu Trang vàng y tế trực tuyến dựa trên ontology đã thiết kế
- So sánh giữa hệ thống web ngữ nghĩa mới xây dựng với hệ thống cũ
3 Cấu trúc luận văn
Ngoài phần mở đầu, kết luận và phụ lục, luận văn được chia thành 4 chương: Chương 1: Tổng quan về Web ngữ nghĩa
Chương 2: Ontology
Chương 3: Thiết kế ontology yte
Chương 4: Xây dựng hệ thống trang vàng y tế dựa trên ontology yte
4 Phương pháp nghiên cứu
- Tìm hiểu các cơ sở lý thuyết về ontology và web ngữ nghĩa: RDF, RDFS, OWL
- Sử dụng Protégé xây dựng một tập từ vựng ontology nhằm mô tả về các lớp thuật ngữ y tế
- Tìm hiểu về thư viện JENA, ngôn ngữ lập trình JAVA, ngôn ngữ truy vấn
dữ liệu SPARQL
Trang 1211
CHƯƠNG 1 TỔNG QUAN VỀ WEB NGỮ NGHĨA 1.1 Giới thiệu lịch sử phát triển của Web
“Bất kỳ một cá nhân nào, đang sử dụng bất kỳ loại máy tính nào, ở bất kỳ nơi nào, đều có thể truy cập được dữ liệu trên Internet chỉ nhờ sử dụng một chương trình đơn giản” đó là ý tưởng của Tim Berner-Lee – Một nhà khoa học tại phòng thí nghiệm vật lý Châu Âu (CERN) vào năm 1989
Sau đó Tim Berner-Lee đã viết một chương trình lưu trữ dữ liệu tên là
“Enquire” là cơ sở để sau này phát triển chương trình cho Web server và Web client đầu tiên Chương trình này được bắt đầu vào tháng 12 năm 1990 tại CERN và được quảng bá vào mùa hè năm 1991 Ý tưởng của ông ta là sự phối hợp của 3 thành phần chính:
- Một giao thức chuẩn để có thể tìm kiếm các siêu văn bản và các tài liệu khác được gọi là HTTP
- Mỗi một nguồn thông tin sẽ có một định danh duy nhất trên toàn cầu được gọi là URI
- Một định dạng đơn giản cho việc tạo ra các siêu văn bản và giúp chúng ta
có thể đọc được nó, bao gồm cả đồ họa và các định dạng đa phương tiện khác, đó là HTML
Năm 1993, một sinh viên trẻ tên là Marc Andessen, trường đại học Illinois tại Urbana-Champaign, đã tạo ra một giao diện đồ họa đầu tiên dành cho Web được gọi là Mosaic Ban đầu nó được phát triển trên nền X Windows, một môi trường dựa vào Unix (lúc đó Unix là hệ điều hành phổ biến nhất cho các hệ thống máy tính
có kết nối Internet) Sau đó, những người lập trình Mosaic bắt đầu nghĩ ra các phần
mở rộng tùy biến dành cho HTML nhằm nâng cao các tính năng của bộ trình duyệt này
Trang 1312
Hình 1.1: Mosaic – trình duyệt Web đầu tiên
Không giống với những dịch vụ khác của Internet, WWW cung cấp thông tin rất đa dạng, bao gồm: văn bản, hình ảnh, âm thanh, video, nghĩa là tất cả những gì chúng ta có thể cảm nhận được Nhưng vấn đề lý thú nhất của WWW nằm ở khía cạnh khác Trang Web bạn nhìn thấy trên màn hình máy tính có khả năng liên kết với những trang Web khác, dẫn ta đến với những nguồn thông tin khác Khả năng này có được nhờ thông qua các “siêu liên kết” (hyperlink) Bằng những siêu liên kết này, các trang Web có thể liên kết với nhau thành một mạng chằng chịt, trang này chỉ tới trang khác, cho phép ta chu du trên biển cả thông tin
1.2 URIs, HTTP và HTML
Sự phát triển và thành công của Web trong những năm gần đây dựa trên ba thành phần chính, đó là: Uniform Resource Identifiers (URIs), Hypertext Transfer Protocol (HTTP) và Hypertext Markup Language (HTML)
1.2.1 URI – Định danh tài nguyên duy nhất
URI là một chuỗi ký tự nhằm xác định một nguồn tài nguyên nào đó trên Internet Khái niệm URI có vẻ như hòa trộn giữa URL (Uniform Resource Locators) và URN (Uniform Resource Names) URL được dùng để tham chiếu tới tài nguyên trên Internet, mang lại khả năng siêu liên kết cho các trang mạng Các tài nguyên khác nhau được tham chiếu tới bằng địa chỉ, chính là URL URN cũng là một loại URI nhưng dùng để xác định tài nguyên dựa theo theo tên (cách gọi), chẳng hạn namespace trong các tệp XMLs
Trang 14Hình 1.2: URI- Hòa trộn giữa URL và URN
Cấu trúc URI thông thường như sau:
Scheme: [//máy_chủ_phục_vụ][:cổng][/đường_dẫn][?truy_vấn][#mục_con]
- Scheme thường là tên giao thức: http, fpt hoặc mailto
- Máy chủ phục vụ hay còn gọi là tên miền
- Cổng: có thể không cần
- Đường dẫn: địa chỉ tuyệt đối trên máy chủ phục vụ tài nguyên
- Truy vấn: có thể không cần
- Mục con: có thể không cần
URI thường được dùng trong các trường hợp sau:
Địa chỉ của một trang Web (bao gồm các dạng tài liệu, dịch vụ đầu cuối)
Namespaces trong XML hoặc một ngôn ngữ tương tự khác
Định danh sự vật và khái niệm trong RDF
Khóa duy nhất
1.2.2 HTTP – Giao thức truyền tải siêu văn bản
HTTP là giao thức nhằm để truyền tải thông tin giữa máy chủ cung cấp dịch
vụ (Web server) và máy sử dụng dịch vụ (Web client) theo kiểu yêu cầu – trả lời (request-response)
Trang 1514
Hiện nay, HTTP là giao thức được sử dụng phổ biến cho hầu hết các ứng dụng Web-based nhằm trao đổi tài nguyên trên WWW
1.2.3 HTML – Ngôn ngữ đánh dấu siêu văn bản
HTML là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web, tài liệu là các tập tin văn bản đơn giản Ngôn ngữ HTML dùng các thẻ hoặc các đoạn mã lệnh để chỉ cho trình duyệt web (Web browser) cách hiển thị các thành phần như: văn bản, đồ họa…
Những tính năng cơ bản của HTML:
- Liên kết các tài liệu khác nhau
- Trình diễn văn bản có cấu trúc: danh sách, bảng biểu
tổ chức ISO (International Organization for Standards) chuẩn hoá năm 1986
Để hiểu đúng về XML và phân biệt với HTML, cách đơn giản nhất là bắt đầu bằng một ví dụ HTML HTML sử dụng tập thẻ (tag) hữu hạn để định ra thông tin cơ bản về cấu trúc tài liệu Do là ngôn ngữ đánh dấu nên HTML rất dễ sử dụng, bất kỳ
ai cũng có thể xây dựng từ đầu trang Web cơ bản theo yêu cầu riêng
XML khá giống HTML, hai ngôn ngữ này có cùng luật cú pháp Tuy nhiên, tính linh hoạt của XML cho phép bạn tạo và sử dụng tập thẻ và thuộc tính riêng để nhận biết các phần tử cấu trúc và nội dung tài liệu XML không chỉ đơn thuần là ngôn ngữ đánh dấu, nó có phương pháp định ra nội dung tài liệu, tương tự như HTML định hình thức tài liệu trên Web Với HTML, người thiết kế đánh dấu văn bản, hình ảnh cùng các thành phần khác của trang Web bằng tập thẻ mà không liên
Trang 1615
quan gì tới ý nghĩa tài liệu; đoạn mã HTML chỉ nói lên cách hiển thị nội dung tài liệu qua trình duyệt XML không chỉ định ra hình thức mà còn cả nội dung tài liệu
XML được xem là công cụ mạnh hơn HTML do nó mang lại thông tin đầy
đủ về dữ liệu XML thực sự là một siêu ngôn ngữ mô tả dữ liệu, là một cơ cấu cho phép biểu diễn các ngôn ngữ khác một cách chuẩn hóa Nói cách khác XML chỉ cung cấp định dạng dữ liệu cho tài liệu được cấu trúc, không có đặc tả từ vựng thực
sự Vì vậy XML phổ biến toàn cầu, chúng ta có thể tạo những ngôn ngữ đánh dấu
mà chúng tùy ý sử dụng cho các kiểu tài liệu không giới hạn - đây là chuẩn đang phổ biến Bên cạnh nhiều ngôn ngữ riêng biệt, một số ngôn ngữ chuẩn được định nghĩa trong XML (còn gọi là các ứng dụng XML) Ví dụ XHTML là một định nghĩa lại của HTML 4.0 trong XML
Các thực thể đánh dấu chính trong XML là các đơn vị (element) Chúng thông thường bao gồm một thẻ mở và một thẻ đóng Ví dụ < FisrtName > và </ FisrtName > Các element có chứa các element khác hay text Nếu một element không có nội dung, nó có thể được viết ngắn gọn như < FisrtName /> Các element nên được xếp lồng nhau, tag mở và tag đóng của element con phải nằm trong tag
mở và tag đóng của element cha
Mỗi một tài liệu XML phải có chính xác một root element Các element có thể chứa thuộc tính với giá trị nào đó, có định dạng là: "từ = giá trị" bên trong tag của một element Ví dụ < FisrtName ="Phan"> Dưới đây là một đoạn XML:
Trang 171.4 Mô hình Trang vàng y tế hiện tại
Trang vàng y tế (htttp://trangvangyte.vn) được phát triển trên công nghệ ASP.Net 2.0, ngôn ngữ lập trình C#, hệ quản trị CSDL MS SQL Server 2005 Cách thức tìm kiếm vẫn là so sánh chính xác từ khóa với một số trường trong CSDL và đưa ra kết quả Cấu trúc các bảng, các trường trong CSDL đã được thiết lập từ
Trang 1817
trước, nên việc thêm bớt các thành phần rất khó khăn Cũng như thực trạng của các trang web thế hệ hiện tại, Trang vàng y tế cũng cần mô hình biểu diễn thông tin tốt hơn từ đó hỗ trợ việc tìm kiếm tốt hơn
1.5 Web ngữ nghĩa
Web truyền thống đã thay đổi và phát triển nhiều, trở thành nguồn thông tin lớn nhất cũng như là phương tiện chia sẻ và trao đổi thông tin thuận tiện nhất hiện nay Nền tảng Web hiện tại cung cấp nguồn thông tin rất lớn nhưng chỉ hỗ trợ cho con người xử lý Điều đó gây nhiều khó khăn trong việc tìm kiếm, rút trích và quản
lý thông tin đối với con người Để giải quyết vấn đề này,Berners-Lee Tim, Hendler James, và Lassila Ora đề xuất ra Web ngữ nghĩa (Semantic Web) [26] Web ngữ nghĩa được định nghĩa như là sự mở rộng của Web hiện tại mà trong đó thông tin được định nghĩa rõ ràng, giúp cho máy tính và con người cộng tác làm việc tốt hơn Web ngữ nghĩa cho phép diễn tả ngữ nghĩa của dữ liệu một cách tường minh để máy tính có thể hiểu được
Hình 1.3: Sơ đồ kiến trúc Web ngữ nghĩa
Các thành phần của Web ngữ nghĩa được chia thành ba nhóm chính như sau:
- Ontology: ngôn ngữ dùng để biểu diễn ngữ nghĩa thông tin Ontology là bản mô tả một cách tường minh các khái niệm trong một miền ứng dụng nào đó
Trang 19- Công cụ tạo dựng ngữ nghĩa cũng như cấu trúc hạ tầng của Web có ngữ nghĩa Để tạo và sử dụng Web có ngữ nghĩa cần có sự hỗ trợ của các loại công cụ sau:
+ Công cụ tạo và liên kết ontology Các công cụ này cho phép tạo ra khái niệm, thuộc tính của khái niệm, quan hệ và phân cấp giữa các khái niệm Công
cụ loại này thường có giao diện đồ hoạ và tuân theo chuẩn của ứng dụng Web Ví
dụ điển hình là Protégé
+ Công cụ chú giải (annotation tools) Công cụ chú giải cho phép tạo phần ngữ nghĩa, tức là giá trị cụ thể của khái niệm, thuộc tính và quan hệ từ dữ liệu thông thường phù hợp với một ontology nào đó Giá trị tạo ra có thể được biểu diễn bởi các ngôn ngữ được nhắc tới ở phần trên Hiện nay đa số công cụ chỉ cho phép chú giải bằng tay, do vậy quá trình chú giải thường đòi hỏi nhiều thời gian
+ Các kho chứa Ontology ở dạng model, graph có thể được lưu trữ lâu dài trên các hệ cơ sở dữ liệu
+ Dịch vụ suy diễn Dịch vụ suy diễn giúp cho máy tính có thể xử lý được tự động, dựa tên một mô hình có sẵn nhưng áp dụng suy diễn vào thì máy tính
có thể tìm ra những tri thức mới
- Các ứng dụng: Web ngữ nghĩa giúp nâng cao mức độ thông minh và tính
tự động hoá của nhiều ứng dụng hiện có Những lĩnh vực ứng dụng đặc biệt hứa hẹn cho Web ngữ nghĩa: quản lý tri thức, thương mại điện tử,…
1.6 Tổng kết
Web truyền thống đã có sự phát triển đáng kể và có những yếu tố thành công nhất định Điều đó được dựa trên ba thành phần chính: một định danh tài nguyên duy nhất trên toàn cầu (URI), một giao thức để truyền tải thông tin theo mô hình
Trang 20Sự phát triển của Web ngữ nghĩa cho thấy tiềm năng để vượt qua những hạn chế của Web hiện tại Web ngữ nghĩa cho phép diễn tả ngữ nghĩa của dữ liệu một cách tường minh để máy tính có thể hiểu được
Trang 2120
CHƯƠNG 2 ONTOLOGY 2.1 Giới thiệu ontology
Ontology trở thành một lĩnh vực nghiên cứu phổ biến có mặt trong nhiều lĩnh vực từ xử lý ngôn ngữ tự nhiên, công nghệ tri thức, các hệ thống trao đổi, tích hợp thông tin cho đến biểu diễn và quản lý tri thức Ontology cung cấp và chia sẻ tri thức về một domain, giúp dễ dàng giao tiếp giữa người và các hệ thống ứng dụng Ontology được xây dựng để cung cấp các nguồn thông tin có ngữ nghĩa mà máy tính có thể xử lý và thao tác được nhưng đồng thời vẫn có thể giao tiếp được giữa người và phần mềm
2.2 Định nghĩa ontology
Thuật ngữ ontology bắt nguồn từ triết học Trong ngữ cảnh của triết học, ontology là tên của một mảng nghiên cứu về bản chất của sự tồn tại vạn vật trong tự nhiên, một nhánh của siêu hình học, quan tâm xác định các loại sự vật nào là thật sự tồn tại và bằng cách nào mô tả chúng Chẳng hạn như quan sát thế giới thực được hình thành từ những sự vật cụ thể mà có thể nhóm chúng thành các lớp trừu tượng dựa trên các tính chất chung của chúng [2] Những năm gần đây, ontology được biết đến rộng rãi trong lĩnh vực khoa học máy tính Cùng với sự nổi lên của Web ngữ nghĩa, ontology vừa được xem là “linh hồn” của Web ngữ nghĩa, vừa mang một ý nghĩa khác xa so với nghĩa ban đầu của nó Thật vậy, một định nghĩa của các ontology được chấp nhận rộng rãi trong cộng đồng khoa học máy tính hiện nay là:
“một ontology là đặc tả của một sự khái niệm hóa” [12], [13] Một “sự khái niệm hóa” (conceptualization) là một góc nhìn đơn giản hóa về thế giới (world) mà ta mong muốn biểu diễn nhằm một mục đích nào đó [12] Sự đặc tả (specification) là tường minh và hình thức Đặc tả tường minh nghĩa là các khái niệm và các ràng buộc về ngữ nghĩa và quan hệ giữa các khái niệm được định nghĩa cụ thể và rõ ràng Đặc tả hình thức là nhằm cho máy tính hiểu và suy diễn Luận án này sử dụng ontology theo nghĩa của cộng đồng khoa học máy tính
Theo nghĩa đó, ontology là một danh từ đếm được và được sử dụng để đề
Trang 2221
cập đến một sản phẩm kỹ nghệ, bao gồm một bộ từ vựng được sử dụng để mô tả một thực tại nào đó và một tập các giả định tường minh về ý nghĩa của các từ trong
bộ từ vựng [13] Tập từ vựng và giả định đó hình thành nên các khái niệm và quan
hệ giữa các khái niệm trong ontology Nói một cách khác, một ontology là một sự biểu diễn không nhập nhằng của các khái niệm và mối quan hệ giữa các khái niệm [15] Biểu diễn không nhập nhằng hiểu theo nghĩa là sự biểu diễn đó vừa giúp cho con người nắm bắt một cách chính xác ý nghĩa của các khái niệm, vừa có ngữ nghĩa hình thức để máy có thể nắm bắt và suy diễn
Như vậy, ontology định nghĩa khung tổng quát để mô tả các thực thể, các thuộc tính và mối quan hệ cụ thể giữa chúng (gọi chung là các tính chất) Khung tổng quát đó bao gồm các khái niệm (các lớp và các tính chất), và các tiên đề thiết lập các ràng buộc cho các tính chất và biểu diễn mối quan hệ giữa các lớp Hiện nay
có nhiều quan niệm khác nhau về ontology Một quan niệm cho rằng một ontology định nghĩa khung tổng quát để mô tả các thực thể, và tập các thực thể cùng với các tính chất của chúng được xây dựng dựa trên ontology đó hình thành nên một cơ sở tri thức [15], [25]; nghĩa là ontology và cơ sở tri thức là tách biệt Cơ sở tri thức theo cách hiểu của các tác giả vừa nêu là bao gồm cả khung tổng quát, các thực thể, cùng với thuộc tính và quan hệ cụ thể giữa các thực thể này Tuy nhiên, Noy và McGuinness (2001) cũng thừa nhận rằng ranh giới giữa ontology và cơ sở tri thức
là mờ nhạt [19]
Trong khi đó, có một quan niệm khác cho rằng ontology bao gồm một lược
đồ và một cơ sở tri thức [2], [5], [11], [14], [22] Lược đồ định nghĩa khung tổng quát như trên Cơ sở tri thức chứa các thực thể, các thuộc tính và mối quan hệ giữa chúng Như vậy, trên thực tế có nhiều tài liệu sử dụng thuật ngữ ontology hoặc cơ
sở tri thức với ý nghĩa bao gồm cả khung tổng quát, các thực thể, cùng với thuộc tính và quan hệ cụ thể giữa các thực thể này
2.3 Các phần tử trong ontology
- Các cá thể (Individuals): Các cá thể là các thành phần cơ bản, nền tảng
của một ontology Các cá thể trong một ontology có thể bao gồm các đối tượng cụ
Trang 2322
thể như con người, động vật, cái bàn cũng như các cá thể trừu tượng như các thành viên hay các từ Một ontology có thể không cần bất kỳ một cá thể nào, nhưng một trong những lý do chính của một ontology là để cung cấp một ngữ nghĩa của việc phân lớp các cá thể, mặc dù các cá thể này không thực sự là một phần của ontology
- Các lớp (Classes): Các lớp là các nhóm, tập hợp các đối tượng trừu
tượng Chúng có thể chứa các cá thể, các lớp khác, hay là sự phối hợp của cả hai Các ontology biến đổi tuỳ thuộc vào cấu trúc và nội dung của nó: Một lớp có thể chứa các lớp con, có thể là một lớp tổng quan (chứa tất cả mọi thứ), có thể là lớp chỉ chứa những cá thể riêng lẻ, Một lớp có thể xếp gộp vào hoặc bị xếp gộp vào bởi các lớp khác Mối quan hệ xếp gộp này được sử dụng để tạo ra một cấu trúc có thứ bậc các lớp
- Các thuộc tính (Properties): Các đối tượng trong ontology có thể được
mô tả thông qua việc khai báo các thuộc tính của chúng Mỗi một thuộc tính đều có tên và giá trị của thuộc tính đó Các thuộc tính được sử dụng để lưu trữ các thông tin mà đối tượng có thể có Ví dụ, đối với một đơn vị ngành y tế có thể có các thuộc tính: Tên_cơ_quan, địa_điểm, giám_đốc, số_đt… Giá trị của một thuộc tính có thể
có các kiểu dữ liệu phức tạp
- Các mối quan hệ (Relation): Một trong những ứng dụng quan trọng của
việc sử dụng các thuộc tính là để mô tả mối liên hệ giữa các đối tượng trong ontology Một mối quan hệ là một thuộc tính có giá trị là một đối tượng nào đó trong ontology Một kiểu quan hệ quan trọng là kiểu quan hệ xếp gộp (subsumption) Kiểu quan hệ này mô tả các đối tượng nào là các thành viên của các lớp nào của các đối tượng Hiện tại, việc kết hợp các ontology là một tiến trình được làm phần lớn là thủ công, do vậy rất tốn thời gian và đắt đỏ Việc sử dụng các ontology là cơ sở để cung cấp một định nghĩa thông dụng của các thuật ngữ cốt lõi
có thể làm cho tiến trình này trở nên dễ quản lý hơn Hiện đang có các nghiên cứu dựa trên các kỹ thuật sản sinh để nối kết các ontology, tuy nhiên lĩnh vực này mới chỉ hiện hữu về mặt lý thuyết
Trang 2423
2.4 Phân loại ontology
Tùy theo mức độ tổng quát của ontology, chúng ta có thể phân ontology
thành những loại như sau:
Domain ontology diễn tả tri thức của một domain cụ thể nào đó (ví dụ: ontology về y khoa: MeSH hay ontology về sinh học: Gene Ontology) Những ontology này cung cấp từ vựng về những khái niệm trong một domain và quan hệ giữa chúng
Metadata ontology cung cấp từ vựng dùng để mô tả nội dung của các nguồn thông tin trực tuyến (ví dụ ontology Dublin Core)
Generic hay common sense ontology hướng đến thể hiện tri thức chung, cung cấp các ý niệm và khái niệm cơ bản về thời gian, không gian, trạng thái, sự kiện, … Do đó, các ontology này có thể sử dụng giữa các domain khác nhau Trong
đó có thể kể đến WordNet: bộ ontology này được xây dựng nhằm mục đích mô tả tiếng Anh bằng cách mô tả từng thuật ngữ trong tiếng Anh cùng các quan hệ cơ bản giữa chúng như đồng nghĩa, phản nghĩa, … Ngoài ra còn có thể kể đến CYC [9]: ontology này mô tả chi tiết các tri thức như không gian, thời gian, và cung cấp các quan hệ giữa chúng
Representational ontology không đại diện cho một domain nào cụ thể Những ontology này cung cấp những thực thể được dùng để đại diện mà không báo
nó đại diện cho cái gì Một trong những ontology thuộc loại này là Frame Ontology của Gruber [12], ontology này định nghĩa những khái niệm như là frame, slot, và các ràng buộc slot cho phép biểu diễn tri thức theo hướng đối tượng hoặc theo frame-based
Những loại ontology khác được gọi là method và task ontology Task ontology [6] cung cấp các thuật ngữ cụ thể cho những tác vụ cụ thể và method ontology cung cấp các thuật ngữ cụ thể cho các phương pháp giải quyết vấn đề cụ thể (Problem Solving Method – PSM [6])
2.5 Ứng dụng của ontology trong Web ngữ nghĩa
Trang 25có thể kết nối đến ontology nhằm cung cấp ngữ nghĩa và quan hệ Một số các hệ thống bao gồm:
Hệ thống Magpie [16] do Domingue và Dzbor giới thiệu vào năm 2004, thực hiện việc gán nhãn các trang web bằng metadata một cách tự động với phương pháp
so khớp văn bản với các thể hiện cụ thể của các khái niệm trong ontology Mục tiêu của hệ thống này là giúp cung cấp những cách nhìn cụ thể và cá nhân hóa theo người dùng cụ thể về những trang web Bởi vì những người dùng khác nhau sẽ có mức độ nhận thức cũng như nền tảng kiến thức khác nhau, cũng như sự quen thuộc của người dùng đối với thông tin được thể hiện là không giống nhau Nhược điểm chính của hệ thống Magpie là hệ thống chỉ có thể so khớp với các thể hiện đã có sẵn trong ontology chứ không thể thực hiện với các thể hiện mới xuất hiện
Hệ thống PANKOW [20] (Pattern-based Annotation through Knowledgeon the Web) do Cimiano cùng các đồng sự đề xuất, tự động phân loại các thể hiện từ văn bản theo một ontology đã cho sẵn Hệ thống dùng các khuôn mẫu có dạng
<INTANCE><CONCEPT> (ví dụ: the Palace hotel) và <INTANCE> is a<CONCEPT> (ví dụ: Palace is a hotel) cho quá trình phân loại của mình Các khuôn mẫu này được xây dựng bằng cách kết hợp tất cả các tên riêng trong đoạn văn bản với các khái niệm trong một ontology đã cho sẵn Mỗi kết hợp này được kiểm tra sử dụng Google Điểm mạnh của hệ thống là không cần qua quá trình xử lý ngôn ngữ tự nhiên, cũng như quá trình huấn luyện Mọi thông tin đều có sẵn trên web Nhưng đây cũng chính là điểm yếu của hệ thống, vì phương pháp này không quan tâm đến ngữ cảnh mà các thể hiện xuất hiện vì vậy làm cho việc phân loại các thể hiện gặp khó khăn khi gặp các thể hiện có cùng tên nhưng thuộc về các lớp khác
Trang 26có được đề cập trong TAP ontology Sau đó, trong quá trình khử nhập nhằng, SemTag sử dụng mô hình không gian-vector để gán chính xác các lớp khái niệm hoặc để loại bỏ những thể hiện không thực sự liên quan đến một lớp trong TAP
2.5.2 Tìm kiếm và tích hợp các web service ngữ nghĩa sử dụng ontology
Sự phát triển nhanh chóng của các web service ngữ nghĩa đã dẫn nhu cầu cần
có các cơ chế khám phá các web service Các web service ngữ nghĩa dùng các ontology khác nhau để mô tả Vì vậy cần thiết có một hệ thống tìm kiếm web service ngữ nghĩa hỗ trợ tìm kiếm trên các ontology khác nhau Nhóm tác giả Ngan Duy Le và Goh Angela [17] đã đề xuất phương pháp tìm kiếm web service ngữ nghĩa trên các ontology khác nhau được viết trên các ngôn ngữ ontology khác nhau (DAML-S và OWL-S) Người dùng sẽ đưa ra mô tả về web service mà họ mong muốn, hệ thống sẽ tìm kiếm trong cơ sở dữ liệu các hồ sơ mô tả về các web service ngữ nghĩa mà nhà cung cấp đưa ra, sau đó tiến hành so sánh và đưa ra web service thỏa mãn yêu cầu người dùng Cách thức đánh giá hai khái niệm được dùng để mô
tả web service trong hai ontology khác nhau được nhóm tác giả đưa ra là tính toán
độ tương đồng về ngữ nghĩa của chúng dựa theo phương pháp của Marc Ehrig và York Sure [18]
Một nhu cầu khác đồng thời xuất hiện với sự phát triển nhanh chóng của web service chính là nhu cầu kết hợp các web service lại với nhau để tạo thành web service mới thỏa mãn công việc của người dùng đưa ra Các web service được mô tả bằng ontology, và các hệ thống dựa vào mô tả này để tìm kiếm ontology phù hợp và kết hợp chúng lại Nhóm tác giả Shin Dong-Hoon, Lee Kyong-Ho, và Suda Tatsuya
đề xuất phương pháp kết hợp web service tự động dựa vào chức năng của chúng [8]
Trang 2726
Phương pháp của nhóm tác giả này đề xuất bao gồm ba bước: tạo ra danh sách ứng viên các web service, tìm đường đi trên đồ thị service, và kết hợp các web service
Hình 2.1: Mô hình phương pháp kết hợp web service
2.5.3 Ứng dụng các kỹ thuật của web ngữ nghĩa trong các lĩnh vực khác có
sử dụng ontology
Ontology là một trong những thành phần quan trọng trong web ngữ nghĩa (thời điểm ontology phát triển mạnh mẽ) Ứng dụng ontology trong khoa học thông tin, được nghiên cứu để phục vụ nhu cầu trao đổi thông tin
Ngày nay các công nghệ về web ngữ nghĩa đã được ứng dụng sang các lĩnh vực khác như:
- Hệ thống quản lý truy cập và bảo mật thông tin
Các kỹ thuật, phương pháp, và kết quả được dùng trong lĩnh vực web ngữ nghĩa được sử dụng vào trong các hệ thống quản lý việc truy cập trên mạng hoặc bảo mật thông tin: trong đó những hệ thống trực tuyến định nghĩa sẵn các chính sách để quy định quyền truy cập (access control) đối với từng nhóm người dùng cũng như các quy luật về việc truy cập Ví dụ: một số các policy như giới hạn thời gian sử dụng, số lượng download một tài nguyên, hay truy cập vào một vùng máy hoặc ip nào đó Những policy này cũng được định nghĩa, hoặc đặc tả thông qua các ngôn ngữ đặc tả như là XACML (eXtensible Access Control Markup Language) hoặc SAML (Security Assertion Markup Language) Khi người sử dụng muốn sử dụng các hệ thống đó, họ phải cung cấp một số thông tin, không chỉ là những thông tin định danh mà còn có thể là các thông tin khác như là: độ tuổi, nghề nghiệp, …
Trang 2827
(các thông tin cá nhân) Với những policy và những thông tin do người dùng được cung cấp thì hệ thống phải so khớp chúng để xem những thông tin được cung cấp này có phù hợp với các policy này không Do đó xuất hiện nhu cầu phải tiến hành việc đối sánh các khái niệm trong thông tin do người dùng cung cấp và các khái niệm trong các policy đã có Ví dụ policy đòi hỏi định danh là Username, trong khi người dùng cung cấp định danh là Account Khi đó hai khái niệm này phải được matching với nhau, chứ không phải là so khớp phần thông tin nội dung bên dưới
- Hệ thống phần mềm thích nghi
Việc tích hợp các ứng dụng dựa trên nền tảng SOA để phát triển các hệ thống các phần mềm sử dụng các thành phần khác nhau được cung cấp từ bên ngoài dưới dạng là COM, Web Service, WebAPI, … tuy nhiên cùng một công dụng
có thể cung cấp bởi nhiều nguồn, hoặc là trong quá trình sử dụng có một hay vài thành phần nào đó gặp lỗi Do đó, hệ thống cần một giải pháp phù hợp với nhu cầu
mà nó cần dùng, vì vậy việc gán nhãn ngữ nghĩa cho các chức năng, phương thức, hàm vào trong mỗi dịch vụ web, hay WebAPI để cho hệ thống khác dễ dàng phát hiện ra và có khả năng lắp ghép tự động các thành phần này lại với nhau
Những ví dụ trên cho thấy những công nghệ, những kỹ thuật và các kết quả đạt được trong web ngữ nghĩa được ứng dụng vào những lĩnh vực khác nhau Từ đó cho thấy nhu cầu cần thiết phải có ontology
Để sử dụng ontology thì các khái niệm trong ontology phải được gán nhãn ngữ nghĩa trong các thành phần thông tin khác nhau của một hệ thống để phù hợp với nhu cầu xử lý Thông tin sau khi đã được gán nhãn giúp cho máy tính xử lý hiệu quả hơn, chứ không phải xử lý trên một văn bản thô về mặt ngữ nghĩa Ví dụ:
Web service có phần mô tả có thể được viết bằng ngôn ngữ tự nhiên, muốn
hệ thống adaptive system có thể khám phá ra web service này, hệ thống có thể sử dụng các giải pháp: (1) là sử dụng phương pháp xử lý ngôn ngữ tự nhiên trên văn bản mô tả web service này, (2) khi người dùng tạo ra web service họ đã gán các nhãn ngữ nghĩa để mô tả cho web service này Khi đó hệ thống sẽ xử lý hiệu quả
Trang 29so với khi xử lý câu truy vấn là một chuỗi ngôn ngữ chưa có nhãn
2.6 Các ngôn ngữ ontology
2.6.1 RDF
RDF mô tả siêu dữ liệu về các tài nguyên trên Web RDF dựa trên cú pháp XML tuy nhiên XML chỉ mô tả dữ liệu, RDF còn có khả năng biểu diễn ngữ nghĩa giữa chúng thông qua các tài nguyên được định danh bằng URI Theo Wikipedia, dữ liệu liên kết (Linked Data) là một phần của web ngữ nghĩa, nó
mô tả cách hiệu quả để truy xuất, chia sẻ và kết nối các mảng dữ liệu, thông tin và tri thức trên web ngữ nghĩa sử dụng liên kết URIs và RDF
Giống như web của văn bản, web của dữ liệu được xây dựng dựa trên các tài liệu trên web Tuy nhiên, không giống web của văn bản, các liên kết là quan trên văn bản biểu diễn dưới dạng HTML, web của dữ liệu liên kết các “thực thể được đặt tên” thông qua RDF URIs xác định các loại đối tượng và khái niệm
RDF chính là nền tảng trung tâm của web ngữ nghĩa Trong khi XML cung cấp cú pháp để mã hóa dữ liệu thì RDF mô tả siêu dữ liệu về các tài nguyên trên Web RDF dựa trên cú pháp XML tuy nhiên XML chỉ mô tả dữ liệu, RDF còn có khả năng biểu diễn ngữ nghĩa giữa chúng thông qua các tài nguyên định danh bằng URI
Trang 30RDF - Resource Description Framework, định dạng dữ liệu cho phép mô tả
thực thể, tài nguyên và quan hệ nội tại giữa chúng bằng bộ ba chủ thể – thuộc tính – đối tượng ( subject – predicate – object)
RDFa (RDF – in – attributes) bổ sung tập các thuộc tính mở rộng cho
XHTML để nhúng siêu dữ liệu trong văn bản web
N3 (Notation3): cú pháp phi XML của RDF, được thiết kế dễ đọc hơn so với
các chú thích RDF/XML
Turtle (Terse RDF Triple Language) định dạng tuần tự hóa cho các đồ thị
RDF, tập con của N3
2.6.1.2 Cấu trúc RDF
Namespace và Qualified name
Namespace là một đặc tính quan trọng của XML Nó cho phép giải quyết các vấn đề liên quan đến việc xung đột tên các phần tử Chúng ta xem ví dụ dưới đây
Trang 3130
<Author>Foster</Author>
</Book>
</BookOrder>
Phần tử <Title> xuất hiện 2 lần trong tài liệu XML ở ví dụ trên ,lần thứ nhất
nó ám chỉ danh hiệu (Mr, Mss, ) của một người, lần thứ hai nó ám chỉ tựa đề của một quyển sách Đó là sự nhập nhằng về tên W3C giải quyết sự nhập nhằng ấy bằng cách đưa ra khái niệm XML namespace Một XML namespace, thông thường
là một URI, xác định duy nhất một tài nguyên trên Internet Áp dụng XML namespace vào ví dụ ở trên, ta được:
Một cách giải quyết khác là khai báo chữ viết tắt cho các namespaces ngay ở đầu tài liệu Sau đó bên trong tài liệu ta sẽ prefix các phần tử cần xác nhận namespace bằng chữ viết tắt của namespace đó Ví dụ như sau:
<?xml version="1.0"?>
Trang 3231
<BookOrder xmlns="http://www.northwindtraders.com/order" xmlns:cust="http://www.northwindtraders.com/customer"
xmlns:book="http://www.northwindtraders.com/book" OrderNo="1234">
http://www.northwindtraders.com/customer (viết tắt là cust),
http://www.northwindtraders.com/book (viết tắt là book)
Các phần tử không có prefix (tức là không có chữ tắt đứng trước) như BookOrder, OrderNo, và OrderDate, được coi như thuộc về namespace mặc định Qualified name (QName) bao gồm một tiếp đầu ngữ đã được gán trước đó bởi một URI theo sau là dấu ‘:’ và tên cục bộ
- Cách định nghĩa một Qname
QName::= (Prefix ':')? LocalPart
Prefix::= NCName
LocalPart::= NCName
- Cách dùng QName đối với kiểu dữ liệu là element
STag::= '<' QName (S Attribute)* S?'>’
Trang 3332
ETag::= '</' QName S? '>'
EmptyElemTag::= '<' QName (S Attribute)* S?'/>'
Bộ ba RDF (RDF triple)
Mô hình cơ bản của RDF gồm ba bộ phận sau:
- Tài nguyên (Resources) là tất cả những gì được mô tả bằng biểu thức RDF
- Thuộc tính (Properties) là đặc tính hay quan hệ mô tả tính chất tài nguyên
- Phát biểu (Statements) mỗi phát biểu gồm ba thành phần sau:
+ Subject (chủ thể): địa chỉ hay vị trí tài nguyên muốn mô tả
+ Predicate (thuộc tính): xác định tính chất của tài nguyên
+ Object (đối tượng): nội dung gán cho thuộc tính
Mỗi một mệnh đề (subject, predicate, object) được gọi là một bộ ba (triple)
Hình 2.2: Bộ ba RDF
Ví dụ:
Xét mệnh đề 1” Le Van Son works for Semantic Groups”
Mệnh đề 2: “Le Van Son was born in 1948”
Mệnh đề 3: “Semantic Group is headquartered in Da Nang”
Các bộ ba liên kết với nhau tạo thành đồ thị RDF
Hình 2.3: Ví dụ về đồ thị RDF
Trang 3433
Tập các bộ ba RDF hợp lại tạo thành đồ thị RDF (RDF Graph) Các nút trong đồ thị có thể là các chủ thể và đối tượng trong bộ ba RDF, các cung (arc) trong đồ thị là các thuộc tính Nên một bộ ba RDF còn có thể được mô tả dưới dạng
“node-arc-node” Hướng của đồ thị rất quan trọng, cung của đồ thị luôn bắt đầu từ chủ thể đến đối tượng
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á trị Literal cũng có thể được biểu diễn dưới dạng một URI Một Literal có thể là đối tượng của một phát biểu nhưng không thể
là chủ thể hay là thuộc tính
Literal có hai kiểu sau: plain literal hay là typed literal
- plain literal là một chuỗi được kết hợp với một thẻ tùy ý Trong ngôn ngữ
tự nhiên ta có thể gọi nó là một kiểu text
- typed literal hình thành bằng cách kết hợp một chuỗi với định danh URI để biểu diễn 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
Kiểu dữ liệu có cấu trúc và Blank node
Hầu hết các dữ liệu trên Web đều liên quan đến các cấu trúc phức tạp Trong
ví dụ trên ngày của trang web được tạo ra được khai báo bởi thuộc tính exterms:creationdate, với một kiểu dữ liệu là plain literal
Các mệnh đề RDF (bao gồm các cung và nút) sau đó sẽ được biểu diễn ra trong đồ thị với nút mới vừa tạo là chủ thể
Xét đồ thị sau:
Trang 3534
Hình 2.4: Mô tả việc chia nhỏ giá trị một thuộc tính
Có thể viết dưới dạng bộ ba RDF như sau:
exstaff:85740 exterms:address exaddressid:85740
exaddressid:85740 exterms:street "1501 Grant Avenue"
exaddressid:85740 exterms:city "Bedford"
exaddressid:85740 exterms:state "Massachusetts"
exaddressid:85740 exterms:postalCode "01730"
Cách biểu diễn thông tin có cấu trúc như vậy đòi hỏi phải có một địa chỉ URI exaddressid:85740 để mô tả khái niệm kết hợp Những khái niệm như thế này có thể không được sử dụng bởi các thành phần khác trong đồ thị và chính vì vậy định danh này không cần thiết Chính vì vậy ta nên dùng một nút trống (blank node) để biểu diễn nút này
Trang 36exstaff:85740 exterms:address _:joeaddress
_:johnaddress exterms:street "1501 Grant Avenue"
_:johnaddress exterms:city "Bedford"
_:johnaddress exterms:state "Massachusetts"
_:johnaddress exterms:postalCode "01730"
2.6.1.2 Cấu trúc RDF/XML
Để biểu diễn những phát biểu RDF trong một cách thức để máy có khả năng
xử lý được, RDF sử dụng rất nhiều ngôn ngữ trong đó có ngôn ngữ XML XML
Trang 3736
được thiết kế để cho phép bất cứ ai tạo ra định dạng tài liệu riêng của họ và sau đó viết một tài liệu ở định dạng đó RDF định nghĩa ra một ngôn ngữ đánh dấu XML đặc biệt, được đề cập đến như RDF/XML, để sử dụng trong việc biểu diễn thông tin RDF, và để trao đổi thông tin giữa các máy Như phần trước đã giới thiệu một đồ thị được xem là một tập những đường đi của các nút, cung vị từ, nút, cung vị từ, nút, cung vị từ, … chúng bao bọc toàn đồ thị Trong RDF/XML điều này trở thành sự nối tiếp liên tục của các phần tử bên trong các phần tử mà xen kẽ giữa các phần tử đối với những nút và cung vị từ Điều này được gọi là một loạt những nút/cung Nút
ở vị trí bắt đầu của chuỗi nối tiếp trở thành phần tử ở ngoài cùng, cung vị từ tiếp theo trở thành một phần tử con, và v.v
Ví dụ : Xét phát biểu
ex:index.html exterms:creation-date "August 16, 1999"
Cú pháp RDF/XML để biểu diễn cho phát biểu trên như sau: