Tải bản đầy đủ (.pdf) (24 trang)

Nghiên cứu ứng dụng chuẩn quản lý tài nguyên trong doanh nghiệp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.07 MB, 24 trang )

1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG







Đỗ Thị Hằng


NGHIÊN CỨU ỨNG DỤNG CHUẨN QUẢN LÝ
TÀI NGUYÊN TRONG DOANH NGHIỆP


Chuyên ngành: Truyền dữ liệu và Mạng máy tính
Mã số: 60.48.15



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



2

MỞ ĐẦU
Sự bùng nổ của công nghệ thông tin đã dẫn đến nhu cầu cần chia sẻ dữ liệu của con người. Dữ liệu
được chia sẻ giữa các cá thể, cơ quan, tổ chức hay quốc gia với nhiều hình thức khác nhau.
Mặc dù nguồn thông tin được chia sẻ hiện nay là rất lớn, đặc biệt là các nguồn thông tin được chia sẻ
trên Internet. Tuy nhiên để truy vấn và tìm kiếm được những thông tin cần thiết trên kho dữ liệu khổng lồ
này là vấn đề rất khó khăn và đang được các nhà khoa học đặc biệt quan tâm nghiên cứu.
Chú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 Berners-
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.
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
3

1.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 Siêu dữ liệu
1.2.1 Định nghĩa
Định nghĩa đơn giản thì Metadata là dữ liệu để mô tả dữ liệu. Metadata cung cấp thông tin về dữ liệu
khác và thông tin được quản lý trong các hệ thống, phần mềm trung gian và các ứng dụng.
Trong cơ sở dữ liệu, metadata là các dạng biểu diễn khác nhau của các đối tượng trong cơ sở dữ liệu.
Trong cơ sở dữ liệu quan hệ thì metadata là các định nghĩa của bảng, cột, cơ sở dữ liệu, view và nhiều đối
tượng khác. Trong kho dữ liệu, metadata là dạng định nghĩa dữ liệu như: bảng, cột, một báo cáo, qui trình
nghiệp vụ

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.
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…

Hình 1.1: Mô hình sử dụng metadata
1.2.3 Các loại siêu dữ liệu
1.2.3.1 Business metadata
Dùng để biểu diễn cho việc mô hình hóa dữ liệu, mapping dữ liệu từ Database thành các Object (sử
dụng các công nghệ như EJB, Hibernate…)
1.2.3.2 Technical metadata

Định nghĩa cấu trúc của hệ thống IT, ứng dụng, CSDL, Data Warehouse…, technical metadata được
bắt nguồn từ các siêu dữ liệu nghiệp vụ, các hàm, các chức năng.
1.2.4 Sources của siêu dữ liệu
 Các hệ thống vận hành
 Phần mềm trung gian
 Các hệ cơ sở dữ liệu
 Các ứng dụng
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













6

