Khác với các dạng dữ liệu được trình bày trong HTML, dữ liệu trong Semantic Web được đánh dấu, phân lớp, mô hình hóa, được bổ sung thêm các thuộc tính, các mối liên hệ… theo các lĩnh vực
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS HÀ HẢI NAM
HÀ NỘI - 2011
Trang 2Chúng ta có thể nhận thấy, hầu hết những dữ liệu thật sự quan trọng vẫn còn được che dấu bên dưới các ứng dụng Có nhiều lý do dẫn đến khó khăn trong vấn đề chia sẻ dữ liệu Trong đó những nguyên nhân chúng ta thường gặp như sau:
Semantic Web (Web ngữ nghĩa) là thế hệ mở rộng của Web hiện tại được đưa ra bởi Tim Lee vào năm 1998 Semantic Web là một công cụ để con người cũng như máy tính sử dụng để biểu diễn thông tin Semantic Web là một dạng dữ liệu được tổ chức khoa học trên Web Khác với các dạng dữ liệu được trình bày trong HTML, dữ liệu trong Semantic Web được đánh dấu, phân lớp, mô hình hóa, được bổ sung thêm các thuộc tính, các mối liên hệ… theo các lĩnh vực cụ thể, qua đó giúp cho các phần mềm máy tính có thể hiểu được dữ liệu, trao đổi dữ liệu với nhau và tự động xử lý được những dữ liệu được giao cho
Berners-Một số ứng dụng dựa trên ngữ nghĩa như: phát triển các chuẩn công nghệ chung để biểu diễn thông tin và cho phép máy tính có thể hiểu được một số thông tin trên Web, hỗ trợ tìm kiếm thông minh hơn, hỗ trợ việc khám phá, tách chiết thông tin, tích hợp dữ liệu và tự động hóa một số công việc thay cho con người
Với nhu cầu tìm kiếm thông tin một cách nhanh chóng và chính xác, luận văn đã xây dựng một hệ lưu trữ thông tin quản lý của một doanh nghiệp dưới dạng RDF data và một web browser để truy xuất tới nguồn dữ liệu RDF đó với mục đích tìm kiếm và quản lý thông tin
Cấu trúc nội dung luận văn bao gồm các phần sau:
Chương 1: Giới thiệu vấn đề quản lý tài nguyên với chuẩn dữ liệu meta
Chương này giới thiệu về siêu dữ liệu và vấn đề quản lý siêu dữ liệu
Chương 2: Cơ sở lý thuyết
Chương này trình bày cơ sở lý thuyết về các chuẩn dữ liệu meta, ngôn ngữ truy vấn SPARQL
Chương 3: Ứng dụng quản lý tài nguyên
Chương này giới thiệu một hệ lưu trữ thông tin quản lý của một doanh nghiệp dưới dạng RDF data
và một web browser để truy xuất tới nguồn dữ liệu RDF đó
Chương 1 – VẤN ĐỀ QUẢN LÝ TÀI NGUYÊN VỚI CHUẨN DỮ LIỆU META
Trang 31.1 Đặt vấn đề
Với sự phát triển ngày càng nhiều các nguồn tin điện tử, siêu dữ liệu trở nên quan trọng và có nhiều dạng khác nhau, từ mô tả đến quản trị nguồn Ngày nay, có nhiều sơ đồ siêu dữ liệu khác nhau được phát triển và sử dụng trên thế giới Yếu tố siêu dữ liệu Dublin Core là một trong tiêu chuẩn siêu dữ liệu được nhiều tổ chức quan tâm đang ngày càng trở nên phổ biến trong việc tạo lập tài liệu điện tử và hỗ trợ tìm kiếm hiệu quả thông tin Siêu dữ liệu vẫn còn là vấn đề mới đối với Việt Nam, chúng ta cần phải quan tâm nghiên cứu, phát triển và ứng dụng siêu dữ liệu trong quá trình phát triển các nguồn tin điện tử Ứng dụng siêu dữ liệu sẽ giúp chúng ta có những công cụ tìm kiếm trên Web đảm bảo tính chính xác, phù hợp với yêu cầu hơn
1.2.2 Các level cơ bản về cách sử dụng siêu dữ liệu
Level 1: Đây là cách sử dụng cơ bản nhất, ví dụ trong hệ quản trị CSDL thì metadata sẽ chứa thông tin các table, các index, package…
Level 2: Cách sử dụng này dùng để định nghĩa các qui trình nghiệp vụ, mô hình hóa dữ liệu trong một tổ chức Ví dụ mapping dữ liệu từ CSDL thật thành các Object, lược đồ hoạt động UML, Pageflow của các trang web…
Level 3: Là cầu nối giữa các qui trình nghiệp vụ với dữ liệu metadata bên dưới Ví dụ trong framework ADF Oralce (Application Development Framework) thì
Tầng Model và Bussiness Component dùng để mô hình hóa dữ liệu, vẽ các lược đồ quan hệ, qui trình nghiệp vụ của một ứng dụng
Tầng View dùng để hiển thị giao diện cho người dùng sử dụng các công nghệ XML và HTML (1 hình thức của Metadata), JSF, JSP, Faces Core
Tầng Controller dùng để kết nối tầng Model và View thông qua 1file meta-inf của ứng dụng: DataBindings.xml, hibernate.xml ( có thể hiểu là các file config chuẩn)
Level 4: Cách sử dụng cao hơn nữa là sử dụng metadata để biểu thị các lược đồ Use case dành cho việc quản lý các nghiệp vụ Ví dụ đơn giản là ứng dụng Workflow cho quản lý luồng công viêc Workflow thực chất là tập các thao tác, hành động được thực thi tự động theo lập trình ứng dụng
Trang 4 Level 5: Metadata ở mức này được hiểu như là cách quản lý dữ liệu dùng cho việc trích xuất báo cáo, đánh giá 1 tiêu chí nào đó (rủi ro, lỗi, xu hướng ) hoặc dùng cho việc tích hợp các ứng dụng của các nền tảng khác nhau (tích hợp dữ liệu, tích hợp qui trình nghiệp vụ, tích hợp bảo mật), ví dụ như sử dụng BPEL4WS là một cách dùng mới trong SOA của Oracle, Microsoft, IBM…
Trang 5 Data Warehouse
BI reporting tools
1.2.5 Quản lý siêu dữ liệu
Việc quản lý siêu dữ liệu được thực hiện trong một chu trình Đó là cách tạo, nhận, lưu trữ và quản
lý giúp cho việc giảm xung đột và dư thừa Mặt khác đó cũng chính là cách sử dụng của metadata trong từng trường hợp cụ thể của mỗi ứng dụng, hệ thống
Hình 1.2 Mô tả các phần chính của quá trình quản lý siêu dữ liệu trong chu trình
Hình 1.2: Quá trình quản lý siêu dữ liệu
Trang 6Chương 2 – CƠ SỞ LÝ THUYẾT
2.1 Các chuẩn dữ liệu meta
2.1.1 Dublin Core Metadata
Trang 7ISO/IEC 11179 là một tiêu chuẩn siêu dữ liệu: điều khiển trao đổi dữ liệu trong một môi trường không đồng nhất, dựa trên định nghĩa chính xác của dữ liệu
2.1.2.2 Cấu trúc của ISO/IEC 11179 Metadata registry
ISO / IEC 11179 là kết quả của hai yếu tố cơ bản lý thuyết ngữ nghĩa, kết hợp với lý thuyết mô hình hóa dữ liệu
a) Lý thuyết ngữ nghĩa:
1 Từ đồng nghĩa
2 Quan hệ giữa nội dung và thể hiện
b) Lý thuyết mô hình hóa dữ liệu: đó là quan hệ của Lớp (Class) và các đặc trưng (characteristic) 2.1.2.3 Mô hình cơ bản của Data Element
Trong ISO/IEC 11179 data element được chia thành hai phần:
Data Element Concept: (DEC) nội dung được biểu diễn trong các thể hiện của thành phần dữ liệu (data element)
Representation: mô tả các kiểu dữ liệu, giá trị, các thuộc tính…
Trong lý thuyết mô hình hóa dữ liệu thì Data Element được định nghĩa như sau:
Object class
Property
Trang 8Hình 2.1 Mô hình cơ bản của Data Element
Hình 2.2: Mô hình RDF
2.1.3.2 Các khái niệm cơ bản
Namespace và cách khai báo
Khai báo namespace: việc khai báo namespace giúp cho giúp cho tài liệu RDF ngắn ngọn và dễ đọc
hơn đối với người thiết kế
Cú pháp khai báo một Namespace theo W3C:
NSAttName ::= PrefixedAttName| DefaultAttName
Trang 9STag::= '<' QName (S Attribute)* S?'>’
ETag::= '</' QName S? '>'
EmptyElemTag::= '<' QName (S Attribute)* S?'/>'
Bộ ba RDF (RDF Triple)
Thông tin biểu diễn theo mô hình RDF là một phát biểu (Statement) ở dạng cấu trúc bộ ba (Triple),
nó gồm ba thành phần cơ bản (Subject, Predicate, Object):
Subject chỉ đối tượng đang được mô tả đóng vai trò là chủ thể
Predicate (hay Property) là kiểu thuộc tính hay quan hệ
Object là giá trị thuộc tính hay đối tượng của chủ thể đã nêu Object có thể là một giá trị nguyên thủy (Literal) như số nguyên, chuỗi, ngày hoặc cũng có thể là một tài nguyên
Literal
Literal được sử dụng để biểu diễn các giá trị như con số, ngày tháng, chuỗi…Bất kỳ điều gì có thể biểu diễn bởi một giá trị Literal thì cũng có thể biểu diễn dưới dạng một URI Một Literal có thể là một Object của một phát biểu, nhưng không thể là một Subject hay Predicate
Literal có hai kiểu sau: Plain Literal hay Typed Literal
http://www.example.org/index.html has a creation-date whose value is August 16, 1999
được biểu diễn dưới dạng đồ thị như sau:
Có thể được viết dưới dạng triple như sau:
ex:index.html exterms:creation-date “August 16, 1999”
Trang 10Cú pháp RDF/XML biểu diễn phát biểu trên như sau:
RDF định nghĩa 3 loại đối tượng container: Bag, Sequence và Alternative
Bag: là danh sách không có thứ tự của các tài nguyên hoặc các giá trị Bag cho phép các giá trị có thể trùng lặp nhau
Sequence: là danh sách có thứ tự của các tài nguyên hoặc các giá trị, chẳng hạn dùng Sequence để lưu trữ các giá trị theo thứ tự bảng chữ cái Sequence cho phép những giá trị có thể trùng lặp nhau
Alternative: là một danh sách các tài nguyên hoặc các giá trị, được dùng để biểu diễn các giá trị lựa chọn của một thuộc tính
RDF-Bảng 2.2: Các lớp trong RDF/RDFS
rdfs:Resource Lớp tài nguyên Tất cả những gì được mô tả bằng biểu thức
RDF đều là tài nguyên và là thể hiện của lớp rdfs:Resource
Trang 11rdfs:Literal Lớp những giá trị Literal, ví dụ: chuỗi kí tự và các số nguyên rdf:XMLLiteral Lớp các giá trị Literal XML
rdfs:Class Lớp nói chung dùng để định nghĩa các khái niệm
rdf:Property Lớp các thuộc tính của RDF, dùng để mô tả đặc điểm của các
thể hiện rdf:Resource
rdfs:Datatype Lớp các kiểu dữ liệu của RDF
rdf:Statement Lớp các phát biểu của RDF
rdf:type Chỉ mối quan hệ là thể hiện
rdfs:domain Không gian giá trị được áp
dụng cho một thuộc tính nào
rdfs:label Tên của resource, mục đích
để con người có thể đọc được
rdfs:Resource rdfs:Literal
rdfs:comment Mô tả của tài nguyên rdfs:Resource rdfs:Literal rdfs:member Thành viên của một container rdfs:Resource rdfs:Resource rdf:first Phần tử đầu tiên trong danh
sách (list) RDF Thường được gọi là đầu
rdf:List rdfs:Resource
Trang 12rdf:rest Phần còn lại của danh sách
RDF sau phần tử đầu tiên
rdf:List rdf:List
rdfs:seeAlso Thông tin cung cấp them về
tài nguyên cần quan tâm
rdfs:Resource rdfs:Resource
rdfs:isDefinedBy Chỉ ra namespace của tài
nguyên
rdfs:Resource rdfs:Resource
rdf:value Giá trị của thuộc tính khi nó
là tài nguyên được cấu trúc
đã đặt ra một thách thức cho các nhà nghiên cứu, làm sao xây dựng một ngôn ngữ có thể đáp ứng được yêu cầu nói trên
Tổ chức W3C đã phát triển và giới thiệu một ngôn ngữ chuẩn để truy vấn dữ liệu RDF Ngôn ngữ
truy vấn SPARQL (Simple Protocol And RDF Query Language) Đây là một ngôn ngữ đượ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
SPARQL là một ngôn ngữ để truy cập thông tin từ các đồ thị RDF Nó cung cấp những 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
2.2.2 Tạo một câu truy vấn đơn giản
Một câu truy vấn bao gồm 2 mệnh đề, mệnh đề SELECT và mệnh đề WHERE Mệnh đề SELECT định danh các biến mà ứng dụng quan tâm và mệnh đề WHERE bao gồm các triple pattern
Một triple pattern là một RDF triple nhưng mỗi thành phần (subject, predicate hay object) đều có thể
là một biến truy vấn
Trang 13Một basic graph pattern là một tập các triple pattern
Ngôn ngữ SPARQL dựa trên cơ sở đối sách các graph pattern Graph pattern
đơn giản nhất là các triple pattern
Kết quả của câu truy vấn là tất cả các giải pháp mà một câu truy vấn có thể phù hợp với đồ thị được truy vấn Một câu truy vấn có thể có không, một hoặc nhiều kết quả
2.2.3 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ự ‘?’ Đôi khi người ta cũng sử dụng kí tự ‘$’ để chỉ một biến, để chỉ rằng nơi mà hệ thống sử dụng ‘?’ như là một ký tự thay thế Trong một câu truy vấn, $abc và ?abc đều là biến
Bởi vì các URI có thể được viết rất dài, 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
Một blank node có thể xuất hiện trong một query pattern Nó giữ vai trò như một biến mặc dù nó 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
?x foaf:nick “Alice” , “Peter”
Các viết trên tương tự với cách viết:
Trang 14RDF collection có thể được viết trong các triple pattern sử dụng dấu “()”
Dạng “()” là một dạng viết tắt của resource rdf:nil hay <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> 2.2.4.5 RDF Literal
Một RDF Literal trong ngôn ngữ SPARQL được viết như một chuỗi trong dấu (“”), theo sau có thể là một tag optional language (được chỉ bởi ‘@’) hay là một kiểu optional datatype (được chỉ với ‘^^’) Có một dạng viết thuận lợi đối với các kiểu numeric-typed literal như xsd:integer, xsd:double hay là xsd:boolean
2.2.5 Ràng buộc dữ liệu
Ta có thể truy vấn dữ liệu với một kiểu dữ liệu có điều kiện
2.2.5.1 Thêm vào kiểu Optional
Với những ví dụ trên ta thấy rằng mỗi giải pháp của câu truy vấn phải hoàn toàn phù hợp với các thành phần của querry pattern Nhưng với việc thêm vào từ khóa optional ta có thể có nhiều hơn giải pháp, mặc dù mỗi giải pháp này có thể chỉ thỏa mãn một phần của querry pattern
2.2.5.2 Ràng buộc trong khối Optional
Ràng buộc có thể được sử dụng trong khối optional
2.2.5.3 Nhiều khối Optional
Graph pattern được định nghĩa đệ qui Một câu truy vấn có thể có một hay nhiều khối optional và bất
kỳ thành phần nào trong query pattern có thể có một phần optional
2.2.6 RDF Dataset
Mô hình dữ liệu RDF thể hiện thông tin về các đồ thị bao gồm các bộ ba với các subject, predicate
và object Các kho dữ liệu RDF chứa nhiều các đồ thị RDF và thông tin bản ghi về mỗi đồ thị và nó cho phép một ứng dụng để thực hiện các truy vấn có liên quan đến thông tin từ nhiều hơn một đồ thị
Khi truy vấn một tập hợp các đồ thị, từ khóa GRAPH được sử dụng để đối sánh các mẫu bộ ba trên các đồ thị được đặt tên GRAPH có thể cung cấp một URI để lựa chon một đồ thị hoặc sử dụng một biến chỉ các URI trong truy vấn RDF dataset
Chương 3: ỨNG DỤNG QUẢN LÝ TÀI NGUYÊN
3.1 Mô tả ứng dụng
Trong chương này, luận văn giới thiệu một ứng dụng minh họa cho việc xây dựng và lưu trữ dữ liệu RDF trong hệ quản trị CSDL quan hệ và truy vấn dựa trên ngữ nghĩa
Trang 15Ngữ cảnh đặt ra là xây dựng một hệ lưu trữ thông tin quản lý của một doanh nghiệp bao gồm: thông tin nhân viên, khách hàng, đơn đặt hàng, dưới dạng RDF data và một web browser để truy xuất tới nguồn
dữ liệu RDF đó với mục đích tìm kiếm và quản lý thông tin
Bài toán có thể phân thành 3 chức năng chính: tạo dữ liệu (gồm xây dựng lược đồ RDF từ CSDL quan hệ- cơ chế mapping), xử lý dữ liệu (dùng Engine của Virtuoso hỗ trợ), xem kết quả và khai thác dữ liệu (demo sử dụng truy vấn SPARQL)
3.2 Môi trường triển khai ứng dụng
Có rất nhiều framework RDF như:
3.2.3 Virtuoso open
Virtuoso là một cơ sở dữ liệu quan hệ có hiệu năng cao Giống như một cơ sở dữ liệu, nó cung cấp các giao dịch, một trình biên dịch SQL thông minh, ngôn ngữ stored-procedure mạnh với các tuỳ chọn là Java và Net server – side hosting, hot backup, …Nó có tất cả các giao diện truy cập dữ liệu như ODBC, JDBC, ADO Net và OLE/DB
Virtuoso có một kho lưu trữ được xây dựng trong WebDAV Kho lưu trữ có thể lưu trữ nội dung trang web tĩnh và động, cung cấp các phiên bản và hỗ trợ SPARQL nhúng vào SQL để truy vấn dữ liệu RDF được lưu trữ trong cơ sở dữ liệu của Virtuoso
Trong demo này sử dụng Virtuoso Open vì nó cung cấp gần như toàn bộ DataProVider: Net, J2SE, PHP và các công cụ hỗ trợ mapping rdf, các graph, và có các API đầy đủ hơn hai framework trên
3.3 Mô tả các cơ sở dữ liệu minh họa
Thiết kế cơ sở dữ liệu gồm các bảng như sau: