Dữ liệu thông minh ở đây không có nghĩa là gắn liền với trí tuệ nhân tạo, không phải là cho máy học hiểu các từ ngữ của con người hay máy xử lý được ngôn ngữ tự nhiên mà nó thông minh bở
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
Đoàn Huỳnh Cẩm Duyên
Trang phụ bìa
ỨNG DỤNG WEB NGỮ NGHĨA TRONG TÌM KIẾM THÔNG TIN VỀ LUẬT
Chuyên ngành : Công nghệ thông tin
Trang 2LỜI CAM ĐOANTôi xin cam đoan: Luận văn thạc sĩ Công nghệ thông tin “Ứng dụng Web ngữ
nghĩa trong tìm kiếm thông tin về Luật” này là công trình nghiên cứu thực sự của cá
nhân, được thực hiện trên cơ sở nghiên cứu lý thuyết và dưới sự hướng dẫn khoa học
của Tiến sĩ: Cao Tuấn Dũng
Tôi xin chịu trách nhiệm về lời cam đoan này
Đoàn Huỳnh Cẩm Duyên
LỜI CẢM ƠN
Để hoàn thành chương trình cao học và viết luận văn này, tôi xin chân thành
cảm ơn đến quí thầy cô trong Viện Công nghệ thông tin và Truyền Thông, trường Đại
học Bách Khoa Hà Nội đã tận tình dạy bảo tôi trong thời gian học
Tôi xin gửi lời biết ơn sâu sắc đến Tiến Sĩ Cao Tuấn Dũng đã dành rất nhiều
thời gian và nhiệt huyết để hướng dẫn tôi hoàn thành luận văn này
Nhân đây, tôi cũng xin cảm ơn Ban giám hiệu trường Đại học Nha Trang và các
thầy cô trong khoa Công nghệ thông tin đã tạo điều kiện cho lớp cao học Công nghệ
thông tin 2009 tại Nha Trang chúng tôi được học tập thuận lợi
Mặc dù tôi đã cố gắng hết sức hoàn thiện luận văn, tuy nhiên chắc chắn vẫn còn
nhiều thiếu sót, rất mong sự góp ý quý báu của quí thầy cô và các bạn
Hà Nội, ngày 24 tháng 03 năm 2012
Đoàn Huỳnh Cẩm Duyên
Trang 3DANH MỤC CÁC THUẬT NGỮ, TỪ VIẾT TẮT
1 HTML HyperText Markup Language
2 RDF Resource Description Framework
3 XML Extensible Markup Language
4 URI Uniform Resource Identifier
5 Semantic Web Web ngữ nghĩa
Trang 4DANH MỤC CÁC BẢNG STT Nội dung bảng Trang
1.1 Một đề xuất nguồn gốc Web với CERN 10
1.2 Sơ đồ phát triển tính thông minh của dữ liệu 11
1.3 Kiến trúc của web ngữ nghĩa 13
2.1 Mối quan hệ giữa các thành phần trong một bộ ba 25
2.3 Những phát biểu về cùng một tài nguyên 26
2.4 Các thông tin bổ sung cho John Smith 30
2.5 Minh họa kiểu Plain Literal 34
2.6 Kiểu Typed Literal biểu diễn cho tuổi của John Smith 35
2.7 Minh họa kiểu Typed Literal 36
Trang 52.8 Ví dụ của một phát biểu về một phát biểu 39
4.6 Ontology luật lao động được biểu diễn trong Protégé 76
4.8 Màn hình tìm kiếm bằng annotation 82
4.9 Màn hình trả về kết qủa tìm kiếm bằng Annotation 82
4.10 Màn hình cho phép tìm kiếm theo chủ đề 83
4.11 Kết quả tìm kiếm theo chủ đề “Người học nghề” 84
4.12 Màn hình sử dụng câu hỏi để tìm kiếm thông tin 84
4.13 Màn hình hiển thị kết quả sau khi người dùng đặt câu hỏi 85
4.14 Màn hình truy vấn bằng SPARQL 86
Trang 6PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Hiện tại, với một nước có đến hơn 65% dân số trong độ tuổi lao động và lao động với trình độ hạn chế như ở Việt Nam, thì việc tăng cường hỗ trợ cho người lao động về luật pháp là việc vô cùng cần thiết
Bộ luật lao động Việt Nam được ban hành nhằm bảo vệ quyền làm việc và lợi ích hợp pháp của người lao động Tuy nhiên, thực tế là đa phần người lao động Việt Nam, đặc biệt là lao động phổ thông chưa tiếp cận được với Luật Khi có sự việc không mong muốn xảy ra, người lao động thường không biết phải làm thế nào vì không có hiểu biết rõ về quyền lợi và nghĩa vụ của mình Xuất phát từ thực tế đó, em nhận thấy việc nghiên cứu để xây dựng một công cụ tìm kiếm những nội dung trong
bộ luật lao động là việc cần thiết để giúp những người quan tâm nói chung và người lao động nói riêng có hiểu biết tốt hơn về luật lao động
Tuy nhiên, với cách xây dựng các công cụ tìm kiếm theo từ khóa hiện nay, việc tiếp cận với bộ luật với nhiều chương điều và khá phức tạp này thật sự khó khăn với người sử dụng Vì vậy, cần có một phương pháp tiếp cận tốt hơn để có thể giúp người quan tâm đến luật dễ dàng hơn trong tìm kiếm thông tin Trên thế giới, đã có nhiền nghiên cứu và bài báo về bài toán ứng dụng Web ngữ nghĩa trong tìm kiếm thông tin
về Luật, nhưng tại Việt Nam, việc ứng dụng Web ngữ nghĩa trong lĩnh vực luật pháp
là rất ít Vì thế, dưới sự hướng dẫn của cán bộ hướng dẫn khoa học Tiến sĩ Cao Tuấn Dũng, em chọn tìm hiểu về Web ngữ nghĩa, một trong những công nghệ mới và đang phát triển hiện nay để làm cơ sở thực hiện công cụ hỗ trợ tìm kiếm thông tin về Luật pháp nói chung và Bộ luật lao động nói riêng
Trang 72 Mục đích nghiên cứu luận văn, đối tượng, phạm vi nghiên cứu
Theo đánh giá của em, đây là đề tài tương đối mới và khó với nhiều vấn đề kỹ thuật mới Trong phạm vi điều kiện và khả năng của em, mục đích, đối tượng và phạm
vi nghiên cứu được xác định như sau:
- Nghiên cứu tổng quan chung về Web ngữ nghĩa
- Nghiên cứu ontology:
• Các ngôn ngữ biểu diễn ontology như RDF/RDFS, OWL
• Tìm hiểu công cụ soạn thảo ontology: Protégé
• Nghiên cứu công nghệ, kỹ thuật
- Nghiên cứu ngôn ngữ truy vấn SPARQL
- Nghiên cứu cách thức tạo, sử dụng các luật suy diễn cho OWL
- Nghiên cứu bộ thư viện hỗ trợ quản lý ontology với ngôn ngữ java: Jena
- Tạo được ontology luật lao động và sử dụng được ontology này để cài đặt ứng dụng tìm kiếm thông tin về Luật
3 Cấu trúc luận văn
Phần nội dung chính của luận văn được chia thành 4 chương, trong đó:
Chương 1 - Tổng quan: Giới thiệu Tổng quan về Semantic Web
Chương 2 - Ontology và Semantic Web: Giới thiệu về ontology và quy trình thiết kế
một ontology để chứa dữ liệu ngữ nghĩa
Chương 3 – SPARQL – Ngôn ngữ truy vấn cho RDF: Chương này giới thiệu về
ngôn ngữ SPARQL, cách sử dụng và cú pháp của SPARQL để truy vấn dữ liệu từ ontology
Chương 4 – Áp dụng Semantic web trong tìm kiếm thông tin luật lao động: Giới
thiệu cách thức em nghiên cứu và xây dựng ontology Luật lao động, từ đó xây dựng phần mềm tìm kiếm thông tin Luật lao động
Trang 8PHẦN NỘI DUNG
Trang 9Chương I – TỔNG QUAN
1.1 Nguồn gốc và mục tiêu 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ạnh đó, 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 trở nên 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
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à để
Trang 10phá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, tích hợp dữ liệu, và tự động hóa các công việc
1.2 Khái niệm về Semantic Web
Tim Berners-Lee đã đưa ra hai vấn đề của web ngữ nghĩa, đó là tạo cho Web một môi trường cộng tác tốt hơn và vấn đề thứ hai là máy có thể hiểu và xử lý tự động các thông tin trên Web Hình 1.1 biểu diễn cái nhìn bản chất nguồn gốc Web của Tim Berners-Lee Cái nhìn này rất phức tạp và phức tạp hơn nhiều so với việc lọc ra các trang HTML từ các dịch vụ Web hiện tại Nhưng trong hình này, có các mối quan hệ giữa các thông tin như: "includes", "describes", "rote", đây là các mối quan hệ giữa các tài nguyên mà trong web hiện tại không có Và chính các quan hệ này đưa vào web ngữ nghĩa là cần thiết, để máy có thể hiểu và xử lý thông tin tự động trên web Các quan hệ này được gọi là các siêu dữ liệu Công nghệ để có được các siêu dữ liệu này là công nghệ RDF (Resource Description Framework)
Hình 1.1- Một đề xuất nguồn gốc Web với CERN
Trang 11(CERN-Hội đồng Châu Âu nghiên cứu hạt nhân)
Để có thể tạo ra web có dữ liệu mà máy có thể xử lý được, trước hết phải thay đối mô hình trong cách chúng ta nghĩ về dữ liệu Từ trước đến nay, dữ liệu bị khoá ngay trong các ứng dụng độc quyền Dữ liệu được coi như thứ yếu để xử lý dữ liệu Thái độ không đúng này bộc lộ những sai sót cơ bản trong luận cứ gốc bằng việc thiết lập sự phụ thuộc giữa xử lý và dữ liệu Hay nói cách khác, phần mềm tốt thì hoàn toàn phụ thuộc vào dữ liệu tốt Với các hệ tính toán chuyên nghiệp thì ngay khi bắt đầu thực hiện, vấn đề dữ liệu là rất quan trọng, nó phải được xác minh và bảo vệ Với Web, XML và xu thế Web ngữ nghĩa đang nổi lên thì có sự thay đổi của sức mạnh đang di chuyển từ các ứng dụng sang dữ liệu Vấn đề này cũng cho chúng ta mấu chốt để hiểu Web ngữ nghĩa Con đường để máy có thể xử lý dữ liệu chủ yếu là tạo ra dữ liệu thông minh hơn chứ không phải là các xử lý thông minh Hình 1.2 biểu diễn sự phát triển tính thông minh của dữ liệu theo thời gian
Hình 1.2 Sơ đồ phát triển tính thông minh của dữ liệu
Trang 12Hình 1.2 chỉ ra sự phát triển liên tục của tính thông minh dữ liệu có bốn bậc quan trọng Bốn bậc này biểu diễn từ dữ liệu có tính thông minh thấp nhất đến dữ liệu đã có thông tin đủ ngữ nghĩa để máy thực hiện suy luận về nó
Văn bản và cơ sở dữ liệu (bậc này là tiền XML)
Bậc đầu tiên, hầu hết dữ liệu ở bậc này được sở hữu độc quyền cho một ứng dụng Do vậy tính thông minh là nằm trong ứng dụng đó chứ không phải là trong dữ liệu
Tài liệu XML với miền đơn
Ở bậc này, dữ liệu đạt được là: ứng dụng độc lập với miền riêng Bây giờ, dữ liệu đủ thông minh để có thể di chuyển giữa các ứng dụng trong một miền đơn Ví dụ: các chuẩn XML trong công nghiệp chăm sóc sức khoẻ, công nghiệp bảo hiểm, hoặc công nghiệp bất động sản
Các phân loại và tài liệu với các bộ từ vựng hỗn hợp
Trong bậc này, dữ liệu có thể được soạn từ đa miền và được phân lớp chính xác theo một nguyên tắc phân loại có thứ bậc Thực tế, sự phân lớp đó có thể được sử dụng
để khám phá dữ liệu Các quan hệ đơn giản giữ các lớp có thể được sử dụng để quan hệ
và do vậy, ta có dữ liệu kết hợp Như vậy, dữ liệu bây giờ thông minh đủ để khám phá
dễ dàng và được kết hợp một cách hợp lý với dữ liệu khác
Các ontology và các luật lập luận
Trong mức này, dữ liệu mới có thể được suy ra từ những dữ liệu đã có theo các luật logic Thực chất, dữ liệu bây giờ thông minh đủ để được mô tả với các quan hệ cụ thể và các dạng hình thức phức tạp Điều này cho phép kết hợp hoặc tái kết hợp dữ liệu nguyên thuỷ nhiều hơn và sự phân tích về dữ liệu mịn hơn Một ví dụ về sự phức tạp của dữ liệu là việc chuyển tự động tài liệu trong một miền này sang một tài liệu tương đương trong một miền khác Ở mức này, ta có thể soạn một định nghĩa mới trên Web
Trang 13ngữ nghĩa, máy có thể xử lý các tài liệu web có dữ liệu thông minh Hơn nữa, ta có thể định nghĩa dữ liệu thông minh vì dữ liệu nó độc lập với ứng dụng, có thể soạn, phân lớp và lấy một phần của các hệ thông tin lớn hơn
Như vậy, việc xây dựng web ngữ nghĩa chủ yếu tập trung xây dựng hệ thống web có dữ liệu thông minh Dữ liệu thông minh ở đây không có nghĩa là gắn liền với trí tuệ nhân tạo, không phải là cho máy học hiểu các từ ngữ của con người hay máy xử lý được ngôn ngữ tự nhiên mà nó thông minh bởi việc tổ chức lựa chọn dữ liệu biểu diễn trong ngôn ngữ được cấu trúc để máy có thể hiểu Và sau đây chúng ta tìm hiểu về kiến trúc của web ngữ nghĩa
1.3 Kiến trúc Semantic Web
Web ngữ nghĩa được xây dựng trên nền hệ thống web hiện tại Web ngữ nghĩa được coi là sự mở rộng của Web hiện tại có bổ sung thêm ngữ nghĩa vào dữ liệu trên web Hình 1.3 chỉ ra sơ đồ kiến trúc của Web ngữ nghĩa
Hình 1.3 - Kiến trúc của web ngữ nghĩa
Từ sơ đồ kiến trúc của Web ngữ nghĩa, ta thấy có bảy tầng kiến trúc Trong đó, với hệ thống Web hiện tại (World Wide Web) là đang ở tầng thứ hai
Trang 14Unicode: chỉ đơn thuần là một bảng mã chuẩn chung có đủ các ký tự để thống
nhất sự giao tiếp trên tất cả các quốc gia, đáp ứng tính nhất quán toàn cầu của web
URI (Uniform Resource Identifier)
Một URI (Uniform Resource Identifier) là một kí hiệu nhận dạng Web đơn giản
Cụ thể, nó là một xâu ngắn cho phép nhận dạng tài nguyên Web như: với các xâu bắt đầu với "http:" hoặc "ftp:" mà chúng ta thường thấy trên World Wide Web Bất kỳ một người nào cũng có thể tạo một URI, và sở hữu chúng và chúng là một công nghệ cơ sở
để xây dựng một hệ thống Web toàn cầu Hệ thống World Wide Web được xây dựng trên chúng và bất kỳ cái gì mà có một URI thì được coi là "trên Web"
URL (Uniform Resource Locator) là một dạng đặc biệt của URI, cụ thể nó là một địa chỉ trên mạng
URIref (URI reference) là một URI cùng với một phần nhận dạng tuỳ ý ở cuối
Ví dụ, ta có một URIref : "http://www.example.org/Books#Ontology" bao gồm một URI: "http://www.example.org/Books" và một phần nhận dạng "Ontology" được cách nhau bởi kí hiệu #
Theo như quy ước, các không gian tên là những tài nguyên mà tạo ra các đa tài nguyên, thường là những URI được kết thúc bởi kí hiệu # Ví dụ:
"http://www.example.org/Books#" là một không gian tên Các tài nguyên không có URIref thì được gọi là các nút trắng; một nút trắng chỉ ra sự tồn tại của tài nguyên không có sự đề cập rõ ràng về tham chiếu URIref của tài nguyên
RDF (Resource Description Framework): Khung mô tả tài nguyên
RDF được W3C giới thiệu để cung cấp một cú pháp chuẩn để tạo, thay đổi và sử dụng các chú thích trong Web ngữ nghĩa Một mệnh đề RDF là một bộ ba có dạng:
[chủđề thuộctính đốitượng] Trong đó, chủ đề là tài nguyên mà được mô tả bằng thuộc tính và đối tượng Thuộc tính thể hiện mối quan hệ giữa chủ đề và đối tượng
Trang 15Còn đối tượng ở đây có thể là một tài nguyên hoặc một giá trị Ba thành phần trên
trong RDF đều là các URI
Hình 1.4 - Bộ ba RDF
Ví dụ : về mệnh đề RDF
Giả sử biểu diễn mệnh đề "The libary lends books”, ta có chủ đề là "The libary",
thuộc tính là " lends ", đối tượng là " books " và các thông tin này có các URI tương
ứng là "Http:/www.libary.org/ontology/
#libary", "Http:/www.libary.org/ontology/#lends" và "Http:/www libary.org/ ontology/#books" Khi đó mệnh đề được biểu diễn dạng đồ thị như sau:
Một tập các mệnh đề RDF được gọi là đồ thị RDF
Http:/www.libary.org/ontology/#libary
Http:/www.libary.org/ ontology/#books Http:/www.libary.org/ontology/#lends
Trang 16Hình 1.5 - Đồ thị RDF gồm hai mệnh đề
Để biểu diễn các mệnh đề RDF mà máy có thể hiểu, RDF định nghĩa ra một số
cú pháp như: cú pháp Notation 3 (hay còn gọi là N3), cú pháp ngôn ngữ RDF/XML (mở rộng từ XML), hay đồ thị của các bộ ba như ví dụ Hình 1.5
RDFS (RDF schema)
RDFS là một ngôn ngữ ontology đơn giản của web ngữ nghĩa, được coi là một ngôn ngữ cơ sở của web ngữ nghĩa RDFS là ngôn ngữ mô tả bộ từ vựng trên các bộ ba RDF Nó cung cấp các công việc sau:
- Định nghĩa các lớp tài nguyên
- Định nghĩa các quan hệ giữa các lớp
- Định nghĩa các loại thuộc tính mà các lớp trên có
- Định nghĩa các mối quan hệ giữa các thuộc tính
Ontology Vocabulary
Bộ từ vựng ontology được xây dựng trên cơ sở tầng RDF và RDFS, cung cấp biểu diễn ngữ nghĩa mềm dẻo cho tài nguyên web và có khả năng hỗ trợ lập luận Để xây dựng được các bộ từ vựng này, người ta đã sử dụng các ngôn ngữ ontology để biểu diễn chúng như: RDFS, OIL, DAML, DAML+OIL, OWL, Các ngôn ngữ này cung
Trang 17cấp khả năng biểu diễn và hỗ trợ lập luận khác nhau và chúng dựa trên nền tảng là các ngôn ngữ logic mô tả tương ứng khác nhau
Tầng Logic
Việc biểu diễn các tài nguyên dưới dạng các bộ từ vựng ontology có mục đích là
để máy có thể lập luận được Mà cơ sở lập luận chủ yếu dựa vào logic Chính vì vậy
mà các ontology được ánh xạ sang logic, cụ thể là logic mô tả để có thể hỗ trợ lập luận
Vì logic mô tả có biểu diễn ngữ nghĩa hình thức (đặc trưng của lý thuyết mô hình), và cung cấp các dịch vụ lập luận, là cơ sở để hỗ trợ máy có thể lập luận và hiểu tài nguyên
Tầng Proof
Tầng này đưa ra các luật để suy luận Cụ thể từ các thông tin đã có ta có thể suy
ra các thông tin mới Ví dụ: A là cha của B, A là em trai C thì khi đó ta có thông tin mới là C là bác của B Để có được các suy luận này thì cơ sở là FOL (First-Order-
Logic) Và tầng này hiện nay các nhà nghiên cứu đang xây dựng các ngôn ngữ luật cho
nó như: SWRL, RuleML
Tầng Trust
Đảm bảo tính tin cậy của các ứng dụng trên Web ngữ nghĩa Ví dụ: có một người
bảo x là xanh, một người khác lại nói x không xanh, như thế Web ngữ nghĩa là không
đáng tin cậy? Câu trả lời ở đây được xem xét trong các ngữ cảnh Mỗi ứng dụng trên web ngữ nghĩa sẽ có một ngữ cảnh cụ thể, chính vì thế các mệnh đề trên có thể nằm trong các ngữ cảnh khác nhau khi đó ngữ nghĩa tương ứng khác nhau nên các mệnh đề
đó vẫn đúng, đáng tin cậy trong ngữ cảnh của nó Để có được sự chứng minh về độ tin cậy thì các lập luận được áp dụng là không đơn điệu và có các cơ chế kiểm tra chứng minh kết hợp với công nghệ chữ ký điện tử để xác nhận độ tin cậy Các ngôn ngữ chứng minh là ngôn ngữ cho ta chứng minh một mệnh đề là đúng hay sai
Trang 181.4 Xây dựng Semantic Web
Để xây dựng hệ thống Web ngữ nghĩa thay thế cho World Wide Web hiện tại, các nhà nghiên cứu đang nỗ lực và tập trung nghiên cứu với ba hướng chính sau:
- Chuẩn hoá các ngôn ngữ biểu diễn dữ liệu (XML) và siêu dữ liệu (RDF) trên Web
- Chuẩn hoá các ngôn ngữ biểu diễn Ontology cho Web có ngữ nghĩa
- Phát triển nâng cao Web có ngữ nghĩa (Semantic Web Advanced Development
1.4.2 Chuẩn hoá các ngôn ngữ biểu diễn Ontology cho Web có ngữ nghĩa
Ontology đóng vai trò then chốt trong việc cung cấp tài nguyên có thể truy nhập
để xử lý tự động bằng cách cung cấp bộ từ vựng cho việc đánh dấu ngữ nghĩa của Web ngữ nghĩa Để biểu diễn Ontology cho phát triển Web có ngữ nghĩa cần thiết đưa ra
Trang 19một ngôn ngữ chuẩn cho sự biểu diễn mềm dẻo, linh hoạt và đa dạng của tài nguyên Web Trong quá trình chuẩn hoá ngôn ngữ biểu diễn Ontology, một số ngôn ngữ được
đề xuất với các khả năng biểu diễn tăng dần như: RDFS, DAML+OIL, OWL, và tiếp tục được mở rộng trong tương lai Các ngôn ngữ này có khả năng biểu diễn tăng dần nhưng tương ứng là khả năng quyết định giảm dần (độ phức tạp tăng dần) Và các ngôn ngữ biểu diễn Ontology được xây dựng phải cân bằng được khả năng biểu diễn và độ phức tạp tính toán Các ngôn ngữ này được xây dựng trên nền các chuẩn XML, RDF,
và thường sử dụng cơ sở logic là logic mô tả để biểu diễn ngữ nghĩa và hỗ trợ lập luận
1.4.3 Phát triển nâng cao Web ngữ nghĩa (Semantic Web Advanced Development
- SWAD)
Các công việc chuẩn hoá các ngôn ngữ biểu diễn dữ liệu XML, siêu dữ liệu RDF hay ngôn ngữ biểu diễn Ontology là các công việc nền tảng, cơ sở tạo ra chuẩn chung cơ sở để phát triển hệ thống và các ứng dụng trên Web ngữ nghĩa Việc đưa các chuẩn đó thành các thể hiện, các sản phẩm của hệ thống Web ngữ nghĩa là công việc của SWAD SWAD thực hiện nghiên cứu và đưa ra các thể hiện của Web ngữ nghĩa trên công nghệ cơ sở và nó cũng bổ sung, hoàn thiện các công nghệ cơ sở này Nó chỉ
ra các công nghệ Web ngữ nghĩa được sử dụng như thế nào? Mục tiêu cụ thể của SWAD là sử dụng các công nghệ, kỹ thuật và các công cụ hiện có của Web ngữ nghĩa
để tạo ra các chương trình vượt xa hơn tầm hiện có, phát triển các thể hiện thực tiễn và cung cấp các công cụ và các chuẩn mới cho Web ngữ nghĩa Để phát triển SWAD hiện tại đã có một số dự án của các tổ chức thực hiện nghiên cứu và phát triển như: SWAD-Europe, SWAD-DAML, SWAD-Simile, SWAD-Oxygen Hiện tại, ở Việt Nam, một
dự án cấp Nhà nước đang nghiên cứu thực hiện trích rút tự động thông tin từ các trang Web về tin tức để xây dựng các ontology cho lĩnh vực này nhằm "tiếp nhận" công nghệ Web ngữ nghĩa khi có hệ thống mạng mới này
Trang 20Chương II – ONTOLOGY VÀ SEMANTIC WEB
2.1 Khái niệm Ontology
Ontology là một thuật ngữ mượn từ triết học nhằm chỉ khoa học mô tả các loại thực thể trong thế giới thực và cách chúng liên kết với nhau Trong khoa học máy tính, một cách khái quát, Ontology là "một biểu diễn của sự khái niệm hoá chung được chia sẻ" của một miền nhất định Nó cung cấp một bộ từ vựng chung bao gồm các khái niệm, các thuộc tính quan trọng và các định nghĩa về các khái niệm và các thuộc tính này Ngoài bộ từ vựng, Ontology còn cung cấp các ràng buộc, đôi khi các ràng buộc này được coi như các giả định cơ sở về ý nghĩa mong muốn của bộ từ vựng, nó được
sử dụng trong một miền mà có thể được giao tiếp giữa người và các hệ thống ứng dụng phân tán khác Việc tiếp cận ngữ nghĩa tài nguyên Web thông qua các Ontology thì mềm dẻo hơn vì người sử dụng có thể lựa chọn bộ từ vựng và các ràng buộc trong các Ontology
Ví dụ, các ứng dụng trong các miền khác nhau có thể sử dụng các Ontology khác nhau Đặc biệt, các Ontology có thể được sử dụng để đặc tả ý nghĩa của các tài nguyên Web (thông qua các chú thích) bằng cách xác nhận các tài nguyên như các trường hợp cụ thể của một số khái niệm quan trọng và hay hoặc khẳng định các tài nguyên có quan hệ với các tài nguyên khác thông qua một số thuộc tính quan trọng đã định nghĩa trong các Ontology
Từ vựng trong một Ontology có thể được biểu diễn bằng các khái niệm và các quan hệ được đặt tên và các định nghĩa khái niệm có thể được biểu diễn bằng các giới thiệu tương đương Các giả định cơ sở có thể được biểu diễn bằng các tiên đề khái niệm và quan hệ khái quát Đôi khi một Ontology tương ứng với một cơ sở tri thức logic mô tả Một Ontology cũng chứa các trường hợp của các khái niệm và các mối quan hệ quan trọng của các cá thể này, nó được biểu diễn bằng các khẳng định của logic mô tả
Ví dụ 2.1 Ví dụ về một Ontology có cơ sở logic mô tả
Trang 21Một Ontology đơn giản về thư viện có tên là ThuVien có thể bao gồm 3 phần:
Phần thứ nhất: là tập các khái niệm và các thuộc tính quan trọng, có thể bao
gồm:
- Các khái niệm như: Sach, TacGia, DocGia, NhaXuatBan, Nguoi
- Các thuộc tính: doc, viet, motphanCua, namxuatban, theloai
- Khái niệm định nghĩa: ví dụ khái niệm “Tác giả” bao gồm tất cả những người
viết sách hoặc một phần cuốn sách
TacGia=Nguoi ∀viet.(Sach ∃motphanCua.Sach)
Thành phần thứ hai của Otology ThuVien được đưa ra bằng các giả định cơ sở
của miền và có thể bao gồm:
-Nguyễn Duy, Hồ Chí Minh, Phan Thị Tươi là tác giả:
NguyenDuy TacGia, HoChiMinh TacGia, PhanThiTuoi TacGia
Thành phần thứ ba của Ontology ThuVien là về các cá thể và mối quan hệ của
Giả sử ta muốn kiểm tra xem CaoHoangTru có phải là TacGia không?
Dựa vào 3 tri thức sau:
Trang 22<VN-KIMChoWebVietCoNguNghia>: sach
<VN-KIMChoWebVietCoNguNghia, CaoHoangTru>:viet
Bộ lập luận DL sẽ đưa ra kết quả là thoả Do đó có thể có một đề nghị bổ sung tri thức
cơ sở này vào trong Ontology ThuVien
Như vậy, các Ontology biểu diễn dựa trên logic mô tả đã khai thác được khả
năng biểu diễn tri thức cũng như khả năng lập luận hiệu quả của logic mô tả để máy có
thể hiểu được tài nguyên Web
2.2 Các thành phần trong Ontology
2.2.1 Các cá thể (Individuals) - Thể hiện
Các cá thể là các thành phần cơ bản, nền tảng của một ontology Các cá thể trong
một ontology có thể bao gồm các đối tượng cụ thể như con người, động vật, cái bàn
cũng như các cá thể trừu tượng như các thành viên hay các từ Một ontology có thể
không cần bất kỳ một cá thể nào, nhưng một trong những lý do chính của một
ontology là để cung cấp một ngữ nghĩa của việc phân lớp các cá thể, mặc dù các cá thể
này không thực sự là một phần của ontology
2.2.2 Các lớp (Classes) - Khái niệm
Các lớp là các nhóm, tập hợp các đối tượng trừu tượng Chúng có thể chứa các cá
thể, các lớp khác, hay là sự phối hợp của cả hai
Các ontology biến đổi tuỳ thuộc vào cấu trúc và nội dung của nó: Một lớp có thể chứa
các lớp con, có thể là một lớp tổng quan (chứa tất cả mọi thứ), có thể là lớp chỉ chứa
những cá thể riêng lẻ, Một lớp có thể xếp gộp vào hoặc bị xếp gộp vào bởi các lớp
khác Mối quan hệ xếp gộp này được sử dụng để tạo ra một cấu trúc có thứ bậc các
lớp, thường là với một lớp thông dụng nhất kiểu Thing ở trên đỉnh
Trang 232.2.3 Các thuộc tính (Properties)
Các đối tượng trong ontology có thể được mô tả thông qua việc khai báo các thuộc tính của chúng Mỗi một thuộc tính đề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
2.2.4 Các mối quan hệ (Relation)
Một trong những ứng dụng quan trọng của việc sử dụng các thuộc tính là để mô
tả mối liên hệ giữa các đối tượng trong ontology Một mối quan hệ là một thuộc tính
có giá trị là một đối tượng nào đó trong ontology Một kiểu quan hệ quan trọng là kiểu quan hệ xếp gộp (subsumption) Kiểu quan hệ này mô tả các đối tượng nào là các thành viên của các lớp nào của các đối tượng
Hiện tại, việc kết hợp các ontology là một tiến trình được làm phần lớn là thủ công, do vậy rất tốn thời gian và đắt đỏ Việc sử dụng các ontology là cơ sở để cung cấp một định nghĩa thông dụng của các thuật ngữ cốt lõi có thể làm cho tiến trình này trở nên dễ quản lý hơn Hiện đang có các nghiên cứu dựa trên các kỹ thuật sản sinh để nối kết các ontology, tuy nhiên lĩnh vực này mới chỉ hiện hữu về mặt lý thuyết
2.3 Ngôn ngữ biểu diễn Ontology
2.3.1 RDF/RDFS: Ngôn ngữ biểu diễn Ontology nhẹ (light – weight)
Giả sử có một phát biểu về một người là John Smith bằng tiếng Anh:
http://www.example.org/index.html has a creator whose value is John Smith
Để mô tả những thuộc tính của mọi thứ, thì cần phải có cách thức để đặt tên, hay xác định như:
• Câu lệnh mô tả về cái gì (trong trường hợp này là trang web)
• Thuộc tính xác định (người tạo) của phát biểu này mô tả
Trang 24• Giá trị của thuộc tính của một phát biểu (người tạo là ai)
Trong phát biểu ở trên, URL của trang web được sử dụng để xác định trang web
Ngoài ra, từ “creator” được dùng để xác định thuộc tính ( Property), và hai từ “John
Smith” để xác định cái gì đó (con người) đó là giá trị của thuộc tính
(Property Value)
Những thuộc tính khác của trang web này có thể được mô tả bởi những phát biểu khác ở cùng định dạng, sử dụng URL để xác định trang web và những từ (hay những diễn tả khác) để xác định thuộc tính và giá trị của chúng Ví dụ, ngày tháng năm trang web được tạo, và ngôn ngữ mà trang web được viết, có thể được mô tả sử dụng những phát biểu khác như:
http://www.example.org/index.html has a creation-date whose value is
August,16,1999
http://www.example.org/index.html has a language whose value is English
RDF sử dụng một thuật ngữ đặc biệt đó là bộ ba (tripple) để nói về những thành phần khác nhau của phát biểu Trong đó một bộ ba có:
• Subject: thành phần này xác định cái gì mà phát biểu nói về (trong ví dụ là trang web), được gọi là chủ ngữ
• Predicate: thành phần này xác định thuộc tính hay những đặc trưng của chủ ngữ của phát biểu xác định (người tạo, ngày tạo, hay ngôn ngữ trong ví dụ này), được gọi là vị từ
• Object: thành phần này xác định giá trị của thuộc tính, được gọi là tân ngữ
Ví dụ 2.2: lấy lại phát biểu trên
http://www.example.org/index.html has a creator whose value is John Smith
Với phát biểu này thì những thuật ngữ RDF đối với những thành phần khác nhau của phát biểu là:
• Chủ ngữ là: URL http://www.example.org/index.html
• Vị từ là: creator
Trang 25• Tân ngữ là: John Smith
Tuy nhiên, phát biểu trên được viết ở ngôn ngữ tiếng Anh, nó có lợi trong việc giao tiếp giữa những người Anh, còn RDF thì tạo ra những phát biểu để máy có thể xử lý
Để làm những phát biểu này phù hợp cho việc xử lý bởi máy móc thì hai điều sau thực
sự cần thiết:
• Một hệ thống với những định danh máy có khả năng xử lý để xác định chủ ngữ,
vị từ và tân ngữ trong một phát biểu mà không có sự nhầm lẫn với những định danh trông có vẻ giống nhau mà được dùng bởi những người khác trên web
• Một ngôn ngữ máy có thể xử lý để biểu diễn những phát biểu này và trao đổi giữa các máy với nhau
RDF sử dụng những URI như nền tảng các cơ chế của nó để xác định những chủ ngữ, vị từ và tân ngữ trong những phát biểu Như phần trước đã nói rằng RDF dựa trên
ý tưởng của việc mô tả những phát biểu đơn giản về những tài nguyên, nơi mà mỗi phát biểu gồm có một chủ ngữ, vị từ và tân ngữ Vì vậy trong RDF, phát biểu ở trên có dạng:
• Chủ ngữ: http://www.example.org/index.html
• Vị từ: http://purl.org/dc/elements/1.1/creator
• Tân ngữ: http://www.example.org/staffid/85740
Chú ý URI được sử dụng như thế nào để xác định không chỉ chủ ngữ của phát biểu
ban đầu, mà còn xác định vị từ và tân ngữ, thay vì sử dụng từ “creator” và “John Smith”, một cách riêng biệt
Tập các bộ ba hợp lại tạo thành đồ thị RDF Các nút trong đồ thị có thể là các chủ ngữ và tân ngữ trong bộ ba và các cung trong đồ thị là vị từ Cho nên một bộ ba còn có thể được mô tả dưới dạng nút-cung–nút Hướng của các đồ thị rất quan trọng và nó luôn bắt đầu từ chủ ngữ đến tân ngữ
Vị từ
Hình 2.1 - Mối quan hệ giữa các thành phần trong một
Trang 26Vì thế phát biểu RDF ở trên sẽ được biểu diễn bằng đồ thị như hình sau:
Hình 2.2 - Phát biểu RDF đơn giản
Nhóm những phát biểu đựơc biểu diễn bởi một nhóm các nút và cung tương ứng
Vì thể với phát biểu bên dưới:
http://www.example.org/index.html has a creation-date whose value is August 16,
1999
http://www.example.org/index.html has a language whose value is English
Trong đồ thị RDF, đồ thị có thể biểu diễn như trong hình sau:
Hình 2.3 - Những phát biểu về cùng một tài nguyên
Trang 27Hình trên minh họa rằng những tân ngữ trong phát biểu RDF có thể hoặc là URI hoặc là những giá trị hằng số (được gọi là những Literal) biểu diễn bởi những chuỗi kí
tự, để biểu thị những loại giá trị thuộc tính Những Literal không thể được dùng như chủ ngữ hay vị từ trong một phát biểu Trong những đồ thị RDF đã vẽ, những nút là những URI được trình bày như hình elip, trong khi những nút là những Literal được vẽ như hình cái hộp (Những chuỗi kí tự đơn giản được sử dụng trong ví dụ này được gọi
là những Plain Literal) để phân biệt chúng với những Typed Literal Cả hai loại Plain Literal và Typed Literal có thể chứa đựng những kí tự UNICODE cho phép thông tin
từ nhiều ngôn ngữ khác nhau được biểu diễn một cách trực tiếp
Đôi khi không thuận tiện để vẽ những đồ thị biểu diễn chúng, thì chúng ta có thể sử dụng những bộ ba RDF để thay thế Ví dụ, ba phát biểu biểu diễn trong hình 2.3 được viết trong định dạng bộ ba như:
http://www.example.org/index.html xuất hiện ba lần (mỗi lần trong mỗi bộ ba) để trình
bày những bộ ba của đồ thị nhưng chỉ một lần trong đồ thị đã vẽ Tuy nhiên, những bộ
ba biểu diễn thông tin giống nhau một cách chính xác như đồ thị đã vẽ, và đây là vấn
để chính: điều gì là căn bản để cho RDF trở thành mô hình đồ thị của những phát biểu Định dạng được dùng để biểu diễn hay mô tả đồ thị là không quan trọng
Trang 28Định dạng bộ ba đầy đủ yêu cầu rằng những URI được viết ra hoàn toàn trong những móc nhọn “<>” mà như ví dụ minh họa ở trên, có thể dẫn đến những dòng dài hơn trong một trang giấy Để cho thuận tiện, bạn có thể sử dụng một cách viết rút gọn những bộ ba Cách viết tắt này thay thế một QName mà không có móc nhọn như một
sự rút gọn của một URI đầy đủ Một URI được tạo thành từ một QName bằng cách thêm tên cục bộ vào không gian URI gán tới tiếp đầu ngữ Vì thế, ví dụ, nếu tiếp đầu
ngữ QName foo được gán cho namespace URI http://example.org/somewhere/ thì QName foo:bar là hình thức rút gọn cho URI http://example.org/somewhere/bar
Những ví dụ trong tài liệu này chúng em sẽ sử dụng một số những tiếp đầu ngữ
QName thông dụng, định nghĩa như sau:
• Tiếp đầu ngữ rdf:, namespace URI:
Trang 29http://www.domain2.example.org/
Với việc sử dụng dạng rút gọn này, tập những bộ ba trước có thể được viết như:
ex:index.html dc:creator exstaff:85740
ex:index.html exterms:creation-date "August 16, 1999"
ex:index.html dc:language "en"
Từ khi RDF sử dụng URI thay cho những từ để đặt tên cho mọi thứ trong những phát biểu, thì RDF đề cập đến một tập những URI như một từ vựng Thông thường, URI trong nhiều từ vựng được cấu tạo để chúng có thể được biểu diễn như một tập những QName sử dụng một tiếp đầu ngữ thông dụng Nghĩa là, một namespace URI thông dụng sẽ được chọn cho tất cả những thuật ngữ trong một từ vựng, đặc biệt một URI dưới quyền điều khiển của bất cứ ai định nghĩa ra từ vựng URI mà được chứa đựng trong từ vựng được tạo ra bằng cách thêm những tên cục bộ riêng vào cuối của URI chung Điều này tạo ra một tập những URI với một tiếp đầu ngữ chung Ví dụ,
như được minh họa bởi những ví dụ trước, một tổ chức như example.org có thể định
nghĩa ra một từ vựng chứa đựng những URI bắt đầu với tiếp đầu ngữ cho những thuật ngữ nó sử dụng trong việc kinh doanh của nó, như “creation-date” hay “product” Việc
sử dụng những tiếp đầu ngữ URI chung cung cấp một cách thuận lợi để tạo ra những URI cho một tập những thuật ngữ liên quan tới Tuy nhiên, đây chỉ là một qui ước Mô hình RDF chỉ nhận ra những URI đầy đủ; nó không tìm kiếm bên trong URI hay sử dụng một số tri thức về cấu trúc của chúng
Ngoài ra, đôi khi một tổ chức sẽ sử dụng một namespace URI của một từ vựng như URL của một tài nguyên web mà cung cấp nhiều thông tin hơn nữa về từ vựng đó Ví
dụ, như đã chú ý lúc trước, tiếp đầu ngữ QName dc: sẽ được dùng trong những ví dụ của chương này, kết hợp với những namespace URI Thực ra, điều này đề cập đến từ vựng Dublin Core, việc truy cập những namespace URI này trong một trình duyệt web
sẽ lấy lại được thêm thông tin về từ vựng Dublin Core (đặc biệt, một RDF Schema)
Trang 30Tuy nhiên, điều này cũng chỉ là một qui ước RDF không cho rằng một namespace URI xác định một tài nguyên web bị sửa đổi
Trong phát biểu đầu tiên, thay vì xác định người tạo trang web bởi chuỗi kí tự
“John Smith”, ta gán cho nó một URI là http://www.example.org/staffid/85740 (sử
dụng một URI dựa vào số nhân viên của ông ấy) Với việc dùng URI cho ta lợi ích là xác định chủ ngữ của phát biểu có thể chính xác hơn Đó là, người tạo trang web không phải là chuỗi kí tự “John Smith”, hay một trong số bất kỳ hàng ngàn người có tên John Smith, nhưng đặc biệt John Smith kết hợp với URI đó (bất cứ ai tạo ra URI định nghĩa
ra sự kết hợp) Hơn nữa, từ khi có một URI chỉ đến John Smith, tên đó là một tài nguyên chính thức, và thông tin bổ sung có thể ghi lại về người đó, một cách đơn giản bằng cách thêm những phát biểu với URI của John như chủ ngữ Ví dụ, hình 1.9 biểu diễn một số những phát biểu bổ sung cho tên và tuổi của John
Hình 2.4 - Các thông tin bổ sung cho John Smith Những ví dụ này cũng minh họa rằng RDF sử dụng URI như những vị từ trong những phát biểu RDF Điều đó tốt hơn là sử dụng chuỗi kí tự như “creator” hay
“name” để xác định thuộc tính RDF sử dụng URI để xác định những thuộc tính quan trọng vì một số những lý do Lý do đầu tiên là, nó phân biệt những thuộc tính mà một
Trang 31người có thể sử dụng từ những thuộc tính khác mà bất cứ người nào khác có thể sử dụng Mặc khác, điều đó sẽ được xác định bởi cùng chuỗi kí tự
Sử dụng URI như chủ ngữ, vị từ và tân ngữ trong những phát biểu RDF hỗ trợ sự phát triển và sử dụng những từ vựng chia sẻ trên web, một khi mọi người có thể khám phá và bắt đầu sử dụng những từ vựng mà đã được dùng bởi những người khác để mô
tả mọi thứ, cho biết một sự hiểu biết của những khái niệm dùng chung Ví dụ, trong bộ ba:
ex:index.html dc:creator exstaff:85740
Vị từ dc:creator, khi được mở rộng hòan toàn như một URI, thì một tham chiếu mơ
hồ tới thuộc tính “creator” trong tập thuộc tính “siêu dữ liệu” Dublin Core, một tập những thuộc tính được sử dụng một cách rộng rãi để mô tả thông tin của mọi thứ Người viết bộ ba này nói rằng mối quan hệ giữa trang web (được xác định bởi
http://www.example.org/index.html )và người tạo trang web (một người khác xác định bởi http://www.example.org/staffid/85740 ) là khái niệm xác định bởi http://purl.org/dc/elements/1.1/creator Một người khác quen thuộc với từ vựng Dublin Core, hay người mà tìm hiểu dc:creator có nghĩa gì (nói bằng cách tìm kiếm định
nghĩa của nó trên web) sẽ biết điều đó có nghĩa gì bằng mối quan hệ này Ngoài ra, dựa vào sự hiểu biết này, mọi người có thể viết những chương trình để sử dụng theo ý
nghĩa đó khi xử lý những bộ ba chứa đựng vị từ dc:creator
Tất nhiên, điều này phụ thuộc vào sự gia tăng của việc sử dụng chung những URI
để đề cập đến mọi thứ thay vì sử dụng những literal; ví dụ: sử dụng URI như
exstaff:85740 và dc:creator thay vì những chuỗi kí tự như John Smith và creator Dù
vậy, việc sử dụng URI RDF không giải quyết tất cả những vấn đề chỉ rõ bởi vì, ví dụ, mọi người có thể vẫn sử dụng những URI khác nhau đề đề cập tới cùng một thứ Vì lý
do này, đó là một ý tưởng tốt để cố gắng sử dụng những thuật ngữ từ những từ vựng hiện đang tồn tại (như Dublin Core) hơn là tạo ra những thuật ngữ mới mà có thể trùng lắp với những từ vựng khác Những từ vựng thích hợp cho việc sử dụng trong những
Trang 32ứng dụng xác định lúc nào cũng được phát triển Tuy nhiên, khi những từ đồng nghĩa được tạo ra, mà thực tế đó là những URI khác nhau được sử dụng trong không gian web thông thường có thể được truy cập để tạo ra những cơ hội để xác định những sự tương đồng trong số những tham chiếu khác này, và cũng hướng tới việc di chuyển đến
sử dụng những tham chiếu chung
Ngoài ra, điều quan trọng để phân biệt giữa những ý nghĩa mà chính RDF kết hợp với những thuật ngữ (như dc:creator trong ví dụ trước) sử dụng trong những phát biểu RDF và định nghĩa bên ngoài có nghĩa là mọi người (hay chương trình được viết bởi người) có thể kết hợp những thuật ngữ này lại với nhau Như một ngôn ngữ, RDF chỉ định nghĩa cú pháp đồ thị của chủ ngữ, vị từ và tân ngữ, tất nhiên những ngữ nghĩa kết hợp với URI trong từ vựng rdf:, và tất nhiên những khái niệm khác được mô tả sau đó RDF không định nghĩa ngữ nghĩa của những thuật ngữ từ những từ vựng khác, như dc:creator, mà đã được trong những phát biểu RDF Những từ vựng xác định sẽ được tạo ra với những ý nghĩa xác định gán cho những URI định nghĩa trong chúng ngoài RDF Những phát biểu RDF sử dụng những URI từ những từ vựng này có thể chuyển những ý nghĩa xác định kết hợp với những thuật ngữ đó để mọi người quen thuộc với những từ vựng này, hay những ứng dụng RDF được viết để xử lý những từ vựng này,
mà không chuyển những ngữ nghĩa này tời một ứng dụng RDF tùy ý không được viết
để xử lý những từ vựng này
Ví dụ, mọi người có thể kết hợp ngữ nghĩa với một bộ ba như:
ex:index.html dc:creator exstaff:85740
Dựa trên ngữ nghĩa chúng kết hợp với sự xuất hiện của từ “creator” như thành phần của URI dc:creator, hay dựa trên sự hiểu biết của định nghĩa xác định của dc:creator của họ trong từ vựng Dublin Core Tuy nhiên, như một ứng dụng RDF tùy ý liên quan tới bộ ba có thể là một cái gì đó như
fy:joefy.iunm ed:dsfbups fytubgg:85740
Trang 33cũng như một số ngữ nghĩa tích hợp được liên quan Tương tự, một số ngôn ngữ văn bản tự nhiên mô tả ngữ nghĩa của dc:creator mà có thể được tìm thấy trên web không đưa ra ngữ nghĩa bên ngoài nào mà một ứng dụng tùy ý có thể sử dụng một cách trực tiếp
Tất nhiên, những URI từ một từ vựng xác định có thể được dùng trong những phát biểu RDF mặc cho một ứng dụng đã cho có thể không có khả năng kết hợp với bất kỳ ngữ nghĩa đặc biệt nào với chúng Ví dụ, phần mềm RDF chung sẽ nhận ra rằng diễn
biểu thức ở trên là một phát biểu RDF, mà ed:dsfbups là vị từ, và … một cách đơn giản
nó sẽ không phù hợp với bộ ba bất cứ ngữ nghĩa xác định nào mà người phát triển từ
vựng có thể kết hợp với một URI như ed:dsfbups Hơn nữa, dựa vào sự hiểu biết của
họ về một từ vựng đã cho, mọi người có thể viết những ứng dụng để xử sự theo những
ý nghĩa xác định được gán cho những URI từ từ vựng đó, mặc cho ngữ nghĩa đó không phù hợp cho những ứng dụng RDF không được viết theo cách này
RDF cung cấp một cách để tạo ra những phát biểu mà những ứng dụng có thể xử lý chính xác hơn Một ứng dụng thực sự không thể hiểu những phát biểu như đã được giải thích, hơn nữa một hệ thống cơ sở dữ liệu hiểu những thuật ngữ như nhân viên hay
lương trong việc xử lý một truy vấn như SELECT NAME FROM EMPLOYEE WHERE SALARY > 35000 Tuy nhiên, nếu một ứng dụng được viết một cách thích hợp thì nó
có thể làm việc với những phát biểu RDF trong một cách thức mà làm cho nó hiểu chúng, cũng như một hệ thống cơ sở dữ liệu và những ứng dụng của nó có thể làm việc tốt trong việc xử lý nhân viên và thông tin lương mà không hiểu chúng Ví dụ, một người dùng có thể tìm kiếm trên web tất cả những cuốn sách và đưa ra một giá trung bình cho mỗi cuốn sách Sau đó, người dùng có thể sửa thông tin đó quay lại web Trang web khác có thể lấy danh sách giá trung bình của những cuốn sách đó và tạo ra một trang khác Ở đây, tính sẵn có và việc sử dụng chung một từ vựng và một nhóm những URI dùng chung xác định cuốn sách mà họ áp dụng vào, để cho phép những người khác xây dựng một thông tin cơ sở về những cuốn sách trên web Cùng nguyên
Trang 34lý áp dụng cho số lượng lớn thông tin mà mọi người tạo ra cho hàng ngàn chủ ngữ mỗi ngày trên web
2.3.2 Literal
Những Literal được sử dụng để xác định các giá trị như những con số hay ngày tháng năm bởi ý nghĩa của sự hiển thị một từ vựng Bất cứ cái gì đó được biểu thị bởi một giá trị Literal cũng có thể được biểu diễn dưới dạng một URI, nhưng thường thuận tiện và trực giác hơn để sử dụng các Literal
Một Literal có thể là tân ngữ của một phát biểu RDF, nhưng không thể là chủ ngữ hay
vị từ
Literal có hai kiểu sau: Plain Literal và Typed Literal
• Plain Literal: là một chuỗi kết hợp với một thẻ (tag) ngôn ngữ tùy chọn Điều này có thể được sử dụng cho văn bản thông thường trong một ngôn ngữ tự nhiên
Ví dụ:
Hình 2.5 - Minh họa kiểu Plain Literal
Ví dụ trên mô tả tuổi của John Smith là 27 Ở đây ta biểu diễn tuổi của John Smith là một kiểu Plain Literal Giá trị 27 ở đây chỉ là một chuỗi gồm hai kí tự
‘2’ và ‘7’ Nhưng nếu chúng ta muốn biểu diễn nó là một con số thì phải làm thế nào ? Bằng cách dùng kiểu Typed Literal chúng ta sẽ có được cách định nghĩa
mà chúng ta muốn
Trang 35• Typed Literal: được tạo ra bằng cách kết hợp một chuỗi với một định danh URI
để biểu diễn một kiểu dữ liệu đặc biệt nào đó Kết quả trả về là một nút trong đồ thị tương tự như kiểu Literal Kiểu giá trị được biểu diễn bằng Typed Literal sẽ được ánh xạ đến kiểu giá trị đặc biệt mà ta đã khai báo thông qua URI Ở ví dụ trên, khi muốn biểu diễn tuổi của John Smith là một kiểu số nguyên thì ta sẽ khai báo như sau:
• Chủ ngữ: http://www.example.org/staffid/85740
• Vị từ: http://www.example.org/ terms/age
• Tân ngữ: “27”^^< http://www.w3.org/2001/XMLSchema#interger >
Và được biểu diễn bằng đồ thị như sau:
Hình 2.6 - Kiểu Typed Literal biểu diễn cho tuổi của John Smith
Tương tự như vậy ở ví dụ trên ta có thể dùng kiểu dữ liệu ngày tháng
• Chủ ngữ: http://www.example.org/staffid/85740
• Vị từ: http://www.example.org/ terms/creation-date
• Tân ngữ: “27”^^< http://www.w3.org/2001/XMLSchema# date>
Và được biểu diễn đồ thị như sau:
Trang 36Hình 2.7 - Minh họa kiểu Typed Literal
tử bên trong các phần tử mà xen kẽ giữa các phần tử đối với những nút và cung vị từ Điều này được gọi là một loạt những nút/cung Nút ở vị trí bắt đầu của chuỗi nối tiếp trở thành phần tử ở ngoài cùng, cung vị từ tiếp theo trở thành một phần tử con, và v.v
[1] RDF ::=[‘<rdf:RDF>’] description* [‘</rdf:RDF>’]
[2]description ::=’<rdf:Description’ idAboutAttr?’>’ propertyEIl*
‘</rdf:Description>’
[3] idAboutAttr ::= idAttr | aboutAttr
[4] aboutAttr ::= ‘about’=”tham chiếu URI”
[5] idAttr ::= ‘ID’ = “IDsymbol”
[6] propertyEIT ::= ‘<’propName ‘>’ value ‘</’ propName ‘>’| ‘<’ propName
Trang 37resourceAttr ‘/>’
[7] propName ::= QName
[8] value ::= description | string
[9] resource ::= resource = “tham chiếu URI”
[10] QName ::= [ Nsprefix ‘:’] name
[11] URI ::= string, interpreted per
[12] IDdsymbol ::= (bất kỳ ID nào hợp lệ 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ữ namspace hợp lệ nào)
[15] string ::= (bất kỳ chuỗi nào)
Bảng 3.1 - Cú pháp cơ bản của RDF
Ví dụ với phát biểu sau:
ex:index.html exterms:creation-date “August 16, 1999”
ex:index.html dc:language “en”
ex:index.html dc:creator exstaff:85740
Cú pháp RDF/XML như sau:
<?xml version=”1.0”>
<rdf:RDF ns#”
1999</exterm:creation-</rdf:Description>
<rdf:Description rdf:about=”
http://www.example.org/index.html”>
Trang 38< dc:language >en</ dc:language >
Như vậy, với một phát biểu ta có thể dùng từ khóa rdf:Description để mô tả cho nó
Tuy nhiên, ta thấy ba phát biểu có cùng một chủ ngữ
(http://www.example.org/index.html) nên ta có thể gộp ba phát biểu này lại với nhau dùng một thẻ rdf:Description chung như sau:
<?xml version=”1.0”>
<rdf:RDF ns#”
1999</exterm:creation-< dc:language >en1999</exterm:creation-</ dc:language >
< dc:creator rdf:resource= “
http://www.example.org/staffid/85740”/ >
</ rdf:Description >
</rdf:RDF>
Trang 392.3.4 Biểu diễn tuyên bố gián tiếp (Reification)
Xét phát biểu như “Điều 7 chương I nói người lao động có quyền đình công”, thì chúng ta đọc thành hai phát biểu Đầu tiên, phát biểu bên trong là “người lao động có quyền đình công” Và có một phát biểu bao ngoài , “Điều 7 chương I nói …” và chúng
ta có thể phán đoán điều này thực sự là một khẳng định Ở dạng đồ thị, điều này được biểu diễn dưới dạng hình vẽ:
Hình 2.8 - Ví dụ của một phát biểu về một phát biểu
Điều này cũng tương tự với tiến trình làm cho hợp lệ một phát biểu bên trong dựa vào sự tin tưởng của phát biểu bên ngoài – hình thành nền tảng của nhiều giao tiếp trước đây về kết cấu RDF được gọi là biểu diễn tuyên bố gián tiếp (Reification) Và nó hàm ý rằng điều đó tạo ra nhiều trở ngại quay lại chống nó, khi không có lòng tin đúng đắn với Reification Với Reification, một phát biểu được mô hình hóa như một tài nguyên được tham chiếu bởi phát biểu khác
2.4 RDF Schema
2.4.1 Giới thiệu RDFS
RDF sử dụng XML để trao đổi những mô tả tài nguyên web nhưng những tài nguyên mô tả có thể thuộc nhiều loại, bao gồm những tài nguyên XML và không XML RDF dựa vào những tiện ích để cho phép các tài nguyên web có thể được xử lý
tự động RDF có thể được dùng trong nhiều ứng dụng khác nhau, ví dụ: trong khám
Điều 7 chương I
Người lao động Đình công
Nói
Có quyền
Trang 40phá tài nguyên để giúp cho việc tìm kiếm cho kết quả tốt hơn, hay trong việc phân chia thành loại để mô tả nội dung và những mối quan hệ sẵn có tại một trang web đặc biệt bằng các phần mềm thông minh để làm cho việc chia sẻ và trao đổi tri thức được dễ dàng hơn Và nhu cầu của con người đòi hỏi phải có 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ụ: công ty example.com 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 Những mô tả được dùng
bởi những ứng dụng này có thể được biểu diễn ở dạng mô hình như mối quan hệ giữa những tài nguyên web Những thuộc tính RDF có thể được xem như những thuộc tính của tài nguyên và điều này tương ứng với cặp thuộc tính –giá trị Thuộc tính RDF cũng biểu diễn quan hệ giữa các tài nguyên Vì thế mô hình dữ liệu RDF có thể tổng hợp lại một biểu đồ thực thể-quan hệ
Tuy nhiên, mô hình dữ liệu RDF không có cơ chế nào để khai báo những thuộc tính này, cũng không cung cấp bất kỳ cơ chế nào để định nghĩa mối quan hệ giữa những thuộc tính này và những tài nguyên khác Và mục đích của RDF là làm những điều đó Những khai báo của các thuộc tính tài nguyên và ngữ nghĩa tương ứng với chúng được định nghĩa trong phạm vi của RDF như RDFS Một RDFS không chỉ định nghĩa thuộc tính (thuộc tính trong RDFS) của tài nguyên (ví dụ: title, author, subject, size, …) mà còn có thể định nghĩa ra loại tài nguyên (các lớp trong RDFS) được mô tả (book, people, companies, …) và các mối quan hệ qua lại giữa tài nguyên với tài nguyên, giữa thuộc tính với thuộc tính, và giữa tài nguyên với thuộc tính
RDFS cung cấp một hệ thống kiểu mẫu (type system) cơ bản để dùng trong những
mô hình RDF Nó định nghĩa những tài nguyên và những thuộc tính như rdfs:Class và rdfs:subClassOf mà chúng dùng để xác định những giản đồ chuyên biệt về ứng dụng
RDFS cung cấp thông tin về sự giải thích của những phát biểu trong một mô hình dữ liệu RDF và nó cũng xác định những ràng buộc nên được dùng trong những mô hình
dữ liệu