de.uulm.ecs.ai.owlapi.krssrenderer
Class KRSS2ObjectRenderer

java.lang.Object
  extended by de.uulm.ecs.ai.owlapi.krssrenderer.KRSSObjectRenderer
      extended by de.uulm.ecs.ai.owlapi.krssrenderer.KRSS2ObjectRenderer
All Implemented Interfaces:
OWLAnnotationAxiomVisitor, OWLAnnotationObjectVisitor, OWLAnnotationValueVisitor, OWLAxiomVisitor, OWLClassExpressionVisitor, OWLDataRangeVisitor, OWLDataVisitor, OWLEntityVisitor, OWLIndividualVisitor, OWLObjectVisitor, OWLPropertyExpressionVisitor, SWRLObjectVisitor

public class KRSS2ObjectRenderer
extends KRSSObjectRenderer

KRSS2ObjectRenderer is an extension of KRSSObjectRenderer which uses the extended vocabulary.

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 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 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.

OWLAxiom KRSS syntax Remarks
OWLDisjointClassesAxiom (disjoint C D) OWLDisjointClasses C D1 D2 ... Dn will be translated to:
{ (disjoint i(j) i(j+k)) | 1 <= j <=n, j<k<=n, j=|=k}
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.

OWLSubClassOfAxiom (define-primitive-concept C D) OWLSubClassOfAxiom C D1...Dn (n>1) will be translated to:
(define-primitive-concept C (and D1...Dn))

Only applicable if there is no OWLEquivalentClasses axiom. In that case the class will be introduced via (define-concept...) and all subclass axioms are handled via implies

OWLSubClassOfAxiom (implies D C) Only in case of GCIs with concept expression (not named class) D, or in case that D is a non-primitive concept. Otherwise superclasses are introduced via (define-primitive-concept D ...)
OWLEquivalentObjectPropertiesAxiom (roles-equivalent r s) All roles are explicitly introduced via define-primitive-role.
OWLSubPropertyChainOfAxiom (role-inclusion (compose r s) t) Role inclusions of the kind (role-inclusion (compose r s) r) resp. (role-inclusion (compose s r) r) are handled within the (define-primitive-role) statement as right- resp. left-identities iff it is the only role-inclusion wrt. the super property.
OWLSubObjectPropertyAxiom (define-primitive-role R :parent S)

(define-primitive-role R :parents S T U)

Additional attributes:

  • :transitive t
  • :symmetric t
  • :reflexive t
  • :inverse I
  • :domain C resp. :domain (and C C1...Cn)
  • :range D resp. :range (and D D1..Dn)
This will be only used if there is no OWLEquivalentClasses axiom containing R (see define-role). The additional attributes are added if there is an OWLTransitiveObjectProperyAxiom, OWLSymmetricObjectPropertyAxiom, OWLReflexiveObjectPropertyAxiom, OWLObjectPropertyDomainAxiom, OWLObjectPropertyRangeAxiom resp. OWLInverseObjectPropertiesAxiom. If there are multiple OWLInverseObjectPropertiesAxioms only one inverse is handled here, all others are handled via (inverse) statements. Domains/ranges of multiple domain/range axioms are handled as (and C C1...Cn).
OWLSubObjectPropertyAxiom (implies-role r s) Only applicable if r is an inverse property, otherwise superproperties are handled within the define-primitive-role statement.
OWLInverseObjectPropertiesAxiom (inverse r s) Only inverse properties which are not introduced via define-primitive-role.
OWLObjectPropertyRangeAxiom see define-primitive-role
OWLObjectPropertyDomainAxiom see define-primitive-role
OWLSymmetricObjectPropertyAxiom see define-primitive-role
OWLTransitiveObjectPropertyAxiom see define-primitive-role
OWLReflexiveObjectPropertyAxiom see define-primitive-role
OWLClassAssertionAxiom (instance i D)
OWLDifferentIndividualsAxiom (distinct i1 i2) OWLDifferentIndividualsAxiom i1 i2 ... in will be splitted 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 in will be splitted into:
{ (equal i(j) i(j+k)) | 1 <= j <=n, j<k<=n, j=|=k}
(equal i1 i2)
(equal i1 i3)
...
(equal i(n-1) in)

Author: Olaf Noppens
Ulm University
Institute of Artificial Intelligence


Field Summary
protected  boolean ignoreDeclarations
          If declarations are ignored, entities which are only referenced in a declaration are not rendered.
 
Fields inherited from class de.uulm.ecs.ai.owlapi.krssrenderer.KRSSObjectRenderer
manager, ontology, writer
 
Constructor Summary
KRSS2ObjectRenderer(OWLOntologyManager manager, OWLOntology ontology, java.io.Writer writer)
           
 
Method Summary
protected  java.util.Set<OWLSubPropertyChainOfAxiom> getPropertyChainSubPropertyAxiomsFor(OWLPropertyExpression property)
           
protected  boolean isLeftIdentityAxiom(OWLSubPropertyChainOfAxiom axiom, OWLObjectProperty property)
           
