Tải bản đầy đủ (.pdf) (82 trang)

Nghiên cứu và ứng dụng các nền tảng phát triển hệ thống ngữ nghĩa mở

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.24 MB, 82 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

Nguyễn Xuân Cƣờng

NGHIÊN CỨU VÀ ỨNG DỤNG CÁC NỀN TẢNG PHÁT TRIỂN HỆ THỐNG
NGỮ NGHĨA MỞ

Chuyên ngành: Kỹ thuật phần mềm

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS CAO TUẤN DŨNG

HÀ NỘI – 2019

1


LỜI CAM ĐOAN
Tôi – Nguyễn Xuân Cường – cam kết luận văn là cơng trình nghiên cứu của bản thân
tơi dưới sự hướng dẫn của PGS.TS Cao Tuấn Dũng.
Các kết quả nêu trong luận văn là trung thực, không phải là sao chép tồn văn của
bất kỳ cơng trình nào khác.
Hà Nội, ngày 27 tháng 04 năm 2019
Học viên

Nguyễn Xuân Cường


2


LỜI CAM ĐOAN ....................................................................................................... 2
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ .............................................. 5
DANH MỤC HÌNH ................................................................................................... 7
DANH MỤC BẢNG .................................................................................................. 8
MỞ ĐẦU ................................................................................................................. 10
1. Mục đích nghiên cứu của luận văn...................................................................... 10
2. Nội dung của luận văn ........................................................................................ 10
3. Các đóng góp khoa học của luận văn .................................................................. 10
Chương 1: Kiến thức nền tảng .................................................................................. 11
1.1. Tổng quan Web ngữ nghĩa ............................................................................... 11
1.1.1. Khái niệm ............................................................................................................. 11
1.1.2. Kiến trúc của Web ngữ nghĩa ................................................................................ 11
1.1.3. Vai trò của các thành phần trong Web ngữ nghĩa .................................................. 12
1.1.4. Ontology [7] ......................................................................................................... 15
1.1.5. Metadata [9] ......................................................................................................... 17
1.1.6. SPARQL [5] ......................................................................................................... 17

1.2. Bài toán phát triển hệ thống ngữ nghĩa ............................................................. 18
1.2.1. Mơ hình phát triển hệ thống Web ngữ nghĩa ......................................................... 18
1.2.2. Mơ hình phát triển hệ thống tìm kiếm ngữ nghĩa ................................................... 20

1.3. Tiểu kết chương............................................................................................... 21
Chương 2: Các nền tảng phát triển hệ thống ngữ nghĩa mở ....................................... 22
2.1. Vai trò của các nền tảng ngữ nghĩa mở ............................................................ 22
2.2. Nền tảng dotnetRDF ........................................................................................ 23
2.2.1. Tổng quát về dotnetRDF ...................................................................................... 23
2.2.2. Kiến trúc .............................................................................................................. 24

2.2.3. Khả năng ứng dụng của dotnetRDF ...................................................................... 27

2.3. Nền tảng Open Semantic Framework (OSF) .................................................... 27
2.3.1. Tổng quát về OSF ................................................................................................ 27
2.3.2. Kiến trúc của OSF................................................................................................ 28
2.3.3. Khả năng ứng dụng của OSF ................................................................................ 36

2.4. Nền tảng Open Semantic Search (OSS) ........................................................... 39
2.4.1. Tổng quát về OSS ................................................................................................ 39
2.4.2. Kiến trúc của OSS ................................................................................................ 42
2.4.3. Khả năng ứng dụng của OSS ................................................................................ 46

2.5. Đánh giá các nền tảng ngữ nghĩa mở ............................................................... 47

3


2.6. Tiểu kết chương............................................................................................... 48
Chương 3: Thử nghiệm ứng dụng quản lý thông tin văn bản sử dụng Open Semantic
Search ...................................................................................................................... 49
3.1. Bài tốn quản lý thơng tin văn bản ................................................................... 49
3.2. Các thành phần trong ứng dụng ....................................................................... 50
3.3.1 Django Framework ............................................................................................... 50
3.3.2. ETL ..................................................................................................................... 54
3.3.3. Solr ...................................................................................................................... 58
3.3.4. Xây dựng ứng dụng thử nghiệm ........................................................................... 64

3.3. Các kết quả ...................................................................................................... 73
3.4. Tiểu kết chương............................................................................................... 75
Chương 4 KẾT LUẬN ............................................................................................. 77

TÀI LIỆU THAM KHẢO ........................................................................................ 78
PHỤ LỤC................................................................................................................. 80

4


DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Từ viết đầy đủ

Từ viết tắt, thuật ngữ
OSF

Open Semantic Framework

OSS

Open Semantic Search

CMA

Content Management Application

CDA

Content Delivery Application

URI

Uniform Resource Identifier


CRUD

Create Read Update Delete

HTML

Hypertext Markup Language

API

CSR
CSRF

Application Programming Interface
Cross-Site Scripting
Cross-Site Request Forgery

RDF

Resource Description Framework

RDFS

Resource Description Framework Schema

OWL

Web Ontology Language

SPQRQL


SPARQL Protocol and Query Language

OSF

Open Semantic Framework

OSS

Open Semantic Search

RIF

Rule Interchange Format

URL

Uniform Resource Locator

JSON

JavaScript Object Noattion

JSON-LD

JavaScript Object Noattion for Linked Data

RDFa

Resource Description Framework in Attributes


CMS

Content Managerment System

WOA

Web-Oriented Architecture

HTTP

HyperText Transfer Protocol

