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

Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web

76 6 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

Tiêu đề Xây Dựng Hệ Thống Tìm Kiếm Thông Tin Và Gợi Ý Hành Trình Dựa Ngữ Nghĩa Trên Nền Web
Tác giả Nguyễn Anh Đức
Người hướng dẫn TS. Cao Tuấn Dũng
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại đồ án tốt nghiệp
Năm xuất bản 2011
Thành phố Hà Nội
Định dạng
Số trang 76
Dung lượng 4,22 MB

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

Nội dung

Kết quả cụ thể của đồ án hướng đến xây dựng hệ thống cho phép người dùng tiếp cậntrên nền tảng web, trong đó cung cấp các chức năng thông minh như khuyến nghị hànhtrình du lịch dựa trên

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

──────── * ───────

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC

NGÀNH CÔNG NGHỆ THÔNG TIN

TÊN ĐỀ TÀI: XÂY DỰNG HỆ THỐNG TÌM KIẾM THÔNG TIN VÀ GỢI Ý HÀNH TRÌNH DỰA NGỮ NGHĨA TRÊN NỀN WEB

Sinh viên thực hiện : Nguyễn Anh Đức

Lớp CNPM – K51

Giáo viên hướng dẫn: TS Cao Tuấn Dũng

Trang 2

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1 Thông tin về sinh viên

Họ và tên sinh viên: Nguyễn Anh Đức

Điện thoại liên lạc: 09.888.999.73 Email: ducnguyen1911@gmail.com

Lớp: CNPM–CNTT&TT–K51 Hệ đào tạo: Chính qui

Đồ án tốt nghiệp được thực hiện tại: Bộ môn Công nghệ phần mềm

Thời gian làm ĐATN: Từ ngày 15/01/2011 đến 27/05/2011

2 Mục đích nội dung của ĐATN

Nghiên cứu và ứng dụng công nghệ Java và nền tảng Semantic Web trong bài toán hỗ trợ người du lịch với các chức năng thông minh như gợi ý hành trình du lịch, tìm kiếm các thông tin ngữ nghĩa

3 Các nhiệm vụ cụ thể của ĐATN

 Nghiên cứu công nghệ Semantic Web

 Nghiên cứu công nghệ phát triển web JSF 2.0 của Java

 Xây dựng Ontology phục vụ cho bài toán hỗ trợ người du lịch

 Thiết kế hệ thống thông minh hỗ trợ người dùng trên nền tảng web với các chức năng: khuyến nghị hành trình du lịch, tìm kiếm ngữ nghĩa, browse thông tin ngữ nghĩa, lấy tin tức từ các trang tin

 Xây dựng và triển khai hệ thống

4 Lời cam đoan của sinh viên:

Tôi - sinh viên Nguyễn Anh Đức - cam kết ĐATN 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 TS.Cao Tuấn Dũng

Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳcông trình nào khác

Hà Nội, ngày 26 tháng 05 năm 2011

Tác giả ĐATN

Nguyễn Anh Đức

5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảovệ:

Hà Nội, ngày tháng năm2011

Giáo viên hướng dẫn

TS Cao Tuấn Dũng

Trang 3

LỜI CẢM ƠN

Trước hết, em xin được chân thành gửi lời cảm ơn sâu sắc tới các thầy cô giáo trongtrường Đại học Bách Khoa Hà Nội nói chung và các thầy cô trong viện Công nghệ Thôngtin và Truyền thông, bộ môn Công nghệ phần mềm nói riêng đã tận tình giảng dạy, truyềnđạt cho em những kiến thức, những kinh nghiệm quý báu trong suốt 5 năm học tập và rènluyện tại trường

Em xin được gửi lời cảm ơn đến TS Cao Tuấn Dũng - Giảng viên bộ môn Công nghệphần mềm, viện Công nghệ Thông tin và Truyền thông, trường Đại học Bách Khoa Hà Nội

đã hết lòng giúp đỡ, hướng dẫn và chỉ dạy tận tình trong quá trình em làm đồ án tốt nghiệp

Em xin được gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động viên, chăm sóc,đóng góp ý kiến và giúp đỡ trong quá trình học tập, nghiên cứu và hoàn thành đồ án tốtnghiệp

Cuối cùng, em xin kính chúc các thầy cô luôn luôn mạnh khỏe, hạnh phúc, tiếp tục đạtđược nhiều thắng lợi trong sự nghiệp nghiên cứu khoa học và sự nghiệp giáo dục của mình

Hà nội, ngày 26/05/2011

Nguyễn Anh ĐứcSinh viên lớp Công nghệ phần mềm – K51Viện CNTT & TT – Đại học Bách Khoa Hà Nội

Trang 4

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Trong thời đại hiện tại, nhu cầu du lịch của con người đang phát triển nhanh chóng, đicùng với đó là sự gia tăng của các dịch vụ cũng như các sản phầm công nghệ thông tinphục vụ cho nhu cầu tiềm năng này Tuy nhiên các sản phẩm này vẫn còn mang nhữngđiểm yếu cố hữu và chưa thực sự linh hoạt cho từng đối tượng sử dụng

Trong phạm vi đồ án, em sẽ tập trung nghiên cứu, xây dựng hệ thống hỗ trợ, hướng dẫn

du lịch thông minh trong môi trường đa nền tảng

Kết quả cụ thể của đồ án hướng đến xây dựng hệ thống cho phép người dùng tiếp cậntrên nền tảng web, trong đó cung cấp các chức năng thông minh như khuyến nghị hànhtrình du lịch dựa trên sở thích người dùng, các chức năng tìm kiếm thông tin ngữ nghĩa, lấytin tức từ các website khác…

Từ Khóa: Du lịch, semantic web, tìm kiếm, thông minh, tích hợp dữ liệu

Trang 5

ABSTRACT OF THESIS

In the modern age, people’s demand of traveling is developing rapidly along with theincreasing of services as well as information technological products for this potentialneeds However, these products still remain some weaknesses and not really flexible foreach user

Within this thesis, I will focus on research and building supporting system, guidingintelligent traveling in the multi-platform environment

The specific results of the plan aim to build a system which allows users access on webbase, including supplying intelligent functions such as giving recommendations oftraveling tour basing on user’s preferences…

Keywords: Tourist, Semantic Web, Search, Intelligent, Data integration

Trang 6

MỤC LỤC

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 4

ABSTRACT OF THESIS 5

DANH MỤC CÁC BẢNG 9

DANH MỤC CÁC HÌNH 10

DANH MỤC CÁC THUẬT NGỮ 12

MỞ ĐẦU 13

PHẦN I: TỔNG QUAN VỀ ĐỀ TÀI 16

1 ĐẶT VẤN ĐỀ, KHẢO SÁT NHU CẦU 16

2 PHƯƠNG PHÁP TIẾP CẬN VÀ HƯỚNG GIẢI QUYẾT 17

3 CƠ SỞ LÝ THUYẾT CỦA CÁC KỸ THUẬT SỬ DỤNG TRONG ĐỀ TÀI 18

3.1 Công nghệ Semantic Web 18

3.1.1 Ontology 19

3.1.1.1 Khái niệm 19

3.1.1.2 Vòng đời của ontology 20

3.1.1.3 Phương pháp xây dựng ontology 20

3.1.1.4 Các phần tử cơ bản 22

3.1.2 RDF 23

3.1.3 SPARQL 24

3.2 Linked Data 24

3.3 AllegroGraph 27

3.4 JSF 29

3.4.1 Giới thiệu về JSF 29

3.4.2 Công nghệ JSF 2.0 và Facelets 30

