1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

101 54 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 101
Dung lượng 2,88 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 3

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 4

MỤC LỤC

LỜI CAM ĐOAN 3

MỤC LỤC i

TÓM TẮT LUẬN VĂN iii

DANH MỤC CÁC TỪ VIẾT TẮT iv

DANH MỤC CÁC HÌNH v

DANH MỤC CÁC BẢNG vi

MỞ ĐẦU 1

I Lý do chọn đề tài 1

II Mục tiêu nghiên cứu 2

III Đối tượng và phạm vi nghiên cứu 2

IV Phương pháp nghiên cứu 3

V Ý nghĩa khoa học và thực tiễn của đề tài 4

VI Bố cục của luận văn 4

Chương 1 TỔNG QUAN VỀ WEB NGỮ NGHĨA 5

1.1 Ontology 5

1.1.1 Khái niệm Ontology 5

1.1.2 Mục đích xây dựng Ontology 5

1.1.3 Yêu cầu khi sử dụng Ontology 6

1.1.4 Các thành phần Ontology 7

1.1.5 Ngôn ngữ OWL 8

1.2 Khái niệm Web ngữ nghĩa 9

1.2.1 World Wide Web và những hạn chế 9

1.2.2 Sự ra đời của Web ngữ nghĩa 9

1.2.3 Định nghĩa Web ngữ nghĩa 11

1.3 Kiến trúc Web ngữ nghĩa 13

1.3.1 Giới thiệu 13

1.3.2 Vai trò các tầng trong kiến trúc Web ngữ nghĩa 13

1.4 Xây dựng Web ngữ nghĩa 15

1.4.1 XML và RDF trên Web 15

1.4.2 Các ngôn ngữ biểu diễn Ontology cho Web có ngữ nghĩa 15

1.4.3 Phát triển nâng cao Web ngữ nghĩa 16

1.5 Các ngôn ngữ và công cụ xây dựng Web ngữ nghĩa 16

1.5.1 XML (eXtensible Markup Language) 16

1.5.2 RDF - Nền tảng của Web ngữ nghĩa 17

1.5.3 RDF Schema 25

1.5.4 Truy vấn dữ liệu trên Web ngữ nghĩa (SPARQL) 30

1.6 Nhận xét 37

Trang 5

Chương 2 GIẢI PHÁP ĐỀ XUẤT 38

2.1 Quản lý văn bản và hồ sơ 38

2.1.1 Nhu cầu và hiện trạng tra cứu văn bản 38

2.1.2 Tổng quan về hồ sơ 39

2.1.3 Tổng quan về văn bản 39

2.1.4 Số, ký hiệu của văn bản 42

2.1.5 Tên loại văn bản 42

2.1.6 Trích yếu nội dung 43

2.2 Phân tích về bài toán Tìm kiếm văn bản tại Chi cục VTLT 44

2.2.1 Giới thiệu bài toán 44

2.2.2 Tìm kiếm cơ bản và tìm kiếm nâng cao 44

2.2.3 Giải pháp 48

2.2.4 Các chức năng cơ bản của ứng dụng 49

2.3 Quy trình xây dựng Web ngữ nghĩa 50

2.4 Các công cụ hỗ trợ 52

2.4.1 Công cụ xây dựng ứng dụng Protege 52

2.4.2 Bộ Visual Studio.Net 55

2.4.3 Thư viện phát triển ứng dụng 56

2.5 Nhận xét 61

Chương 3 XÂY DỰNG HỆ THỐNG 62

3.1 Mô hình kiến trúc tổng thể của hệ thống 62

3.2 Phát triển ứng dụng 64

3.2.1 Qui trình phát triển ứng dụng 64

3.2.2 Môi trường phát triển ứng dụng 65

3.2.3 Xây dựng Ontology 65

3.2.4 Xây dựng giao diện 70

3.3 Đánh giá kết quả của hệ thống 73

KẾT LUẬN VÀ KIẾN NGHỊ 75

DANH MỤC TÀI LIỆU THAM KHẢO 77

PHỤ LỤC 80

Trang 6

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 7

DANH MỤC CÁC TỪ VIẾT TẮT

Quảng Ngãi