SKOS

Simple Knowledge Organization System

UML

Unified Modeling Language

XML

eXtensible Markup Language

UI

User Interface

5



MVT

Models Views Temples

DBA

Database Administrator

DIH

Data Import Handler

ETL

Extract Transform Load

OCR

Optical Character Recognition

6


DANH MỤC HÌNH
Hình 1-1 Kiến trúc tầng cơng nghệ ngữ nghĩa [2] ................................................... 12
Hình 1-2 Đồ thị ví dụ RDF ..................................................................................... 13
Hình 1-3 Các mức độ ngữ nghĩa [8] ....................................................................... 16
Hình 1-4 Mơ hình triển khai một ứng dụng ngữ nghĩa [10] .................................... 19

Hình 1-5 Kiến trúc một máy tìm kiếm [11] ............................................................ 20
Hình 2-1 Quá trình phát triển của các thế hệ Web [12] ........................................... 23
Hình 2-2 Dự án lõi của dotnetRDF ......................................................................... 24
Hình 2-3 Chi tiết project dotnetRDF ...................................................................... 25
Hình 2-4 Các lớp trong DataTable của dotnetRDF ................................................. 25
Hình 2-5 Các lớp của Virtuoso ............................................................................... 25
Hình 2-6 Các class trong Fulltext ........................................................................... 26
Hình 2-7 Truy vấn SPIN. ....................................................................................... 26
Hình 2-8 Web trong dotnetRDF ............................................................................. 27
Hình 2-9 Kiến trúc tầng của OSF [14] .................................................................... 29
Hình 2-10 Kiến trúc tầng chi tiết của OSF [15] ...................................................... 30
Hình 2-11 Giao diện OSS ....................................................................................... 42
Hình 3-1 Mơ hình MVT (Models – Views – Templates) trong Django [22] ........... 51
Hình 3-2 Chuyển đổi từ Model sang Bảng trong cơ sở dữ liệu [22] ........................ 52
Hình 3-3 Kiến trúc của Solr [18] ............................................................................ 59
Hình 3-4 Tải dữ liệu vào Solr [18].......................................................................... 60
Hình 3-5 Sơ đồ trình tự trong ứng dụng.................................................................. 67
Hình 3-6 Các thành phần chính trong ứng dụng. .................................................... 69
Hình 3-7 Các mơ-đun trong OSS ............................................................................ 70
Hình 3-8 Mơ-đun crawler trong OSS...................................................................... 70
Hình 3-9 Ánh xạ các OntoNotes5 SpaCy................................................................ 71
Hình 3-10 Kết quả thực thể PERSON.................................................................... 71
Hình 3-11 Giao diện tìm kiếm theo tác giả ............................................................. 73
Hình 3-12 Kết quả tìm kiếm được tài liệu theo tác giả là Eduard Hovy .................. 73
Hình 3-13 Một số tổ chức được nhận diện .............................................................. 74

7


DANH MỤC BẢNG

Bảng 2-1 Các dịch vụ Web trong OSF ................................................................... 32
Bảng 2-2 Các dự án chính trong OSS [16] .............................................................. 41
Bảng 2-3 Bảng đánh giá các nền tảng. .................................................................... 48
Bảng 3-1 Bảng chú thích tên thực thể trong OntoNotes 5 [17]................................ 57
Bảng 3-2 Cấu trúc thư mục trong Solr .................................................................... 61
Bảng 3-3 Bảng một số thuộc tính cơ bản trong các trường của schema.xml ............ 62
Bảng 3-4 Các thành phần cơ bản quan trọng trong schema.xml .............................. 62
Bảng 3-5 Bảng cấu các tham số cơ bản trong cấu hình solrconfig.xml ................... 63
Bảng 3-6 Một số API được sử dụng trong Solr. ...................................................... 64
Bảng 3-7 Các trường hợp sử dụng trong ứng dụng ................................................. 65
Bảng 3-8 Bảng Senario của ứng dụng..................................................................... 66
Bảng 3-9 Thơng tin cấu hình trong solrconfig.xml ................................................. 68
Bảng 3-10 Cấu hình các plugin quan trọng trong ETL............................................ 68
Bảng 3-11 Bảng các API tìm kiếm được sử dụng trong Thử nghiệm. ..................... 72
Bảng 3-12 Kết quả tìm kiếm................................................................................... 74
Bảng 3-13 Đánh giá kết quả thử nghiệm................................................................. 75

8


LỜI CẢM ƠN
Để có thể hồn thành luận văn tốt nghiệp này, em xin chân thành cảm ơn thầy
hướng dẫn luận văn tốt nghiệp, PGS.TS Cao Tuấn Dũng, bộ môn Công nghệ phần
mềm, trường đại học Bách Khoa Hà Nội. Thầy đã nhiệt tình hướng dẫn, truyền đạt
những kiến thức cần thiết và định hướng cho em trong quá trình thực hiện đề tài.
Em xin chân thành cảm ơn các thầy cô giáo ở bộ môn Công nghệ phần mềm, trường
Đại học Bách Khoa Hà Nội.
Dù đã cố gắng nhưng luận văn chắc chắn khơng tránh khỏi thiếu sót, em rất mong
nhận được ý kiến đóng góp của các thầy cô.
Em xin chân thành cảm ơn!


9