PHẦN II: CÁC KẾT QUẢ ĐẠT ĐƯỢC 32

4 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 32

4.1 Thiết kế kiến trúc hệ thống 32

Trang 7

4.2 Thiết kế ontology 34

4.2.1 Tham khảo ontology về du lịch 34

4.2.2 Ontology của hệ thống: VTIO (Vietnam Travel Information Ontology ) 35

4.2.2.1 Các lớp khái niệm 36

4.2.2.2 Các thuộc tính 41

4.3 Các chức năng của website 45

4.3.1 Chức năng khuyến nghị hành trình cho người dùng 45

4.3.2 Chức năng browse thông tin về một đối tượng 46

4.3.3 Tìm kiếm phức tạp 47

4.3.4 Tìm kiếm nhanh 48

4.3.5 Lấy về tin tức từ các trang tin tức và tham chiếu tới các đối tượng trong hệ thống 48 4.4 Thiết kế giao diện 48

5 CÀI ĐẶT 51

5.1 Chức năng khuyến nghị hành trình cho người dùng 51

5.1.1 Xây dựng giao diện sở thích du lịch người dùng từ ontology 53

5.1.2 Đối sánh sở thích người dùng và thông tin ngữ nghĩa về tài nguyên du lịch 54

5.1.3 Thuật toán lên hành trình dựa trên khoảng cách và độ phù hợp ngữ nghĩa sở thích 55 5.1.4 Browse thông tin về một đối tượng 59

5.1.5 Tìm kiếm phức tạp 59

5.1.6 Lấy về tin tức từ các trang tin tức 61

5.1.7 Chức năng tìm kiếm nhanh 62

6 TRIỂN KHAI VÀ KIỂM THỬ 63

6.1 Triển khai 63

6.2 Kiểm thử 63

6.2.1 Đặc tả yêu cầu kiểm thử 64

Trang 8

6.3 Một số hình ảnh minh họa sản phẩm 67

7 ĐÁNH GIÁ 73

7.1 Đánh giá ưu, nhược điểm của hệ thống 73

7.2 So sánh với các hệ thống khác trên thế giới 73

KẾT LUẬN 74

TÀI LIỆU THAM KHẢO 76

Trang 9

DANH MỤC CÁC BẢNG

Bảng 1: Chi tiết các thuộc tính nguyên thủy 42

Bảng 2: Chi tiết các thuộc tính đối tượng 45

Bảng 3: Đặc tả yêu cầu kiểm thử 64

Bảng 4: Trường hợp kiểm thử chức năng khuyến nghị hành trình 65

Bảng 5: Trường hợp kiểm thử chức năng browse thông tin về 1 đối tượng 65

Bảng 6: Trường hợp kiểm thử chức năng tìm kiếm nhanh 66

Bảng 7: Trường hợp kiểm thử chức năng tìm kiếm phức tạp 66

Bảng 8: Trường hợp kiểm thử chức năng lấy tin 66

Trang 10

DANH MỤC CÁC HÌNH

Hình 1: Thống kê lượng khác du lịch quốc tế tới Việt Nam 2005- 2010 16

Hình 2: Linked Data giai đoạn đầu 25

Hình 3: Linked Data tháng 07/2009 26

Hình 4: Cấu trúc thư mục lưu trữ của Allegrograph 28

Hình 5: Mô hình MVC 30

Hình 6: Khung cảnh sử dụng hệ thống 32

Hình 7: Kiến trúc tổng thể hệ thống 33

Hình 8 : Ontology do Holger Knublauch thiết kế 35

Hình 9: quá trình làm min Ontology của hệ thống 36

Hình 10: Ontology mức cao nhất 36

Hình 11: Các lớp con của Activity 37

Hình 12: Các lớp con của Location 38

Hình 13: Các lớp con của Place 39

Hình 14: Các lớp con của Media 40

Hình 15: Các lớp con của Quality 40

Hình 16: Các lớp con của GeneralClass 40

Hình 17: Các thuộc tính nguyên thủy 41

Hình 18: các thuộc tính đối tượng 43

Hình 19: chức năng khuyến nghị hành trình 46

Hình 20: Chức năng browse thông tin đối tượng 47

Hình 21: Chức năng tìm kiếm phức tạp 47

Hình 22: trang master template của website 49

Hình 23: định nghĩa thành phần banner cho trang web 49

Hình 24: định nghĩa phần header của trang web 50

Hình 25: sử dụng lại thành phần header trong trang khác 50

Trang 11

Hình 27: giao diện trang web 51

Hình 26: thiết kế layout trang web 51

Hình 28: biểu đồ tuần tự chức năng khuyến nghị hành trình 53

Hình 29: biểu đồ tuần tự chức năng browse thông tin về một đối tượng 59

Hình 30: biểu đồ tuần tự chức năng tìm kiếm phức tạp 60

Hình 31: biểu đồ tuần tự chức năng lấy tin 61

Hình 32: Các thành phần của tin Rss 61

Hình 33: biểu đồ tuần tự chức năng tìm kiếm nhanh 62

Hình 34 : Giao diện khai báo sở thích người dùng 67

Hình 35: Giao diện kết quả hành trình khuyến nghị 68

Hình 36: Giao diện chi tiết hành trình khuyến nghị 69

Hình 37: Giao diện browse thông tin về 1 đối tượng 70

Hình 38: Giao diện tìm kiếm nhanh bước 1 70

Hình 39: Giao diện tìm kiếm nhanh bước 2 71

Hình 40: Giao diện tìm kiếm nhanh bước 3 71

Hình 41: Giao diện trang tin tức 71

Hình 42: Giao diện chi tiết tin tức 72

Trang 12

DANH MỤC CÁC THUẬT NGỮ

 Semantic Web: là nền tảng công nghệ cho phép biểu diễn thông tin ở dạng

có ngữ nghĩa và giúp máy tính có thể hiểu được thông tin

 Ontology: tập các khái niệm và quan hệ giữa các khái niệm được định nghĩa

cho một lĩnh vực nào đó nhằm vào việc biểu diễn và trao đổi thông tin để conngười và máy tính có thể hiểu được

 RDF: là khung mô tả các tài nguyên trên internet.

 SPARQL: SPARQL Protocol and RDF Query Language- ngôn ngữ truy vấn

cho RDF

 JSF: framework phát triển các ứng dụng web sử dụng ngôn ngữ Java.

 Web Service: một phương pháp để giao tiếp giữa các thiết bị điện tử trên

cùng một mạng. 

 Triple: các phát biểu bộ 3 gồm các thành phần: Chủ ngữ- Vị ngữ- Tân ngữ

 AllegroGraph: server quản lý ngữ nghĩa do công ty Franz Inc phát triển.

 Linked Data: một dự án của W3C nhằm mô tả một phương pháp của công

bố dữ liệu có cấu trúc

Trang 13

Web ngữ nghĩa là một công nghệ mới đang được nghiên cứu và phát triển, trong

đó nó cho phép thông tin có khả năng liên kết với nhau, đồng thời cho phép biểudiễn thông tin ở dạng máy tính có thể hiều được Do đó việc sử dụng web ngữ nghĩa

áp dụng vào việc phát triển một ứng dụng hỗ trợ du lịch là một điều rất khả thi vàgiúp có thể khắc phục được các ứng dụng phát triển theo cách truyền thống

