Hình 3.4 - Ánh xạ ontology
Để tích hợp đƣợc ontology, bƣớc đầu tiên ta phải so khớp, ánh xạ các ontology đó với nhau. Quá trình này là việc tìm kiếm mối quan hệ hay sự tƣơng đồng giữa các ontology khác nhau. Qua đó có thêm thông tin, dữ liệu để tiến hành bƣớc tích hợp các ontology sau đó.
Kết quả của bƣớc này là một ontology ánh xạ chứa các điểm tƣơng đồng giữa hai ontology cần tích hợp. Những cặp yếu tố tƣơng đồng đƣợc tìm ra dựa trên các tính chất của chúng. Đó có thể là các cặp lớp, các cặp thuộc tính hay các cặp thực thể dựa vào sự tƣơng đồng của tên hay vị trí của chúng trong các ontology cần tích hợp.
3.3.2. Khái niệm độ tương tự
Các điểm tƣơng đồng đƣợc đánh giá bởi một con số gọi là độ tƣơng tự. Độ tƣơng tự giữa các yếu tố càng lớn thì các ánh xạ càng chính xác và độ tin cậy của chúng càng cao. Độ tƣơng tự giữa hai yếu tố lớn nhất là 1.
Độ tƣơng tự của các cặp tƣơng đồng có thể đƣợc định nghĩa một cách trực quan nhƣ sau:
Độ tƣơng tự giữa hai yếu tố A và B có liên quan tới sự giống nhau của chúng. Sự giống nhau càng nhiều thì độ tƣơng tự càng lớn.
Độ tƣơng tự giữa hai yếu tố A và B có liên quan tới sự khác biệt giữa chúng. Sự khác biệt càng nhiều thì độ tƣơng tự càng thấp.
Độ tƣơng tự lớn nhất giữa hai yếu tố A và B đạt đƣợc khi A và B giống hệt nhau. Khi đó A và B là đồng nhất.
Về mặt toán học, độ tƣơng tự giữa hai yếu tố đƣợc tính bằng tổng của độ tƣơng tự các yếu tố liên quan. Ví dụ, độ tƣơng tự giữa hai lớp A và B chính là tổng của độ tƣơng tự về ngữ nghĩa của A và B cộng với độ tƣơng tự về cấu trúc của A và B.
Độ tƣơng tự về cấu trúc của A và B đƣợc tính đến các thành phần liên hệ trực tiếp nhƣ thuộc tính, lớp mẹ, lớp con. Với các thành phần liên hệ trực tiếp này, độ tƣơng tự có thể chỉ đƣợc tính đơn giản là về ngữ nghĩa. Theo Align [14], các công thức tính độ tƣơng tự về cấu trúc cụ thể nhƣ sau:
cClass = cLexical + cDatatypeProperty + cObjectProperty + cSuperClass cObjectProperty = cLexical + cClass + cObject + cCardinality + cRelation
cDatatypeProperty = cLexical + cDatatype + cDatatypeValue + cCardinality + cRelation
Để tính đƣợc độ tƣơng tự về ngữ nghĩa giữa các chuỗi ký tự, có một số công thức cụ thể đƣợc sử dụng nhƣ sau:
Độ tƣơng tự dựa vào sự giống nhau của hai chuỗi ký tự: cedit(x, y) = 1+𝑒𝑑𝑖𝑡𝐷𝑖𝑠𝑡 (𝑥,𝑦)1
Trong đó, editDist (x,y) là số ký tự nhỏ nhất cần chèn vào hay xóa đi để chuyển từ chuỗi ký tự này sang chuỗi ký tự kia.
Độ tƣơng tự dựa vào số bộ ba khác nhau giữa hai chuỗi ký tự: ctri(x, y) = 1+ 𝑡𝑟𝑖 𝑥 + 𝑡𝑟𝑖 𝑦 −2×|𝑡𝑟𝑖 (𝑥)∩𝑡𝑟𝑖 (𝑦)| 1
Trong đó, tri(x) là tập các bộ ba trong x. Ví dụ: tri(tƣơngtự)={tƣơ,ƣơn,ơng, ngt, gtự}
Độ tƣơng tự đƣợc áp dụng và phát triển trong nhiều lĩnh vực. Trong các lĩnh vực khác nhau có những cách tính độ tƣơng tự khác nhau.
3.3.3. Các bước ánh xạ ontology
Quy trình ánh xạ ontology là một quy trình bao gồm nhiều bƣớc và là một quy trình lặp. Đối với hầu hết các phƣơng pháp hiện nay, quy trình này đƣợc chia thành các bƣớc cơ bản. Trong một số phƣơng pháp khác nhau, trật tự các bƣớc có thể khác nhau hoặc một số bƣớc trong quy trình có thể đƣợc sát nhập vào nhau nhƣng nhìn chung các phƣơng pháp đều có cùng các thành phần cơ bản.
Ta có thể chia quy trình này thành 6 bƣớc cơ bản sau [4]:
Hình 3.6 - Quy trình ánh xạ ontology
Xây dựng các đặc trƣng: Đây là bƣớc khởi đầu của quy trình sử dụng các giá trị đầu vào là các ontology. Để chọn lựa ontology đầu vào, đầu tiên chúng ta sẽ dựa vào tập các khái niệm dùng để định nghĩa ontology. Ngoài ra, dựa vào các đặc điểm chung của các thành phần của ontology đầu vào, trong bƣớc này ta sẽ phân loại chúng theo từng nhóm. Các nhóm thuộc tính này sẽ đƣợc sử dụng trong quá trình đối sánh ở các bƣớc tiếp theo.
Tìm và lựa chọn cặp thực thể: Dựa vào sự phân loại thuộc tính ở bƣớc một, ta sẽ chọn ra các cặp thực thể của hai ontology để thực hiện việc ánh xạ ontology trong bƣớc tiếp theo. Việc chọn ra các cặp phù hợp, loại bỏ các cặp không phù hợp làm cho quá trình ánh xạ diễn ra nhanh hơn và kết quả chính xác, giảm thiểu độ dƣ thừa.
Tính toán độ tƣơng tự: Độ tƣơng tự là thƣớc đo xác định sự giống nhau giữa hai thực thể cần ánh xạ. Việc tính toán giá trị này đƣợc thực hiện thông qua một tập các hàm tƣơng tự.
Kết hợp các độ tƣơng tự: Dựa vào các giả thuyết đầu vào, sau khi tính toán độ tƣơng tự ta có thể đƣa ra kết quả ánh xạ giữa các ontology. Tuy nhiên, có rất nhiều phƣơng pháp để tính toán các độ tƣơng tự cho ra các kết quả khác nhau. Do đó, việc kết hợp các kết quả này để cho ra kết luận đúng đắn nhất là rất quan trọng. Nhiều nghiên cứu đã đƣa ra các
công thức kết hợp các độ tƣơng tự nhƣng việc đƣa ra công thức cho kết quả tối ƣu nhất thì vẫn đang trong giai đoạn nghiên cứu.
Đƣa ra kết luận: Sau khi đã kết hợp đƣợc các độ tƣơng tự và đƣa ra kết quả cuối cùng, ta cần đƣa ra kết luận dựa vào kết quả đó, hay nói cách khác là kết quả cần phải đƣợc thông dịch nhằm khẳng định hai thực thể của hai ontology có tƣơng tự nhau hay không. Để thực hiện điều này, hầu hết các hệ thống hiện nay điều sử dụng một giá trị ngƣỡng nhất định. Nếu kết quả cuối cùng lớn hơn giá trị ngƣỡng này thì kết luận là hai thực thể tƣơng tự nhau, ngƣợc lại là không.
Quy trình lặp: Quá trình lặp này sẽ giúp cho việc đƣa ra kết quả chính xác hơn, tránh bỏ sót và loại bỏ các trƣờng hợp không phù hợp. Tuy nhiên, để tránh sự lặp vô hạn, ngƣời ta thƣờng đƣa ra các điều kiện để dừng vòng lặp. Các điều kiện đó là:
i. Quá trình lặp dừng lại sau một số bƣớc nhất định. ii. Quá trình lặp dừng lại sau một thời gian nhất định. iii. Các giá trị thay đổi vẫn không vƣợt quá ngƣỡng.
3.3.4. Một số kỹ thuật ánh xạ
Mục đích của quy trình ánh xạ ontology là nhằm tìm ra mối quan hệ giữa các thực thể đƣợc mô tả ở các ontology khác nhau. Một cách thông thƣờng, mối quan hệ giữa các thực thể cũng chính là mối quan hệ đƣợc tìm thấy thông qua việc tìm ra các độ tƣơng tự giữa các thực thể của các ontology.
Kỹ thuật ánh xạ sử dụng các tài nguyên về ngôn ngữ
Các nguồn tài nguyên về ngôn ngữ nhƣ các bộ từ điển từ vựng, các từ điển chuyên đề đƣợc sử dụng nhằm đối sánh các từ (trong trƣờng hợp này, tên của các thực thể ontology đƣợc xem nhƣ là các từ biểu diễn trong ngôn ngữ tự nhiên) dựa trên các mối quan hệ giữa chúng nhƣ dựa vào các từ đồng nghĩa, từ bao hàm…
Phƣơng pháp ánh xạ chủ yếu khi sử dụng các nguồn tài nguyên này là dựa vào tập các từ có một mối quan hệ nào đó với mỗi từ cần đối sánh, ví dụ nhƣ tập các từ đồng nghĩa. Nếu hai tập này có nhiều từ chung nghĩa là độ tƣơng tự giữa hai từ gốc càng cao. Tuy nhiên, phƣơng pháp này có hạn chế là phụ thuộc vào tính chính xác của nguồn tài nguyên đang sử dụng.
Hình 3.7 - Kỹ thuật ánh xạ dựa vào mối quan hệ giữa các từ Kỹ thuật ánh xạ dựa vào cấu trúc nội tại
Kỹ thuật này chủ yếu dựa vào cấu trúc nội tại của các thực thể và sử dụng các điều kiện nhƣ tập các thuộc tính, miền giá trị của thuộc tính, các bội số về quan hệ… để tính độ giống nhau giữa chúng.
Số lƣợng các thực thể có thể so sánh về bản chất nội tại hoặc các thuộc tính giống nhau về miền giá trị và miền xác định thƣờng rất nhiều. Chính vì vậy, kỹ thuật so sánh này thƣờng đƣợc sử dụng để đƣa ra tập các sự tƣơng ứng làm ứng cử viên hơn là tìm ra sự tƣơng ứng chính xác giữa các thực thể. Kỹ thuật này thƣờng đƣợc sử dụng kèm với kỹ thuật ánh xạ dựa vào các thành phần, ví dụ nhƣ phƣơng pháp so sánh thuật ngữ, nhằm giảm đi số lƣợng các bộ tƣơng ứng đƣợc chọn làm ứng cử viên (candidate correspondences).
Việc xác định độ tƣơng tự dựa vào các đặc điểm nội tại của các thực thể là rất quan trọng, cung cấp cơ sở cho các thuật toán. Phƣơng pháp này có ƣu điểm là dễ thực hiện và mang lại hiệu quả cao.
Tuy vậy, phƣơng pháp này không cung cấp nhiều thông tin về thực thể để so sánh: nhiều đối tƣợng khác nhau nhƣng lại có các thuộc tính giống nhau về kiểu dữ liệu. Do đó, phƣơng pháp này chủ yếu dùng để loại trừ các bộ tƣơng ứng không phù hợp và thƣờng đƣợc sử dụng kèm với một số kỹ thuật khác.
Hình 3.8 - Kỹ thuật ánh xạ dựa vào cấu trúc Kỹ thuật ánh xạ dựa trên cấu trúc quan hệ
Kỹ thuật này là các thuật toán về đồ thị với việc xem các giá trị đầu vào của ontology là các nhãn đồ thị. Một ontology (bao gồm lƣợc đồ cơ sở dữ liệu, phân loại) sẽ đƣợc hiển thị nhƣ những đồ thị đƣợc gán nhãn có cấu trúc. Thông thƣờng, độ tƣơng tự đƣợc so sánh giữa cặp các nút từ hai ontology sẽ dựa trên việc phân tích vị trí của chúng trong đồ thị. Quy tắc tính này nhƣ sau: nếu hai nút của hai ontology tƣơng tự nhau, thì các nút láng giềng của chúng cũng tƣơng tự nhau.
Việc so sánh giữa các lớp con hoặc lớp cha sẽ đƣợc thực hiện dựa vào các kỹ thuật cơ bản ở phần trên. Việc đối sánh ontology dựa vào cấu trúc quan hệ mang lại hiệu quả cao bởi vì nó cho phép ta tận dụng đƣợc tất cả các quan hệ giữa các thực thể. Tuy vậy, để sử dụng phƣơng pháp này cần phải có các phƣơng pháp cơ sở vững chắc. Đó là lý do tại sao phƣơng pháp này thƣờng đƣợc sử dụng kết hợp với các phƣơng pháp đối sánh các đặc điểm nội tại hoặc các phƣơng pháp dựa vào so sánh thuật ngữ.
Hình 3.9 - Kỹ thuật ánh xạ dựa trên cấu trúc quan hệ
3.3.5. Ánh xạ sử dụng Align
Align là một bộ thuật toán đƣợc viết bằng ngôn ngữ Java có tác dụng xây dựng bộ ánh xạ giữa hai ontology. Phần quan trọng nhất của thuật toán là các lớp giao diện biểu diễn và các lớp xử lý cung cấp truy cập vào thông tin dữ liệu của ontology.
Các lớp biểu diễn của Align [14]
Align có bốn lớp biểu diễn chính là OntologyNetwork, Alignment, Cell và Relation đƣợc biểu diễn trong sơ đồ quan hệ dƣới đây:
Hình 3.10 - Quan hệ giữa các lớp chính của Align
Lớp OntologyNetwork: đây là nơi lƣu giữ bộ các ontology và bộ các ánh xạ. Lớp này giúp cho đơn giản hóa việc tìm kiếm các ánh xạ gắn với một ontology cũng nhƣ biểu diễn, thao tác chúng trên mạng.
Lớp Alignment: đây là lớp chính của Align. Một Alignment đƣợc tạo ra bởi một bộ các Cell và dữ liệu metadata về ánh xạ, chẳng hạn nhƣ ontology đƣợc ánh xạ, kết quả ánh xạ, nguồn gốc của dữ liệu và các dữ liệu khác có liên quan đến ánh xạ.
Lớp Cell: lớp này biễu diễn sự tƣơng ứng giữa các yếu tố của hai ontology cần ánh xạ.
Chúng đƣợc liên kết với nhau bằng quan hệ Relation. Ngoài ra, lớp Cell hỗ trợ bất kỳ loại dữ liệu nào, trong đó có cả độ tin cậy c.
Lớp Relation: lớp này biểu diễn quan hệ giữa hai thành phần của hai ontology.
Bốn lớp này cung cấp truy cập vào thông tin của ontology và thuật toán để điều khiển, thao tác trên thông tin dữ liệu. Ví dụ nhƣ thêm thông tin ánh xạ, bớt thông tin ánh xạ khi độ tin cậy không vƣợt qua mức yêu cầu.
Các lớp xử lý của Align
Ngoài các lớp biểu diễn, thuật toán Align cung cấp tiến trình xử lý ánh xạ ontology. Nó có thể đƣợc sử dụng bởi các ứng dụng nhằm thao tác, tận dụng các ánh xạ. Sau đây là các lớp quan trọng của Align:
Lớp AlignmentProcess: đây là giao diện cho tất cả các ứng dụng liên quan. Quá trình ánh xạ ontology của Align đƣợc phân thành hai bƣớc: đầu tiên
tạo một đối tƣợng Alignment bằng cách sử dụng AlignmentProcess và khởi tạo nó với hai đối tƣợng ontology, sau đó gọi thuật toán ánh xạ bằng cách sử dụng hàm align(). Hàm này sử dụng hai tham số: đối tƣợng Alignment chƣa khởi tạo và đối tƣợng Property.
Lớp Evaluator: đây là giao diện để đánh giá ánh xạ bằng cách so sánh đối tƣợng Alignment đầu tiên với đối tƣợng Alignment thứ hai.
Lớp AlignmentVisitor hay Renderer: đây là giao diện dùng để định nghĩa đầu ra của Alignment dƣới nhiều định dạng khác nhau bằng cách gọi hàm render() của Alignment.
Hình 3.11 - Các bƣớc chính của Align và các lớp xử lý liên quan Độ tƣơng tự của Align
Align sử dụng OntoSim để tính toán độ tƣơng tự giữa các thành phần của các ontology. OntoSim rất linh hoạt, ngoài khả năng tính toán độ tƣơng tự phục vụ quá trình ánh xạ, nó còn hỗ trợ việc phát triển độ tƣơng tự mới. Đặc biệt, nó có khả năng cung cấp thuật toán tập hợp ma trận tƣơng tự:
- Sơ đồ tập hợp cho phép làm sáng tỏ một tập các giá trị với chỉ một con số.
- Tách riêng một tập con các giá trị trong ma trận liên quan đến một số phƣơng pháp nhƣ: Hausdorff, sự kết hợp trung bình hay trọng lƣợng lớn nhất…
OntoSim cũng có thể hoạt động với một bộ các thông số tƣơng tự (chuỗi, đối tƣợng).
Ngƣỡng độ tƣơng tự của Align đƣợc sử dụng thƣờng là tập hợp của nhiều thông số.
Đối với ánh xạ giữa các lớp, độ tƣơng tự đƣợc Align tính bằng tổng của độ tƣơng tự về ngữ nghĩa (lexical nhằm biểu diễn tên lớp), độ tƣơng tự về thuộc tính dữ liệu (DatatypeProperty nhằm biểu diễn định dạng của lớp là chuỗi ký tự
hay số) và các thuộc tính đối tƣợng (ObjectProperty, nhằm biểu diễn các tính chất của lớp nhƣ có tên là, tại địa chỉ là…):
<node id="Class"> <param default="0.5">Lexical</param> <param default="0.25">DatatypeProperty</param> <param default="0.25">ObjectProperty</param> <param default="0">SuperClass</param> <param default="0">Object</param> </node>
Đối với ánh xạ giữa các thuộc tính, độ tƣơng tự là tổng của các độ tƣơng tự sau: <node id="ObjectProperty"> <param default="0.2">Lexical</param> <param default="0.4">Class</param> <param default="0">Object</param> <param default="0.15">Cardinality</param> <param default="0.25">Relation</param> </node>
Ngoài ra, còn có các công thức tính độ tƣơng tự khác nữa đối với định dạng của thuộc tính, định dạng của quan hệ, quan hệ giữa các đối tƣợng… Khi ngƣỡng độ tƣơng tự của các ánh xạ càng cao, thì độ chính xác càng cao và ngƣợc lại. Tuy nhiên, sẽ có khả năng một số ánh xạ đƣợc đánh giá có độ tƣơng tự không cao lắm nhƣng vẫn là một ánh xạ chính xác, vậy nên việc chọn độ tƣơng tự áp dụng cho ứng dụng là rất quan trọng.
Thuật toán LEVENSHTEIN [6]
Trong phƣơng pháp đo độ tƣơng tự của các cặp tƣơng đồng, Align sử dụng thuật toán LEVENSHTEIN. Thuật toán này nhận hai tham số là hai chuỗi ký tự và trả cho ta khoảng cách giữa chúng. Khoảng cách giữa hai chuỗi ký tự là số bƣớc ít nhất biến chuỗi này thành chuỗi kia thông qua ba phép biến đổi là: xóa một ký tự, thêm một ký tự hay thay ký tự này bằng ký tự khác.
Để tính toán khoảng cách Levenshtein, ta sử dụng thuật toán quy hoạch động, tính toán trên mảng hai chiều (n+1)*(m+1), với n, m là độ dài của chuỗi cần tính:
int LevenshteinDistance(char s[1..m], char t[1..n]) // d is a table with m+1 rows and n+1 columns declare int d[0..m, 0..n]
d[i, 0] := i for j from 0 to n d[0, j] := j for i from 1 to m for j from 1 to n
{if s[i] = t[j] then cost := 0