MỞ ĐẦU
1. Mục đích nghiên cứu của luận văn
Luận văn có 4 nhiệm vụ cụ thể như sau:
Tìm hiểu cơng nghệ Web ngữ nghĩa và vai trò trong các hệ thống thông tin hiện đại.
Nghiên cứu, tổng hợp thông tin về các nền tảng phát triển công nghệ ngữ nghĩa mở,
đánh giá khả năng ứng dụng triển khai, ưu nhược điểm.
Lựa chọn nền tảng – xây dựng thử nghiệm các tính năng xử lý thơng tin với hỗ trợ
ngữ nghĩa.
Đề xuất hoặc đưa ra các hướng dẫn, kinh nghiệm triển khai các hệ thống với công
nghệ ngữ nghĩa sử dụng các nền tảng mở.
2. Nội dung của luận văn
Nội dung luận văn bao gồm 4 chương:
Chương 1: Tổng quan về Web ngữ nghĩa và bài toán phát triển hệ thống Web ngữ
nghĩa. Chương này tìm hiểu lý thuyết về Web ngữ nghĩa các khái niệm chính của Web
ngữ nghĩa, tham khảo một số mơ hình hệ thống ứng dụng Web ngữ nghĩa đã được
nghiên cứu.
Chương 2: Các nền tảng phát triển hệ thống ngữ nghĩa mở. Chương này tìm hiểu về
các nền tảng hỗ trợ lập trình, xây dựng hệ thống ngữ nghĩa như dotnetRDF, Open
Semantic Search, Open Semantic Framework.
Chương 3: Thử nghiệm ứng dụng quản lý thông tin văn bản sử dụng Open Semantic
Search. Chương này sẽ sử dụng nền tảng Open Semantic Search để phân tích tài liệu,
thực hiện tìm kiếm các tài liệu đã được đưa vào phân tích.
Chương 4. Kết luận.
3. Các đóng góp khoa học của luận văn
Luận có hai đóng góp như sau:
Dựa trên các nghiên cứu về ba nền tảng dotnetRDF, Open Semantic Framework,

Open Semantic Search đưa ra những đánh giá cụ thể về các nền tảng trên giúp các nhà
phát triển có lựa chọn thích hợp với từng trường hợp sử dụng.
Đưa ra các kinh nghiệm sử dụng triển khai nền tảng Open Semantic Search trong
việc tìm kiếm tài liệu văn bản.

10


Chƣơng 1: Kiến thức nền tảng
1.1. Tổng quan Web ngữ nghĩa
1.1.1. Khái niệm
Theo tác giả Tim-Berners-Lee trong một bài báo công bố năm 2001 với tiêu đề “The
Semantic Web” Web ngữ nghĩa được định nghĩa như sau: “Web ngữ nghĩa (Semantic
Web) không phải là một Web mới mà là phần mở rộng của Web hiện tại trong đó
những thơng tin được cung cấp có ý nghĩa rõ ràng hơn, cho phép con người và máy
tính hợp tác làm việc tốt hơn” [1].
Trên cơ sở định nghĩa của tác giả Tim-Berners-Lee, Web ngữ nghĩa giúp làm rõ hơn
hai vấn đề. Một là, các thông tin sẽ được cung cấp rõ ràng hơn, thể hiện được các mối
quan hệ, ràng buộc giữa chúng. Hai là, giúp máy tính có thể hiểu được từ đó làm tăng
sự tương tác giữa con người với máy tính. Máy tính có thể hiểu được các tài liệu ngữ
nghĩa, dữ liệu khơng phải lời nói của con người hay các bài viết.
1.1.2. Kiến trúc của Web ngữ nghĩa
Ngày nay, những công nghệ nền tảng cho phát triển cơng nghệ Web ngữ nghĩa đã
được hồn thiện, dựa trên những nghiên cứu các nhà khoa học đã đưa ra được kiến trúc
cơng nghệ Web ngữ nghĩa, hình 1-1 dưới đây thể hiện kiến trúc của Web ngữ nghĩa.
Kiến trúc của công nghệ Web ngữ nghĩa bao gồm ba tầng chính: Tầng đáy chứa các
cơng nghệ cơ bản của Web ngữ nghĩa như là URI, Unicode, XML. Tầng trung gian
chứa các công nghệ tiêu chuẩn của W3C cho phép xây dựng ứng dụng Web ngữ nghĩa
như: RDF, RDFS, OWL, SPARQL, RIF. Tầng trên cùng là những công nghệ chưa
được chuẩn hóa hoặc chưa được triển khai hiện thực hóa: Cryptography, Trust, Giao

diện người sử dụng. Mỗi tầng, mỗi thành phần trong các tầng đều có những vai trị nhất
định giúp hình thành nên cơng nghệ Web ngữ nghĩa. Ở trong phần tiếp theo của
chương tác giả giới thiệu về chức năng vai trò của các thành phần trong từng lớp của
công nghệ Web ngữ nghĩa.

11


Hình 1-1 Kiến trúc tầng cơng nghệ ngữ nghĩa [2]
1.1.3. Vai trò của các thành phần trong Web ngữ nghĩa
UNICODE [2]
Là một bảng mã chuẩn chung có đủ các ký tự thống nhất sự giao tiếp trên tất cả các
quốc gia, đáp ứng tính nhất qn tồn cầu của Web.

12