Chính vì những lý do ở trên mà em đã chọn đề tài “nghiên cứu công nghệ Javakhai thác các kho dữ liệu ngữ nghĩa ứng dụng trong bài toán hướng dẫn du lịch” đểthực hiện trong đồ án tốt nghiệp Ý tưởng của đề tài là dựa vào việc tích hợp cáckho dữ liệu lớn trên thế giới để cung cấp các thông tin ngữ nghĩa, gắn kết và có tínhchất bao phủ cho người du lịch và thực hiện các chức năng thông minh, có khả năngtùy biến đối với từng người dùng như khuyến nghị hành trình du lịch dựa trên sởthích của người dùng

Đồ án nằm trong khuôn khổ của dự án STAAR (Semantic Tourist InformationAccess And Recommending) do TS Cao Tuấn Dũng làm hướng dẫn nhằm xâydựng hệ thống ngữ nghĩa tích hợp dữ liệu, gợi ý và tìm kiếm thông tin phục vụ chobài toán hướng dẫn du lịch thông minh Hiện tại, dự án STARR có 2 module chính

là module trên nền web do em thực hiện và module trên nền android do bạn PhanThanh Hiền, sinh viên lớp Công nghệ phần mềm K51 đảm nhiệm

Nội dung trình bày đồ án của em gồm các phần sau:

Phần mở đầu:

Trong phần này em xin trình bày tóm tắt đề tài được thực hiện trong khuôn khổ

đồ án, các thông tin thêm về môi trường thực hiện đồ án tốt nghiệp

Trang 14

Phần 1: Đặt vấn đề và định hướng giải pháp

 Mục 1: Tổng quan đề tài, đặt vấn đề, khảo sát nhu cầu

Mục này nêu lên thực trạng về ngành du lịch, các yêu cầu cần giải quyết đối vớicác ứng dụng phục vụ du lịch, nêu ra bài toán hỗ trợ du lịch thông minh

 Mục 2: Phương pháp tiếp cận và hướng giải quyết

Trong mục này, em xin trình bày về các phương pháp tiếp cận và hướng giảiquyết các vấn đề đã nêu ở phần trên

 Mục 3: Cơ sở lý thuyết của các kỹ thuật sử dụng trong đề tài

Trong phần này, em xin trình bày tóm tắt về cơ sở lý thuyết các kỹ thuật sử dụngtrong đề tài, bao gồm: công nghệ semantic web, ontology, RDF, truy vấn SPARQL,

dự án Linked Data, server quản lý thông tin ngữ nghĩa AllegroGraph, frameworkJSF 2.0

o Thiết kế các chức năng của website

o Thiết kế giao diện trang web

 Mục 5: Cài đặt

Phần tiếp theo, em xin được trình bày về quá trình cái đặt các chức năng của hệthống phục vụ cho bài toán hỗ trợ du lịch, bao gồm các chức năng:

o Chức năng khuyến nghị hành trình cho người dùng

o Chức năng browse thông tin về một đối tượng

o Chức năng tìm kiếm phức tạp

o Chức năng lấy về tin tức từ các trang tin tức và tham chiếu tới các đối tượng trong hệ thống

o Chức năng tìm kiếm nhanh

 Mục 6: Triển khai và thử nghiệm

Trang 15

Sau khi đã phát triển các chức năng như trong thiết kế, em đã tiến hành triểnkhai hệ thống lên server thật và thực hiện các kiểm thử để đảm bảo hệ thống có thể

đi vào hoạt động trong thực tế và thực hiện đúng như theo các yêu cầu

 Mục 7: Đánh giá

Đánh giá ưu, nhược điểm của hệ thống và khả năng ứng dụng của hệ thống(thông qua thử nghiệm thực tế hoặc mô phỏng), so sánh với các sản phẩm cùng loại

Phần kết luận – đánh giá – hướng phát triển

Trong phần này, em xin tổng hợp đánh giá các kết quả đã đạt được trong quátrình nghiên cứu và thực hiện đồ án Từ đó định ra hướng phát triển tiếp theo cho hệthống

Tài liệu tham khảo

Trang 16

dự kiến du lịch thế giới sẽ tăng trưởng 200% trong vòng 20 năm tới Không nằmngoài xu thế đó, du lịch tại Việt Nam cũng ngày càng phát triển, đặc biệt là trongmảng phục vụ du khách nước ngoài Theo số lssssiệu thống kê của tổng cục du lịchViệt Nam, du lịch Việt Nam tăng đều đặn trong vòng 10 năm qua, mỗi năm tăngtrung bình 5-7%, đặc biệt năm 2010 tỷ lệ tăng này lên tới 34% Tỷ lệ du khách đến

từ các nước Trung Quốc, Mỹ, Hàn Quốc, Nhật Bản chiếm tỷ lệ cao

Hình 1: Thống kê lượng khác du lịch quốc tế tới Việt Nam 2005- 2010

Cũng từ thực trạng đó mà nhu cầu thông tin, tìm hiểu của du khách nước ngoài

về đất nước, con người Việt Nam là rất cao Nắm bắt được điều này các công ty dulịch đã tổ chức, thực hiện các website chuyên về du lịch với rất nhiều thông tinphong phú về mặt nội dung, đa dạng trong cách thể hiện ví dụ: sử dụng các đoạnvăn bản, hình ảnh, âm thanh, video … ví dụ như một số site: http://vnnavi.com.vn ,http://hanoitours.vn, http://skydoor.net … từ đó cho phép du khách có được mộtnguồn thông tin hữu ích trong quá trình tìm hiểu cho chuyến tham quan du lịch củamình

Tuy nhiên, qua khảo sát các website này đều chỉ thuần biểu diễn thông tin chứchưa quan tâm đến mối liên hệ giữa các nội dung với nhau, do vậy mà việc tìm

Trang 17

kiếm, truy cập thông tin trở nên bị phân tách và giới hạn trong các công cụ tìm kiếmtruyền thống Tính mở rộng, tính tích hợp dữ liệu còn hạn chế Ngoài ra, trên cácwebsite du lịch hiện nay còn có một hạn chế lớn là chỉ cung cấp cho người sử dụngcác hành trình du lịch đã được lên lịch sẵn ví dụ như: tour tham quan Hà Nội 1ngày; tour đi Sapa 2 ngày, 3 đêm … chứ chưa quan tâm đến sở thích cụ thể củatừng khách hàng

Xuất phát từ thực tế đó, đề tài này có định hướng xây dựng một hệ thống hỗ trợ

du lịch trong đó các thông tin liên kết với nhau, có tính chất bao phủ, tích hợp thôngtin từ nhiều nguồn thông tin lớn trên thế giới Đồng thời xây dựng một kiến trúc linhhoạt cho phép người dùng có thể dễ dàng truy cập, nhận thông tin mọi lúc mọi nơi,trên nhiều thiết bị Cùng với đó là phát triển các tính năng “thông minh” trong hệthống hướng dẫn du lịch, giao diện tùy biến động theo nội dung thông tin, hướngđến phục vụ yêu cầu cũng như mối quan tâm, sở thích của người dùng

1.2 Các mục tiêu của đề tài với ứng dụng hỗ trợ du lịch thông minh

Từ các khảo sát ở trên, nhóm đã đưa ra các mục tiêu đối với hệ thống nhằm khắcphục các hạn chế ở trên của các giải pháp hiện tại Các mục tiêu đó bao gồm:

Xử lý thông tin dựa trên ngữ nghĩa: thông tin trong hệ thống, về du lịch, địađiểm vui chơi, lễ hội, thắng cảnh, khách sạn, hàng mà người dùng quan tâm, phải có

sự liên kết, tham chiếu trong các mối quan hệ với nhau đồng thời phải được biểudiễn theo cách thức mà máy tính có thể hiểu được để suy diễn và trả lời cho các yêucầu của từng người sử dụng

Đa dạng dữ liệu: ngày nay, khi công nghệ ngày càng phát triển, người sử dụng