protected  boolean isRightIdentityAxiom(OWLSubPropertyChainOfAxiom axiom, OWLObjectProperty property)
           
 void reset()
           
 void setIgnoreDeclarations(boolean ignoreDeclarations)
           
 void visit(OWLAsymmetricObjectPropertyAxiom axiom)
           
 void visit(OWLClass desc)
           
 void visit(OWLDataPropertyAssertionAxiom axiom)
           
 void visit(OWLDataPropertyDomainAxiom axiom)
           
 void visit(OWLDataPropertyRangeAxiom axiom)
           
 void visit(OWLDeclarationAxiom axiom)
           
 void visit(OWLDifferentIndividualsAxiom axiom)
           
 void visit(OWLDisjointClassesAxiom axiom)
           
 void visit(OWLDisjointDataPropertiesAxiom axiom)
           
 void visit(OWLDisjointObjectPropertiesAxiom axiom)
           
 void visit(OWLDisjointUnionAxiom axiom)
           
 void visit(OWLEquivalentClassesAxiom axiom)
           
 void visit(OWLEquivalentDataPropertiesAxiom axiom)
           
 void visit(OWLEquivalentObjectPropertiesAxiom axiom)
           
 void visit(OWLFunctionalDataPropertyAxiom axiom)
           
 void visit(OWLFunctionalObjectPropertyAxiom axiom)
           
 void visit(OWLImportsDeclaration axiom)
           
 void visit(OWLInverseFunctionalObjectPropertyAxiom axiom)
           
 void visit(OWLInverseObjectPropertiesAxiom axiom)
           
 void visit(OWLIrreflexiveObjectPropertyAxiom axiom)
           
 void visit(OWLNegativeDataPropertyAssertionAxiom axiom)
           
 void visit(OWLNegativeObjectPropertyAssertionAxiom axiom)
           
 void visit(OWLObjectInverseOf property)
           
 void visit(OWLObjectOneOf desc)
           
 void visit(OWLObjectProperty property)
           
 void visit(OWLObjectPropertyAssertionAxiom axiom)
           
 void visit(OWLObjectPropertyDomainAxiom axiom)
           
 void visit(OWLObjectPropertyRangeAxiom axiom)
           
 void visit(OWLOntology ontology)
           
 void visit(OWLReflexiveObjectPropertyAxiom axiom)
           
 void visit(OWLSubClassOfAxiom axiom)
           
 void visit(OWLSubDataPropertyOfAxiom axiom)
           
 void visit(OWLSubObjectPropertyOfAxiom axiom)
           
 void visit(OWLSubPropertyChainOfAxiom axiom)
           
 void visit(OWLSymmetricObjectPropertyAxiom axiom)
           
 void visit(OWLTransitiveObjectPropertyAxiom axiom)
           
protected  void write(KRSS2Vocabulary v)
           
protected  void writeChain(java.util.List<OWLObjectPropertyExpression> expressions, int i)
           
 
Methods inherited from class de.uulm.ecs.ai.owlapi.krssrenderer.KRSSObjectRenderer
flatten, flattenProperties, getIndent, sort, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, write, write, write, write, write, write, write, writeCloseBracket, writeIndent, writeln, writeOpenBracket, writeSpace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ignoreDeclarations

protected boolean ignoreDeclarations
If declarations are ignored, entities which are only referenced in a declaration are not rendered.

Constructor Detail

KRSS2ObjectRenderer

public KRSS2ObjectRenderer(OWLOntologyManager manager,
                           OWLOntology ontology,
                           java.io.Writer writer)
Method Detail

setIgnoreDeclarations

public void setIgnoreDeclarations(boolean ignoreDeclarations)

write

protected void write(KRSS2Vocabulary v)

visit

public final void visit(OWLOntology ontology)
Specified by:
visit in interface OWLObjectVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public final void visit(OWLSubClassOfAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLDisjointClassesAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLNegativeObjectPropertyAssertionAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLAsymmetricObjectPropertyAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLReflexiveObjectPropertyAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLDataPropertyDomainAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLImportsDeclaration axiom)
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLObjectPropertyDomainAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLEquivalentObjectPropertiesAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLNegativeDataPropertyAssertionAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLDifferentIndividualsAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLDisjointDataPropertiesAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLDisjointObjectPropertiesAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLObjectPropertyRangeAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public final void visit(OWLObjectPropertyAssertionAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLFunctionalObjectPropertyAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLSubObjectPropertyOfAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLDisjointUnionAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLDeclarationAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLSymmetricObjectPropertyAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLDataPropertyRangeAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLFunctionalDataPropertyAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLEquivalentDataPropertiesAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLEquivalentClassesAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLDataPropertyAssertionAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLTransitiveObjectPropertyAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLIrreflexiveObjectPropertyAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLSubDataPropertyOfAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLInverseFunctionalObjectPropertyAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLSubPropertyChainOfAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

writeChain

protected void writeChain(java.util.List<OWLObjectPropertyExpression> expressions,
                          int i)

visit

public void visit(OWLInverseObjectPropertiesAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public final void visit(OWLClass desc)
Specified by:
visit in interface OWLClassExpressionVisitor
Specified by:
visit in interface OWLEntityVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public void visit(OWLObjectOneOf desc)
Specified by:
visit in interface OWLClassExpressionVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public final void visit(OWLObjectProperty property)
Specified by:
visit in interface OWLEntityVisitor
Specified by:
visit in interface OWLPropertyExpressionVisitor
Overrides:
visit in class KRSSObjectRenderer

visit

public final void visit(OWLObjectInverseOf property)
Specified by:
visit in interface OWLPropertyExpressionVisitor
Overrides:
visit in class KRSSObjectRenderer

isLeftIdentityAxiom

protected boolean isLeftIdentityAxiom(OWLSubPropertyChainOfAxiom axiom,
                                      OWLObjectProperty property)

isRightIdentityAxiom

protected boolean isRightIdentityAxiom(OWLSubPropertyChainOfAxiom axiom,
                                       OWLObjectProperty property)

getPropertyChainSubPropertyAxiomsFor

protected java.util.Set<OWLSubPropertyChainOfAxiom> getPropertyChainSubPropertyAxiomsFor(OWLPropertyExpression property)

reset

public void reset()