1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ thống hỗ trợ tư vẫn thiết kế nhà dân dụng dựa trên semantic web

73 2 0

Đ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 73
Dung lượng 1,98 MB

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

Nội dung

Hiện nay trên thế giới có nhiều hệ thống hỏi đáp tự động hỗ trợ cho người dùng Tuy nhiên những hệ thống này hầu hết đều hỏi đáp bằng ngôn ngữ tiếng Anh Nhu cầu xây dựng một hệ thống hỗ trợ cho người dùng Việt khi muốn đặt câu hỏi về một vấn đề nào đó là hết sức cần thiết và có ích điển hình là các vấn đề trong lĩnh vực tư vấn thiết kế nhà dân dụng Luận văn này tập trung nghiên cứu xây dựng Hệ thống hỗ trợ tư vấn thiết kế nhà dân dụng dựa trên Semantic web nhằm cụ thể hóa các nhu cầu đó Hệ thống cho phép người dùng nhập vào một câu hỏi hay một từ khóa nào đó bằng tiếng Việt thuộc lĩnh vực tư vấn thiết kế nhà dân dụng Tiếp đến sẽ tiến hành phân tích câu hỏi từ khóa đó thực hiện việc tách từ tiếng Việt nếu cần thiết Dựa vào các từ khóa có được sau khi tách từ hệ thống sẽ thực hiện truy vấn dữ liệu trên ontology và trả kết quả về cho người dùng thông qua thư viện Jena Nếu không có từ khóa nào thỏa mãn yêu cầu tìm kiếm hệ thống sẽ thông báo không tìm được và người dùng sẽ nhập lại câu hỏi từ khóa khác

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA

TRẦN THỊ HỒNG NHUNG

XÂY DỰNG HỆ THỐNG HỖ TRỢ

TƯ VẤN THIẾT KẾ NHÀ DÂN DỤNG

DỰA TRÊN SEMANTIC WEB

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

Đà Nẵng - Năm 2017

Trang 2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA

TRẦN THỊ HỒNG NHUNG

XÂY DỰNG HỆ THỐNG HỖ TRỢ

TƯ VẤN THIẾT KẾ NHÀ DÂN DỤNG

DỰA TRÊN SEMANTIC WEB

Chuyên ngành: Khoa học máy tính

Mã số: 60.48.01.01

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

Người hướng dẫn khoa học: PGS.TS VÕ TRUNG HÙNG

Đà Nẵng - Năm 2017

Trang 3

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công

bố trong bất kỳ công trình nào khác.

Tác giả luận văn

Trần Thị Hồng Nhung

Trang 4

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

XÂY DỰNG HỆ THỐNG HỖ TRỢ TƯ VẤN THIẾT KẾ NHÀ DÂN DỤNG

Học viên: Trần Thị Hồng Nhung Chuyên ngành: Khoa học máy tính

Mã số: 60.48.01 Khóa: 31 Trường Đại học Bách khoa - ĐHĐN

Tóm tắt - Hiện nay, trên thế giới có nhiều hệ thống hỏi-đáp tự động hỗ trợ cho người dùng

Tuy nhiên, những hệ thống này hầu hết đều hỏi đáp bằng ngôn ngữ tiếng Anh Nhu cầu xây dựng một hệ thống hỗ trợ cho người dùng Việt khi muốn đặt câu hỏi về một vấn đề nào đó là hết sức cần thiết và có ích, điển hình là các vấn đề trong lĩnh vực tư vấn, thiết kế nhà dân

dụng Luận văn này tập trung nghiên cứu xây dựng “Hệ thống hỗ trợ tư vấn thiết kế nhà dân

dụng dựa trên Semantic web” nhằm cụ thể hóa các nhu cầu đó Hệ thống cho phép người

dùng nhập vào một câu hỏi hay một từ khóa nào đó bằng tiếng Việt thuộc lĩnh vực tư vấn thiết

kế nhà dân dụng Tiếp đến sẽ tiến hành phân tích câu hỏi/từ khóa đó, thực hiện việc tách từ tiếng Việt nếu cần thiết Dựa vào các từ khóa có được sau khi tách từ, hệ thống sẽ thực hiện truy vấn dữ liệu trên ontology và trả kết quả về cho người dùng thông qua thư viện Jena Nếu không có từ khóa nào thỏa mãn yêu cầu tìm kiếm, hệ thống sẽ thông báo không tìm được và người dùng sẽ nhập lại câu hỏi/từ khóa khác

Từ khóa - Xử lý ngôn ngữ tự nhiên, tách từ tiếng Việt, web ngữ nghĩa, hệ thống hỗ trợ, tư

vấn thiết kế, nhà dân dụng

BUILDING AN ADVISORY SUPPORT SYSTEM FOR THE DESIGN OF

CIVIL HOUSES

Abstract – Currently, the world has many question-answer system automatically support the

user However, these systems are in English language Before the demand for support Vietnamese user when to ask questions about an issue that is very necessary and useful, such

as the problems in the field of consultancy and design of civil houses This thesis forcuses on

the building an "advising support system of the design of civil houses" The system allows

users to ask a question in a Vietnamese or a keyword concerning in the field of consultancy and design of civil houses The system will analyze the Vietnamese question/keyword of the

user, then, the system will do the Vietnamese word segmentation if necessary Basing on the

keywords after the segmentation, the system will query data on ontology database and returns the result for the user through Jena library If no keyword is suitable for searching criteria, the system will alert no result found, and the user will reenter the other question/keyword

Keywords - Natural language processing, Vietnamese word segmentation, semantic web, support systems, consultancy and design, civil houses

Trang 5

MỤC LỤC

LỜI CAM ĐOAN i

TÓM TẮT LUẬN VĂN 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

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

2 Mục tiêu và nhiệm vụ 1

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

4 Giả thiết nghiên cứu 2

5 Phương pháp nghiên cứu 2

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

7 Bố cục của luận văn 2

CHƯƠNG 1 TỔNG QUAN VỀ SEMANTIC WEB 4

1.1 TỔNG QUAN WEB NGỮ NGHĨA 4

1.1.1 Sự ra đời của Semantic Web 4

1.1.2 Khái niệm 5

1.2 KIẾN TRÚC CỦA SEMANTIC WEB 6

1.2.1 Giới thiệu 6

1.2.2 Vai trò của các tầng 6

1.2.2.1 Tầng Unicode và URI 6

1.2.2.2 Tầng XML 7

1.2.2.3 Tầng RDF và RDFS (RDF schema) 7

1.2.2.4 Tầng Ontology vocabulary 8

1.2.2.5 Tầng Logic 8

1.2.2.6 Tầng Proof 8

1.2.2.7 Tầng trust 9

1.2.3 Ontology 9

1.2.3.1 Khái niệm 9

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

1.2.3.3 Vai trò của Ontology 11

1.2.3.4 Các thành phần của Ontology 12

1.2.3.5 Ngôn ngữ OWL 13

Trang 6

1.2.4 Quy trình xây dựng Semantic Web 13

1.2.5 Công cụ phát triển Semantic Web 15

1.2.5.1 Công cụ phát triển Ontology 15

1.2.5.2 Công cụ kết nối và thao tác với Ontology 18

1.2.5.3 Công cụ tách từ 24

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 28

2.1 TỔNG QUAN VỀ NHÀ Ở 28

2.1.1 Khái niệm 28

2.1.2 Đặc điểm thiết kế kiến trúc nhà dân dụng 28

2.1.3 Giải pháp tổ chức liên hệ giao thông trong nhà 29

2.1.4 Phân loại nhà ở 29

2.1.4.1 Phân loại dựa vào hình thức tổ chức đáp ứng công năng 29

2.1.4.2 Phân loại dựa theo độ cao 30

2.1.4.3 Phân loại dựa theo đối tượng phục vụ và ý nghĩa xã hội 30

2.1.4.4 Các bộ phận cần có trong căn hộ 31