URI [2]
Một URI là một kí hiệu nhận dạng Web đơn giản. Là một xâu ngắn cho phép nhận
dạng tài nguyên Web như: với các xâu bắt đầu với "http:" hoặc "ftp:" thường xuất hiện
trên World Wide Web. Bất kỳ một người nào cũng có thể tạo một URI và sở hữu các
URI, URI là một công nghệ cơ sở để xây dựng một hệ thống Web toàn cầu. Hệ thống
World Wide Web được xây dựng trên các URI. URL (Uniform Resource Locator) là
một dạng đặc biệt của URI và là một địa chỉ trên mạng. URIref (URI reference) là một
URI cùng với một phần nhận dạng tuỳ ý ở cuối.
Ví dụ, URIref:" bao gồm một URI:
" và một phần nhận dạng "Ontology" được cách nhau
bởi kí hiệu #.
Theo như quy ước, các không gian tên là những tài nguyên mà tạo ra các đa
tài nguyên, thường là những URI được kết thúc bởi kí hiệu #. Ví dụ:

" là một khơng gian tên. Các tài ngun khơng
có URIref thì được gọi là các nút trắng; một nút trắng chỉ ra sự tồn tại của tài
ngun khơng có sự đề cập rõ ràng về tham chiếu URIref của tài nguyên.
XML [2]
Cung cấp những cú pháp cho nội dung trong các tài liệu, nhưng không liên quan đến
ngữ nghĩa với ý nghĩa của nội dung trong đó. Ngồi XML thì thực tế có thể sử dụng
các Turtle, mặc dù chưa được chuẩn hóa.
RDF [3]
RDF được W3C giới thiệu để cung cấp một cú pháp chuẩn để tạo, thay đổi
và sử dụng các chú thích trong Web ngữ nghĩa. Một mệnh đề RDF là một bộ ba có
dạng: [chủ đề thuộc tính đối tượng]. Trong đó, chủ đề là tài nguyên mà được mơ tả
bằng thuộc tính và đối tượng. Thuộc tính thể hiện mối quan hệ giữa chủ đề và đối
tượng. Cịn đối tượng ở đây có thể là một tài nguyên hoặc một giá trị. Ba thành phần
trên trong RDF đều là các URI.

Hình 1-2 Đồ thị ví dụ RDF

13


Ví dụ về một RDF
<?xml version="1.0"?>
<RDF>
<Description about=" /><author>Jan Egil Refsnes</author>
<homepage></homepage>
</Description>
</RDF>
Ý nghĩa của các thành phần trong ví dụ trên như sau: Tài ngun có thơng tin mơ tả
trong : thuộc tính mơ tả về: <homepage>,
giá trị của thuộc tính mơ tả về:

Một mệnh đề RDF có thể là: Tác giả của là
Jan Egil Refsnes. Trang chủ của là
.
RDFS [4]
RDFS là một ngơn ngữ có mục đích chung để biểu diễn các từ vựng RDF đơn giản
trên Web. Các công nghệ định nghĩa từ vựng khác như OWL hoặc SKOS được xây
dựng dự trên RDFS và cung cấp ngôn ngữ để xác định các bản thể luận dựa trên Web
có cấu trúc, cho phép tích hợp và khả năng tương tác dữ kiệu cộng đồng mô tả phong
phú hơn. RDFS cung cấp các định nghĩa về: lớp tài nguyên, quan hệ giữa các lớp, các
thuộc tính mà các lớp trên có mối quan hệ giữa các thuộc tính.
OWL [2]
OWL thêm các từ vựng để mô tả các thuộc tính và các lớp: trong số các từ vựng,
mối quan hệ giữa các lớp: các thuộc tính phong phú hơn, các đặc tính của thuộc tính,
liệt kê các lớp.
SPARQL [5]
Là một giao thức, một ngôn ngữ truy vấn cho các nguồn dữ liệu Web ngữ nghĩa
như RDF, OWL, SPARQL cho phép truy vấn đến các bộ ba, các liên từ.

14


RIF [6]
Là một định dạng trao đổi qui tắc W3C. Đó là một ngơn ngữ XML cho việc thể hiện
ngơn ngữ Web mà máy tính có thể thực thi. RIF cung cấp nhiều phiên bản nó bao gồm
phương ngữ cơ bản (RIF- BLD) và phương ngữ quy tắc sản xuất (RIF-PRD).
Proof [2]
Tầng này đưa ra các luật để suy luận. Cụ thể từ các thơng tin đã có ta có thể
suy ra các thơng tin mới. Ví dụ: A là cha của B, A là em trai C thì khi đó ta có
thơng tin mới là C là bác của B. Để có được các suy luận này thì cơ sở là FOL
(First-Order-Logic). Và tầng này hiện nay các nhà nghiên cứu đang xây dựng các

ngơn ngữ luật cho nó như: SWRL, RuleML.
Trust [2]
Đảm bảo tính tin cậy của các ứng dụng trên Web ngữ nghĩa. Ví dụ: có một
người bảo x là xanh, một người khác lại nói x không xanh, như thế Web ngữ nghĩa
là không đáng tin cậy? Câu trả lời ở đây được xem xét trong các ngữ cảnh. Mỗi
ứng dụng trên Web ngữ nghĩa sẽ có một ngữ cảnh cụ thể, chính vì thế các mệnh đề
trên có thể nằm trong các ngữ cảnh khác nhau khi đó ngữ nghĩa tương ứng khác
nhau nên các mệnh đề đó vẫn đúng, đáng tin cậy trong ngữ cảnh của nó. Để có
được sự chứng minh về độ tin cậy thì các lập luận được áp dụng là khơng đơn điệu và
có các cơ chế kiểm tra chứng minh kết hợp với công nghệ chữ ký điện tử để xác
nhận độ tin cậy. Các ngôn ngữ chứng minh là ngôn ngữ cho ta chứng minh một
mệnh đề là đúng hay sai.
Cryptography [2]
Giúp đảm bảo và xác thực các nguồn dữ liệu trong các trang Web ngữ nghĩa là đáng
tin cậy bằng cách ứng dụng chữ ký số vào trong các tuyên bố RDF. Đây là một thành
phần vô cùng quan trọng của một ứng dụng Web ngữ nghĩa, nó khơng chỉ đảm bảo về
tính an tồn tin cậy mà cịn cả tính tồn vẹn của thơng tin.
1.1.4. Ontology [7]
Một Ontology là những định nghĩa các từ vựng chung cho các nhà nghiên cứu người
mà cần để chia sẻ thông tin trong một miền, lĩnh vực. Bao gồm các định nghĩa cơ bản
mà máy tính có thể hiểu được trong một miền lĩnh vực và các mối quan hệ giữa chúng.

