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

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

public class KRSSObjectRenderer
extends java.lang.Object
implements OWLObjectVisitor

A KRSSObjectRenderer renderes an OWLOntology in the original KRSS syntax. Note that only a subset of OWL can be expressed in KRSS.

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
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 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 will be splitted into:
{ (equal i(j) i(j+k)) | 1 <= j <=n, j<k<=n, j=|=k}
Author: Olaf Noppens
Ulm University
Institute of Artificial Intelligence


Field Summary
protected  OWLOntologyManager manager
           
protected  OWLOntology ontology
           
protected  java.io.Writer writer
           
 
Constructor Summary
KRSSObjectRenderer(OWLOntologyManager manager, OWLOntology ontology, java.io.Writer writer)
           
 
Method Summary
protected  void flatten(java.util.Set<OWLClassExpression> description, KRSSVocabulary junctor)
           
protected  void flattenProperties(java.util.Set<OWLObjectPropertyExpression> properties, KRSSVocabulary junctor)
           
protected  int getIndent()
           
protected
<T extends OWLObject>
java.util.List<T>
sort(java.util.Collection<T> objects)
           
 void visit(IRI iri)
           
 void visit(OWLAnnotation node)
           
 void visit(OWLAnnotationAssertionAxiom axiom)
           
 void visit(OWLAnnotationProperty property)
           
 void visit(OWLAnnotationPropertyDomainAxiom axiom)
           
 void visit(OWLAnnotationPropertyRangeAxiom axiom)
           
 void visit(OWLAnonymousIndividual individual)
           
 void visit(OWLAsymmetricObjectPropertyAxiom axiom)
           
 void visit(OWLClass desc)
           
 void visit(OWLClassAssertionAxiom axiom)
           
 void visit(OWLDataAllValuesFrom desc)
           
 void visit(OWLDataComplementOf node)
           
 void visit(OWLDataExactCardinality desc)
           
 void visit(OWLDataHasValue desc)
           
 void visit(OWLDataIntersectionOf node)
           
 void visit(OWLDataMaxCardinality desc)
           
 void visit(OWLDataMinCardinality desc)
           
 void visit(OWLDataOneOf node)
           
 void visit(OWLDataProperty property)
           
 void visit(OWLDataPropertyAssertionAxiom axiom)
           
 void visit(OWLDataPropertyDomainAxiom axiom)
           
 void visit(OWLDataPropertyRangeAxiom axiom)
           
 void visit(OWLDataSomeValuesFrom desc)
           
 void visit(OWLDatatype node)
           
 void visit(OWLDatatypeDefinitionAxiom axiom)
           
 void visit(OWLDatatypeRestriction node)
           
 void visit(OWLDataUnionOf node)
           
 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(OWLFacetRestriction node)
           
 void visit(OWLFunctionalDataPropertyAxiom axiom)
           
 void visit(OWLFunctionalObjectPropertyAxiom axiom)
           
 void visit(OWLHasKeyAxiom axiom)
           
 void visit(OWLImportsDeclaration axiom)
           
 void visit(OWLInverseFunctionalObjectPropertyAxiom axiom)
           
 void visit(OWLInverseObjectPropertiesAxiom axiom)
           
 void visit(OWLIrreflexiveObjectPropertyAxiom axiom)
           
 void visit(OWLLiteral node)
           
 void visit(OWLNamedIndividual individual)
           
 void visit(OWLNegativeDataPropertyAssertionAxiom axiom)
           
 void visit(OWLNegativeObjectPropertyAssertionAxiom axiom)
           
 void visit(OWLObjectAllValuesFrom desc)
           
 void visit(OWLObjectComplementOf desc)
           
 void visit(OWLObjectExactCardinality desc)
           
 void visit(OWLObjectHasSelf desc)
           
 void visit(OWLObjectHasValue desc)
           
 void visit(OWLObjectIntersectionOf desc)
           
 void visit(OWLObjectInverseOf property)
           
 void visit(OWLObjectMaxCardinality desc)
           
 void visit(OWLObjectMinCardinality desc)
           
 void visit(OWLObjectOneOf desc)
           
 void visit(OWLObjectProperty property)
           
 void visit(OWLObjectPropertyAssertionAxiom axiom)
           
 void visit(OWLObjectPropertyDomainAxiom axiom)
           
 void visit(OWLObjectPropertyRangeAxiom axiom)
           
 void visit(OWLObjectSomeValuesFrom desc)
           
 void visit(OWLObjectUnionOf desc)
           
 void visit(OWLOntology ontology)
           
 void visit(OWLReflexiveObjectPropertyAxiom axiom)
           
 void visit(OWLSameIndividualAxiom axiom)
           
 void visit(OWLSubAnnotationPropertyOfAxiom 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)
           
 void visit(SWRLBuiltInAtom node)
           
 void visit(SWRLClassAtom node)
           
 void visit(SWRLDataPropertyAtom node)
           
 void visit(SWRLDataRangeAtom node)
           
 void visit(SWRLDifferentIndividualsAtom node)
           
 void visit(SWRLIndividualArgument node)
           
 void visit(SWRLLiteralArgument node)
           
 void visit(SWRLObjectPropertyAtom node)
           
 void visit(SWRLRule rule)
           
 void visit(SWRLSameIndividualAtom node)
           
 void visit(SWRLVariable node)
           