2.2 PHÂN TÍCH HỆ THỐNG TRA CỨU THÔNG TIN THIẾT KẾ NHÀ DÂN DỤNG 33

2.2.1 Giới thiệu 33

2.2.2 Mô tả ứng dụng 33

2.2.3 Phân tích hệ thống 34

2.2.3.1 Các yêu cầu lưu trữ 34

2.2.3.2 Các yêu cầu về giao diện 35

2.2.3.3 Các yêu cầu về chức năng 35

2.2.3.4 Các yêu cầu phi chức năng 35

2.2.4 Thiết kế hệ thống 36

2.2.4.1 Mô hình đề xuất 36

2.2.4.2 Mô hình use-case cho đối tượng là người sử dụng hệ thống 37

2.2.4.3 Đặc tả use-case phân hệ người sử dụng 38

2.2.4.4 Đặc tả use-case phân hệ người quản trị hệ thống 39

CHƯƠNG 3 PHÁT TRIỂN ỨNG DỤNG 42

3.1 TỔNG QUAN HỆ THỐNG 42

3.2 PHÁT TRIỂN ỨNG DỤNG 43

3.2.1 Xây dựng Ontology 43

3.2.2 Xây dựng Website tìm kiếm 47

3.2.2.1 Xây dựng giao diện ứng dụng 47

3.2.2.2 Xây dựng bộ máy tìm kiếm 48

3.2.2.3 Các công cụ, thư viện, phần mềm sử dụng trong phát triển ứng dụng 52 3.3 ĐÁNH GIÁ KẾT QUẢ CỦA HỆ THỐNG 52

Trang 7

KẾT LUẬN 54 DANH MỤC TÀI LIỆU THAM KHẢO 56

QUYẾT ĐỊNH GIAO ĐỀ TÀI

BẢN SAO KẾT LUẬN CỦA HỘI ĐỒNG, BẢN SAO NHẬN XÉT CỦA CÁC

PHẢN BIỆN

Trang 8

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

2 DAML DARPA Markup Language

3 HTML HyperText Markup Language

4 HTTP HyperText Transfer Protocol

5 IRI Internationalized Resource Identifier

6 ISO International Standards Organization

7 IWS Institute of Web Science

8 OIL Ontology Inference Layer

9 OWL Web Ontology Language

10 RDF Resource Description Framework

11 RDFS Resource Description Framework Schema

12 SGML Standard Generalized Markup Language

13 SWSE Semantic Web Search Engine

14 URI Uniform Resource Identifier

15 URL Uniform Resource Locator

Trang 10

DANH MỤC CÁC HÌNH

Số hiệu

1.1 Một đề xuất nguồn gốc Web với CERN 5

1.4 Mô tả suy luận ngang cấp trong Web Semantic 10 1.5 Mô tả suy luận ngược trong Web Semantic 10 1.6 Giao tiếp bằng đồ hoạ của Protégé 17 1.7 Mô hình quan hệ giữa các nút và các cạnh 21 1.8 Mô hình xử lý tiếng Việt của JvnTextPro 25 1.9 Tách từ theo phương pháp so khớp tối đa 27

2.2 Mô hình hoạt động của hệ thống đề xuất 36 2.3 Mô hình use-case đặc tả chức năng người dùng hệ thống 37 2.4 Mô hình use-case đặc tả chức năng người quản trị hệ thống 38 2.5 Đặc tả chức năng tìm kiếm thông tin 38 2.6 Đặc tả chức năng xem thông tin chi tiết 39

3.6 Quy trình truy xuất dữ liệu của Bộ máy tìm kiếm 49

Trang 11

MỞ ĐẦU

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

Cùng với sự phát triển kinh tế - xã hội, nhu cầu về xây dựng các ngôi nhà phù hợp với mỗi gia đình đang đặt ra trong thực tế Tuy nhiên, hiện nay chưa có một hệ thống nhằm cung cấp thông tin và đưa ra các tư vấn cần thiết cho việc xây dựng một ngôi nhà theo nhu cầu riêng mỗi người Những câu hỏi đặt ra khi xây dựng một ngôi nhà thường là hình thức như thế nào, trang trí ra sao và giá thành cho việc xây dựng là bao nhiêu

Với đặc điểm chính là nâng cao khả năng chia sẻ tài nguyên và tăng “sự hiểu biết” trong quá trình xử lý dữ liệu của máy tính, Web ngữ nghĩa đã đi sâu vào phân tích và định hướng dữ liệu đồng thời hỗ trợ phát triển ứng dụng Web ngữ nghĩa để phục vụ cho nhiều lĩnh vực khác nhau Một trong những lĩnh vực điểm mạnh của Web ngữ nghĩa là cho phép mô tả thông tin về dữ liệu nhằm xử lý và tìm kiếm thông tin thuận lợi hơn

Nhằm mục đích nghiên cứu về Web ngữ nghĩa và ứng dụng xây dựng một hệ thống cung cấp thông tin và tư vấn cho người dùng để chọn lựa, thiết kế ngôi nhà phù hợp nhất, tác giả đăng ký thực hiện đề tài “Xây dựng hệ thống hỗ trợ tư vấn thiết kế nhà dân dụng dựa trên Semantic Web”

2 Mục tiêu và nhiệm vụ

Mục tiêu: Xây dựng được kho dữ liệu về thông tin tham khảo khi thiết kế nhà

dân dụng, xây dựng thành công ứng dụng Semantic Web để cung cấp thông tin về thiết

kế nhà dân dụng cho người dân có nhu cầu

Nhiệm vụ của đề tài: Nghiên cứu tổng quan về Semantic Web bao gồm các khái

niệm liên quan, các công cụ, cách thức xây dựng một Semantic Web và các ứng dụng của Semantic Web Phân tích thiết kế và xây dựng hệ thống tra cứu thông tin về thiết

kế nhà dân dụng dựa trên Semantic Web

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

Đối tượng nghiên cứu: Cơ sở lý thuyết và nền tảng để xây dựng một ứng dụng về

Semantic Web, thông tin thiết kế nhà dân dụng, phương pháp xây dựng và lưu trữ dữ liệu trong Semantic Web và các công cụ dùng để xây dựng Semantic Web

Trang 12

Phạm vi nghiên cứu: Xây dựng kho dữ liệu trong lĩnh vực thiết kế nhà dân dụng,

khảo sát ý kiến, thu thập dữ liệu và xây dựng ứng dụng cung cấp thông tin thiết kế nhà dân dụng khu vực đồng bằng sông Cửu Long

4 Giả thiết nghiên cứu

Hệ thống cung cấp thông tin tham khảo về thiết kế nhà dân dụng ra đời sẽ phục

vụ tốt hơn cho việc cung cấp thông tin nhà dân dụng, tìm hiểu và nghiên cứu về nhà ở khu vực đồng bằng sông Cửu Long

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

Phương pháp nghiên cứu lý thuyết: Nghiên cứu tài liệu, công cụ và công nghệ

liên quan đến Semantic Web Tiêu chuẩn thiết kế nhà ở, nguyên lý thiết kế nhà ở Tổng hợp các tài liệu liên quan đến nhà ở khu vực đồng bằng sông Cửu Long để thiết

kế kho dữ liệu tham khảo về nhà dân dụng

Phương pháp thực nghiệm: Phân tích hệ thống, xây dựng Ontology cho hệ thống,

xây dựng ứng dụng thực tế, thực nghiệm trên các công cụ hỗ trợ phát triển Semantic Web, kiểm tra, kiểm thử và đánh giá kết quả

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

Ý nghĩa khoa học: Tiếp cận công nghệ mới về xử lý thông tin của Semantic Web

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

Ý nghĩa thực tiễn: Xây dựng hệ thống cung cấp thông tin về thiết kế kế nhà dân

dụng cho phép người dùng tìm kiếm thông tin về nhà dân dụng của khu vực đồng bằng sông Cửu Long, xây dựng Ontology cho hệ thống Cung cấp cho người dùng một số thông tin thiết kế khi thiết kế nhà dân dụng, tiết kiệm chi phí tư vấn thiết kế nhà ở dân dụng