15


Các thành phần chính của Ontology bao gồm: Cá nhân (Individual): là các các thể
hoặc các đối tượng (đối tượng cơ bản). Lớp (Class): là các bộ, bộ sưu tập, khái niệm
hoặc các loại đối tượng.
Các thuộc tính: thuộc tính, tính năng, đặc điểm hoặc tham số mà các đối tượng (và
lớp) có thể có: Quan hệ là cách mà các lớp và các đối tượng có thể liên quan với nhau.

Thuật ngữ chức năng: các cấu trúc phức tạp được hình thành từ các mối quan hệ nhất
định có thể được sử dụng thay cho một thuật ngữ cá nhân trong một tun bố hạn chế:
mơ tả chính thức về những gì phải đúng để một số khẳng định là được chấp nhận làm
đầu vào. Quy tắc: các câu dưới dạng câu if then (tiên đề) mô tả suy luận logic có thể
được rút ra từ một khẳng định trong một hình thức cụ thể. Tiên đề: các xác nhận (bao
gồm các quy tắc) ở dạng logic cùng nhau bao gồm lý thuyết tổng thể bản thể luận mô
tả trong lĩnh vực ứng dụng của nó. Định nghĩa này khác với định nghĩa của "tiên đề"
trong ngữ pháp khái quát và logic hình thức. Trong các ngành này, tiên đề chỉ bao gồm
tuyên bố khẳng định là một kiến thức tiên nghiệm. Như được sử dụng ở đây, "tiên đề"
cũng bao gồm lý thuyết xuất phát từ các phát biểu tiên đề. Sự kiện: thay đổi thuộc tính
hoặc quan hệ.
Các mức độ của Web ngữ nghĩa được thể hiện ở hình dưới, mức độ ngữ nghĩa tăng
dần từ thấp đến cao. Ở mức thấp nội dung chỉ được thể hiện bằng XML cao hơn nữa là
các RDF và OWL.

Hình 1-3 Các mức độ ngữ nghĩa [8]

16


1.1.5. Metadata [9]
Metadata (siêu dữ liệu) là dữ liệu [thông tin] cung cấp thơng tin về dữ liệu khác. Có
các loại siêu dữ liệu như: siêu dữ liệu mô tả, siêu dữ liệu cấu trúc, siêu dữ liệu quản trị,
siêu dữ liệu tham chiếu, siêu dữ liệu thống kê.
Siêu dữ liệu mô tả mô tả một tài nguyên cho các mục đích khám phá và nhận dạng
có thể bao gồm các yếu tố như tiêu đề, trừu tượng, tác giả và từ khóa.
Siêu dữ liệu cấu trúc là siêu dữ liệu về các thùng chứa dữ liệu và cho biết cách các
đối tượng ghép được kết hợp với nhau, ví dụ: cách các trang được sắp xếp để tạo thành
các chương. Mô tả các loại, phiên bản, mối quan hệ và các đặc tính khác của vật liệu
kỹ thuật số.

Siêu dữ liệu quản trị cung cấp thông tin để giúp quản lý tài nguyên, chẳng hạn như
thời điểm và cách thức được tạo, loại tệp và thông tin kỹ thuật khác và ai có thể truy
cập vào tài nguyên đó. Siêu dữ liệu tham chiếu mô tả nội dung và chất lượng của dữ
liệu thống kê siêu dữ liệu thống kê cũng có thể mơ tả các quy trình thu thập, xử lý hoặc
tạo dữ liệu thống kê; siêu dữ liệu như vậy cũng được gọi là dữ liệu quá trình.
Siêu dữ liệu có cú pháp thể hiện là các quy tắc để cấu trúc lên các trường hoặc thành
phần của siêu dữ liệu. Lược đồ siêu dữ liệu được thể hiện bằng ngôn ngữ đánh dấu
hoặc các ngôn ngữ lập trình. Các siêu dữ liệu thường hay được thể hiện thông qua
HTML, XML, RDF.
1.1.6. SPARQL [5]
SPARQL là giao thức truy cập dữ liệu và ngôn ngữ truy vấn RDF tiêu chuẩn được
giới thiệu bởi W3C để dễ dàng truy cập vào các tài liệu RDF trong Web ngữ nghĩa.
Được định nghĩa trong kết nối với mơ hình dữ liệu RDF và hoạt động với bất kỳ nguồn
dữ liệu nào có thể được biểu thị bằng RDF. Truy vấn SPARQL ngôn ngữ cung cấp cú
pháp và ngữ nghĩa để nhận thông tin từ đồ thị RDF. SPARQL cung cấp một số phương
tiện để trích xuất thơng tin trong nhiều các hình thức như URI, các nút trống và các ký
tự đơn giản. SPARQL cũng có các phương tiện để trích xuất các biểu đồ con RDF và
xây dựng các biểu đồ RDF mới sử dụng thông tin trong các truy vấn. Kết hợp các mẫu
biểu đồ là cơ sở của ngôn ngữ truy vấn SPARQL.
Các mẫu biểu đồ cơ bản đơn giản nhất có thể là một mẫu ba như bộ ba RDF với các
biến thay vì chủ đề, vị ngữ và đối tượng. Những mẫu biểu đồ có thể được sử dụng làm
mẫu cơ bản cho biểu đồ RDF để truy xuất truy vấn các kết quả. Khơng có suy luận
trong ngơn ngữ truy vấn SPARQL và nó chỉ truy vấn thông tin trong đồ thị RDF.