Chương 2 – CƠ SỞ LÝ THUYẾT
2.1 Các chuẩn dữ liệu meta
2.1.1 Dublin Core Metadata
2.1.1.1 Giới thiệu
Dublin Core Metadata là một trong những sơ đồ yếu tố siêu dữ liệu phổ biến và được nhiều người
biết đến
2.1.1.2 Dublin Core Metadata bao gồm 15 yếu tố sau:
1. Nhan đề (Title)
2. Tác giả (Creator)
3. Chủ đề (Subject)
4. Tóm tắt (Description)
5. Nhà xuất bản (Publisher)
6. Tác giả phụ (Contributor)
7. Ngày tháng (Date)
8. Loại (kiểu) (Type)
9. Khổ mẫu (Format
10. Định danh (Identifier)
11. Nguồn (Resource)
12. Ngôn ngữ (Language)
13. Liên kết (Relation)
14. Diện bao quát (Coverage)
15. Bản quyền (Right)
7

2.1.2 ISO/IEC 11179
ISO/IEC 11179 (hay còn gọi là ISO/IEC 11179 Metadata Registry (MDR)) là 1 tiêu chuẩn quốc tế
cho việc mô tả metadata trong Metadata Registry
2.1.2.1 Mục đích:

Các tổ chức thường muốn trao đổi dữ liệu một cách nhanh chóng và chính xác giữa các hệ thống sử
dụng công nghệ tích hợp ứng dụng . Khi 1 transaction kết thúc, dữ liệu được lưu trữ vào data warehouse và
các hệ thống logic nghiệp vụ dùng để phân tích dữ liệu
ISO/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

8

Hình 2.1 Mô hình cơ bản của Data Element
2.1.3 RDF
RDF là một chuẩn dùng để mô tả thông tin do W3C đưa ra nhằm tạo ra các metadata.
2.1.3.1 Tổng quan RDF
Khung mô tả tài nguyên RDF là một ngôn ngữ siêu dữ liệu, cho phép biểu diễn dữ liệu trên Web và
cung cấp một mô hình để mô tả, tạo các mối quan hệ giữa các tài nguyên. RDF định nghĩa một nguồn tài
nguyên (Resource) như một đối tượng bất kỳ có khả năng xác định duy nhất bởi một URI. Mỗi nguồn tài

nguyên đều có các thuộc tính và được xác định kiểu dữ liệu tương ứng.

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
PrefixedAttName ::= 'xmlns:' NCName
DefaultAttName ::= 'xmlns'
NCName ::= Name - (Char* ':' Char*)
Qualified name và cách sử dụng
Qualified name (QName) bao gồm một tiếp đầu ngữ đã được gán trước đó bởi một URI theo sau là
dấu ‘:’ và tên cục bộ.
Cách định nghĩa một QName:
QName::= (Prefix ':')? LocalPhần
Prefix::= NCName
LocalPhần::= NCName
Cách dùng QName đối với kiểu dữ liệu là element
9

STag::= '<' 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.
2.1.3.3 Cú pháp RDF/XML
Cú pháp RDF/XML cơ bản
Mô hình RDF thể hiện một mô hình ở mức trừu tượng để định nghĩa metadata. Cú pháp RDF được
dùng để tạo ra và trao đổi metadata. Cấu trúc RDF dựa trên XML.
Các ví dụ minh họa
Ví dụ 1: Xét phát biểu sau:
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”.
10

Cú pháp RDF/XML biểu diễn phát biểu trên như sau:
1. <?xml version="1.0"?>
2. <rdf:RDF xmlns:rdf="
3. xmlns:exterms="
4. <rdf:Description rdf:about="
5. <exterms:creation-date>August 16, 1999</exterms:creation-date>
6. </rdf:Description>
7. </rdf:RDF>
RDF Container

Để mô tả tập hợp của nhiều đối tượng như một quyển sách được viết bởi nhiều tác giả, danh sách các
học viên trong một khóa học, RDF cung cấp nhiều kiểu và nhiều thuộc tính tích hợp sẵn giúp chúng ta mô
tả được những tập như vậy, trong đó có kiểu khai báo container, dùng để lưu danh sách các tài nguyên hoặc
các kiểu giá trị. Các phần tử của một container có thể là các tài nguyên URI (có thể là blank nodes) hay là
các giá trị literals
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 Collection
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).
RDF Schema
RDFS (RDF - Schema) là một ngôn ngữ Ontology được phát triển ở tầng trên của RDF. RDF-
Schema là một phiên bản mở rộng của RDF được bổ sung thêm các tập từ vựng để hỗ trợ cho việc xây dựng
các Ontology được dễ dàng. Ngoài tính năng biểu diễn thông tin ở dạng bộ ba (Triple) như RDF, RDFS còn
được xây dựng để hình thành nên ngữ nghĩa cho thông tin, làm cơ sở để xây dựng các công cụ tìm kiếm ngữ
nghĩa.
Bảng 2.2: Các lớp trong RDF/RDFS
Tên lớp Chú thích
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.
11

rdfs: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:Bag Lớp các Container không sắp thứ tự.
rdf:Seq Lớp các Container được sắp thứ tự.
rdf:Alt Lớp các Container thay thế.
rdfs:Container Lớp các RDF Container.
rdfs:ContainerMembershipPrope
rty
Lớp các thuộc tính thành viên của một Container. Nó được
mô tả dưới dạng: rdf:_1, rdf:_2,…
rdf:List Lớp các danh sách (list) của RDF.
Bảng 2.3: Các thuộc tính trong RDF/RDFS
Tên thuộc tính Chú thích Domain Range
rdf:type Chỉ mối quan hệ là thể hiện
của một lớp
rdfs:Resource rdfs:Class
rdf:subClassOf Chỉ mối quan hệ lớp con của
một lớp
rdfs:Class rdfs:Class
rdf:subPropertyOf Chỉ mối quan hệ đặc biệt hóa
của một thuộc tính
rdf:Property rdf:Property
rdfs:domain Không gian giá trị được áp
dụng cho một thuộc tính nào
đó
rdf:Property rdfs:Class
rdfs:range Miền giá trị cho một thuộc
tính nào đó

rdf:Property rdfs:Class
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
12

rdf: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

