3.3.3
Thiết kế kiến trúc hệ thống
Kiến trúc hệ thống
Ứng dụng tra cứu thông tin du lịch là một ứng dụng thông minh được phát triển dựa
trên Ontology và công nghệ web ngữ nghĩa. Hình 3.1 mô tả kiến trúc của hệ thống [14].
Hình 3.1: Kiến trúc hệ thống [14]
User Interface
Ajax Engine
Web Server
Knowledge database
eTourism
Ontology
Jena Server
JavaScript
Call
HTML+CSS
data
JSON data
HTTP request
44
Hệ thống tra cứu thông tin du lịch được xem như là một kiến trúc hai cấp, bao gồm
một trình duyệt và một hệ thống phía máy chủ. Hệ thống phía máy chủ chứa Ontology
là cơ sở tri thức, Jena Server và Webserver. Ứng dụng khách trình duyệt bao gồm công
cụ Ajax và giao diện người dùng. Các hoạt động phía máy khách hình thành các truy
vấn người dùng được biên dịch bởi các giao diện người dùng; Các truy vấn này được
gửi đến Ajax Engine. Ajax Engine gửi một yêu cầu HTTP đến máy chủ, yêu cầu này
được nhận bởi Web Server, máy chủ này sẽ chuyển tiếp yêu cầu đến Jena Server, Jena
Server lần lượt truy vấn Ontology, kết quả được gửi lại từ máy chủ đến máy khách và
sau đó được hiển thị qua giao diện người dùng. Chi tiết về các công nghệ này được đưa
ra sau đây.
⮚ Ajax (Asynchronous JavaScript and XML)
Ajax là sự kết hợp của các công nghệ cho phép phát triển các ứng dụng web tương
tác. Thiếu sót hiện tại của các ứng dụng web tiêu chuẩn là mỗi khi người dùng đặt một
yêu cầu, một yêu cầu HTTP sẽ được gửi đến máy chủ và khi máy chủ phản hồi, toàn bộ
trang sẽ được tải lại. Ajax khắc phục điều này bằng cách thêm một công cụ Ajax giữa
người dùng và máy chủ. Công cụ Ajax gửi các phần nhỏ của dữ liệu đến máy chủ chứ
không phải toàn bộ nội dung của trang. Điều này giúp loại bỏ nhu cầu tải lại toàn bộ
trang mỗi khi máy chủ phản hồi yêu cầu.
⮚ Webserver
Webserver được sử dụng để nhận, diễn giải và tạo các tài liệu JSON một cách linh
động. Các tài liệu JSON được tạo sẽ được sử dụng cho mục đích trao đổi dữ liệu giữa
các ứng dụng. Webserver nhận dữ liệu qua HTTP và tạo đầu ra ở định dạng JSON.
Trong mô hình ứng dụng này, Webserver nhận yêu cầu HTTP dưới dạng truy vấn từ
trình duyệt, truy vấn được xử lý và kết quả được chuyển tiếp trở lại trình duyệt dưới
dạng tài liệu JSON.
⮚ Jena Server
Jena Server là phần mềm kết nối trình lý luận, Ontology và giao diện người dùng.
Jena là một khung công tác Java để xây dựng các ứng dụng web ngữ nghĩa; nó là mã
nguồn mở và đã được phát triển bởi HP Labs. Jena bắt đầu như một API RDF, nó đã
được mở rộng với API nhận biết OWL và kết nối cơ sở dữ liệu và truy vấn SPARQL.
Jena có bốn hệ thống con: công cụ truy vấn, giao diện cơ sở dữ liệu, công cụ suy
luận và quản lý Ontology. Kiến trúc của Jena cho phép các bộ lý luận bên ngoài được
tích hợp vào các mô hình Jena. Các từ khóa tra cứu của người dùng được gửi qua giao
diện người dùng tới Jena Server, mã Java chuyển các từ khóa này thành câu lệnh truy
vấn SPARQL và truy vấn Ontology, sau đó kết quả truy vấn được gửi lại và hiển thị cho
người dùng. Câu lệnh dưới đây là một ví dụ về mã SPARQL để thực hiện truy vấn trên
Ontology du lịch thông qua Jena Server. Truy vấn này truy xuất các khách sạn 4 sao tại
Quận Hoàn Kiếm có đánh giá > 4.5 và ở gần Phố cổ Hà Nội.
45
PREFIX etourism:
SELECT ?subject ?tengoi ?diachi ?dienthoai ?trangweb ?danhgia ?soluongdanhgia
WHERE { ?subject
rdf:type etourism:Khách_sạn, etourism:Quận_Hoàn_Kiếm;
etourism:hang_sao "4_sao";
etourism:o_gan etourism:HNI_Phố_cổ_Hà_Nội;
etourism:ten_goi ?tengoi;
etourism:dia_chi ?diachi;
etourism:so_dien_thoai ?dienthoai;
etourism:trang_web ?trangweb;
etourism:danh_gia ?danhgia;
etourism:so_luong_danh_gia ?soluongdanhgia;
FILTER (?danhgia >4.5)
}
Knowledge database
eTourism Ontology là kho tri thức trong lĩnh vực du lịch đã được tổng hợp và lưu
trữ dưới dạng file owl và được tải vào cơ sở dữ liệu.
Chia sẻ với bạn bè của bạn: |