Chuyển đổi các phần tử của RDFS và OWL thành các luật suy diễn

Một phần của tài liệu Luan van KHMT Ứng dụng Ontology trong việc chẩn đoán một số bệnh thường gặp (Trang 40 - 44)

5. Nội dung của đề tài, các vấn đề cần giải quyết:

2.2.1. Chuyển đổi các phần tử của RDFS và OWL thành các luật suy diễn

diễn

Ngữ nghĩa của cấu trúc RDFS và OWL cần phải được chuyển đổi thành các luật suy diễn theo dạng mà hệ thống có thể thực hiện truy vấn và suy diễn dựa trên những khái niệm trong cơ sở tri thức.

2.2.1.1. Chuyển đổi phần tử của RDFS

Theo F.B. Nardon [3], có thể chuyển đổi các phần tử của RDFS thành các luật

suy diễn như sau:

1. rdfs: subClassOf chuyển thành

Luật: stm(x, 'rdfs:subClassOf', y) :-

stm(x, 'rdfs:subClassOf', z), stm(z, 'rdfs:subClassOf', y).

Luật: stm(x, y, z) :- stm(x, y, w), stm(w, 'rdfs:subClassOf', z).

2. rdfs:subPropertyOf chuyển thành

Luật: stm(x, 'rdfs:subPropertyOf', y) :-

stm(x, 'rdfs:subPropertyOf', z), stm(z, 'rdfs:subPropertyOf', y).

Luật: stm(x, y, z) :- stm(x, w, z), stm(w, 'rdfs:subPropertyOf', y).

Luật: stm(x, 'rdfs:subClassOf', 'rdfs:Resource') :- stm(x, 'rdf:type', 'rdfs:Class').

Sự kiện: stm('rdfs:Resource', 'rdf:type', 'rdfs:Class').

4. rdfs:Literal chuyển thành

Sự kiện: stm('rdfs:Literal', 'rdf:type', 'rdfs:Class').

Sự kiện: stm('rdfs:Literal', 'rdfs:subClassOf', 'rdfs:Resource').

5. rdfs:Datatype chuyển thành luật

stm(x, 'rdfs:subClassOf', 'rdfs:Literal') :- stm(x, 'rdf:type', 'rdfs:Datatype').

6. rdf:XMLLiteral chuyển thành

Sự kiện: stm('rdf:XMLLiteral', 'rdfs:subClassOf', 'rdfs:Literal').

Sự kiện: stm('rdf:XMLLiteral', 'rdf:type', 'rdfs:Datatype').

7. rdfs:range chuyển thành luật ràng buộc toàn vẹn

rangeViolation(x, y, z) :-

stm(x, y, z), stm(y, 'rds:range', w), not stm(z, 'rdf:type', w).

Nếu phạm vi của thuộc tính y là w, và nếu có một khẳng định nói rằng một tài nguyên z không thuộc loại w, thì ràng buộc bị vi phạm.

8. rdfs:domain chuyển thành luật ràng buộc toàn vẹn

domainViolation(x, y, z) :-

stm(x, y, z), stm(y, 'rds:domain', w), not stm(x, 'rdf:type', w).

9. rdfs:Container chuyển thành

Sự kiện: stm('rdf:Bag', 'rdfs:subClassOf', 'rdfs:Container').

Sự kiện: stm('rdf:Seq', 'rdfs:subClassOf', 'rdfs:Container').

Sự kiện: stm('rdf:Alt', 'rdfs:subClassOf', 'rdfs:Container').

10. rdf:member chuyển thành

Sự kiện: stm('rdf:member', 'rdf:type', 'rdf:Property').

Luật: stm(x, 'rdfs:subPropertyOf', 'rdf:member') :-

11. rdf:Statement chuyển thành sự kiện

stm('rdf:Statement', 'rdf:type', 'rdfs:Class').

12. rdf:subject chuyển thành sự kiện

stm('rdf:subject', 'rdf:type', 'rdf:Property').

13. rdf:object chuyển thành sự kiện

stm('rdf:object', 'rdf:type', 'rdf:Property').

