1
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
HOÀNG ANH CÔNG
MÔ HÌNH ỨNG DỤNG DỊCH VỤ WEB NGỮ NGHĨA TÌM KIẾM TÀI
LIỆU ĐIỆN TỬ TRONG THƯ VIỆN ĐIỆN TỬ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - Năm 2015
1
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
HOÀNG ANH CÔNG
MÔ HÌNH ỨNG DỤNG DỊCH VỤ WEB NGỮ NGHĨA TÌM KIẾM TÀI LIỆU
ĐIỆN TỬ TRONG THƯ VIỆN ĐIỆN TỬ
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS. PHẠM THẾ QUẾ
LỜI CAM ĐOAN
Tên tôi là Hoàng Anh Công, học viên cao học lớp Khoa học máy tính
K12G, khóa 2013-2015. Tôi xin cam đoan luận văn thạc sĩ ‘‘Mô hình ứng dụng
dịch vụ Web ngữ nghĩa tìm kiếm tài liệu điện tử trong thư viện điện tử’’ là
công trình nghiên cứu của riêng tôi, số liệu và các kết quả nghiên cứu trong luận
văn là trung thực và không trùng với đề tài khác. Tôi cũng xin cam đoan rằng
mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin
trích dẫn trong luận văn đã được chỉ rõ nguồn gốc.
Học viên
Hoàng Anh Công
iii
MỤC LỤC
LỜI CẢM ƠN ..................................................................................................... i
LỜI CAM ĐOAN ..............................................................................................ii
MỤC LỤC........................................................................................................ iii
DANH MỤC CÁC TỪ VIẾT TẮT .................................................................. vi
DANH MỤC CÁC BẢNG ............................................................................... vii
DANH MỤC CÁC HÌNH...............................................................................viii
MỞ ĐẦU ............................................................................................................ 1
CHƯƠNG 1: DỊCH VỤ WEB NGỮ NGHĨA.................................................. 3
1.1 Web nghữ nghĩa .......................................................................................... 3
1.1.1 Đặt vấn đề........................................................................................... 3
2.3.1 Đặt vấn đề......................................................................................... 34
2.3.2 Một số khái niệm, thuật ngữ sử dụng trong thư viện điện tử ............ 36
2.3.3 Các thành phần chính ....................................................................... 36
2.3.4 Tìm kiếm tài liệu dựa Semantic Web Service trong thư viện điện tử 39
2.3.5 Công cụ xây dựng Ontology – Protégé............................................. 40
KẾT LUẬN CHƯƠNG ................................................................................... 42
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG VÀ TRIỄN KHAI ỨNG DỤNG ...... 43
3.1 Phân tích hệ thống tìm kiếm tài liệu trong thư viện điện tử .................. 43
3.1.1 Các giai đoạn xây dựng hệ thống ...................................................... 43
3.1.2 Phân tích các chức năng tìm kiếm của hệ thống ................................ 44
3.2 Các quyền của hệ thống tìm kiếm tài liệu trong thư viện điện tử .......... 45
3.3 Thiết kế hệ thống tìm kiếm tài liệu trong thư viện điện tử..................... 46
3.3.1 Biểu đồ Login ................................................................................... 46
3.3.2 Biểu đồ Logout ................................................................................. 46
3.3.3 Biểu đồ Import thông tin từ website ................................................. 47
3.3.4 Biểu đồ Import thông tin thủ công bằng tay ..................................... 47
3.3.5 Biểu đồ Xem thông tin ...................................................................... 48
3.3.6. Biểu đồ Sửa thông tin ....................................................................... 48
3.3.7 Biểu đồ Xóa thông tin ....................................................................... 49
3.3.8. Biểu đồ Tìm kiếm thông tin .............................................................. 49
v
3.4 Thiết kế Ontology ...................................................................................... 50
3.4.1 Các bước xây dựng Ontology ........................................................... 50
3.4.2 Thiết kế mô hình dữ liệu Ontology .................................................... 53
3.5 Chương trình thử nghiệm và đánh giá .................................................. 58
3.5.1 Trang chủ hệ thống .......................................................................... 58
3.5.2 Màn hình hiển thị tất cả kết quả tìm kiếm ........................................ 59
Cơ sở dữ liệu
HTTP
Hypertext Transfer Protocol
IE
Information Extraction
RDF
Resource Description Framework
RDFS
Resource Description Framework Schema
SOAP
Simple Object Access Protocol
SQL
Structured Query Language
SW
Semantic web
Bảng 3.1
Tên bảng
Các quyền của hệ thống
Trang
viii
DANH MỤC CÁC HÌNH
Số hiệu
Tên hình
1.1
Kiến trúc semantic web
1.2
Kiến trúc dịch vụ web
1.3
Các thành phần dịch vụ web
1.4
Phát triển dịch vụ web ngữ nghĩa
3.1
Sơ đồ tổng quan hệ thống
3.2
Biểu đồ Login
3.3
Biểu đồ Logout
3.4
Biểu đồ Import thông tin từ Website
3.5
Biểu đồ Import bằng tay
3.6
Biểu đồ xem thôn tin
3.7
Biểu đồ Sửa thông tin
3.8
Sơ đồ mô tả class Tac_gia
3.15
Sơ đồ mô tả class Noi_dung
3.16
Sơ đồ mô tả class Tai_lieu
3.17
Sơ đồ mô tả tổng quát Ontology
3.18
Ontology tài liệu được xây dựng bằng công cụ Protége
3.19
Trang chủ hệ thống
3.20
Màn hình hiển thị tất cả kết quả tìm kiếm
3.21
Màn hình hiển thị tìm kiếm tài liệu chính xác
theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa.
Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên
những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu
thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính.
Web Service cho phép Client và Server tương tác với nhau trong các môi
trường khác nhau. Phát triển theo hướng từng thành phần với những lĩnh vực và
cơ sở hạ tầng Web cụ thể. Các ứng dụng hoạt động theo mô hình Client/Server.
Để hiểu thêm về vấn đề này, em chọn đề tài “Mô hình ứng dụng dịch vụ
Web ngữ nghĩa tìm kiếm tài liệu điện tử trong thư viện điện tử” nhằm nắm
được những khái niệm cơ bản về Web ngữ nghĩa (Semantic Web) và dịch vụ
2
Web (Web Services) đồng thời xây dựng ứng dụng cung cấp các thông tin về
sách, tài liệu nghiên cứu trong thư viện điện tử cho người đọc khi họ có nhu cầu.
Web Service (WS) là một mô hình cụ thể của kiến trúc hướng dịch vụ
(SOA) dựa trên XML và HTTP. Vì WS sử dụng XML và HTTP nên đề tài
hướng tới việc sử dụng nền tảng Sematic web. Do vậy, trước khi nói về WS,
luận văn sẽ nhắc lại vài nét về Sematic web.
Nội dung luận văn gồm 3 chương:
Chương 1: Dịch vụ Web ngữ nghĩa
Chương 2: Mô hình ứng dụng dịch vụ Web ngữ nghĩa tra cứu tìm kiếm
tài liệu trong thư viện điện tử.
Chương 3: Cài đặt ứng dụng
Dịch vụ Web có thể áp dụng và tích hợp dịch vụ Web như chọn lọc và
phân loại tin tức như hệ thống thư viện; các dịch vụ du lịch; bán hàng qua mạng,
thông tin thương mại; tỷ giá hối đoái, đấu giá qua mạng…hay dịch vụ giao dịch
trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông tin thuê xe…
Do vậy, việc phát triển và tích hợp các ứng dụng với dịch vụ Web đang được
sử dụng dữ liệu trên Web để thực hiện những mục đích hữu ích cho người dùng.
Cách nhìn nhận của Tim Berners-Lee về Semantic Web có hai phần: thứ
nhất là Web có tính cộng tác nhiều hơn, thứ hai là máy tính có thể hiểu và thực
thi trên Web.
Cách nhìn nhận của Tim Berners-Lee liên quan đến việc lấy các trang
HTML từ Web server. Tuy vậy World Wide Web Consortium (W3C) đã đưa ra
kỹ thuật để có thể nắm bắt những quan hệ như vậy, đó là RDF (Resource
Description Framework).
Điểm quan trọng nhất, khác biệt nhất so với Web truyền thống là trong
Web ngữ nghĩa có khái niệm siêu dữ liệu (metadata) - dữ liệu trong dữ liệu. Siêu
dữ liệu giúp cho máy tính có thể xử lý thông tin trên Web một cách thông minh
hơn. Nhưng để có thể tạo được Web mà máy tính có thể xử lý dữ liệu trên đó
thì trước tiên phải có một cách nhìn nhận khác về dữ liệu. Nếu như trước kia
người ta chỉ coi dữ liệu là thuộc sở hữu của ứng dụng và không có vai trò quan
trọng thì càng ngày người ta càng nhận thấy sự quan trọng của nó. Dữ liệu càng
được tổ chức “thông minh” thì càng thể hiện được sự tính hiệu quả của nó.
Ban đầu dữ liệu chỉ là những văn bản và các bản ghi cơ sở dữ liệu đơn
thuần và sự thông minh chỉ nằm ở trên các ứng dụng. Sự xuất hiện của các tài
4
liệu XML theo từng lĩnh vực giúp cho ứng dụng dễ dàng thực hiện ở các lĩnh
vực riêng. Sự xuất hiện của các phép phân loại và các tài liệu với bộ từ vựng
trộn lẫn nhau cho thấy một bước tiến trong việc khai phá dữ liệu, dữ liệu đã đủ
thông minh để có thể được tổng hợp cùng với các dữ liệu khác. Sự phát triển cao
hơn nữa của dữ liệu chính là các Ontology và các luật suy diễn, nhờ đó mà dữ
liệu mới có thể được suy diễn ra từ dữ liệu có sẵn dựa vào các luật logic. Dữ liệu
sẽ đủ thông minh để có thể được mô tả với các quan hệ cụ thể, các hình thức
phức tạp.
nên khó khăn hơn đối với người sử dụng. Xét ví dụ, người sử dụng muốn tìm
kiếm thông tin về Mrs. Cook. Tất cả những thông tin mà người sử dụng có thể
nhớ được là tên của người này là Cook, làm việc cho doang nghiệp có liên quan
5
đến tổ chức có tên là “ARPA-123-4567”. Đây là những thông tin được sử dụng
để tìm thông tin cá nhân của Mrs. Cook, theo một cơ sở tri thức có cấu trúc hợp
lý chứa tất cả các nhân tố có liên quan. Có vẻ như điều này đã đủ cho việc tìm
kiếm trên World Wide Web. Nhưng khi tìm kiếm, lại xảy ra các tình trạng sau:
Sử dụng danh mục Web có sẵn, người sử dụng có thể tìm ra trang chủ
của ARPA nhưng ở đó có hàng trăm người “thầu phụ” và các “nhóm
nghiên cứu” đang làm việc cho chi nhánh “123-4567”
Nếu tìm kiếm theo từ khoá “Cook” thì kết quả sẽ trả lại hàng nghìn trang
Web nói về “Nấu ăn”.
Nếu tìm kiếm một trong hai cụm từ “ARPA ” và “123-4567” thì có hàng
trăm kết quả trả về. Còn nếu tìm kiếm cho cả ba từ khoá trên thì sẽ trả về
kết quả rỗng.
Tình trạng trên là khá phổ biến đối với nhiều trường hợp tìm kiếm trên
World Wide Web. Vấn ở đây là dữ liệu Web có quá ít tổ chức ngữ nghĩa. Khi
Web càng ngày càng mở rộng thì việc thiếu tổ chức ngữ nghĩa như vậy sẽ làm
cho việc tìm kiếm thông tin càng ngày càng khó, thậm chí nếu có thêm những kỹ
nghệ xử lý ngôn ngữ tự nhiên, cơ chế đánh chỉ mục…
Tóm lại, hiện nay vẫn chưa có một cách tìm kiếm hiệu quả nào để trả lời
câu truy vấn có dạng như:
Find webpage for all x,y and z such that
x is a person, y is a person, z is a person
Where
lastName (x,”Cook”) and
hiểu được. Điều này tạo ra một loại Web gọi là Semantic Web - là một Web dữ
liệu mà có thể được xử lý được trực tiếp hoặc gián tiếp bằng máy tính.”
Web ngữ nghĩa không phải là một web riêng biệt mà nó chỉ là một sự mở
rộng của Web hiện tại, mà ở đó có các thông tin về ngữ nghĩa nhiều hơn, làm
cho máy tính và con người có thể phối hợp làm việc tốt hơn.
Web ngữ nghĩa không phải chỉ dành cho World Wide Web. Nó kèm theo
một tập hợp các công nghệ mà cũng có thể làm việc trên Intranet của các công
ty, doanh nghiệp…[4].
Xét về mặt bản chất, Web ngữ nghĩa chỉ là một công cụ để con người
cũng như máy tính sử dụng để biểu diễn thông tin. Hay nói chính xác hơn thì
Web ngữ nghĩa chỉ là một dạng dữ liệu trên Web. Khác với các dạng thức dữ
liệu được trình bày trong HTM, dữ liệu trong Web ngữ nghĩa được đánh dấu,
7
phân lớp, mô hình hóa, được bổ sung thêm các thuộc tính, các mối liên hệ…
theo các lĩnh vực cụ thể. Qua đó giúp cho các phần mềm máy tính có thể hiểu
được dữ liệu và tự động xử lý dữ liệu. Chẳng hạn, với cụm từ “Hồ Chí Minh”,
trong không gian Web ngữ nghĩa, được hiểu là lãnh tụ Hồ Chí Minh với các
thuộc tính như năm sinh, quê quán, thân thế, sự nghiệp của Người…
1.1.4 Đặc điểm của Web ngữ nghĩa [6]
Web hiện tại đang chứa đựng lượng thông tin khổng lồ. Tuy vậy, khả
năng khai thác lượng thông tin này lại bị hạn chế rất nhiều, điển hình là việc tìm
kiếm thông tin trên Web lại nhận được rất nhiều kết quả không mong muốn
khiến người dùng khó tìm được thông tin mình cần. Mặt khác, vì chỉ có con
người mới hiểu được nội dung trên các trang Web hiện nay nên các thông tin
trên Web không thích hợp cho các tác tử phần mềm, khiến việc tự động hóa trên
Web gặp rất nhiều khó khăn.
Semantic Web là sự mở rộng của Web hiện tại. Vì vậy, những đặc điểm
Berners-Lee ở tạp chí Scientific American, ông đã khẳng định, Semantic
Web là một cơ sở hạ tầng chứ không phải là một ứng dụng. Và độc giả
hoàn toàn đồng ý với ý kiến đó (theo Tuttle). “Vấn đề thực sự là thiếu một
framework tự động ở Web hiện tại…” (theo Garcia và Delgado)
Phục vụ con người: “Một cách nhìn về Semantic Web là để các phần mềm
máy tính hỗ trợ con người có được lượng lớn tài nguyên trên Website cần
được trích rút, kết hợp và đánh chỉ mục những thông tin bên trong” (theo
Cranefield). “Semantic Web là một cách nhìn về thế hệ tiếp theo của
Web, nó cho phép các ứng dụng web thu thập một cách tự động các tài
liệu trên web từ các nguồn khác nhau, kết hợp và xử lý thông tin đồng
thời phối hợp với các ứng dụng khác để thực hiện những tác vụ phức tạp
cho con người” (theo Anuatariya)
Có các chú thích (annotation) tốt hơn: “Ý tưởng về Semantic Web của
Berners-Lee đã giúp hiểu rằng nó có các chú thích được biểu diễn ở dạng
mà máy tính có thể xử lý và chúng được liên kết với nhau” (theo Euzenat)
Cải thiện khả năng tìm kiếm: “Sẽ sớm có thể truy cập các tài nguyên trên
Web bằng nội dung thay vì chỉ bằng các từ khóa” (theo Anuatariya).
“Mục đích của công nghệ là để xây dựng một chỉ mục có cấu trúc của
trang web” (theo Desmontils và Jacquin)
9
Hỗ trợ các dịch vụ web (web services) và các tác tử phần mềm: “Càng
ngày, Semantic Web càng giúp cung cấp các truy nhập tới không chỉ các
văn bản tĩnh tổng hợp các thông tin hữu ích mà cả các dịch vụ cung cấp
các hành vi cần thiết” (theo Klein và Bernstein). “Semantic Web hứa hẹn
sẽ mở rộng các dịch vụ cho web hiện tại bằng việc cho phép các tác tử
phần mềm tự động hóa các thủ tục mà hiện này đang phải thực hiện bằng
tay và giới thiệu các ứng dụng mới mà không thể thực hiện với web hiện
tả, như vậy siêu dữ liệu được lưu trữ một cách tách biệt bên ngoài đối tương mô tả.
Với tài liệu nội dung số, siêu dữ liệu được nhúng trong bản thân tài
nguyên hoặc trong liên kết với tài nguyên mà nó mô tả như trong trường hợp các
thẻ meta của tài liệu HTML
Sơ đồ siêu dữ liệu là tập hợp những yếu tố siêu dữ liệu được thiết kế cho
mô tả một dạng tài nguyên thông tin cụ thể. Như vậy siêu dữ liệu là sơ đồ hình
thức được xác định để mô tả tài nguyên thông tin cho các đối tượng.
Định nghĩa các yếu tố hoặc ý nghĩa được gán cho các yếu tố siêu dữ liệu
thì được gọi là ngữ nghĩa của sơ đồ. Mỗi sơ đồ siêu dữ liệu có ngữ nghĩa và cú
pháp được quy định riêng. Ví dụ trong yếu tố “Creator” - dùng để xác định là tác
giả của tài liệu, hoặc yếu tố “Title” - được hiểu là nhan đề của tài liệu.
Giá trị (dữ liệu) của yếu tố được gọi là nội dung. Đó chính là giá trị của
mỗi yếu tố siêu dữ liệu. Nhờ các sơ đồ dữ liệu, các chương trình xử lý tự động
sẽ nhận biết đoạn dữ liệu nào sẽ thuộc thành phần nào, chẳng hạn đoạn dữ liệu
này được nhận biết là nhan đề, đoạn dữ liệu kia được nhận biết là tác giả của tài
liệu.
1.1.6 Một số ứng dụng cơ bản dựa trên Semantic Web [2]
Quản lý tri thức được hiểu là quy trình hay các công cụ mà tổ chức sử
dụng để thu thập, phân tích, lưu trữ và phổ biến tri thức của họ. Bên cạnh việc
triển khai các công nghệ và tiến trình thích hợp cho mục đích thương mại thì
cũng phải quan tâm đến việc quản lý tri thức sao cho hiệu quả để có thể sử dụng
kinh nghiệm và sự hiểu biết của tài nguyên con người một cách tối ưu nhất.
Ngày nay quản lý tri thức nổi lên như một hoạt động quan trọng của các
tổ chức lớn cũng như các các doanh nghiệp vì họ coi những tri thức như một tài
sản quý để từ đó có thể tạo nên hiệu quả tốt hơn, tạo ra những giá trị mới và tăng
tính cạnh tranh. Quản lý tri thức cũng đóng vai trò đặc biệt quan trọng trong các
tổ chức quốc tế với các tổ chức phân tán về địa lý.
11
Web trên toàn Internet sẽ có thể trở thành hiện thực để mang lại những giá trị to
lớn cho người dùng.
12
1.1.7 Kiến trúc Web ngữ nghĩa [5]
Trust
Rules
Proof
Data
Tài liệu
tự mô tả
Logic
Data
Digital
Signature
Ontology vocalary
RDF + Schema
XML + NS + XMLSchema
UniCode
URI
diễn qua ngôn ngữ RDF.
Một [vị ngữ] là một khía cạnh, tính chất, thuộc tính, hay mối liên hệ mô tả
cho một tài nguyẽn. Một phát biểu bao gồm một tài nguyên riêng biệt, một thuộc
tính được đặt tên, và giá trị thuộc tính cho tài nguyên đó ([đối tượng]). Giá trị
này cơ bản có thể là một tài nguyên khác hay một giá trị mang tính nghĩa đen
hay dạng chuỗi văn bản tùy ý. [Chủ ngữ] và đối tượng được xác định qua Định
danh tài nguyên thống nhất - URI, chẳng hạn chúng có thể là một liên kết của
một trang web. Các [vị ngữ] cũng được xác định qua URI, do đó bất kì ai cũng
có thể định nghĩa ra một khái niệm mới, một thuộc tính mới, bằng cách chỉ cần
định nghĩa URI cho chúng. Bởi vì RDF sử dụng URI để biểu diễn các thông tin
trong một tài liệu, các URI đảm bảo rằng các khái niệm không chỉ chứa văn bản
thuần túy mà nó còn là định danh tài nguyên duy nhất mà tất cả người dùng có
thể tìm kiếm được trên mạng. Trong RDF, các URI đóng một vai trò rất quan
trọng: Chúng ta có thể tạo ra các (siêu) dữ liệu dựa trên bất kỳ một nguồn tài
nguyên nào trên Web, ngữ nghĩa được đưa vào các nguồn tài nguyên Web thông
qua các URI, và URI cho phép liên kết giữa các phần tử dữ liệu thông qua các
thuộc tính.
b) Mô hình dữ liệu RDF: RDF là khung sườn (framework) cho việc xử lý
metadata, và nó mô tả các mối quan hệ giữa các tài nguyên thông qua các thuộc
tính và các giá trị. Sự kết hợp của một nguồn tài nguyên ([chủ ngữ]), một thuộc
tính ([vị ngữ]) và một giá trị của thuộc tính được ([đối tượng]) được đặt trong
một phát_biểu. Ví dụ một câu nói như sau: “Giám đốc của công ty Phần mềm là
Đào Xuân Ánh”. Như vậy, có thể biểu diễn bởi một phát biểu RDF như sau:
Chủ ngữ của phát biểu RDF là: “Công ty Phần mềm”
14
Vị ngữ là: “Giám đốc”
Đối tượng là: “Đào Xuân Ánh”