đã có trong tay các thiết bị truy cập với cấu hình mạnh mẽ, do vậy họ không chỉ yêucầu dữ liệu ở dạng chữ và hình, mà còn phải ở dạng có tính chất tương tác cao hơnnhư bản đồ số, âm thanh, video…Vì vậy hệ thống cần có lượng thông tin đa dạng vềmặt thể hiện, để hỗ trợ tốt nhất cho người dùng trong việc nắm bắt, thu nhận thôngtin Đồng thời đi kèm với đó là khả năng thu thập, liên kết thông tin từ nhiều nhiềunguồn để tăng tính đa dạng, đầy đủ về nội dung và giá trị của thông tin

Đa môi trường: hiện nay thị trường công nghệ đang phát triển các loại thiết bịcuối cho người sử dụng với số lượng tăng chóng mặt theo từng ngày, thuộc nhiềuchủng loại khác nhau như: điện thoại thông minh, máy tính xách tay, máy tínhbảng… do đó để phục vụ được lượng lớn người dùng hơn thì hệ thống cần triểnkhai trên nhiều nền tảng, có thể tiếp cận được trên nhiều loại thiết bị khác nhau

2 PHƯƠNG PHÁP TIẾP CẬN VÀ HƯỚNG GIẢI QUYẾT

Trang 18

có thể hiểu được thông tin Semantic Web với việc xây dựng nên các khái niệm, các

bộ khung từ vựng để diễn đạt được tri thức một cách tường minh mà không nhậpnhằng, do vậy mà nó mang lại khả năng tìm kiếm thông tin một cách chính xác sovới các phương pháp tìm kiếm từ khóa truyền thống Đồng thời với đó các côngnghệ ontology của Semantic Web cho phép ta có thể tích hợp các dữ liệu có cấutrúc khác nhau từ nhiều nguồn, qua đó mở rộng nguồn thông tin đến vô cùng Chính vì những ưu điểm đó nên nhóm đã chọn Semantic Web làm nền tảng cơ

sở để giải quyết các mục tiêu đặt ra cho hệ thống

 Với mục tiêu xử lý thông tin dựa trên ngữ nghĩa: công nghệ Semantic

Web hoàn toàn có khả năng đáp ứng được mục tiêu này với việc biểu diễn

dữ liệu có ngữ nghĩa, có quan hệ và tham chiếu đến nhau, đồng thời biểu diễn ở dạng máy tính có thể hiểu được Do đó, mang đến khả năng cho hệthống có thể cung cấp dữ liệu phù hợp người dùng, tìm kiếm thông

minh…

 Với mục tiêu đa dạng dữ liệu: hệ thống sử dụng ngôn ngữ biểu diễn ngữ

nghĩa là RDFS ++ với thuộc tính “owl:sameAs” cho phép khả năng tham chiếu các đối tượng dữ liệu trong hệ thống tới các kho dữ liệu ngữ nghĩa lớn khác trên thế giới, đặc biệt là dự án Linked Data với các kho dữ liệu khổng lồ như DBpedia, GeoNames, Flickr,…Ngoài ra, trong quá trình phát triền nhóm còn sử dụng các công nghệ phát triển ứng dụng web tiên tiến như JSF 2.0 để biểu diễn các thông tin đa phương tiện một cách hiệu quả nhất

 Với mục tiêu đa dạng môi trường: để hệ thống có thể chạy được trên

nhiều môi trường, nhiều loại thiết bị, công nghệ web service đã được sử dụng để mang lại khả năng giao tiếp, truyền tải với nhiều nền tảng khác nhau

3 CƠ SỞ LÝ THUYẾT CỦA CÁC KỸ THUẬT SỬ DỤNG TRONG ĐỀ TÀI 3.1 Công nghệ Semantic Web

“Semantic Web”- web ngữ nghĩa là thuật ngữ được đặt ra Lee[1], người phát minh ra World WideWeb và là giám đốc của World Wide WebConsortium (W3C), đây là tổ chức giám sát sự phát triển của các tiêu chuẩn khuyếnnghị cho Semantic Web Ông định nghĩa Web ngữ nghĩa là "một trang web của dữliệu có thể được xử lý trực tiếp và gián tiếp bằng máy."Thuật ngữ "Semantic Web" thường được sử dụng cụ thể hơn để chỉ định dạng vàcông nghệ cấu thành nên nó, bao gồm: Ontology, RDF, SPARQL,… tất cả đềuđược dùng để cung cấp một mô tả chính thức của các khái niệm, thuật ngữ, và cácmối quan hệ trong một lĩnh vực kiến thức nhất định

Trang 19

bởi Tim Berners-3.1.1 Ontology

Ontology là một khái niệm được bắt nguồn từ triết học, nó được nghiên cứu vàphát triển bởi các nhà nghiên cứu về trí tuệ nhân tạo để mô tả một cách hình thứcmột miền lĩnh vực nào đó

1997, Borst đã đưa ra định nghĩa ontology “là sự chi tiết hóa một cách hình thứccác khái niệm có thể chia sẻ với nhau, quan hệ với nhau”[Borst,1997]

Dựa trên 2 định nghĩa này ta có thể định nghĩa tổng quát về ontology:

“Ontology là một tập các khái niệm và quan hệ giữa các khái niệm được địnhnghĩa cho một lĩnh vực nào đó nhằm vào việc biểu diễn và trao đổi thông tin để conngười và máy tính có thể hiểu được”

Tổ chức W3C đã đề ra một ngôn ngữ ontology trên Web (OWL: Web OntolotyLanguage) để xây dựng Sematic Web dựa trên nền tảng của ontology.[13]

Ontology được xây dựng như một từ điển các thuật ngữ một chuyên ngành xácđịnh cùng với mối quan hệ giữa các thuật ngữ này (quan hệ ngang hàng, quan hệcha – con, quan hệ chủ thể - bộ phận…), và được dùng để chia sẻ thông tin trongmột lĩnh vực, mà trong đó cả máy tính và con người đều có thể hiểu được

Trong cuộc sống, vai trò của ontology là giúp cho việc tăng cường khả nănggiao tiếp giữa con người như: chia sẻ tri thức, giải thích các khái niệm một cáchtoàn diện… Còn đối với các chương trình máy tính, ontology giúp cải thiện giaotiếp giữa người dùng và máy tính, do đó nó cũng được nghiên cứu trong các ứngdụng thích nghi ngữ cảnh

Trong lĩnh vực Công nghệ thông tin, Ontology có một số đặc điểm sau:

Ontology được chuẩn hóa, có tính chất hình thức: để máy tính có thể hiểu được

mà không cần đến tác động của con người, các thuật ngữ lưu trữ trong ontologyphải được định nghĩa rõ ràng về ngữ nghĩa hoặc có cơ sở toán học cho ý nghĩa củachúng

Ontology cung cấp khả năng đọc hiểu cho con người: Chúng có thể được pháttriển, chia sẻ, hiểu bởi không chỉ các chương trình máy tính mà còn bởi các ngườidùng, các chuyên gia và người thiết kế ontology về lĩnh vực đó

Trang 20

Ontology là sự toàn diện, bào trùm toàn bộ một lĩnh vực: Chúng được thiết kếvới mục đích có được ý nghĩa đầy đủ của các khái niệm giao dịch được yêu cầu Tất

cả ý nghĩa của các khái niệm được thu tóm trong ontology thì nó có thể được hiểu,thay đổi, kiểm soát bởi bất kì ai có liên quan đến lĩnh vực đó Nó trở thành một mô

