MỞ ĐẦUNgày nay, cơ sở dữ liệu đồ thị đã trở thành thế mạnh trong nhiều lĩnh vực, bởi hầu hếtcác ứng dụng đều có một lượng dữ liệu khổng lồ và đòi hỏi phải có tính linh hoạt mềm dẻo để th
Trang 1MỤC LỤC
I Tổng quan về cơ sở dữ liệu đồ thị 3
1 Lý thuyết về đồ thị: 3
2 Cơ sở dữ liệu đồ thị: 3
II.Tổng quan về RDF 4
1 Định nghĩa: 4
2 RDF và các cơ sở dữ liệu truyền thống 5
3 Biểu diễn các phát biểu bằng đồ thị RDF : 6
4 Chia sẻ dữ liệu 10
4.1 Các luật của RDF: 11
4.2 RDF Statements 11
4.3 Những thành phần chính RDF 11
4.4 Thành phần RDF Container 14
4.4.1 Thành phần <rdf:Bag> 14
4.4.2 Thành phần <rdf:Seq> 15
4.4.3 Thành phần <rdf:Alt> 16
4.5 RDF Collections 17
5 Xây dựng cơ sở đồ thị RDF 18
6 Cài đặt và Demo 22
III.Kếtluận 24 Tài liệu tham khảo 25
Trang 2MỞ ĐẦU
Ngày nay, cơ sở dữ liệu đồ thị đã trở thành thế mạnh trong nhiều lĩnh vực, bởi hầu hếtcác ứng dụng đều có một lượng dữ liệu khổng lồ và đòi hỏi phải có tính linh hoạt mềm dẻo
để thay đổi cấu trúc dữ liệu theo thời gian cho phù hợp với nhu cầu thực tế
Và Dữ liệu đồ thị đã đáp ứng được nhu cầu này bằng cách thức lưu trữ thông tin ở dạng
đồ thị những đỉnh và cạnh
Bài báo cáo này trình bày khái quát và cách tiếp cận RDF bằng cơ sở dữ liệu đồ thị.Cài đặt RDF với giao diện đơn giản, cho phép người dùng tìm kiếm thông tin trong cấutrúc RDF
Em xin chân thành cảm ơn PGS.TS Đỗ Phúc đã tận tình giảng dạy, truyền đạt nhữngkiến thức quý báu và hướng dẫn về nguồn tài liệu tham khảo để em có thể hoàn thành mônhọc này
Em xin chân thành cám ơn!
Trang 3I Tổng quan về cơ sở dữ liệu đồ thị
1 Lý thuyết về đồ thị:
Một đồ thị G là một bộ gồm ba thành phần <N,E,W> trong đó N={ni} là một tập cácnút, là tập các cạnh, mỗi cạnh gồm cặp các nút <ni,nj> và W là một ánh xạ E->Rntương ứng với một trọng số hay giá trị của mỗi cạnh
Trọng số được định nghĩa như là một vector số thực bởi vì trong thực tế giá trị thuộc tínhcủa các cạnh là khá phức tạp
Một đồ thị có các cạnh có hướng, hướng từ đỉnh nguồn đến đỉnh đích thì gọi là đồ thị cóhướng Một độ thị mà có nhiều cạnh nối giữa hai nút gọi là đa đồ thị Một cạnh mà nối vớichính bản thân của nút đó thì gọi là cạnh lặp
Trong đề tài này chủ yếu ta sử dụng đồ thị có hướng với trọng số của các cạnh là cácpredicate
Hình 1: Đồ thị có hướng
2 Cơ sở dữ liệu đồ thị:
1
Trang 4Cơ sở dữ liệu là một kiểu cơ sở dữ liệu NoSQL sử dụng cấu trúc đồ thị với những cạnh,nút và những thuộc tính để biểu diễn và lưu trữ thông tin
Một cơ sở dữ liệu đồ thị là một tập hợp các đồ thị thành viên G = {G1, G2,
RDF được viết dưới định dạng XML Bằng cách sử dụng XML, RDF dễ dàng
chuyển đổi giữa các máy tính sử dụng những hệ điều hành khác nhau
Trang 5 RDF(Resource Description Framework) là nền tảng cho việc biểu diễn dữ liệu trong web ngữ nghĩa RDF được thiết kế để cung cấp 1 chuẩn cho việc mô hình hóa, miêu
tả và trao đổi thông tin
Để làm được điều này thì RDF sử dụng 1 mô hình dữ liệu đơn giản, trong đó gồm : các tài nguyên (resources) và các phát biểu (statements)
Một phát biểu liên kết hai tài nguyên với nhau Một phát biểu giống như 1 câu đơn giản có dạng: chủ ngữ(subject)-động từ(verb)-vị ngữ(object) VD : "I love you" thì "
I " là chủ ngữ, " love " là động từ, " you " là vị ngữ
Trong RDF, một phát biểu được gọi là một bộ ba, vì nó gồm 3 phần :
o Chủ ngữ của phát biểu được gọi là subject
o Động từ được gọi là predicate hoặc property
o Vị ngữ thì được gọi là object hoặc value
4.1.1 RDF và các cơ sở dữ liệu truyền thống
Trong cơ sở dữ liệu truyền thống, dữ liệu được lưu dưới dạng bảng Trong đó mỗi bộ
dữ liệu (tuple) không giới hạn về số lượng thành phần
Ví dụ :
person-1 William Sparks 435 555-6789 wsparks@mailto.com Springfield MAperson-2 Constance Sim 312 555-2238 csim@coldmail.com Chicago IL
Do RDF chỉ gồm các tài nguyên và các bộ ba, nên để đưa dữ liệu về dạng các bộ ba, cần tách cơ sở
dữ liệu truyền thống thành các bảng nhỏ nhất có thể Một hàng của một bảng gồm hai cột có thể
Trang 6Ta có bộ ba : (William Sparks, phone, 435 555-6789)
Sau đó, ta có thể biểu diễn khóa chính trong các bảng bằng một tham chiếu URI, hoặc trong một số trường hợp có thể dùng các nút vô danh(anonymous node) để biểu diễn các hàng
4.1.2 Biểu diễn các phát biểu bằng đồ thị RDF :
Một đồ thị biểu diễn RDF bao gồm các nút (đỉnh) và các cung Mỗi nút có thể là một tàinguyên (resource) hoặc giá trị nguyên thủy (literal), trong khi đó các cung tượng trưng chomột predicate/property Ta có thể ánh xạ một bộ ba sang lược đồ như sau:
Hình 3 : Ví dụ về đồ thị RDF
Trong các đồ thị RDF :
Trang 7o Hình tròn hoặc oval biểu diễn cho một tài nguyên
o Hình chữ nhật biểu diễn cho giá trị nguyên thủy ví dụ như 1 chuỗi kí tự
Tài nguyên có nhiều phát biểu :
Hình dưới biểu diễn khi có một vài phát biểu về cùng 1 tài nguyên :
Hình 4 : Một tài nguyên có nhiều thuộc tính, các thuộc tính thuộc các phát biểu khác nhau
Ở ví dụ trên, ta không thấy city và state có mối quan hệ với nhau Nhưng trên thực tế thì ngược lại, một người sống ở một nơi nào đó trong thành phố thì tương ứng phải ở một quận nào đó Để khắc phục điều này, ta thêm vào đồ thị một nút nữa, nút vô danh(anonymous node), có hai thuộc tính city, state
Trang 8Hình 5 : Nút vô danh hay nút trống
Nút vô danh(anonymous node) :
Kể cả khi 1 tài nguyên không được định danh, nó vẫn có thể có kiểu riêng và là chủngữ(subject) của các phát biểu khác Ở hình trên, person-1 có adrress là một tài nguyênkhông định danh(nút vô danh), tài nguyên này lại là chủ ngữ của hai phát biểu khác Bâygiờ ta sẽ thêm một thuộc tính nữa cho nút trống này để xác định kiểu cho tài nguyên đó
Trang 9Hình 6 : Tạo kiểu cho nút vô danh
Tài nguyên là vị ngữ của phát biểu
Ví dụ, ta muốn tạo một phát biểu về tài khoản email của person-1 Giả sử, nó được
mở tạo vào August 1, 2001 Ta muốn tạo một bộ ba với địa chỉ email là chủ ngữ (subject) nhưng không thể vì chủ ngữ phải là tài nguyên chứ không phải là kí tự
Tùy từng trường hợp ta có thể sử dụng một nút vô danh hoặc tạo 1 nút mới Hình dưới dùng cách tạo một nút mới Việc này có vẻ đơn giản nhưng nó đã đưa ra một hướng xử lý mới trong RDF
Trang 10Hình 7 : Thêm một nút mới để email có thể là chủ ngữ của các phát biểu khác
Một số nút đặc biệt
Có nhiều trường hợp chúng ta muốn nói về một tài nguyên mà bản thân nó là một tậphợp gồm nhiều tài nguyên khác Mô hình RDF có định nghĩa ba kiểu tài nguyên đặc biệt để hỗ trợ những trường hợp này :
o Bag: chứa đựng tập tài nguyên không cần thứ tự
Trang 11Hình 8 : Một tập hợp của phương tiện giao thông
Sequence : chứa đựng tập tài nguyên có thứ tự
Alternative : chứa đựng các lựa chọn cho một tài nguyên
Hình 9 : Nút alternative - biểu diễn các lựa chọn - đèn có thể tắt hoặc mở
4.1.3 Chia sẻ dữ liệu
Để dữ liệu có thể được sử dụng trên khắp mạng thì cần có 1 cách để trao đổi thông tin giữa các máy tính Ở đây RDF chi đóng vai trò biểu diễn thông tin, vậy thì cần phải có 1 định dạng chuẩn để trao đổi các bộ RDF trên mạng Internet và các mạng khác Điều này có thể thực hiện được với 1 ngôn ngữ dựa trên XML gọi là RDF/XML
4.2 Các luật của RDF:
RDF sử dụng các URI để nhận biết thông tin về tài nguyên RDF mô tả thông tin tài nguyênbằng các thuộc tính và giá trị thuộc tính
Tài nguyên(Resource) có một URI cụ thể ví dụ : http://www.w3schools.com/rdf
Thuộc tính là một tài nguyên có tên như author, hompage…
Trang 12Giá trị thuộc tính là giá trị cụ thể cho thuộc tính đó như giá trị thuộc tính cho author là “JanEgil Refsnes” hay gía trị thuộc tính cho homepage là http://www.w3schools.com
4.3 RDF Statements
RDF statement là một sự kết nối của tài nguyên, thuộc tính và giá trị thuộc tính hay còn gọi làsubject,predicate và object Ví dụ:
Statement: “Tác giả của http://www.w3schools.com/rdf là Jan Egil Refsnes”
Subject của statement trên là: http://www.w3schools.com/rdf
Predicate : tác giả
Object : Jan Egil Refsnes
Statement: “homepage của http://www.w3schools.com/rdf là http://www.w3schools.com"Subject: http://www.w3schools.com/rdf
Trang 14 Khai báo namespace :
Việc sử dụng namespace giúp cho tài liệu RDF ngắn gọn và dễ đọc hơn đối với người thiết
kế Chẳng hạn như ta có một địa chỉ là "http://www.semantic.vn/2009/01/rdf-syntax-ns#" Nếu ta gán nó cho một namespace ví dụ như xmlns:rdf, thì từ nay về sau ta chỉ việc dùng rdf:phone thay cho http://www.semantic.vn/2009/01/rdf-syntax-ns#phone
4.3.4 Thuộc tính là tài nguyên
Thuộc tính có thể định nghĩa như là những tài nguyên
<?xml version="1.0"?>
Trang 18</rdf:RDF>
4.5 RDF Collections
Những giá trị chứa trong container còn được gọi là các member
RDF Collection mô tả các nhóm mà chỉ chứa các member cụ thể
Một collection có thể được mô tả bởi thuộc tính rdf:parseType="Collection"
Trang 20Vấn đề được đặt ra là từ một tài liệu RDF làm sao để sinh ra các statement hợp lý Ta xétmột ví dụ cụ thể cho tài liệu RDF sau:
<?xml version="1.0" encoding="utf-8"?>
<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:doap="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:admin="http://webns.net/mvcb/" xml:lang="en">
<doap:Project rdf:about="http://razor.occams.info/code/semweb">
<doap:name>SemWeb RDF Library for C#/.NET</doap:name>
<doap:shortname>SemWeb Library for NET</doap:shortname>
Trang 21Đây là một tài liệu RDF về dự án có tên là SemWeb RDF Library for C#/.NET
RDF này bao gồm nhiều thành phần, mỗi thành phần tạo nên một statement
Đối với các thành phần <doap:name>, <doap:shortname>, <doap:homepage>,
<doap:created>, <doap:description> ta có các phát biểu về statement như sau:
Dự án semweb có name là SemWeb RDF Library for C#/.NET
có shortname là SemWeb Library for NET
có homepage là http://razor.occams.info/code/semwebĐược tạo vào ngày 2005-04-20
Dự án semweb có description là A library for semantic web and RDF data manipulationwritten in C# for NET applications
Đối với thành phần <doap:maintainer> và <doap:release> chứa một nhóm các thành phần khác nên ta sẽ sinh ra một subject của nó là thành phần chứa nó, predicate là tên thành phần và object là giá trị ngẫu nhiên
Ta có phát biểu về statement cho thành phần <doap:maintainer> như sau:
Dự án semweb có maintainer là A
Trang 22Dự án semweb có release là B.
Những thành phần con chứa trong <doap:maintainer> và <doap:release> sẽ tạo ra các statement có subject là các giá trị ngẫu nhiên của thành phần chứa nó
Đối với các thành phần chứa trong <doap:maintainer> có các statement sau:
A có name là Joshua Tauberer
Phát biểu statement cho thành phần <doap:revision> chứa trong <doap:release> là:
B có revision là 1.01
Ngoài ra còn có một statement mà predicate của nó có tên là type để cho biết kiểu của subject Statement được sinh ra cho những thành phần mà chứa các thành phần có chứa các giá trị thuộc tính cụ thể
Đối với RDF trên ta có phát biểu statement về type như sau:
Dự án semweb có type là Project
Trang 23Hình 10: Table Vertex và Edge
Hình 11: RelationShip
6 Cài đặt và Demo
* Chương trình demo được thực hiện qua 4 giai đoạn:
Đọc nội dung tài liệu RDF
Chuyển nội dung tài liệu RDF qua bộ parser để tạo ra các statement
Từ các statement tạo ra các nút và cạnh đồ thị
Lưu các nút và cạnh đồ thị vào database
Hướng dẫn cài đặt và sử dụng chương trình
Để cài đặt và sử dụng chương trình demo thì người dùng cần cài hệ quản trị cơ sở dữ
Trang 24- Sau đây là một số lưu ý khi cài đặt MS SQL Server 2005.
Ở màn hình Registration Information bỏ chọn Hide advanced configuration options nếu
ta muốn cài đặt các chức năng nâng cao của SQL Server 2005
Chỉ định tên server cho MS SQL Server 2005 ở màn hình Instance Name Lưu ý tên server này
sẽ được sử dụng khi đăng nhập vào chương trình
Chọn Use a domain User Account và chỉ định user name, password ở màn hình ServiceAccount
Chương trình chạy trên nền Net Framework 3.5 nên người dùng cần phải cài đặt Net
Framework 3.5
5 Cài đặt và sử dụng chương trình
Chương trình được đóng gói thành tập tin exe
Người dùng có thể click setup và theo hướng dẫn cài đặt cho đến khi hoàn tất
Sau khi kết thúc cài đặt, ta khởi động chương trình bằng cách double click vào biểu tượngchương trình trên desktop Người dùng sẽ được yêu cầu đăng nhập để kết nối với máy chủ SQLServer Ta điền thông tin tên máy chủ SQL Server, User name và Password mà ta đã nhập vào lúccài đặt MS SQL Server
Tên server phải theo hình thức tên domain Tức là gồm tên hoặc ip máy chủ + “\” + tên SQL server Nếu SQL server được cài trên cùng một máy có thể dùng localhost thay cho tên máy chủ
Trang 25Sau khi hoàn tất đăng nhập, màn hình giao diện chính sẽ hiển thị:
Trang 26Chọn File>Open để tiến hành import một tài liệu RDF Sau khi kết thúc import, một giao diện trực quan về đồ thị RDF sẽ được hiển thị.
Để tìm kiếm ta nhập thông tin cần tìm vào ô tìm kiếm, rồi click search
6 Kết luận
6.1 Kết quả đạt được
Trình bày khái quát và cách tiếp cận RDF bằng cơ sở dữ liệu đồ thị
Cài đặt RDF với giao diện đơn giản, cho phép người dùng tìm kiếm thông tin trongcấu trúc RDF
6.2 Cần cải thiện
Cải tiến tính năng tìm kiếm để có thể thực hiện tìm kiếm trên dữ liệu lớn
Trang 27Khai thác sâu vào nhiều tính năng khác trên cơ sở dữ liệu đồ thị RDF.
Tài liệu tham khảo
Takashi Washio, Hiroshi Motoda - State of the Art of Graph-based Data Mining
Renzo Angles, Claudio Gutierrez - Querying RDF Data from a Graph Database Perspective