Nhiệm vụ của đề tài - Tìm hiểu cơ sở lý thuyết về Web ngữ nghĩa; - Tìm hiểu công cụ và phương thức xây dựng ứng dụng; - Thu thập dữ liệu, khảo sát nhu cầu, hiện trạng tra cứu các văn bản
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
CAO XUÂN HÀ
XÂY DỰNG ONTOLOGY PHỤC VỤ LƯU TRỮ VÀ TÌM KIẾM
TRỰC TUYẾN CÁC TÀI LIỆU CỦA CHI CỤC VĂN THƯ LƯU TRỮ TỈNH QUẢNG NGÃI
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Đà Nẵng - Năm 2017
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
-CAO XUÂN HÀ
XÂY DỰNG ONTOLOGY PHỤC VỤ LƯU TRỮ VÀ TÌM KIẾM TRỰC TUYẾN CÁC TÀI LIỆU CỦA CHI CỤC VĂN THƯ LƯU TRỮ TỈNH QUẢNG NGÃI
Chuyên ngành: KHOA HỌC MÁY TÍNH
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của PGS.TS Võ Trung Hùng;
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng và trung thực tên tác giả, tên công trình, thời gian, địa điểm công bố;
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Tác giả
Cao Xuân Hà
Trang 6iii
TÓM TẮT LUẬN VĂN XÂY DỰNG ONTOLOGY PHỤC VỤ LƯU TRỮ VÀ TÌM KIẾM TRỰC TUYẾN CÁC TÀI LIỆU CỦA CHI CỤC VĂN THƯ LƯU TRỮ
TỈNH QUẢNG NGÃI
Học viên: Cao Xuân Hà Chuyên ngành: Khoa học máy tính
Mã số: 60480101 Khóa: 33 Trường Đại học Bách khoa - ĐHĐN
Tóm tắt – Công nghệ thông tin (CNTT) đang được ứng dụng rộng rãi và đây là một trong tiêu chí quan trọng để đánh giá hiệu quả hoạt động của một tổ chức Cùng với ứng dụng CNTT và Internet, dữ liệu số đang gia tăng một cách nhanh chóng Nhu cầu tìm kiếm các tài liệu số phù hợp với yêu cầu người dùng đã trở nên cấp thiết Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi (Chi cục) đã số hoá và lưu trữ một lượng tài liệu rất lớn và nhu cầu tìm kiếm tài liệu hiện rất cao Vì vậy, luận văn này nghiên cứu đề xuất các giải pháp để xây dựng một hệ thống lưu trữ và tìm kiếm các tài liệu dựa trên Web ngữ nghĩa tại Chi cục Đóng góp chính của luận văn là đã xây dựng Ontology phục vụ lưu trữ và một hệ thống Web để người dùng tìm kiếm trực tuyến các tài liệu lưu trữ tại Chi cục
Từ khóa – Web ngữ nghĩa, tài liệu số, tìm kiếm, Ontology
EXPANDING Abstract - Information technology (IT) is widely used and this is one of the important criteria for evaluating the performance of an organization Together with IT and the Internet, digital data is growing rapidly The need to find digital documents that match the user requirements has become imperative The Department of Record and Archives of Quang Ngãi province (DRAQ) has digitized and archived a huge number of digital documents and the demand for materials is very high Therefore, this thesis studies proposed solutions to build a system for storing and searching Semantic Web - based documents at the DRAQ The main contribution of the thesis is to have built Ontology for storing and a Web system for users to search online archives at the DRAQ
Key words - Semantic Web, Digital Document, Search Engine, Ontology
Trang 7iv
DANH MỤC CÁC TỪ VIẾT TẮT
Quảng Ngãi
Trang 8v
DANH MỤC CÁC HÌNH 1 Hình 1.1 Sự cần thiết của Ontology trong quá trình chia sẻ tri thức 6
2 Hình 1.2 So sánh giữa Web 1.0, Web 2.0 và Web 3.0 10
3 Hình 1.3 Quá trình phát triển công nghệ Web trong tương lai 11
4 Hình 1.4 Sơ đồ phát triển tính thông minh của dữ liệu 12
5 Hình 1.5 Kiến trúc Web ngữ nghĩa qua các thời kỳ 15
6 Hình 1.6 Mối quan hệ giữa các thành phần trong Triple 21
7 Hình 2.1 Mẫu của một Quyết định 42
8 Hình 2.2 Mô tả suy luận ngang cấp trong Semantic Web 49
9 Hình 2.3 Mô tả suy luận ngược trong Semantic Web 51
10 Hình 2.4 Mô hình quan hệ giữa các nút và các cạnh 58
11 Hình 3.1 Mô hình kiến trúc tổng thể của hệ thống 62
12 Hình 3.2 Quy trình truy xuất dữ liệu 64
13 Hình 3.3 Các thuộc tính dữ liệu của Data Properies 66
14 Hình 3.4 Giao diện chính của hệ thống 71
15 Hình 3.5 Kết quả tìm kiếm theo “Trường THPT Võ Nguyên Giáp” 72 16 Hình 3.6 Xem chi tiết văn bản 72
Trang 9vi
DANH MỤC CÁC BẢNG Bảng 2.1 Bảng chữ viết tắt tên loại văn bản và bản sao 44
Bảng 2.2 Các công cụ phát triển Ontology 53
Bảng 2.3 Các lớp chức năng của OwlDotNetApi 61
Bảng 2.4 Các lớp giao tiếp của OwlDotNetApi 62
Bảng 3.1 Mối quan hệ của các lớp và mô tả thuộc tính 71
Bảng 3.2 Bảng đánh giá kết quả thử nghiệm hệ thống tìm kiếm văn bản 75
Trang 112
hay Web ngữ nghĩa ra đời nhằm đáp ứng những yêu cầu về chất lượng đó Thế mạnh của Web Ngữ nghĩa là xử lý và tìm kiếm thông tin, cho phép chúng ta xây dựng những CSDL phục vụ tìm kiếm chính xác Tim Berners - Lee đã định nghĩa: “Web ngữ nghĩa 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ể làm việc với nhau một cách hiệu quả hơn” [1]
Web ngữ nghĩa sẽ là một sự ra đời tất yếu của quá trình nghiên cứu với ý tưởng không ngừng phát triển để phù hợp với yêu cầu thực tế của con người Đây là một xu hướng mới còn đang được nghiên cứu và tiếp tục phát triển Nghiên cứu ứng dụng Web ngữ nghĩa để xây dựng hệ thống tra cứu văn bản hành chính là một việc làm thiết thực, đáp ứng nhu cầu tìm kiếm chính xác và hỗ trợ rất nhiều cho ngành văn thư lưu trữ mà còn góp phần rất lớn vào thời kỳ phát triển mới của đất nước
Xuất phát từ thực tế nêu trên cùng với sự hướng dẫn tận tình của thầy Võ Trung Hùng, tôi quyết định chọn đề tài: “XÂY DỰNG ONTOLOGY PHỤC VỤ LƯU TRỮ
VÀ TÌM KIẾM TRỰC TUYẾN CÁC TÀI LIỆU CỦA CHI CỤC VĂN THƯ LƯU TRỮ TỈNH QUẢNG NGÃI” làm luận văn tốt nghiệp
II Mục tiêu nghiên cứu
a Mục tiêu nghiên cứu
Xây dựng một hệ thống phục vụ tra cứu thông tin các văn bản hành chính của Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi Hệ thống mới dựa trên công nghệ Web ngữ nghĩa nhằm hỗ trợ việc tra cứu, cung cấp những tri thức cần thiết góp phần thực hiện tốt công tác văn thư, lưu trữ ở tỉnh Quảng Ngãi
b Nhiệm vụ của đề tài
- Tìm hiểu cơ sở lý thuyết về Web ngữ nghĩa;
- Tìm hiểu công cụ và phương thức xây dựng ứng dụng;
- Thu thập dữ liệu, khảo sát nhu cầu, hiện trạng tra cứu các văn bản của Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi;
- Phân tích, thiết kế hệ thống;
- Xây dựng chương trình, cài đặt, kiểm thử và đánh giá
III Đối tượng và phạm vi nghiên cứu
a Đối tượng nghiên cứu
- Văn bản hành chính của Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi, nhu cầu và
Trang 123
hiện trạng tra cứu
- Các vấn đề liên quan đến Web ngữ nghĩa
- Qui trình xây dựng Web ngữ nghĩa
- Công cụ, ngôn ngữ và công nghệ liên quan đến Web ngữ nghĩa (Protege, RDF, SPARQL,…)
- Các thư viện phát triển ứng dụng Web ngữ nghĩa (OwlDotNetApi, SemWeb)
- Một số ứng dụng có sẵn của Web ngữ nghĩa
- Phân tích xử lý dữ liệu đã trích lọc trên các trang Web hiện nay (Giả thuyết dữ liệu đã được trích lọc)
b Phạm vi nghiên cứu
Hằng năm, Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi chỉnh lý và số hóa các tài liệu tích đống hơn 10 đơn vị, hơn 500.000 văn bản hành chính các loại Văn bản hành chính chứa rất nhiều thông tin, trong đề tài này tôi chỉ giới hạn phạm vi tìm kiếm theo: tên loại, số ký hiệu văn bản, ngày ban hành, nội dung trích yếu, tác giả, tên tệp tin PDF của văn bản, mối quan hệ ngữ nghĩa giữa các văn bản
IV Phương pháp nghiên cứu
a Giả thiết nghiên cứu
Web ngữ nghĩa sẽ giúp xây dựng hệ thống tra cứu tài liệu của Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi nhằm hỗ trợ việc tra cứu, đáp ứng nhu cầu tìm kiếm chính xác
và cung cấp những thông tin cần thiết về tài liệu Hệ thống tra cứu sẽ góp phần vào công tác tìm kiếm, khai thác và sử dụng tài liệu tốt hơn so với Web thường
b Phương pháp nghiên cứu
- Phương pháp nghiên cứu tài liệu: Tìm hiểu, nghiên cứu tài liệu, công cụ, công nghệ liên quan đến Web ngữ nghĩa Thu thập, tổng hợp thông tin về văn bản của Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi
- Phương pháp khảo sát: Tìm hiểu về công tác lưu trữ, quản lý các văn bản của Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi Tìm hiểu hệ thống tra cứu tại Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi hiện có
- Phương pháp thực nghiệm: So sánh những ưu, nhược điểm của các phương pháp, công cụ xây dựng ứng dụng từ đó đề xuất lựa chọn phương pháp, công cụ thích hợp để phân tích hệ thống, tiến hành xây dựng ứng dụng
Trang 134
V Ý nghĩa khoa học và thực tiễn của đề tài
a Ý nghĩa khoa học: Tiếp cận công nghệ mới về xử lý thông tin của Web ngữ nghĩa Phát triển ứng dụng để góp phần phổ biến và từng bước thâm nhập sâu hơn về công nghệ này
b Ý nghĩa thực tiễn: Ứng dụng những thành quả của công nghệ thông tin vào lĩnh vực văn thư – lưu trữ, góp phần phục vụ tốt việc tìm hiểu nghiên cứu, sử dụng và khai thác tài liệu của Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi Hỗ trợ công tác văn thư, lưu trữ và tìm kiếm văn bản một cách nhanh nhất Triển khai ứng dụng ở Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi
VI Bố cục của luận văn
Chương 1 TỔNG QUAN VỀ WEB NGỮ NGHĨA Chương này giới thiệu các khái niệm tổng quan về Web ngữ nghĩa, các ngôn ngữ
và công cụ xây dựng Web ngữ nghĩa tính đến thời điểm hiện nay Nội dung chính tập trung trình bày về kiến trúc Web ngữ nghĩa, ứng dụng và triển vọng của Web ngữ nghĩa trong tương lai Những nội dung ở chương này là cơ sở để đề xuất giải pháp và triển khai thực nghiệm ở các chương sau
Chương 2 GIẢI PHÁP ĐỀ XUẤT Chương này sẽ giới thiệu các khái niệm chung về văn bản, hồ sơ và đặc biệt là giới thiệu kết quả khảo sát, phân tích hiện trạng và nhu cầu tra cứu thông tin tại Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi Nội dung chính tập trung trên việc phân tích thiết kế hệ thống Đề xuất những giải pháp, mô hình hoạt động, công cụ, các thư viện phần mềm được lựa chọn để xây dựng ứng dụng Web ngữ nghĩa tại Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi
Chương 3 XÂY DỰNG HỆ THỐNG Chương này trình bày kết quả xây dựng Ontology phục vụ lưu trữ và tìm kiếm trực tuyến các tài liệu của Chi cục Văn thư Lưu trữ tỉnh Quảng Ngãi Kết quả xây dựng và thử nghiệm trang Web ngữ nghĩa hỗ trợ việc tra cứu Chương này cũng trình bày một số đánh giá về ứng dụng thử nghiệm và đề xuất hướng phát triển trong thời gian đến
Trang 145
Chương 1 TỔNG QUAN VỀ WEB NGỮ NGHĨA Trong chương này giới thiệu các khái niệm tổng quan về Web ngữ nghĩa, các ngôn ngữ và công cụ xây dựng Web ngữ nghĩa Tìm hiểu kiến trúc Web ngữ nghĩa, ứng dụng và triển vọng của Web ngữ nghĩa trong tương lai
1.1 Ontology
1.1.1 Khái niệm Ontology
Trong khoa học máy tính, một Ontology là một mô hình dữ liệu biểu diễn một lĩnh vực nào đó và được sử dụng để suy luận về các đối tượng trong lĩnh vực đó và mối quan
- Theo Tom Gruber (2008): “Ontology là một tập hợp các đại diện nguyên bản với
mô hình của một miền kiến thức hoặc lập luận” [3]
- Theo như Natalya F Noy và Deborah L McGuinness (2011): “Ontology là một
mô tả hình thức rõ ràng của các khái niệm trong phạm vi cụ thể, các thuộc tính của khái niệm mô tả đặc tính và tính chất của khái niệm, các ràng buộc của thuộc tính” [4]
1.1.2 Mục đích xây dựng Ontology
Ontology được xây dựng nhằm các mục đích sau:
- Chia sẻ những kiến thức chung, các khái niệm, cấu trúc thông tin giữa con người hoặc giữa các hệ thống phần mềm sẽ được chia sẻ để sử dụng vào nhiều mục đích khác nhau Đây là một trong những mục tiêu phổ biến trong việc phát triển Ontology, không những trong lĩnh vực Semantic Web mà còn trong nhiều ngành, lĩnh vực khác
- Tái sử dụng tri thức về một miền lĩnh vực đã được xây dựng từ trước Vấn đề ở đây là tên các khái niệm được định nghĩa trong các Ontology này có thể giống nhau trong khi chúng được dùng để mô tả một sự vật hoàn toàn khác nhau Tuy nhiên cũng có thể có trường hợp ngược lại, khi tên các khái niệm khác nhau nhưng cùng mô tả một sự vật Ngoài ra, làm thế nào để bổ sung các quan hệ, thuộc tính có sẵn vào một hệ thống mới càng làm cho vấn đề trở nên phức tạp
- Làm rõ ràng các giả định thuộc lĩnh vực chuyên ngành: Việc sử dụng một
Trang 167
- Cấu trúc rõ ràng: Đây là điều kiện cần cho máy có thể xử lý thông tin
- Ngữ nghĩa hình thức miêu tả ý nghĩa tri thức một cách chính xác: Ý nghĩa của ngữ nghĩa hình thức tồn tại trong một thời gian dài trong miền toán logic Việc sử dụng ngữ nghĩa hình thức cho phép con người suy diễn tri thức Với tri thức trong Ontology chúng ta có thể suy diễn về:
+ Thành viên của lớp: Nếu x là một thể hiện của lớp C và C là lớp con của lớp D thì chúng ta có x là thể hiện của lớp D
+ Các lớp tương đương: Nếu lớp A tương đương với lớp B và lớp B tương đương với lớp C, thì lớp A cũng tương đương với lớp C
+ Tính nhất quán: Giả sử chúng ta khai báo x là thể hiện của lớp A và A là lớp con của B∩C, A là lớp con của lớp D, Lớp B và lớp D không có quan hệ với nhau (disjoint) Thì chúng ta không nhất quán bởi vì A nên là rỗng nhưng lại có thể hiện là x Đây là một dấu hiệu của một lỗi trong Ontology
+ Phân loại: Nếu chúng ta khai báo các cặp thuộc tính giá trị đã biết là điều kiện đủ cho thành viên trong một lớp A, thì nếu một cá thể x thỏa mãn các điều kiện, chúng ta có thể kết luận x phải là một thể hiện của A
+ Ngữ nghĩa là điều kiện tiên quyết cho việc hỗ trợ suy diễn: Hỗ trợ suy diễn rất quan trọng bởi vì nó cho phép kiểm tra tính nhất quán của Ontology và tri thức, kiểm tra các quan hệ thừa giữa các lớp, tự động phân loại các thể hiện trong lớp
Ngữ nghĩa hình thức và hỗ trợ suy diễn thường được cung cấp bởi việc ánh xạ một ngôn ngữ Ontology đến hình thức logic và sử dụng suy diễn tự động bởi các hình thức luôn tồn tại OWL được ánh xạ logic miêu tả và sử dụng các suy diễn đang tồn tại như FaCT và RACER Các logic mô tả là tập con của logic vị từ nhằm hỗ trợ suy diễn hiệu quả
1.1.4 Các thành phần Ontology
Ontology được sử dụng như là một biểu mẫu trình bày tri thức về thế giới hay một phần của nó Ontology thường miêu tả: cá thể (Individuals), lớp (Classes), thuộc tính (Propertises) và quan hệ (Relation)
Bộ từ vựng Ontology được xây dựng trên cơ sở tầng RDF và RDFS, cung cấp khả năng biểu diễn ngữ nghĩa mềm dẻo cho tài nguyên Web và có khả năng hỗ trợ lập luận
Trang 178
- Cá thể (Individuals): Thể hiện 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ụ thể như con người, động vật, đồ vật… 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
- Lớp (Classes) là những nhóm, bộ hoặc tập hợp các đối tượng Một lớp có thể gộp nhiều lớp hoặc được gộp vào lớp khác Một lớp gộp vào lớp khác được gọi là lớp con của lớp gộp Điều quan trọng của quan hệ xếp gộp là tính kế thừa
- 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 cá nhân có thể có các thuộc tính: họ_tên, ngày_sinh, quê_quán, số_cmnd,… Giá trị của một thuộc tính có thể có các kiểu dữ liệu phức tạp
- 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
1.1.5 Ngôn ngữ OWL
OWL (The Web Ontology Language) là một ngôn ngữ gần như XML dùng để
mô tả các hệ cơ sở tri thức OWL là một ngôn ngữ đánh dấu dùng để xuất bản và chia sẻ
dữ liệu trên Internet thông qua những mô hình dữ liệu gọi là “Ontology” Ontology mô tả một lĩnh vực (Domain) và diễn tả những đối tượng trong lĩnh vực đó cùng những mối quan hệ giữa các đối tượng này OWL là phần mở rộng về từ vựng của RDF và được kế thừa từ ngôn ngữ DAML+OIL Web Ontology (Dự án được hỗ trợ bởi W3C) OWL biểu diễn ý nghĩa của các thuật ngữ trong các từ vựng và mối liên hệ giữa các thuật ngữ này
để đảm bảo phù hợp với quá trình xử lý bởi các phần mềm
OWL được xem như là một kỹ thuật trọng yếu để cài đặt cho Web ngữ nghĩa trong tương lai OWL được thiết kế đặc biệt để cung cấp một cách thức thông dụng trong việc xử lý nội dung thông tin của Web Ngôn ngữ này được kỳ vọng rằng sẽ cho phép các
Trang 189
hệ thống máy tính có thể đọc được thay thế cho con người Vì OWL được viết bởi XML, các thông tin OWL có thể dễ dàng trao đổi giữa các kiểu hệ thống máy tính khác nhau, sử dụng các hệ điều hành và các ngôn ngữ ứng dụng khác nhau Mục đích chính của OWL
là cung cấp các chuẩn để chia sẻ cũng như tái sử dụng dữ liệu trên Web OWL được phát triển vì nó có nhiều tiện lợi để biểu diễn ý nghĩa và ngữ nghĩa hơn so với XML, RDF và RDFS Ngoài ra, OWL ra đời sau các ngôn ngữ này, nó có khả năng biểu diễn các nội dung mà máy có thể biểu diễn được trên Web
Hiện nay có ba loại OWL: OWL Lite, OWL DL (Description Logic), và OWL Full
1.2 Khái niệm Web ngữ nghĩa
1.2.1 World Wide Web và những hạn chế
Hệ thống mạng Internet đã trở nên rộng khắp, là nguồn kiến thức vô tận mang lại nhiều lợi ích Cùng với sự phát triển đó là việc một loạt các tiêu chuẩn được thiết lập rộng rãi và đảm bảo được các thành phần ở các mức độ khác nhau Tuy nhiên, tài nguyên thông tin trên Web ngày càng nhiều và đa dạng, điều này làm nảy sinh vấn đề là làm thế nào để tìm kiếm chính xác tài nguyên mình mong muốn Với công nghệ Web hiện nay, các công
cụ tìm kiếm như Google, Yahoo, Bing,… chỉ giúp chúng ta tìm được những tài liệu có chứa từ khóa Dữ liệu trong các file HTML có thể hữu ích ở ngữ cảnh này nhưng vô nghĩa đối với ngữ cảnh khác
Chính vì vậy Semantic Web, thế hệ Web 3.0 ra đời, bao gồm các dịch vụ dựa trên nền tảng máy tính có thể hiểu được nội dung thông tin trên Web, thông tin được tìm kiếm một cách nhanh chóng và chính xác hơn, khả năng suy luận thông minh, dữ liệu liên kết động, khắc phục những hạn chế Web hiện tại và đáp ứng tốt nhu cầu ứng dụng của con người
1.2.2 Sự ra đời của Web ngữ nghĩa
World Wide Web (WWW) chứa một lượng thông tin khổng lồ, người sử dụng Web có thể dễ dàng truy cập những thông tin bằng địa chỉ hoặc theo các liên kết để tìm ra các tài nguyên liên quan khác Tuy nhiên, các trang Web hiện nay hầu hết được sử dụng bởi con người, máy tính chỉ có nhiệm vụ gửi nhận dữ liệu và thể hiện thông tin dưới dạng
mà chỉ có con người mới đọc hiểu được Người sử dụng phải làm nhiệm vụ tìm kiếm, suy luận, tổng hợp và trích rút thông tin mình cần Điều đó đã đặt ra thách thức là làm sao để
Trang 2112
Hình 1.4 Sơ đồ phát triển tính thông minh của dữ liệu Hình 1.4 chỉ ra sự phát triển liên tục của tính thông minh dữ liệu có bốn bậc quan trọng Bốn bậc này biểu diễn từ dữ liệu có tính thông minh thấp nhất đến dữ liệu đã có thông tin đủ ngữ nghĩa để máy thực hiện suy luận về nó
- Bậc 1: Văn bản và cơ sở dữ liệu (bậc này là tiền XML): Bậc đầu tiên, hầu hết dữ liệu ở bậc này được sở hữu độc quyền cho một ứng dụng Do vậy tính thông minh là nằm trong ứng dụng đó chứ không phải là trong dữ liệu
- Bậc 2: Tài liệu XML với miền đơn: Ở bậc này, dữ liệu đạt được là ứng dụng độc lập với miền riêng Bây giờ, dữ liệu đủ thông minh để có thể di chuyển giữa các ứng dụng trong một miền đơn Ví dụ: Các chuẩn XML trong chăm sóc sức khoẻ, bất động sản…
- Bậc 3: Các phân loại và tài liệu với các bộ từ vựng hỗn hợp: Trong bậc này, dữ liệu có thể được soạn từ đa miền và được phân lớp chính xác theo một nguyên tắc phân loại có thứ bậc Thực tế, sự phân lớp đó có thể được sử dụng để khám phá dữ liệu Các quan hệ đơn giản giữ các lớp có thể được sử dụng để quan hệ và do vậy, ta có dữ liệu kết hợp Như vậy, dữ liệu bây giờ thông minh đủ để khám phá dễ dàng và được kết hợp một cách hợp lý với dữ liệu khác
- Bậc 4: Các Ontology và các luật lập luận: Trong mức này, dữ liệu mới có thể được suy ra từ những dữ liệu đã có theo các luật logic Thực chất, dữ liệu bây giờ thông minh đủ để được mô tả với các quan hệ cụ thể và các dạng hình thức phức tạp Một ví dụ
Trang 2617
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 (Document) được cấu trúc, không có đặc tả từ vựng (Vocabulary) 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 (markup) 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ể (Entity) markup chính trong XML là các đơn vị (element) Chúng thông thường bao gồm một tag mở và một tag đóng Ví dụ: <person> và </person> 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ư <person/> 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 XML document 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ụ: <person name = "John">.
Dưới đây là một đoạn XML:
1.5.2 RDF - Nền tảng của Web ngữ nghĩa
Trang 2718
a Giới thiệu RDF
RDF chính là nền tảng của Web ngữ nghĩa, là linh hồn của Web ngữ nghĩa 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 Như tên gọi, RDF là một mô hình để biểu diễn
dữ liệu về "Mọi thứ trên Web" Mọi thứ ở đây chính là các tài nguyên trong RDF Vocubulary (Từ vựng)
Mô hình dữ liệu cơ sở của RDF gồm có 3 đối tượng: Resource (tài nguyên), Property (thuộc tính) và Statement (phát biểu)
Resource (tài nguyên) Property (thuộc tính) Statement (phát biểu)
giữa các đối tượng
- Mỗi tài nguyên luôn
được định danh bởi URI,
- Thuộc tính trong RDF được xác định bởi URL
- Một phát biểu xác định thuộc tính của tài nguyên,
là một bộ ba gồm: Object – Attribute - Value (Đối tượng - Thuộc tính - Giá trị)
Tim Berners- Lee tóm tắt 4 nguyên lý nền tảng cho hoạt động của dữ liệu liên kết (Linked Data):
- Sử dụng các URI để xác định, “đặt tên” các “thực thể”
- Sử dụng giao thức HTTP URI để con người có thể tìm kiếm, duyệt chúng
- Cung cấp thông tin hữu ích (Siêu dữ liệu, mô tả có cấu trúc) về các “thực thể được đặt tên” đó khi URI của chúng được duyệt
- Chứa các liên kết đến các URI khác liên quan trong dữ liệu vừa được duyệt giúp
có thể duyệt các thông tin khác liên quan
Hiện tại có các định dạng cú pháp tuần tự hóa để cài đặt dữ liệu liên kết, chú thích ngữ nghĩa như RDF, RDFa, RDF/XML, N3, Turtle:
+ RDF (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: Đối tượng – Thuộc tính – Giá trị (Subject – Predicate – Object)
+ RDFa (RDF-in-attributes): Bổ sung tập các thuộc tính mở rộng cho XHTML để
Trang 3021
có thể là các Subject và Object trong triple và các cung (arc) trong đồ thị là các Predicate Cho nên một Triple 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ừ Subject đến Object
Hình 1.6 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:
http://www.example.org/index.html
http://purl.org/dc/elements/1.1/creator
http://www.example.org/staffid/85740 Hình 1.7 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:
http://www.example.org/index.htmlhas a creation-datewhose value is August 16, 1999
http://www.example.org/index.htmlhas a languagewhose value is English
Được phân ra thành các thành phần sau:
http://www.example.org/index.html http://purl.org/dc/
elements/1.1/creator
http://www.example.org/staffid/857 40
http://www.example.org/index.html http://www.example.org
/terms/creation-date August 16, 1999http://www.example.org/index.html http://purl.org/dc/
elements/1.1/language EnBảng 1.1 Mô tả các thành phần của TripleLúc này các phát biểu được biểu diễn dưới cùng một đồ thị như sau:
Trang 3122
Hình 1.8 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 bầu dục để 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
- Tripple và cách sử dụng namespace: Đôi khi không thuận tiện để biểu diễn các phát biểu dưới dạng đồ thị, ta có thể dùng cách viết dưới dạng Tripple Có thể viết lại như sau:
Trang 3223
ngoặc nhọn (<>) , điều này gây ra một bất lợi là các URI phải viết rất dài như ta đã thấy ở trên Để thuận lợi, RDF đã cung cấp một cách viết ngắn gọn hơn đó là cách dùng QName (Đã được định nghĩa ở trên) mà không cần dùng đến cặp dấu <>
Ta có thể dùng một số QName sau đây:
prefix ex:, namespace URI:
http://www.example.org/hay http://www.example.com/
prefix exterms:, namespace URI: http://www.example.org/terms/
prefix exstaff:, namespace URI: http://www.example.org/staffid/
Ví dụ trên được viết lại như sau:
ex:index.html dc:creator exstaff:85740
ex:index.html exterms:creation-date "August 16, 1999"
ex:index.html dc:language "en"
Khi đó viết chúng dưới dạng QName như sau:
exstaff:85740 exterms:age "27"^^xsd:Integer
ex:index.html exterms:creation-date "1999-08-16"^^xsd:date
Như vậy ta thấy rằng việc khai báo các URI thông qua một QName sẽ rất thuận lợi, nó làm cho các URI này ngắn gọn và dễ hiểu Hơn nữa khi có một thay đổi về URI thì
ta chỉ việc thay đổi ở phần namespace mà chúng ta đã khai báo chứ không cần phải thay đổi tất cả URI trong bộ dữ liệu của mình
e Cấu trúc của RDF/XML
Mô hình RDF thể hiện một mô hình ở mức trừu tượng để định nghĩa metadata Cú pháp RDF được dùng để tạo ra và trao đổi metadata Cấu trúc RDF dựa trên cú pháp XML Cú pháp cơ bản của RDF có dạng như sau:
[1] RDF ::= ['<rdf:RDF>'] description*['</rdf:RDF>'] [2] description ::= '<rdf:Description' idAboutAttr? '>'
propertyElt* '</rdf:Description>'
[3] idAboutAttr ::= idAttr | aboutAttr
[4] aboutAttr ::= 'about="' URI-reference '"'
[5] idAttr ::= 'ID="' IDsymbol '"'
[6] propertyElt ::= '<' propName '>' value '</' propName '>'
|'<' propName resourceAttr '/>' [7] propName ::= Qname
[8] value ::= description | string
[9] resourceAttr ::= 'resource="'tham chiếu URI'"'
[10] Qname ::= [ NSprefix ':' ] name
[11] URI-reference ::= String, interpreted per [URI]
[12] IDsymbol ::= Bất kỳ ID hợp lệ nào của XML
[13] name ::= Bất kỳ tên hợp lệ nào của XML
[14] NSprefix ::= Bất kỳ tiếp đầu ngữ namespace hợp lệ nào [15] string ::= Bất kỳ chuỗi nào
Ví dụ 1: Xét phát biểu
Trang 3425
ex:index.html exterms:creation-date “August 16,1999"
ex:index.html dc:language "en"
ex:index.html dc:creator exstaff:85740
Cú pháp RDF được mô tả như sau:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:exterms="http://www.example.org/terms/">
<rdf:Description
rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation- date>
Như vậy với một phát biểu ta có thể dùng từ khóa rdf: Description để mô tả cho
nó Tuy nhiên ta thấy 3 phát biểu trên có cùng một subject
xmlns:exterms="http://www.example.org/terms/">
<rdf:Description
rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-date> <dc:language>en</dc:language>
Trang 3526
Mô hình cơ bản ban đầu trong RDF Schema là các định nghĩa lớp và lớp con (Class & Subclass), thuộc tính và thuộc tính con (Property & Subproperty), Domain và Range của các Statement - để giới hạn các kết hợp có thể có giữa các lớp và thuộc tính, các trình bày kiểu để khai báo một tài nguyên như một thực thể của một lớp cụ thể Ban đầu, chúng ta có thể xây dựng một lược đồ (Schema) cho một miền giá trị cụ thể Ví dụ: Chúng ta có thể khai báo 2 lớp tài nguyên Person và Webpage, 2 thuộc tính name và phone có miền giá trị Person và phạm vi Literal Chúng ta có thể dùng lược đồ này để xác định tài nguyên http://www.w3c.org/ là một thực thể Webpage và tài nguyên nặc danh (Anonymous Resource) là một thực thể của Person Ngoài ra, điều này sẽ giải thích cũng như kiểm định giá trị đối với dữ liệu RDF
RDF Schema khá đơn giản so với các ngôn ngữ biểu diễn tri thức khác RDF Schema cũng không cung cấp chính xác ngữ nghĩa (Semantic) Tuy nhiên, sự bỏ sót này một phần là do có chủ ý W3C thấy trước và chủ trương mở rộng xa hơn đối với RDF Schema Do đặc tả RDF Schema cũng là một kiểu metadata, chúng ta có thể dùng RDF để
mã hóa chúng Điều này chính xác với những gì thể hiện trong đặc tả RDF Schema Document Hơn thế nữa, đặc tả cung cấp một RDF Schema Document để xác định các thuộc tính và các lớp được mô tả
Ví dụ:
<rdf:RDF xml:lang="en"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#"> <rdfs:Class rdf:ID="Person">
<rdfs:comment>The class of people.</rdfs:comment>
</rdf:Property>
<rdf:Property ID="age">
<rdfs:range
Trang 3627
rdf:resource="http://www.datatypes.org/useful_types#Integer"/> <rdfs:domain rdf:resource="#Person"/>
số lượng các thực thể của lớp này
XML và RDF có những hình thức, mục đích, và vai trò trong viễn cảnh Web ngữ nghĩa khác nhau, XML hướng đến cung cấp một cú pháp dễ sử dụng cho dữ liệu Web Với nó, chúng ta có thể mã hóa tất cả các kiểu dữ liệu và dùng chúng để trao đổi giữa các máy tính, sử dụng XML Schema để tạo ra luật cho cấu trúc dữ liệu Vì vậy XML trở thành ngôn ngữ nền tảng cho Web ngữ nghĩa Ngày nay nhiều kỹ thuật sử dụng XML làm
cú pháp thiết yếu XML không giải thích trước về dữ liệu, vì vậy nó không đóng góp nhiều về khía cạnh ngữ nghĩa (Semantic) của Web ngữ nghĩa RDF cung cấp một mô hình chuẩn để mô tả các dữ kiện về tài nguyên Web, cung cấp một số giải thích về dữ liệu RDF Schema mở rộng những giải thích này thêm
Tuy nhiên, để thực sự nhận biết được viễn cảnh Web ngữ nghĩa, ta cần có thêm nhiều ngữ nghĩa về dữ liệu, những sự mở rộng và phát triển cao hơn là cần thiết Thực sự
đã có nhiều bước tiến triển theo khuynh hướng này chẳng hạn như ngôn ngữ DAML+OIL (DARPA Agent Markup Language + Ontology Inference Layer) thêm các mô hình nguyên thủy (Modeling Primitive) mới và ngữ nghĩa hình thức (Formal Semantic) đối với RDF Schema So với RDF và RDFS, DAML cho phép chúng ta sử dụng nhiều kiểu dữ liệu chính xác hơn (được định nghĩa trong XSD) để mô tả dữ liệu Ngoài những thuận lợi này, DAML có nhiều bộ dữ liệu mở đối với mọi người trên Web
Trang 37Ví dụ: Công ty example.org muốn sử dụng RDF để cung cấp thông tin về những loại xe (Motor Vehicles) khác nhau Đầu tiên công ty này phải sử dụng một lớp để biểu diễn lớp xe (Motor Vehicles) Trong RDF Schema bất kỳ tài nguyên nào có thuộc tính là rdf:type và có giá trị là resource rdfs:Class gọi là một Class Vì vậy ta định nghĩa lớp MotorVehicle như sau:
ex:MotorVehicle rdf:type rdfs:Class
Tương tự như vậy công ty này phải mô tả các lớp xe còn lại là một class:
ex:PassengerVehicle rdf:type rdfs:Class
ex:Van rdf:type rdfs:Class
ex:Truck rdf:type rdfs:Class
ex:MiniVan rdf:type rdfs:Class
Tới đây ta chỉ mới có các lớp độc lập, cái công ty này cần đến là mô tả sự liên quan giữa các lớp với nhau Lớp PassengerVehicle, Van, Truck (là lớp con của lớp MotorVehicle) và lớp MiniVan (là lớp con của lớp Van và lớp PassengerVehicle) Chúng
ta sẽ dùng thuộc tính rdfs:subClassOf để mô tả thông tin này:
ex:PassengerVehicle rdfs:subClassOf ex:MotorVehicle
ex:Van rdfs:subClassOf ex:MotorVehicle.
ex:Truck rdfs:subClassOf ex:MotorVehicle ex:MiniVan rdfs:subClassOf ex:Van.
ex:MiniVan rdfs:subClassOf ex:PassengerVehicle.
Và cú pháp RDF/XML để mô tả cho ví dụ trên như sau:
Trang 3930
ex:age rdfs:range xsd:Integer
- Cách sử dụng rdfs:domain: Thuộc tính rdfs:domain được sử dụng để chỉ rằng một thuộc tính là thuộc tính của một lớp nào đó Ví dụ: Công ty example.org muốn thuộc tính ex:author là thuộc tính của lớp ex:Book ta có phát biểu sau:
ex:Book rdf:type rdfs:Class
ex:author rdf:type rdf:Property
ex:author rdfs:domain ex:Book
Và một thuộc tính cũng có nhiều thuộc tính rdfs:domain
exterms:weight rdfs:domain ex:Book
exterms:weight rdfs:domain ex:MotorVehicle
d FOAF - Sự mở rộng của RDF
FOAF (Friend Of A Friend) cung cấp một bộ từ vựng (Ontology) cơ bản để mô tả thông tin về con người (People), nhóm (Group), tổ chức (Organization) và nhữngloại khác và các thông tin liên quan Ví dụ: Để lưu thông tin của một người ta cần có những thông tin sau: tên, tuổi, nghề nghiệp, giới tính, ngày tháng năm sinh, hình ảnh hay có những tài liệu nào thì trong FOAF đã cung cấp sẵn cho chúng ta một bộ từ vựng cơ bản để
có thể mô tả những thông tin này
Tài liệu trên mô tả một người (foaf:Person) có tên (foaf:name) là ‘Dan Brickley’ và
có địa chỉ mail (foaf:mbox) là db@yahoo.com, có một trang Web (foaf:homepage) là http://rdfweb.org/people/danbri/ và có một hình ảnh (foaf:image) lưu tại địa chỉ:
Trang 40- Xây dựng một đồ thị RDF mới dựa trên thông tin trong đồ thị truy vấn
b Tạo một câu truy vấn đơn giản
Một câu truy vấn gồm có hai mệnh đề, SELECT và WHERE Mệnh đề SELECT xác định biến nào xuất hiện trong những kết quả truy vấn, còn mệnh đề WHERE bao gồm các một mẫu bộ ba (tripple pattern) Một mẫu bộ ba là một bộ ba RDF nhưng mỗi thành phần (chủ ngữ, vị từ, tân ngữ) đều có thể là một biến truy vấn
Một mẫu đồ thị cơ bản (Basic Graph Pattern) là một tập các mẫu bộ ba Ngôn ngữ SPARQL dựa trên nền tảng so sánh các mẫu đồ thị Kết quả truy vấn là tất cả các giải pháp mà một truy vấn có thể phù hợp với đồ thị được truy vấn Một câu truy vấn có thể có không, một hay nhiều kết quả
Ví dụ dưới đây sẽ chỉ ra một câu truy vấn để tìm ra một tựa đề (Title) của một quyển sách từ thông tin trong một đồ thị RDF
c Cú pháp của câu truy vấn
Các giá trị được đặt trong dấu ‘<>’ dùng để chỉ một định danh URI Các giá trị được đặ t trong dấu (“ ”) là các giá trị literal
Biến trong ngôn ngữ truy vấn có giá trị toàn cục Biến thường bắt đầu với kí tự
‘?’ Đôi khi người ta cũng sử dụng kí tự ‘$’ để chỉ một biến, để chỉ rằng nơi mà hệ thống sử dụng ‘?’ như một ký tự thay thế Trong một câu truy vấn, $abc và ?abc đều là