rdfs:Resource rdfs:Resource
rdf:subject Subject của một phát biểu
RDF
rdfs:Statement rdfs:Resource
rdf:predicate Predicate của một phát biểu
RDF.
rdfs:Statement rdfs:Resource
rdf:object Object của một phát biểu
RDF.
rdfs:Statement rdfs:Resource
2.2 Truy vấn dữ liệu trong RDF
2.2.1 Giới thiệu
Khung ứng dụng RDF được xem là công cụ để mô tả thông tin về các tài nguyên cho Web ngữ nghĩa
một cách linh động. RDF có thể được sử dụng để biểu diễn thông tin cá nhân, mạng xã hội, siêu dữ liệu về
tài nguyên số cũng như để cung cấp một phương tiện tích hợp các nguồn thông tin hỗn tạp. Với một nguồn
tài nguyên phong phú và lớn như thế, làm thế nào để chúng ta có thể truy vấn chính xác và hiệu quả. Điều đó
đã đặ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.
13

Mộ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.
2.2.4 Những dạng cú pháp khác
2.2.4.1 Danh sách predicate-Object
Các triple pattern với một subject chung có thể được viết sao cho subject đó chỉ được viết 1 lần, mỗi
triple pattern sẽ được cách nhau bới dấu ‘;’
?x foaf:name ?name ;
foaf:mbox ?mbox .
Cách viết trên tương tự với cách viết:
?x foaf:name ?name .
?x foaf:mbox ?mbox .
2.2.4.2 Danh sách các object
Nếu các triple pattern có cùng subject và predicate, ta có thể sử dụng dấu “,” để ngăn cách các
object.

?x foaf:nick “Alice” , “Peter” .
Các viết trên tương tự với cách viết:
?x foaf:nick “Alice” .
?x foaf:nick “Peter” .
2.2.4.3 Blank node:
Một blank node chỉ được sử dụng một lần trong câu truy vấn có thể được viết tắt bằng cách sử dụng
“[]”.
[] :p “v” .
[ :p “v” ] .
2.2.4.4 RDF Collections:
14

RDF 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 < .
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
15

Ngữ 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.1 Jena
Là một Java framework cho việc 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.
3.2.2 Sesame
Sesame là một phần mềm mã nguồn mở giúp cho việc lưu trữ và truy vấn dữ liệu RDF và RDFS.
Trước hết, được xây dựng như một phần mềm trung gian chạy trên nền Java Web Server Tomcat, Sesame
cho phép người dùng cài đặt và cấu hình nó để lưu trữ dữ liệu RDF và RDFS.
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:
Bảng 3.2: Customer
STT Tên trường Kiểu Kích thước
1 CustomerID VARCHAR 5
2 CompanyName VARCHAR 40
3 ContactName VARCHAR 30

4 ContactTitle VARCHAR 30

5 Address VARCHAR 60
16

6 City


VARCHAR 15
7 Region VARCHAR 15
8 PostalCode VARCHAR 10
9 Country VARCHAR 15
10 CountryCode VARCHAR 2
11 Phone VARCHAR 24
Bảng 3.3: Order
STT Tên trường Kiểu Kích thước
1 OrderID INTEGER 10
2 CustomerID VARCHAR 5
3 EmployeeID INTEGER 10
4 OrderDate DATETIME 19
5 RequiredDate DATE 10
6 ShippedDate DATETIME 19
7 ShipVia INTEGER 10
8
Freight
DOUBLE
PRECISION
16
9 ShipName VARCHAR 40
10 ShipAddress VARCHAR 60
11 ShipCity VARCHAR 15
12 ShipRegion VARCHAR 15
13 ShipPostalCode VARCHAR 10
14 ShipCountry VARCHAR 15
15 ShipCountryCode VARCHAR 2

Mapping RDF Data từ CSDL quan hệ dùng tool Protegé hoặc package RDF Mapper của virtuoso
 Dùng script mapping để thực hiện gồm các bước như sau:

Tạo RDF view
RDF View là ánh xạ dữ liệu quan hệ thành RDF. Virtuoso bao gồm khai báo Meta Schema để định
nghĩa mapping của SQL data tới RDF ontologies. Mapping dữ liệu là động, do đó các thay đổi dữ liệu được
cập nhật ngay trong RDF representation
Ở cấp độ cơ bản nhất, RDF Views chuyển đổi tập kết quả của một câu lệnh Select trong SQL tới
một tập triples. Trong mô hình thực thể quan hệ mỗi thực thể được biểu diễn là một bảng, mỗi thuộc tính của
thực thể là một cột trong bảng, các quan hệ giữa các thực thể được chỉ định bởi các khóa ngoại.
17