Trang 8

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 9

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 10

MỞ ĐẦU

I Lý do chọn đề tài

Ngày 03.01.1946, Chủ tịch Hồ Chí Minh đã ký Thông đạt số 01 về công tác công văn, giấy tờ, trong đó nêu rõ: “Tài liệu lưu trữ có giá trị đặc biệt về phương diện kiến thiết quốc gia” Đây là văn bản đầu tiên của Nhà nước ta về công tác văn thư lưu trữ, đặt nền móng cho ngành Lưu trữ Việt Nam hình thành và phát triển

Đến thời kỳ bùng nổ cuộc cách mạng CNTT, làm tốt công tác lưu trữ sẽ giúp đẩy mạnh cải cách thủ tục hành chính, giúp cho nhà nước và nhân dân tiết kiệm rất nhiều chi phí cho việc đi lại, trao đổi, giao dịch, tìm kiếm,… Nhận thức trước được điều đó Bộ Chính trị đã ban hành Nghị quyết số 36-NQ/TW ngày 01 tháng 7 năm 2014 về đẩy mạnh ứng dụng, phát triển công nghệ thông tin đáp ứng yêu cầu phát triển bền vững và hội nhập quốc tế và Nghị quyết 30c/NQ-CP ngày 08/11/2011 về Chương trình tổng thể cải cách hành chính nhà nước giai đoạn 2011 – 2020 Trong đó đề cập rất nhiều đến Ứng dụng CNTT - TT trong quy trình xử lý công việc của từng cơ quan hành chính nhà nước, giữa các cơ quan hành chính nhà nước với nhau và trong giao dịch với tổ chức, cá nhân và quan trọng nhất là ứng dụng công nghệ thông tin trong hoạt động dịch vụ hành chính công, dịch vụ công của đơn vị sự nghiệp công

Hầu hết các cơ quan, đơn vị hiện nay đang lưu trữ tài liệu dưới dạng thủ công bằng văn bản giấy dẫn đến những hạn chế như: nhàu nát, hỏng, mờ, khó khăn trong việc tìm kiếm tài liệu, mất nhiều thời gian và không gian lưu trữ Trong khi đó nhu cầu đặt ra cho việc tìm kiếm thông tin ngày càng cao Một số văn bản được đăng tải trên các trang Web chỉ dừng lại ở việc cung cấp thông tin chứ chưa cung cấp được những tri thức cần thiết nên đã có những khó khăn nhất định trong việc tìm hiểu, tra cứu

Như John Naisbitt đã nói: "Chúng ta đang chìm ngập trong thông tin nhưng lại khát khao tri thức" [11] Đúng vậy, 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 Như vậy câu hỏi đặt ra là làm thế nào để chúng ta có được một kết quả tìm kiếm nhanh nhất và chính xác nhất tới ngữ nghĩa vấn đề chúng ta mong muốn

Web 2.0 đã đạt được những thành tựu đáng kể, nhưng nhu cầu của người dùng không dừng lại ở việc cải thiện tốc độ mà còn phải cải thiện chất lượng xử lý Web 3.0

Trang 11

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 12

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 13

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 14

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 15

Ontology ở bên dưới thay vì dùng ngôn ngữ lập trình sẽ giúp dễ dàng thay đổi những giả định thuộc lĩnh vực chuyên ngành, khi kiến thức về lĩnh vực này thay đổi

- Tri thức độc lập với ngôn ngữ: Giải pháp mà Ontology mang lại là cho phép tên các khái niệm và quan hệ trong Ontology chuẩn thường được xây dựng bằng tiếng Anh Điều này có thể sẽ phá vỡ phần nào rào cản về mặt ngôn ngữ khi mà kết quả tìm kiếm sẽ không bó gọn trong từ khóa và ngôn ngữ mà nó sử dụng Ngoài ra, Ontology có thể sẽ trở thành hướng đi mới cho một lĩnh vực đã quen thuộc là dịch tài liệu tự động Có thể nói như vậy, bởi ngữ nghĩa các từ vựng trong văn bản sẽ được dịch chính xác hơn khi được ánh xạ vào đúng ngữ cảnh của nó

