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.
10 trang |
Chia sẻ: thanhle95 | Lượt xem: 376 | Lượt tải: 1
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