14. rdf:predicate chuyển thành sự kiện

stm('rdf:predicate', 'rdf:type', 'rdf:Property').

15. rdfs:seeAlso chuyển thành sự kiện

stm('rdfs:seeAlso', 'rdf:type', 'rdf:Property').

16. rdfs:isDefinedBy chuyển thành sự kiện

stm('rdfs:isDefinedBy', 'rdf:type', 'rdf:Property').

17. rdf:value chuyển thành sự kiện

stm('rdf:value', 'rdf:type', 'rdf:Property'). 2.2.1.2. Chuyển đổi phần tử của OWL

Chuyển đổi các phần tử của OWL là chuyển đổi các khái niệm được biểu diễn trong một logic mô tả thành các khái niệm được biểu diễn trong các

chương trình logic. Theo F.B. Nardon [3], có thể chuyển đổi các phần tử của

OWL thành các luật suy diễn như sau: 1. unionOf chuyển thành luật

stm(x, 'rdf:type', d) :- stm(x, 'rdf:type', f1) ; ... ; stm(x, 'rdf:type', fn).

Với x là một tài nguyên, d là lớp mà được định nghĩa bởi unionOf, và mỗi fi là một lớp mà tham gia vào phép hợp.

2. intersectionOf chuyển thành luật

stm(x,‘rdf:type', d) :- stm(x, 'rdf:type', f1) , ... , stm(x, 'rdf:type', fn).

Với x là một tài nguyên, d là lớp mà được định nghĩa bởi intersectionOf, và mỗi fi là một lớp mà tham gia vào phép giao.

3. complementOf chuyển thành luật

stm(x, 'rdf:type', d) :- stm(x, 'rdf:type', f1), not stm(x, 'rdf:type', f2).

Với f1, f2, d là các lớp mà f1 = d ∪ f 2 và d ∩ f2 ≠∅.

4. oneOf chuyển thành một tập hợp các sự kiện theo dạng tổng quát sau

stm(d, 'rdf:type', f).

Với d là một thể hiện của của f, và f là lớp tài nguyên. 5. TransitiveProperty chuyển thành luật

stm(x, y, z) :- stm(x, y, w),

stm(y, 'rdf:type', 'daml:TransitiveProperty'), stm(w, y, z).

6. UnambiguousProperty chuyển thành luật

stm(x, 'daml:sameIndividualAs', z) :- stm(x, y, w),

stm(y, 'rdf:type', 'daml:UnambiguosProperty'), stm(z, y, w).

7. sameClassAs chuyển thành luật

stm(x, w, y) :- stm(x, w, z), stm(z, 'daml:sameClassAs', y). stm(x, w, y) :- stm(z, w, y), stm(z, 'daml:sameClassAs', x). stm(x, 'daml:sameClassAs', z) :- stm(z, 'daml:sameClassAs', x).

8. subClassOf chuyển thành sự kiện

stm('daml:subClassOf', 'daml:sameClassAs', 'rdfs:subClassOf').

9. subPropertyOf chuyển thành sự kiện

stm('daml:subPropertyOf', 'daml:sameClassAs', 'rdfs:subPropertyOf').

10. samePropertyOf chuyển thành luật

stm(x, y, z) :- stm(x, w, z), stm(w, 'daml:samPropertyOf', y).

disjointWithViolation(x) :-

stm(x, 'rdf:type', y), stm(x, 'rdf:type', z), stm(y, 'daml:disjointWith', z).

12. sameIndividualAs chuyển thành luật

stm(x, y, z) :- stm(x, y, w), stm(z, 'daml:sameIndividualAs', w). stm(x, y, z) :- stm(w, y, z), stm(w, 'daml:sameIndividualAs', x). stm(x, 'daml:sameIndividualAs', y) :-

stm(y, 'daml:sameIndividualAs', x).

13. inverseOf chuyển thành luật

stm(x, y, z) :- stm(y, 'daml:inverseOf', w), stm(z, w, x).

Một phần của tài liệu Luan van KHMT Ứng dụng Ontology trong việc chẩn đoán một số bệnh thường gặp (Trang 40 - 44)

w