Thay vì trực tiếp kiểm tra tính bao hàm của những khái niệm mô tả, những thuật toán sử dụng phép phủ định để chuyển thuật toán kiểm tra bao hàm (subsumption) thành thuật toán thoả hoặc không thoả (satisfiability or unsatisfiability) của những khái niệm mô tả. Thuật toán này có tên là Tableu- Based Satisfiability. Chức năng thuật toán này có thể thấy qua ví dụ sau:
Ví dụ: Giả sử rằng chúng ta muốn kiểm tra khái niệm ( R.A) ( R.B) có được bao hàm bởi khái niệm R.(A B). Điều này có nghĩa là chúng ta
- 38 -
dùng thuật toán thoả để kiểm tra khái niệm: C = ( R.A) ( R.B) ( R.(A B)) là không thoả.
Trước khi đi vào chi tiết thuật toán ta có một số khái niệm sau:
Định nghĩa 2.2: Dạng chuẩn phủ định (Negative Normal Form NNF):
Dạng chuẩn phủ định là dạng mà toán tử phủ định chỉ xảy ra trước những khái niệm tên (những khái niệm nguyên tử). Trong ngôn ngữ ALC các khái niệm có thể chuyển về một dạng NNF tương đương bằng cách sử dụng các công thức sau: (C1 C2) C1 C2 (C1 C2) C1 C2 R.C R. C R.C R. C C C Hệ ràng buộc:
Nếu cho một thể hiện I của một lĩnh vực chứa phần tử a, chúng ta có a ( R.C)I ngữ nghĩa cho chúng ta biết rằng phải có phần tử b để (a,b) RI và b CI. Từ đó chúng ta quan niệm rằng nếu có phần tử x thuộc khái niệm R.C được biểu diễn x: R.C phải có phần tử y sao cho x và y có quan hệ R được viết xRy và y thuộc thể hiện của C được viết y:C.
Giả sử rằng chúng ta muốn xây dựng một thể hiện tổng quát S để cho tập tương ứng với khái niệm R.C chứa ít nhất một phần tử, ta có thể phát biểu yêu cầu này như một ràng buộc của x: R.C. Theo ngữ nghĩa, ta biết rằng S phải chứa một phần tử y để xRy và y:C và do đó ta có thể thêm một ràng buộc mới vào S. Chúng ta cũng biết rằng nếu S thoả được với những ràng
- 39 -
buộc mới này thì nó cũng thoả được với ràng buộc ban đầu. Điều này dẫn đến các luật chuyển đổi mà chúng ta sẽ được tìm hiểu sau đây.
Một ràng buộc là một thực thể có một trong những cấu trúc sau: x:C : Ràng buộc khái niệm
xRy : Ràng buộc quan hệ
x y : Ràng buộc của những phần tử khác nhau. Một tập hợp các ràng buộc thì được gọi là hệ ràng buộc Những luật chuyển đổi của thuật toán thoả:
Luật
Nếu hệ ràng buộc S chứa ràng buộc x:(C D) và S không chứa x:C, x:D thì luật sẽ sinh ra một ràng buộc mới S’ = S {x:C, x:D} hay S {x:C, x:D} S.
Luật
Nếu hệ ràng buộc S chứa ràng buộc x:(C D) và S không chứa x:C, x:D thì luật sẽ sinh ra một ràng buộc mới S’ = S {x:C} hoặc S’’= S {x:D} hay S {x:C} S hoặc S {x:D} S .
Luật
Nếu hệ ràng buộc S chứa ràng buộc x: R.C và không có một phần tử y mới nào để y:C và xRy thuộc S, luật sinh một ràng buộc mới S {y:C, xRy}
S, trong đó y là tên những cá thể không xảy ra trong S.
Luật
Nếu hệ ràng buộc S chứa ràng buộc x: R.C và xRy nhưng không chứa y:C thì luật sinh một ràng buộc mới S {y:C} S.
- 40 -
Luật
Nếu hệ ràng buộc S chứa ràng buộc ( nR)(x) và không chứa các tên cá thể z1 ... zn để mà xRzi (1 i n) và zi zj (1 i j n) thuộc S thì luật sinh ra ràng buộc mới S {xRzi (1 i n)} {zi zj (1 i j n)} S. Trong đó z1... zn là những tên cá thể khác nhau và không xảy trong S.
Luật
Nếu hệ ràng buộc S chứa các tên cá thể khác nhau z1 ... zn+1 sao cho ràng buộc ( nR)(x) và xRzi (1 i n+1) và zi zj (i j) không chứa trong S thì luật sinh ra ràng buộc mới S bằng cách thay thế mỗi sự xuất hiện của zi
trong S bằng zj .
Chúng ta thấy các luật và luật là những luật không đơn định, vì thế ta có thể áp dụng những luật này theo những cách khác nhau để có những hệ ràng buộc mới. Tất cả các luật còn lại được gọi là luật đơn định. Hơn thế nữa ta gọi các luật và luật là những luật sinh, từ những luật này sinh ra những biến mới trong hệ ràng buộc.
Khi đi xây dựng hệ ràng buộc chúng ta có thể tìm kiếm những mâu thuẫn để chỉ ra rằng hệ ràng buộc là không thoả và những mâu thuẩn đó được gọi là clash. Một hệ clash chứa một trong những dạng sau:
. x, x:
. x, C mà {x:C và x: C}
. {x:( nR)} {xP1y1, ..., xPkyi| i 1.. n+1} {yi yj | i,j 1 .. n+1, i j}, với R = P1 ... Pk.
. a, n > m mà {a:( nR), a:( mR)}
- 41 -
Bắt đầu với hệ ràng buộc S ={x:C}, sau đó áp dụng những luật chuyển đổi được giới thiệu ở trên cho đến khi tất cả các ràng buộc thoả hoặc một mâu thuẩn xảy ra được xác định, nghĩa là thuật toán sẽ cho kết luận là không thoả nếu tất cả các hệ ràng buộc có chứa mâu thuẫn (clash) ngoài ra nếu hệ ràng buộc không còn luật nào được áp dụng nữa và không chứa clash thì thuật toán sẽ cho kết luận là thoả.
Bổ đề 1 (Tính đúng đắn)
Giả sử hệ ràng buộc S’ thu được từ tập hữu hạn các ràng buộc S bằng việc áp dụng các luật chuyển đổi thì ta có: nếu S’ thoả được thì S cũng thoả được.
Bổ đề 2 (Tính dừng)
Đối với ngôn ngữ DL ALCN quá trình áp dụng các luật chuyển đổi sẽ kết thúc sau một số hữu hạn bước.
Ví dụ áp dung thuật toán để xét tính thoả được của khái niệm sau: (( hasChild.Male) ( hasChild. Male))
Thuật toán sẽ thực hiện như sau:
xét x: (( hasChild.Male) ( hasChild. Male)) Trước tiên áp dụng luật ta được:
x: ( hasChild.Male)
x: ( hasChild. Male)
Sau đó áp dụng luật cho x: ( hasChild. Male) ta được x hasChild y
- 42 -
Áp dụng luật cho x: ( hasChild.Male) ta được y:Male
Trong hệ ràng buộc mới thu được sau khi không còn luật nào cần chuyển đổi ta thấy xuất hiện mâu thuẫn y: Male và y:Male do đó kết luận là clash hay không thoả.
Trong Chương 4, ta sẽ thực hiện cài đặt thuật toán lập luận được ứng dụng trong quá trình lập luận của logic mô tả. Thuật toán lập luận này được xem là nền tảng để xây dựng những thuật toán lập luận sau này cho những ngôn ngữ DL mở rộng.
Chương 3
Logic mô tả cho web ngữ nghĩa
Trong các chương trước, ta đã được biết về logic mô tả và các dịch vụ suy diễn cũng như các thuật toán lập luận được giới thiệu để xây dựng những hệ thống thông tin “thông minh”. Trong chương này, ta sẽ tiếp xúc với một ứng dụng được xem là mới nhất của logic mô tả, đó là áp dụng logic mô tả cho Web ngữ nghĩa. Đây là một lĩnh vực còn khá mới và rộng lớn. Trong phạm vi một chương của luận văn tốt nghiệp cao học, người viết muốn đề cập đến phần tổng quát về ứng dụng này. Trong chương này, ta sẽ nói về Web ngữ nghĩa (semantic web), mối liên hệ giữa web ngữ nghĩa với DL, những
- 43 -
ngôn ngữ cho web ngữ nghĩa dựa trên nền tảng DL và cuối cùng là ví dụ điển hình ứng dụng của DL trong web ngữ nghĩa để thiết kế web phục vụ mục đích giáo dục.
3.1 Logic mô tả và web ngữ nghĩa