Professional Documents
Culture Documents
HÀ NỘI 2006
i
Luận văn Th.s: Tìm hiểu về đối sánh lược đồ và xây dựng ứng dụng VNMatch
Lời cảm ơn
Trong lời đầu tiên của báo cáo luận văn tốt nghiệp “Tìm hiểu về đối sánh
lược đồ và xây dựng ứng dụng VNMatch” này, tôi muốn gửi những lời cảm ơn và
biết ơn chân thành của mình tới tất cả những người đã hỗ trợ, giúp đỡ tôi về
chuyên môn, vật chất và tinh thần trong quá trình thực hiện Đồ án.
Trước hết, tôi xin chân thành cảm ơn TS. Nguyễn Kim Anh, bộ môn Hệ
thống thông tin, Khoa Công nghệ thông tin trường Đại học Bách khoa Hà Nội,
người đã trực tiếp hướng dẫn, nhận xét, giúp đỡ tôi trong suốt quá trình thực hiện
luận văn.
Xin chân thành cảm ơn Khoa Công nghệ thông tin, Trung tâm Đào tạo và
Bồi dưỡng sau đại học Trường Đại học Bách Khoa Hà Nội đã giúp đỡ tôi trong suốt
quá trình học tập và nghiên cứu.
Tôi cũng muốn gửi lời cảm ơn tới TS. Đỗ Hồng Hải1, tác giả của hệ thống
COMA++; anh Lê Hồng Phương2 tác giả của vnTokenizer, vnLTag; Enrico May,
sinh viên nghiên cứu về dự án Cupid. Tôi cũng xin bày tỏ lòng biết ơn đến gia
đình và những người bạn thân đã giúp đỡ, động viên tôi rất nhiều trong suốt quá
trình học tập và làm luân văn tốt nghiệp.
Do thời gian thực hiện có hạn, kiến thức chuyên môn còn nhiều hạn chế
nên đồ án tôi thực hiện chắc chắn không tránh khỏi những thiếu sót nhất định.
Tôi rất mong nhận được ý kiến đóng góp của thầy, cô giáo và các bạn.
Xin chân thành cảm ơn !
1
http://dbs.uni-leipzig.de/personen/hong_hai_do
2
Lê Hồng Phương, công tác tại trường Đại Học Quốc Gia Hà Nội, hiện đang làm nghiên
cứu sinh tại Pháp
Hypernym Bao hàm khái niệm thuật “Thực vật” bao hàm
ngữ khái niệm “Cây”
Luận văn cao học với đề tài “Tìm hiểu về đối sánh lược đồ và xây dựng ứng
dụng VNMatch” nghiên cứu và tìm hiểu về bài toán đối sánh lược đồ (schema
matching). Bài toán đối sánh lược đồ được áp dụng trong các ứng dụng tích hợp
dữ liệu (data integration), chuyển đổi dữ liệu (data translation), nhà kho dữ liệu
(data warehousing), các ứng dụng web ngữ nghĩa (Web Semantic).
Bài toán đối sánh lược đồ có thể được định nghĩa như sau: “Cho hai lược đồ
S1 và S2 hãy tìm sự tương đồng giữa các phần tử của S1và S2 bằng cách khai thác
tất cả các thông tin tồn tại trong hai lược đồ đó, trong dữ liệu và các nguồn thông
tin hỗ trợ khác”.
Luận văn tập trung nghiên cứu các phương pháp đối sánh lược đồ dựa trên
các dự án đã được phát triển của các viện nghiên cứu, trường đại học và công ty
trên thế giới, tìm hiểu và đề xuất một số phương pháp xử lý cho lược đồ được
thiết kế dùng tiếng Việt. Đồng thời thiết kế và thi công một hệ thống đối sánh
lược đồ, được gọi là VNMatch. VNMatch xử lý đầu vào là hai lược đồ được thiết kế
dùng ngôn ngữ XML Schema, kết quả đầu ra là tập các ánh xạ có sự tương đồng
về mặt ngữ nghĩa giữa các phần tử của hai lược đồ đó.
Chương 1 Mở đầu
Mục tiêu chính của luận văn tốt nghiệp này là nghiên cứu về bài toán đối
sánh lược đồ (schema matching). Đối sánh lược đồ là quá trình xác định ngữ
nghĩa tương ứng giữa các cấu trúc siêu dữ liệu (metadata) như lược đồ của cơ sở
dữ liệu, XSD, Ontology. Đối sánh lược đồ đóng vai trò quan trọng trong các việc
tương tác giữa các dịch vụ với nhau và trong ứng dụng tích hợp dữ liệu, Data
warehouse, E-Business.
id name
15 Bộ tài chính
32 Bộ thương mại
Hình 1-1 minh họa cho việc tích hợp dữ liệu sử dụng kịch bản đơn giản
trong đó ta muốn tích hợp nguồn dữ liệu S vào nguồn dữ liệu T. Cả S và T đều
chứa thông tin về cơ sở dữ liệu văn bản pháp quy nhưng trong S người ta dùng
hai bảng để biểu diễn, còn trong T người ta sử dụng 1 bảng để biểu diễn, công
việc của chúng ta là xây dựng quá trình tự động ánh xạ các phần tử tương đương
giữa các phần tử của S với các phần tử của T: S-›category ‹-› T-›Topic
Quá trình tự động này người ta gọi chung là đối sánh lược đồ (schema
matching). Nó là chìa khóa trong các ứng dụng tích hợp dữ liệu và chuyển đổi dữ
liệu.
Lược đồ cung cấp nhiều thông tin mà chúng ta có thể khai thác chúng để
thu nhận được ngữ nghĩa của các phần tử chứa trong lược đồ đó. Ví dụ như các
thuộc tính name, description, constraints…Tuy nhiên các thông tin này có thể
khác nhau giữa các lược đồ, chúng phụ thuộc vào ngôn ngữ biểu diễn, cấu trúc
biểu diễn, ... Vì các lược đồ thường được thiết kế bởi những người khác nhau với
những nhận thức khác nhau về thế giới thực cho các mục đích khác nhau. Dưới
đây chúng ta tìm hiểu và phân loại những khó khăn, thách thức gặp phải khi
nghiên cứu về giải pháp cho bài toán đối sánh lược đồ.
Cho 2 cơ sở dữ liệu với hai lược đồ tương ứng S , T. Chúng ta phải xử lý để
tự động để xác định được sự tương ứng giữa phần tử category trong S với topic
trong T, và name trong S với org_name trong T, nghĩa là s trong S và t trong T
cùng mô tả chung một khái niệm trong một lĩnh vực nào đó thì chúng được coi là
tương đương. Điều này là một thách thức cho chúng ta vì một số yếu tố sau:
Lược đồ
• Ngữ nghĩa của các phần tử chỉ được suy diễn từ một số ít các thông tin như
người tạo, chú thích, các lược đồ và dữ liệu liên quan. Trích lọc ngữ nghĩa
từ các thông tin như vây thực sự là bài toán khó vì những thông tin
metadata đó thường không được đầy đủ và chính xác, chú thích không đủ,
không phù hợp, trong nhiều trường hợp xây dựng các hệ thống tích hợp dữ
liệu qua Web những thông tin metadata đó còn không thể truy cập được.
• Do các phần tử của lược đồ thường được đối sánh dựa trên các thông tin hỗ
trợ trong lược đồ và dữ liệu. Ví dụ như name, type, value, cấu trúc và các
ràng buộc, nhưng các thông tin này không thực sự có thể tin cậy được. Ví
dụ các một từ có thể mô tả hai khái niệm khác nhau trong thế giới thực
hoặc ngược lại, một khái niệm được phân rã mức chi tiết với cấu trúc khác
nhau
• Các ràng buộc toàn vẹn thực tế thường được xử lý trong các chương trình
truy cập dữ liệu chứ nó không được thể hiện trong lược đồ.
• Để xác định được phần tử s trong S được match với t trong T thì một là
phải kiểm tra trong tất cả các phần tử trong T để không có phần tử nào
khác trong T tốt hơn s. Điều này ảnh hưởng lớn đến hiệu năng của qúa
trình tích hợp
Dữ liệu
Đối với dữ liệu chúng ta còn gặp các trở ngại sau
• Các giá trị khác nhau được sử dụng cho cùng một thông tin, ví dụ như F và
Female để biểu diễn thông tin giới tính chẳng hạn
• Các giá trị được lưu giữ không nhất quán về định dạng, ví dụ như sử dụng
Kb và Mb để lưu giữ kích thước dữ liệu chẳng hạn
• Dữ liệu không nhất quán về thời gian
• Dữ liệu có thể chứa lỗi, sai chính tả, thiếu giá trị, dư thừa ..
Dưới đây là một số hình ảnh thể hiện sự xung đột giữa các lược đồ
SQL XSD
trong có thể chứa một biểu thức đối sánh để chỉ ra mối liên hệ giữa các phần tử
của S1, S2. Chúng ta hãy xem xét một số khía cạnh của các biểu thức này
• Ngữ nghĩa: Các biểu thức ánh xạ có thể là các biểu thức vô hướng, các
quan hệ về mặt thuật ngữ, các quan hệ hướng đối tượng, các hàm biểu
diễn mối liên quan giũa các phần tử.
• Trực tiếp hay gián tiếp: Các phần tử được ánh xạ trực tiếp giữa chúng hoặc
gián tiếp thông qua các biểu thức
Matching Implementation
Schemas, Mappings,
Auxiliary sources
Hình 1-4: Kiến trúc chung của bài toán đối sánh lược đồ
Kiến trúc này tương thích với nhiều lĩnh vực ứng dụng khác nhauh cho
nhiều loại lược đồ khác nhau. Đầu vào của hệ thống là các lược đồ và các thông
tin hộ trợ việc đối sánh như: Từ điển, Ontology, Các hệ số tương tự giữa các kiểu
dữ liệu … Phần xử lý bao gồm các thao tác chuyển đổi biểu diễn của lược đồ
thành cấu trúc biểu diễn lược đồ bên trong của hệ thống, có thể là dạng đồ thị.
Tiếp theo là các thuật toán đối sánh đối với các lược đồ đã được biểu diễn dưới
cấu trúc bên trong của hệ thống. Cuối cùng là kết quả đối sánh và các thao tác
xử lý kết quả đó như chuyển đổi định dạng biểu diễn, kết xuất cho các ứng dụng.
Các ứng dụng của hệ thống sau khi đã có kết quả đối sánh bao gồm nhiều
lĩnh vực ứng dụng khác nhau như Tích hợp dữ liệu. chuyển đổi dữ liệu, Semantic
Web …
4.1 Các ứng dụng tích hợp dữ liệu và nhà kho dữ liệu
Tích hợp lược đồ là một trong những mục tiêu quan trọng nhất của bài toán
đối sánh lược đồ. Vấn đề này đã được nghiên cứu từ đầu những năm 80, nó xuất
hiện khi người ta cần xây dựng một hệ thống cơ sở dữ liệu bao gồm một vài hệ
thống cơ sở dữ liệu khác nhau và thiết kế lược đồ của cơ sở dữ liệu đó (global
schema) từ các lược đồ địa phương (local schema). Trong ngữ cảnh của ứng dụng
trí tuệ nhân tạo hoặc Web ngữ nghĩa, tích hợp lược đồ tương đương với bài toán
trộn các ontology được phát triển độc lập để xây dựng một cơ sở tri thức tích hợp.
Source schema
Documents DB3
Hình 1-5: Minh họa hệ thống tích hợp dữ liệu giúp người dùng tìm văn bản
Hình 2-3 minh họa cho hệ thống tích hợp dữ liệu văn bản để trợ giúp người
dùng tìm được văn bản cần thiết. Với truy vấn người dùng tới lược đồ trung gian
(Mediated schema), hệ thống sẽ sử dụng tập các ánh xạ ngữ nghĩa giữa lược đồ
trung gian và các lược đồ địa phương của nguồn dữ liệu để chuyển đổi thành truy
vấn trên các nguồn dữ liệu. Sau khi thực hiện truy vấn trên các nguồn dữ liệu sẽ
tổng hợp kết quả và trả lại cho nguời dùng.
Các ứng dụng chia sẻ dữ liệu trình bày ở trên đang xuất hiện rất nhiều
trong các lĩnh vưc hiện nay như thương mại điện tử, sinh học, và trong Ubicomp.
Internet đã mang lại hàng triệu nguồn dữ liệu và cần phải tạo khả năng chia sẻ
dữ liệu giữa chúng.
Data warehouse
4.2 E-Business
Với sự phổ biến của Internet hiện nay, các công ty kinh doanh ngày càng
phải quản lý các giao dịch online của họ như trao đổi thông tin, đặt hàng, xác
nhận và thanh toán. Các giao dịch này là quá trình trao đổi các tài liệu hay thông
điệp (message) giữa các công ty. Thường thì mỗi một công ty phát triển một ứng
dụng với một định dạng message khác nhau như EDI (Electronic Data Exchange),
XML hoặc bất kỳ định dạng nào. Để hệ thống trao đổi được các message đó, các
ứng dụng cần phải chuyển đổi được các message từ định dạng này sang định
dạng khác. Điều này chính là động lực cho bài toán đối sánh lược đồ phát triển để
chuyển đổi các message.
5 Các vấn đề mở
Mặc dù còn có nhiều các nghiên cứu hiệu quả trong bài toán đối sánh lược
đồ nhưng phần lớn các thao tác đối sánh vẫn được thực hiện thủ công bởi các
chuyên gia trong lĩnh vực làm việc của họ. Điều này xảy ra bởi vì các giải pháp tự
động hoặc bán tự động vẫn chưa thỏa mãn yêu cầu người dùng. Trong phần này
tôi trình bày một số vấn đề còn đang được nghiên cứu trong lĩnh vực đối sánh
lược đồ. Tuy nhiên tôi chỉ tổng hợp được một số các vấn đề qua các bài báo cũng
như các dự án nghiên cứu về lĩnh vực này. Những thông tìn tổng hợp này có thể
đủ hoặc không đủ về tất cả những nghiên cứu trước đây và hiện tại.
không gian tìm kiếm lớn để xác định các phần tử tương đương, vì vậy cần phải
tìm ra các phương pháp hiệu quả tốt nhất có thể.
1.2 SEMINT
SEMINT là hệ thống đối sánh lược đồ dựa trên dữ liệu (instance-based). Nó
bao gồm 15 tiêu chuẩn dựa trên ràng buộc và 5 tiêu chuẩn dựa trên nội dung
(content-based) được hình thành từ các bản ghi dữ liệu và được chuẩn hóa trong
khoảng [0,1], mỗi thuộc tính là một điểm trong một không gian 20 chiều. Đối
sánh lược đồ bằng cách tạo các ánh xạ giữa các phần tử độc lập sử dụng mạng
neuron. SemInt không hỗ trợ đối sánh dựa trên ngôn ngữ.
1.3 LSD
LSD (Learning source description) sử dụng phương pháp composite để kết
hợp các thuật toán đối sánh khác nhau. Nó dựa trên domain cụ thể của lược đồ
tổng thể để so sánh với các lược đồ mới được đối sánh. Học máy (machine
learning) được sử dụng cho các các thuật toán độc lập và kết hợp các kết quả.
Đối với đối sánh cho thuộc tính name, LSD sử dụng phương pháp đối sánh dựa
trên instance.
1.4 SKAT
SKAT (Semantic knowledge articulation tool) thực hiện đối sánh dựa trên
lược đồ (schema-based) sử dụng các luật. Các luật là các biểu thức trong logic vị
từ để thể hiện các quan hệ tương đương, không tương đương và các hàm được
định nghĩa để sinh ra các luật đối sánh mới.
1.5 TransScm
TransScm sử dụng phương pháp schema-based để thực hiện việc chuyển
đổi dữ liệu. Lược đồ đầu vào (DTD hoặc OODB) được biểu diễn dưới dạng đồ thị.
Các luật được xây dựng bởi người quản trị được áp dụng vào các node của đồ thị.
Quá trình đối sánh được thực hiện theo mô hình top-down và đối sánh từng node
một với nhau với quy luật là các node cha sẽ cần kết quả đối sánh của các node
con.
• Tự động chuyển đổi dữ liệu giữa các lược đồ instance
• Các lược đồ đầu vào được biểu diễn như các đồ thị gán nhãn
1.6 DIKE
Hệ thống DIKE tích hợp nhiều lược đồ quan hệ bằng cách khai thác yếu tố
tương tự giữa hai phần tử của lược đồ phụ thuộc vào sự tương tự của các phần tử
hàng xóm. Đây là hệ thống đối sánh dựa trên cấu trúc (Structure-based), đối
sánh từng cặp của các phần tử đầu vào. Số cạnh của của đường dẫn ngắn nhất
giữa các phần tử được sử dụng như khoảng cách để xác định các phần tử liên
quan.
• Thuật toán tự động xác định quan hệ ngữ nghĩa
(synonymy,hypernymy,homonymy) giữa các phần tử của các lược đồ
ER.
1.8 Cupid
Cupid [3] là hệ thống đối sánh kết hợp (hybrid) bao gồm kỹ thuật đối sánh
trên mức ngôn ngữ và cấu trúc. Thuật toán đối sánh lược đồ ánh xạ giữa các
phần tử của lược đồ dựa trên tên, kiểu dữ liệu, các ràng buộc, cấu trúc của lược
đồ và sự trợ giúp của từ điển đồng nghĩa. Cupid nhắm vào việc tính toán hệ số
tương tự giữa các các phần tử của 2 lược đồ và đưa ra sự ánh xạ từ các hệ số
này.
Chú thích:
Các thuộc tính được phân tích thành các từ (word) hay token, ta có một
tập các token để biểu diễn các phần tử của lược đồ
Đây là công thức cho ra kết quả cuối cùng của đối sánh dựa trên ngôn ngữ.
Chúng ta phân biệt các phương pháp đối sánh dựa trên phương pháp tiếp
cận mà chúng sử dụng
• Schema-based ›‹ Instance-based: Schema-based chỉ sử dụng các
thông tin chứa trong lược đồ như metadata, name, type, description... Còn
Instance-based sử dụng dữ liệu để trích lọc ngữ nghĩa (contents)
• Element-based ›‹ Structural-based: Element-based là quá trình đối
sánh có thể thực hiện trên từng phần tử trong lược đồ một cách độc lập, ví
dụ như các thuộc tính (attributes). Structural-based thực hiện đối sánh có
sự kết hợp các phần tử lại với nhau.
• Linguistic ›‹ Constraint: Đối sánh có thể sử dụng cách tiếp cận ngôn ngữ
như so sánh các thuộc tính name, description .. hoặc sử dụng cách tiếp cận
ràng buộc như xem xét cả ràng buộc định nghĩa trên các phần tử như kiểu
dữ liệu, unique, key…
• Hybrid ›‹ Composite: Để có một kết quả đối sánh tốt hơn người ta
thường kết hợp một vài cách tiếp cận với nhau. Các cách tiếp cận này có
thể được thực hiện trong một bộ đối sánh hybrid hoặc kết hợp các kết quả
đối sánh của các cách tiếp cận độc lập (composite)
2.2.1 Phương pháp tiếp cận dựa trên ngôn ngữ (linguistic)
Phương pháp này chủ yếu xem xét các thuộc tính dạng chuỗi ký tự của các
phần tử lược đồ như name, description.Thuộc tính name có thể được so sánh qua
2 dạng là cú pháp (syntactic) và ngữ nghĩa (semantic).
Đối sánh thuật ngữ name dựa trên cú pháp là tính toán độ tương đồng chỉ
dựa trên các chuỗi biểu diễn name. Có nhiều thuật toán đã được phát triển ứng
dụng cho các lĩnh vực khác như sửa lỗi chính tả (spelling correction), thu thập
thông tin … Trong đó đặc biệt 3 thuật toán sau: EditDistance, N-Gram, SoundEx
đã được áp dụng vào bài toán đối sánh lược đồ.
• EditDistance (Levenstein):Sử dụng kỹ thuật quy hoạch động, độ tương
đồng của 2 chuỗi được tính từ số lần thực hiện các thao tác: xóa, thêm,
thay thế của một ký tự cần thiết để chuyển một chuỗi này thành chuỗi kia.
• N-Gram: Chuỗi được so sánh theo tập n-gram của nó. Ví dụ chuỗi doc và
document là tương tự theo tập tri-gram, {doc} và
{doc,ocu,cum,ume,men,ent} chia sẻ phần tử doc.
• SoundEx: Phương pháp này tính độ tương đồng âm giữa các name tương
ứng với mã SoundEx. Phương pháp này hiệu quả cho các từ được viết khác
nhau có khả năng giống nhau,ví dụ document, documentation.
Đối sánh dựa trên ngữ nghĩa sử dụng các quan hệ về mặt thuật ngữ để ước
lượng độ tương đồng giữa các name như synonymy, hypernymy, hyponymy. ví dụ
từ Car và automobile là đồng nghĩa nên tương tự nhau. Cách tiếp cận này cần trợ
giúp của các thông tin hỗ trợ như từ điển, thesaurus, ontology hoặc các bảng định
nghĩa từ đồng nghĩa cho các ngôn ngữ khác nhau.
Ngoài ra trên thực tế các lược đồ còn có nhiều sự hỗn tạp mà chúng thường gặp
như:
• Từ được ghép bởi nhiều từ khác: Ví dụ Org_Sender.
• Từ được viết gọn lại: Ví dụ Org có nghĩa là Organization.
• Từ có nhiều nghĩa.
Có một số phương pháp để xây dựng bảng hệ số như trên nhưng phương
pháp thường được các chuyên gia sử dụng là dựa vào thực nghiệm. Quá trình xây
dựng các hệ số được thực hiện theo các bước sau:
1. Thực hiện đối sánh bằng tri thức chuyên gia, được kết quả là một tập hợp
các ánh xạ giữa các phần tử của hai lược đồ Sexp kết quả thực tế mà bài
toán cần hướng tới).
2. Thực hiện đối sánh tự động với hai lược đồ và cũng thu được tập hợp các
ánh xạ giữa các phần tử của hai lược đồ Sauto.
3. Sẽ có sự khác nhau giữa tập hợp ánh xạ do chuyên gia và tập ánh xạ do
máy thực hiện. Các hệ số Wdefault sẽ được điều chỉnh sao cho tập Sauto giống
với tập Sexp nhất có thể.
nhưng không được thuật toán tìm thấy và D là tập ánh xạ sai được thuật
toán loại bỏ
Ta có hai công thức sau để ước lượng hiệu quả của thuật toán đối sánh
• Cho biết sự tin cậy của thuật toán đối sánh
B
Precision= ,
B+C
• Cho biết phần trăm của các ánh xạ hợp lệ (có giá trị)
B
Recall=
B+ A
Khi tập A và tập C không tồn tại thì Precision và Recall có giá trị 1. Tuy
nhiên một giá trị Recall hoặc Precision thì không thể ấn định được chất lượng của
thuật toán đối sánh.
Như vậy cần phải xem xét các phương pháp kết hợp hai giá trị trên đối lại
với nhau. Có một số phương pháp kết hợp đã được xây dựng sau
1. FMeasure( α ) được mô tả trong [9]:
B precision * recall
FMeasure( α )= =
(1 − α ) * A + B + α * C (1 − α ) * precision + α * recall
Trong đó 0< α <1 cho phép các giá trị thể hiện sự quan trọng khác nhau
đối với Precision và Recall. FMeasure( α ) hội tụ về Precision khi α =1 và hội tụ về
Recall khi α =0
2. FMeasure : Khi Precision và Recall được xem có độ quan trọng bằng nhau
ta có công thức sau
2* B precision * recall
FMeasure= = 2*
A+B+B+C precision + recall
3. Overall: Đây là công thức được nêu trong [10] và công thức này được
nhắm vào chính các ứng dụng đối sánh lược đồ
A+C B−C 1
Overall= 1 − = = recall * (2 − )
A+B A+B precision
Để so sánh hai phương pháp FMeasure và Overall ta có hình sau. Nhìn vào
đồ thị ta thấy FMeasure tối ưu hơn so với Overall. Với cùng giá trị của Precision
và Recall thì FMeasure cao hơn so với Overall. Overall nhạy cảm với biến
Precision hơn. Khi Precision=0,5 thì Overall=0;
Query Result
Global schema
Mediator
Hiện tại nhu cầu về bài toán tích hợp dữ liệu (Data integration) hoặc
chuyển đổi dữ liệu (Data translation) một cách tự động hoặc bán tự động là thực
sự cần thiết. Trên thực tế các công ty hay tổ chức hiện nay khi xây dựng các ứng
dụng có sử dụng dữ liệu đã có sẵn thì thường phải xây dựng một công cụ với các
thao tác thủ công (manual) để tiến hành chuyển đổi hoặc tích hợp dữ liệu cũ vào
ứng dụng mới. Những thao tác thủ công sẽ không lợi ích về mặt kinh tế cũng như
quá trình xử lý sẽ xuật hiện các lỗi thao tác bằng tay. Như vậy người ta cần phải
xây dựng các mô hình tự động hoặc bán tự động cho bài toán này để giảm thiểu
tối đa các thao tác thủ công.
2 Giới thiệu
Trong hình dưới đây là hai lược đồ về cơ sở dữ liệu văn bản. chúng ta có
thể nhận ngay ra các xung đột trong hai lược đồ này. Vấn đề đặt ra bây giờ là xử
lý các xung đột đó một cách tự động nhiều nhất các thao tác có thể.
nhiều khó khăn do có quá nhiều các xung đột về ngữ nghĩa, từ vựng, sự hạn chế
của các giải thuật xử lý ngôn ngữ cho tiếng Việt …
Dựa trên những thuật toán xử lý cho các thứ tiếng khác ta cũng hoàn toàn có thể
xây dựng được thuật toán xử lý cho tiếng Việt, nếu ta có được các bộ từ điển như
tiếng Anh.
Tôi đề xuất một vài phương pháp tiếp cận cho tiếng Việt trong bài toán đối sánh
lược đồ có thể sử dụng trong đối sánh ngôn ngữ
1. Nếu ta xây dựng được một từ điển phân loại (taxonomy) giống như
Wordnet3 cho tiếng Việt, chúng ta hoàn toàn có thể thực hiện các thuật
toán đối sánh như trong tiếng Anh. Có thể xem một trong những thuật
toán này tại đây4
2. Ngoài ra ta cũng có thể xây dựng một thuật toán kết nối đến từ điển Việt
– Anh để xử lý. Quá trình sẽ được thực hiện như sau: Kết nối đến từ điển
và tìm các từ tiếng Anh tương ứng và sau đó sử dụng các thuật toán cho
tiếng Anh.
Sử dụng các phương pháp trên tất nhiên chúng ta phải có một bộ phân tích
5
cú pháp cho tiếng Việt, nghiên cứu sinh Lê Hồng Phương đang phát triển dự án
vnLTAG6 cho tiếng Việt mục đích để xây dựng một văn phạm LTAG cho tiếng Việt.
Trước đó tác giả này đã xây dựng công cụ vnTokenizer để xử lý ngôn ngữ tiếng
Viêt có chức năng tact từ tiếng Việt tự động và phân loại chúng.
3
http://wordnet.princeton.edu
4
http://www.codeproject.com/cs/library/semanticsimilaritywordnet.asp
5
Doctorant, Equipe Langue et Dialogue, LORIA,INRIA Lorraine, 615 rue du Jardin
Botanique, lehong@loria.fr
6
http://wiki.loria.fr/wiki/VnLTAG
3 Thiết kế
Trong phần này tôi trình bày về kiến trúc của hệ thống đối sánh lược đồ và
các bước thực hiện. Ý tưởng của hệ thống này là sử dụng đối sánh kết hợp
(compostion), sử dụng tổng hợp
3.2 Input
Đầu vào của hệ thống bao gồm các lược đồ cần đối sánh và các nguồn
thông tin hỗ trợ việc đối sánh.
3.2.1 Lược đồ
XSD là một trong những ngôn ngữ biểu diến lược đồ mạnh nhất và được
ứng dụng rộng rãi trong nhiều lĩnh vực. Vì vậy XSD được lấy làm ví dụ để minh
hoạ cho đầu vào của hệ thống đối sánh. Các tài liệu XML schema (XSD) được
phân tích và xử lý để chuyển đổi sang dạng đồ thị có hướng. Các ngôn ngữ biểu
diễn lược đồ khác như XML DTD hay SQL (ví dụ SQL-92) cũng có thể áp dụng
phương pháp mô hình hoá với XSD.
XSD có nhiều cách thiết kế mà chúng ta cần xem xét để phân tích các vấn
đề xung đột.
1. XSD Schema có thể được thiết kế theo kiểu phân tán hoặc nguyên khối,
thường thì các lược đồ được thiết kế theo cách truyền thống là tất cả các
thành phần được gộp vào chung một tài liệu. Tuy nhiên đối với các lược đồ
có kích thước lớn, đặc biệt là trong các ứng dụng Web Lược đồ được tách
thành nhiều tài liệu và các namespace khác nhau. Ví dụ các tài liệu XSD có
thể sử dụng các cú pháp include, redefine, import để tích hợp các tài liệu
với nhau.
2. Kiểu thiết kế Composition và Deviration: Một vài ngôn ngữ như XSD và
ngôn ngữ SQL mở rộng cho hướng đối tượng hỗ trợ việc định nghĩa kiểu rất
linh hoạt (user-defined types) cho các phần tử và thuộc tính. Các kiểu mới
có thể xây dựng dựa theo phương pháp composition hoặc derivation. Theo
phương pháp composition thì kiểu mới có thể xây dựng dựa trên các phần
tử và thuộc tính đã tồn tại. Theo phương pháp derivation thì các kiểu mới
được xây dựng bằng cách thừa kế các một kiểu cơ sở và các thuộc tính của
nó.
3. Phương pháp khai báo inline và khai báo chia sẻ: Khai báo inline là các
phần tử được khai báo kiểu ngay trong phạm vi khai báo của phần tử đó,
còn khai báo theo kiểu chia sẻ là định nghĩa ra các kiểu chung rồi các phần
tử có chung một kiểu sử dụng các kiểu chung đó.
Phân tích lược đồ đầu vào là một trong những bước quan trọng của bài
toán đối sánh.Các bước chuyển đổi từ lược đồ đầu vào thành đồ thị có hướng bao
gồm các bước sau:
1. Hợp nhất các thiết kế: Để dễ dàng điều khiển, các lược đồ được phân tích
và hợp nhất thành một lược đồ.
2. Hợp nhất các các kiểu thiết kế: Composition là phương pháp chung để xây
dựng kiểu, kiểu thừa kế (derivation) được chuyển thành kiểu composition
3. Chuẩn hoá lược đồ bằng cách loại bỏ các nút biểu diễn kiểu (type).
4. Gộp các khai báo bằng cách chia sẻ các thành phần
Kết quả thu được là đồ thị liên thông có hướng biểu diễn lược đồ, với cách
biểu diễn này các lược đồ đầu vào được biểu diễn dưới dạng đơn giản nhất có thể.
3.2.2 WordNet
WordNet7 là cơ sở dữ liệu về từ vựng tiếng Anh. WordNet được thiết kế để
thực hiện kết nối cho các loại từ POS (Parts-of-Speech) gồm Danh từ, Động từ,
Tính từ và Trạng từ. Một khối nhỏ nhất trong WordNet được gọi là một synset để
biểu diễn ý nghĩa cho một từ cụ thể. Nó bao gồm một từ và giải nghĩa của từ đó
cộng với các từ đồng nghĩa. Ý nghĩa cụ thể của một từ theo POS được gọi là 1
sense. Mỗi sense của một từ nằm trong các synset khác nhau. Mỗi synset có chú
thích để định nghĩa khái niệm mà nó biểu diễn. Ví dụ từ night, nighttime, dark
cấu tạo một synset có chú thích như sau: “the time after sunset and before
sunrise while it is dark outside”. Synset kết nối đến các synset khác qua các quan
hệ ngữ nghĩa rõ. Một vài quan hệ như (hypernym, hynonym cho danh từ,
hypernym và troponym cho động từ) và cấu tạo thành cây is-a-kind-of
(holonymy) và is-a-part-of (meronymy cho danh từ).
Ví dụ tree is-a-kind-of plant, tree là hyponym của plant và plant là
hypernym của tree, tương tụ trunk is-a-part-of tree và tree là meronymy của
trunk.
7
http://wordnet.princeton.edu
Trong [8]8 có đề cập vấn đề sử dụng WordNet để xây dựng thuật toán tính
toán độ tương tự của hai câu. Hiện tại trong phiên bản này, do hạn chế về thời
gian nên WordNet chưa được tích hợp vào trong hệ thống để tính toán độ tương
tự. Thay vào đó là một bảng các cặp từ đồng nghĩa với độ chính xác 1.0. WordNet
sẽ được tích hợp vào hệ thống trong thời gian sắp tới.
3.2.3 Output
Đầu ra của bài toán đối sánh là tập các ánh xạ chỉ ra sự tương đương giữa
các phần tử của hai lược đồ. Ký hiệu ↔ để chỉ ra một ánh xạ giữa hai lược đồ, ví
dụ S1 ↔ S2 để chỉ ra một ánh xạ của hai lược đồ, hoặc s1 ↔ s2 để chỉ ra một ánh
xạ của hai phần tử.
Với một tập các ánh xạ như vậy, chúng ta cần các thao tác để hỗ trợ việc
sử dụng chúng trong các ứng dụng khác nhau.
Bảng 2:
Chú thích:
• Transpose: Hoán đổi vị trí của phần tử nguồn và phần tử đích trong tất các
các ánh xạ đầu ra. Thao tác này không thể áp dụng cho các ánh xạ chưa
biểu thức, nó chỉ được dành riêng cho các giá trị tương tự.
8
http://www.codeproject.com/cs/library/semanticsimilaritywordnet.asp
• Domain và InvertDomain: Domain trả về tập các phần tử nguồn trong các
cặp ánh xạ. Ngược lại InvertDomain trả về tập các phần tử nguồn không
nằm trong tập các cạnh ánh xạ.
• RestrictDomain có tham số đầu vào là tập ánh xạ và tập các phần tử, kết
quả trả về tập các ánh xạ với các phần tử nguồn nằm trong tập các phần
tử đã cho
• MappingMerge: Tham số đầu vào là hai tập các ánh xạ và đầu ra là tập các
ánh xạ nằm trong cả hai tập ánh xạ đầu vào.
• Intersect: Tương tự MappingMerge.
• Diff: Tham số đầu vào là 2 tập ánh xạ và đầu ra là tập các ánh xạ chỉ nằm
mộ trong hai tập hợp đầu vào.
Ví dụ:
s T sim(s,t)
Document Doc 0.37
Documents Document 0.89
Document Document 1
… … …
2. N-Gram:Chuỗi được so sánh theo tập n-gram của nó. Ví dụ chuỗi doc và
document là tương tự theo tập tri-gram, {doc} và
{doc,ocu,cum,ume,men,ent} chia sẻ phần tử doc.
Ví dụ:
s t sim(s,t)
… …
3. Synonym: Tổ chức một từ điển các từ đồng nghĩa hoặc có thể kết nối đến
WordNet để tra cứu các từ đồng nghĩa
Synonym
Customer Client
Customer Buyer
Tree Plant
provider supplier
… …
s1
Matcher
s1
s2 s2
Sim_cube(m,s1,s2) Sim_array(s1,s2)
1. Max: Lấy hệ số tương tự lớn nhất của một thuật toán, sử dụng phương
pháp này sẽ cho kết quả tối ưu đặc biệt trong trường hợp giá trị tương tự
được chỉ định hoặc lấy trong các bảng hệ số.
Công thức 5: Lấy Max
2. Trọng số: Các thuật toán đối sánh được gán các trọng số ưu tiên khác nhau
wi, dựa trên các trọng số này sẽ tính được hệ số tương tự s1 và s2.
Công thức 6: Lấy theo trọng số
WSim(s1 , s 2 ) = ∑w
m∈M
m sim(m, s1 , s 2 ) ∑w
i =1
3. Trung bình: Trả về hệ số tương tự trung bình của các thuật toán đối với
(s1,s2)
Công thức 7: Lấy theo trung bình
1
ASim =
M m∈M
∑ sim(m, s , s1 2 )
2. MaxN: Chọn lựa theo số lượng phần tử có giá trị tương tự lớn nhất: Ví dụ
có 1 phần tử của S1 với hệ số có giá trị lớn nhất là 0,9, chọn giá trị này làm
giá trj ứng cử. Với n > 1 thì chúng ta có vài giá trị để tính toán
3. MaxDelta: Phần tử s1 vơi giá trị tương tự lớn nhất được chọn làm giá trị ứng
cử cộng với các phần tử
2. Dice: Phương pháp này dựa trên hệ số Dice[] và trả về tỷ lệ của số phần tử
có thể được đối sánh trên tổng số phần tử của S1, S2.
Công thức 9: DiceSim
Đối với phương pháp Dice, ta nhận thấy các giá trị tương tự độc lập không
ảnh hưởng đến giá trị tương tự của toàn bộ tập hợp. Do vậy Dice sẽ tối ưu hơn và
cho giá trị tương tự lớn hơn so với phương pháp Average. Trong trường hợp tất cả
các giá trị ứng cử đều bằng 1.0 thì cả hai sẽ cho cùng một kết quả.
đối sánh cơ bản ta có ma trận 3 chiều các giá trị tương tự nhau. Áp dụng thuật
toán Max ta thu được mảng hai chiều các giá trị tương tự
CubeSim
Hình 3-13: SimCube theo phương pháp đối sánh kết hợp
SimMatrix
Document Dokument EditDistance 0.875
Document user EditDistance 0.25
Document sign EditDistance 0.125
signer Dokument EditDistance 0.125
signer user EditDistance 0.333333333
signer sign EditDistance 0.666666667
Document_signer->Dokument_user_sign
Dokument_user_sign->Document_signer
Hình 3-15: Kết quả sau khi thực hiện Direction và Selection
1. Trường hợp các node lá: Hệ số tương tự được tính dựa trên các yếu tố sau:
hệ số tương tự mức ngôn ngữ, hệ số tương tự kiểu dữ liệu (data type), hệ
số tương tự của node cha và các anh chị em của nó. Ví dụ trong hình dưới
đây ta ta tính độ tương tự của hai node s3 và t4 dựa trên giá trị tương tự
của mức ngôn ngữ, kiểu dữ liệu (data type), các node anh em (s4,t5), các
node cha (s2,t2)
t1
s1
t2 t3
s2 s5
t5
s4 t4
s3
Sim(s3,t4)= Sim_context(lang,type,vicinity)
t2 t3
s2 s5
t5
s4 t4
s3
Sim(s1,t1)= Sim_context(lang,type,subtree)
Thuật toán đối sánh lược đồ dựa trên cấu trúc được mô tả dưới đây
TreeMatch(Source S, Target T)
For s ∈ S, t ∈ T (s,t: leaves)
Set ssim(s,t) = datatype_match(s,t)
S’=post_order(S), T’=post_order(T)
For each s in S’
For each t in T’
ssim(s,t)=struct_sim(s,t)
wsim(s,t)=wstruct.ssim(s,t)+(1-wstruct)lsim(s,t)
if(wsim(s,t)>thhigh)
increase_struct_sim(leaves(s),leaves(t),cinc)
if(wsim(s,t)<thlow)
decrease_struct_sim(leaves(s),leaves(t),cinc)
2. Các phần tử của hai cây được duyệt theo thứ tự sau.
3. Trường hợp các phần tử là lá (leaf): Bước tiếp theo tính giá trị đối sánh cho
hai phần tử s và t, giá trị ssim(s,t) chính là giá trị được tính trong vòng lặp
trước với luật đối sánh trên kiểu dữ liệu của phần tử
(datatype_match(s,t)). Trong đó wstruct là hệ số chỉ ra độ ưu tiên của đối
sánh cấu trúc so với đối sánh mức ngôn ngữ. wstruct thường được chọn bằng
0.5
Công thức 10: Wsim cho các node lá
wsim(s,t)=wstruct.ssim(s,t)+(1-wstruct)lsim(s,t)
Ví dụ: Trong ví dụ tính lsim của phần tử document_signer và
document_user_sign cho giá trị 0.68. Hệ sô sim(s,t) với tiêu chí là kiểu dữ
liệu có giá trị 0.5(giá trị max)
Ta có wsim (s,t)=0.5(0.5)+0.5.0.68=0.59
4. Trường hợp các phần tử không phải là lá (leaf):Khi một trong các phần tử
không phải là lá (leaf), ssim được tính dựa trên số lượng của lá trong cây
con có gốc tại các phần tử đang được so sánh.Một node lá trong một lược
đồ nếu có một liên kết mạnh (strong link) tới một node lá trong một lược
đồ khác nếu trọng số tương tự vượt qua ngưỡng chấp nhận được (thaccept).
Trong công thức dưới đây trả về tập hợp các node lá trong cây con có gốc
là s và có ít nhất một liên kết mạnh với node lá của cây có gốc là t.
Công thức 11: Liên kết mạnh
{
sl ( s, t ) = x x ∈ leaves( s ) ∧ ∃y ∈ leaves(t ), wsim( x, y ) > thaccept }
Công thức tính hệ số tương tự cuối cùng là:
Công thức 12: ssim trong trường hợp là các node trong
sl ( s, t ) Υ sl (t , s )
ssim( s, t ) =
leaves( s ) + leaves(t )
giảm ssim của các node lá đi một giá trị cdec. Ví dụ trong hình 8, Org_Send
được ánh xạ với Sender có hệ số giống nhau cao nên các node con của hai
node đó được tăng thêm độ giống nhau hơn so với cặp name, address
khác, tương tự như vậy nếu hệ số ssim nhỏ hơn ngưỡng thlow ta sẽ giảm hệ
số ssim của các node lá
Document Docs
Organization
Firstname Lastname Org_name Org_address Name
ssim++
ssim--
Trong thuật toán đối sánh dựa trên cấu trúc ở trên ta đã xem xét các yếu tố liên
quan đến ngữ cảnh của từng phần tử trong lược đồ. Hai phần tử là tương tự nếu
các lá của chúng là tương tự. Hệ số tương tự của các node lá được tăng hay giảm
lại phụ thuộc vào node tổ tiên của chúng. Duyệt cây theo thứ tự sau bảo đảm
rằng trước khi hai phần tử s1,s2 được so sánh thì các node lá của chúng đã được
so sánh.
và s trong lược đồ đích nếu ssim lớn hơn một giá trị thaccept (giá trị ngưỡng chấp
nhận được) thì chọn ánh xạ này. Đối với trường hợp không là node lá, ta sẽ duyệt
theo thứ tự sau hai lược đồ một lần nữa để tính toán lại hệ số tương tự của các
node không phải là lá vì quá trình cập nhật hệ số tương tự của các node lá sẽ ảnh
hưởng đến hệ số tương tự của các node không phải là lá.
9
http://www.codeproject.com/cs/miscctrl/quickgraph.asp
Lớp HybridMatcher chứa các hàm thực hiện việc đối sánh mức ngôn ngữ
giữa các phần tử của hai lược đồ.
• Bảng DataType (datatype.xml): Chứa các ánh xạ giữa các kiểu dữ liệu
Thử nghiệm trên 2 lược đồ đầu vào, hai lược đồ này biểu diễn mô hình các
đối tượng trong một phiếu thanh toán đơn hàng.
Schema1
<xsd:sequence>
<xsd:element ref="Header" minOccurs="0" />
<xsd:element ref="Items" minOccurs="0" />
<xsd:element ref="Footer" minOccurs="0" />
<xsd:element ref="InvoiceTo" minOccurs="0" />
<xsd:element ref="DeliverTo" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Header">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="yourAccountCode" type="xsd:string" />
<xsd:element name="ourAccountCode" type="xsd:string" />
<xsd:element name="orderNum" type="xsd:string" />
<xsd:element name="orderDate" type="xsd:date" />
<xsd:element ref="Contact" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Contact">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="telephone" type="xsd:string" />
<xsd:element name="e-mail" type="xsd:string" />
<xsd:element name="contactName" type="xsd:string" />
<xsd:element name="companyName" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="InvoiceTo">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Contact" />
<xsd:element ref="Address" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Address">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="street4" type="xsd:string" />
<xsd:element name="street1" type="xsd:string" />
<xsd:element name="street2" type="xsd:string" />
<xsd:element name="street3" type="xsd:string" />
<xsd:element name="stateProvince" type="xsd:string" />
<xsd:element name="postalCode" type="xsd:string" />
<xsd:element name="country" type="xsd:string" />
<xsd:element name="city" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Footer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="totalValue" type="xsd:long" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DeliverTo">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Contact" />
<xsd:element ref="Address" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Items">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="itemCount" type="xsd:int" />
<xsd:element ref="Item" maxOccurs="1" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Item">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="yourPartNumber" type="xsd:string" />
<xsd:element name="unitPrice" type="xsd:decimal" />
<xsd:element name="unitOfMeasure" type="xsd:string" />
<xsd:element name="salesValue" type="xsd:decimal" />
<xsd:element name="quantity" type="xsd:decimal" />
<xsd:element name="partNumber" type="xsd:string" />
<xsd:element name="partDescription" type="xsd:string" />
<xsd:element name="itemNumber" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Schema2
</xsd:element>
<xsd:element name="Amount">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="VATRate" type="xsd:string" />
<xsd:element name="amountExclVAT" type="xsd:string" />
<xsd:element name="VATAmount" type="xsd:string" />
<xsd:element name="amountInclVAT" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ContactPerson">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="referenceNo" type="xsd:string" />
<xsd:element name="firstName" type="xsd:string" />
<xsd:element name="lastName" type="xsd:string" />
<xsd:element name="title" type="xsd:string" />
<xsd:element name="suffix" type="xsd:string" />
<xsd:element name="position" type="xsd:string" />
<xsd:element name="tel" type="xsd:string" />
<xsd:element name="fax" type="xsd:string" />
<xsd:element name="email" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="InvoiceTo">
<xsd:complexType>
<xsd:sequence>
<xsd:sequence>
<xsd:element ref="Organization" />
<xsd:element ref="Address" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Line">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="lineNo" type="xsd:decimal" />
<xsd:element name="productRef" type="xsd:string" />
<xsd:element name="productName" type="xsd:string" />
<xsd:element name="quantity" type="xsd:float" />
<xsd:element name="unitOfMeasureRef" type="xsd:string" />
<xsd:element name="unitPrice" type="xsd:string" />
<xsd:element ref="Amount" />
<xsd:element name="shipmentDate" type="xsd:date" />
<xsd:element name="priceLevelRef" type="xsd:string" />
<xsd:element name="projectRef" type="xsd:string" />
<xsd:element name="projectTaskRef" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Kết quả
- PurchaseOrder.InvoiceTo.Address.country <->
PurchaseOrder.InvoiceTo.Address.country: 0.9958
- PurchaseOrder.InvoiceTo.Address.postalCode <->
PurchaseOrder.InvoiceTo.Address.postalCode: 0.9958
- PurchaseOrder.InvoiceTo.Address.street1 <->
PurchaseOrder.InvoiceTo.Address.street: 0.9958
- PurchaseOrder.InvoiceTo.Address.city <->
PurchaseOrder.InvoiceTo.Address.city: 0.9958
- PurchaseOrder.InvoiceTo.Address.stateProvince <->
PurchaseOrder.InvoiceTo.Address.state: 0.97213334
- PurchaseOrder.InvoiceTo.Address <-> PurchaseOrder.InvoiceTo.Address:
0.85524625
- PurchaseOrder.InvoiceTo.Contact.contactName <->
PurchaseOrder.ContactPerson.firstName: 0.61975986
- PurchaseOrder.InvoiceTo.Contact.contactName <->
PurchaseOrder.ContactPerson.lastName: 0.621613
- PurchaseOrder.InvoiceTo.Contact.companyName <->
PurchaseOrder.InvoiceTo.Organization.name: 0.61861247
- PurchaseOrder.InvoiceTo.Contact.e-mail <->
PurchaseOrder.ContactPerson.email: 0.5943921
- PurchaseOrder.InvoiceTo.Contact.telephone <->
PurchaseOrder.ContactPerson.tel: 0.7819118
- PurchaseOrder.InvoiceTo.Contact <-> PurchaseOrder.ContactPerson: 0.64217
- PurchaseOrder.InvoiceTo <-> PurchaseOrder.InvoiceTo: 0.77725554
- PurchaseOrder.Items.Item.partDescription <->
PurchaseOrder.Line.productName: 0.6937629
- PurchaseOrder.Items.Item.unitOfMeasure <->
PurchaseOrder.Line.unitOfMeasureRef: 0.8225684
- PurchaseOrder.Items.Item.quantity <-> PurchaseOrder.Line.quantity:
0.85372746
- PurchaseOrder.DeliverTo.Address.stateProvince <->
PurchaseOrder.DeliverTo.Address.state: 0.97213334
- PurchaseOrder.DeliverTo.Address <-> PurchaseOrder.DeliverTo.Address:
0.85524625
- PurchaseOrder.DeliverTo.Contact.contactName <->
PurchaseOrder.ContactPerson.firstName: 0.619998
- PurchaseOrder.DeliverTo.Contact.contactName <->
PurchaseOrder.ContactPerson.lastName: 0.6215336
- PurchaseOrder.DeliverTo.Contact.companyName <->
PurchaseOrder.DeliverTo.Organization.name: 0.61861247
- PurchaseOrder.DeliverTo.Contact.e-mail <->
PurchaseOrder.ContactPerson.email: 0.59503114
- PurchaseOrder.DeliverTo.Contact.telephone <->
PurchaseOrder.ContactPerson.tel: 0.78255093
- PurchaseOrder.DeliverTo.Contact <-> PurchaseOrder.ContactPerson:
0.64306474
- PurchaseOrder.DeliverTo <-> PurchaseOrder.DeliverTo: 0.77725554
- PurchaseOrder <-> PurchaseOrder: 0.8594128
Tổng quan về bài toán đối sánh lược đồ và các phương pháp tiếp cận
Đầu tiên phân loại các dạng bài toán đối sánh để có một cái nhìn tổng quan
về các phương pháp đã được đề cập. Dựa vào sự phân loại các bài toán, các
phương pháp được sử dụng, đối sánh lược đồ được chia thành các phương pháp
cơ bản sau: schema-based, instance-based, element-based, structure-based,
language-based, constraint-based. Tiếp theo mô tả các kỹ thuật được sử dụng
trong từng phương pháp đối sánh. Ngoài ra luận văn còn đề cập đến các phương
pháp đánh giá hiệu quả của các thuật toán. Và cuối cùng là một số đề xuất
phương pháp giải quyết cho các lược đồ được xây dựng bằng tiếng Việt.
1
http://www.w3.org/XML/Schema
dẻo để dễ dàng bổ xung thêm các matcher (thuật toán đối sánh ) để nâng cao độ
chính xác. Phần đối sánh mức cấu trúc (Structure-based) được thiết kế dựa trên
mô hình của Cupid [3], đối sánh cấu trúc được thực hiện trên ngữ cảnh của node
được so sánh, trong VNMatch ngữ cảnh được xét cho một node là các node lá của
nó.
• Người sử dụng thực thi một thuật toán mới (matcher) có thể dễ dàng
thêm vào hệ thống và kiểm tra được chất lượng của thuật toán.
• Hỗ trợ những người nghiên cứu sau này có một công cụ để kiểm tra
các kết quả nghiên cứu một cách nhanh nhất
• Có thể tái sử dụng các kết quả nghiên cứu trước. Người dùng sẽ
dành thời gian nghiên cứu phát triển các thuật toán đối sánh mà
phải quan tâm nhiều đến phần cài đặt và tổng hợp.
1. Biểu diễn lược đồ: Module này xử lý các loại lược đồ đầu vào cơ bản như
SQL, XML Schema. Cung cấp một mô hình biểu diễn dưới dạng đồ thị cho
tất cả các loại lược đồ.
2. Các Matcher: Các Matcher sẽ được thêm mới, thay đổi, hoặc loại bỏ trong
hệ thống.
3. Matcher Combination Controller: Đây là phần nhân của hệ thống, sử dụng
các đặc tả được định nghĩa trong Matcher Configuration và Combination
configuration để xử lý.
4. Biểu diễn ánh xạ đầu ra
VNMatch framework rất cần được sự hỗ trợ của các thầy, các cô và các bạn sinh
viên để có thể trở thành một công cụ đắc lực phục vụ trước hết cho cộng đồng
những người nghiên cứu về lĩnh vực này.
Website
[14]. http://codeprojects.com/
[15]. http://dbs.uni-leipzig.de/Research/coma.html COMA++ project
[16]. http://www-db.stanford.edu/~melnik/mm/sfa/ Similarity Flooding
project
[17]. http://dip.semanticweb.org/ Data, Information, and Process
Integration with Semantic Web Services
--- Hết---