Chúng ta có thể hình dung một số lợi ích của Web ngữ nghĩa so với Web hiện tại ở một số điểm sau : Máy tính có thể hiểu được thông tin trên Web: Web ngữ nghĩa định nghĩa các khái niệm v
Trang 1Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
-
NGUYỄN CÔNG BẰNG
WEB NGỮ NGHĨA VÀ ỨNG DỤNG TRONG TRA CỨU
VĂN HÓA ẨM THỰC TẠI HẢI PHÒNG
Chuyên nghành : Khoa học máy tính
Mã số : 60.48.01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: PGS.TS ĐOÀN VĂN BAN
Thái nguyên – Năm 2014
Trang 2
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Mục lục
Mở đầu 4
CHƯƠNG 1: GIỚI THIỆU VỀ WEB NGỮ NGHĨA 8
1.1 Cách thức tìm kiếm thông tin của bộ máy tìm kiếm (Search engine) 8
1.1.1 Một số bộ tìm kiếm thông dụng 8
1.1.2 Cách thức tìm kiếm 9
1.1.3 Nguyên lý hoạt động 11
1.1.4 Hạn chế của web thông thường 11
1.2 Web ngữ nghĩa 12
1.2.1 Sự ra đời của Web ngữ nghĩa 12
1.2.2 Lợi ích của Web ngữ nghĩa 13
1.2.3 Các hướng nghiên cứu chính trong lĩnh vực dịch vụ web ngữ nghĩa 13
1.3 Kiến trúc phân tầng của Web ngữ nghĩa 14
1.3.1 Kiến trúc phân tầng 14
1.3.2 Vai trò của các tầng 14
1.4 RDF – Nền tảng của Web ngữ nghĩa 18
1.4.1 Giới thiệu 18
1.4.2 Các khái niệm cơ bản 18
1.4.3 Cấu trúc RDF/XML 19
1.4.4 RDFS collection 20
1.4.5 RDFS schema 22
1.5 Truy vấn dữ liệu trong RDF 26
1.5.1 Giới thiệu 26
1.5.2 Cú pháp truy vấn 26
1.5.3 Rằng buộc dữ liệu 28
rdfs:ConstraintResource 29
rdfs:ConstraintProperty 29
rdfs:range 29
Trang 3Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
rdfs:domain 30
1.6 Tổng kết chương 1 32
CHƯƠNG 2: CÔNG NGHỆ XÂY DỰNG WEB NGỮ NGHĨA 33
2.1 Ontology và ngôn ngữ web OWL 33
2.1.1 Khái niệm Ontology 33
2.1.2 Thành phần của Ontology 33
2.1.3 Phương pháp xây dựng Ontology 35
2.1.4 OWL (Ontology Web Language) 35
2.2 Các bước xây dựng Ontology 37
2.3 Công cụ xây dựng Ontology 39
2.3.1 Công cụ Sesame 39
2.3.2 Công cụ Chimaera 40
2.3.3 Công cụ Jena 40
2.3.4 Công cụ Protégé 40
2.4 Thư viện phát triển ứng dụng 42
2.4.1 Thư viện SemWeb 42
2.4.2 Thư viện mã nguồn mở OWLDotNetAPI 42
2.4.3 Thư viện mã nguồn mở dotNetRDF 42
2.5 Tổng kết chương 2 43
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG TRA CỨU VĂN HÓA ẨM THỰC TẠI HẢI PHÕNG 43
3.1 Tổng quan về Hải Phòng 43
3.1.1 Giới thiệu về Thành phố Hải Phòng 43
3.1.2 Ẩm thực đặc trưng của Thành phố Hải Phòng 45
3.2 Yêu cầu, hướng tiếp cận và giải pháp 59
3.2.1 Yêu cầu của ứng dụng 59
3.2.2 Hướng tiếp cận và giải pháp 60
3.3 Xây dựng Ontology 68
3.3.1 Miền và phạm vi của Ontology 68
3.3.2 Các lớp trong Ontology 68
Trang 4Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
3.3.3 Thuộc tính các lớp trong Ontology 70
3.3.4 Xác định các cá thể 73
3.4 Mô hình hệ thống 74
3.5 Thiết kế xử lý hệ thống 75
3.5.1 Chức năng tìm kiếm 75
3.5.2 Chức năng xem thông tin 76
3.6 Xây dựng hệ thống 77
3.6.1 Đọc RDF với dotNetRDF 77
3.6.2 Truy vấn với SPARQL 78
3.6.3 Thuật toán áp dụng 79
3.6.4 Kết quả chương trình 80
3.7 Tổng kết chương 3 81
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 82
Trang 5Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Mở đầu
1 Lý do chọn đề tài
Ngày nay khoa học và công nghệ phát triển cùng với sự bùng nổ về internet thì Word Wide Web phát triển cả về nội dung lẫn hình thức Nó có một khối lượng thông tin khổng lồ, được tạo ra từ các tổ chức, cộng đồng và nhiều cá nhân với lý do khác nhau Người sử dụng Web có thể dễ dàng truy cập những thông tin này bằng cách chỉ
ra địa chỉ URL và theo các liên kết để tìm ra các tài nguyên liên quan khác
Tính đơn giản của Web hiện nay đã dẫn đến một số hạn chế, việc tìm kiếm thông tin trên Web có thể trả về một lượng lớn thông tin không hợp lý và không liên quan Tính đơn giản này đã gây ra hiện tượng thắt cổ chai, tạo khó khăn trong việc tìm kiếm, trích rút thông tin Máy tính chỉ biết gửi và trả thông tin, chúng không thể truy xuất những nội dung cần Nó chi hỗ trợ ở mức độ giới hạn nào đó trong việc truy xuất và xử lý thông tin Kết quả là người sử dụng phải đảm nhiệm việc truy cập, xử lý thông tin, trích lọc thông tin phù hợp với việc tìm kiếm
Để khắc phục các hạn chế này, khái niệm web ngữ nghĩa đã ra đời Web ngữ nghĩa là một bước tiến vượt bậc so với kỹ thuật web trước đó dựa vào khả năng làm việc với thông tin của chúng thay vì chỉ đơn thuần là lưu trữ thông tin
Hải Phòng là một trong 5 thành phố trực thuộc trung ương và là một đô thị loại 1 trung tâm cấp quốc gia, là thành phố lớn thứ 3 của Việt Nam,có vị trí quan trọng về kinh tế xã hội và an ninh, quốc phòng của vùng Bắc Bộ và cả nước
Ẩm thực Hải Phòng bình dị và dân dã, không cầu kỳ nhưng đậm đà khó quên Nơi đây nổi tiếng với các món hải sản Các nhà hàng hải sản ở khu vực Đồ Sơn nổi tiếng với tôm cua cá mực rất tươi và giá phải chăng Phong cách chế biến hải sản ở Hải Phòng theo phong cách dân dã, nhấn mạnh thực chất và vị tươi ngon của nguyên liệu nhiều hơn sự cầu kỳ trong gia vị và cách chế biến
Các món ăn như bánh đa cua, bún cá, bánh mỳ cay, cơm cháy hải sản, ốc cay, nem cua bể (nem vuông), giờ đây đã quá quen thuộc và nổi tiếng Những món ăn này
Trang 6Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
có thể được tìm thấy trên đường phố của những nơi khác như TP.Hồ Chí Minh, Hà Nội, nhưng được thưởng thức chúng trên Thành phố Hoa phượng đỏ vẫn là lý tưởng nhất vì sự lựa chọn nguyên liệu tươi ngon cùng với những bí quyết ẩm thực riêng của người đầu bếp Ẩm thực Hải Phòng đã từng được quảng bá sang Châu Âu tại lễ hội biển Brest 2008 (Cộng hòa Pháp) và đã gây được tiếng vang lớn
Ngoài ra, Hải Phòng còn nổi tiếng với nhiều món ăn khác như lẩu bề bề, nộm giá, thịt san biển, sủi dìn, bánh bèo, Một số món ăn không thể thưởng thức ở những nơi khác mà chỉ có tại Hải Phòng
Với những lý do trên, tôi xin chọn đề tài “Web ngữ nghĩa và ứng dụng trong
tra cứu đặc trưng văn hóa ẩm thực tại Hải Phòng”
2 Mục tiêu
Ứng dụng Semantic Web xây dựng ứng dụng tra cứu đặc trưng văn hóa ẩm thực tại Hải Phòng
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
- Tìm hiểu về web ngữ nghĩa, phương pháp xây dựng Ontology
- Tìm hiểu về các thông tin đặc trưng văn hóa ẩm thực tại Thành phố Hải Phòng
Phạm vi nghiên cứu:
- Nghiên cứu xây dựng tập từ vựng cơ bản về đặc trưng văn hóa ẩm thực tại Thành phố Hải Phòng
- Tổ chức lưu trữ dữ liệu của ứng dụng với Protégé và tính năng truy xuất
dữ liệu trong Ontology
4 Phương pháp nghiên cứu
- Tìm hiểu các vấn đề về Web ngữ nghĩa
- Thu thập các tài liệu liên quan
- Triển khai xây dựng ứng dụng
Trang 7Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
5 Ý nghĩa khoa học và thực tiễn đề tài
- Xây dựng tập từ vựng về văn hóa ẩm thực ở Hải Phòng
- Góp phần nâng cao khả năng tra cứu và chia sẻ thông tin về văn hóa ẩm thực tại thành phố Hải Phòng
6 Dự kiến bố cục luận văn
Luận văn được chia làm 3 chương:
Chương 1: Trình bày giới thiệu tóm tắt về Web ngữ nghĩa, kiến trúc của Web ngữ nghĩa, cũng như giới thiệu RDF – nền tảng của Web ngữ nghĩa Chương 2: Giới thiệu các công nghệ xây dựng Web ngữ nghĩa cụ thể là đi sâu vào nghiên cứu Ontology Đồng thời đưa ra giải pháp về ngôn ngữ và công cụ để xây dựng ứng dụng Semantic web
Chương 3: Giới thiệu về ứng dụng, phân tích và đề xuất giải pháp xây dựng ứng dụng Tiến hành xây dựng ontology, xử lý dữ liệu, cài đặt ứng dụng và đưa ra một số kết quả đạt được
Trang 8Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CHƯƠNG 1: GIỚI THIỆU VỀ WEB NGỮ NGHĨA 1.1 Cách thức tìm kiếm thông tin của bộ máy tìm kiếm (Search engine)
Search engine hay còn gọi là máy tìm kiếm là một trang Web cho phép người
dùng tìm kiếm nội dung số của các trang Web trên Internet [1]
Thường kỳ, máy tìm kiếm sẽ dò quét nội dung tất cả các trang Web trên Internet và cập nhật nội dung văn bản text vào cơ sở dữ liệu khổng lồ của mình mà người dùng
có thể khai thác sau đó Để làm việc này các máy tìm kiếm thường gửi các Web crawler, web spider hay web robot (ví dụ googlebot của Google – Yahoo slurp của Yahoo) đến các trang cần đánh chỉ số Các bọ tìm kiếm này sẽ truy cập phân tích và gửi nội dung về các máy tìm kiếm
Máy tìm kiếm sắp xếp các trang Web dựa vào nội dung HTML của trang Việc này khác với các thư mục Web truyền thống mà những người kiểm duyệt sắp đặt trong các mục riêng biệt với tên site và miêu tả đi kèm
1.1.1 Một số bộ tìm kiếm thông dụng
Bộ thu thập thông tin
Cơ sở dữ liệu cuả các search engine được cập nhật hoá bởi các chương trình đặc biệt thường gọi là "robot", "spider" hay "Webcrawler" Các chương trình này sẽ tự động dò tìm và phân tích từ những trang có sẵn trong cơ sở dữ liệu để kiếm ra các liên kết (links) từ các trang và trở lại bổ xung dữ liệu cho các search engine sau khi phân tích
Về bản chất robot chỉ là một chương trình duyệt và thu thập thông tin từ các site theo đúng giao thức web Những trình duyệt thông thường không được xem là robot
do thiếu tính chủ động, chúng chỉ duyệt web khi có sự tác động của con người
Bộ lập chỉ mục – Index
Hệ thống lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực hiện việc phân tích, trích chọn những thông tin cần thiết (thường là các từ đơn, từ ghép, cụm từ quan trọng) từ những dữ liệu mà robot thu thập được và tổ chức thành cơ sở
Trang 9Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
dữ liệu riêng để có thể tìm kiếm trên đó một cách nhanh chóng, hiệu quả Lập chỉ mục là giai đoạn phân tích tài liệu (document) để xác định các chỉ mục biểu diễn nội dung của tài liệu Hệ thống chỉ mục là danh sách các từ khoá, chỉ rõ các từ khoá nào xuất hiện ở trang nào, địa chỉ nào
Bộ tìm kiếm thông tin – Search Engine
Search engine là cụm từ dùng chỉ toàn bộ hệ thống bao gồm bộ thu thập thông tin,
bộ lập chỉ mục & bộ tìm kiếm thông tin Các bộ này hoạt động liên tục từ lúc khởi động hệ thống, chúng phụ thuộc lẫn nhau về mặt dữ liệu nhưng độc lập với nhau về mặt hoạt động
Search engine tương tác với user thông qua giao diện web, có nhiệm vụ tiếp nhận và trả về những tài liệu thoả yêu cầu của user
Bộ Query Engine
Bộ công cụ truy vấn có nhiệm vụ nhận và tìm kiếm các yêu cầu của người sử dụng,
Bộ công cụ này sẽ dựa vào bảng chỉ mục và các kho lưu trữ Bởi kích thước của web rất lớn, thêm nữa khi sử dụng chỉ đưa vào một hay hai từ khóa sau đó sẽ nhận được tập kết quả Do đó phải có một modul sắp xếp kết quả theo thứ tự sao cho nó gần với nội dung đang cần tìm nhất
Sắp xếp
Đây là một modul có chức năng sàng lọc thông tin từ hàng triệu trang tương tự nhau
để sắp xếp vị trí từng trang sao cho phù hợp nhất
1.1.2 Cách thức tìm kiếm
Tìm kiếm thông tin nói chung là giải quyết các vấn đề như: biểu diễn, lưu trữ, tổ chức và truy cập đến các mục thông tin Việc tổ chức và biểu diễn thông tin giúp người sử dụng dễ dàng truy cập thông tin mà mình quan tâm Nhưng để mô tả các thông tin đó không phải là điều dễ dàng Do vậy, hệ thống tìm kiếm thông tin bao gồm quá trình cơ bản sau: Biểu diễn nội dung các tài liệu, biểu diễn yêu cầu người dùng và so sánh hai biểu diễn này
Quy trình biểu diễn tài liệu thường gọi là quá trình chỉ số hóa Quá trình này có thể lưu trữ thực sự các tài liệu trong hệ thống nhưng thường chỉ lưu một phần tài liệu, chẳng hạn như phần tiêu đề, phần tóm tắt Quá trình biểu diễn yêu cầu của người
Trang 10Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
dùng gọi là quá trình truy vấn Truy vấn biểu thị sự tương tác giữa hệ thống và người sử dụng Việc so sánh truy vấn với tài liệu cũng được gọi là quá trình đối sánh và cho kết quả là một danh sách các tài liệu được sắp xếp theo thứ tự mức độ liên quan với truy vấn
Rõ ràng, để mô tả thông tin yêu cầu một cách đầy đủ, người sử dụng không thể trực tiếp yêu cầu thông tin sử dụng các giao diện hiện thời của hệ thống tìm kiếm Thay
vì người sử dụng đầu tiên phải chuyển đổi thông tin yêu cầu này thành một truy vấn
mà có thể được xử lý bởi hệ thống tìm kiếm (hoặc hệ thống thu hồi thông tin (Information Retrieval - IR)) Thông thường, phép chuyển đổi này tạo ra một tập hợp các từ khoá (hoặc các term chỉ số) mô tả khái quát yêu cầu của người sử dụng Như vậy, việc tìm kiếm các tài liệu dựa trên nội dung thực sự của văn bản mà không phụ thuộc vào các từ khoá gắn với văn bản đó Các công cụ tìm kiếm văn bản nổi tiếng hiện nay như Google, Altavista, Yahoo,…là những hệ tìm kiếm đưa ra danh sách các văn bản theo độ quan trọng của câu hỏi đưa vào Để xây dựng một hệ tìm kiếm văn bản có hiệu quả cao, trước hết các văn bản và truy vấn ở dạng ngôn ngữ tự nhiên phải được tiền xử lý và chuẩn hoá
Sau đây là hai mô hình chi tiết cho bộ công cụ tìm kiếm thông tin truyền thống và
bộ công cụ tìm kiếm thông tin trên mạng
Biểu diễn
Truy vấn thông tin
Trang 11Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1.1: Sơ đồ nguyên lý hoạt động
1.1.3 Nguyên lý hoạt động
Search Engine làm việc bằng cách lưu trữ thông tin về nhiều trang Web trên WWW Những thông tin này sẽ được thu thập bởi các Spider (chính là Web crawling) và nội dung của mỗi trang sẽ được phân tích để SE quyết định nên index cái nào (ví
dụ, những từ khoá được thu thập từ các titles, heading hay một số trường đặc biệt gọi là meta tags) để trả về những thông tin mà người tìm kiếm mong muốn nhất
Dữ liệu về những trang Web sẽ được lưu trữ tại các cơ sở dữ liệu chỉ mục để sử dụng cho những lần truy vấn sau Một số Search Engine, như Google chẳng hạn, sẽ lưu trữ toàn bộ hay một phần trang gốc (được xem như một cache) cũng như thông tin về trang Web đó, trái lại với một số SE khác, như AltaVista, sẽ lữu trữ tất cả các
từ của những trang mà nó tìm thấy [5]
Khi người dùng nhập vào các Search Engine một truy vấn (chủ yếu là các keyword), các SE này sẽ kiểm tra các index của nó và cung cấp danh sách các trang Web phù hợp nhất, thường là các cụm từ ngắn hay một phần của một đoạn văn bản Hầu hết các Search Engine đều sử dụng các Boolean Operators (toán tử luận lý) như AND, OR và NOT để xác định các search query (truy vấn tìm kiếm) Một số SE khác lại sử dụng những phương pháp tiên tiến hơn như Proximity Search (tìm kiếm gần kề) để cho phép người dùng xác định được khoảng cách giữa các từ khoá
1.1.4 Hạn chế của web thông thường
Web thông thường (thế hệ web 2.0) chỉ hỗ trợ so khớp các từ khóa tìm kiếm, không
có khả năng suy diễn các từ đồng nghĩa Do vậy, kết quả tìm kiếm được lại phải nhờ vào quết định của con người khi chọn dịch vụ web cần sử dụng Máy có thể xử lý được nhưng máy vẫn chưa có khả năng hiểu và xử lý dịch vụ trả về có thật sự đúng
với yêu cầu cùa người dùng dịch vụ [5]
Có thể tóm tắt các mặt hạn chế của dịch vụ web thông thường như sau:
Trang 12Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
* Có các dịch vụ web không liên quan
* Bỏ xót các dịch vụ web thật sự liên quan vì không có sự suy diễn, quyết định sử dụng dịch vụ web phải do con người can thiệp
1.2 Web ngữ nghĩa
1.2.1 Sự ra đời của Web ngữ nghĩa
World Wide Web (gọi tắt là Web) đã trở thành một kho tàng thông tin khổng lồ của nhân loại và một môi trường chuyển tải thông tin không thể thiếu được trong thời đại công nghệ thông tin ngày nay Sự phổ biến và bùng nổ thông tin trên Web cũng đặt ra một thách thức mới là làm thế nào để khai thác được thông tin trên Web một cách hiệu quả, mà cụ thể là làm sao để máy tính có thể trợ giúp xử lý tự động được chúng Muốn vậy, trước hết máy tính phải hiểu được thông tin trên các tài liệu Web, trong khi ở thế hệ Web hiện tại thông tin được biểu diễn dưới dạng chỉ con người mới đọc hiểu được Các chuyên gia dự đoán, bề nổi của web (surface web) chứa khoảng 1 đến 2 tỷ trang tài liệu trong khi, ở phần sâu của web thì chứa đến 550 tỷ trang tài liệu Có khoảng 200.000 website có tầng thông tin sâu, khoảng hơn 1/2 số thông tin này nằm trong các cơ sở dữ liệu có chủ đề riêng biệt Khoảng 95% thông tin trong các website có tầng thông tin sâu cho phép đa số người dùng có thể khai thác miễn phí
Nhưng hiện nay, hầu hết các công cụ tìm kiếm tài liệu trên web được coi là tìm kiếm hiệu quả cũng chủ yếu tìm kiếm được trên bề nổi của web Trong khi ở tầng sâu của web chứa một khối lượng thông tin khổng lồ và thường rất có giá trị cho các nhà nghiên cứu, các học giả hay đơn thuần là những người thích tìm hiểu Bên cạch
đó, các trang web hiện nay có rất ít đường liên kết với các trang web khác nên việc tìm kiếm là khó khăn Ngoài ra, thông tin tìm kiếm được không theo chủ đề mà chỉ
là vấn đề tìm thoả theo từ khoá đơn thuần, kết quả tìm kiếm phải do con người chọn lại theo chủ đề mong muốn
Trang 13Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Chính những vấn đề này đã thúc đẩy sự ra đời của ý tưởng Web ngữ nghĩa (Semantic Web), một thế hệ mới của Web, mà chính cha đẻ của World Wide Web
là Tim Berners-Lee đề xuất vào năm 1998 Web ngữ nghĩa là sự mở rộng của Web hiện tại mà trong đó thông tin được định nghĩa rõ ràng sao cho con người và máy tính có thể cùng làm việc với nhau một cách hiệu quả hơn Mục tiêu của Web có ngữ nghĩa là để phát triển các chuẩn chung và công nghệ cho phép máy tính có thể hiểu được nhiều hơn thông tin trên Web, sao cho chúng có thể hỗ trợ tốt hơn việc khám phá thông tin (thông tin được tìm kiếm nhanh chóng và chính xác hơn), tích hợp dữ liệu (dữ liệu liên kết động), và tự động hóa các công việc
1.2.2 Lợi ích của Web ngữ nghĩa
Web ngữ nghĩa không phải là sự phủ nhận hoàn toàn web hiện tại, mà là một sự kế thừa có chọn lọc Chúng ta có thể hình dung một số lợi ích của Web ngữ nghĩa so với Web hiện tại ở một số điểm sau :
Máy tính có thể hiểu được thông tin trên Web: Web ngữ nghĩa định nghĩa các
khái niệm và bổ sung quan hệ dưới dạng máy tính có thể hiểu được Do đó, việc tìm kiếm, đánh giá, xử lý, tích hợp thông tin có thể được tiến hành một cách tự động
Thông tin được tìm kiếm nhanh chóng và chính xác hơn: Với Web ngữ
nghĩa, máy tính có thể xác định một thực thể thuộc lớp hay thuộc tính cụ thể nào dựa trên ngữ cảnh chứa nó Do đó thu hẹp không gian tìm kiếm và cho kết quả nhanh, chính xác hơn
Khả năng suy luận thông minh: Dựa vào các luật suy diễn trên cơ sở tri thức
về các thực thể, máy tính có khả năng sinh ra những kết luận mới Ứng dụng Web tương lai có thể sẽ trả lời được những câu hỏi kiểu như: “Thời tiết thứ 6 tuần trước
có lạnh không?”
Dữ liệu liên kết động: Thay thế cách liên kết sử dụng hyperlink tĩnh trong
Web cũ, Web ngữ nghĩa liên kết dữ liệu từ nhiều nguồn khác nhau một cách hiệu quả hơn dựa trên định danh của tài nguyên (URI) và quan hệ giữa chúng Cách liên kết này đôi khi còn được gọi là liên kết bằng siêu dữ liệu (meta data)
1.2.3 Các hướng nghiên cứu chính trong lĩnh vực dịch vụ web ngữ nghĩa
Trang 14Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Tại hội nghị International Semantic Web Conference 2008, John Domingue và David Martin trình bày, hiện có 7 hướng nghiên cứu chính trong lĩnh vực dịch vụ
web ngữ nghĩa [2]
Bao gồm:
- Ngôn ngữ và từ vựng để biểu diễn ngữ nghĩa cho dịch vụ web
- Phát hiện và chọn lựa dịch vụ web phù hợp với nhu cầu dựa trên ngữ nghĩa
- Tổng hợp và phối hợp hoạt động của các dịch vụ web dựa trên một quy trình
- Quản lý giao tác và tài nguyên cho dịch vụ web ngữ nghĩa
- Dịch vụ sử dụng trên các thiết bị di động
- Các vấn đề về bảo mật trong việc sử dụng dịch vụ web ngữ nghĩa
- Các công cụ và môi trường (tự động hoặc bán tự động) trong việc phát triển và khai thác dịch vụ web ngữ nghĩa
1.3 Kiến trúc phân tầng của Web ngữ nghĩa
Dữ liệu
Quy Định
Trang 15Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Đây là tầng đầu tiên của kiến trúc Semantic Web Nó là hạ tầng đầu tiên cho xây dựng Semantic Web là nền tảng để mã hóa, định vị và truyền vận thông tin Với Unicode là chuẩn mã hóa dữ liệu để vận chuyển thông tin Unicode là mã chuẩn quốc tế, nó cho phép mã hóa mọi ngôn ngữ
URI-Uniform Resource Identifier là nền tảng để xác định vị trí cho các tài nguyên Web cũng chính là việc xác định tài nguyên Web
Thực tế tầng này đã được hoàn thiện và sử dụng trong nền Web hiện tại Các URI được miêu tả với các giao thức khác nhau như : HTTP, FTP, SMTP… hiện đang được sử dụng rộng rãi trên Internet Sự xuất hiện của tầng này cho thấy được sự
kế thừa thực sự của Semantic Web Semantic Web thực sự chỉ là một sự mở rộng của Web hiện tại nó dữ lại những đặc điểm thiết kế bên dưới của Web hiện tại và chỉ mở rộng thêm phần ngữ nghĩa ở những mức bên trên nhằm tạo thêm một khung nhìn mới cho Web hiện tại đó là khung nhìn của các ứng dụng (của máy tính)
áp dụng cho các tài liệu XML
Thực sự thì ở tầng thứ hai này mọi cái vẫn được kế thừa từ những gì mà Web hiện tại đã làm được Các chuẩn cú pháp XML, không gian tên và XML Schema vẫn được chấp nhận trong Semantic Web Do đó nó là một cơ sở để tích hợp các định nghĩa Semantic Web với các chuẩn XML khác
Tầng RDF+rdfschema
Trang 16Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Bắt đầu từ tầng này, các đặc điểm mới của Web thực sự được bộc lộ làm cơ sở để khẳng định rằng nó là Semantic Web Sự thực thì tầng này có vai trò như một mô hình, ngôn ngữ để biểu diễn ngữ nghĩa hay tạo ra các khung nhìn đơn giản tới máy tính
RDF –Resource Description Language là một ngôn ngữ, một mô hình dữ liệu cho phép biểu diễn các siêu dữ liệu hay các phát biểu ngữ nghĩa về dữ liệu (cái mà trong Web được gọi là tài nguyên-resource)
RDFS-RDF Vocabulary Description Langauge là một ngôn ngữ để miêu tả các từ vựng được sử dụng trong tài liệu RDF Sự xuất hiện của RDFS giúp tăng cường ngữ nghĩa cho mô hình dữ liệu RDF
Tầng Ontology Vocabulary
Thông qua việc miêu tả các từ vựng dưới dạng cây hay dạng phân lớp, RDFS đã góp phần mở rộng ngữ nghĩa cho dữ liệu RDF Tuy nhiên nếu dừng lại ở đây, ngữ nghĩa mà dữ liệu RDF cung cấp thực sự chưa đủ để đạt được những gì mà Semantic Web mong đợi Từ đó mà tầng Ontology cần thiết được xây dựng
Ontology cho phép mở rộng từ vựng để miêu tả những thuộc tính và những lớp chẳng hạn như các mối quan hệ khác giữa các lớp mà không chỉ đơn thuần là quan
hệ cha con
Có thể nói rằng RDF giống như các kiểu tài nguyên sử dụng trong các tài liệu RDF Nhờ định nghĩa về kiểu một cách thống nhất này mà phần nào đó ngữ nghĩa được thêm vào trong RDF Đến lượt Ontology thì ngữ nghĩa được thêm vào đúng với mức từ vựng và được chia sẻ trên internet
Tầng Logic
Tâng Logic hiện tại vẫn đang được phát triển và hiện tại chưa có một công bố nào
có tính chất chuẩn và hoàn thiện về tầng này Nhóm phát triển Semantic Web của W3C thực sự vẫn đang phát triển tầng này và cũng vẫn chưa hề đưa ra những miêu tả hoàn chỉnh nào về tầng này
Trang 17Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Bản chất của tầng logic là cung cấp những cơ sở để siêu dữ liệu RDF có thể trở thành tri thức, cái được áp dụng để thực hiện các suy luận logic nhằm chứng minh hoặc đưa ra các thông tin mới từ các thông tin đã có
Câu trả lời dĩ nhiên là không, bởi vì hai lý do cơ bản sau:
- Ứng dụng trên Semantic Web ở hiện tại thường dựa trên nền tảng một ngữ cảnh
Digital signatures
Áp dụng công nghệ mã hóa và ký điện tử trong RDF Đảm bảo cho chúng ta rằng nguồn tài liệu mà ta đang sử dụng là do chính xác một nhà cung cấp nào đó – Giống như sự xác thực điện tử mà trong an toàn thông tin đã đề cập đến
Trong kiến trúc của Semantic Web, Digital signature đóng một vai trò rất quan trọng Nó gắn liền với các tầng của kiến trúc Semantic Web kể từ tầng thứ ba
Trang 18Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
RDF, với vai trò là mở rộng cho các tầng này để đảm bảo rằng những thông tin trong các tài liệu này là xác thực do một nhà cung cấp nào đó Điều này giúp ngăn chặn sự sụp đổ của Semantic Web do chính đặc tính đơn giản và phổ cập của nó mang đến Với Digital Signature, các ứng dụng sẽ có căn cứ để sử dụng các thông tin chính xác do những nhà cung cấp mà ứng dụng đó tin tưởng
1.4 RDF – Nền tảng của Web ngữ nghĩa
1.4.1 Giới thiệu
XML cung cấp cú pháp để mã hóa dữ liệu, RDF là một cơ cấu chỉ ra điều gì đó về
dữ liệu Như tên gọi , RDF là một mô hình để biểu diễn dữ liệu về "Mọi thứ trên Web" Mọi thứ ở đây chính là các tài nguyên trong RDF vocubulary (từ vựng)
Mô hình dữ liệu cơ sở của RDF thì đơn giản, bên cạnh tài nguyên (resources), RDF còn chứa thuộc tính (properties) và câu phát biểu (statements) Một property
là một khía cạnh, tính chất, thuộc tính, hay mối liên hệ mô tả cho một tài nguyên Một statement bao gồm một tài nguyên riêng biệt, một thuộc tính được đặt tên, và giá trị thuộc tính cho tài nguyên đó Giá trị này cơ bản có thể là một tài nguyên khác hay một giá trị mang tính nghĩa đen (literal value) hay dạng text tùy ý (free
text) [3]
1.4.2 Các khái niệm cơ bản
RDF(Resource Description Framework)
RDF mô tả siêu dữ liệu về các tài nguyên trên Web RDF dựa trên cú pháp XML tuy nhiên XML chỉ mô tả dữ liệu, RDF còn có khả năng biểu diễn ngữ nghĩa giữa chúng thông qua các tài nguyên được định danh bằng URI [3]
Theo Wikipedia, dữ liệu liên kết (Linked Data) là một phần của web ngữ nghĩa,
nó mô tả cách hiệu quả để truy xuất, chia sẽ và kết nối các mảng dữ liệu, thông tin
và tri thức trên web ngữ nghĩa sử dụng liên kết URIs và RDF
Giống như web của văn bản, web của dữ liệu được xây dựng dựa trên các tài liệu trên web Tuy nhiên, không giống web của văn bản, các liên kết là quan trên văn bản biểu diễn dưới dạng HTML, web của dữ liệu liên kết các “thực thể được đặt tên” thông qua RDF URIs xác định các loại đối tượng và khái niệm
Trang 19Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
RDF chính là nền tảng trung tâm của web ngữ nghĩa Trong khi XML cung cấp cú pháp để mã hóa dữ liệu thì RDF mô tả siêu dữ liệu về các tài nguyên trên Web RDF dựa trên cú pháp XML tuy nhiên XML chỉ mô tả dữ liệu, RDF còn có khả năng biểu diễn ngữ nghĩa giữa chúng thông qua các tài nguyên định danh bằng URI
RDF - Resource Description Framework, định dạng dữ liệu cho phép mô tả thực
thể, tài nguyên và quan hệ nội tại giữa chúng bằng bộ ba đối tƣợng – thuộc tính – giá trị ( subject – predicate – object)
RDFa (RDF – in – attributes) bổ sung tập các thuộc tính mở rộng cho XHTML
để nhúng siêu dữ liệu trong văn bản web
[3] idAboutAttr ::= idAttr | aboutAttr
[4] aboutAttr ::= 'about="' URI-reference '"'
[5] idAttr ::= 'ID="' IDsymbol '"'
[6] propertyElt ::= '<' propName '>' value '</' propName '>'| '<' propName resourceAttr '/>'
[7] propName ::= Qname
[8] value ::= description | string
[9] resourceAttr ::= 'resource="'tham chiếu URI'"'
[10] Qname ::= [ NSprefix ':' ] name
[11] URI-reference ::= string, interpreted per [URI]
[12] IDsymbol ::= (bất kỳ ID nào hợp lệ nào của XML)
[13] name ::= (bất kỳ tên hợp lệ nào của XML)
[14] NSprefix ::= (bất kỳ tiếp đầu ngữ namespace hợp lệ nào)
Trang 20Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
[15] string ::= (bất kỳ chuỗi nào)
Ví dụ : Xét phát biểu
ex:index.html exterms:creation-date "August 16, 1999"
Cú pháp RDF/XML để biểu diễn cho phát biểu trên như sau:
Dòng 2 và 3: bắt đầu với thẻ rdf:RDF , cho biết rằng nội dung XML tiếp theo mô
tả RDF Từ khóa này xác định tài liệu này được biểu diễn dưới dạng RDF Tiếp theo là phần khai báo XML namespace được sử dụng trong tài liệu, tùy vào nhu cầu và mục đích sử dụng mà ta có thể dùng các namespace khác nhau cho từng tài liệu
Dòng 4, 5, 6: mô tả những mệnh đề RDF Để mô tả bất kỳ phát biểu nào dạng RDF/XML có thể dùng rdf:Description, và rdf:about , đây chính là subject của phát biểu Thẻ bắt đầu rdf:Description trong dòng 4 cho biết bắt đầu mô tả về một resource, và tiếp tục định danh resource này dùng thuộc tính rdf:about để chỉ ra URI của subject resource Dòng 5 cung cấp 1 phần tử thuộc tính, với Qname exterms:creation-date như là thẻ của nó Nội dung của phần tử thuộc tính này là object của statement, có giá trị là kiểu plain literal “August 19, 1999 “
Dòng 7: cho biết kết thúc của thẻ rdf:RDF bắt đầu ở dòng 2 và cũng là thẻ kết thúc của tài liệu RDF
1.4.4 RDFS collection
Trang 21Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
RDF Collection cho phép khai báo một tập hợp đóng, tương tự một danh sách, có phần tử đầu (rdf:first), phần tử kế (rdf:rest) và phần tử cuối (rdf:nil)
ví dụ trên một cách ngắn gọn hơn như sau:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:c="http://example.org/creator/vocab#">
Trang 22Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
</rdf:RDF>
1.4.5 RDFS schema
RDF cung cấp một cách để mô tả các phát biểu đơn giản về các resource, sử dụng các thuộc tính và giá trị đã được định nghĩa trước Tuy nhiên, nhu cầu của con người đỏi hỏi phải có một khả năng để tự định nghĩa các thuật ngữ mà họ muốn dùng trong các phát biểu đó Ví dụ như, công ty example.com trong ví dụ muốn
mô tả các lớp như exterms:Tent, và sử dụng thuộc tính exterms:model, exterms:weighInKg và exterms:packedSize để mô tả chúng hoặc là một ứng dụng nào đó muốn mô tả các lớp như ex3:Person, ex3:Company và các thuộc tính như ex3:age, ex3:jobTitle, ex3:stockSymbol, ex3:numberOfEmployees
RDF schema cung cấp một khung để mô tả các lớp, thuộc tính của ứng dụng cụ
thể Các lớp trong RDFS giống như các lớp trong lập trình hướng đối tượng, cho phép các tài nguyên được định nghĩa như là 1 thực thể của lớp, hay lớp con của lớp
Định nghĩa lớp (class)
Các tài nguyên trên Web có thể chia thành các nhóm gọi là class Các thành viên của nhóm được xem như là thể hiện của lớp đó Thông qua các định danh URI, các tài nguyên được truy xuất và có thể được mô tả bằng các RDF properties Thuộc tính rdf: type được sử dụng để chỉ ra một resource là một thể hiện của một class
Định nghĩa thuộc tính (property)
từ vựng cho các tài sản và các lớp tài nguyên RDF mô tả
XML
cung cấp một cú pháp bề mặt quy định cụ thể hạn chế được gọi là cú pháp tốt
Trang 23Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
RDF Schema cung cấp một bộ từ vựng để mô tả làm thế nào mà các thuộc tính và lớp có thể được sử dụng cùng nhau trong RDF Thuộc tính quan trọng nhất được
sử dụng trong trường hợp này là rdfs:range và rdfs:domain
Hình 1.5 – Hình Không gian miền và giới hạn của thuộc tính RDFS
Cách sử dụng rdfs:range
Thuộc tính rdfs:range dùng để chỉ giá trị của một thuộc tính là thể hiện của một lớp Ví dụ như, nếu công ty example.org muốn chỉ rằng thuộc tính ex:author có giá trị là thể hiện của lớp ex:Person, ta sẽ viết phát biểu RDF như sau:
ex:Person rdf:type rdfs:Class
ex:author rdf:type rdf:Property
ex:author rdfs:range ex:Person
Phát biểu này chỉ rằng ex:Person là một lớp, ex:author là một thuộc tính, và thuộc tính ex:author có object là thực thể của lớp ex:Person Tuy nhiên một thuộc tính
có thể có nhiều rdfs:range, như ví dụ sau:
ex:hasMother rdfs:range ex:Female
ex:hasMother rdfs:range ex:Person
Thuộc tính rdfs:range có thể được sử dụng để chỉ ra giá trị của kiểu typed literal ex:age rdf:type rdf:Property
ex:age rdfs:range xsd:integer
Cách sử dụng rdfs:domain
Trang 24Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Thuộc tính rdfs:domain được sử dụng để chỉ rằng một thuộc tính là thuộc tính của một lớp nào đó Ví dụ như, công ty example.org muốn thuộc tính ex:author là thuộc tính của lớp ex:Book , ta có phát biểu sau:
ex:Book rdf:type rdfs:Class
ex:author rdf:type rdf:Property
ex:author rdfs:domain ex:Book
Và một thuộc tính cũng có nhiều thuộc tính rdfs:domain khác
exterms:weight rdfs:domain ex:Book
exterms:weight rdfs:domain ex:MotorVehicle
Luật suy diễn ngữ nghĩa trong RDFS
Có 6 trường hợp suy diễn theo các cấp loại lớp, thuộc tính, lớp con, thuộc tính con, miền (domain), dải (range)
Trường hợp 1: Suy diễn về loại của lớp (type)
IF (c2, subClassOf, c1)
AND (x, type, c2)
THEN (x, type, c1)
Ví dụ:
IF (Man, subClassOf, Person)
AND (Tom, type, Man)
THEN (Tom, type, Person)
Trường hợp 2: Suy diễn về thuộc tính của lớp (Property)
IF (p2, subPropertyOf, p1)
AND (x, p2, y)
THEN (x, p1, y)
- Ví dụ:
IF (author, subPropertyOf, creator)
AND (Tom, author, Report2010)
THEN (Tom, creator, Report2010)
Trường hợp 3: Suy diễn về lớp con của lớp (subclassOf)
IF (c2, subClassOf, c1)
Trang 25Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
AND (c3, subClassOf, c2)
THEN (c3, subClassOf, c1)
- Ví dụ:
IF (Person, subClassOf, Animal)
AND (Man, subClassOf, Person)
THEN (Man, subClassOf, Animal)
Trường hợp 4: Suy diễn về thuộc tính con của thuộc tính (subPropertyOf)
IF (p2, subPropertyOf, p1)
AND (p3, subPropertyOf, p2)
THEN (p3, subPropertyOf, p1)
- Ví dụ:
IF (parent, subPropertyOf, ancestor)
AND (father, subPropertyOf, parent)
THEN (father, subPropertyOf, ancestor)
Trường hợp 5: Suy diễn trong miền (domain)
IF (p1, domain, c1)
AND (x, p1, y)
THEN (x, type, c1)
- Ví dụ:
IF (author, domain, Human)
AND (Tom, author, Report2010)
THEN (Tom, type, Human)
Trường hợp 6: Suy diễn trong dải giới hạn (range) IF (p1, range, c1)
AND (x, p1, y)
THEN (y, type, c1)
- Ví dụ:
IF (author, range, Document)
AND (Tom, author, Report2010)
THEN (Report, type, Document
Trang 26Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
1.5 Truy vấn dữ liệu trong RDF
1.5.1 Giới thiệu
Như chúng ta đã biết RDF là một cách để mô tả thông tin về các tài nguyên Web một cách linh động Nó được sử dụng để mô tả nhiều loại thông tin ví dụ như thông tin về cá nhân, về hệ thống mạng toàn cầu, meta-data về multimedia như music và hình ảnh cũng như là cung cấp một phương tiện để tích hợp các nguồn tài nguyên khác Với một lượng thông tin quá lớn như vậy, làm thế nào dữ liệu có thể được truy vấn nhanh chóng và chính xác? Tổ chức W3C đã phát triển một ngôn ngữ chuẩn để truy vấn dữ liệu RDF với việc cung cấp nhiều chức năng cho các developer và end users cách để viết và thực thi một câu truy vấn Kỳ này mô
tả ngôn ngữ truy vấn Protocol And RDF Query Language (SPARQL) để truy cập
dữ liệu RDF được phát triển bởi nhóm RDF Data Access Working Group-một phần trong hoạt động của Semantic Web
Một RDF Graph là một tập các bộ ba subject, predicate và object Những bộ này
có thể đến từ nhiều tài nguyên khác nhau Ví dụ như: chúng có thể đến từ một tài liệu RDF, chúng có thể được suy ra từ các RDF triple khác hoặc là chúng có thể là
sự mô tả RDF của các dữ liệu được lưu trữ từ các định dạng khác như XML hay là
từ một cơ sở dữ liệu quan hệ
SPARQL là một ngôn ngữ để truy cập thông tin từ các đồ thị RDF Nó cung cấp các tính năng sau:
- Trích thông tin trong các dạng của URI, các blank node và các plain hay typed literals
- Trích thông tin từ các đồ thị con
- Xây dựng một đồ thị RDF mới dựa trên thông tin trong đồ thị truy vấn
1.5.2 Cú pháp truy vấn
Cú pháp của câu truy vấn
Các giá trị được đặt trong dấu „<>‟ dùng để chỉ một định danh URI Các giá trị được đặt trong dấu (“ “) là các giá trị literal
Biến trong ngôn ngữ truy vấn có giá trị toàn cục Biến thường bắt đầu với kí tự „?‟ hay kí tự „$‟ để chỉ một biến
Trang 27Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
SPARQL cung cấp một cơ chế viết tắt Tiếp đầu ngữ (prefix) có thể được định nghĩa và một QName sẽ cung cấp một dạng viết làm cho URI có thể ngắn gọn Sau đây là một cách viết tắt cho triple pattern
Blank node có thể xuất hiện trong một mẫu truy vấn Nó giữ vai trò như một biến,
dù không được đề cập trong kết quả của câu truy vấn hay bất kỳ nơi nào ở trong graph pattern
Blank node trong các câu truy vấn khác với với các blank node trong dữ liệu, do
đó blank node trong một graph pattern không tương ứng với một blank node trong
dữ liệu thông qua một nhãn blank node
Ví dụ:
- Dữ liệu
@prefix foaf: <http://xmlns.com/foaf/0.1/>
_:a foaf:name "Chuong Nguyen"
Trang 28Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ví dụ, trong khi RDFS có thể khẳng định rằng một thuộc tính author đƣợc dùng để chỉ thị những tài nguyên mà tài nguyên đó là thành viên của lớp Person thì nó không cho biết một ứng dụng cần phải họat động nhƣ thế nào trong việc xử lý thông tin đó RDFS có thể mô tả những ràng buộc quan hệ nhiều mục từ vựng từ nhiều giản đồ phát triển độc lập Từ khi các URI đƣợc dùng để xác định các lớp và các thuộc tính thì nó có thể tạo ra những thuộc tính mới mà thuộc tính domain hay range của nó ràng buộc tham chiếu tới các lớp định nghĩa trong khôn gian tên khác
Những ràng buộc rdfs:domain và rdfs:range là những ràng buộc về thuộc tính, các luật mà thuộc tính rdfs:subPropertyOf và rdfs:subClassOf không nên tạo ra những
vòng lặp, cộng với những ràng buộc sử dụng kỹ thuật có thể mở rộng
rdfs:ConstraintResource Những ứng dụng khác nhau có thể hoạt động khác nhau
khi làm việc với những RDF Một số các ví dụ của các ràng buộc bao gồm:
Giá trị của một thuộc tính phải là một tài nguyên của một lớp rõ ràng Điều này đƣợc biết nhƣ một ràng buộc range Ví dụ, một ràng buộc range áp dụng
Trang 29Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
cho thuộc tính author có thể mô tả rằng giá trị của thuộc tính author phải là một tài nguyên của lớp Person
Một thuộc tính có thể được dùng dựa trên các tài nguyên của một lớp nhất định Điều này được biết như một ràng buộc domain Ví dụ, thuộc tính
author chỉ có thể bắt nguồn từ một tài nguyên mà tài nguyên đó là môt thể hiện của lớp Book
Mặc dù mô hình dữ liệu RDF không cho phép những thuộc tính rõ ràng như
thuộc tính rdf:type để gán cho những Literal, tuy nhiên, chúng ta coi như những
thực thể này là thành viên của các lớp (ví dụ: chuỗi “John Smith” là thành viên của lớp rdfs:Literal)
rdfs:ConstraintResource
Tài nguyên này định nghĩa ra một lớp con của rdfs:Resource mà thể hiện của
chúng là những kết cấu RDFS liên quan tới các biểu thức ràng buộc mục đích của lớp này là cung cấp một cơ chế để cho phép các bộ xử lý RDF đánh giá khả năng của chúng để dùng thông tin ràng buộc kết hợp với mô hình RDF
rdfs:ConstraintProperty
Tài nguyên này định nghĩa ra một lớp con của rdf:Property, tất cả các thể hiện cua chúng đều là các thuộc tính sử dụng để xác định các ràng buộc Lớp này là lớp con của rdfs:ContraintResource và tướng tác với tậpcon của lớp đó để biểu diễn những thuộc tính Cả rdfs:domain và rdfs:range là các thể hiện của rdfs:ConstraintProperty
Trang 30Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ở đâu P có hơn một thuộc tính rdfs:range, thì ở đó những tài nguyên bao gồm những tân ngữ của những bộ ba với vị từ P là những thể hiện của tất cả những lớp được chỉ ra bởi những thuộc tính rdfs:range Thuộc tính rdfs:range có thể được áp dụng cho chính nó Rdfs:range của rdfs:range là một lớp rdfs:Class Điều này chỉ ra rằng đó là giá trị của một thuộc tính rdfs:range và là thể hiện của rdfs:Class Thuộc tính rdfs:range được áp dụng cho những thuộc tính Điều này có thể được biểu diễn trong RDF sử dụng thuộc tính rdfs:domain rdfs:domain của rdfs:range là lớp rdf:Property Điều này chỉ ra rằng bất kỳ tài nguyên nào có thuộc tính rdfs:range là thể hiện của rdf:Property
rdfs:domain
Là một thể hiện của rdf:Property và chúng được dùng để chỉ rằng bất kỳ tài nguyên nào có một thuộc tính đã cho là một thể hiện của một hay nhiều hơn một lớp Một bộ ba P rdfs:domain C chỉ rằng P là một thể hiện của lớp rdf:Property, mà
C là một thể hiện của lớp rdfs:Class và những tài nguyên chỉ ra bởi các chủ ngữ của
bộ ba mà vị từ của bộ ba nào là P thì chúng là những thể hiện của lớp C Nơi nào thuộc tính P có nhiều hơn hơn thuộc tính rdfs:domain thì những tài nguyên được chỉ thị bởi chủ ngữ của bộ ba với vị từ P là thể hiện của tất cả các lớp chỉ ra bởi thuộc tính rdfs:domain Thuộc tính rdfs:domain có thể áp dụng cho chính nó rdfs:domain của rdfs:domain là lớp rdf:Property và điều đó chỉ ra rằng bất kỳ tài nguyên nào có giá trị của thuộc tính rdfs:domain là một thể hiện của rdf:Class
RDFS sử dụng những thuộc tính ràng buộc để ràng buộc những thuộc tính riêng của nó có thể dùng như thế nào Những ràng buộc này được biểu diễn trong hình Chú ý những hình có đường viền đậm bên ngoài là thể hiện của rdfs:Class
Trang 31Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
<rdfs:domain rdf:resource="#MotorVehicle"/>
<rdfs:range rdf:resource="#Person"/>
</rdf:Description>
<rdf:Description ID="rearSeatLegRoom">
Trang 32Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
<rdf:type ns#Property"/>
Trang 33Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CHƯƠNG 2: CÔNG NGHỆ XÂY DỰNG WEB NGỮ NGHĨA 2.1 Ontology và ngôn ngữ web OWL
2.1.1 Khái niệm Ontology
Trước hết ta cần phải biết Ontology là gì? Nói một cách đơn giản ontology là tập từ vựng để mô hình hóa thế giới bên ngoài, nó đưa ra các khái niệm cơ bản và định nghĩa quan hệ giữa các khái niệm đó trong một miền lĩnh vực Đồng thời ontology còn cung cấp các ràng buộc, là các giả định cơ sở về ý nghĩa mong muốn
của bộ từ vựng[5]
Ontology được xây dựng nhằm các mục đích sau:
Chia sẻ hiểu biết chung về cấu trúc thông tin giữa con người và phần mềm agent
Sử dụng lại tri thức về một miền lĩnh vực đã được xây dựng từ trước
Trong hình trên ta thấy các ứng dụng khác nhau, muốn trao đổi thông tin với nhau thì cần phải có một tri thức chung, vì vậy các ứng dụng này đều sử dụng một ontology để có thể chia sẻ tri thức cho nhau
Ontology được sử dụng rộng rãi trong công nghệ tri thức, trí tuệ nhân tạo, và khoa học máy tính trong các ứng dụng liên quan đến quản lý tri thức, xử lý ngôn ngữ tự nhiên, thương mại điện tử, tích hợp thông tin, tìm kiếm thông tin, thiết kế cơ sở dữ liệu
* Lớp: Các tập hợp, hay kiểu của các đối tượng
* Thuộc tính: Thuộc tính, tính năng, đặc điểm, tính cách, hay các thông số
mà các đối tượng có và có thể đem ra chia sẻ
* Mối quan hệ: cách mà các đối tượng có thể liên hệ tới một đối tượng khác
Trang 34Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Bộ từ vựng ontology được xây dựng trên cơ sở tầng RDF và RDFS, cung cấp khả năng 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
Thực thể (Individuals) – Thể hiện
Cá thể là thành phần cơ bản của một ontology Các cá thể trong một ontology
có thể bao gồm các đối tượng rời rạ , cũng như các đối tượng trừu tượng như con số và từ
Lớp (Classes) - Khái niệm
ững nhóm, bộ hoặc tập hợp các đối tượng Một lớp có thể gộp nhiều lớp hoặc được gộp vào lớp khác Một lớp gộp vào lớp khác được gọi là lớp con của lớp gộ ọng của quan hệ xếp gộp là tính kế thừa
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 đều 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
Mối quan hệ (Relation)
Quan hệ giữa các đối tượng trong một ontology cho biết các đối tượng liên hệ với đối tượng khác như thế nào Sức mạnh của ontolgy nằm ở khả năng diễn đạt quan hệ Tập hợp các quan hệ cùng nhau mô tả ngữ nghĩa của domain Tập các dạng quan hệ được sử dụng và cây phân loại thứ bậc của chúng thể hiện sức mạnh diễn đạt của ngôn ngữ dùng để biểu diễn ontology
Ontology thường phân biệt các nhóm quan hệ khác nhau Vd:
Quan hệ giữa các lớp
Quan hệ giữa các thực thể
Quan hệ giữa một thực thể và một lớp
Trang 35Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Quan hệ giữa một đối tượng đơn và một tập hợp
Quan hệ giữa các tập hợp
2.1.3 Phương pháp xây dựng Ontology
Trong những năm gần đây, một loạt các phương pháp luận khác nhau được thiết
kế để trợ giúp cho việc tiến hành phát triển các nhiệm vụ được báo cáo trong tài liệu trí tuệ nhân tạo Các phương pháp truyền thống gồm Cyc (Lenat & Guha 1990), Uschold và King (Uschold $ King 1995), Gruninger và Fox (Gruninger $ Fox 1995), Kactus (Kactus 1996),và Methontology (Fernandez-Lopez, Gomes-Perez &
Juritso 1997) [3]
Các phương pháp luận cung cấp các chỉ dẫn chung và có cấu trúc Nếu làm theo
có thể tăng quy trình phát triển và cải tiến chất lượng cho kết quả cuối cùng Theo như đánh giá phương pháp luận “Methontology” là phương pháp luận thiết kế ontology phổ biến nhất (được hỗ trợ môi trường WebODE)
2.1.4 OWL (Ontology Web Language)
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ả 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 được hỗ trợ bởi W3C 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 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 của 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
Trang 36Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
đượ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
Các phiên bản của OWL: Hiện nay có ba loại OWL : OWL Lite, OWL DL (description logic), và OWL Full
OWL Lite: hỗ trợ cho những người dùng chủ yếu cần sự phân lớp theo thứ bậc
và các ràng buộc đơn giản Ví dụ: Trong khi nó hỗ trợ các ràng buộc về tập hợp,
nó chỉ cho phép tập hợp giá trị của 0 hay 1 Điều này cho phép cung cấp các công cụ hỗ trợ OWL Lite dễ dàng hơn so với các bản khác
OWL DL (OWL Description Logic): hỗ trợ cho những người dùng cần sự diễn
cảm tối đa trong khi cần duy trì tính tính toán toàn vẹn (tất cả các kết luận phải được đảm bảo để tính toán) và tính quyết định (tất cả các tính toán sẽ kết thúc trong khoảng thời gian hạn chế) OWL DL bao gồm tất cả các cấu trúc của ngôn ngữ OWL, nhưng chúng chỉ có thể được sử dụng với những hạn chế nào đó (Ví dụ: Trong khi một lớp có thể là một lớp con của rất nhiều lớp, một lớp không thể
là một thể hiện của một lớp khác) OWL DL cũng được chỉ định theo sự tương ứng với logic mô tả, một lĩnh vực nghiên cứu trong logic đã tạo nên sự thiết lập chính thức của OWL
OWL Full muốn đề cập tới những người dùng cần sự diễn cảm tối đa và sự tự do
của RDF mà không cần đảm bảo sự tính toán của các biểu thức Ví dụ, trong OWL Full, một lớp có thể được xem xét đồng thời như là một tập của các cá thể
và như là một cá thể trong chính bản thân nó OWL Full cho phép một ontology gia cố thêm ý nghiã của các từ vựng được định nghĩa trước (RDF hoặc OWL)
Trang 37Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Các phiên bản này tách biệt về các tiện ích khác nhau, OWL Lite là phiên bản dễ hiểu nhất và phức tạp nhất là OWL Full
Mối liên hệ giữa các ngôn ngữ con của OWL:
Mọi ontology hợp lệ dựa trên OWL Lite đều là ontology hợp lệ trên OWL DL Mọi ontology hợp lệ dựa trên OWL DL đều là ontology hợp lệ trên OWL Full Mọi kết luận hợp lệ dựa trên OWL Lite đều là kết luận hợp lệ trên OWL DL Mọi kết luận hợp lệ dựa trên OWL DL đều là kết luận hợp lệ trên OWL Full
2.2 Các bước xây dựng Ontology
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)[5]
Bước 1: Xác định lĩnh vực và phạm vi của Ontology
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ó, chi phí bỏ ra cho quá trình xây dựng ontology sẽ giảm đi rất nhiều
Trang 38Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
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 (đồng nghĩa, hay đa ngôn ngữ) 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
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ớ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í, …
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ễ
Trang 39Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
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 (lực lượng), 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
Trang 40Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Sesame là một phần mềm mã nguồn mở trong dự án European IST
On-To-Knowledge của công ty Hà Lan Aduna giúp cho việc lưu trữ và truy vấn dữ liệu RDF và RDFS [http://www.w3.org/2001/sw/wiki/Sesame]
Các tính năng: Thiết kế ứng dụng tập trung, một kiểu giao diện cơ bản, truy vấn theo ví dụ tìm kiếm và báo cáo HTML sẽ giúp bạn tạo ra ứng dụng trơn tru, hấp dẫn Nếu bạn là người mới sử dụng cơ sở dữ liệu, chương trình làm việc bằng cách bắt đầu với những ứng dụng đơn giản, dễ dàng, nhanh chóng Đối với những người
có kinh nghiệm hơn, chương trình cung cấp nhiều tùy chọn và dễ dàng tùy biến
Lý do Sesame trở lên phổ biến chính là ở những ưu điểm về kiến trúc của nó, không chỉ về mặt thiết kế mà còn về tính ứng dụng như sau:
- Sesame được thiết kế như một phần mềm trung gian giữa người dùng và kho lưu trữ dữ liệu
- Sesame cũng cấp một cơ chế cho phép lưu trữ ổn định và truy vấn hiệu quả dữ liệu RDF và RDFS
- Người phát triển phần mềm có thể sử dụng Sesame như một thư viện khi xây dựng các ứng dụng thao tác với Sesame
2.3.2 Công cụ Chimaera
Chimaera cũng là một ứng dụng được phát triển bởi đại học Stanford với mục đích ban đầu nhằm giải quyết hai vấn đề là: trộn các ontology và chuẩn đoán lỗi, phân tích tính nhất quán giữa các Ontology phân tán [http://www.w3.org/2001/sw/wiki/ Chimaera]
2.3.3 Công cụ Jena
Jena là một Java Framework dùng để xây dựng các ứng dụng Web ngữ nghĩa, Jena cung cấp môi trường lập trình cho RDF, RDFS, OWL và SPARQL – ngôn ngữ truy vấn cho RDF [ http://www.w3.org/2001/sw/wiki/ Jena]
2.3.4 Công cụ Protégé
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 trong quá trình phát triển một ontology Việc lựa