7 Bố cục của luận văn

Để phân biệt rõ ràng những thông tin nghiên cứu có thể phân chia báo cáo này thành ba chương chính với những nội dung sau:

Chương 1 TỔNG QUAN VỀ SEMANTIC WEB

Chương này trình bày tổng thể về Semantic Web, một số công cụ hỗ trợ việc xây dựng Semantic Web

Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Chương này giới thiệu về đặc điểm nhà ở, phản ánh thực chất nhu cầu và hiện trạng hỗ trợ tư vấn thiết kế nhà dân dụng hiện nay Phân tích hiện trạng và nhu cầu xây

Trang 13

nhà nhà dân dụng Phân tích, thiết kế bài toán, tìm hiểu việc xây dựng một ứng dụng Semantic Web cần những gì, mô hình hoạt động như thế nào, công cụ nào sẽ được lựa chọn, gói thư viện nào sẽ hỗ trợ trong quá trình triển khai ứng dụng

Chương 3 PHÁT TRIỂN ỨNG DỤNG

Nội dung của chương này xây dựng hệ thống dựa trên phân tích và thiết kế ở chương 2 Ngoài ra sẽ xây dựng Ontology cho bài toán và xây dựng hệ thống tra cứu thông tin thiết kế nhà dân dụng đồng thời mô tả hoạt động hệ thống Hoàn thiện trang Semantic Web hỗ trợ việc tra cứu, tiến hành thử nghiệm và đánh giá kết quả của chương trình

Trang 14

CHƯƠNG 1 TỔNG QUAN VỀ SEMANTIC WEB

Trong chương này giới thiệu tổng quan về Semantic Web, một số công cụ hỗ trợ việc xây dựng Semantic Web; kiến trúc của Semantic Web cũng như lý thuyết về Search Engine và một số ứng dụng có sẵn của Semantic Web

1.1 Tổng quan Web ngữ nghĩa

1.1.1 Sự ra đời của Semantic Web

Thế hệ web đầu tiên là những trang HTML (web tĩnh), thế hệ thứ hai đã tạo nên một bước ngoặt là các trang web động (được viết bằng HTML kết hợp với một số ngôn ngữ lập trình chạy trên trình duyệt và trình chủ như javascript, css, PHP, JSP, ASP…) Thế hệ web thứ ba là “ Semantic Web – Web ngữ nghĩa”, với mục đích là thông tin sẽ do máy xử lý, Semantic Web sẽ làm cho các dịch vụ đi kèm với nó thông minh hơn Ví dụ: Môi giới thông tin, tác nhân tìm kiếm, bộ lọc thông tin v.v Những dịch vụ thông minh trên hệ thống web giàu ngữ nghĩa như thế chắc hẳn sẽ vượt trội hơn những phiên bản sẵn có hiện tại của các dịch vụ này [15]

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 để 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 [9]

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 - Semantic Web 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 15

1.1.2 Khái niệm

Semantic Web không là Web riêng biệt mà là một sự mở rộng của Web hiện tại, theo cách thông tin được xác định ý nghĩa tốt hơn, nó cho phép máy tính và người cộng tác với nhau tốt hơn

Semantic Web được hình thành từ ý tưởng của Tim Berners - Lee, người phát minh ra WWW, URI (Uniform Resource Identification), HTTP và HTML Tim Berner-Lee đã định nghĩa: “The Semantic Web is an extension of the current Web in which information is given well-defined meaning, better enabling computers and people to work in cooperation” [2]

Hình 1.1 Một đề xuất nguồn gốc Web với CERN Theo định nghĩa của Tổ chức World Wide Web (W3C), Web ngữ nghĩa được hiểu như sau: “Semantic Web là một cách nhìn về cách tổ chức dữ liệu: đó là ý tưởng

về việc dữ liệu trên Web được định nghĩa là liên kết theo một cách mà nó có thể được

sử dụng bởi máy tính với mục đích không chỉ cho việc hiển thị mà còn tự động hóa, tích hợp và sử dụng lại dữ liệu qua các ứng dụng khác nhau” [9]

Semantic Web là một lưới các thông tin được liên kết sao cho chúng có thể được

xử lý dễ dàng bởi các máy tính ở phạm vi toàn cầu Nó được xem là cách mô tả thông tin rất hiệu quả trên World Wide Web và cũng được xem là một cơ sở dữ liệu có khả năng liên kết toàn cầu

Trang 16

1.2 Kiến trúc của Semantic Web

1.2.1 Giới thiệu

Tim Berners Lee đã đề xuất mô hình kiến trúc Semantic Web đầu tiên đây là mô hình kiến trúc gồm các thành phần chính của Semantic Web Mô hình kiến trúc của Semantic Web được thay đổi theo từng thời điểm nhất định cho thấy công nghệ Semantic Web vẫn còn đang hoàn thiện và phát triển theo thời gian

Semantic Web được xây dựng trên nền hệ thống Web hiện tại Semantic Web được coi là sự mở rộng của Web hiện tại có bổ sung thêm ngữ nghĩa vào dữ liệu trên Web Hình 1.2 chỉ ra sơ đồ kiến trúc của Semantic Web theo đề xuất của Tim Berners Lee

Hình 1.2 Kiến trúc Web ngữ nghĩa

Ta thấy kiến trúc Semantic Web gồm có bảy tầng Trong đó, hệ thống Web hiện tại (World Wide Web) chỉ gồm tầng thứ nhất và thứ hai Tất cả các tầng của Semantic Web được sử dụng để đảm bảo độ an toàn và giá trị thông tin trở nên tốt nhất

Trang 17

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 chúng và bất kỳ cái gì mà có một URI thì được coi là “trên Web” URL (Uniform Resourse Locator) là một dạng đặc biệt của URI, cụ thể nó 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ụ: Ta có một URIref:

"http://www.example.org/Books#Ontology" bao gồm một URI:

"http://www.example.org/Books" và một phần nhận dạng "Ontology" được cách

nhau bởi kí hiệu #

Theo như quy ước, namespace 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ụ:

"http://www.example.org/Books#" là một không gian tên Các tài nguyên 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 nguyên không có sự đề cập rõ ràng về tham chiếu URIref của tài nguyên

1.2.2.2 Tầng XML

XML (eXtensible Markup Language) là ngôn ngữ đánh dấu mở rộng, cho phép người dùng có thể tùy ý thêm vào những thẻ theo yêu cầu của mình dựa theo chuẩn SGML (Standard Generalized Markup Language): Siêu ngôn ngữ có khả năng sinh ngôn ngữ khác) SGML được phát triển cho việc định cấu trúc và nội dung tài liệu điện

tử do tổ chức ISO (International Organization for Standards) chuẩn hoá năm 1986 XML sẽ tiếp tục đóng một vai trò quan trọng trong sự phát triển của Semantic Web

Nó cho phép mọi người thiết kế định dạng tài liệu và sau đó viết một tài liệu theo định dạng đó

1.2.2.3 Tầng RDF và RDFS (RDF schema)

RDF (Resource Description Framework): Khung mô tả tài nguyên đượ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 Semantic Web 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 trong RDF đề là các URI

Trang 18

Hình 1.3 Bộ ba RDF RDFS (RDF schema): Là một ngôn ngữ ontology đơn giản của Semantic Web, được coi là ngôn ngữ cơ sở của Semantic Web RDFS là ngôn ngữ mô tả bộ từ vựng trên các bộ ba RDF Nó cung cấp các công việc sau:

Định nghĩa các lớp tài nguyên

Định nghĩa các quan hệ giữa các lớp

Định nghĩa các loại thuộc tính mà các lớp trên có

Định nghĩa các mối quan hệ giữa các thuộc tính

1.2.2.4 Tầng Ontology vocabulary