tả sống và là một tài nguyên có giá trị khi các hệ thống ứng dụng sử dụng và pháttriển nó

Ontology có thể chia sẻ: Điều này giúp dễ dàng kết hợp các ontology được pháttriển riêng rẽ, sử dụng chúng để cho phép giao tiếp giữa các hệ thống thông tin cầnchia sẽ thông tin dựa trên các khái niệm chung Thông thường một ontology baogồm rất nhiều khái niệm do đó việc xây dựng ontology sẽ mất rất nhiều thời giannếu không sử dụng lại các ontology sẵn có Việc chia sẻ các ontology giúp dễ dàngkết hợp các ontology được phát triển riêng lẽ, sử dụng chúng để cho phép giao tiếpgiữa các hệ thống thông tin cần chia sẻ thông tin dựa trên các khái niệm chung Ví

dụ kết hợp ontology của các đại lý du lịch với ontology về các dịch vụ nhà nghỉ, cácphương tiện giao thông, có thể giúp khách du lịch tìm được hành trình du lịch phùhợp với các yêu cầu về thời gian, giá cả

Một số lý do cần phát triển một Ontology:

 Để chia sẻ những hiểu biết chung về cấu trúc thông tin giữa con người và cácsoftware agent

 Để cho phép tái sử dụng lĩnh vực tri thức

 Để làm cho các giả thuyết về lĩnh vực được tường minh

 Để phân tích lĩnh vực tri thức

3.1.1.2 Vòng đời của ontology

Từ các tài liệu chuyên môn (chủ yếu tồn tại dưới dạng văn bản), các lớp, cácquan hệ giữa các lớp và thuộc tính của các lớp được định nghĩa, cấu trúc hóa vàbiểu diễn trong Ontology Các lớp mới được thêm vào phải được định vị về vị trícủa lớp trong Ontology đã xây dựng trước, và xác thực tính hợp lệ của các thông tinmới trích rút được Trong quá trình tìm kiếm, khai thác ontology, các tri thức mớiđược suy diễn từ cơ sở tri thức sinh ra thông tin có ích mới, phục vụ nhu cầu của hệthống khai thác Nhờ đó, ontology được nâng cấp dần dần

3.1.1.3 Phương pháp xây dựng ontology

Qui trình xây dựng phát triển ontology gồm có nhiều bước,hiện nay chưa cómột qui tắc thống nhất xây dựng ontology.Qua quá trình tìm hiểu và tham khảo một

số phương pháp cụ thể của các chuyên gia xây dựng ontology, chúng ta có tiến hànhtheo quy trình phát triển gồm 7 bước do Stanford Center for Biomedical InformaticsResearch đưa ra (đây là nhóm phát triển phần mềm Protégé để trình diễn và soạnthảo Ontology)

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

Trang 21

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 đếnlĩnh vực, phạm vi nào Quá trình khai thác, quản lý và bảo trì ontology được thựchiệ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ầngmiề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ựcnhấ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ựngontology, cần xét đến khả năng sử dụng lại các ontology đã có Nếu có thể sử dụnglại một phần các ontology đã có, 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ựngthà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ảiliệt kê các thuật ngữ, để xác định ngữ nghĩa cho các thuật ngữ đó, cũng như cânnhắ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ầnnà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 đượcthuậ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ủaontology 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 (đồng nghĩa, hay đa ngôn ngữ) Ngoài ra không phải thuật ngữ nào cũng mangtí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

Có 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ớptổ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

Trang 22

như : Kỹ sư, Công nhân, Bác sỹ,… Lớp Kỹ sư cũng có thể chuyên biệt hóabằng cách tạo ra các lớp con như Kỹ sư CNTT, Kỹ sư điện, Kỹ sư cơ khí, …

 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áckhá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ânviên lễ tân, nhân viên vệ sinh, nhân viên kỹ thuật Sau đó tạo ra một lớpchung 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ướilê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ânviê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

3.1.1.4 Các phần tử cơ bản

Class

Một Class được định nghĩa bao gồm 2 thành phần: tên và các ràng buộc Mỗithành phần expression trực tiếp trong định nghĩa của 1 class có nhiệm vụ đưa thêmcác ràng buộc cho các instances của class được định nghĩa Một instances bất kỳ củaclass này phải thỏa mãn tất cả các ràng buộc đó

Để tạo cấu trúc phân cấp cho các class, sử dụng quan hệ rdfs:subClassOf Nếu X

là một subclass của Y, thì tất cả các instance của X cũng là một instance của Y.Quan hệ rdfs:subClassOf có tính bắc cầu Nếu X là một subclass của Y và Y là mộtsubclass của Z thì X cũng là một subclass của Z

<Lake

rdf:about="#Hoan-Kiem-lake" />

Property:

Trang 23

Một property là một quan hệ 2 ngôi Có 2 loại properties:

 Datatype properties: property có dữ liệu là các kiểu nguyên thủy như string, int, time…

 Object properties: mối quan hệ giữa hai instance của hai class

Ví dụ định nghĩa sau:

<owl:ObjectProperty rdf:ID="madeFromGrape">

<rdfs:domain rdf:resource="#Wine"/>  định nghĩa thuộc class nào

<rdfs:range rdf:resource="#WineGrape"/>  định nghĩa loại dữ liệu

</owl:ObjectProperty>

RDF (Resource Description Framework) là một “bộ khung” được sử dụng để

mô tả các nguồn tài nguyên trên Internet RDF cung cấp một mô hình dữ liệu, vàmột cú pháp đơn giản sao cho các hệ thống độc lập có thể trao đổi và sử dụng nó.RDF được thiết kế sao cho hệ thống máy tính có thể hiểu được và có thể đọcđược thông tin, chứ không phải để trình bày dữ liệu cho người dùng

Là một thành phần của Semantic Web, được đặt trên XML, RDF sử dụng cúpháp của XML để biểu diễn thông tin, điều này có nghĩa là các tài liệu RDF đượcviết bằng XML Ngôn ngữ XML dùng để biểu diễn thông tin trong RDF được gọi làRDF/XML Thông qua định dạng này, các thông tin trong RDF có thể được trao đổi

dễ dàng giữa các hệ thống máy tính cũng như các hệ điều hành hay các ngôn ngữlập trình ứng dụng khác nhau

RDF mô tả các nguồn tài nguyên bởi các phát biểu bộ ba (statement triple) gồm:subject- chủ thể, property- thuộc tính và giá trị của thuộc tính là object- đối tượng.subject là các định danh tài nguyên- URI (Uniform Resource Identifier)

Ví dụ một tài liệu mô tả 1 địa điểm hồ Hoàn Kiếm như sau như sau:

<?xml version="1.0"?>

<RDF>

<Description about=" http://hust.se.vtio.owl#Hoan-Kiem-lake">

<Name>Hoan Kiem lake</Name>

<Location>Hanoi</Location>

</Description>

</RDF>

Trang 24

Tài liệu này mô tả về đối tượng “Hoan-Kiem-lake” có định danh URI là

“http://hust.se.vtio.owl#Hoan-Kiem-lake” với thuộc tính “Name” có giá trị là “HoanKiem lake” và thuộc tính “Location” có giá trị là “Hanoi”

SPARQL (SPARQL Protocol and RDF Query Language) là một ngôn ngữ truyvấn thông tin trong RDF được tổ chức W3C phát triển.Một số tính năng chính của SPARQL:

 Trích thông tin từ các dạng của URI

 Trích thông tin từ các đồ thị con

 Xây dựng đồ thị RDF mới dựa trên thông tin trong đồ thị truy vấn