- Tri thức trở nên nhất quán và tường minh: Các khái niệm khác nhau trong một hay nhiều lĩnh vực cụ thể có thể cùng tên và gây nhập nhằng về ngữ nghĩa, tuy nhiên khi được đưa vào một hệ thống Ontology thì tên mỗi khái niệm là duy nhất Một giải pháp cho vấn đề này là Ontology sẽ sử dụng các tham khảo URI làm định danh thật sự cho khái niệm trong khi vẫn sử dụng các nhãn gợi nhớ bên trên để thuận tiện cho người dùng

Hình 1.1 Sự cần thiết của Ontology trong quá trình chia sẻ tri thứcTrong hình trên ta thấy các ứng dụng khác nhau, muốn trao đổi thông tin với nhau thì cần phải có một tri thức chung, vì vậy các ứng dụng này đều sử dụng một Ontology

để có thể chia sẻ tri thức cho nhau

1.1.3 Yêu cầu khi sử dụng Ontology

Ngôn ngữ Ontology cho phép người sử dụng viết rõ ràng các khái niệm hình thức của mô hình miền và phải đảm bảo những yêu cầu cơ bản sau:

Trang 16

- 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 17

- 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 18

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 19

khai thác thông tin trên Web hiệu quả hay nói cách khác là làm thế nào để máy tính có thể

xử lý tự động được chúng Muốn vậy thì Web phải có khả năng mô tả thông tin theo cách

mà máy tính có thể hiểu được Để chúng ta dễ dàng có được một kết quả tìm kiếm chính xác, nhanh chóng và hiểu dần tới ngữ nghĩa vấn đề chúng ta mong muốn [9]

Hình 1.2 So sánh giữa Web 1.0, Web 2.0 và Web 3.0

Sự kế thừa và phát triển các thế hệ Web trong quá trình phát triển công nghệ Web

là một điều tất yếu Từ thế hệ Web đầu tiên là những trang HTML thủ công đến Web hiện tại – Web 2.0 đã dùng các liên kết URI, ngôn ngữ HTLM, XML và đã đạt được những thành tựu đáng kể trong việc tìm kiếm Tuy nhiên, ở thế hệ Web này thông tin được biểu diễn dưới dạng văn bản thô, chỉ có con người mới đọc và hiểu được thì việc tìm kiếm trong một lượng lớn thông tin ngày càng ít hiệu quả hơn Hơn nữa nhu cầu của người dùng không dừng lại ở đó mà còn đòi hỏi thông tin trên Web phải đượ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 có hiệu quả hơn Web 3.0 - Web ngữ nghĩa ra đời nhằm đáp ứng những yêu cầu về 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

Trang 20

Hình 1.3 Quá trình phát triển công nghệ Web trong tương laiHình 1.3 minh họa rõ hơn khả năng đáp ứng nhu cầu tìm kiếm ngày càng cao với

lượng thông tin khổng lồ của Web ngữ nghĩa trong tương lai Đảm bảo mục tiêu của Web

ngữ nghĩa là phát triển các chuẩn chung và công nghệ cho phép máy tính có thể hiểu được

nhiều hơn thông tin trên Web, sao cho chúng có thể hỗ trợ tốt hơn việc khám phá thông

tin, tích hợp dữ liệu và tự động hóa các công việc

1.2.3 Định nghĩa Web ngữ nghĩa

Semantic Web hay còn được gọi là Web ngữ nghĩa hay Web 3.0, là sự mở rộng nối

tiếp của các Web thế hệ trước, được đưa ra bởi Tim Berners-Lee vào khoảng năm 1998

[12] Web ngữ nghĩa là một cỗ máy tìm kiếm, có khả năng hỗ trợ người dùng tìm kiếm

các thông tin một cách thông minh, chính xác và nhanh chóng hơn Lợi ích của Web ngữ

nghĩa là 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 chính xác và nhanh chóng hơn, dữ liệu liên kết động và hỗ trợ sự tự động hóa

cho các dịch vụ

Trang 21

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 22

về sự phức tạp của dữ liệu là việc chuyển tự động tài liệu trong một miền này sang một tài liệu tương đương trong một miền khác Ở mức này, ta có thể soạn một định nghĩa mới trên Web ngữ nghĩa, máy có thể xử lý các tài liệu Web có dữ liệu thông minh Hơn nữa, ta

