Trong khuôn khổ bài luận văn này, OWL DL sẽ đƣợc sử dụng nhiều trong quá trình sử dụng về mặt lý thuyết cũng nhƣ ứng dụng. Vậy nên, OWL DL sẽ đƣợc nói đến sâu hơn trong phần này.
Ngôn ngữ OWL DL cho phép định nghĩa các ontology, giúp xây dựng bộ từ vựng cho Web ngữ nghĩa, hỗ trợ chú thích ngữ nghĩa cho tài nguyên Web.
Các mô tả thuộc tính đối tƣợng OWL:
Cú pháp trừu tƣợng Cú pháp DL Ngữ nghĩa
ObjectProperty(R) R RI I I
ObjectProperty(S inverseOf(R)) R- (R-)I I I Bảng 2.1 - Bảng mô tả thuộc tính đối tƣợng OWL
Các mô tả thuộc tính lớp OWL:
Cú pháp trừu tƣợng Cú pháp DL Ngữ nghĩa Class(A) Class(owl:Thing) Class(owl:Nothing) A Т AI I Т I =I I = intersectionOf(C1, C2, ...) C1C2 (C1C2)I = C1 I C2 I unionOf(C1, C2, ...) C1C2 (C1C2)I = C1 I C2 I complementOf(C) C (C)I = I \ C I oneOf(o1, o2, ...) {o1}{o2} ({o1}{o2})I = {o1 I , o2 I } restriction(R someValuesFrom(C)) restriction(R allValuesFrom(C)) restriction(R hasValue({o})) restriction(R R.C R.C R.{o} mR mR {xI | y.<x,y> RI yCI} {xI |y.<x,y> RI yCI} (R.{o})I=(xI | <x, oI>RI) {xI |(# y.<x,y> RI) m}
minCardinality(m)) restriction(R
maxCardinality(m))
{xI
|(# y.<x,y> RI) m}
Bảng 2.2 - Bảng mô tả thuộc tính lớp OWL
Các tiên đề và các sự kiện của OWL:
Cú pháp trừu tƣợng Cú pháp DL Ngữ nghĩa Class(A partial C1 ... Cn) A C1...Cn AI C1I ... Cn I Class(A complete C1 ... Cn) A C1...Cn AI = C1I ... Cn I EnumeratedClass(A o1 ... on) A {o1}...{o}n AI = {o1I, ..., on I} SubClassOf(C1,C2) C1 C2 C1I C2I EquivalentClasses(C1...Cn) C1...Cn C1I = ... = CnI DisjointClasses(C1 ...Cn) CiCj, (1i<jn) CiI CjI = (1i<jn) SubPropertyOf(R1, R2) R1 R2 R1 I R2 I EquivalentProperties(R1... Rn) R1...Rn R1 I = ... = Rn I ObjectProperty(R super(R1)...super(Rn) domain(C1)... domain(Ck) range(C1) ... range(Ch) [Symmetric] [Functional] [InverseFunctional] [Transitive]) R Ri 1R Ci ТR.Ci RR- Func(R) Func(R-) Trans(R) RI RiI RI CiI I RI I Ci I RI =(R-)I {<x,y>|(# y.<x,y> RI)1} {<x,y>|(# y.<x,y>(R- )I)1} RI =(R I)+ AnnotationPropety(R)
Individual(o type(C1) ... type(Cn) value(R1,o1)... value(Rn,on)) o:Ci, 1 i n <o,oi>:Ri, 1 i n OICi I , 1 i n <oI,oi I >Ri I , 1 i n SameIndividual(o1 ...on) o1 = ... = on o1 I = ... = on I
DifferentIndividuals(o1 ...on) oioj, 1i<jn oiIojI, 1i<jn Bảng 2.3 - Bảng tiên đề và các sự kiện của OWL
Một phần của ontology "ThuVien" trong cú pháp trừu tƣợng OWL: Namespace(elp=<http://example.org/Libary#>)
Class(elp:Sach) Class(elp:Nguoi)
Class(elp:TacGia partial exp:Nguoi)
Class(elp:NguyenDuy partial exp:TacGia ) Class(elp:HoChiMinh partial exp:TacGia ) Class(elp:PhanThiTuoi partial exp:TacGia ) ObjectProperty(elp:viet)
Class(elp:TacGia Complete elp: Nguoi
restriction(elp:viet allValuesFrom( unionOf (elp:Sach)))) Class(elp: < ProgrammingTheSemanticWeb partial exp:Sach) Individual(elp: < ProgrammingTheSemanticWeb
type(elp:TobySegaran) value(elp:viet)) )
CHƢƠNG 3. TÍCH HỢP ONTOLOGY 3.1. Đặt vấn đề
Nhƣ đã nói ở trên, để con ngƣời và máy móc có thể giao tiếp đƣợc với nhau, thì cần một sự thống nhất chung về các khái niệm. Đó là các khái niệm đƣợc định nghĩa trong các ontology. Tuy nhiên, ngày càng có nhiều tổ chức, cá nhân xây dựng các ontology cho chính các ứng dụng riêng rẽ của họ. Số lƣợng ontology ngày càng nhiều tạo nên sự phong phú về ngữ nghĩa nhƣng cũng mang lại những khó khăn nhất định. Mặc dù các ontology đƣợc phát triển cho các ứng dụng khác nhau nhƣng nó thƣờng trùng lặp về thông tin và không dễ dàng để có thể kết hợp các ontology này vào một ứng dụng mới. Hơn thế nữa, những ngƣời sử dụng ontology hay bản thân các nhà xây dựng ontology lại không chỉ sử dụng ontology của chính họ mà còn muốn mở rộng hay tích hợp các ontology từ nhiều nguồn khác nhau. Việc tích hợp ontology cho phép tìm ra những thông tin hay quan hệ giữa các nguồn tài nguyên dựa trên những ontology đã có.
Ví dụ 1: trƣờng hợp đơn giản, hai ontology miêu tả hai quan hệ khác nhau nhƣng cùng dựa trên một tài nguyên thông tin và cùng sử dụng những định danh nhƣ nhau:
Hình 3.1 - Ví dụ một về tích hợp ontology
Ví dụ 2: Cùng sử dụng nguồn tài nguyên nhƣ nhau trong những ontology khác nhau, nhƣng hƣớng tới những định danh khác nhau:
Hình 3.2 - Ví dụ hai về tích hợp ontology
3.2. Các bƣớc tích hợp ontology
Hình 3.3 - Các bƣớc tích hợp ontology -Thông tin đầu vào:
Hai ontology cần tích hợp là ontology O1 và O2. Mỗi ontology có các cá thể, các lớp, các thuộc tính và các mối quan hệ tƣơng ứng. Trong phạm vi luận văn này, cả hai ontology cần tích hợp đều đƣợc xây dựng trên cùng một ngôn ngữ là OWL.
-Kết quả đầu ra:
Ontology kết quả của quá trình tích hợp hai ontology O1 và O2 là ontology O3.
-Phƣơng pháp tích hợp: Để tích hợp hai ontology đƣợc cần làm hai bƣớc nhƣ sau:
Bƣớc 1- Ánh xạ ontology: Ở bƣớc này, sau khi so khớp hai ontology ban đầu sẽ thu đƣợc một ontology ánh xạ.
Bƣớc 2- Tích hợp ontology: Với ontology ánh xạ thu đƣợc ở bƣớc 1, kết hợp với hai ontology ban đầu thu đƣợc ontology O3. Đây chính là kết quả tích hợp mà ta mong muốn.
3.3. Ánh xạ ontology
3.3.1. Khái niệm ánh xạ
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