17


Ví dụ về RDF và truy vấn SPARQL:
xmlns:rdf=" />xmlns:dc=" />xmlns:foaf=" >

<rdf:Description rdf:about=" /><dc:creator rdf:resource=" /></rdf:Description>
<rdf:Description rdf:about=" /><foaf:name>Bob</foaf:name>
</rdf:Description>
</rdf:RDF>
Để tìm „name‟ của nhân viên trong đồ thị trên thì có thể sử dụng câu truy vấn nhu
sau: PREFIX foaf: SELECT ?name WHERE { foaf:name ?name . }. Trong câu truy vấn
ở trên thì một PREFIX foaf định nghĩa một không gian tên của từ vựng
, mệnh đề SELECT xác định „name‟ trong câu điều kiện
WHERE và đưa ra kết quả:
name
Bod
1.2. Bài toán phát triển hệ thống ngữ nghĩa
1.2.1. Mơ hình phát triển hệ thống Web ngữ nghĩa
Khi thực hiện đề tài tác giả đã tìm hiểu và tham khảo những để tài nghiên cứu về
công nghệ Web ngữ nghĩa đã được nghiên cứu trước đây từ đó tìm ra những mơ hình
những kết quả của các nghiên cứu đó trong bài luận văn. Một trong những nghiên cứu
đó là An Information Food Chain for Advanced Applications on the WWW của các tác
giả Stefan Decker, Jan Jannink, Prasenjit Mitra, Gio Wiederhold được thể hiện tại
Proc. 4th European Conference on Research and Advanced Technology for Digital
Libraries, Springer LCNS Vol.1923, 2000, trang 490-498. Tác giả đã tham khảo mơ
hình triển khai ứng dụng trong bài viết.

18


Hình 1-4 Mơ hình triển khai một ứng dụng ngữ nghĩa [10]
Ontology Construction Tool
Ontology là một thành phần quan trọng trong việc xây dựng các hệ thống ngữ nghĩa,
vì thế là thành phần đầu tiên trong chuỗi các thành phần của mơ hình. Để giảm chi phí
xây dựng các ontology thì các cơng cụ trợ giúp xây dựng ontology nhanh chóng giảm

chi phí tối đa.
Web-Page Antotation Tool
Từ các ontology được xây dựng thì một hệ thống ngữ nghĩa cần có các cơng cụ để
tạo ra các chú thích ngữ nghĩa, các chú thích ngữ nghĩa là một thành phần giúp cho hệ
thống có ngữ nghĩa hơn. Các cơng cụ chú thích ngữ nghĩa giúp nhanh chóng có được
các chú thích ngữ nghĩa từ các ontology đã được thiết kế trước đó, ngày nay sự phát
triển nhanh của cơng nghệ các cơng cụ chú thích ngữ nghĩa đã có thể được thực hiện tự
động giúp tạo ra các chú thích rất nhanh chóng.
Metadata Repository
Dữ liệu sau khi được tạo chú thích ngữ nghĩa sẽ được lưu trữ vào các lưu trữ siêu dữ
liệu từ các siêu dữ liệu đó sẽ được các máy suy luận hoặc các ứng dụng sử dụng để tạo
ra các ứng dụng hoặc dùng để suy luận ngữ nghĩa.

19


Inference Engine
Các máy suy luận sẽ tổng hợp thông tin từ nhiều nguồn dữ liệu để tạo ra các ứng
dụng mới và khai thác giá trị thông tin nhiều nhất có thể. Các cơng nghệ suy luận để
cho phép ontology tạo ra mối liên hệ với các thông tin khác. Một hệ thống suy luận
cung cấp các phương tiện cho hiệu quả cho một lý luận.
Semantic Community Portal Site
Các cổng thông tin cộng đồng ngữ nghĩa hoạt động giống như một cổng thông tin.
Những người sử dụng sẽ truy cập đến cổng thông tin và sử dụng các thông tin ngữ
nghĩa của hệ thống.
1.2.2. Mơ hình phát triển hệ thống tìm kiếm ngữ nghĩa
Sự tăng trưởng nhanh chóng về số lượng các trang Web làm cho nhu cầu tìm kiếm
thơng tin tăng theo. Trong những năm 2000 đã có những hơn 3200 máy tìm kiếm trên
Web. Số tài liệu, chỉ mục của máy tìm kiếm tăng lên theo hàng năm. Ngày nay,
GOOGLE đứng đầu thế giới về máy tìm kiếm đã lập chỉ mục cho hơn 30 nghìn tỷ

trang Web. Mặc dù các máy tìm kiếm có những sự khác biệt với nhau nhưng một máy
tìm kiếm sẽ có 4 thành phần chính như: Bộ thu thập, lập chỉ mục, một máy truy vấn,
một kho lưu trữ trang.

Hình 1-5 Kiến trúc một máy tìm kiếm [11]

20


