4.4.1 Mô tả các thuộc tính của Database
Các thuộc tính được mô tả theo bảng sau:
Tên thuộc
tính domain range loại thuộc tính parent class
Tên bảng chứa khóa chính Tên bảng chứa khóa chính khóa chính Tên bảng chứa
khóa ngoại
Tên bảng chứa
khóa chính
được tham
chiếu đến
khóa ngoại
Tên bảng chứa
khóa ngoại
Tên bảng chứa
khóa ngoại
khóa ngoại làm khóa chính của bảng sinh ra từ thực thể chuyên biệt hóa Tên bảng sinh ra từ thực thể cha Tên bảng chứa thuộc tính Kiểu dữ liệu tương ứng trong Xml Schema thuộc tính khác với 3 loại thuộc tính trên
4.2.2 Phát biểu SELECT để rút trích dữ liệu
Phát biểu Select như sau:
FROM tableName , table2Name .... WHERE ...
FOR XML AUTO, ELEMENTS ODER BY tableNameID
Chú ý các thuộc tính của bảng chính phải được viết trước các thuộc tính của bảng
khác trong câu lệnh SELECT.
4.2.3 Tạo RDFS
Dựa vào file mô tả cơ sở dữ liệu và các thuộc tính được rút trích trong câu lệnh
select, ta tạo file rdfs.
Mô tả các lớp: Việc mô tả các lớp dựa vào các thuộc tính khóa. Các lớp được
mô tả có tên là tên của giá trị cột range. Nếu cột parent class có giá trị thì lớp trong cột
range là lớp con của lớp trong cột parent.
Mô tả các thuộc tính: Các thuộc tính đều có domain là tên bảng chính dùng
làm để mô tả tài nguyên, và có range là giá trị trong cột range tương ứng.
Bảng chính có tên là domain của thuộc tính đầu tiên trong câu lệnh select.
4.2.4 Tạo file RDF
Bước 1: Lấy danh sách thứ nhất bao gồm các nút con A của nút gốc trong tài liệu XML. Lần lượt duyệt các nút con. Ứng với mỗi nút con ta thực hiện bước 2.
Bước 2: ứng với mỗi nút con A ta tạo một instance cho tài nguyên cần mô tả. Các bước thực hiện như sau:
Bước 2.1: tạo URI cho instance từ thuộc tính khóa của bảng chính. Trong nút A, xác định nút con có tên là alias name (hay tên) của thuộc tính
khóa. URI sẽ được tạo bởi giá trị của nút con này.
Bước 2.2: Lần lượt duyệt các thuộc tính B trong file RDFS. Ứng với mỗi
thuộc tính B, lấy danh sách thứ hai bao gồm các nút C (nằm trong nút A) có
tên là tên của thuộc tính B. Nếu số nút C trong danh sách thứ hai lớn hơn 1 thì tạo Bag.
Tạo thuộc tính cho instance:
+ Tên thuộc tính là tên của nút C. + Giá trị thuộc tính là giá trị của nút C.
Ứng với mỗi thuộc tính B, kiểm tra range của nó. Nếu range của thuộc
tính B là một class thì tạo tham chiếu tới instance của class đó. URI của tham
chiếu được tạo bởi giá trị của nút C.
4.5 Ví dụ
Xét một ví dụ minh họa đơn giản sau Cơ sở dữ liệu gồm 4 bảng:
Author (AuthorID,AuthorName, AuthorEmail, AuthorORG) Document(DocumentID, DocName, DocFormat, DocLink) TeachingDoc(DocumentID, Subject)
Doc_Author(AuthorID, DocumentID) Dữ liệu 3 bảng như sau:
Bảng Author:
AuthorID AuthorName AuthorEmail AuthorORG
AuthorO1 Nguyễn Văn A anv@yahoo.com MinhKhaiPub
Author02 Trần Văn B btv@yahoo.com MinhKhaiPub
Bảng Document:
DocumentID DocName DocFormat DocLink
Doc01 Kỹ thuật lập trình C++
pdf http://www.somewhere/Doc
Doc02 Semantic Web chm http://www.somewhere/Doc
Doc03 MSSQL 2000 pdf http://www.somewhere/Doc
Doc04 ASP & ASP.NET pdf http://www.somewhere/Doc
Bảng TeachingDoc:
DocumentID Subject
Doc01 Kỹ thuật lập trình
AuthorID DocumentID Author01 Doc01 Author02 Doc01 Author01 Doc02 Author01 Doc03 Author02 Doc04 4.5.1 Bảng mô tả các thuộc tính:
Tên thuộc tính domain range loại thuộc
tính parent class
Author.AuthorID #Author #Author primaryKey
Author.AuthorName #Author Literal Attribute Author.AuthorEmail #Author Literal Attribute
Author.AuthorORG #Author Literal Attribute
Document.DocumentID #Document #Document primaryKey Document.DocName #Document Literal Attribute Document.DocFormat #Document Literal Attribute Document.DocLink #Document Literal Attribute
TeachingDoc.DocumentID #TeachingDoc #TeachingDoc foreignKey #Document TeachingDoc.Subject #TeachingDoc Literal Attribute
Doc_Author.AuthorID #Doc_Author #Author foreignKey Doc_Author.DocumentID #Doc_Author #Document foreignKey
4.5.2 Phát biểu SELECT để rút trích dữ liệu:
SELECT TeachingDoc.DocumentID As _RESOURCEURI_, TeachingDoc.Subject As subject,
Document.DocumentID As DocInfo FROM TeachingDoc, Document
WHERE TeachingDoc.DocumentID=Document.DocumentID For XML AUTO, ELEMENTS
ORDER BY TeachingDoc.DocumentID 4.5.3 File RDFS <?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"> <rdfs:Class rdf:ID="TeachingDoc"> <rdfs:subClassOf rdf:resource="#Document"> </rdfs:Class> <rdfs:Class rdf:ID="Document"/> <rdf:properety rdf:ID="subject"> <rdfs:domain rdf:resource="#TeachingDoc"> <rdfs:range rdf:resource="&rdf;Literal"/> </rdf:property> <rdf:properety rdf:ID="DocInfor"> <rdfs:domain rdf:resource="#TeachingDoc"> <rdfs:range rdf:resource="#Document"/> </rdf:property> </rdf:RDF> 4.5.4 File RDF file Xml <?xml version="1.0"?> <result> <TeachingDoc> <_RESOURCEURI_>Doc01</_RESOURCEURI_> <subject>Kỹ thuật lập trình</subject>
<Document>
<DocInfo>Doc01</DocInfor> <Document>
</result> file RDF <?xml version="1.0" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:pub="http://www.pub.com/pub-ns#"> <rdf:Description rdf:about="http://www.Example/TeachingDoc#Doc01"> <pub:subject> Kỹ thuật lập trình </pub:subject>
<pub:DocInfo rdf:resource=" http://www.Example/Document#Doc01"/> </rdf:Description>
</rdf:RDF>
4.6 Đánh giá giải thuật
Giải thuật có thể được cài đặt cho máy tính thực hiện một cách tự động ở tất cả các bước. Từ bước mô tả thuộc tính trong cơ sở dữ liệu cho đến bước tạo file RDF. Ưu điểm của giải thuật là có thể được cài đặt thành một modul trung gian giữa RDB và các trang Semantic Web. Dữ liệu đưa đến các trang Semantic Web có thể được người
lập trình lựa chọn một các tùy ý.
Giải thuật đãđược cài đặt demo trên MSSQL2000 hay MSSQL 2005 với bộ thư
viện .NET 2.0. Trong bản demo này, file mô tả cơ sở dữ liệu được mô tả theo hai cách:
Cách 1: mô tả trước toàn bộ cơ sở dữ liệu giống như thuật toán trên đây. Cách 2: Chỉ
mô tả những bảng có thuộc tính được rút trích trong câu select.
Chương5
CÀI ĐẶT ỨNG DỤNG 5.1 Mô tả ứng dụng:
Ứng dụng cho phép chuyển đổi cơ sở dữ liệu quan hệ cho trước thành dữ liệu
dạng RDF bao gồm 2 file .rdfs và .rdf. File .rdfs lưu sự mô tả của các class và sự liên hệ giữa các property với các class còn file .rdf lưu trữ dữ liệu dạng RDF. Việc chuyển đổi không phụ thuộc vào cơ sở dữ liệu. Chương trình được sử dụng cho việc chuyển đổi một cơ sở dữ liệu quan hệ bất kỳ.
Chương trình có 2 chức năng chính. Thứ nhất, cho phép người dùng dùng công cụ trực quan để mô tả tài nguyên và chuyển đổi dữ liệu. Thứ hai, cho phép người dùng chuyển đổi dữ liệu từ câu lệnh select.
5.2 Các yêu cầu của ứng dụng5.2.1 Yêu cầu về giao diện 5.2.1 Yêu cầu về giao diện
Chương trình phải có giao diện đồ họa dễ hiểu, đơn giản khi sử dụng. Mục đích của giao diện là phải cung cấp cho người dùng cách mô tả tài nguyên RDF dựa trên một bảng nào đó trong cơ sở dữ liệu và các bảng liên quan.
5.2.2 Yêu cầu chức năng
Chức năng chuyển đổi dữ liệu trong cơ sở dữ liệu thành dữ liệu dạng RDF là chức năng chính của chương trình. Ngoài ra các mô hình khi thiết kế phải được lưu giữ để có thể dùng lại.
5.3 Triển khai ứng dụng
Do phải kết nối cơ sở dữ liệu khi thiết kế mô hình nên hệ thống được triển khai như một ứng dụng windows form. Lựa chọn này tận dụng tốc độ của các ứng dụng
windows form và cho phép thiết kế ứng dụng một các trực quan bằng cách dùng các công cụ kéo thả.
Ngôn ngữ lập trìnhđược chọn là C# với bộ thư viện .Net 2.0. Hệ quản trị cơ sở
dữ liệu là SQL 2000 hay SQL 2005. Ngôn ngữ C# được chọn với lý do đây là ngôn ngữ mạnh thích hợp để viết các ứng dụng tương tác với hệ quản trị cơ sở dữ liệu SQL
là hệ quản trị cơ sở dữ liệu khá phổ biến.
5.4 Hoạt động của hệ thống5.4.1 Kết nối với cơ sở dữ liệu 5.4.1 Kết nối với cơ sở dữ liệu
Muốn tạo một mô hình RDF trước hết phải kết nối với cơ sở dữ liệu. Việc kết
nối cơ sở dữ liệu hỗ trợ 2 chế độ xác thực: windows authentication và server authentication. Sau khi kết nối cơ sở dữ liệu thành công hệ thống sẽ hiển thị danh sách các cơ sở dữ liệu do người dùng thiết lập trong SQL như hình 4.2.
Hình 4.1 kết nối cơ sở dữ liệu
Giới thiệu một số nút chức năng:
1: Hiển thị một bảng liên quan đã chọn trong bảng các bảng liên quan.
2: Hiện bảng liên quan đến khóa ngoại đã chọn trong chi tiết của một bảng liên quan. 3: Bật tính năng chỉnh sửa trong bảng chính.
4: Cập nhật thông tin đã chỉnh sửa trong bảng chính.
5: Tạo điều kiện lọc trên thuộc tính đã chọn trong bảng chính. 6: Xóa điều kiện lọc trên thuộc tính đã chọn.
7: Thêm các comment cho các class. 8: Thêm các comment cho các property. 9: Tạo ánh xạ tên cho các thuộc tính.
10: Tạo file mô tả cho cơ sở dữ liệu đã chọn.
Một số chức năng của các nút thông qua các tên:
kết nối: Kết nối với cơ sở dữ liệu.
Mở file: Mở file .model từ đĩa cứng.
Lưu: Lưu file .model mô tả tài nguyên đang mô tả.
Kiểm tra: Kiểm tra mô hình mô tả tài nguyên.
RDF: Tạo file RDF và RDFS.
RDFS: Tạo file RDFS.
Xóa: Xóa mô hìnhđang mô tả.
5.4.2 Tạo model RDF thông qua các bảng
2 10
1 3 5 7 8
Sau khi kết nối thành công ta có thể tạo mới một model RDF bằng cách kéo
một bảng ở phía bên trái thả vào khung tạo RDF. Ta cũng có thể mở một model đã lưu để tiếp tục chỉnh sửa model bằng cách click vào nút Mở file vào File--> mở model từ
file sẵn có. Kết quả thể hiện như hình 4.3
Hình 4.3 tạo một model RDF mô tả resource CBGV
Sau khi kéo một bảng thả vào khung tạo RDF, hệ thống sẽ hiển thị 2 bảng: Bảng chính
của model và một bảng hiển thị các bảng liên quan đến bảng chính theo mối quan hệ
khóa ngoại – khóa chính hoặc mối quan hệ is a.
Ta có thể thay đổi tên các thuộc tính bằng cách chỉnh sửa trực tiếp trên bảng
chính hay bỏ các thuộc tính không cần thiết bằng cách bỏ chọn vào nút bên cạnh.
Muốn thêm thuộc tính từ bảng liên quan ta có thể chọn một bảng liên quan từ
bảng các bảng liên quan, click chuột phải --> Xem chi tiết hay click vào nút 1 của
Hình 4.4 bảng chính của resource cần mô tả và bảng liên quan cấp 1
Muốn bổ sung thêm thuộc tính từ bảng liên quan ta chỉcần chọn thuộc tính đó và kéo thả nó sang bảng chính. Ví dụ, ta muốn quan tâm tới môn học mà Giảng viên giảng
dạy một cách chi tiết ta có thể kéo thuộc tính Giang_day.Ma_mon_hoc sang bảng CBGV. Sau đó hệ thống sẽ kiểm tra và thông báo cho người thiết kế biết tài nguyên nào cần phải mô tả thêm. Một cách đơn giản hơn nếu chỉ quan tâm đến tên môn học
mà giảng viên giảng dạy ta chọn khóa ngoại tham chiếu đến bảng môn học: Giang_day.Ma_mon_hoc sau đó click chuột phải. Sau đó chọn "hiện bảng liên quan
đến khóa ngoại" trên pop up menu. Ở bảng liên quan cấp 2 là bảng Mon_hoc ta chỉ
thuyết ta có thể kết nối hai bảng với nhau thông qua nhiều bảng trung gian. Tuy nhiên khi kết nối hai bảng thông qua nhiều bảng trung gian sẽ làm cho hệ thống hoạt động
chậm do đó trong chương trình này chỉ cho phép kết nối hai bảng thông qua một bảng
trung gian. Giải pháp để kết nối nhiều bảng là tạo các thuộc tính tham chiếu đến các tài nguyên dựa vào các khóa ngoại để các tài nguyên tham chiếu lẫn nhau.
Hình 4.5 bảng chính và bảng liên quan cấp 1 và bảng liên quan cấp 2
Nếu muốn rút trích dữ liệu theo điều kiện lọc trên một thuộc tính nào đó ta chí việc
chọn thuộc tính đó, click chuột phải, chọn "điều kiện lọc".
Ta có thể đổi tên các property sao cho phù hợp với ý nghĩa của chung hơn bằng
cách click chuột phải, chọn "chỉnh sửa". Nói chung, các property có tên sao cho phù hợp với ngôn ngữ tự nhiên.
Hình 4.6điều kiện lọc cho thuộc tính CBGV.Ten_CBGV
Hình 4.7 sửa đổi tên các thuộc tính
Sau khi chỉnh sửa xong các thuộc tính ta có thể chú thích cho các lớp bằng cách
bấm vào nút 7 trên thanh công cụ. Nếu muốn tạo comment cho các thuộc tính ta bấm
Hình 4.8 tạo comment cho cáclớp
Mục đích của việc tạo các comment là tạo điều kiện thuận lợi cho việc chia sẻ các file
RDF .
Để thay đổi thư mục lưu file RDF và RDFS, trên thanh menu ta click vào "công
cụ" sau đó chọn "tùy chọn"
Hình 4.9 chỉ định thư mục lưu RDF và RDFS, không gian tên, prefix cho file RDF Sau khi mô tả resource, ta chỉ việc bấm vào nút "RDF" để tạo file RDF và
RDFS. Trước khi tạo file RDF hệ thống sẽ tự động kiểm tra lỗi và thông báo những
Hình 4.0 kiểm tra và thông báo lỗi
Hình 4.12 hiển thị file RDFS cho người dùng
5.4.3 Tạo RDF và RDFS trực tiếp bằng câu lệnh select:
Cách tạo file RDF và RDFS trên đây có ưu điểm là trực quan nhưng không đáp ứng được cho người dùng trong những trường hợp phức tạp. Hơn nữa trong những ứng
dụng đòi hỏi việc chuyển đổi như là một modul giữa ứng dụng và cơ sở dữ liệu thì cách làm trên không thực hiện được. Trong trường hợp này ta chuyển đổi trực tiếp dữ
liệu trong cơ sở dữ liệu quan hệ thành RDF từ câu lệnh select. Áp dụng thuật toán đã giới thiệu trong chương 4 ta có thể cài đặt modul chuyển đổi cho các ứng dụng. Tuy
nhiên trong ứng dụng này chỉ cung cấp một giao diện cho phép người dùng nhập câu
Công việc đầu tiên, ta phải chọn một cơ sở dữ liệu và tiến hành mô tả nó bằng
cách chọn tên cơ sở dữ liệu và bấm vào nút "RDB2RDFS", sau đó chọn thư mục để lưu file mô tả.
Hình 4.13 chọn cơ sở dữ liệu và mô tả.
Tiến hành tạo câu lệnh select bằng cách chuyển sang tab "Tạo RDF từ câu select". Sau đó, chọn các thuộc tính cần rút trích và kéo chúng thả vào các vị trí thích
hợp trong câu select. Trước khi cho hệ thống tạo file RDF ta phải chỉ ra file mô tả cơ
sở dữ liệu bằng cách mở thư mục chứa các file mô tả cơ sở dữ liệu., sau đó chọn tên
cơ sở dữ liệu trên combobox.
Hình 4.15 chọn tên cơ sở dữ liệu và tạo file RDF
mở thư mục lưu các file mô tả cơ sở dữ liệu
tạo file RDF từ câu
KẾT LUẬN
Semantic Web với những tính năng ưu việt của nó chắc chắn sẽ là một thế hệ Web trong tương lai. Sự phát triển của Semantic Web chủ yếu dựa vào sự chuẩn hóa
và liên kết dữ liệu trên qui mô toàn cầu. Việc nghiên cứu Semantic Web đòi hỏi một
thời gian khá dài. Trong khoảng thời gian ít ỏi của đồ án thực tập tốt nghiệp tôi đãđạt được một số vấn đề sau:
1. Tìm hiểu một cách tổng quan về Semantic Web.
2. Tìm hiểu về RDF – nền tảng của Semantic Web.
3. Đề xuất một cách chuyển đổi dữ liệu trong cơ sở dữ liệu quan hệ thành dữ liệu
dạng RDF (chương 4).
4. Xây dựng được ứng dụng minh họa cho cách chuyển đổi đã được đề xuất ở chương 4.
RDF là một ngôn ngữ khá đơn giản do đó nó không mô tả được những quan hệ
phức tạp. Hướng phát triển của đề tài dùng ngôn ngữ OWL (Ontology Web Language) để mô tả và chuyển đổi dữ liệu để đáp ứng các yêu cầu ngữ nghĩa cao hơn của
Semantic Web.
TÀI LIỆU THAM KHẢO
[1] Grigoris Antoniou and Frank van Harmelen (2004), A Semantic Web Primer,
The MIT Press.
[2] Shelley Powers (2003), Practical RDF, O'Reilly.
[3] Tim Berners-Lee (1998), Relational Databases on the Semantic Web,
http://www.w3.org/DesignIssues/RDB-RDF.html. [3] http://infomesh.net/2001/swintro/ [4] http://logicerror.com/semanticWeb-long [5] http://www.w3.org/TR/rdf-primer/