Bộ từ vựng Ontology được xây dựng trên cơ sở tầng RDF và RDFS, cung cấp 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 Để xây dựng được các bộ từ vựng này, người ta đã sử dụng các ngôn ngữ Ontology để biểu diễn chúng như: RDFS, OIL, DAML, DAML+OIL, OWL, Các ngôn ngữ này cung cấp khả năng biểu diễn và hỗ trợ lập luận khác nhau và chúng dựa trên nền tảng

là các ngôn ngữ lô-gíc mô tả tương ứng khác nhau [10]

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

để 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 Vì logic mô tả có biểu diễn ngữ nghĩa hình thức (đặc trưng của lý thuyết mô hình), và cung cấp dịch vụ lập luận, là cơ sở để hỗ trợ máy có thể lập luận và hiểu tài nguyên

1.2.2.6 Tầng Proof

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ì khí đó 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

Trang 19

1.2.2.7 Tầng trust

Đảm bảo tính tin cậy của các ứng dụng trên Semantic Web Ví dụ: có một người bảo x là xanh, một người khác lại nó x không xanh, như thế Semantic Web 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 Semantic Web 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

1.2.3 Ontology

1.2.3.1 Khái niệm

Ontology là một thuật ngữ mượn từ triết học [4] nhằm mô tả các thực thể trong thế giới thực và cách chúng liên kết với nhau Trong khoa học máy tính một cách khái quát, Ontology là “một biểu diễn của sự khái niệm hóa chung được chia sẻ” của một miền nhất định Theo Aristoteles thì “Ontology là một nhánh của Triết học, liên quan đến sự tồn tại và bản chất các sự vật trong thực tế” Chẳng hạn như quan sát thế giới thực, xác định các đối tượng và sau đó nhóm chúng lại thành một lớp trừu tượng dựa trên thuộc tính chung [1,9]

Tuy nhiên trong những nằm gần đây, Ontology đã trở thành một thuật ngữ được biết nhiều trong lĩnh vực khoa học máy tính và có ý nghĩa khác xa so với nghĩa đầu của nó Ontology được xem như là “linh hồn” của Semantic Web Chúng giúp con người và máy có thể hợp tác, cùng nhau làm việc, giúp máy có thể “hiểu” và có khả năng xử lý thông tin hiệu quả Các Ontology được phát triển trong lĩnh vực trí tuệ nhân tạo để sử dụng lại và chia sẽ tri thức được thuận tiện hơn [1]

Một định nghĩa chung cho Ontology là: Ontology là một đặc tả hình thức của sự khái niệm hóa về một lĩnh vực ứng dụng cụ thể [1] Định nghĩa này nhấn mạnh hai

điểm chính: sự khái niệm hóa (conceptualisation) là hình thức và do đó cho phép suy diễn bởi máy tính; và một Ontology trên thực tế được thiết kế cho một miền ứng dụng

cụ thể nào đó Các Ontology bao gồm các khái niệm (các lớp – classes), các quan hệ (các thuộc tính – property), các thể hiện (instances) và các tiên đề (axioms)

Điểm mạnh của Semantic Web so với Web 2.0 là cho phép khả năng suy luận dữ liệu thông minh nhằm hỗ trợ việc suy luận dữ liệu theo quy tắc của Ontology

Suy luận ngang cấp

Trang 20

Là suy luận dựa trên cùng một thuộc tính của hai đối tượng quan hệ Ví dụ: A là bạn của B thì B cũng là bạn của A Thuộc tính là bạn là thuộc tính hai chiều

Hình 1.4 Mô tả suy luận ngang cấp trong Web Semantic

Suy luận ngược

Là cách suy luận dựa trên các thuộc tính khác nhau của hai đối tượng Ví dụ: A là

bố của B thì B là con của A Thuộc tính là bố và thuộc là con là hai thuộc tính ngược nhau

Hình 1.5 Mô tả suy luận ngược trong Web Semantic

Khai báo thuộc tính

là bố của A và B

Suy luận từ dữ liệu khai báo với thuộc tính là con của B và A

Trang 21

Như vậy, các Ontology biểu diễn dựa trên logic mô tả đã khai thác được khả năng biểu diễn tri thức cũng như khả năng lập luận hiệu quả của logic mô tả để máy hiểu được tài nguyên Web

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

Ngôn ngữ Ontology cho phép người sử dụng viết ra một cách 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:

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 lô-gíc 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 lô-gíc 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ạ lô-gíc miêu tả và sử dụng các suy diễn đang tồn tại như FaCT và RACER Các lô-gíc mô tả là tập con của lô-gíc vị từ nhằm hỗ trợ suy diễn hiệu quả

1.2.3.3 Vai trò của Ontology

Danh sách dưới đây sẽ phân tích vai trò của Ontology trong ngữ cảnh ứng dụng Web có ngữ nghĩa

Chia sẻ sự hiểu biết chung giữa các ứng dụng và con người

Trang 22

Cho phép sử dụng lại tri thức

Đưa ra các giả thiết rõ ràng về miền

Phân tách tri thức lĩnh vực với tri thức thao tác

Phân tích tri thức lĩnh vực Phân tích hình thức của các khái niệm, cần thiết cho việc tái sử dụng và mở rộng Ontology

1.2.3.4 Các thành phần của 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ác cá thể (Individuals), các lớp (Classes), các thuộc tính (Properties), các mối quan hệ (Relation)

Các 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ể bảo gồm các đối tượng cụ thể như con người, cái nhà, động vật, cái bàn… cũng như các cá thể trừu tượng như các thành viên hay các từ Một Ontology có thể không cần bất kỳ một cá thể nào, nhưng một trong những lý do chính của một Ontology là để cung cấp một ngữ nghĩa của việc phân lớp các cá thể, mặc dù các cá thể này không thực sự là một phần của Ontology

Các lớp (Classes) – Khái niệm

Các lớp là các nhóm, tập hợp các đối tượng trừu tượng Chúng có thể chứa các cá thể, các lớp khác, hay là sự phối hợp của cả hai Các Ontology biển đổi tùy thuộc vào cấu trúc và nội dung của nó: Một lớp có thể chứa các lớp con, có thể là một lớp tổng quan (chứa tất cả mọi thứ), có thể là lớp chỉ chứa những cá thể riêng lẻ Một lớp có thể xếp gộp và hoặc bị xếp gộp vào bởi các lớp khác Mối quan hệ xếp gộp này được sử dụng để tạo ra một cấu trúc có thứ bậc các lớp, thường là với một lớp thông dụng nhất kiểu Thing ở trên đỉnh

Các thuộc tính (Properties)

Các đối tượng trong Ontology có thể được mô tả thông qua việc khai báo các thuộc tính của chúng Mỗi một thuộc tính đề 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

Các mối quan hệ (Relations)

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

Trang 23

quan hệ xếp gộp (subsumption) Kiểu quan hệ này mô tả các đối tượng nào là các thành viên của các lớp nào của các đối tượng

Hiện tại, việc kết hợp các Ontology là một tiến trình được làm phần lớn là thủ công, do vậy rất tốn thời gian và đắt đỏ Việc sử dụng các Ontology là cơ sở để cung cấp một định nghĩa thông dụng của các thuật ngữ cốt lõi có thể làm cho tiến trình này trở nên dễ quản lý hơn Hiện đang có các nghiên cứu dựa trên các kỹ thuật sản sinh nối kết các Ontology, tuy nhiên lĩnh vực này mới chỉ hiện hữu về mặt lý thuyết

1.2.3.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ả 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 một dự án bởi W3C OWL biểu diễn ý nghĩa của các thuật ngữ trong 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 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 các 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 Semantic Web 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 Web Ngôn ngữ này được kỳ vọng rằng sẽ cho phép các 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à sẽ cung cấp các chuẩn để tạo ra một nền tảng để quản lý tài sản, tích hợp mức doanh nghiệp và để chia sẻ cũng như tái sử dụng dữ liệu trên Web OWL được phát triển bởi 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, và vì 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

1.2.4 Quy trình xây dựng Semantic Web

