Tích hợp dữ liệu trong Semantic Web
Trang 1ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
TIỂU LUẬN MÔN HỌC
Giáo viên hướng dẫn : TS Hoàng Hữu Hạnh
Học viên thực hiện: Nhóm 7
Nguyễn Trí Nhân Trần Thái Sơn Trần Kiên Nguyễn Thị Trúc Quỳnh
Lớp Cao học Khoa học máy tính – Khoá 2008 - 2010
Trang 2Huế, tháng 12/2009
Trang 3MỤC LỤC
MỤC LỤC 1
MỞ ĐẦU 1
B NỘI DUNG 3
1 Tổng quan về AutoMed 3
2 Lược đồ biểu diễn các nguồn dữ liệu XML 5
3 Chuyển đổi và tích hợp các nguồn dữ liệu XML trong AutoMed 10
3.1 Thuật toán chuyển đổi lược đồ 10
3.2 Phép tương đương lược đồ 16
3.3 Tích hợp lược đồ 20
3.4 Truy vấn các file XML 20
3.5 Xử lý nhiều Ontologies 24
C KẾT LUẬN 25
D TÀI LIỆU THAM KHẢO 26
MỞ ĐẦU
Mục tiêu ban đầu của Semantic Web là để hỗ trợ người dùng tìm kiếm thông tin trên mạng một cách nhanh chóng, chuẩn xác và thông minh hơn so với các công cụ tìm kiếm truyền thống Kể
từ đó đến nay, các kỹ thuật liên quan đến Semantic Web không ngừng được hoàn thiện, các ứng dụng liên quan đến Semantic Web cũng được mở rộng 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
Trong giới hạn của bài tiểu luận, nhóm chúng tôi tìm hiểu các phương pháp tích hợp các nguồn dữ liệu XML trong Semantic Web bằng hệ thống AutoMed
Nội dung của tiểu luận gồm có:
Tổng quan về AutoMed
Lược đồ chuyển đổi các nguồn dữ liệu XML
Chuyển đổi và tích hợp các nguồn dữ liệu XML trong AutoMed
Chúng tôi xin chân thành cảm ơn Thầy giáo Hoàng Hữu Hạnh đã tận tình giảng dạy Mặc
dù chúng tôi đã cố gắng nghiên cứu và tổng hợp các nguồn tài liệu để hoàn thành tiểu luận nhưng
do thời gian có hạn nên chắc chắn sẽ có một số sai sót, chúng tôi mong nhận được những ý kiến đóng góp của Thầy giáo Hoàng Hữu Hạnh và các anh chị học viên lớp cao học Khoa học Máy tính khóa 2008
Trang 4Nhóm 7-KHMT08
Nguyễn Trí Nhân Trần Kiên
Trần Thái Sơn Nguyễn Thị Trúc Quỳnh
Trang 5B NỘI DUNG
1 Tổng quan về AutoMed
AutoMed là một hệ thống tích hợp dữ liệu không đồng nhất hỗ trợ chuyển đổi lược
đồ để tích hợp dữ liệu Hình 1: mô tả cách tiếp cận AutoMed để tích hợp dữ liệu XML
Mỗi nguồn dữ liệu được mô tả bởi một lược đồ nguồn dữ liệu, kí hiệu S i, nó được chuyển
đổi thành 1 hợp lược đồ thích hợp US i bởi một tập các bước chuyển đổi nguyên thuỷ, do
đó sẽ tạo ra một lộ trình chuyển đổi giữa lược đồ nguồn dữ liệu với hợp lược đồ tương
ứng Tất cả các hợp lược đồ đều đúng cú pháp và được xác định bởi các id chuyển đổi
giữa mỗi cặp US i và US i+1 của các hợp lược đồ ID là một loại đặc biệt của bước chuyển đổi nguyên thuỷ, nó nối hai cấu trúc đúng cú pháp trong hai lược đồ khác nhau biểu diễn tương đương về mặt ngữ nghĩa Lộ trình chuyển đổi bao gồm các ID có thể được tự động sinh ra Sau đó một lược đồ bất kỳ của các hợp lược đồ được chỉ định là một lược đồ tổng thể hoặc được lựa chọn để chuyển đổi thành một lược đồ mới có khả năng trở thành lược
đồ tổng thể
Để hoàn thành việc chuyển đổi một lược đồ nguồn dữ liệu thành hợp lược đồ phải
áp dụng các bước chuyển đổi nguyên thuỷ như: Add, Delete hoặc Rename cấu trúc lược
đồ Mỗi thao tác Add, Delete được đi kèm bởi một truy vấn chỉ rõ việc mở rộng của một
cấu trúc mới được thêm vào hoặc bị xoá trong giới hạn của các cấu trúc lược đồ khác Truy
vấn này được biểu diễn bởi ngôn ngữ IQL(Intermediate Query Language) của AutoMed
Truy vấn được hỗ trợ bởi một thao tác chuyển đổi nguyên thuỷ nhằm cung cấp thông tin
cần thiết để tự động nghịch đảo chuyển đổi nguyên thuỷ Điều này có nghĩa: AutoMed là một hệ thống tích hợp dữ liệu both-as-view(BAV) [15], trong đó thao tác Add/Extend
trong lược đồ chuyển đổi tương ứng với các luật Global-As-View (GAV), ngược lại thao
tác Delete/Contract tương ứng với luật Local-As-View(LAV) Nó có thể trích lọc một
định nghĩa của lược đồ tổng thể như một view qua các lược đồ nguồn dữ liệu và cũng có thể trích lọc các định nghĩa của các lược đồ nguồn dữ liệu như các view qua lược đồ tổng thể
Trang 6Trong Hình 1 mỗi US i có thể chứa thông tin từ các nguồn S i tương ứng các cấu trúc
này không được chèn vào US i thông qua thao tác Add, ngược lại thông qua thao tác
Extend Cần hai truy vấn để xác định ranh giới mức thấp hơn và cao hơn khi mở rộng cấu
trúc mới Ranh giới thấp hơn có thể là Void và ranh giới cao hơn có thể là Any, chúng xác
định tách biệt mà không biết thông tin về ranh giới thấp hơn và cao hơn của sự mở rộng
một cấu trúc mới Có thể có những thông tin có trong một lược đồ nguồn dữ liệu S i nhưng không có trong US i tương ứng, và thông tin này bị gỡ bỏ bởi thao tác Contract mà không phải bởi thao tác Delete Giống như Extend, Contract cần hai truy vấn để xác định ranh
giới mức thấp hơn và cao hơn khi mở rộng cấu trúc bị xoá
Khi thiết lập tích hợp dữ liệu XML, mỗi nguồn dữ liệu XML được mô tả bởi một
lược đồ XML DataSource kí hiệu S i , chuyển đổi thành một lược đồ trung gian I i, bởi các
thao tác chuyển đổi nguyên thuỷ như Insert, Remove, Rename các cấu trúc lược đồ Sau
đó hợp các lược đồ sinh ra tự động và chúng mở rộng mỗi I i với các cấu trúc còn của các lược đồ trung gian Sau đó các lộ trình chuyển đổi giữa US i và US i+1 của các hợp lược đồ
cũng được tự động sinh ra Framework tích hợp XML hỗ trợ hai phương pháp tích hợp lược đồ Top-Down và Bottom-Up Với phương pháp Top-Down, lược đồ tổng thể được
định nghĩa trước và cấu trúc lược đồ dữ liệu được cấu trúc lại để nối với cấu trúc của nó
Với phương pháp Bottom-Up lược đồ tổng thể không được định nghĩa trước nhưng được
tự động sinh ra
Trang 7Hình 1: Tích hợp XML trong AutoMed
2 Lược đồ biểu diễn các nguồn dữ liệu XML
Khi mã hoá dữ liệu trong XML, có hai cách thức bắt buộc các kiểu và cấu trúc dự định qua các file XML: lược đồ XML và DTD Tuy nhiên, những kĩ thuật này cung cấp một cú pháp phức tạp của một file, chúng mô tả một cấu trúc có thể có của một file, không phải một cấu trúc thực tế Cấu trúc của một file XML rất quan trọng trong tích hợp dữ liệu, tích hợp lược đồ và trong tối ưu hoá truy vấn Có thể nói rằng một file XML có thể không
có lược đồ XML hoặc DTD tham chiếu Vì những lý do này, giới thiệu lược đồ XML DataSource (XML DataSource Schema), tóm tắt cấu trúc của một file XML, lược bỏ bớt thông tin chẳng hạn thông tin về các kiểu dữ liệu Khái niệm lược đồ XML DataSource
Trang 8tương tự với DataGuide Tuy nhiên, lược đồ XML DataSource là các cây XML trong khi
đó DataGuide là các đồ thị OEM
Để có được lược đồ XML DataSource, đầu tiên sao chép file XML vào bộ nhớ, trong miền biểu diễn của nó Thuật toán xây dựng lược đồ XML sau khi sao chép file XML
1 Gọi R là gốc Nếu R có các nút con, gọi danh sách các nút con là L
a Xét nút con đầu tiên trong L là nút N
- Xoá nút N’ và cây con của nó
b Xét nút con tiếp theo của L và thực hiện như (a)
2 Xét mỗi nút trong danh sách chứa nút con mới của R
AutoMed có một mô hình dữ liệu phổ biến thường dùng là Hypergraph Data Model (HDM) Đây là mô hình dữ liệu mức thấp có thể biểu diễn các ngôn ngữ mô hình
hoá mức cao như mô hình quan hệ ER, mô hình hướng đối tượng và mô hình XML Lược
đồ HDM bao gồm các nút, các cạnh và các ràng buộc Lựa chọn một mô hình dữ liệu phổ biến mức thấp cho hệ thống AutoMed là có chủ ý trước, cũng có thể biểu diễn các ngôn ngữ mô hình hoá mức cao tốt hơn mà không bị nối ghép sai và tối nghĩa
Bảng 1 mô tả cách biểu diễn cấu trúc lược đồ XML DataSource trong HDM Lược
đồ này gồm 4 cấu trúc như sau:
được biểu diễn bởi lược đồ 〈〈e〉〉
diễn bởi lược đồ 〈〈e, a〉〉 Trong HDM chúng được biểu diễn bởi một nút mô tả thuộc tính
và một cạnh nối nút này với nút mô tả e, có ràng buộc một thực thể của e có nhiều nhất
Trang 9một thực thể kết hợp với nó và thực thể này có thể kết hợp với một hoặc nhiều thực thể với e.
kết với lược đồ 〈〈e p,e c,i〉〉, trong đó i là thứ tự của ec trong danh sách các nút con của ep Trong HDM, mối quan hệ này được biểu diễn một cạnh nối ep và ec và một ràng buộc mỗi thực thể của ep được kết hợp với 0 hoặc nhiều thực thể của ec và mỗi thực thể của ec chỉ kết hợp với một thực thể của ep
là một cấu trúc nút với lược đồ 〈〈PCDATA〉〉 Trong một lược đồ bất kì, chỉ có một cấu
trúc PCDATA biểu tất cả các thực thể của PCDATA trong một tài liệu XML Để liên kết cấu trúc PCDATA với một Element, xem nó như một Element và sử dụng cấu trúc
NestList.
Ở đây IQL là ngôn ngữ truy vấn dựa trên danh sách đã có, do đó chỉ sử dụng một cấu trúc NestList Nút con thứ n của nút cha có thể được xác định bởi một truy vấn định rõ
NestList tương ứng, và nút được yêu cầu sẽ là mục thứ n trong danh sách kết quả IQL.
Một vấn đề trong lược đồ XML DataSource là các Element XML trùng tên tại các vị trí khác nhau Vấn đề này được mở rộng khi gặp nhiều file Trong lược đồ XML
DataSource, sử dụng đinh danh: 〈 schemaName 〉 : 〈 elementNam e 〉 : 〈 count 〉 , trong đó
SchemaName là tên lược đồ được định nghĩa trong AutoMed, và Count là một biến đếm
được tăng lên mỗi lần gặp elementName cùng tên khi duyệt sâu đầu tiên(Depth-first) lược
đồ Đối với tài liệu XML, wrapper XML tạo ra một định danh duy nhất có dạng
〈 schemaName : elementNam e : count , instance trong đó instance là một biến đếm
được tăng lên mỗi lần gặp instance mới của element lược đồ tương ứng trong tài liệu.
Trang 10Bảng 1 Biểu diễn lược đồ nguồn dữ liệu XML theo HDM
Trang 11Lược đồ XMLDSS trích lọc từ tài liệu này là S 1 trong hình 2
Hình 2: Các lược đồ XMLDSS S 1 và S 2 , lược đồ RDFS R 1 và các lược đồ XMLDSS
tương đương IS 1 và IS 2
Trang 123 Chuyển đổi và tích hợp các nguồn dữ liệu XML trong AutoMed
3.1 Thuật toán chuyển đổi lược đồ
Thuật toán chuyển đổi lược đồ có thể được áp dụng theo hai cách: top-down, trong
đó lược đồ tổng thể được định nghĩa trước và các lược đồ nguồn dữ liệu được chuyển đổi
để đối sánh với nó, không quan tâm đến việc mất thông tin; còn bottom-up thì lược đồ
tổng thể không được định nghĩa trước và thông tin của tất cả các nguồn dữ liệu là được duy trì Cả hai phương pháp tạo các lộ trình chuyển đổi sinh ra các lược đồ trung gian với cấu
trúc đúng Sau đó các lược đồ này được tự động chuyển đổi thành các hợp lược đồ US i
trong hình 1, bao gồm các lộ trình idgiữa chúng Sau đó lộ trình chuyển đổi từ một lược đồ
US i đến lược đồ tổng thể GS có thể được tạo ra theo một trong hai cách: tự động sinh ra sử
dụng các ngữ nghĩa ‘append’, hoặc bán tự động, trong đó các truy vấn hỗ trợ chuyển đổi chỉ rõ sự tích hợp cần được hỗ trợ bởi người dùng Theo cách thứ nhất, việc mở rộng các cấu trúc của các lược đồ tổng thể được tạo ra bằng cách gắn mở rộng các cấu trúc của các cấu trúc tương ứng: US1, US2,…,USn theo thứ tự Vì vậy nếu nguồn dữ liệu XML được tích hợp theo một thứ tự khác, mở rộng mỗi cấu trúc của lược đồ tổng thể nên chứa các instance tương tự, nhưng thứ tự của nó là khác nhau
Phương pháp Top-down: Xét một thiết lập, trong đó một lược đồ tổng thể
GS được cho trước và các lược đồ nguồn dữ liệu phải phù hợp với nó, không cần thiết phải duy trì lượng thông tin của chúng Thuật toán làm việc theo hai
phase, trong growing phase, GS được duyệt và mỗi cấu trúc không hiển thị trong lược đồ nguồn dữ liệu S i được chèn vào Trong shringking phase mỗi
lược đồ S i được duyệt và và bất kỳ một cấu trúc không có trong lược đồ tổng
thể thì bị gỡ bỏ
Thuật toán chuyển đổi một XML DataSource Schema S 1 là có cùng cấu trúc như
một XML DataSource Schema S 2 được mô tả dưới đây Thuật toán này xét một element
trong S 1 tương đương với một element trong S 2 nếu chúng có cùng tên Thuật toán giả sử tên của các element trong S 1 và S 2 là duy nhất
Trang 13a Tìm trong S 1 một thuộc tính a có cùng tên với tên với E trong S2
i) Nếu tìm thấy thì Add E vào S1 với mở rộng của thuộc tính a và Add một cạnh từ
một element trong S 1 tương đương với owner(a,S2) đến E
ii) Ngược lại thì Extend E Sau đó tìm element tương đương của quan hệ parent(E,S1) trong S2 và Add một cạnh từ nó đến E với thao tác Extend
iii) Cả hai trường hợp, chèn các thuộc tính của E trong S2 vào element E mới được chèn trong S1 với thao tác Add hoặc Extend, phụ thuộc vào việc có thể mô tả sự mở rộng của một thuộc tính bằng cách sử dụng cấu trúc còn lại của S1 Lưu ý rằng một hoặc nhiều hơn các phép chèn như thế có thể xảy ra tình trạng chuyển một element của S1 thành một thuộc tính
b Nếu E được liên kết đến một cấu trúc PCDATA trong S 2:
i) Nếu cấu trúc PCDATA không có trong S1 thì chèn nó với thao tác Extend, sau đó chèn thêm một cạnh từ E đến cấu trúc PCDATA với thao tác Extend
ii) Ngược lại, Add một cạnh từ E đến cấu trúc PCDATA
a Chèn các thuộc tính của E trong S2 nhưng không xuất hiện trong E thuộc S1, tương
tự như 1(a)iii.
b Nếu E được liên kết đến cấu trúc PCDATA trong S2, tương tự như 1.b
a Chèn một cạnh từ Ep đến E, trong đó Ep là element tương đương của parent(E,S2) trong S1 Việc chèn này có thể hoặc là một thao tác Add hoặc thao tác Extend, phụ thuộc vào đường đi từ Ep đến E Thuật toán tìm đường đi ngắn nhất từ Ep đến E và nếu nó chỉ bao gồm các cạnh từ parent đến child thì thao tác chuyển đổi là Add ngược lại là Extend
b Chèn các thuộc tính của E trong S2 không xuất hiện trong E thuộc S1, tương tự 1.a)iii
c Nếu E được liên kết đến một cấu trúc PCDATA, tương tự 1.b
Trang 14Trong bước 3a, thuật toán quyết định cho dù đưa ra thao tác Add hay Extend, phụ thuộc vào kiểu các cạnh mà đường đi từ Ep đến E chứa nó Để lý giải điều này, giả sử rằng
đường đi bao gồm tại một điểm nào đó một cạnh (B,A), trong đó trong S1, element A là parent của B Có trường hợp trong S1, có một vài instance của A mà chúng không có các instance của B là children Kết quả là, khi di chuyển dữ liệu từ S1 đến S2, một vài dữ liệu sẽ
bị mất, các instance đó của A không có bất kì một children nào của B Để khắc phục điều này, thao tác Extend được đưa ra với truy vấn có đường biên thấp hơn và truy vấn có đường biên cao hơn Truy vấn đầu tiên lấy lại dữ liệu thực sự từ S1 nhưng có thể mất vài
dữ liệu do vấn đề mô tả dữ liệu Truy vấn thứ hai lấy lại tất cả dữ liệu mà truy vấn thứ nhất
đã lấy lại, nhưng cũng sinh ra các instance mới của B (có ID duy nhất) để duy trì những instance của A mà truy vấn thứ nhất không làm được Có trường hợp không như mong đợi nên người dùng cần lựa chọn thuật toán có hiệu quả để chỉ sử dụng Any như một truy vấn
có đường biên cao hơn
Một ví dụ áp dụng thuật toán được minh hoạ trong Hình 3 Lộ trình chuyển đổi tương ứng được trình bày trong Bảng 2 và phân thành 3 đoạn Đoạn 1 minh hoạ growing
phase, trong đó các cấu trúc của lược đồ S2 được thêm vào S1 Đoạn 2 minh hoạ shrinking phase, trong đó các cấu trúc của S1 không xuất hiện trong S2 sẽ bị gỡ bỏ Đoạn 3 minh hoạ Renaming phase Hàm generateElemUID tạo ra các instance element từ các instance thuộc tính và có nghĩa khi một thuộc tính được chuyển đổi thành một element và ngược lại (xem
Trang 15a) Một element trong S1 có nhiều elementname nhưng trong S2 có một elementname
b) Một element trong S2 có nhiều elementname nhưng trong S1 có một elementname
c) Một element trong S1 có nhiều elementname và một element trong S2 có nhiều elenmentname
Đối với trường hợp a: Thuật toán cần đưa ra một truy vấn để tạo ra sự mở
rộng của element chỉ có một elementname trong S 2 bằng cách nối các mở rộng của 3
element từ S 1
Trường hợp b: Thuật toán cần có sự chọn lựa các element từ S 1 di chuyển
mở rộng của một element đơn trong S2 sang Đối với trường hợp này, phải áp dụng chiến lược heuristic sẽ thuận lợi: (i) các lộ trình với một vài bước Extend và (ii) với ngắn nhất của các lộ trình
Trường hợp c: ên áp dụng kết hợp các giải pháp cả trường hợp a và b