có thể định nghĩa dữ liệu thông minh vì dữ liệu nó độc lập với ứng dụng, có thể soạn, phân lớp và lấy một phần của các hệ thông tin lớn hơn

Như vậy, việc xây dựng Web ngữ nghĩa chủ yếu tập trung xây dựng hệ thống Web

có dữ liệu thông minh Dữ liệu thông minh ở đây không có nghĩa là gắn liền với trí tuệ nhân tạo, không phải là cho máy học hiểu các từ ngữ của con người hay máy xử lý được ngôn ngữ tự nhiên Mà là giúp máy tính tổ chức lựa chọn dữ liệu biểu diễn trong ngôn ngữ được cấu trúc để máy có thể hiểu

1.3 Kiến trúc Web ngữ nghĩa

1.3.1 Giới thiệu

Tim Berners Lee đã đưa ra mô hình kiến trúc Web ngữ nghĩa đầu tiên trong một phiên họp toàn thể vào ngày 28 tháng 2 năm 2001 [5], một mô hình kiến trúc gồm 7 tầng Trong đó, các tầng trên kế thừa các tầng thấp hơn với cơ sở là các chuẩn để mô tả siêu dữ liệu và để đảm bảo độ an toàn và giá trị thông tin trở nên tốt nhất Mô hình kiến trúc đang được thay đổi và hoàn thiện theo thời gian

Trang 23

đối tượng trong Semantic Web

IRI được định nghĩ bởi Internet Engineering Task Force (IETF) vào năm 2005 như một tiêu chuẩn Internet mới để mở rộng cho lược đồ Uniform Resource Identifier (URI) Tiêu chuẩn mới đã được công bố trong RFC 3987

b Tầng XML

XML: Là một mở rộng của ngôn ngữ đánh dấu cho các cấu trúc tài liệu bất kỳ, dựa theo chuẩn SGML do tổ chức ISO chuẩn hóa năm 1986 Một XML bao gồm một tập các thẻ đóng và thẻ mở được lồng vào nhau, ở đó mỗi một cặp thẻ có một cặp các thuộc tính

và giá trị XML sẽ tiếp tục đóng một vai trò quan trọng trong sự phát triển của Semantic Web

c Tầng RDF và RDFS

RDF: Là công cụ để mô tả thông tin về các tài nguyên cho Semantic Web một cách linh động Nó có thể được sử dụng để biểu diễn các thông tin như văn hóa, đời sống,

xã hội,

RDFS: Là một ngôn ngữ Ontology cơ bản mô tả đối tượng như thuộc tính, các lớp

Nó phát triển và mở rộng từ RSF, bổ sung thêm các tập từ vựng để hỗ trợ cho việc xây dựng Ontology

d Tầng Ontology

Ontology: Là cấu trúc dữ liệu biểu diễn ngữ nghĩa nâng cao Được phát triển trên

cở sở hạ tầng RDF và RDFS, một Ontology định nghĩa một bộ từ vựng mang tính phổ biến và cho phép các nhà phát triển chia sẻ thông tin trong một hay nhiều lĩnh vực

e Tầng Logic

Việc biểu diễn các tài nguyên dưới dạng các bộ từ vựng Ontology có mục đích để máy có thể lập luận được mà cơ sở lập luận chủ yếu dựa vào logic Chính vì vậy mà các Ontology được ánh xạ sang logic, cụ thể là logic mô tả để có thể hỗ trợ lập luận

Trang 24

nghĩa

h Tầng User Interface & Application

Đây là tầng cuối cùng của kiến trúc Semantic Web Là tầng giao diện giao tiếp với người sử dụng, nhận yêu cầu từ người dùng và đưa đến các tầng khác cũng như hiển thị kết quả trả lại người dùng

1.4 Xây dựng Web ngữ nghĩa

Để xây dựng hệ thống Web ngữ nghĩa thay thế cho World Wide Web hiện tại, các nhà nghiên cứu đang nỗ lực và tập trung nghiên cứu với ba hướng chính sau:

