RuleML2015: User Extensible System to Identify Problems in OWL Ontologies and SWRL Rules
Transcript of RuleML2015: User Extensible System to Identify Problems in OWL Ontologies and SWRL Rules
User Extensible System to
Identify Problems in OWL
Ontologies and SWRL RulesJoão Paulo Orlando
Mark A. Musen
Dilvan A. Moreira
1
Summary
Introduction
MetaFOR ontology and Converter
Case study
Conclusion and future works
2
The problem
Survey about systems that identify problems/patterns/anomalies
Found deficiencies:
Predefined patterns
Manually evaluation
Use of the not familiar languages
3
Proposed work
We created a system that helps in the evaluation scenario:
METAdata description For Ontologies/ Rules (MetaFOR)
Converter
The user can write SWRL rules to find patterns
4
Evaluation
Case study
Nine problems from the literature
Two user defined ones.
SWRL rules
5
MetaFOR ontology
Contains information about the analyzed ontology elements
Elements types:
Entities (classes, proprieties)
Entity relationships (inverse, disjoint, equivalent)
Data relationships (number of instances)
6
Converter
Java and OWLAPI
7
Converter
8
Case study
Family Relationships Ontology
6 problems from the literature
2 created scenarios
SWRL was created to identify the problems/patterns/anomalies
9
Case study
1 - Circular properties problem:
Two inverse properties
The same or equivalent domain
The same or equivalent range
10
Case study
1 - Circular properties problem:
In MetaFOR:
hasInverse(?p1, ?p2), hasDomain(?p1, ?d1), hasDomain(?p2, ?d2),
isEquivalent(?d1, ?d2), hasRange(?p1, ?r1), hasRange(?p2, ?r2),
isEquivalent(?r1, ?r2) ->
Circular_Properties(?p1), Circular_Properties(?p2)
In family ontology:
hasChild and hasParent (not a problem)
Add the atom: DifferentFrom(?d1, ?r1)
an important advantage of this system
11
Case study
2 - Contradicting rules:
Two rules
The same or equivalent antecedent atoms
Two of their consequent atoms are disjoint
In family ontology:
Add:
Person(?x), Woman(?y), hasChild(?x, ?y) -> hasSon(?x, ?y)
Contradicting with:
Person(?x), Woman(?y), hasChild(?x, ?y) -> hasDaughter(?x, ?y)
12
Case study
2 - Contradicting rules:
In MetaFOR:
sameAntecedents(?r1, ?r2),
hasConsequentAtom(?r1, ?c1),
hasConsequentAtom(?r2, ?c2),
hasPredicate(?c1, ?p1),
hasPredicate(?c2, ?p2),
isDisjoint(?p1, ?p2) ->
Contradicting_Rules(?r1)
13
Case study
2 - Contradicting rules:
14
Case study
3 - Partition error in taxonomy:
An incorrect combination of disjoint and derives relations happens
In family ontology:
Father is disjoint Mother
Added the class: FatherMother
In MetaFor
isDisjoint(?c1, ?c2), hasSub(?c1, ?cf),
hasSub(?c2, ?cf) ->
Partition_Error_in_Taxonomy(?cf)
15
Case study
4 - Incompatible rule antecedent
There is an incompatibility among antecedent atoms
In family ontology:
hasChild is disjoint of hasParent
Added the rule with:
hasChild(?a, ?b) is incompatible with hasParent(?a, ?b)
16
Case study
4 - Incompatible rule antecedent for properties
hasAntecedentAtom(?r, ?a1), hasAntecedentAtom(?r, ?a2),
hasPredicate(?a1, ?p1), hasPredicate(?a2, ?p2),
isDisjoint(?p1, ?p2),
hasFirstArgument(?a1, ?var1), hasFirstArgument(?a2, ?var1),
hasSecondArgument(?a1, ?var2), hasSecondArgument(?a2, ?var2)
->
Incompatible_Rule_Antecedent(?r)
17
Case study
5 - Self-contradicting rule
One atom is in the antecedent and the other in the consequent
In family ontology:
Added the rule with:
hasChild(?a, ?b) in antecedent and
hasParent(?a, ?b) in consequent
18
Case study
5 - Self-contradicting rule
hasAntecedentAtom(?r, ?a1), hasConsequentAtom(?r, ?a2),
hasPredicate(?a1, ?p1), hasPredicate(?a2, ?p2),
isDisjoint(?p1, ?p2),
hasFirstArgument(?a1, ?var1), hasFirstArgument(?a2, ?var1),
hasSecondArgument(?a1, ?var2), hasSecondArgument(?a2, ?var2)
->
Self_Contradicting_Rule(?r)
19
Case study
6 - Multiple functional properties
Functional properties can only have one value
The user can define a minimum or a maximum cardinality restriction that is
greater than 1
In FRO:
Added the functional object property hasMaritalStatus
Maximum cardinality restriction equal 2
20
Case study
6 - Multiple functional properties
FunctionalObjectProperty(?x), hasCardinality(?x, ?c),
MaxCardinality(?c),
hasCardinalityNumber(?c, 2) ->
Multiple_Functional_Properties(?x)
More generic:
Change:
hasCardinalityNumber(?c, ?cn), greaterThan(?cn, 2)
21
Case study
Two possible user scenarios - Useless Inheritance
Found an ontology for a domain
Evaluated, added all instances, created rules to classify
Analyzed the ontology and the inferences made
The user wanted:
Find classes/properties that are not used in instances or in restriction and that are in a
subclass or sub property cascade.
22
Case study
Two possible user scenarios - Useless Inheritance
hasDirectSuper(?a, ?b), hasDirectSuper(?b, ?c),
hasInstancesNumber(?b, 0), usedInRestrictions(?b, false) ->
ClassToEliminate(?b)
23
Case study
Two possible user scenarios - Class with low use
A user built and evaluated his own ontology, adding instances and creating
rules to classify instances in different classes
He wants to analyze the inference results
The user wants to know which classes have less than 7 instances
The classes that the user is interested in are subclasses of Classifications
24
Case study
Two possible user scenarios - Class with low use
hasDirectSuper(?x, URI1_Classifications),
hasInstancesNumber(?x, ?xn), lessThan(?xn, 7) ->
ClassToAnalyze(?x)
25
Conclusion
A technique to find problems that occur in ontologies and rules was created
This technique relies in an ontology that represents information (metadata)
about OWL ontologies
Once an ontology is in this new format, rules can be applied to it to find
problems or usage patterns
26
Conclusion
Advantages:
The use of OWL and SWRL, two popular languages among ontologists, to identify
patterns/problems in ontologies.
The fact that users can expand the system themselves creating new rules to
identify patterns they are interested in.
27
Future works
We have performed experiments in order to test this system using a set of
real world ontologies
such as the ones available at Bioportal
Another important direction will be to provide visualization for the reported
problems/patterns
so users can more easily find solutions to them.
28