Một phương pháp gióng hàng Ontology trong OWL-DL

Tóm tắt. Trong bài báo này chúng tôi tìm hiểu phương pháp gióng hàng ontology (ontology alignment) trên ngôn ngữ OWL-Lite và OWL-DL. Trên cơ sở khảo sát công cụ OLA (Owl Lite Alignment) với kĩ thuật ánh xạ OWL Lite ontology, chúng tôi đề xuất một phương pháp tính độ tương tự của các thành phần giữa các OWL-DL ontology. Phương pháp tính độ tương tự được thực hiện trên các thành phần ontology cụ thể và được thử nghiệm bằng việc xây dựng một hệ thống OWL-DL Alignment (ODA). Đánh giá thực nghiệm cho thấy hệ thống đạt kết quả với độ tương tự có mức chính xác cao.

pdf10 trang | Chia sẻ: thanhle95 | Lượt xem: 201 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Một phương pháp gióng hàng Ontology trong OWL-DL, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
JOURNAL OF SCIENCE OF HNUE FIT., 2013, Vol. 58, pp. 28-37 This paper is available online at MỘT PHƯƠNG PHÁP GIÓNG HÀNG ONTOLOGY TRONG OWL-DL Đỗ Thị Ngọc Khang1 và Phạm Thị Anh Lê2 1Trường THPT Trung Giã, 2Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Hà Nội 2Email: lepta@hnue.edu.vn Tóm tắt. Trong bài báo này chúng tôi tìm hiểu phương pháp gióng hàng ontology (ontology alignment) trên ngôn ngữ OWL-Lite và OWL-DL. Trên cơ sở khảo sát công cụ OLA (Owl Lite Alignment) với kĩ thuật ánh xạ OWL Lite ontology, chúng tôi đề xuất một phương pháp tính độ tương tự của các thành phần giữa các OWL-DL ontology. Phương pháp tính độ tương tự được thực hiện trên các thành phần ontology cụ thể và được thử nghiệm bằng việc xây dựng một hệ thống OWL-DL Alignment (ODA). Đánh giá thực nghiệm cho thấy hệ thống đạt kết quả với độ tương tự có mức chính xác cao. Từ khóa: Gióng hàng ontology, OWL-DL. 1. Giới thiệu Trong thực tế, nhiều hệ tri thức sử dụng ontology như một cách tiếp cận để biểu diễn tri thức theo định dạng có cấu trúc. Con người luôn có nhu cầu chia sẻ và tái sử dụng tri thức từ nhiều nguồn khác nhau. Tái sử dụng tri thức cũng là một bước rất quan trọng trong quá trình thiết kế ontology. Khi xây dựng một ontology, người ta tìm những khái niệm, tiên đề, cá thể,. . . từ các ontology có cùng chủ đề để sử dụng lại. Tuy nhiên, mỗi ontology lại có cách biểu diễn tri thức khác nhau, tùy thuộc vào các ứng dụng cụ thể. Do đó, các phương pháp tìm kiếm những khái niệm tương đồng trong phần mô tả của các cặp ontology là rất cần thiết. Các phương pháp này được gọi là ánh xạ (mapping) hay gióng hàng (alignment) ontology. Nhiều kĩ thuật alignment [2] đã được nghiên cứu thực hiện như: đánh giá dựa trên nhãn của các thực thể trong ontology (gọi tắt là thực thể), dựa vào cấu trúc nội tại của các thực thể, cấu trúc quan hệ (độ tương tự tính dựa trên việc phân tích vị trí của chúng trong đồ thị). . . Một số phương pháp đã được sử dụng phổ biến: ANCHORPROMPT (Noy et al., 2001), IF-MAP (Kalfoglou et al., 2003), ASCO (Bach et al., 2004), GLUE (Doan et al., 2004), QOM (Ehrig et al., 2004a) và OLA (Euzenat et al., 2004b). Các phương pháp đều biểu diễn ontology theo định dạng ngôn ngữ đánh dấu (xml, RDF(S), và OWL-Lite2). Ngoài ra, các phương pháp này đánh giá độ tương tự ít nhiều dựa trên cấu trúc của ontology đó. OLA là một công cụ sử dụng thuật toán mới cho việc tính toán độ tương tự của hai ontology sử dụng ngôn ngữ OWL-Lite [4]. Thuật 28 Một phương pháp gióng hàng Ontology trong OWL-DL toán gióng hàng các ontology được OLA thực hiện với bốn bước cơ bản. Đầu tiên, xây dựng mô hình đồ thị OL-graph [2] biểu diễn các ontology OWL-Lite. Bước 2, tính toán độ tương tự nội tại (id, label) của cặp đối tượng được xét. Bước 3, tính toán độ tương tự về cấu trúc của cặp dựa vào độ tương tự của các láng giềng cấp một. Bước 4, tính độ tương tự tổng thể dựa trên độ tương tự nội tại và độ tương tự về cấu trúc đã tính ở trên áp dụng đối với đối tượng là: lớp và thuộc tính. Mặt khác, như chúng ta đã biết, OWL Lite có những hạn chế về khả năng biểu diễn tri thức [8]. Trong khi đó, OWL-DL là một phiên bản được sử dụng rất phổ biến bởi tính biểu đạt của ngôn ngữ và hỗ trợ việc lập luận hiệu quả. Từ những phân tích về chức năng của OLA chủ yếu hỗ trợ OWL Lite ontology, chúng tôi đề xuất một phương pháp gióng hàng các ontology trong ngôn ngữ OWL DL. 2. Nội dung nghiên cứu 2.1. Gióng hàng các ontology 2.1.1. Khái niệm ontology Trong khoa học máy tính, ontology được định nghĩa là một biểu diễn hình thức cho tập hợp các khái niệm thuộc một lĩnh vực nào đó và quan hệ giữa những khái niệm này. Cụ thể hơn, ontology cung cấp một bộ từ vựng chung bao gồm các khái niệm, các thuộc tính quan trọng, các mô tả về các khái niệm và các thuộc tính phức tạp. Các ontology thường miêu tả: cá thể (thể hiện), lớp (khái niệm), thuộc tính và các quan hệ [1]. Khái niệm (lớp) có thể biểu diễn một nhóm, bộ, tập hợp các đối tượng hoặc là các đối tượng trừu tượng - biểu diễn các giá trị ràng buộc. Ví dụ: AccommodationRating biểu diễn lớp tất cả các mức tiêu chuẩn chất lượng của một chỗ ở. Cá thể là thành phần cơ bản của một ontology. Tham khảo ví dụ ontology du lịch, trong lớp AccommodationRating có các thể hiện: OneStarRating (Một sao), TwoStarRating (Hai sao), ThreeStarRating (Ba sao). Mỗi cá thể là một thể hiện duy nhất của lớp. Thuộc tính được dùng để mô tả các tính chất, đặc điểm của cá thể (lớp) trong ontology. Một thuộc tính cũng có thể là một lớp hay một cá thể. Ví dụ như: cá thể HaNoi có các thuộc tính: HaNoi Capital (là thủ đô) FourSeasons (có đủ 4 mùa) WestLake (Hồ Tây) Quan hệ giữa các đối tượng trong một ontology cho biết các đối tượng liên hệ với đối tượng khác như thế nào. Chẳng hạn, ontology chứa khái niệm Accommodation và khái niệm Thing được liên hệ bởi quan hệ . Điều này cho ta biết Accomodation là mô hình thay thế cho Thing. Để biểu diễn các thành phần của ontology, người ta sử dụng các ngôn ngữ ontology. Trong lĩnh vực web ngữ nghĩa, có khá nhiều ngôn ngữ như XML, RDF, DAML+OIL, OWL. . . 29 Đỗ Thị Ngọc Khang, Phạm Thị Anh Lê Trong đó, OWL là một trong những ngôn ngữ phổ biến nhất, có các phiên bản khác nhau: OWL-Lite, OWL-DL và OWL-FULL. Trong bài báo này, chúng tôi giới thiệu OWL-DL [8]. Chúng tôi sẽ trình bày ngắn gọn cú pháp cơ bản của ngôn ngữ này qua ví dụ sau: Phần mô tả lớp AccommodationRating và cá thể HaNoi đề cập ở phần trên được biểu diễn bằng cú pháp trừu tượng của ngôn ngữ OWL-DL như sau: Namespace(p =) Ontology( Class(p:AccommodationRating) SubClassOf (owl:Thing) EnumeratedClass (p:AccommodationRating p:OneStarRating p:ThreeStarRating p:ThreeStarRating) Individual (p: HaNoi) p:HaNoi type(p:Capital) value (p:hasAccomodation p:FourSeasons) value (p:hasPart p:WestLake) Đoạn mã trên sử dụng 6 thành phần OWL-DL chính là: Class cho phép định nghĩa một tài nguyên như là một lớp hoặc khái niệm cho các tài nguyên khác, subClassOf cho phép định nghĩa cấu trúc phân cấp giữa các lớp, và EnumeratedClass cho phép mô tả lớp tương đương với lớp hiện tại là một tập các cá thể, Individual cho phép định nghĩa một tài nguyên là cá thể, type cho phép mô tả một cá thể thuộc loại (lớp) đã có, value cho phép mô tả mối quan hệ giữa cá thể với lớp (thể hiện). 2.1.2. Gióng hàng các ontology Như chúng ta đã biết, một bước trong quá trình thiết kế ontology là tái sử dụng các dữ liệu trong các ontology đã có. Tuy nhiên, trong thực tế, nhiều ontology có cùng chủ đề thì vẫn tồn tại những khác biệt như quy cách đặt tên, cấu trúc thiết kế. . . Các phương pháp gióng hàng nhằm tìm các cặp thực thể tương đồng giữa các ontology [3]. OLA là một phần mềm được xây dựng để đánh giá độ tương tự trong các OWL Lite ontology. Sau khi phân tích mỗi ontology bằng OWL API, OLA sẽ sinh ra hai đồ thị OL-graph [2]. Với OL-graph, các nút biểu diễn các thành phần: lớp, đối tượng, bản số, kiểu dữ liệu; cạnh của đồ thị biểu diễn các quan hệ giữa các nút. Độ tương tự của các thực thể (cặp nút) trên hai đồ thị được xét dựa trên hai yếu tố: là kiểu thành phần mà nút đó biểu diễn (độ tương tự về ngôn ngữ) và phần mô tả cho nút đó: các lớp cha, con, các thuộc tính và các cạnh được gắn nhãn là kiểu quan hệ liên kết nút được xét với nút có quan hệ với nó (độ tương tự về cấu trúc). Tuy nhiên, việc áp dụng OLA cho các OWL DL ontology chưa phù hợp với một số cú pháp: EquivalentClasses, EnumeratedClass, EquivalentProperties, SameIndividual... Hơn nữa, thuật toán tính độ tương tự của OLA không xét tới độ tương tự các láng giềng cấp 2 và chỉ thể hiện độ tương tự của lớp, thuộc tính và bỏ qua các cá thể. File mô tả kết quả đầu ra chưa phù hợp với các hệ soạn thảo ontology thông dụng. Từ những hạn chế trên, chúng tôi đề xuất một phương pháp đánh giá độ tương tự cho các thành phần của ontology với ngôn ngữ mô tả OWL-DL. Hệ thống ODA mà chúng tôi xây dựng vẫn trên cơ sở thuật toán của OLA nhưng có tham khảo phương pháp gióng hàng các ontology với cặp ontology sử dụng ngôn ngữ mô tả OWL-DL đã được OAEI đánh giá năm 2011, kết hợp 30 Một phương pháp gióng hàng Ontology trong OWL-DL với một số điều chỉnh: bổ sung đánh giá độ tương tự cho các mệnh đề mô tả thuộc tính lớp tương đương, sử dụng thuật toán Hunggary để chọn các cặp đối tượng sao cho tổng số độ tương tự của hai ontology là lớn nhất và tạo lại mẫu file chứa kết quả phù hợp để hiệu chỉnh với các hệ soạn thảo ontology thông dụng. Tên gọi của hệ thống này là: OWL-DL Alignment. Sau đây là các bước cơ bản của kĩ thuật mà chúng tôi sử dụng. 2.2. Gióng hàng OWL-DL ontology Trong phần này, chúng tôi xây dựng hệ thống ODA gióng hàng ontology trong ngôn ngữ OWL-DL. Hệ thống cũng thực hiện ba bước cơ bản: xây dựng đồ thị RDF (O-graph), tính độ tương tự giữa các cặp thực thể và đưa ra kết quả về các cặp thực thể tương đồng (sử dụng thuật toán Hungary). 2.2.1. Xây dựng đồ thị RDF Đầu tiên, chúng tôi biểu diễn mỗi ontology bởi một đồ thị RDF sử dụng công cụ Jena api [5]. Trong Jena, toàn bộ thông tin được biểu diễn bằng một tập các bộ 3 RDF trong một cấu trúc dữ liệu gọi là “mô hình”. Mô hình chính là đồ thị RDF chứa tập các nút RDF liên kết với nhau bởi các cạnh là các quan hệ có gắn nhãn. Mỗi quan hệ chỉ đi theo một hướng. Ví dụ: example:ijd travel:name "HaNoi" travel:type “Capital” có thể được hiểu là tài nguyên example:ijd có thuộc tính travel:name với giá trị "HaNoi". Mô hình này giống như một đồ thị có hướng với 2 kiểu nút cơ bản: URI và Literal (các giá trị của thuộc tính). Các tài nguyên thường được mô tả bởi các URI. Còn cạnh trong đồ thị được gán nhãn bởi tên thuộc tính. Như vậy, mỗi cạnh trong đồ thị là một phát biểu (statement) gồm bộ 3: subject là nút khởi đầu cạnh, predicate là thuộc tính hay quan hệ được gắn nhãn cho cạnh và object có thể là nút kết thúc hoặc là tài nguyên (resource) hoặc giá trị (literal). Jena api cung cấp một số phương thức để trích lấy các thành phần cơ cản của một ontology. Tuy nhiên, không phải mọi mô tả đều trả về kết quả mong muốn. Với thành phần lớp tương đương và thuộc tính tương đương, api này không trả về đầy đủ danh sách lớp, thuộc tính và ràng buộc kèm theo (nếu có); với danh sách các lớp, thuộc tính cha và con không trả về các danh sách cấp 1, cấp 2,... mà trộn lẫn vào chung một tập hợp; thuộc tính kiểu, danh sách các cá thể tương tự và khác biệt của cá thể nếu lớn hơn 1 thì sẽ trả về thiếu một lớp trong danh sách đầy đủ... Do đó, ta cần đi xây dựng lại các phương thức này để đảm bảo thực hiện các bước sau của thuật toán. Việc tính toán độ tương tự giữa các cặp thực thể có khá nhiều độ đo. Trong hệ thống ODA, qua thử nghiệm và đánh giá, chúng tôi sử dụng độ tương tự về ngôn ngữ, độ tương tự láng giềng và độ tương tự tổng thể. 2.2.2. Độ tương tự về ngôn ngữ Có khá nhiều thuật toán cho phép đo độ tương tự về ngôn ngữ như: kĩ thuật dựa trên xâu (string-based), dựa trên khoảng cách Hamming, dựa trên tài nguyên về ngôn ngữ, ... Ở đây, trên cơ sở tham khảo [6] chúng tôi sử dụng: độ tương tự LEVENSHTEIN dùng để đo độ tương tự về tên các đối tượng; độ tương tự Q-GRAM dùng để đo độ tương tự giữa các comment của đối tượng 31 Đỗ Thị Ngọc Khang, Phạm Thị Anh Lê trong ontology; độ tương tự JARO-WINKLER đo độ tương tự nhãn (label) của 2 đối tượng. Hàm SIMCL (dùng một trong ba thuật toán trên - tùy theo kiểu thành phần tương ứng), trọng số gán cho phần descriptor là IID. Độ tương tự về ngôn ngữ cho: lớp, thuộc tính và thể hiện (class, properties và instance) được tính: Với lớp, thể hiện ta xét nhãn, chú thích (label và comment) và tên lớp (thể hiện); thuộc tính ta xét bổ sung phần độ tương tự cho type (character), sao cho tổng các trọng số (độ tương tự) là bằng 1. Riêng trường hợp lớp tương đương với lớp đang xét (có thể kèm ràng buộc) thì độ tương tự về ngôn ngữ cho thành phần đó sẽ được tính như sau: Nếu phần mô tả lớp tương đương chỉ đơn giản là tên lớp tương đương không ràng buộc, ta xét như bình thường với các thuộc tính khác. Còn nếu đó là mệnh đề phức hợp, ta tiến hành lọc từng mệnh đề trong danh sách lớp tương đương, sau đó thực hiện sinh các mệnh đề tương đương với mệnh đề đang xét sao cho thuộc tính owl:intersectionOf (and), owl:unionOf (or), owl:oneOf (tập hợp) có tính chất giao hoán. Xét ví dụ: Phần mã mô tả trên: “Accomodation and has_Rating some OneStarRating, TwoStarRating” Và mệnh đề trên tương đương với các mệnh đề sau: “has_Rating some OneStarRating, TwoStarRating and Accomodation; has_Rating some” “TwoStarRating , OneStarRating and Accomodation; Accomodation and has_Rating some TwoStarRating, OneStarRating” Sau khi thực hiện xong bước trên ta tiến hành đánh giá độ tương tự của các mệnh đề. Chúng tôi sử dụng thuật toán Q-GRAM similarity, thuật toán thích hợp để đo độ tương tự của các xâu dài, lọc lấy cặp mệnh đề có độ tương tự lớn nhất tính vào độ tương tự của cặp đối tượng. Với độ tương tự của láng giềng cấp 2, ta không xét láng giềng của các lớp có ràng buộc kèm theo, chỉ xét láng giềng của các lớp không có ràng buộc và chỉ đối sánh độ tương tự ngôn ngữ cho phần mô tả lớp tương đương có ràng buộc sau khi đã sinh các mô tả tương đương dựa theo quy tắc đã trình bày ở trên. Ta thấy rằng, độ tương tự về ngôn ngữ là một thành phần quan trọng nhưng chưa đủ để đánh giá độ tương tự của các đối tượng. Do vậy, chúng tôi tiến hành đo độ tương tự láng giềng. 32 Một phương pháp gióng hàng Ontology trong OWL-DL 2.2.3. Độ tương tự láng giềng Trọng số gán cho độ tương tự ngôn ngữ là IIC và cho láng giềng là IIL. Độ tương tự của láng giềng tính bằng độ tương tự về ngôn ngữ của cặp nút và độ tương tự về cấu trúc của cặp nút. Các nút láng giềng được tổ chức theo cấu trúc category (nút có cùng kiểu): có hai cấp láng giềng. Láng giềng cấp 1: các láng giềng trực tiếp có thể là class, instances hoặc properties. Chúng có quan hệ trực tiếp với nút đang xét. Các ontology cùng kiểu thì đưa vào cùng một nhóm. Láng giềng cấp 2 (không trực tiếp): có quan hệ trực tiếp với nút đang xét ở mục láng giềng cấp 1, và được tính tương tự với láng giềng cấp 1. Công thức được tính dựa trên hàm MSim [6] với 2 vectơ là VN1 và VN2 ứng với 2 ontology (N1 và N2): Msim(E,E′) = ∑ (i,i′)∈Pairs(E,E′) SimCLS(i, i ′) Max(|E|, |E′|) (2.1) Trong đó, SimCLS là độ tương tự về ngôn ngữ của các cặp (i, i′) trong tập (E,E′), là các thành phần cùng kiểu tương ứng ở hai ontology đang xét. Tổng các độ đo SimCLS sẽ là giá trị lớn nhất của các độ đo SimCLS theo các cặp (i, i′). Max(|E|, |E′|) là số phần tử của tập lớn hơn trong hai tập E và E′ đang xét. Độ tương tự của láng giềng sẽ tính theo công thức: SimN = ∑ i∈(1,2) ( ∏ V i ( ∑ (E,E′) ∏ (E,E′) MSim(E,E′))) (2.2) Ở đó, i là mức (level), IIV 1 và IIV 2 được gán mặc định các giá trị 0.8 và 0.2 tương ứng. Tỉ lệ II(E,E′) được tính tùy theo từng kiểu nhóm láng giềng. Bước tiếp theo chúng tôi tính độ tương tự tổng thể cho cặp đối tượng. 2.2.4. Độ tương tự tổng thể Độ tương tự tổng thể của hai cặp đối tượng được tính dựa trên độ tương tự về ngôn ngữ và độ tương tự của các láng giềng. SimA(e1, e2) = ∏ CL SimCL(e1, e2) + ∏ N SimN (e1, e2)[3] (2.3) Với IICL và IIN là hệ số tương ứng sao cho IICL + IIN = 1. Lúc này ta đã có được độ tương tự của các cặp đối tượng, tiếp theo là làm thế nào để mỗi đối tượng trong nhóm A của ontology 1 đều chọn được một đối tượng trong nhóm A của ontology 2 sao cho tổng độ tương tự của hai nhóm là cao nhất. Nếu điều này thỏa mãn thì độ tương tự của từng cặp đối tượng trong nhóm được lọc sẽ là cặp có độ tương tự lớn nhất. Để thực hiện điều đó, chúng tôi sử dụng thuật toán Hungary. 2.2.5. Thuật toán Hungary Bài toán được phát biểu như sau: Cóm đối tượng nhóm 1 của ontology 1 (đánh số 1,. . . ,m), và n đối tượng nhóm 2 của ontology 2 (đánh số 1,...,n). Mỗi đối tượng nhóm 1 đều có độ tương tự nhất định với một đối tượng nhóm 2. Ta cần ghép cặp đối tượng sao cho độ tương tự c[i, j] >= r (giá trị ngưỡng). Cần ghép một đối tượng nhóm này chỉ với một đối tượng nhóm kia sao cho tổng độ tương tự đạt giá trị lớn nhất. Để giải quyết bài toán trên, chúng tôi xây dựng đồ thị hai phía đầy đủ G = (XUY,E) (với X = {x[1], x[2], . . . , x[m]} và Y = {y[1], y[2], . . . , y[n]}) bằng một ma trận C kích cỡ m × n 33 Đỗ Thị Ngọc Khang, Phạm Thị Anh Lê có C[i, j] = trọng số của các cạnh nối cặp đỉnh x[i] và y[j]. Giả thiết C[i, j] >= r (r là giá trị ngưỡng) (với mọi i, j). Trước khi áp dụng thuật toán Hungary, ta chuyển ma trận C thành ma trận D bằng quy tắc giá trị của phần tử trong D sẽ bằng giá trị của phần tử lớn nhất trong ma trận C trừ đi giá trị hiện thời của phần tử đó. Việc tiếp theo là tìm bộ ghép đầy đủ trọng số nhỏ nhất khi đó bộ ghép này cũng chính là các cặp đối tượng cần tìm. Định lí 1: Loại bỏ khỏi G những cạnh trọng số lớn hơn 0. Nếu những cạnh có trọng số 0 còn lại tạo ra bộ ghép k cạnh trong G thì đây là bộ ghép cần tìm. Định lí 2: Với đỉnh x[i], nếu ta cộng thêm một số∆ (dương hay âm) vào tất cả những cạnh liên thuộc với x[i] (tương đương với việc cộng thêm ∆ vào tất cả các phần tử thuộc hàng i của ma trận C) thì không ảnh hưởng tới bộ ghép đầy đủ có trọng số nhỏ nhất. Như vậy, ta thấy ý tưởng của thuật toán là: Từ đồ thị G, ta tìm chiến lược cộng hoặc trừ một cách hợp lí trọng số của các cạnh liên thuộc với từng đỉnh để được một đồ thị mới mà có các cạnh trọng số không âm, và các cạnh trọng số 0 của đồ thị mới đó chứa một bộ ghép đầy đủ k cạnh [7]. Cuối cùng, chúng tôi thực hiện định dạng lại file theo mẫu phù hợp. Phần tiếp theo, chúng tôi trình bày một số đánh giá từ một số bộ dữ liệu đầu vào khi thử nghiệm hệ thống. 2.3. Thử nghiệm Hình 1. Cặp ontology t1.owl và t2.owl được xây dựng trên Protégé Chúng tôi đã xây dựng hệ thống thử nghiệm để thực hiện gióng hàng các ontology với các cặp ontology được biểu diễn bởi ngôn ngữ OWL-DL sử dụng hệ soạn thảo Protégé. Hệ thống viết bằng ngôn ngữ lập trình java soạn thảo trên NetBean và có sử dụng một số thư viện như: jena api (hỗ trợ tạo đồ thị rdf), simmetrics (gói thư viện hỗ trợ tính toán độ tương tự một số độ do thường gặp như: LEVENSHTEIN, Q-GRAM và JARO-WINKLER). kĩ thuật sử dụng là gióng hàng cho các ontology sử dụng ngôn ngữ mô tả OWL-DL. Hệ thống cho phép người dùng chọn hai OWL-DL ontology khác nhau nhưng có cùng chủ đề. Cụ thể, chúng tôi sử dụng hai file biểu diễn hai ontology về chủ đề du lịch: t1.owl và t2.owl. Sau đó, chúng tôi chọn giá trị ngưỡng cho độ tương tự tính được. Khi được kích hoạt chức năng “Alignment”, hệ thống sẽ tiến hành tính độ tương tự của các cặp đối tượng cùng kiểu trong 34 Một phương pháp gióng hàng Ontology trong OWL-DL hai ontology và xuất ra một file RDF (cho phép mở và hiệu chỉnh trên hệ soạn thảo Protégé) gồm các cặp đối tượng của hai ontology với độ tương tự tương ứng đạt giá trị ngưỡng có cấu trúc sau: thay vì Hình 2.Mẫu file kết quả sinh bởi ODA Hình 3. Mẫu file kết quả sinh bởi OLA Dễ thấy, nội dung chính của file là phần mô tả các bộ 3 RDF gồm: subject có thể là lớp, cá thể, thuộc tính; predicate là subClassOf (với subject là lớp), là subPropertyOf (với subject là thuộc tính) và là sameAs (với subject là cá thể); và object có thể là lớp (với subject là lớp), là cá thể (với subject là cá thể) và là thuộc tính (với subject là thuộc tính). Cách mô tả này dễ hiểu với người dùng, việc hiệu chỉnh còn đảm bảo phù hợp với các công cụ trợ giúp tạo ontology mới từ hai ontology ban đầu. Kèm theo với mỗi bộ 3 là thuộc tính kiểu dữ liệu float có giá trị là độ tương tự của cặp đối tượng được xét. Sau đây là một mẫu minh họa: 0.9800000190734863 <rdf:subject rdf:resource = ""/> <rdf:object rdf:resource = ""/> Đoạn mã trên mô tả lớp has_Rating ở travel2.owl là thuộc tính con của lớp has_Rating ở travel1.owl với độ chính xác đạt 0.9800000190734863. Nếu muốn chỉ ra hai lớp đó tương đương với độ chính xác 0.9800000190734863 thì ta chỉ cần bổ sung đoạn mã mô tả lớp has_Rating ở travel1.owl là thuộc tính con của lớp has_Rating ở travel2.owl với độ chính xác