Quy trình phát triển Ontology là một quy trình gồm nhiều bước, tuy nhiên vẫn chưa có một phương pháp chuẩn hóa nào để phát triển các Ontology Quy trình phát triển gồm 7 bước do Stanford Center for Biomedical Informatics Research đưa ra - Đây là nhóm phát triển phần mềm Protégé để trình diễn và soạn thảo Ontology

Bước 1: Xác định lĩnh vực và phạm vi của Ontology

Trang 24

Trong giai đoạn này cần xác định mục đích của việc xây dựng Ontology là gì? Phục vụ đối tượng nào? Ontology sắp xây dựng cần có đặc điểm gì, liên quan đến lĩnh vực, phạm vi nào? Quá trình khai thác, quản lý và bảo trì Ontology được thực hiện ra sao?

Bước 2: Xem xét việc sử dụng lại các Ontology có sẵn

Cấu trúc của một Ontology bao gồm 3 tầng: Tầng trừu tượng (Abstract), tầng miền xác định (Domain) và tầng mở rộng (Extension) Trong đó tầng trừu tượng có tính tái sử dụng rất cao, tầng miền xác định có thể tái sử dụng trong một lĩnh vực nhất định Cộng đồng Ontology cũng đang lớn mạnh và có rất nhiều Ontology đã được tạo

ra, với tâm huyết của nhiều chuyên gia Do đó trước khi bắt đầu xây dựng Ontology, cần xét đến khả năng sử dụng lại các Ontology đã có Nếu có thể sử dụng lại một phần các Ontology đã có thì chi phí bỏ ra cho quá trình xây dựng Ontology sẽ giảm đi rất nhiều

Bước 3: Liệt kê các thuật ngữ quan trọng

Ontology được xây dựng trên cơ sở các khái niệm trong một lĩnh vực cụ thể, vì vậy khi xây dựng Ontology cần bắt đầu từ các thuật ngữ chuyên ngành để xây dựng thành các lớp trong Ontology tương ứng Tất nhiên không phải thuật ngữ nào cũng đưa vào Ontology, vì chưa chắc đã định vị được cho thuật ngữ đó Do đó cần phải liệt kê các thuật ngữ, để xác định ngữ nghĩa cho các thuật ngữ đó, cũng như cân nhắc về phạm vi của Ontology Việc liệt kê các thuật ngữ còn cho thấy được phần nào tổng quan về các khái niệm trong lĩnh vực đó, giúp cho các bước tiếp theo được thuận lợi

Bước 4: Xác định các lớp và phân cấp của các lớp

Công việc xác định các lớp không chỉ đơn giản là tiến hành tìm hiểu về ngữ nghĩa của các thuật ngữ đã có để có được các mô tả cho thuật ngữ đó, mà còn phải định vị cho các lớp mới, loại bỏ ra khỏi Ontology nếu nằm ngoài phạm vi của Ontology hay hợp nhất với các lớp đã có nếu có nhiều thuật ngữ có ngữ nghĩa như nhau Ngoài ra không phải thuật ngữ nào cũng mang tính chất như một lớp

Một công việc cần phải tiến hành song song với việc xác định các lớp là xác định phân cấp của các lớp đó Việc này giúp định vị các lớp dễ dàng hơn

Một số phương pháp tiếp cận trong việc xác định phân cấp của các lớp:

Phương pháp từ trên xuống (Top-down): Bắt đầu với định nghĩa của các lớp

tổng quát nhất trong lĩnh vực và sau đó chuyên biệt hóa các khái niệm đó Ví dụ: Trong Ontology về quản lý nhân sự, ta bắt đầu với lớp Người, sau đó chuyên biệt hóa lớp Người đó bằng cách tạo ra các lớp con của lớp Người như: Kỹ sư, Công nhân, Bác sỹ,… Lớp Kỹ sư cũng có thể chuyên biệt hóa bằng cách tạo ra các lớp con như Kỹ sư CNTT, Kỹ sư điện, Kỹ sư cơ khí, …

Trang 25

Phương pháp từ dưới lên (Bottom-up): Bắt đầu với định nghĩa của các lớp cụ

thể nhất, như các lá trong cây phân cấp Sau đó gộp các lớp đó lại thành các khái tổng quát hơn Ví dụ: Ta bắt đầu với việc định nghĩa các lớp như: nhân viên lễ tân, nhân viên vệ sinh, nhân viên kỹ thuật Sau đó tạo ra một lớp chung hơn cho các lớp đó là lớp nhân viên

Phương pháp kết hợp: Kết hợp giữa phương pháp từ trên xuống và từ dưới lên:

bắt đầu từ định nghĩa các lớp dễ thấy trước và sau đó tổng quát hóa và chuyên biệt hóa các lớp đó một cách thích hợp Ví dụ ta bắt đầu với lớp nhân viên trước, là thuật ngữ hay gặp nhất trong quản lý nhân sự Sau đó chúng ta có thể chuyên biệt hóa thành các lớp con: nhân viên lễ tân, nhân viên vệ sinh,… hoặc tổng quát hóa lên thành lớp Người

Bước 5: Xác định các thuộc tính

Để xác định thuộc tính cho các lớp, ta quay trở lại danh sách các thuật ngữ đã liệt

kê được Hầu hết các thuật ngữ còn lại (sau khi đã xác định lớp) là thuộc tính của các lớp đó Với mỗi thuộc tính tìm được, ta phải xác định xem nó mô tả cho lớp nào Các thuộc tính đó sẽ trở thành thuộc tính của các lớp xác định Ví dụ: Lớp Người có các thuộc tính sau: Họ, Tên, Ngày sinh, Giới tính, Nghề nghiệp, Địa chỉ, Điện thoại,…

Bước 6: Xác định ràng buộc của các thuộc tính

Các thuộc tính có thể có nhiều khía cạnh khác nhau như: Kiểu giá trị, các giá trị cho phép, số các thuộc tính, và các đặc trưng khác mà giá trị của thuộc tính có thể nhận Ví dụ: Năm sinh của một nhân viên chỉ có duy nhất và là số nguyên, có thể nhận giá trị từ 1948 đến 1990 Cần phải xác định các ràng buộc cho một thuộc tính càng chặt chẽ càng tốt, để tránh trường hợp nhập dữ liệu sai, dẫn đến đổ vỡ của các ứng dụng sử dụng Ontology này

Bước 7: Tạo các thực thể

Bước cuối cùng là tạo ra các thực thể cho mỗi lớp và gán giá trị cho các thuộc tính Việc tạo thực thể cho một lớp là quá trình điền các thông tin vào các thuộc tính của lớp đó Các thực thể sẽ tạo nên nội dung của một cơ sở tri thức

1.2.5 Công cụ phát triển Semantic Web

1.2.5.1 Công cụ phát triển Ontology

Một số công cụ phát triển và hiệu chỉnh có giá trị trong việc làm giảm độ phức tạp và thời gian dùng cho nhiệm vụ xây dựng Ontology Các công cụ như Kaon, OileEd và Protégé cung cấp các giao diện nhằm giúp đỡ người sử dụng thực hiện các hoạt động chính yếu trong quá trình phát triển một Ontology

Trang 26

Trong số các công cụ đó, Protégé là công cụ được sử dụng rộng rãi và hiệu quả nhất hiện nay Nó cho phép người sử dụng định nghĩa và chỉnh sửa các lớp Ontology, các thuộc tính và quan hệ và các thể hiện sử dụng cấu trúc cây Các Ontology có thể được đưa ra theo các định dạng (RDFS), XML Schema Platform Protégé cung cấp hai cách chính mô hình hóa Ontology qua Protégé – Frame và Protégé – OWL, ngoài ra có thể có nhiều plugin Chúng ta có thể quan sát một cách trực quan thông qua OWL Viz, nó cho phép quan sát Ontology dưới dạng đồ họa và đưa file ảnh JPEG Ngoài ra còn hỗ trợ truy vấn SPARQL

Đặc điểm của Protégé