- Chuẩn hoá các ngôn ngữ biểu diễn dữ liệu (XML) và siêu dữ liệu (RDF) trên Web

- Chuẩn hoá các ngôn ngữ biểu diễn Ontology cho Web có ngữ nghĩa

- Phát triển nâng cao Web ngữ nghĩa (Semantic Web Advanced Development - SWAD)

1.4.1 XML và RDF trên Web

Như chúng ta đã biết, World Wide Web đã rất thành công bởi ngôn ngữ XML XML đã làm cho công nghệ Web phát triển mạnh mẽ như hiện nay Web ngữ nghĩa được phát triển trên nền Web hiện tại và trên nền XML Web ngữ nghĩa được bổ sung các chú thích ngữ nghĩa cho các tài nguyên Web và W3C đã giới thiệu RDF là chuẩn cú pháp để tạo, thay đổi và sử dụng chú thích trong Web ngữ nghĩa Do vậy việc xây dựng ngôn ngữ chuẩn cho XML và RDF là thiết yếu để biểu diễn dữ liệu cho Web ngữ nghĩa Trong quá trình này, đã có một số cú pháp được đưa ra để biểu diễn RDF như: Notation 3 (hay N3), XML/RDF hay đồ thị các mệnh đề của RDF như đã trình bày ở trên Các cú pháp này hỗ trợ biểu diễn dữ liệu cho máy có thể hiểu được

1.4.2 Các ngôn ngữ biểu diễn Ontology cho Web có ngữ nghĩa

Ontology đóng vai trò then chốt trong việc cung cấp tài nguyên có thể truy nhập

để xử lý tự động bằng cách cung cấp bộ từ vựng cho việc đánh dấu ngữ nghĩa Để biểu diễn Ontology cho phát triển Web có ngữ nghĩa cần thiết đưa ra một ngôn ngữ chuẩn cho sự biểu diễn mềm dẻo, linh hoạt và đa dạng của tài nguyên Web

Trong quá trình chuẩn hoá ngôn ngữ biểu diễn Ontology, một số ngôn ngữ được

đề xuất với các khả năng biểu diễn tăng dần như: RDFS, DAML+OIL, OWL,… và tiếp tục được mở rộng trong tương lai Các ngôn ngữ này có khả năng biểu diễn tăng dần nhưng

Trang 25

tương ứng là khả năng quyết định giảm dần (Độ phức tạp tăng dần) Các ngôn ngữ biểu diễn Ontology được xây dựng phải cân bằng được khả năng biểu diễn và độ phức tạp tính toán Các ngôn ngữ này được xây dựng trên nền các chuẩn XML, RDF và thường sử dụng cơ sở logic là logic mô tả để biểu diễn ngữ nghĩa và hỗ trợ lập luận

1.4.3 Phát triển nâng cao Web ngữ nghĩa

Việc chuẩn hoá các ngôn ngữ biểu diễn dữ liệu XML, siêu dữ liệu RDF hay ngôn ngữ biểu diễn Ontology là các công việc nền tảng tạo ra chuẩn chung cơ sở để phát triển

hệ thống và các ứng dụng trên Web ngữ nghĩa Việc đưa các chuẩn đó thành các thể hiện, các sản phẩm của hệ thống Web ngữ nghĩa là công việc của SWAD (Semantic Web Advanced Development) SWAD thực hiện nghiên cứu và đưa ra các thể hiện của Web ngữ nghĩa trên công nghệ cơ sở và nó cũng bổ sung, hoàn thiện các công nghệ cơ sở này

Nó chỉ ra các công nghệ Web ngữ nghĩa được sử dụng như thế nào? Mục tiêu cụ thể của SWAD là sử dụng các công nghệ, kỹ thuật và các công cụ hiện có của Web ngữ nghĩa

để tạo ra các chương trình vượt xa hơn tầm hiện có, cung cấp các công cụ và các chuẩn mới cho Web ngữ nghĩa

Để phát triển SWAD hiện tại đã có một số dự án của các tổ chức thực hiện nghiên cứu và phát triển như: SWAD-Europe, SWAD-DAML, SWAD-Simile, SWAD-Oxygen