protected  void write(int i)
           
protected  void write(IRI iri)
           
 void write(OWLClassExpression obj)
           
 void write(OWLDataRange obj)
           
 void write(OWLIndividual ind)
           
 void write(OWLPropertyExpression obj)
           
protected  void write(java.lang.String s)
           
protected  void writeCloseBracket()
           
protected  void writeIndent(int indent)
           
protected  void writeln()
           
protected  void writeOpenBracket()
           
protected  void writeSpace()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ontology

protected final OWLOntology ontology

writer

protected final java.io.Writer writer

manager

protected final OWLOntologyManager manager
Constructor Detail

KRSSObjectRenderer

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

sort

protected <T extends OWLObject> java.util.List<T> sort(java.util.Collection<T> objects)

writeOpenBracket

protected final void writeOpenBracket()

writeCloseBracket

protected final void writeCloseBracket()

write

protected final void write(int i)

write

protected final void write(IRI iri)

writeSpace

protected final void writeSpace()

write

protected final void write(java.lang.String s)

getIndent

protected final int getIndent()

writeIndent

protected final void writeIndent(int indent)

writeln

protected final void writeln()

write

public final void write(OWLClassExpression obj)

write

public final void write(OWLIndividual ind)

write

public final void write(OWLPropertyExpression obj)

write

public final void write(OWLDataRange obj)

flattenProperties

protected void flattenProperties(java.util.Set<OWLObjectPropertyExpression> properties,
                                 KRSSVocabulary junctor)

flatten

protected void flatten(java.util.Set<OWLClassExpression> description,
                       KRSSVocabulary junctor)

visit

public void visit(OWLOntology ontology)
Specified by:
visit in interface OWLObjectVisitor

visit