Bộ thu thập
Bộ thu thập thông tin là một chương trình máy tính duyệt các trang Web. Bằng việc
sử dụng các URL để sao chép và lưu trữ nội dung của các trang Web được chỉ định bởi
các URL đã cho. Bộ thu thập thơng tin sẽ trích xuất các URL xuất hiện trong các trang
Web.
Lập chỉ mục
Lấy tất cả các “từ”(word) từ mỗi tài liệu trong các kho tài liệu lưu trữ các trang và
ghi lại các URL tại mỗi nơi xảy ra. Kết quả thu được là một cơ sở dữ liệu rất lớn cung
cấp các URL trỏ đến các trang. Trong cơ sở dữ liệu cũng có thể chứa các thông tin như
là liên kết giữa các tài liệu, URL đến các tài liệu, định dạng tài liệu và vị trí của các
liên quan khác.
Máy truy vấn
Các công cụ truy vấn Web nhận được các yêu cầu tìm kiếm từ người dùng, các truy
vấn được chia thành các thuật ngữ và cũng tìm kiếm các thuật ngữ này trong cơ sở dữ
liệu là các bộ chỉ mục, bộ truy vấn truy xuất đến các tài liệu phù hợp với cá điều kiện
phù hợp với câu truy vấn và trả về kết quả cho người dùng.
Kho lưu trữ trang
Trong q trình thu thập thơng tin các trang Web được lưu trữ trong các kho lưu trữ,
Máy tìm kiếm sẽ xếp hạng các tài liệu trước khi trả kết quả về cho người dùng, các xếp
hạng này là tính điểm tương đồng giữa các câu truy vấn và tài liệu. Các điểm tương
đồng càng cao thì thứ hạng của một tài liệu càng cao.

Web truyền thống và Web ngữ nghĩa có những sự khác nhau, nếu như Web truyền
thống tài liệu trong HTML, cịn các tìm kiếm ngữ nghĩa là ở siêu dữ liệu ngữ nghĩa
được thể hiện trong các tài liệu RDF, OWL.
1.3. Tiểu kết chƣơng
Chương 1 đã giới thiệu các khái niệm chung về Web ngữ nghĩa và ý nghĩa của
chúng, trong chương cũng trình bày về một số mơ hình tham khảo được dùng trong các
hệ thống Web ngữ nghĩa. Trong chương tiếp theo tác giả sẽ giới thiệu về các nền tảng
ngữ nghĩa mở như dotnetRDF, Open Semantic Framework, Open Semantic Search.

21


Chƣơng 2: Các nền tảng phát triển hệ thống ngữ nghĩa mở
2.1. Vai trò của các nền tảng ngữ nghĩa mở
Công nghệ đang ngày càng phát triển, hàng ngày, hàng tháng ln có những phát
hiện mới, những ý tưởng về công nghệ mới ra đời, sự phát triển nhanh của hạ tầng
phần cứng, mức độ tích hợp của các vi xử lý tăng nhanh chóng, máy tính và các thiết bị
thông minh trở nên phổ biến. Tất cả các lĩnh vực, tất cả các hoạt động từ nghiên cứu
khoa học đến sinh hoạt đời thường của con người đều có những đóng góp của các thiết
bị điện tử thơng minh có khả năng lưu trữ, phân tích những hành vi, hoạt động của con
người trong cuộc sống. Điều này sinh ra những bài toán mới mà con người cần giải
quyết, những công nghệ Big-Data, AI (Artificial Intelligence), IoT (Internet of Thing),
… những bài toán liên quan đến việc chia sẻ sử liệu, xử lý siêu dữ liệu, kết nối các
nguồn dữ liệu, phân tích dữ liệu, … rất cần sự hỗ trợ của các nền tảng công nghệ. Công
nghệ Web ngữ nghĩa ra đời cũng nhằm giải quyết một phần trong các bài toán trên.
Tác giả Nova trong một nghiên cứu được công bố vào tháng hai năm 2007 đã đưa
những nhận định đánh giá về tương lại phát triển của cơng nghệ Web trong đó vai trị
của Web nghữ nghĩa là rất quan trọng, là hạt nhân của thế hệ Web 3.0. Theo tác giả
trong giai đoạn thập niên đầu tiên của thế kỷ là sự phát triển mạnh mẽ các nền tảng
Web ngữ nghĩa như RDF, OWL, SPARQL,… tạo tiền đề cho những giai đoạn tiếp theo

là giai đoạn của Web 3.0 (Web ngữ nghĩa) từ những năm 2010 đến 2020 hoặc có thể
lâu hơn cơng nghệ Web ngữ nghĩa dần đi vào cuộc sống. Những công ty hoặc những tổ
chức bắt đầu có những nghiên cứu ứng dụng công nghệ. Các nền tảng dành cho Web
ngữ nghĩa dần dần hình thành. Những nền tảng ngữ nghĩa mở phát triển rất nhanh
chóng đưa ra những trợ giúp hoặc giải quyết một phần bài tốn ngữ nghĩa. Vì thế mà
vai trò của các nền tảng ngữ nghĩa mở ngày càng trở lên quan trọng. Các thư viện các
bộ công cụ được tích hợp giúp ích rất nhiều cho các nhà phát triển, các doanh nghiệp
có thể thử nghiệm, ứng dụng ngay cơng nghệ ngữ nghĩa vào bài tốn thực tế.
dotnetRDF là một nền tảng mã nguồn mở được phát triển từ những năm 2013 cung
cấp cho các nhà phát triển những khả năng tương tác dữ liệu ngữ nghĩa RDF, OWL,
các truy vấn SPARQL, … giúp các nhà phát triển xây dựng các ứng dụng nghĩa nghĩa
nhanh chóng trên hệ điều hành Windows.
Open Semantic Framework là một nền tảng ngữ nghĩa mở được viết bằng ngôn ngữ
PHP với mục tiêu là xây dựng công cụ phát triển ngữ nghĩa trên các hệ điều hành là
Cent OS 6 và Cent OS7, Ubuntu 14.04.

