Class KRSSObjectRenderer

java.lang.Object
org.semanticweb.owlapi.krss2.renderer.KRSSObjectRenderer
All Implemented Interfaces:
OWLAnnotationAxiomVisitor, OWLAnnotationObjectVisitor, OWLAnnotationValueVisitor, OWLAnonymousIndividualVisitorBase, OWLAxiomVisitor, OWLClassExpressionVisitor, OWLClassVisitorBase, OWLDataEntityVisitorBase, OWLDataRangeVisitor, OWLDataVisitor, OWLEntityVisitor, OWLIndividualEntityVisitorBase, OWLIndividualVisitor, OWLLiteralVisitorBase, OWLLogicalAxiomVisitor, OWLNamedObjectVisitor, OWLObjectVisitor, OWLPropertyEntityVisitorBase, OWLPropertyExpressionVisitor, OWLVisitorBase, SWRLObjectVisitor, SWRLRuleVisitorBase
Direct Known Subclasses:
KRSS2ObjectRenderer, KRSS2OWLObjectRenderer

public class KRSSObjectRenderer extends Object implements OWLObjectVisitor
A KRSSObjectRenderer renders an OWLOntology in the original KRSS syntax. Note that only a subset of OWL can be expressed in KRSS.
Abbreviations
Abbreviations
CN concept name
C,D,E concept expression
RN role name
R, R1, R2,... role expressions, i.e. role name or inverse role

KRSS concept language
KRSS concept language
KRSS OWLClassExpression
(at-least n R C) (OWLObjectMinCardinality R n C)
(at-most n R C) (OWLObjectMaxCardinality R n C)
(exactly n R C) (OWLObjectExactCardinality R n C)
(some R C) (OWLObjectSomeValuesFrom R C)
(all R C) (OWLObjectAllValuesFrom R C)
(not C) (OWLObjectComplementOf C)
(and C D E) (OWLObjectIntersectionOf C D E)
(or C D E) (OWLObjectUnionOf C D E)

KRSS role language
KRSS role language
KRSS OWLObjectPropertyExpression
(inv R) (OWLInverseObjectPropertiesAxiom R)

Each referenced class, object property as well as individual is defined using define-concept resp. define-primitive-concept, define-role and define-individual. In addition, axioms are translated as follows.
Remarks
OWLAxiom KRSS syntax Remarks
OWLEquivalentClasses (define-concept C D) OWLEquivalentClasses C D1 D2...Dn will be translated to:
(define-concept C (and D1 D2...Dn))
Only applicable if there is no OWLSubClassOf axiom.
OWLDisjointClassesAxiom (disjoint C D) multiple pairwise disjoint statements are added in case of more than 2 disjoint expressions
OWLSubClassOf (define-primitive-concept C D) Multiple OWLSubClassOf axioms for C will be combined:
(define-primitive-concept C (and D1...Dn))
Only applicable if there is no OWLEquivalentClasses axiom.
KRSS does not allow both define-concept C and define-primitive-concept C. GCIs not supported in KRSS (see KRSS2)
OWLEquivalentObjectPropertiesAxiom (define-role R S) Only applicable if the is no OWLSubObjectPropertyOf for R and the number of the involved properties must be two
OWLObjectPropertyDomainAxiom (domain P D)
OWLObjectPropertyRangeAxiom (range P D)
OWLSubObjectPropertyOf (define-primitive-role R S) Only applicable if the is no OWLEquivalentObjectPropertiesAxiom for R and only one OWLSubObjectPropertyOf axiom for a given property is allowed. If there are more one is randomly chosen.
OWLTransitiveObjectPropertyAxiom (transitive P)
OWLClassAssertionAxiom (instance i D)
OWLDifferentIndividualsAxiom (distinct i1 i2) OWLDifferentIndividualsAxiom i1 i2 ... in will be split into:
{ (distinct i(j) i(j+k)) | 1 <= j <=n, j<k<=n, j=|=k}
OWLObjectPropertyAssertionAxiom (related i1 P i2) i1: subject, i2: object
OWLSameIndividualsAxiom (equal i1 i2) OWLSameIndividual i1 i2 ...i(n-1) in will be split into:
{ (equal i(j) i(j+k)) | 1 <= j <=n, j<k<=n, j=|=k}
Author:
Olaf Noppens, Ulm University, Institute of Artificial Intelligence