Đây là phần mềm miễn phí dùng để tạo ra các mô hình và các ứng dụng bằng cách sử dụng các Ontology Protégé được phát triển bởi trường Đại học Stanford và Mark Musen Chức năng nổi bật nhất của phần mềm này là cho phép người dùng sử dụng tạo ra các Ontology để phát triển Web Semantic theo đúng chuẩn của ngôn ngữ W3C OWL

Protégé có hai phiên bản OWL và API Phiên bản trước của Protégé-OWL là Protégé-API mà nội dung có nền tảng từ OKBC (Open Knowledge Base Connectivity) OKBC là một ứng dụng lập trình giao tiếp thực hiện truy xuất dữ liệu thông minh

Phiên bản Protégé-OWL phát triển dựa trên những gì đã có của phiên bản trước

và nó mở rộng hơn rất nhiều so với phiên bản trước đây là chỉ cho phép xây dựng các lớp Protégé-OWL được phát triển dựa trên hai yêu cầu chính Đầu tiên là yêu cầu định nghĩa các đối tượng và quan hệ tồn tại giữa chúng Sau đó là yêu cầu xây dựng các đặc điểm kĩ thuật phục vụ ý tưởng chia sẻ thông tin

Các đối tượng xây dựng chính của Protégé là:

Classes – Tổ chức các quan hệ tham chiếu và các kiểu thực thi

Axioms – Mô hình câu lệnh đúng

Instances – Các thể hiện, các thành phần của đối tượng

Domain – Giới hạn của Ontology

Vocabulary – Các lớp và khai báo

Protégé sử dụng giao diện đồ hoạ

Ngay từ phiên bản Protégé - API, thì phần mềm Protégé đã không chỉ cho phép tạo mô hình bằng cách thủ công mà nó còn cho phép người sử dụng giao diện đồ hoạ

để phát triển

Trang 27

Phần mềm này chứa một số lớp và các phương thức hữu dụng để hỗ trợ người sử dụng lập trình tương tác bằng giao diện một cách nhanh chóng, phối hợp giữa suy nghĩ của người lập trình và nội dung mà các lớp Protégé tạo ra

Một trong những cơ sở của việc lập trình bằng giao diện đồ hoạ với Protégé là cơ chế tạo lớp, nó cho phép người lập trình giao tiếp rõ ràng với những sự kiện thay đổi

Hình 1.6 Giao tiếp bằng đồ hoạ của Protégé

Protégé phát triển để tích hợp các công cụ:

Mục đích của Protégé là hỗ trợ người phát triển tạo ra được các Ontology một cách dễ dàng nhất Ban đầu đó là vấn đề giao diện đồ hoạ, tiếp nữa đó là những công

cụ thêm vào để tạo ra các chức năng đặc biệt khác

Protégé cung cấp một số điểm mở rộng nơi các nhà phát triển có thể chủ động thêm các thành phần mà ta thường gọi là plugin Danh sách đưa ra bên dưới là các loại plugin mà bạn có thể thêm vào cho bộ biên tập Protégé-OWL Các nhà lập trình Protégé Development Kit (PDK) đã đưa ra rất nhiều thông tin chung về cách viết, đóng gói, và phát hành các plugins Cách tốt nhất để bắt đầu là kiểm tra plugin hiện có

đã được viết bởi các biên tập viên Protégé-OWL Ví dụ như: OWLViz, OWLDoc, Protégé Wizards,…

Một số plugins thường sử dụng trong Protégé:

Tab Widget Plugins thực hiện những chức năng cơ bản cho Protégé Một tab widget được tích hợp để hiển thị màn hình chính của giao diện Ví dụ điển hình

Trang 28

của công cụ này là các lớp OWL, các thuộc tính và các siêu dữ liệu Khi bạn thêm bất

kỳ công việc nào trên các đối tượng này thì bạn phải chờ đợi những điều chỉnh của giao diện theo đúng yêu cầu của mình

Slot Widget Plugins cũng thực hiện những chức năng cơ bản của Protégé Một slot widget được tích hợp để hiển thị và chỉnh sửa giá trị trên form Ví dụ của slot widgets mặc định là việc thêm vào danh sách những lớp disjoint

Project Plugin là một tính năng cơ bản của Protégé Chúng cho phép các lập trình để thực thi mã tuỳ ý khi một dự án được tạo mới, tải lên hoặc đóng dự án Đặc biệt, họ có thể được sử dụng để thêm các menu hoặc nút thanh công cụ

Resource Action Plugin xuất hiện góc dưới bên trái của một form Một Resource action plugin phải là một lớp con của ResourceAction và bạn cần phải thiết lập ResourceAction = True trên file manifest của bạn

Sau đó, ResourceAction có thể được tuỳ chọn xuất hiện trên menu trường hợp nào, mặc định biểu tượng của nó ở phía dưới góc trái của một biểu mẫu

Resource Display Plugins có thể sử dụng để thêm các thành phần tuỳ ý góc dưới bên phải của mỗi form Thành phần được đưa vào phải là lớp con của Resource Display Plugin và bạn cần phải thiết lập thuộc tính "ResourceDisplayPlugin=True" tại file manifest Sau đó bạn cần phải tham chiếu đến tài nguyên (như một class)

Ontology Test Plugins là một plugins thực thi khi người dùng kích vào nút test Ontology Việc kiểm thử có thể trả về kết quả để hiển thị cho người dùng kết quả test Ontology đang dùng

Result Panel Plugins là thành phần tuỳ chọn nó được hiển thị ở bên dưới của màn hình dưới dạng một tab Một ví dụ của plugin này đó là Find Usage dùng để hiển thị kết quả kiểm thử Ontology

Conditions Widget Extension Plugins có thể được cài đặt bởi một dự án plugin để thêm vào những tab chức năng mới

1.2.5.2 Công cụ kết nối và thao tác với Ontology

a SemWeb

SemWeb lần đầu tiên được phát hành vào tháng sáu năm 2005 và đã được thử nghiệm gần đây hơn với những bộ lưu trữ hơn một tỉ bộ ba Các tính năng cốt lõi như đọc/ghi dữ liệu XML với bộ ba RDF, liên tục lưu trữ dữ liệu với nền tảng SQL và các truy vấn SPARQL cơ bản đã được kiểm nghiệm nhiều lần Các chức năng bên ngoài như hoạt động RDFS hoặc hoạt động của Backware - Chaining đã làm việc nhưng ít được thử nghiệm và không hoàn chỉnh Thư viện không có công cụ đặc biệt đối với OWL Schema và nó hoạt động ở mức bộ ba của RDF Giấy phép SemWeb được bản quyền hoá theo giấy phép GNU GPL Tuy nhiên trong thư viện của SemWeb

Trang 29

còn sử dụng một số thư viện bên ngoài như SPARQL nên phải tuân thủ theo giấy phép của những phần này

Đặc điểm của SemWeb

SemWeb rất dễ triển khai, SemWeb cung cấp mã nguồn mở và thư viện đã được dịch ra DLL Người dùng có thể hiệu chỉnh mã nguồn để sử dụng

Đọc và viết RDF/XML (bao gồm cả XMP) Máy đọc theo luồng, có nghĩa

là toàn bộ tài liệu không cần được nạp vào bộ nhớ cùng một lúc Việc phân tích cú pháp đáp ứng được tất cả các tiêu chuẩn của W3C

Đọc và viết NTriples, Turtle, và hầu hết các ký hiệu bộ ba

Xác nhận của IRIS và XSD trong việc định dạng kiểu dữ liệu đơn giản trong file đọc (hoặc khi có yêu cầu)

Dữ liệu được lưu trữ một cách liên tục theo nền tảng của SQL DB như SQL Server, MySQL, SQLite, và PostgreSQL Việc lưu trữ MySQL có thể đạt mức một tỉ

Truy vấn: Mô hình kế thừa đơn giản, kiểm tra và truy vấn SPARQL ở bất

kỳ nguồn dữ liệu nào bằng việc dịch các truy vấn thành SQL khi có yêu cầu Với một nguồn dữ liệu từ xa thì SPARQL cũng có thể truy vấn thông qua giao thức của máy chủ ASP.NET SPARQL