Đối với hệ CSDL quan hệ ERD thì mỗi entity (thực thể) xem như một dòng trong CSDL bao gồm
các giá trị tương ứng với cột. Mỗi table xem như là một lớp (class) và biểu diễn của RDF cũng thể hiện
tương tự cho entity:
 Mỗi cột trong table sẽ là thuộc tính
 Mỗi giá trị của cột sẽ là giá trị thuộc tính
 Mỗi khóa chính sẽ là ID của entity
 Mỗi dòng là thể hiện của mỗi thực thể
 Mỗi thể hiện sẽ biểu diễn tập tripple với ID entity
Thuật toán cơ bản của mapping:
 Tạo một lớp RDF cho từng table
 Chuyển đổi khóa chính và khóa phụ vào trong IRI
 Gán mỗi predicate IRI tới từng cột
 Gán rdf:type predicate cho tưng dòng và link tới lớp RDF tương ứng

18

Hình 3.4: Kết quả mapping Customer table tới RDF Entity
Đóng gói thành package và thực thi trong engine của Virtuoso

Hình 3.5: Tool rdf_mapper của Virtuoso
19


3.4 Cài đặt và thực thi chương trình
Quy trình xử lý câu truy vấn của ứng dụng thể hiện trong hình 3.6

Hình 3.6: Quy trình xử lý câu truy vấn
Chi tiết các giao thức của ứng dụng bao gồm: client được xây dựng từ ASP.NET sẽ giao tiếp với Virtuoso
thông qua driver ADO.NET Provider được cung cấp bởi Virtuoso
Lược đồ tuần tự của ứng dụng được mô tả như hình 3.7:


Endpoint
Hiển thị kết quả
truy v

n

Câu truy v

n

K
ế
t qu


câu truy v

n

Web

Browser


Virtuoso
Engine
Xử lý truy vấn
SPARQL

Câu truy vấn được xử lý


RDF Views

Data
Provider
Service
Thi hành câu
truy v

n

20



Hình 3.7: Lược đồ tuần tự của ứng dụng
Thực thi chương trình ta được kết quả sau khi Get Graph tương ứng với câu truy vấn như sau:
select distinct ?g
where {graph ?g {?s < ?o}}
dưới dạng XML file, ta dùng hàm phân tách dữ liệu XML của .Net sử dụng phương thức WebClient.http để

load về như sau:
void client3_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
List<String> items = new List<string>();

using (XmlReader reader = XmlReader.Create(new StringReader(e.Result)))
{
reader.Read();
while (reader.ReadToFollowing("literal"))
{
items.Add(reader.ReadElementContentAsString());
}
}
uriGrid.ItemsSource = items;
21

uriGrid.Visibility = Visibility.Visible;
}
else
{
uriGrid.ItemsSource = null;
}



Hình 3.8: Kết quả Get Graph
Kết quả sau khi Get Types: sử dụng Object trả về của câu truy vấn:
select distinct ?g

where {graph ?g {?s < ?o}}
22


Hình 3.9: Kết quả Get Types
Kết quả sau khi get items: sẽ tương ứng với câu truy vấn:
select ?s
from <i>http://localhost:8890</i>
where {?s <> <i> </i>}


Hình 3.10: Kết quả Get Items

23

Nếu click vào một URI ta sẽ được kết quả như sau:


















24

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Đánh giá kết quả nghiên cứu
1.1 Các kết quả đạt được
Luận văn đã trình bày cơ sở lý thuyết về RDF và ngôn ngữ truy vấn dữ liệu SPARQL để làm cơ
sở cho việc
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 một
cách hiệu quả
1.2 Hạn chế
Do vấn đề về ngữ nghĩa là một vấn đề phức tạp và rộng lớn nên luận văn chỉ đề ra một hướng
nghiên cứu cho hiện trạng và nhu cầu truy vấn dữ liệu hiện nay.
Kết quả đạt được trên đây chỉ là kết quả nghiên cứu ban đầu trong khuôn khổ phạm vi của luận
văn. Các hướng giải quyết chỉ mang tính chất tham khảo nên có nhiều điểm chưa tối ưu và cần phải
được hoàn thiện hơn.
Các hạn chế, các vấn đề cần phải được khắc phục, bổ sung và hoàn thiện hơn cũng là những vấn
đề được nêu trong mục tiếp theo sau đây.
2. Hướng phát triển
Để có kết quả tốt hơn, luận văn cần phải định hướng và phát triển thêm những vấn đề sau đây.
-

Nghiên cứu và xử lý tối ưu câu truy vấn, cho phép câu truy vấn có kết hợp giữa hai hay nhiều
cơ sở dữ liệu.
-

Xây dựng thêm các component, thư viện liên kết động (dll) cho phép kết hợp sử dụng trong các

ứng khác.

×