Hai mệnh đề chính trong SPARQL là Select và Where SPARQL cũng cung cấpmột số phép toán tìm kiếm theo điều kiện như: Phép hội (UNION), chiếu, phép lọcphân biệt (DISTINCT), mệnh đề sắp xếp kết quả tìm kiếm (ORDER BY) và mệnh

đề giới hạn số lượng kết quả trả về (LIMIT)

Một câu truy vấn SPARQL tìm kiếm “các địa điểm gần hồ Hoàn Kiếm và cóphong cách kiến trúc Pháp” như sau

PREFIX vtio:<http://hust.se.vtio.owl#>

SELECT ?place { ?place rdf:type vtio:Place

?place vtio:nearby vtio:Hoan-Kiem-lake }

3.2 Linked Data

Linked Data là một dự án của W3C nhằm mô tả một phương pháp của công bố

dữ liệu có cấu trúc, để nó có thể được liên kết với nhau và trở nên hữu íchhơn. Nó được xây dựng trên công nghệ tiêu chuẩn web, chẳng hạn như HTTP vàURI - nhưng thay vì sử dụng chúng để phục vụ các trang web dành cho độc giả conngười, nó mở rộng cho họ để chia sẻ thông tin mộtcách có thể được đọc tự độngbằng máy tính. Điều này cho phép dữ liệu từ các nguồn khác nhau sẽ được kếtnối và truy vấn. Đây là một thuật ngữ do Tim Berners-Lee, giám đốc của WorldWide Web Consortium, đặt ra trong thiết kế một thảo luận về vấn đề xung quanhcác dự án Web ngữ nghĩa

Mục tiêu của W3C Linked Data là mở rộng Web với một dữ liệu chung bằngcách xuất bản nhiều bộ dữ liệu mở như RDF trên web và bằng cách thiết lập mốiliên kết giữa các RDF dữ liệu từ các nguồn dữ liệu khác nhau

RDF liên kết cho phép bạn để di chuyển từ một mục dữ liệu trong một nguồn dữliệuđể dữ liệu liên quan đến các mục bên trong các nguồn khác bằng cách sử

Trang 25

dụng mộttrình duyệt Web ngữ nghĩa. Liên kết RDF cũng có thể được tiếp theo

là thu thập thông tin của công cụ tìm kiếm Semantic Web, có thể cung cấp tìmkiếm tinh vi và khả năng truy vấn trên dữ liệu thu thập thông tin. Khi kết quả tìmkiếm sẽ được cấu trúc dữ liệu và không chỉ liên kết đến các trang HTML, chúng cóthể được sử dụng trong các ứng dụng khác

Vào thời điểm ban đầu, Linked Data mới chỉ có số lượng ít các bộ dữ liệu.Nhưng đến tháng 9/2010, Linked Data đã có 203 bộ dữ liệu về nhiều lĩnh vực khácnhau, bao gồm trên 25 tỉ bộ ba RDF, được liên kết với nhau bởi khoảng 395 triệuliên kết RDF

Hình 2: Linked Data giai đoạn đầu

Trang 26

Hình 3: Linked Data tháng 07/2009Một vài các kho dữ liệu của Linked Data

 Các dự án Bio2RDF, một tập bản đồ web ngữ nghĩa của các kiến thức hậu di truyền về con người và chuột, đã phát hành 27 tập hợp dữ liệu liên quan đến

y tế, sinh học, gen (trên 23 tỉ triple). Các tập hợp dữ liệu có sẵn thông qua Virtuoso được tích hợp trong thiết bị đầu cuối SPARQL và như Liên Kết dữ liệu. 

 CrunchBase như Linked Data, với SPARQL đầu cuối. Với 11.000 người, 10.000 công ty, 1.000 sản phẩm, thường xuyên cập nhật, phát triển. Ví dụ: iPhone, Yahoo, Sergey Brin. 

 DailyMed hành liên kết dữ liệu của các loại thuốc bán trên thị trường cùng với nền chung về cấu trúc hóa học của hợp chất và mục đích điều trị của nó, chi tiết về dấu hiệu lâm sàng của hợp chất, dược và cách sử dụng, chỉ định, cảnh báo, phòng ngừa, phản ứng bất lợi, dùng quá liều, và tư vấn bệnh nhân. 

 Data.gov trang web chính thức của chính phủ Mỹ tạo ra hơn 1000 bộ dữ liệu chính phủ Hoa Kỳ có sẵn trên Linked Data (khoảng 6,4 tỷ triple). 

Một số kho ứng dụng ngữ nghĩa mà hệ thống hướng tới khai thác

thông tin cụ thể tại: http://dbpedia.org/

Trang 27

 Geoname : Là kho dữ liệu về các vị trí địa lý trên toàn thế giới Thông tin

chi tiết tại: http://www.geonames.org/

 Foaf project (Friends of a friend): Là dự án về tổng hợp thông tin về con

người và chia sẻ nó trên mạng toàn cầu

Cách thức khai thác, sử dụng các nguồn dữ liệu ngữ nghĩa phần tán thường có 3dạng chính

 Thông qua web view (truy cập online): Tổ chức xây dựng kho dữ liệu sẽ tạo một giao diện web cho phép người dùng có thể tra cứu, tìm kiếm thông tin trong kho dữ liệu của mình Đây là cách cơ bản mà thông thường các kho dữ liệu phân tán đều cung cấp Với cách thức này, kết quả trả về được xử lý hoàn toàn bằng con người (nhìn kết quả thể hiện trên web view) Nếu muốn

tự động xử lý dữ liệu trả về người dùng phải vất vả trong việc phân tích dữ liệu html (hoặc xml) trả về để lấy những dữ liệu cần thiết cho ứng dụng của mình

 Thông qua web service (truy cập online): Với cách này, tổ chức xây dựng kho dữ liệu sẽ xây dựng luôn các web service cung cấp cho người dùng các method để truy cập, lấy thông tin và thậm chí là thay đổi thông tin kho dữ liệu của mình

 Thông qua các file dữ liệu (truy cập offline): Đây là cách đơn giản nhất để làm việc với các nguồn dữ liệu phân tán Người dùng chỉ cần lên trang chủ của các kho dữ liệu, download file dữ liệu về để có thể sử dụng Tuy nhiên cách sử dụng này lại mắc một nhược điểm lớn đó là vì dữ liệu ở các kho dữ liệu này thường rất là đồ sộ, nếu không muốn nói là khổng lồ cho nên việc tải

về sẽ mất rất nhiều thời gian Thêm vào đó, thường 1 ứng dụng không thể sử dụng hết tất cả dữ liệu, nên việc download hết dữ liệu vào hệ thống của mình

sẽ làm cho hệ thống bị dư thừa dữ liệu và trở nên chậm chạp Giải pháp cho tình trạng này là dữ liệu sau khi download về sẽ thông qua một hệ thống back-end để lọc tách và lựa chọn những phần có ích cho ứng dụng, phần cònlại có thể xóa đi

3.3 AllegroGraph

AllegroGraph server do Franz Inc phát triển nhằm tổ chức, quản lý dữ liệu ngữnghĩa theo dạng các triples Trong hệ thống của mình em sẽ sử dụng AllegroGraphserver như là một hệ quản trị dữ liệu ngữ nghĩa Mọi thao tác với dữ liệu sẽ thôngqua các hàm api của AllegroGraph hỗ trợ truy vấn SPARQL

Cách tổ chức dữ liệu trên AllegroGraph server

Trang 28

Hình 4: Cấu trúc thư mục lưu trữ của Allegrograph

 Catalog: Là một list các kho chứa (respository)

 Respository: là một bộ sưu tập các tripes dưới 1 catalog Được đánh chỉ số trên đĩa cứng

 Context: Nhóm các triples theo một tiêu chí nhất định nào đấy