Thêm truy vấn: Truy vấn dữ liệu trên một nguồn riêng nào đó bằng cách chạy truy vấn bất kỳ trên dữ liệu ban đầu và cho phép thêm những nguồn dữ liệu mới bằng AddSource

Khả năng mở rộng: Thực hiện lưu trữ dữ liệu mới liên tục hoặc bằng câu lệnh cũng đơn giản như triển khai thực hiện một giao diện

Ví dụ sau tạo ra một vài câu lệnh RDF và thêm chúng vào bộ nhớ máy tính Sau

đó, nó viết ra câu lệnh theo định dạng XML/RDF đến cửa sổ hiển thị

Trang 30

b OwlDotNetApi

OwlDotNetApi là một OWL API với bộ phân tích cú pháp viết bằng C# theo công nghệ NET dựa trên phân tích cú pháp RDF Drive, hoàn toàn phù hợp với đặc điểm kĩ thuật của W3C

MemoryStore store = new MemoryStore();

Entity("http:example.orgcomputer");

Entity says = "http:example.orgsays";

Entity wants = "http:example.orgwants";

Entity desire = new BNode();

store.Add(new Statement(computer, wants, desire));

Trang 31

Mục tiêu của OwlDotNetApi là đọc/ghi dữ liệu của XML dựa trên đồ thị với các cạnh tương ứng với thuộc tính liên kết và các đỉnh tương ứng với các nút hay còn gọi

là các lớp

Hình 1.7 Mô hình quan hệ giữa các nút và các cạnh Xuất phát từ việc đồ thị hoá nội dung của dữ liệu nên OwlDotNetApi đáp ứng được hầu hết tất cả các chuẩn mà W3C đưa ra Tuy nhiên việc truy cập dữ liệu không thông qua câu lệnh truy vấn nên việc lập trình với thư viện này chưa thuận lợi về thời gian xử lý

Khai báo và sử dụng thư viện OwlDotNetApi như sau:

Khai báo bộ biên dịch xử lý file owl:

Khai báo đồ thị thông tin:

Khai báo biến đếm các đỉnh trong đồ thị:

Duyệt các đỉnh trong đồ thị:

c Jena

Using OwlDotNetApi;

IOwlParser parser = new OwlXmlParser();

IOwlGraph graph = parser.ParseOwl(file);

ứng với các lớp

Trang 32

Jena là một thư viện được viết trên ngôn ngữ Java để xây dựng các ứng dụng Semantic Web Nó cung cấp một môi trường cho việc thao tác với tập tin định dạng RDF, RDFS và OWL Là một phần mềm nguồn mở và miễn phí, được phát triển từ chương trình Semantic Web của viện nghiên cứu HP

Khai báo sử dụng Jena trong chương trình Java

Tạo đồ thị và Statement: Một đồ thị RDF trong Jena được gọi là một mô hình

Cú pháp tạo một mô hình rỗng:

Tạo một tài nguyên:

Tạo một thuộc tính:

Thêm thuộc tính hasName vào tài nguyên johnSmith:

Jena định nghĩa phương thức listStatements() mà nó sẽ trả về một StmtIterator, một kiểu con của Iterator của Java, duyệt qua tất cả các Statement trong một mô hình StmtIterator có một phương thức nextStatement() trả về Statement kế tiếp từ Iterator Giao diện Statement cung cấp phương thức truy cập đến subject, predicate, và object của một Statement

Ghi và đọc RDF

Jena định nghĩa phương thức write() để ghi đồ thị RDF ra ngoài:

import com.hp.hpl.jena.*;

Model model = ModelFactory.createDefaultModel();

Resource johnSmith = model.createResource("http:// somewhere/JohnSmith");

Property hasName = model.createProperty("http:// example.com/terms#hasName");

johnSmith.addProperty(hasName, "John Smith");

write(OutputStream os, String base, String RDFSyntax)

Trang 33

Jena định nghĩa phương thức read() để đọc RDF:

Cú pháp đọc, ghi hiện đang được Jena hỗ trợ:

