ỨNG DỤNG R2RML ĐỂ CHUYỂN ĐỔI CƠ SỞ DỮ LIỆU CHO
LINKED DATA
Trần Nguyên Phong, Hoàng Hữu Hạnh
Đại học Huế
E-‐‑mail: ,
Tóm tắt: RDF (Resource Description Framework) là chuẩn mô tả dữ liệu Web ngữ nghĩa, và
trở thành cơ sở của Linked Data và Web Dữ liệu. Việc chuyển đổi các dữ liệu trong các cơ sở
dữ liệu (CSDL) sang RDF được xem là một trong những bước quan trọng cho việc xây dựng
Web dữ liệu. R2RML (Relational Database to RDF Mapping Language) là một ngôn ngữ để
thể hiện ánh xạ từ các cơ sở dữ liệu quan hệ (RDB) sang bộ dữ liệu RDF. Ánh xạ này cung cấp
khả năng xem dữ liệu hiện có trong mô hình dữ liệu quan hệ RDF, được thể hiện trong một
cấu trúc và từ vựng. R2RML cũng được định nghĩa là một ánh xạ trực tiếp từ cơ sở dữ liệu
quan hệ sang RDF. Bài báo này trình bày việc áp dụng R2RML vào việc chuyển đổi CSDL
quan hệ sang Linked Data phục vụ cho Web Dữ liệu.
Từ khóa: Linked Data, Web of Data, Semantic Web, ontology, RDF, OWL.
1
Giới thiệu
Linked Data là một ứng dụng thực tiễn dựa các công nghệ Web ngữ nghĩa hiện tại, nhằm
cung cấp một cơ chế xuất bản dữ liệu có cấu trúc lên Web, với mục địch tạo ra một thế hệ Web
mới – Web dữ liệu (Web of Data). Linked Data được giới thiệu nhằm mở ra một trào lưu xuất bản
dữ liệu mở, có cấu trúc và phá vỡ các ngăn cách cho các hệ thống CSDL hiện nay. Từ sự khởi đầu
của việc triển khai Web ngữ nghĩa đã có sự quan tâm ngày càng tăng trong việc lập ra các quan
hệ dữ liệu cho Web ngữ nghĩa. Điều này cho phép dữ liệu được kết hợp với các dữ liệu khác trên
Web, liên kết ngữ nghĩa trực tiếp đến dữ liệu quan hệ và hỗ trợ tích hợp dữ liệu với các miền và
lĩnh vực ứng dụng rỗng rãi hơn.
Hiện nay phần lớn dữ liệu trên Web đang được lưu trữ trong các hệ quản trị cơ sở dữ liệu
quan hệ (RDBMS) với các ưu điểm đã được chứng minh về các mặt: khả năng mở rộng, lưu trữ
hiệu quả, tối ưu hóa việc thực thi các câu truy vấn, độ an toàn. Tuy nhiên, các cơ sở dữ liệu quan
hệ (RDB) thường là tách biệt nhau, không đồng nhất về lược đồ, thuật ngữ, định danh và mức độ
chi tiết của sự biểu diễn dữ liệu, và không có tính chia sẻ. Do đó, người ta đã sử dụng kỹ thuật
để chuyển đổi các dữ liệu trong RDB sang các dạng dữ liêu thô hoặc có cấu trúc, hoặc giàu ngữ
nghĩa như RDF và RDFS – là cơ sở của Linked Data. Việc chuyển dữ liệu sang Linked Data nhằm
cung cấp một nền tảng cho việc tích hợp tất cả các nguồn dữ liệu đó trên Web dữ liệu.
R2RML (Relational Database to RDF Mapping Language) là một ngôn ngữ để thể hiện ánh
xạ từ các cơ sở dữ liệu quan hệ (RDB) sang bộ dữ liệu RDF. Ánh xạ này cung cấp khả năng xem
dữ liệu hiện có trong mô hình dữ liệu quan hệ RDF, được thể hiện trong một cấu trúc và từ vựng.
R2RML cũng được định nghĩa là một ánh xạ trực tiếp từ cơ sở dữ liệu quan hệ sang RDF. Trong
các ánh xạ trực tiếp của một CSDL, cấu trúc của đồ thị RDF là kết quả phản ánh trực tiếp cấu trúc
của CSDL, mục từ trong từ vựng RDF phản ánh trực tiếp tên của các phần tử trong lược đồ CSDL.
Mỗi ánh xạ R2RML là phù hợp với một lược đồ CSDL và mục từ từ vựng. Các đầu vào một ánh
xạ R2RML là một cơ sở dữ liệu quan hệ phù hợp vào lược đồ đó. Đầu ra là một tập dữ liệu RDF
có sử dụng vị từ và các kiểu từ vựng. Bài báo này trình bày việc áp dụng R2RML vào việc chuyển
đổi CSDL quan hệ sang Linked Data phục vụ cho Web Dữ liệu, bên cạnh đó, cũng trình bày các
hướng tiếp cận liên quan.
2
Chuyển đổi RDB sang RDF
2.1.
Khung tham khảo cho chuyển đổi RDB sang RDF và RDFS.
2.1.1. Tạo các ánh xạ
Chúng ta có thể phân loại các phương pháp được sử dụng để tạo ra các ánh xạ giữa RDB
và RDF thành hai loại:
a)
Ánh xạ tự động:
Một tập hợp các ánh xạ giữa RDB và RDF cụ thể là:
i)
Một mẫu tin RDB là một nút của RDF;
ii) Tên cột của một bảng RDB là một vị từ của RDF;
iii) Một ô của bảng RDB là một giá trị của RDF.
Nhiều hệ thống sử dụng các ánh xạ tự động để ánh xạ giữa RDB và RDF với một bảng của
RDB như một lớp các nút của RDF và các tên cột của RDB như là vị từ của RDF.
Mặc dù các ánh xạ tự động tạo ra thường không nắm bắt được ngữ nghĩa được yêu cầu
của nhiều ứng dụng, nhưng những ánh xạ này có thể là một điểm khởi đầu để tạo ra các tuỳ chọn
hữu ích hơn. Phương pháp này cũng cho phép các ứng dụng Web ngữ nghĩa truy vấn các nguồn
RDB, nơi mà ứng dụng ngữ nghĩa được quy định về ánh xạ RDB. Phương pháp này còn được gọi
là "ʺvùng ánh xạ ontology"ʺ.
b) Ngữ nghĩa miền -‐‑ định hướng ánh xạ:
Cách tiếp cận thứ hai để tạo ra ánh xạ từ RDB sang RDF bằng cách kết hợp ngữ nghĩa miền
ẩn hoặc không ẩn trong tất cả lược đồ RDB. Các mô hình về ngữ nghĩa miền thường được mô
hình hóa như là một miền ontology. Trong thư viện RDF, cho phép các ứng dụng phần mềm tận
dụng lợi thế "ʺthông tin thu được"ʺ và thực hiện các truy vấn liên kết các thực thể với nhau[4].
Ngoài ra, một ánh xạ được tạo ra bằng cách sử dụng ngữ nghĩa miền nhằm làm giảm việc
tạo ra bộ dữ liệu dư thừa hoặc không liên quan. Byrne[4] thảo luận về việc giảm kích thước của
các tập dữ liệu RDF khoảng 2,8 triệu bộ thông qua việc sử dụng ngữ nghĩa theo định hướng của
tên miền ánh xạ từ RDB sang RDF.
Phương pháp này còn được gọi là "ʺmiền ánh xạ ontology"ʺ và quá trình này giống như một
kỹ thuật ontologies công cộng nơi mà các dữ liệu chuyển đổi được định nghĩa trong lược đồ
2
jos.hueuni.edu.vn
Tập.
X;
Số.
Y;
Năm
2015
ontologies. Nhiều công cụ ánh xạ như D2RQ[4] cho phép người sử dụng tạo ra các quy tắc tạo
ánh xạ tùy ý ngoài các quy tắc tạo ra tự động.
2.1.2. Biểu diễn các ánh xạ
Các ánh xạ giữa RDB và RDF có thể được biểu diễn như là quy tắc XPath trong một kiểu
XSLT, một ngôn ngữ khai báo dựa trên XML như R2O [4] hoặc là "ʺmô hình Quad"ʺ được định
nghĩa trong Virtuoso [4] lược đồ siêu ngôn ngữ. Các ánh xạ, nếu chúng được tạo ra bởi các miền
hoặc tham khảo một miền Ontology có thể có ứng dụng rộng rãi. Khuyến khích sử dụng lại các
ánh xạ để dễ dàng tiếp cận cộng đồng rộng lớn hơn. Do đó, chúng tôi xem xét khả năng tiếp cận
của ánh xạ giữa RDB và RDF.
2.1.3. Cài đặt truy vấn
Truy vấn trong các hệ thống tạo ánh xạ từ RDB sang RDF hoặc trong SPARQL được thực
hiện dựa vào RDF, hoặc truy vấn SPARQL có thể được chuyển đổi thành một hoặc nhiều truy
vấn SQL được thực hiện dựa vào RDB. Cyganiak [4] đã thảo luận việc chuyển đổi đại số quan hệ
của SPARQL và tiếp tục trong SQL. Toán tử biểu diễn như "ʺSELECTION"ʺ và "ʺINNER JOIN"ʺ được
thực hiện trong RDF và tương quan "ʺđại số quan hệ RDF"ʺ đến SQL.
2.1.4. Miền ứng dụng
"ʺTạo ánh xạ"ʺ, một khía cạnh quan trọng của việc tạo ánh xạ từ RDB sang RDF, là sự kết
hợp của miền ngữ nghĩa trong kết quả của RDF. Do đó, danh sách các miền ứng dụng của công
trình được xem xét trong cuộc khảo sát này (công cụ ánh xạ không phải là tên miền cụ thể).
2.1.5. Tích hợp dữ liệu.
Mô hình RDF đại diện thông qua việc sử dụng của URI và các mối quan hệ của mô hình
một cách rõ ràng giữa các thực thể làm cho nó dễ dàng hơn để tích hợp dữ liệu có hiệu quả. Điều
quan trọng là cần lưu ý rằng RDF không tự động giải quyết nhiều việc không đồng nhất, chẳng
hạn như không đồng nhất về cấu trúc, cú pháp và ngữ nghĩa, được mô tả trong dữ liệu/thông tin
tích hợp. Tuy nhiên, việc sử dụng các miền ontology dựa theo các quy tắc suy luận mà người
dùng định nghĩa để đối chiếu tính không đồng nhất giữa các nguồn RDB là một cách tiếp cận có
hiệu quả cho việc tạo ra một hoặc một tập "ʺtương thích"ʺ của RDF. Do đó, số liệu đánh giá các
phương pháp tiếp cận tạo ánh xạ khác nhau liên quan đến tích hợp dữ liệu.
2.2.
Các tiếp cận chuyển lược đồ RDB sang RDF và RDFS.
Trong phần này, chúng tôi phân loại các công việc khảo sát thành ba lớp lớn cụ thể là:
− Các dự án nhằm chứng minh các khái niệm: Dự án xem xét trong phần này là khám phá
cách tiếp cận cụ thể để chuyển đổi ánh xạ từ RDB sang RDF với một mẫu tin hoặc chứng minh
thực hiện khái niệm. Công việc có thể có hoặc không có, dẫn đến việc phát triển một công cụ/ứng
dụng chung.
3
− Các dự án ứng dụng theo miền: Nhiều dự án được khảo sát đã thúc đẩy bởi yêu cầu ứng
dụng thế giới thực và đã sử dụng ngữ nghĩa miền dựa vào ánh xạ tùy chọn, công cụ tạo ánh xạ
dùng chung hoặc kết hợp cả hai.
− Công cụ/ứng dụng: Các dự án khảo sát bao gồm D2RQ, R2O, Virtuoso, Triplify và các
công cụ Dartgrid đã được đưa ra để ánh xạ RDB sang RDF.
Hình 1: Mô hình cấu trúc tham chiếu cho việc chuyển đổi RDB sang RDF
2.2.1. Các công cụ và ứng dụng
Virtuoso RDF View [4] sử dụng phương pháp bảng thành lớp (lớp RDFS), cột thành vị từ
và đưa vào xem xét trường hợp đặc biệt chẳng hạn như việc một cột là một phần của khóa chính
hoặc khóa ngoại. Các mối quan hệ khóa ngoại giữa các bảng được thực hiện rõ ràng giữa các lớp
có liên quan để đại diện cho các bảng. Các dữ liệu RDB được biểu diễn là đồ thị Virtuoso RDF
mà không tạo vật lý của bộ dữ liệu RDF. Virtuoso RDF View được tạo thành từ "ʺmô hình ánh xạ
Quad"ʺ mà các ánh xạ được định nghĩa từ một tập hợp bộ ba các cột của RDB. Mô hình ánh xạ
quad được thể hiện không những bằng ngôn ngữ siêu lược đồ Virtuoso mà còn hỗ trợ SPARQL
– kiểu ghi chú.
Công cụ D2RQ [4] cung cấp một môi trường tích hợp với nhiều tùy chọn để truy cập dữ
liệu quan hệ bao gồm cả "ʺRDF dumps"ʺ, truy cập dựa trên Jena và Sesame API (gọi là API được
viết lại từ SQL), và SPARQL trên D2RQ Server. Các ánh xạ có thể được xác định bởi người dùng,
do đó cho phép kết hợp ngữ nghĩa miền trong quá trình ánh xạ, mặc dù có một số hạn chế. Các
ánh xạ được thể hiện trong một "ʺkhai báo ngôn ngữ ánh xạ"ʺ. Hiệu suất khác nhau tùy thuộc vào
4
jos.hueuni.edu.vn
Tập.
X;
Số.
Y;
Năm
2015
phương pháp tiếp cận và được thực hiện khá tốt cho các mô hình bộ ba cơ bản nhưng các chức
năng của SPARQL như FILTER, LIMIT được sử dụng.
Công cụ Triplify [4] là một phương pháp đơn giản để chuyển RDF và dữ liệu liên kết từ cơ
sở dữ liệu quan hệ. Triplify dựa trên ánh xạ các yêu cầu HTTP-‐‑ URI vào các truy vấn cơ sở dữ
liệu quan hệ được thể hiện trong SQL với một số bổ sung. Triplify trình bày việc chuyển đổi các
mối quan hệ kết quả vào RDF và công bố các dữ liệu RDF trên web theo trình tự khác nhau, đặc
biệt là dữ liệu liên kết. Triplify được bổ sung bởi một thư viện các cấu hình cho lược đồ quan hệ
chung và một REST cho phép nguồn dữ liệu đăng ký. Kiến trúc gọn nhẹ của Triplify là có thể sử
dụng để xuất bản bộ dữ liệu rất lớn, chẳng hạn như 160GB dữ liệu từ dự án OpenStreetMap.
Công cụ R2O [4] là một ngôn ngữ khai báo dựa trên XML để thể hiện ánh xạ giữa các yếu
tố RDB và ontology. Ánh xạ R2O có thể được sử dụng để "ʺphát hiện mâu thuẫn và không rõ ràng"ʺ
trong định nghĩa bản đồ. Công cụ ODEMapster đã sử dụng một tài liệu R2O hoặc là thực hiện
việc chuyển đổi để đáp ứng với một truy vấn hoặc trong một hàng loạt các chế độ để tạo ra một
biến RDF.
RDBToOnto [4] là một công cụ có cấu hình cao giúp giảm bớt việc thiết kế và thực hiện các
phương pháp để đạt được ontology từ cơ sở dữ liệu quan hệ. Nó cũng là một công cụ định hướng
người dùng trong quá trình chuyển đổi cơ sở dữ liệu đầu vào để tạo ra các ontology. Thiết lập
các thông số và kiểm soát quá trình được thực hiện thông qua một giao diện chuyên dụng chính
thức.
3
Ngôn ngữ chuyển đổi R2RML
3.1.
Giới thiệu R2RML
R2RML (Relational Database to Resource Description Frameworks of mapping language)
là một ngôn ngữ để thể hiện ánh xạ từ các cơ sở dữ liệu quan hệ sang bộ dữ liệu RDF. Ánh xạ
này cung cấp khả năng xem dữ liệu hiện có trong mô hình dữ liệu quan hệ RDF, được thể hiện
trong một cấu trúc và từ vựng [10].
R2RML cũng được định nghĩa là một ánh xạ trực tiếp từ cơ sở dữ liệu quan hệ sang RDF.
Trong các ánh xạ trực tiếp của một cơ sở dữ liệu, cấu trúc của đồ thị RDF là kết quả phản ánh
trực tiếp cấu trúc của cơ sở dữ liệu, mục từ trong từ vựng RDF phản ánh trực tiếp tên của các
phần tử trong lược đồ cơ sở dữ liệu. Mỗi ánh xạ R2RML là phù hợp với một lược đồ cơ sở dữ liệu
và mục từ từ vựng. Các đầu vào một ánh xạ R2RML là một cơ sở dữ liệu quan hệ phù hợp vào
lược đồ đó. Đầu ra là một tập dữ liệu RDF có sử dụng vị từ và các kiểu từ vựng. Ánh xạ R2RML
được thể hiện dưới dạng đồ thị RDF và cú pháp Turtle.
Bảng 1: Bảng qui định không gian tên:
Prefix
IRI
rr:
5
rdf:
rdfs:
xsd:
ex:
3.2.
Các thành phần R2RML
3.2.1. Một số thuật ngữ (Terminology)
Các thuật ngữ dưới đây được định nghĩa trong khái niệm và cú pháp của RDF và được
sử dụng trong R2RML [10]:
•
RDF graph: là một tập bộ ba của RDF.
•
RDF triple: là bộ ba của RDF (chủ thể, vị từ, đối tượng).
•
Literal: được sử dụng để xáx định số hoặc ngày tháng bằng cách biểu diễn từ vựng.
Nó là một đối tượng.
•
typed literal: là một mẫu từ vựng hoặc tham chiếu URI của RDF
•
language tag: thẻ ngôn ngữ
•
datatype IRI: kiểu dữ liệu của IRI
•
blank node (nút trống): là một nút không phải là một tham chiếu URI hoặc một chữ.
Một nút trống là một nút duy nhất có thể được sử dụng một hoặc nhiều câu lệnh
trong RDF, nhưng không có tên bên trong.
•
blank node identifier: định danh nút trống để phân biệt với tất cả các URI và literals.
3.2.2. Các mục từ trong bộ từ vựng R2RML
a. Lớp:
Bảng 2: Các lớp trong R2RML
Lớp
rr:BaseTableOrView
Diễn tả
SQL dựa vào bảng hoặc
khung nhìn
rr:LogicalTable
Bảng logic
rr:ObjectMap
Ánh xạ đối tượng
rr:PredicateMap
Ánh xạ vị từ
rr:PredicateObjectMap
Ánh xạ vị từ -‐‑ đối tượng
rr:R2RMLView
Khung nhìn R2RML
rr:RefObjectMap
Ánh xạ đối tượng tham
chiếu
rr:SubjectMap
Ánh xạ chủ thể
rr:TermMap
Ánh xạ mục từ
6
Điều kiện tối thiểu.
Thuộc tính rr:tableName.
rr:BaseTableOrView hoặc rr:R2RMLView
rr:TermMap là một giá trị thuộc tính rr:ob-‐‑
jectMap
rr:TermMap là một giá trị của thuộc tính
rr:predicateMap
rr:predicate và rr:predicateMap có ít nhất
trong rr:object và rr:objectMap
rr:sqlQuery là một thuộc tính
rr:parentTriplesMap là một thuộc tính
rr:TermMap là một giá trị của thuộc tính
của rr:subjectMap
rr:constant, rr:column, rr:template
jos.hueuni.edu.vn
Tập.
X;
Số.
Y;
Năm
2015
b. Thuộc tính:
Bảng 3: Các thuộc tính trong R2RML
Thuộc tính
Mô tả
Bối cảnh
rr:child
Cột child
Điều kiện ràng buộc
rr:class
Lớp IRI
Ánh xạ đối tượng
rr:column
Tên cột
cột giá trị thuật ngữ ánh xạ
rr:datatype
Xác định kiểu dữ liệu
Thuật ngữ ánh xạ
rr:constant
Giá trị hằng số
Thuật ngữ ánh xạ giá trị liên tục.
rr:joinCondition
Điều kiện ràng buộc
Tham chiếu ánh xạ đối tượng
rr:logicalTable
Bảng logic
Ánh xạ bộ ba
rr:objectMap
Ánh xạ đối tượng,
Ánh xạ vị từ -‐‑ đối tượng
rr:parent
Cột parent
Điều kiện ràng buộc
rr:parentTriplesMap
Ánh xạ bộ ba parent
Ánh xạ đối tượng tham chiếu
rr:predicateMap
Ánh xạ vị từ
rr:predicateObjectMap
Ánh xạ đối tượng – vị từ
Ánh xạ bộ ba
rr:sqlQuery
Truy vấn SQL
Khung nhìn R2RML
rr:sqlVersion
Định danh phiên bản SQL
Khung nhìn R2RML
rr:subject
Thuộc tính hằng số
rr:subjectMap
Ánh xạ đối tượng
4
Ánh xạ bộ ba
Chuyển đổi cơ sở dữ liệu quan hệ sang RDF và RDFS với ngôn ngữ
R2RML
4.1.
Các bộ xử lý và ánh xạ R2RML
Trong Hình 2, Ánh xạ R2RML định nghĩa một ánh xạ từ một cơ sở dữ liệu quan hệ sang
RDF. Nó là một cấu trúc bao gồm một hoặc nhiều ánh xạ bộ ba[10]. Bộ xử lý R2RML là một hệ
thống, một ánh xạ R2RML và một cơ sở dữ liệu đầu vào nhằm cung cấp truy cập cho các dữ liệu
đầu ra. Đầu vào cho một ánh xạ R2RML là cơ sở dữ liệu.
Phương pháp truy cập vào các dữ liệu đầu ra được cung cấp bởi một bộ xử lý R2RML
tương ứng. Một bộ xử lý R2RML có thể cụ thể hóa các dữ liệu đầu ra vào cho một tập tin, hoặc
cung cấp truy cập ảo thông qua một giao diện để truy vấn cơ sở dữ liệu đầu vào, hoặc cung cấp
bất kỳ phương tiện cho các dữ liệu đầu ra.
7
Hình 2: Chuyển đổi cơ sở dữ liệu quan hệ sang RDF
Một bộ xử lý R2RML cũng có quyền truy cập vào môi trường thực thi bao gồm:
•
Kết nối SQL vào cơ sở dữ liệu đầu vào,
•
Sử dụng IRI trong việc giải quyết các quan hệ được tạo ra bởi các ánh xạ R2RML.
Dữ liệu R2RML là một hệ thống đầu vào của một ánh xạ R2RML, IRI và SQL, và sẽ kết nối
đến một cơ sở dữ liệu đầu vào đồng thời kiểm tra sự xuất hiện của các lỗi dữ liệu. Khi kiểm tra
cơ sở dữ liệu đầu vào, phải báo cáo bất kỳ lỗi nào mà dữ liệu được đưa ra trong quá trình tạo ra
các dữ liệu đầu ra.
4.1.1. Ánh xạ đồ thị và từ vựng R2RML
Một ánh xạ R2RML được biểu diễn như một đồ thị RDF. Nói cách khác, RDF được sử dụng
không chỉ là mô hình dữ liệu của ánh xạ, mà còn là một hình thức đại diện cho ánh xạ R2RML
chính nó [10].
Một đồ thị RDF đại diện cho một ánh xạ R2RML được gọi là một đồ thị ánh xạ R2RML. Từ
vựng R2RML là tập hợp các IRIs được bắt đầu với
rr:namespace IRI: #.
Một đồ thị ánh xạ R2RML bao gồm:
− Không nên bắt đầu IRI với rr:namespace mà không được định nghĩa trong từ vựng
R2RML.
− Không nên sử dụng IRI từ từ vựng R2RML
− Nên tạo ánh xạ các thành phần được tham chiếu bởi một số ánh xạ bộ ba.
− Có thể thêm bộ ba có điều kiện không thuộc từ vựng R2RML.
− Có thể gán IRI hoặc định danh nút rỗng cho bất kỳ thành phần ánh xạ được phép tái
sử dụng từ các thành phần ánh xạ trong đồ thị ánh xạ.
Từ vựng R2RML bao gồm các lớp R2RML sau đây :
− rr:TriplesMap là lớp của ánh xạ bộ ba.
− rr:TermMap là lớp của ánh xạ thuật ngữ
Nó có bốn lớp con:
− rr:SubjectMap là lớp của ánh xạ chủ thể
8
jos.hueuni.edu.vn
Tập.
X;
Số.
Y;
Năm
2015
− rr:PredicateMap là lớp của ánh xạ vị từ
− rr:ObjectMap là lớp của ánh xạ đối tượng
− rr:GraphMap là lớp của ánh xạ đồ thị
− rr:PredicateObjectMap là lớp ánh xạ vị từ -‐‑ đối tượng.
− rr:RefObjectMap là lớp của ánh xạ đối tượng tham chiếu.
− rr:Join là lớp của điều kiện ràng buộc.
4.1.2. Ánh xạ mặc định.
Một bộ xử lý R2RML có thể bao gồm các ánh xạ mặc định R2RML. Đây là một cơ sở để
xem xét lược đồ của cơ sở dữ liệu đầu vào và tạo ra một ánh xạ R2RML dưới hình thức một tài
liệu ánh xạ R2RML. Một ánh xạ như vậy được gọi là một ánh xạ mặc định. Ánh xạ mặc định coi
đầu ra của nó là đồ thị trực tiếp tương ứng với cơ sở dữ liệu đầu vào.
4.2.
Định nghĩa các bảng logic
Hình 3: Thuộc tính của các bảng logic
Bảng logic là kết quả của một truy vấn SQL được ánh xạ tới bộ ba của RDF. Một bảng
logic là một trong hai trường hợp sau:
Bảng SQL hoặc khung nhìn, hoặc
Khung nhìn R2RML.
Bảng logic là một truy vấn SQL hiệu quả nếu thực hiện qua kết nối SQL, sản phẩm là kết
quả các nội dung của bảng logic. Dòng của bảng logic là dòng trong một bảng logic.Tên cột là
tên của một cột trong một bảng logic.
4.2.1. SQL dựa vào các bảng và khung nhìn (rr:tableName).
SQL dựa vào bảng hoặc khung nhìn là một bảng logic có chứa dữ liệu SQL từ một bảng
hoặc khung nhìn trong cơ sở dữ liệu đầu vào. Nó được đại diện bởi nguồn tài nguyên có chính
xác một thuộc tính rr:tableName.
Giá trị của rr:tableName xác định tên của bảng hoặc khung nhìn. Giá trị của nó phải là tên
một lược đồ có điều kiện cho bảng hoặc khung nhìn hiện có trong cơ sở dữ liệu đầu vào.
9
Các truy vấn SQL có hiệu quả dựa vào bảng hoặc khung nhìn là: SELECT * FROM {ta-‐‑
ble}, với {table} là tên bảng hoặc khung nhìn.
4.2.2. Khung nhìn R2RML (rr:sqlQuery, rr:sqlVersion)
Khung nhìn R2RML là một bảng logic có nội dung là kết quả của việc thực hiện truy vấn
SQL cho cơ sở dữ liệu đầu vào. Nó được đại diện bởi nguồn tài nguyên có chính xác một thuộc
tính rr: sqlquery.
R2RML đôi khi đòi hỏi phải chuyển đổi dữ liệu, tính toán, hoặc lọc trước khi tạo ra từ cơ
sở dữ liệu. Điều này có thể đạt được bằng cách xác định SQL trong cơ sở dữ liệu đầu vào và đề
cập đến nó với rr:tableName.
Câu lệnh truy vấn SELECT trong ngôn ngữ SQL có thể được thực hiện trên cơ sở dữ liệu
đầu vào. Trong câu lệnh SQL kết thúc câu lệnh truy vấn SELECT là dấu chấm phẩy. Kết quả của
việc thực hiện truy vấn phải không có tên cột trùng nhau. Đối tượng tham chiếu cơ sở dữ liệu
trong các truy vấn SQL có thể có đủ điều kiện với tên danh mục hoặc tên lược đồ.
Một khung nhìn R2RML có thể có một hoặc nhiều phiên bản nhận dạng SQL. Phải có IRIs
hợp lệ và được đại diện như là giá trị thuộc tính của rr:sqlVersion. Định danh phiên bản SQL sau
đây chỉ ra rằng các truy vấn SQL phù hợp với Core SQL 2008
# SQL2008
Hiệu quả câu lệnh truy vấn SQL của khung nhìn R2RML là giá trị thuộc tính của rr:sqlquery.
Ví dụ: Một bảng logic của khung nhìn R2RML phù hợp với Core SQL 2008.
[] rr:sqlQuery """
Select ('PHONGBAN' || Mapb) AS PHONGID, Mapb, Tenpb
from PHONGBAN
""";
rr:sqlVersion rr:SQL2008.
4.2.3. Ánh xạ các bảng logic sang RDF với ánh xạ bộ ba.
Một ánh xạ bộ ba quy định một quy tắc chuyển đổi mỗi hàng của một bảng logic có thể
không có hoặc có nhiều bộ ba RDF.
Các bộ ba RDF tạo ra từ một hàng trong bảng logic được chia sẽ tất cả các chủ thể.
Một ánh xạ bộ ba được đại diện bởi một tham chiếu từ các tài nguyên này đến các tài
nguyên khác như sau:
− Phải có chính xác một thuộc tính rr:logicalTable. Giá trị của nó là một bảng logic mà kết
quả truy vấn SQL được ánh xạ tới bộ ba.
10
jos.hueuni.edu.vn
Tập.
X;
Số.
Y;
Năm
2015
Hình 4: Thuộc tính của ánh xạ bộ ba
− Phải có chính xác một ánh xạ chủ thể được quy định cụ thể để tạo ra một chủ thể cho
mỗi hàng của bảng logic. Nó có thể được xác định theo hai cách:
1. Sử dụng thuộc tính rr:subjectMap có giá trị chủ thể, hoặc
2. Sử dụng rr:Subject.
− Có thể không có hoặc có nhiều thuộc tính rr:predicateObjectMap mà giá trị phải có ánh
xạ vị từ -‐‑ đối tượng. Cặp ánh xạ vị từ và đối tượng cùng với các đối tượng được tạo ra
bởi các ánh xạ chủ thể có thể hình thành một hoặc nhiều bộ ba RDF cho mỗi hàng.
Ví dụ: Ánh xạ bộ ba bao gồm cả bảng logic, ánh xạ chủ thể và ánh xạ vị từ đối tượng .
rr:logicalTable
[
rr:tableSchema "R2RML";
rr:tableOwner "TEST";
rr:tableName "CUSTOMER"
];
rr:subjectMap
[
rr:template" />rr:class exa:customer;
rr:graph < />];
rr:predicateObjectMap
[
rr:predicate customer:makh;
rr:objectMap [ rr:column "makh" ];
];
11
a. Tạo tài nguyên với ánh xạ chủ thể
Một ánh xạ chủ thể là một thuật ngữ ánh xạ chỉ ra một quy tắc để tạo các đối tượng của bộ
ba RDF bởi một ánh xạ bộ ba.
b. Kiểu tài nguyên (rr:class).
Ánh xạ chủ thể có thể có một hoặc nhiều lớp IRIs. Nó đại diện bởi các thuộc tính rr:class.
Các giá trị của thuộc tính rr:class phải thuộc IRIs. Đối với mỗi thuật ngữ RDF được tạo ra bởi các
ánh xạ chủ thể, RDF bộ ba với vị từ rdf:type và lớp IRI. Trong ví dụ sau, đối tượng được tạo ra sẽ
được khẳng định như một thể hiện lớp customer:
rr:template" />rr:class exa:customer;
rr:graph < />Ví dụ: Bảng CUSTOMER, bộ ba RDF sau đây sẽ được tạo ra:
< rdf:type ex:CUSTOMER.
c. Tạo thuộc tính và giá trị ánh xạ vị từ-‐‑đối tượng
Ánh xạ vị từ -‐‑ đối tượng là một chức năng tạo ra một hoặc nhiều cặp vị từ -‐‑ đối tượng cho
mỗi dòng của bảng logic. Nó kết hợp với một ánh xạ chủ thể để tạo ra bộ ba trong ánh xạ bộ ba.
Ánh xạ vị từ -‐‑ đối tượng đại diện bởi một tài nguyên tham chiếu đến các tài nguyên khác như
sau:
− Một hoặc nhiều ánh xạ vị từ. Nó xác định theo một trong hai cách sau:
1. Sử dụng thuộc tính rr:predicateMap có giá trị phải là một ánh xạ vị từ hoặc,
2. Sử dụng thuộc tính rr:objects
− Một hoặc nhiều ánh xạ đối tượng hoặc ánh xạ đối tượng tham chiếu. Nó được xác định
theo một trong hai cách:
1. Sử dụng thuộc tính rr: ObjectMap có giá trị hoặc là một ánh xạ đối tượng, hoặc một
ánh xạ đối tượng tham chiếu.
2. Sử dụng thuộc tính phím tắt rr:objects
d. Tạo các mục từ RDF với thuật ngữ ánh xạ.
Một mục từ RDF là IRI hoặc một nút trống hoặc một literal. Một mục từ ánh xạ là một hàm
tạo ra mục từ RDF từ một dòng của bảng logic. Kết quả của hàm đó được gọi là thuật ngữ
ánh xạ được tạo ra của mục từ RDF.
Một mục từ ánh xạ phải được xác định chính xác một trong các trường hợp sau:
12
•
constant (hằng số)
•
column (cột)
•
template (mẫu)
jos.hueuni.edu.vn
Tập.
X;
Số.
Y;
Năm
2015
Hình 5: Thuộc tính của các ánh xạ mục từ
Các cột tham chiếu của thuật ngữ ánh xạ là tập hợp của tên cột tham chiếu trong thuật
ngữ ánh xạ và phụ thuộc vào kiểu của thuật ngữ ánh xạ.
e. Hằng số RDF (rr: constant)
Hằng số (constant) là một thuật ngữ ánh xạ bỏ qua các dòng của bảng logic và luôn luôn
được tạo ra cùng với thuật ngữ RDF. Hằng số được đại diện bởi một nguồn tài nguyên có một
thuộc tính rr:constant cố định.
Các giá trị của hằng số là một thuật ngữ RDF còn gọi đó là giá trị của thuộc tính rr:constant.
Nếu giá trị hằng số là ánh xạ chủ thể, ánh xạ vị từ hoặc ánh xạ đồ thị thì giá trị hằng số của
nó phải là một IRI.
Nếu giá trị hằng số là một ánh xạ đối tượng thì giá trị hằng số của nó là một IRI hoặc literal.
Cột tham chiếu của hằng số là một tập rỗng.
Hằng số là thuật ngữ có giá trị ánh xạ được thể hiện chính xác hơn bằng cách sử dụng các
thuộc tính rr:subject, rr:perdecate, rr:object và rr:graph. Những lần xuất hiện của những thuộc tính
này phải được xử lý chính xác, nếu đã xuất hiện như bộ ba trong đồ thị ánh xạ thay thế:
Bảng 4: Bảng viết tắt của bộ ba
Bộ ba gồm các phím tắt có thuộc tính không đổi
Bộ ba thay thế.
?x rr:subject ?y.
?x rr:subjectMap [rr:constant ?y].
13
?x rr:predicate ?y.
?x rr:predicateMap [rr:constant ?y].
?x rr:object ?y.
?x rr:objectMap [rr:constant ?y].
?x rr:graph ?y.
?x rr:graphMap [rr:constant ?y].
Ví dụ: Một ánh xạ vị từ -‐‑ đối tượng sử dụng một hằng số cho cả vị từ của mình và cho đối
tượng của nó.
[ rr: predicateMap [rr: constant rdf: type];
rr: ObjectMap [rr: constant ex: customer]];
Nếu thêm vào một ánh xạ bộ ba, thì ánh xạ vị từ -‐‑ đối tượng sẽ thêm bộ ba cho tất cả các
nguồn tài nguyên ?x tạo ra bởi ánh xạ bộ ba:
? x rdf:type ex:customer.
f. Từ một cột (rr: column)
Giá trị cột của thuật ngữ ánh xạ là một thuật ngữ ánh xạ đại diện bởi một nguồn tài
nguyên có một thuộc tính chính xác rr:column. Giá trị của thuộc tính rr:column là một tên cột
hợp lệ. Giá trị cột là giá trị dữ liệu của cột trong một dòng của bảng logic nhất định.
Cột tham chiếu là một tập hợp đơn có chứa các giá trị của thuộc tính rr:column.
Ví dụ: Định nghĩa một ánh xạ đối tượng được tạo ra từ cột Tenkh của một số bảng logic
Customer
[ ] rr:ObjectMap [rr: column"Tenkh"].
Sử dụng hàng có sẵn từ bảng CUSTOMER như một dòng của bảng logic, giá trị cột của
ánh xạ đối tượng sẽ là "ʺCTy Thanh Thanh"ʺ.
g. Từ một Template (rr:template)
Template là một ánh xạ được đại diện bởi một nguồn tài nguyên có chính xác trong thuộc
tính rr: template. Giá trị của thuộc tính rr:template phải là một chuỗi template hợp lệ.
Một chuỗi template là một chuỗi định dạng có thể được sử dụng để xây dựng chuỗi từ
nhiều thành phần. Nó có thể tham chiếu các tên cột bằng cách đóng nó trong dấu ngoặc nhọn
("ʺ{"ʺ và "ʺ}"ʺ). Cú pháp sau đây áp dụng cho chuỗi template hợp lệ:
•
Các cặp dấu ngoặc phải kèm theo tên cột hợp lệ.
•
Dấu ngoặc nhọn mà không kèm theo tên cột phải được thoát bởi dấu gạch chéo
ngược (“\"ʺ).
•
Ký tự gạch chéo ngược ("ʺ\"ʺ) được thoát ra bằng cách đặt trước chúng với ký tự chéo,
"ʺ\ \"ʺ.
•
Nên có ít nhất một cặp dấu ngoặc nhọn không thoát.
•
Nếu một template chứa nhiều cặp dấu ngoặc nhọn, thì mỗi cặp nên được tách ra từ
một trong dấu cách an toàn.
Ví dụ: Định nghĩa một ánh xạ chủ thể tạo ra IRI từ cột makh của một bảng logic.
14
jos.hueuni.edu.vn
Tập.
X;
Số.
Y;
Năm
2015
rr:subjectMap
[
rr:template " ]
Sử dụng dòng từ bảng CUSTOMER như một dòng của bảng logic, giá trị template của ánh
xạ chủ thể sẽ là:
Ví dụ: một giá trị template IRI được tạo ra:
rr:subjectMap [ rr:template "ʺ
Giá trị template IRI được truy xuất là: 20GIANG
Các ký tự khoảng trắng không phải là trong tập hạn chế. Do đó, phần trăm mã hóa được
áp dụng cho các ký tự, ký hiệu "ʺ%20"ʺ.
4.2.4. Chuyển đổi kiểu dữ liệu.
Phần này định nghĩa các giá trị dữ liệu SQL như sau:
− Bản chất literal RDF là một ánh xạ cho cho các literal. Nó được sử dụng trong R2RML
và trong ánh xạ trực tiếp cơ sở dữ liệu quan hệ sang RDF như là ánh xạ mặc định khi
tạo literal. Nó ánh xạ các các kiểu dữ liệu SQL sang kiểu dữ liệu XML Schema tương
ứng.
− Bản chất hình thức về từ vựng RDF là giống nhau, nhưng chỉ đưa ra mẫu từ vựng của
kiểu literal và recommends. Nó được sử dụng trong R2RML khi cột chuỗi rỗng trong
chuỗi ngữ cảnh.
− Hình thức kiểu mẫu từ vựng RDF cũng tương tự, nhưng phải là XSD. Nó được sử dụng
trong ánh xạ trực tiếp khi IRI sinh ra.
− Kiểu dữ liệu ghi đè RDF literal là một ánh xạ được xây dựng kiểu literal bởi bản RDF
literal và chấp nhận kiểu dữ liệu IRI. Nó được sử dụng khi mục đích kiểu dữ liệu của
literal phát sinh thuật ngữ ánh xạ sử dụng kiểu rr:datatype.
Hình 6: Thuộc tính của ánh xạ đối tượng tham chiếu
Một ánh xạ đối tượng:
15
•
Phải có chính xác thuộc tính rr:parentTriplesMap mà giá trị phải có trong ánh xạ bộ
ba như là đối tượng ánh xạ tham chiếu của ánh xạ bộ ba parent.
•
Có một hoặc nhiều thuộc tính rr:joinCondition đó là điều kiện ràng buộc.
Điều kiện ràng buộc đại diện bởi nguồn tài nguyên đó là một giá trị chính xác cho hai
thuộc tính sau đây:
•
Thuộc tính rr:child,giá trị biết đến như là điều kiện ràng buộc của cột con và phải là
tên cột được tồn tại trong bảng logic của ánh xạ bộ ba.
•
Thuộc tính rr:parent, giá trị được biết đến như điều kiện ràng buộc của cột cha và
phải là cột được tồn tại trong bảng logic của ánh xạ đối tượng tham chiếu.
Ví dụ: Một đối tượng ánh xạ tham chiếu như là một phần của ánh xạ vị từ -‐‑ đối tượng:
rr:predicateObjectMap
[
rr:predicate hoadon:Makhach_FK;
rr:objectMap [
rr:parentTriplesMap < />rr:joinCondition
[ rr:child "Makhach";
rr:parent "Makh";
];
];
];
.
4.3. Bài toán minh hoạ
Nhằm khẳng định hơn nữa việc ánh xạ trực tiếp một cơ sở dữ liệu quan hệ sang RDF và
RDFS bằng ngôn ngữ R2RML. Những nội dung trong dưới đây thể hiện quá trình chuyển đổi:
− Dữ liệu vào:
•
Cơ sở dữ liệu (lược đồ và dữ liệu)
•
Khoá chính, khoá ngoại
− Dữ liệu ra:
•
Đồ thị RDF.
•
Lược đồ RDFS
Quá trình chuyển đổi được thực hiện qua các bước sau:
Bước 1: Tạo lược đồ và dữ liệu cho cơ sở dữ liệu quan hệ.
Lược đồ cơ sở dữ liệu quan hệ:
KHACHHANG (Makh, Tenkh, diachi)
SANPHAM (Masp, Tensp)
HOADON (Sohd, Makh, Masp, Manv, LoaiVT, Soluong, Dongia)
NHANVIEN (Manv, Holot, Ten, PhaiNam, Diachi, LuongCB).
Trong các quan hệ nên trên những thuộc tính như “Makh, Masp, Sohd, Manv” là những
khoá chính trong cơ sở dữ liệu quan hệ.
16
jos.hueuni.edu.vn
Tập.
X;
Số.
Y;
Năm
2015
Bước 2: Sử dụng cấu trúc của ngôn ngữ R2RML để chuyển đổi dữ liệu như sau:
Khi dữ liệu được chuyển đổi bằng R2RML thì dữ liệu sẽ được kiểm tra bằng cách chọn
Interactive SQL (isql.exe) trong Virtuoso. Cơ sở dữ liệu quan hệ thể hiện trong Virtuoso như sau:
Các bảng của cơ sở
dữ liệu quan hệ
Hình 8: Các bảng của RDB trong Virtuoso.
Bảng NHANVIEN (EMPLOYEE) với khoá chính là manv.
17
Bảng KHACHHANG (CUSTOMER)
Bảng SANPHAM (PRODUCT)
Bảng HOADON (INVOICES)
Bước 3: Hiển thị dữ liệu RDF: dữ liệu được biểu diễn với dạng bộ ba (Subject (s)– Predicate
(p) – Object (p))
Hình 9: Dữ liệu hiển thị dưới dạng bộ ba
18
jos.hueuni.edu.vn
Tập.
X;
Số.
Y;
Năm
2015
Bước 4: Lược đồ chuyển đổi hiển thị trong mô hình Ontology dưới dạng RDFS.
Hình 10: Dữ liệu RDFS biểu diễn trong Ontology dưới dạng OWL
5
Kết luận
Bào báo trình bày quá trình nghiên cứu chuyển đổi cơ sở dữ liệu quan hệ sang RDF và
RDFS. Các kết quả chính của của bài báo là: hệ thống hoá các phương pháp ánh xạ để chuyển đổi
cơ sở dữ liệu quan hệ sang RDF và RDFS; tìm hiểu về ngôn ngữ chuyển đổi R2RML; và ứng dụng
chuyển đổi mô hình dữ liệu quan hệ sang mô hình biểu diễn Ontology bằng OWL và cách thể
hiện Ontology dưới dạng RDF và RDFS.
Trong các nghiên cứu trong tương lai, chúng tôi sẽ nghiên cứu việc thực hiện việc chuyển
đổi tất cả các dữ liệu hiện có biểu diễn trên ontology dưới dạng RDF dưới mục đích nhằm phục
vụ cho thế hệ ứng dụng mới có sử dụng RDF.
19
Tài liệu tham khảo
1. Hoàng Hữu Hạnh, Lê Mạnh Thạnh (2012), Giáo trình Web ngữ nghĩa, Nxb Giáo dục.
2. Hoàng Hữu Hạnh (2012), RDF Ứng dụng, Nxb Đại học Huế.
3. Berners-‐‑Lee T., Hendler J., Lassila O. (2001), The Semantic Web, Scientific American, 284, pp. 34-‐‑43.
4. Ezzat A., Halb W., Hellmann S., Idehen S., Sahoo S., Sequeda J., Thibodeau T.(2009), ”A Survey of Cur-‐‑
rent Approaches for Mapping of Relational Databases to RDF”, pp. 1-‐‑15.
5. Berners-‐‑Lee T. (1998), “Relational Databases on the Semantic Web”, />sues/RDB-‐‑RDF.html.
6. Buccella A., Penabad M., Rodriguez F., Farina A., Cechich A. (2004), “From Relational Databases to
OWL Ontologies”, Proceedings of the 6th National Russian Research Conference.
7. RDF Primer,
8. RDF Vocabulary Description Language 1.0: RDF Schema,
9.
10.
R2RML FOR TRANSFORMING RELATIONAL DATABASES TO
LINKED DATA
Tran Nguyen Phong, Hoang Huu Hanh
Hue University
E-‐‑mail: ,
Abstract. RDF (Resource Description Framework) becomes a standard for modelling meta
data on the Web or Web resources and the basis for Linked Data and Web of Data. Transform-‐‑
ing data from relational databases to RDF is considered as an important process for building
the Web of Data. R2RML (Relational Database to RDF Mapping Language) is a handy lan-‐‑
guage for this mapping process. The mapping enables to view enriched data in RDF models
and its vocabularies. R2RML also defines a direct mapping from relational databases to RDF
models. Each R2RML mapping is suitable a database schema and specific vocabulary. This
paper presents the application of R2RML into the transforming relational databases into
Linked Data and the new Web generation-‐‑Web of Data.
Keywords: Linked Data, Web of Data, Semantic Web, ontology, RDF, OWL.
20