Các đặc điểm cần lưu ý lúc sử dụng AllegroGraph server trong hệ thống:

 AllegroGraph server chỉ chạy trên Linux 64 bit

 Xử lý giao dịch trên AllegroGraph vẫn đảm bảo tính ACID (Nguyên tố - Nhất quán – Độc lập – Bền vững)

 Hỗ trợ các truy vấn: SPARQL, RDFS++, PROLOG

 Hỗ trợ lập trình trên nhiều môi trường: Java, HTTP, Python, Lisp

Các bước cài đặt và sử dụng:

 Cài đặt AllegroGraph server 4.2:

 Download AllegroGraph server 4.2

/home/joe/tmp/ag42/lib/agraph.cfg start AllegroGraph 4.2 server

 Test thông qua web view: http://localhost:10035

 Import dữ liệu vào hệ thống:

Trang 29

o Có thể sử dụng giao diện web view để add thêm dữ liệu từ các file Triples hoặc RDF nhỏ.

N-o Với dữ liệu lớn thì sẽ sử dụng phương pháp chi nhỏ file và lN-oad từng file một (Chúng ta sẽ cài đặt một hệ thống back-end để làm việc này)

 Truy vấn từ client sử dụng API có sẵn:

JSF được định hướng để tạo các ứng dụng Web (không chỉ là các trang web).JSF cho phép lập trình viên tập trung vào việc lập trình Java mà không cần nhiều xử

lý với các đối tượng request, session, hoặc các tệp tin XML phức tạp Với JSF, việclập trình thực hiện nhanh hơn so với các framework web cho Java khác

sử dụng các thành phần giao diện UI ở tầng hiển thị- view Mô hình MVC cho phépphân tách nhiệm vụ của các lập trình viên với nhiệm vụ phát triển các business logic

và người thiết kế giao diện cho ứng dụng

Trang 30

Hình 5: Mô hình MVC

Ưu điểm của JSF

 Tách biệt hoàn toàn giữa lớp xử lý và lớp hiển thị

 Kiểm soát tính có trạng thái (statefulness) ở mức thành phần

 Các sự kiện dễ dàng được liên kết với mã phía server

 Sử dụng các khái niệm thành phần UI và tầng Web (Web-tier) quen thuộc

 Cung cấp nhiều control của nhà sản xuất phần mềm đã tiêu chuẩn hóa

 Sự hỗ trợ IDE rất tốt

Tuy nhiên do JSF được phát triển bởi giới hàn lâm mà không tham khảo cáckinh nghiệm phát triển trong thực tế nên JSF trở nên rất khó để sử dụng và mắc phảinhững khuyết điểm sau đây:

 Thiếu tích hợp AJAX

 Sử dụng các khai báo rất rối rắm trong các file xml

 Rất khó để tùy biến các control

Nắm bắt được các khuyết điểm trên, JSF 2.0 đã được ra đời với sự kết hợp kinhnghiệm trong quá trình thực tế của các chuyên gia phát triển hàng đầu về JSF 1.JSF 2.0 sử dụng Facelets, một thành phần mở rộng của JSF 1 được phát minhbởi Jacob Hookom và hiện tại đã được đưa vào đặc tả của JSF 2.0 Facelets đượcphát triển nhằm thay thế các trang JSP truyền thống, cung cấp khả năng có thể tạotemplate từ phía server do đó cho phép tạo ra một trang web từ các trang thành phầnriêng biệt, qua đó tối đa hóa việc sử dụng lại code Facelets được thiết kế với tưtưởng của JSF, cung cấp khai báo ở tầng giao diện của JSF với các cấu trúcXHTML chuẩn Các tag dành cho việc template hóa của Facelets:

 Ui:define

 Ui:insert

 Ui:include

 Ui:param

Trang 31

Framework JSF 2.0 hỗ trợ rất tốt cho nhà phát triển ứng dụng web trên các mặtsau:

 Sử dụng các tag đơn giản để thực hiện các request AJAX với các thư viện có sẵn mà không cần phải lập trình về JavaScript

 Tạo và chia sẻ template cực tốt so với JSF 1.0

 Sử dụng các annotation đơn giản để thay thế cho các dòng cấu hình trong filefaces-config.xml

 Tích hợp với facelets

 Khả năng bookmark trang kết quả

 Dễ dàng tùy biến các component hơn

<ui:insert name=”header”>Default header</ui:insert>

<ui:insert name=”content”>Default content</ui:insert>

<ui:insert name=”footer”>Default footer</ui:insert>

Trang 32

PHẦN II: CÁC KẾT QUẢ ĐẠT ĐƯỢC

4 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

4.1 Thiết kế kiến trúc hệ thống

Khung cảnh sử dụng hệ thống

Hình 6: Khung cảnh sử dụng hệ thống

Trang 33

Lớp tích hợp dữ liệu

DBpedia GeoNames

Annotator

N-triples files VTIO Ontology + N-triples file

Lớp quản lý dữ liệu AllegroGraph server

Lớp chức năng

Lớp giao tiếp

Web Service for Client

Lớp khách Web client Android Client

 Lớp quản lý dữ liệu: sau khi được tích hợp, dữ liệu ngữ nghĩa sẽ được nhậpvào server AllegroGraph, từ đó sẽ được truy xuất, thao tác theo các hàm APIcủa AllegroGraph

 Lớp chức năng: ở đây các thao tác chức năng của hệ thống như: khớp nốiprofile của người dùng để gợi ý hành trình du lịch, truy vấn SPARQL…được thực hiện

Hình 7: Kiến trúc tổng thể hệ thống

Trang 34

 Lớp giao tiếp: với những người dùng truy cập qua điện thoại thông minh Android thì việc truy cập sẽ thông qua web service để đảm bảo cho tính thuần nhất của hệ thống

 Lớp khách: cho phép người sử dụng có thể truy cập, sử dụng hệ thống trên nền tảng web và điện thoại Android

4.2 Thiết kế ontology

Phương pháp chung trong việc xây dựng ontology thường được bắt đầu bằngviệc tham khảo các ontology khác cùng lĩnh vực trên thế giới, bởi cấu trúc ontologycủa ontology thường 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 là tầng cao nhất

và có tính tái sử dụng rất cao Ngoài ra, hiện nay các ontology chuẩn về các miềnlĩnh vực khác nhau cũng đã được xây dựng trên thế giới bởi nhiều chuyên gia, dovậy việc sử dụng lại một phần ontology đã có cũng sẽ tiết kiệm rất nhiều công sức.Trên tinh thần đó, trong quá trình xây dựng ontology, nhóm cũng có tham khảomột số ontology trong lĩnh vực du lịch cụ thể ở đây là Travel ontology v1.0 củaHolger Knublauch

Ontology của Holger Knublauch có thể tải tại địa chỉ:

 http://protege.cim3.net/file/pub/ontologies/travel/travel.owl

Các lớp trong ontology do Holger Knublauch thiết kế như sau:

Trang 35

Hình 8 : Ontology do Holger Knublauch thiết kếOntology này chứa 3 lớp chính:

 Accommodation: dùng để mô tả các chỗ ăn nghỉ

 Activity: dùng để mô tả các hoạt động

 Destination: dùng để mô tả các địa điểm

Triển khai từ các lớp trên để có các lớp chi tiết hơn Nhìn chung đây là mộtontology khá đơn giản, tuy nhiên đã giúp ích nhiều cho việc có cái nhìn tổng quan