1.5 Các ngôn ngữ và công cụ xây dựng Web ngữ nghĩa

Ngôn ngữ biểu diễn dữ liệu và tri thức là một khía cạnh quan trọng của Web ngữ nghĩa Có nhiều ngôn ngữ cho Web ngữ nghĩa, hầu hết những ngôn ngữ này dựa trên XML hay sử dụng XML làm cú pháp Một số ngôn ngữ sử dụng RDF và RDFschema

1.5.1 XML (eXtensible Markup Language)

- XML là một đặc tả cho các tài liệu (Document) mà máy tính đọc được

- Đánh dấu (Markup) có nghĩa là các chuỗi ký tự nào đó trong tài liệu có chứa thông tin chỉ ra vai trò nội dung của tài liệu Markup mô tả sơ đồ (Layout) dữ liệu của tài liệu (Document) và cấu trúc logic Markup làm thông tin tự mô tả tùy vào cảm nhận

+ Markup được mô tả dưới dạng các từ trong dấu ngoặc nhọn hay còn gọi là tag

Ví dụ: <name> hay <h1>Về khía cạnh này, XML giống như HTML, nhưng tính

mở rộng của ngôn ngữ chỉ ra sự khác biệt quan trọng và cũng là đặc điểm chính của XML XML thực sự là một siêu ngôn ngữ mô tả dữ liệu (Metalanguage), là một cơ cấu

Trang 26

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 27

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 28

nhúng siêu dữ liệu trong văn bản Web

+ N3 (Notation 3): 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

b Mô hình RDF cơ bản

- 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:

NSAttName ::= PrefixedAttName | DefaultAttName

PrefixedAttName ::= 'xmlns:' NCName

DefaultAttName ::= 'xmlns'

NCName ::= (Letter | '_') (NCNameChar)*

NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar

| Extender

- Qualified name (QName) và cách sử dụng

Một QName bao gồm một tiếp đầu ngữ (Prefix) mà đã được gán trước đó bởi một URI theo sau là dấu “:” và tên cục bộ Ví dụ: Nếu một QName prefix foo được gán cho một URI là http://example.org/somewhere/ cho 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 (Qualified Name)

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?'>’

ETag::= '</' QName S? '>'

EmptyElemTag::= '<' QName (S Attribute)* S?'/>'

Cách dùng QName đối với kiểu dữ liệu là attribute

Attribute ::= NSAttName Eq

AttValue|QName Eq AttValue [ NSC: Prefix Declared]

Một số QName phổ biến thường sử dụng

prefix rdf:, namespace URI: http://www.w3.org/1999/02/22-rdf- syntax-ns#

prefix rdfs:, namespace URI: http://www.w3.org/2000/01/rdf-

schema#

prefix dc:, namespace URI: http://purl.org/dc/elements/1.1/

Trang 29

prefix owl:, namespace URI: http://www.w3.org/2002/07/owl#

http://www.example.com/)

prefix xsd:, namespace URI: http://www.w3.org/2001/XMLSchema#

c Bộ ba RDF ( RDF Triple)

Mô hình cơ bản của RDF gồm ba đối tượng: tài nguyên, thuộc tính và phát biểu

- Tài nguyên (Resources) trên Web là một phạm trù rộng lớn dùng để chỉ mọi đối tượng trên Web như: khái niệm, từ vựng, thực thể, tính chất và quan hệ giữa các đối tượng Chúng ta có thể hiểu đơn giản rằng một tài nguyên cũng giống như một đối tượng, một vật mà chúng ta muốn đề cập Mỗi tài nguyên luôn được định danh bởi URI, một URI có thể là một URL hoặc một địa chỉ trên Web

- Thuộc tính (Properties): Là đặc tính hay quan hệ dùng để mô tả tính chất của tài nguyên

- Phát biểu (Statements): Một phát biểu xác định thuộc tính của tài nguyên.Mỗi một Statements gồm (Subject, Predicate, Object) còn gọi là bộ ba (Triple):

+ Subject: Địa chỉ hay vị trí tài nguyên muốn mô tả, thông thường thì đây là chuỗi định URL hoặc URI

+ Predicate: Xác định tính chất của tài nguyên