22


Đối với Open Semantic Search là một nền tảng ngữ nghĩa mở cung cấp rất nhiều
API, tính năng tìm kiếm mạnh mẽ hỗ trợ các nhà phát triển xây dựng các hệ thống tìm
kiếm ngữ nghĩa, tìm kiếm tích hợp thơng tin…

Hình 2-1 Q trình phát triển của các thế hệ Web [12]
Một cách tổng quát các nền tảng ngữ nghĩa mở là các mã nguồn mở nhằm mục tiêu
xây dựng các hệ thống ngữ nghĩa trở nên nhanh chóng tiện lợi hơn, giúp các nhà phát
triển giảm bới chi phí thời gian xây dựng, tích hợp hệ thống.
2.2. Nền tảng dotnetRDF
2.2.1. Tổng quát về dotnetRDF
dotNetRDF là một thư viện mã nguồn mở cho các ứng dụng sử dụng nền tảng .NET

như Winform, WPF, Web. Được phát triển bởi một nhóm tác giả: Rov Vesse, Ron
Michael Zettlemoyer, Khalil Ahmed, Graham Moore, Tomasz Pluskiewicz, mục tiêu
cung cấp mạnh mẽ, linh hoạt các API để làm việc với RDF và SPARQL, trợ giúp khai
thác dữ liệu ngữ nghĩa, giúp cho việc khai thác truy vấn dữ liệu ngữ nghĩa trở lên đơn
giản dễ sử dụng hơn. Nền tảng hỗ trợ chính của dotNetRDF là những framework .NET
như: .NET 4.0, .NET 4.0 Client Profile, .NET Standard 1.4, .NET Standard 2.0 [13].

23


Để hỗ trợ người lập trình viên dễ dàng cài đặt cũng như sử dụng thì dotNetRDF đã
cung cấp thư viện trên Nuget với những gói chính như sau: dotNetRDF,
dotNetRDF.Data, dotNetRDF.Data.Virtuoso, dotNetRDF.Query, dotNetRDF.Query,
dotNetRDF.Web.
Với việc chỉ hỗ trợ các nền tảng .NET thì dotNetRDF chỉ có thể được triển khai ứng
dụng trên hệ điều hành là Windows, với ứng dụng Web thì việc hosting cũng bắt buộc
phải sử dụng IIS trên gắn liền với hệ điều hành Windows. Điểm thuận lợi là dễ dàng
cài đặt vào dự án do các thư viện của dotnetRDF có sẵn trên hệ thống quản lý thư viện
Nuget và lập trình viên có thể sử dụng nhiều công cụ rất tốt để phát triển như Visual
Studio, Visual Studio Code.
2.2.2. Kiến trúc
dotnetRDF là sự kết hợp của 6 project thực thi chức năng và 2 project Unit Test. Sáu
project thực thi 6 nhiệm vụ khác nhau:


dotnetRDF: quản lý về RDF.



dotnetRDF.Data.DataTables: hỗ trợ

RDF tương tác Database.



dotnetRDF.Data.Virtuoso: hỗ trợ liên
kết với Virtuoso.



dotnetRDF.Query.Fulltext: truy vấn
SPARQL.



dotnetRDF.Query.Spin:
SPARQL.



dotnetRDF.Web: cung cấp dịch vụ
Web.

truy

vấn

Hình 2-2 Dự án lõi của dotnetRDF

Trong mỗi project được tổ chức thành các nhóm chức năng, các lớp được triển khai
trong đó. Ví dụ ở trong dotnetRDF sẽ có các chức năng như Ontology, Query…


24


dotnetRDF
dotNetRDF project cung cấp các thư
viện lõi những thư viện này nhằm mục
đích viết và đọc RDF, quản lý và truy vấn
dữ liệu RDF trong bộ nhớ.
Hiện tại dotnetRDF có thể hỗ trợ được
một số định dạng RDF như : NTriples,
Turle,
Notation
3,
RDF/XML,
RDF/JSON, RDFa 1.0, TriG, TriX,
NQuads (NTriples plus), JSON-LD (1.0
và 1.1).
Hình 2-3 Chi tiết project dotnetRDF
dotNetRDF.Data.DataTables
Hỗ trợ tương tác với cơ sở dữ liệu,
quản lý các bộ ba của từng hàng (row)
trong cơ sở dữ liệu. Quản lý các kết quả
trả về từ câu truy vấn SPARQL.
Hình 2-4 Các lớp trong DataTable của
dotnetRDF
dotNetRDF.Data.Virtuoso
Hỗ trợ kết nối với Virtuoso, hỗ trợ thực hiện
việc giao tiếp với các Bnode trong Virtuoso.
Quản lý việc truy nhập đến Native Virtuoso,

cho phép người sử dụng tạo ra các bất ký class
nào có giao diện (interface) hỗ trợ Virtuoso.
Tương tác với cơ sở dữ liệu của Virtuoso, tự
động gắn ID cho Blank Bnode của Virtuoso.
Đọc dữ liệu từ các đồ thị RDF.

25

Hình 2-5 Các lớp của Virtuoso


×