về các khái niệm liên quan đến 1 tour du lịch Tuy nhiên ontology này có một sốkhái niệm không áp đụng được ở trong hệ thống STARR do khác biệt về địa lý cũngnhư văn hóa, ví dụ: Surfing (lướt sóng), Safari (đi săn)…

Ontology )

Bước tiếp theo là xác định các lớp và phân lớp của các lớp, bước này có nhiềucách tiếp cận, và nhóm đã chọn phương pháp làm mịn dần từ trên xuống Được bắt

Trang 36

biệt hóa các khái niệm đó, ví dụ: với lớp Place ta chuyên biệt bằng cách tạo các lớpcon của nó như: các tài nguyên du lịch (TouristResource), nơi ở (Accomodation),trung tâm mua bán (CommercialResource), nơi phục vụ ăn uống (DiningService),nơi chăm sóc sức khỏe (HealthService)…Ta cứ tiếp tục lặp lại quá trình làm mịnđối với các lớp con này cho đến khi đạt được yêu cầu về độ chi tiết.

Hình 9: quá trình làm min Ontology của hệ thốngOntology này luôn ở trạng thái mở để có thể bổ sung, cập nhật ngay các kháiniệm cần thiết trong quá trình phát triển hệ thống

4.2.2.1 Các lớp khái niệm

Các lớp khái niệm ở mức cao nhất

Hình 10: Ontology mức cao nhất

 Activity: Là lớp mô tả các hoạt động liên quan đến du lịch như các hoạt

động lễ hội, vui chơi…

Thing

Place Activity

Tourist Resource Accomodation Commercial Resource

Trang 37

 Place: Là lớp mô tả các địa điểm liên quan đến du lịch

 Location: Là lớp mô tả địa chỉ của một địa điểm như số, đường, phường,

quận, thành phố…

 Point: Là lớp mô tả một tọa độ địa lý kinh độ, vĩ độ của một địa điểm

 Profile: Là lớp mô tả hồ sơ du lịch của khách, từ đây để có thể có căn cứ lên

hành trình phù hợp cho khách du lịch sau này

 Quality: Mô tả đánh giá chất lượng của các tài nguyên du lịch như nhà hàng,

khách sạn Đồng thời cho biết phong cách của một địa điểm

 Media: Là lớp mô tả các tài nguyên đa phương tiện liên quan đến một địa

điểm du lịch nào đó

 GeneralClass: Là lớp được xây dựng nên nhằm mục đích gộp các lớp phụ

phục vụ, hỗ trợ làm rõ cho các lớp khái niệm chính Tránh việc làm loãngontology khi tách riêng chúng ra

 PlanExecution: Lớp mô tả loại hình du lịch như du lịch theo nhóm, du lịch

có trẻ em đi cùng, hay đi du lịch cùng đối tác …

 Time: Mô tả về thời gian

Các lớp khái niệm ở mức thấp

Các lớp con của lớp Activity

Hình 11: Các lớp con của Activity

 Cuisine: Mô tả các hoạt động ẩm thực.

 Event: Các sự kiện đặc biệt, chỉ xảy ra trong 1 khoảng thời gian nhất định.

 SightSeeing: Các hoạt động tham quan hàng ngày.

 Sport: Các hoạt động thể thao

Các lớp con của Location:

Trang 38

Hình 12: Các lớp con của Location

 AddressNumber: Dùng mô tả số nhà, số đường …v.v.

 City: Mô tả thành phố

 Country: Mô tả một quốc gia

 District: Mô tả một quận, huyện

 Province: Mô tả một tỉnh

 Town: Mô tả một thị trấn

 Village: Mô tả xã, phường

Ngày đăng: 17/07/2023, 09:20

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]  Berners-Lee, Tim; James Hendler and Ora Lassila (May 17, 2001). "The Semantic Web". Scientific American Magazine. Retrieved March 26, 2008 Sách, tạp chí
Tiêu đề: TheSemantic Web
[2] Bergur Pasll Gylfason, “The future of the web – the semantic web”, REYKJAVIK UNIVERSIT, 25-March 2010 Sách, tạp chí
Tiêu đề: The future of the web – the semantic web
[5] Shih-Chun Chou, Wen-Tai Hsieh, Fabien L. Gandon and Norman M. Sadeh –“Semantic Web Technologies for Context-Aware Museum Tour Guide Application” Sách, tạp chí
Tiêu đề: Semantic Web Technologies for Context-Aware Museum Tour GuideApplication
[6] Chris van Aart, Bob Wielinga and Willem Robert van Hage – “Mobile cultural heritage guide: location-aware semantic search” Sách, tạp chí
Tiêu đề: Mobile culturalheritage guide: location-aware semantic search
[9] Heiko Haller, “QuiKey – a Demo”, SemSearch 2008, CEUR workshop proceedings, ISSN 1613-0073, June 2008 Sách, tạp chí
Tiêu đề: QuiKey – a Demo
[3] Sean B. Palmer, Semantic web: introduction http://infomesh.net/2001/swintro/ [4] W3schools, Semantic web tutorial,http://www.w3schools.com/semweb/default.asp Link
[8] Franz inc, Allegrograph - http://www.franz.com/agraph/allegrograph/ Link
[7] M. Dorigo and T. Stützle. Ant Colony Optimization, MIT Press,. Cambridge, MA, 2004 Khác
[10] Practical Semantic Web and Linked Data Applications, Mark Watson, Aug 2010 Khác

HÌNH ẢNH LIÊN QUAN

Hình  1: Thống kê lượng khác du lịch quốc tế tới Việt Nam 2005- 2010 - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 1: Thống kê lượng khác du lịch quốc tế tới Việt Nam 2005- 2010 (Trang 16)
Hình  2: Linked Data giai đoạn đầu - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 2: Linked Data giai đoạn đầu (Trang 25)
Hình  3: Linked Data tháng 07/2009 - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 3: Linked Data tháng 07/2009 (Trang 26)
Hình  4: Cấu trúc thư mục lưu trữ của Allegrograph - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 4: Cấu trúc thư mục lưu trữ của Allegrograph (Trang 28)
Hình  6: Khung cảnh sử dụng hệ thống - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 6: Khung cảnh sử dụng hệ thống (Trang 32)
Hình  7: Kiến trúc tổng thể hệ thống - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 7: Kiến trúc tổng thể hệ thống (Trang 33)
Hình  8 : Ontology do Holger Knublauch thiết kế - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 8 : Ontology do Holger Knublauch thiết kế (Trang 35)
Hình  9: quá trình làm min Ontology của hệ thống - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 9: quá trình làm min Ontology của hệ thống (Trang 36)
Hình  13: Các lớp con của Place - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 13: Các lớp con của Place (Trang 39)
Hình  17: Các thuộc tính nguyên thủy - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 17: Các thuộc tính nguyên thủy (Trang 41)
Bảng 1: Chi tiết các thuộc tính nguyên thủy Các thuộc tính đối tượng - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
Bảng 1 Chi tiết các thuộc tính nguyên thủy Các thuộc tính đối tượng (Trang 42)
Hình  18: các thuộc tính đối tượng - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 18: các thuộc tính đối tượng (Trang 43)
Hình  19: chức năng khuyến nghị hành trình - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 19: chức năng khuyến nghị hành trình (Trang 46)
Hình  22: trang master template của website - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 22: trang master template của website (Trang 49)
Hình  24: định nghĩa phần header của trang web - Xây dựng hệ thống tìm kiếm thông tin và gợi ý hành trình dựa ngữ nghĩa trên nền web
nh 24: định nghĩa phần header của trang web (Trang 50)

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

TÀI LIỆU LIÊN QUAN

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

w