public void visit(OWLSubClassOfAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor

visit

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

visit

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

visit

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

visit

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

visit

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

visit

public void visit(OWLImportsDeclaration axiom)

visit

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

visit

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

visit

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

visit

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

visit

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

visit

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

visit

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

visit

public void visit(OWLObjectPropertyAssertionAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor

visit

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

visit

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

visit

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

visit

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

visit

public void visit(OWLAnnotationAssertionAxiom axiom)
Specified by:
visit in interface OWLAnnotationAxiomVisitor

visit

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

visit

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

visit

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

visit

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

visit

public void visit(OWLClassAssertionAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor

visit

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

visit

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

visit

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

visit

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

visit

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

visit

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

visit

public void visit(OWLSameIndividualAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor

visit

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

visit

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

visit

public void visit(SWRLRule rule)
Specified by:
visit in interface OWLAxiomVisitor
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLClassAtom node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLDataRangeAtom node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLObjectPropertyAtom node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLDataPropertyAtom node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLBuiltInAtom node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLVariable node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLIndividualArgument node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLLiteralArgument node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLSameIndividualAtom node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(SWRLDifferentIndividualsAtom node)
Specified by:
visit in interface SWRLObjectVisitor

visit

public void visit(OWLClass desc)
Specified by:
visit in interface OWLClassExpressionVisitor
Specified by:
visit in interface OWLEntityVisitor

visit

public void visit(OWLObjectIntersectionOf desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLObjectUnionOf desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLObjectComplementOf desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLObjectSomeValuesFrom desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLObjectAllValuesFrom desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLObjectHasValue desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLObjectMinCardinality desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLObjectExactCardinality desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLObjectMaxCardinality desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLObjectHasSelf desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

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

visit

public void visit(OWLDataSomeValuesFrom desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLDataAllValuesFrom desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLDataHasValue desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLDataMinCardinality desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLDataExactCardinality desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLDataMaxCardinality desc)
Specified by:
visit in interface OWLClassExpressionVisitor

visit

public void visit(OWLDatatype node)
Specified by:
visit in interface OWLDataRangeVisitor
Specified by:
visit in interface OWLEntityVisitor

visit

public void visit(OWLDataComplementOf node)
Specified by:
visit in interface OWLDataRangeVisitor

visit

public void visit(OWLDataOneOf node)
Specified by:
visit in interface OWLDataRangeVisitor

visit

public void visit(OWLDatatypeRestriction node)
Specified by:
visit in interface OWLDataRangeVisitor

visit

public void visit(OWLLiteral node)
Specified by:
visit in interface OWLAnnotationValueVisitor
Specified by:
visit in interface OWLDataVisitor

visit

public void visit(OWLFacetRestriction node)
Specified by:
visit in interface OWLDataVisitor

visit

public void visit(OWLObjectProperty property)
Specified by:
visit in interface OWLEntityVisitor
Specified by:
visit in interface OWLPropertyExpressionVisitor

visit

public void visit(OWLObjectInverseOf property)
Specified by:
visit in interface OWLPropertyExpressionVisitor

visit

public void visit(OWLDataProperty property)
Specified by:
visit in interface OWLEntityVisitor
Specified by:
visit in interface OWLPropertyExpressionVisitor

visit

public void visit(OWLNamedIndividual individual)
Specified by:
visit in interface OWLEntityVisitor
Specified by:
visit in interface OWLIndividualVisitor

visit

public void visit(OWLHasKeyAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor

visit

public void visit(OWLDatatypeDefinitionAxiom axiom)
Specified by:
visit in interface OWLAxiomVisitor

visit

public void visit(OWLSubAnnotationPropertyOfAxiom axiom)
Specified by:
visit in interface OWLAnnotationAxiomVisitor

visit

public void visit(OWLAnnotationPropertyDomainAxiom axiom)
Specified by:
visit in interface OWLAnnotationAxiomVisitor

visit

public void visit(OWLAnnotationPropertyRangeAxiom axiom)
Specified by:
visit in interface OWLAnnotationAxiomVisitor

visit

public void visit(OWLDataIntersectionOf node)
Specified by:
visit in interface OWLDataRangeVisitor

visit

public void visit(OWLDataUnionOf node)
Specified by:
visit in interface OWLDataRangeVisitor

visit

public void visit(OWLAnnotationProperty property)
Specified by:
visit in interface OWLEntityVisitor

visit

public void visit(OWLAnonymousIndividual individual)
Specified by:
visit in interface OWLAnnotationValueVisitor
Specified by:
visit in interface OWLIndividualVisitor

visit

public void visit(IRI iri)
Specified by:
visit in interface OWLAnnotationValueVisitor

visit

public void visit(OWLAnnotation node)
Specified by:
visit in interface OWLAnnotationObjectVisitor