forked from ontop/ontop
ObdalibDlliterTranslator
Martin Rezk edited this page Nov 29, 2013
·
7 revisions
Now we describe the translation from OWLAPI 2 objects into internal objects representing a DLLiteA ontology. Note that the following thing are different from DLLiteA ontologies as stated in the articles:
- Disjointness is handled natively, not as a subclass assertion
- Equivalence is handled natively.
- A subclass of (R some (R some (R some B))) is handled natively
- Attributes are supported, but typing is not yet available. For example, the attribute name is available, but one can't say its range is a string anywhere.
- Disjunction (Or) and Conjunction (And) on the left and right of subclass axioms is supported as syntactic sugar and encoded appropriately.
- Cardinality restrictions are supported as syntactic sugar only for the case of .
The following is the guideline for translating OWLAPI 2 concept and property descriptions into descriptions of our own API.
When translating any axiom of the OWL ontology, if its not possible to translated, the event should be logged as a WARNING.
Translations:
- OWLClass - translated as AtomicConceptDescription
-
OWLAnonymousDescription - see below
-
OWLBooleanDescription - see below
-
OWLNaryBooleanDescription - in general no translation. See the logical axioms section.
- OWLObjectIntersectionOf
- OWLObjectUnionOf
- OWLObjectComplementOf - translatable only when OWLDescription is a basic DLLiteA concept description
-
OWLNaryBooleanDescription - in general no translation. See the logical axioms section.
- OWLObjectOneOf - no translation
-
OWLRestriction - partial translation, see below
- OWLObjectSelfRestriction - no translation
-
OWLQuantifiedRestriction - partial translation, see below
-
OWLCardinalityRestriction - partial translation, see below
-
OWLDataCardinalityRestriction - partial translation, see below ******OWLDataExactCardinalityRestriction - no translation
- OWLDataMaxCardinalityRestriction - no translation
- OWLDataMinCardinalityRestriction - translated only in the case of U min 1 with no nested typing, e.g., U min 1 xsd:string has no translation
-
OWLObjectCardinalityRestriction - partial translation, see below
- OWLObjectExactCardinalityRestriction - no translation
- OWLObjectMaxCardinalityRestriction - no translation
- OWLObjectMinCardinalityRestriction - translated only in the case where R min 1 Thing as ExistentialConceptDescription, or in the case of R min 1 OWLDescription, then translated as QualifiedExistentialConceptDescription only if the OWLDescription can be translated into a general concept description excluding the negation (complement of).
-
OWLDataCardinalityRestriction - partial translation, see below ******OWLDataExactCardinalityRestriction - no translation
- OWLDataAllRestriction - no translation
- OWLDataSomeRestriction - no translation
- OWLObjectAllRestriction - no translation
- OWLObjectSomeRestriction - translated as ExistentialConceptDescription in the case of R some Thing. Translated as QualifiedExistentialConceptDescription in the case of R some OWLDescription and only if the OWLDescription can be translated into a general concept description excluding the negation (complement of).
-
OWLCardinalityRestriction - partial translation, see below
-
OWLValueRestriction - no translation
- OWLDataValueRestriction - no translation
- OWLObjectValueRestriction - no translation
-
OWLBooleanDescription - see below
The following is the guideline for the translation of OWLAPI 2 logical assertions into assertions in our own API.
-
OWLClassAxiom - handled with restrictions see below
- OWLDeprecatedClassAxiom - ignored
-
OWLNaryClassAxiom - handled with restrictions
- OWLDisjointClassesAxiom - handled when the classes are basic DLLiteA descriptions, else ignored. Translates into n instances of the DisjointAssertion class.
- OWLDisjointUnionAxiom - ignored
- OWLEquivalentClassesAxiom - handled when the classes are basic DLLiteA descriptions, else ignored. Translates into n instances of the EquivalentAssertion class.
-
OWLSubClassAxiom - handled when the subclass is a DLLiteA basic description and the superclass is a DLLiteA general concept description, else ignored. Translates into a subclass assertion. The following approximations should be taken into account:
- Number restrictions. Number restrictions are in general not supported except in the case were the restriction are:
- R min 1 Thing. Valid as subsumer or subsumed. This gets translated as ExistentialConceptDescription
- R min 1 OWLDescription Valid only as subsumer. This gets translated as QualifiedExistentialConceptDescription only if the OWLDescription can be translated into a general concept description.
- OWLObjectIntersectionOf is only allowed to appear as subsumer, in which case the assertion is split. Each of the conjuncts must be a valid general DLLiteA concept description. For example A subclassof B and D, get's translated into two assertions: A subclassof B and A subclassof D
- OWLUnionOf is only allowed to appear as subsumed, in which case the assertion is split. Each of the disjuncts must be a valid basic DLLiteA concept description. For example A or B subclassof D, get's translated into two assertions: A subclassof D and B subclassof D
- ComplementOf only allowed to appear as subsumer and when the OWLDescription is a basic DLLiteA concept description. Translated as a DisjointAxiom. For example A subclass of not (R some Thing) gets translated as Disjoint(A, exists R) (using our API).
- Number restrictions. Number restrictions are in general not supported except in the case were the restriction are:
-
OWLDataPropertyAxiom - handled with restriction
-
OWLDataPropertyCharacteristicAxiom - handled, see below
- OWLFunctionalDataPropertyAxiom - handled natively with a functionality assertion
- OWLDataPropertyDomainAxiom - handled when the domain is a DLLiteA basic description
- OWLDataPropertyRangeAxiom - ignored
- OWLDataSubPropertyAxiom- handled when the subproperty and the superproperty are basic DLLiteA role descriptions
- OWLDisjointDataPropertiesAxiom - handled when all the properties are basic DLLiteA role descriptions
- OWLEquivalentDataPropertiesAxiom - handled when all the properties are basic DLLiteA role descriptions
-
OWLDataPropertyCharacteristicAxiom - handled, see below
-
OWLIndividualAxiom - ignored
- OWLClassAssertionAxiom
-
OWLNaryIndividualAxiom
- OWLDifferentIndividualsAxiom
- OWLSameIndividualsAxiom
-
OWLPropertyAssertionAxiom
- OWLDataPropertyAssertionAxiom
- OWLNegativeDataPropertyAssertionAxiom
-
OWLPropertyAxiom - handled with restrictions
-
OWLNaryPropertyAxiom
- handled with restrictions
- OWLDisjointDataPropertiesAxiom - handled natively
- OWLDisjointObjectPropertiesAxiom - handled natively when the properties are handled when all the properties are basic DLLiteA role descriptions
- OWLEquivalentDataPropertiesAxiom - handled as if it was a double subproperty axiom (see subproperty axiom)
- OWLEquivalentObjectPropertiesAxiom - handled as if it was a double subproperty axiom (see subproperty axiom)
- OWLInverseObjectPropertiesAxiom - handled as two subproperty axioms
-
OWLObjectPropertyAxiom - handled with restrictions
- OWLDeprecatedObjectPropertyAxiom - ignored
- OWLDisjointObjectPropertiesAxiom- see above
- OWLEquivalentObjectPropertiesAxiom - see above
- OWLInverseObjectPropertiesAxiom - see above
- OWLObjectPropertyChainSubPropertyAxiom - ignored
-
OWLObjectPropertyCharacteristicAxiom - handled with restrictions
- OWLAntiSymmetricObjectPropertyAxiom - ignored (we need to review the current state of the definition)
- OWLFunctionalObjectPropertyAxiom - handled natively when the property description is a basic DLLiteA role description
- OWLInverseFunctionalObjectPropertyAxiom - as above
- OWLIrreflexiveObjectPropertyAxiom - ignored
- OWLReflexiveObjectPropertyAxiom - ignored
- OWLSymmetricObjectPropertyAxiom - handled natively when the property description is a basic DLLiteA role description
- OWLTransitiveObjectPropertyAxiom - ignored
- OWLObjectPropertyDomainAxiom - handled natively when the property description is a basic DLLiteA role description and the domain is a general DLLiteA concept description
- OWLObjectPropertyRangeAxiom - handled natively when the property description is a basic DLLiteA role description and the range is a general DLLiteA concept description
- OWLObjectSubPropertyAxiom - - handled natively when both property descriptions are basic DLLiteA role descriptions
-
OWLSubPropertyAxiom - handled with restrictions
- OWLDataSubPropertyAxiom - see above
- OWLObjectSubPropertyAxiom - see above
-
OWLUnaryPropertyAxiom - handled with restrictions
- OWLDataPropertyCharacteristicAxiom (see above)
- OWLObjectPropertyCharacteristicAxiom (see above)
-
OWLPropertyDomainAxiom - ignored
- OWLDataPropertyDomainAxiom (see above)
- OWLObjectPropertyDomainAxiom (see above)
-
OWLPropertyRangeAxiom - ignored
- OWLDataPropertyRangeAxiom (see above)
- OWLObjectPropertyRangeAxiom (see above)
-
OWLNaryPropertyAxiom
- SWRLRule - ignored