+ Object: Nội dung gán cho thuộc tính

Trang 30

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 31

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 32

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:

propertyElt* '</rdf:Description>'

|'<' propName resourceAttr '/>'

[11] URI-reference ::= String, interpreted per [URI]

Ví dụ 1: Xét phát biểu

Trang 33

ex:index.html exterms:creation-date "August 16, 1999"

Một cú pháp RDF/XML để biểu diễn cho phát biểu trên như sau:

Ta có một cách giải thích cụ thể cho cách biểu diễn ở trên như sau:

- Dòng 1: Là khai báo XML cho biết nội dung theo sau dựa trên cú pháp XML và phiên bản XML được dùng

- Dòng 2 và 3: Bắt đầu với thẻ rdf:RDF, cho biết rằng nội dung XML tiếp theo (Bắt đầu từ đây cho đến </rdf:RDF> trong dòng 7) mô tả RDF Từ khóa này xác định tài liệu này được biểu diễn dưới dạng RDF Tiếp theo là phần khai báo XML namespace được sử dụng trong tài liệu, tùy vào nhu cầu và mục đích sử dụng mà ta có thể dùng các namespace khác nhau cho từng tài liệu

- Dòng 4, 5, 6: Mô tả những phát biểu RDF Để mô tả bất kỳ phát biểu nào dạng RDF/XML có thể dùng rdf:description và rdf:about Đây chính là Subject của phát biểu (about http://www.example.org/index.html) Thẻ bắt đầu rdf:Description trong dòng 4 cho biết bắt đầu mô tả về một resource và tiếp tục định danh resource này dùng thuộc tính rdf:about để chỉ ra URI của subject resource Dòng 5 cung cấp 1 phần tử thuộc tính, với QName exterms: creation-date như là thẻ của nó (Phần QName đã được giải thích rõ

ở trên) Nội dung của phần tử thuộc tính này là Object của statement, có giá trị là kiểu Plain Literal “August 19, 1999”

- Dòng 7: Cho biết kết thúc của thẻ rdf: RDF bắt đầu ở dòng 2 và cũng là thẻ kết thúc của tài liệu RDF

Như vậy ta đã biết làm thế nào để khai báo một tài liệu RDF Trong tài liệu RDF, tất cả các phần tử có tiếp đầu ngữ là rdf được dùng để mô tả tài nguyên Chúng sử dụng một không gian tên được tổ chức W3C qui định: http://www.w3.org/1999/02/22-rdf- syntax-ns#

Ở ví dụ trên ta chỉ mô tả tài liệu cho một phát biểu đơn giản, với một tài liệu gồm nhiều phát biểu, việc mô tả nó cũng thật sự đơn giản

Ví dụ 2: Với 3 phát biểu :

Trang 34

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 35

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 36

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 37

Ví 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 38

c Định nghĩa Property (Thuộc tính)

RDF Schema cũng cung cấp một bộ từ vựng để mô tả làm thế nào mà các thuộc tính (Property) và lớp (Class) có thể được sử dụng cùng với nhau trong dữ liệu RDF Thuộc tính quan trọng nhất được sử dụng trong trường hợp này là rdfs:range và

ex:Person rdf:type rdfs:Class

ex:author rdf:type rdf:Property

ex:author rdfs:range ex:Person

Phát biểu này chỉ rằng ex:Person là một lớp, ex:author là một thuộc tính, và thuộc tính ex:author có object là thể hiện của lớp ex:Person

Tuy nhiên một thuộc tính có thể có nhiều rdfs:range như ví dụ sau:

ex:hasMother rdfs:range ex:Female

ex:hasMother rdfs:range ex:Person

Thuộc tính rdfs:range cũng có thể được sử dụng để chỉ ra giá trị của kiểu Typed Literal:

ex:age rdf:type rdf:Property

Trang 39

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

dựng, quản lý đưa ra các chuẩn liên quan đến WWW – khuyến nghị vào năm 2008 Nó cung cấp những tính năng sau:

- Trích thông tin trong các dạng của URI, các blank node và các plain hay Typed Literal

- Trích ra những đồ thị RDF con

- 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à

Ngày đăng: 14/07/2020, 15:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w