Phương thức Model.listSubjectsWithProperty(Property p, RDFNode o) sẽ trả về một iterator trên tất cả resource mà nó có thuộc tính p với giá trị o (các tham số có thể

Trang 34

Trong luận văn này, tác giả sử dụng Jena vì hiện Jena đang được cộng đồng phát triển hỗ trợ rất mạnh, việc sử dụng đơn giản và là phần mềm nguồn mở, không như Semweb và OwlDotNetAPI đã không còn được hỗ trợ và phát triển

1.2.5.3 Công cụ tách từ

Tách từ là một trong những bước tiền xử lý cơ bản trong việc phân loại văn bản Đối với các ngôn ngữ châu Á chẳng hạn tiếng Hoa, tiếng Nhật, tiếng Hàn, việc tách từ trở nên quan trọng và khó khăn hơn vì không có khoảng trắng giữa hai từ liên tiếp Tiếng Việt phải đối mặt với vấn đề ngược lại nhưng tương tự do thực tế là một từ tiếng Việt có thể có nhiều hơn một âm tiết được tách ra do đó khoảng trắng không phải luôn luôn là ký tự để phân tách một từ tiếng việt Đơn vị cơ bản trong tiếng Việt là tiếng, không phải là từ Một số đặc điểm của tiếng Việt như sau:

Từ ở dạng nguyên thể, hình thức và ý nghĩa của từ độc lập với cú pháp

Từ được cấu trúc từ tiếng

Từ bao gồm từ đơn (từ một tiếng) và từ phức (n-tiếng, với n <=5), bao gồm

từ láy và từ ghép

Trong khi đó, định nghĩa về từ trong tiếng Anh như sau: “Từ là một nhóm ký tự

có nghĩa, được phân cách bởi ký tự khoảng trắng trong câu” Dưới đây là một số điểm khác biệt chính giữa tiếng Việt và tiếng Anh

Bảng 1.1 Bảng so sánh các điểm khác biệt chính giữa tiếng Việt và tiếng Anh

Từ loại Không thống nhất Được định nghĩa rõ

Ranh giới từ Tổ hợp có nghĩa dựa vào ngữ

cảnh của các tiếng

Khoảng trắng hoặc dấu câu

StmtIterator iter = model.listStatements

(new SimpleSelector(null, VCARD.FN, (RDFNode) null) { public boolean selects(Statement s) {

return s.getString().endsWith("Smith");

}

});

Trang 35

Do những đặc điểm này mà ta không thể áp dụng các thuật toán tách từ tiếng Anh cho tiếng Việt được

Hiện nay tách từ tiếng Việt được nhiều tổ chức và cá nhân quan tâm nghiên cứu với nhiều cách tiếp cận khác nhau Một số cách tiếp cận cho bài toán tách từ tiếng Việt như: Maximum Matching: forward/backward hay còn gọi là Left Right Manimum Matching, giải thuật học cải biến TBL, mạng chuyển dịch trạng thái Hay gần đây một phương pháp kết hợp phát triển dựa trên phương pháp so khớp tối đa (Maximum Matching) với tập dữ liệu sử dụng là bảng âm tiết tiếng Việt và từ điển từ vựng tiếng Việt đã cho kết quả tách từ đạt 96%-98% theo [17] Đặc điểm chung của các phương pháp này là dựa vào từ điển và tập ngữ liệu đã đánh dấu Do đó các phương pháp này

sẽ khó phát huy được hiệu quả khi thiếu một từ điển đầy đủ và một tập ngữ liệu hoàn chỉnh

Một phương pháp tách từ với hướng tiếp cận mới không cần dùng đến từ điển hay tập huấn luyện, đó là phương pháp sử dụng giải thuật di truyền và thống kê trên Internet Điểm nổi bật của hướng tiếp cận này là thay vì phải sử dụng ngữ liệu huấn luyện đã được gán nhãn hay từ điển vốn chưa có sẵn cho tiếng Việt, tác giả đã sử dụng thông tin thống kê rút trích trực tiếp từ bộ máy tìm kiếm và dùng giải thuật di truyền

để xác định những từ hợp lý nhất Phương pháp này cho hiệu quả tách từ khá cao, tuy nhiên còn hạn chế về tốc độ xử lý do phải thống kê trực tiếp từ Internet

Hiện tại cũng có nhiều phần mềm nguồn mở thực hiện tách từ tiếng Việt cho kết

quả khá cao Chẳng hạn như JVnTextPro hoặc VnTokenizer

a Công cụ tách từ tiếng Việt JVnTextPro

JVnTextPro là một phần mềm nguồn mở được phát triển trên ngôn ngữ Java Được phát triển bởi nhóm nghiên cứu Nguyễn Cẩm Tú, Phan Xuân Hiếu, Nguyễn Thu Trang JVnTextPro dựa trên lý thuyết về Các Trường Ngẫu Nhiên (CRFs) và Entropy Cực đại (Maxent) để xử lý ngôn ngữ tự nhiên trong tiếng Việt Công cụ này bao gồm một số bước tiền xử lý tiếng Việt và tiến trình xử lý được thiết kế theo kiểu đường ống trong đó đầu ra của bước này sẽ được sử dụng như đầu vào cho các bước tiếp theo

Hình 1.8 Mô hình xử lý tiếng Việt của JvnTextPro Tùy vào mục đích sử dụng mà người dùng có thể sử dụng tất cả các bước xử lý

dữ liệu như trên đường ống hoặc chỉ gọi sử dụng một vài bước nhỏ trong các bước này

Trang 36

JVnTextPro hỗ trợ nhiều tùy chọn xử lý dữ liệu chẳng hạn ta có thể gọi chương trình xử lý từ chế độ dòng lệnh, nó cũng cung cấp các API để tích hợp JVnTextPro vào

hệ thống khác và triệu gọi các phương thức xử lý dữ liệu Ngoài ra nó cũng cung cấp các giao diện dịch vụ để các hệ thống sử dụng ngôn ngữ lập trình khác có thể kết nối đến và xử lý dữ liệu

Các bước để dùng API của JVnTextPro như sau:

Bước 1: Khởi tạo đối tượng JvnTextPro

Bước 2: Gọi phương thức process để xử lý văn bản đầu vào, ta có thể gọi một phương thức chung để xử lý cho tất cả các mục đích hoặc gọi từng phương thức cụ thể tùy vào mục đích, yêu cầu của người dùng như sau:

b Công cụ tách từ tiếng Việt VnTokenizer

Công cụ VnTokenizer được phát triển trong đề tài VLSP của nhóm tác giả Lê Hồng Phương, Nguyễn Thị Minh Huyền và Vũ Lương Xuân Công cụ này được phát triển dựa trên phương pháp so khớp tối đa (Maximum matching) với tập dữ liệu sử dụng là bảng âm tiết tiếng Việt và từ điển từ vựng tiếng Việt

Công cụ được xây dựng trên ngôn ngữ Java, mã nguồn mở Có thể dễ dàng tích hợp vào các hệ thống phân tích tiếng Việt khác

Quy trình thực hiện tách từ theo phương pháp so khớp tối đa:

JVnTextPro textPro = new JVnTextPro();

textPro.initSenSegmenter([đường dẫn thư mục mô hình]);

Ngày đăng: 21/04/2021, 16:38

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Grigoris Antoniou and Frank Van Harmelen. A Semantic Web Primer. MIT Press, 2004 Sách, tạp chí
Tiêu đề: A Semantic Web Primer
[2] T. Berners – Lee, J. Hendler, O. Lassila. The Semantic Web. Scientific American, vol.248, 2001, 28 – 37 Sách, tạp chí
Tiêu đề: The Semantic Web
[3] Toby Segaran, Colin Evans, Jamie Taylor. Programming The Semantic Web. O’Reilly – Media, July 2009 Sách, tạp chí
Tiêu đề: Programming The Semantic Web
[4] Tom Gruber. Ontology. Entry in the Encyclopedia of Database Systems, Ling Liu and M. Tamer ệzsu (Eds.), Springer-Verlag, 2008.Tài liệu tiếng Việt Sách, tạp chí
Tiêu đề: Ontology
[5] Võ Trung Hùng. Bài giảng Xử lý ngôn ngữ tự nhiên. Ban Khoa học và Công Nghệ, Đại học Đà Nẵng Sách, tạp chí
Tiêu đề: Bài giảng Xử lý ngôn ngữ tự nhiên
[6] Nguyễn Thanh Bình. Bài giảng phân tích và thiết kế hệ thống hướng đối tượng. Đại học Đà Nẵng, 2007 Sách, tạp chí
Tiêu đề: Bài giảng phân tích và thiết kế hệ thống hướng đối tượng
[7] Cao Vũ Đàm. Phương pháp luận nghiên cứu khoa học. NXB KH&amp;KT, Hà Nội, 2003 Sách, tạp chí
Tiêu đề: Phương pháp luận nghiên cứu khoa học
Nhà XB: NXB KH&KT
[8] Võ Hoàng Nguyên, Hoàng Lê Quân. Giới thiệu Web Semantic &amp; Ontology. 5/2009 Sách, tạp chí
Tiêu đề: Giới thiệu Web Semantic & Ontology
[9] Hoàng Hữu Hạnh. Web ngữ nghĩa: Những thách thức và hướng tiếp cận mới. Tạp chí Khoa học, Đại học Huế, Số 48, 2008 Sách, tạp chí
Tiêu đề: Những thách thức và hướng tiếp cận mới
[10] Phạm Khánh Thiện. Ứng dụng Web semantic để xây dựng hệ thống tra cứu thông tin về văn hóa Tây Nguyên. Luận văn thạc sĩ kỹ thuật, Đại học Đà Nẵng, 2011 Sách, tạp chí
Tiêu đề: Ứng dụng Web semantic để xây dựng hệ thống tra cứu thông tin về văn hóa Tây Nguyên
[11] Nguyễn Thúc Duy Anh, Nguyễn Thị Khánh Hòa. Nghiên cứu, tìm hiểu và xây dựng ứng dụng với Web ngữ nghĩa. Luận văn cử nhân tin học, Đại học Khoa học tự nhiên TP. HCM, 2005 Sách, tạp chí
Tiêu đề: Nghiên cứu, tìm hiểu và xây dựng ứng dụng với Web ngữ nghĩa
[12] Nguyễn Trần Trọng. Ứng dụng Web ngữ nghĩa xây dựng hệ thống trợ giúp học tập cho học sinh bậc Trung học Phổ thông. Luận văn thạc sĩ kỹ thuật, Đại học Đà nẵng, 2011 Sách, tạp chí
Tiêu đề: Ứng dụng Web ngữ nghĩa xây dựng hệ thống trợ giúp học tập cho học sinh bậc Trung học Phổ thông
[13] Lê Thị Thanh Tâm, Hoàng Hữu Hạnh, Lê Mạnh Thạnh. Nghiên cứu và triển khai Linked Data cho các ứng dụng Web ngữ nghĩa. Tạp chí khoa học, Đại học Huế, Số 65, 2011 Sách, tạp chí
Tiêu đề: Nghiên cứu và triển khai Linked Data cho các ứng dụng Web ngữ nghĩa
[14] Từ Minh Phương, Trịnh Hữu Kiên. Công cụ hỗ trợ tạo ngữ nghĩa trang Web sử dụng kỹ thuật tách thông tin từ văn bản. Tạp chí Bưu chính Viễn thông Sách, tạp chí
Tiêu đề: Công cụ hỗ trợ tạo ngữ nghĩa trang Web sử dụng kỹ thuật tách thông tin từ văn bản
[15] Nguyễn Công Nhật. Web ngữ nghĩa và Thư viện số. Tạp chí Thư viện Việt Nam Sách, tạp chí
Tiêu đề: Web ngữ nghĩa và Thư viện số

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