org.semanticweb.HermiT.structural
Class OWLNormalization
java.lang.Object
org.semanticweb.HermiT.structural.OWLNormalization
public class OWLNormalization
- extends java.lang.Object
This class implements the structural transformation from our new tableau paper. This transformation departs in the following way from the paper: it keeps the concepts of the form \exists R.{ a_1, ..., a_n }, \forall R.{ a_1, ..., a_n }, and \forall R.\neg { a } intact. These concepts are then clausified in a more efficient way.
Constructor Summary |
OWLNormalization(org.semanticweb.owlapi.model.OWLDataFactory factory,
OWLAxioms axioms,
int firstReplacementIndex)
|
Method Summary |
protected void |
addFact(org.semanticweb.owlapi.model.OWLIndividualAxiom axiom)
|
protected void |
addHasKey(org.semanticweb.owlapi.model.OWLHasKeyAxiom axiom)
|
protected void |
addInclusion(org.semanticweb.owlapi.model.OWLDataPropertyExpression subDataPropertyExpression,
org.semanticweb.owlapi.model.OWLDataPropertyExpression superDataPropertyExpression)
|
protected void |
addInclusion(org.semanticweb.owlapi.model.OWLObjectPropertyExpression[] subObjectPropertyExpressions,
org.semanticweb.owlapi.model.OWLObjectPropertyExpression superObjectPropertyExpression)
|
protected void |
addInclusion(org.semanticweb.owlapi.model.OWLObjectPropertyExpression subObjectPropertyExpression,
org.semanticweb.owlapi.model.OWLObjectPropertyExpression superObjectPropertyExpression)
|
protected boolean |
distributeUnionOverAnd(org.semanticweb.owlapi.model.OWLClassExpression[] descriptions,
java.util.List<org.semanticweb.owlapi.model.OWLClassExpression[]> inclusions)
|
protected boolean |
distributeUnionOverAnd(org.semanticweb.owlapi.model.OWLDataRange[] descriptions,
java.util.List<org.semanticweb.owlapi.model.OWLDataRange[]> inclusions)
|
protected org.semanticweb.owlapi.model.OWLClass |
getClassFor(org.semanticweb.owlapi.model.OWLClassExpression description,
boolean[] alreadyExists)
|
protected org.semanticweb.owlapi.model.OWLDataPropertyAssertionAxiom |
getDataPropertyAssertionFromSyntacticVariant(org.semanticweb.owlapi.model.OWLClassAssertionAxiom axiom)
|
protected org.semanticweb.owlapi.model.OWLClassExpression |
getDefinitionFor(org.semanticweb.owlapi.model.OWLClassExpression description,
boolean[] alreadyExists)
|
protected org.semanticweb.owlapi.model.OWLClassExpression |
getDefinitionFor(org.semanticweb.owlapi.model.OWLClassExpression description,
boolean[] alreadyExists,
boolean forcePositive)
|
protected org.semanticweb.owlapi.model.OWLDatatype |
getDefinitionFor(org.semanticweb.owlapi.model.OWLDataRange dr,
boolean[] alreadyExists)
|
protected org.semanticweb.owlapi.model.OWLClass |
getDefinitionForNegativeNominal(org.semanticweb.owlapi.model.OWLObjectOneOf nominal,
boolean[] alreadyExists)
|
protected static boolean |
isAtomic(org.semanticweb.owlapi.model.OWLDataRange dr)
|
protected static boolean |
isLiteral(org.semanticweb.owlapi.model.OWLDataRange dr)
|
protected static boolean |
isNegatedAtomic(org.semanticweb.owlapi.model.OWLDataRange dr)
|
protected static boolean |
isNegatedOneNominal(org.semanticweb.owlapi.model.OWLClassExpression description)
|
protected static boolean |
isNominal(org.semanticweb.owlapi.model.OWLClassExpression description)
|
protected static boolean |
isSimple(org.semanticweb.owlapi.model.OWLClassExpression description)
|
protected void |
makeAsymmetric(org.semanticweb.owlapi.model.OWLObjectPropertyExpression objectPropertyExpression)
|
protected void |
makeIrreflexive(org.semanticweb.owlapi.model.OWLObjectPropertyExpression objectPropertyExpression)
|
protected void |
makeReflexive(org.semanticweb.owlapi.model.OWLObjectPropertyExpression objectPropertyExpression)
|
protected void |
makeTransitive(org.semanticweb.owlapi.model.OWLObjectPropertyExpression objectPropertyExpression)
|
protected org.semanticweb.owlapi.model.OWLClassExpression |
negative(org.semanticweb.owlapi.model.OWLClassExpression description)
|
protected org.semanticweb.owlapi.model.OWLDataRange |
negative(org.semanticweb.owlapi.model.OWLDataRange dataRange)
|
protected void |
normalizeInclusions(java.util.List<org.semanticweb.owlapi.model.OWLClassExpression[]> inclusions,
java.util.List<org.semanticweb.owlapi.model.OWLDataRange[]> dataRangeInclusions)
|
protected void |
normalizeRules(java.util.List<org.semanticweb.owlapi.model.OWLClassExpression[]> inclusions,
java.util.List<org.semanticweb.owlapi.model.OWLDataRange[]> dataRangeInclusions,
java.util.Collection<org.semanticweb.owlapi.model.SWRLRule> rules)
|
protected boolean |
optimizedNegativeOneOfTranslation(org.semanticweb.owlapi.model.OWLClassExpression[] descriptions,
java.util.Collection<org.semanticweb.owlapi.model.OWLIndividualAxiom> facts)
|
protected org.semanticweb.owlapi.model.OWLClassExpression |
positive(org.semanticweb.owlapi.model.OWLClassExpression description)
|
protected org.semanticweb.owlapi.model.OWLDataRange |
positive(org.semanticweb.owlapi.model.OWLDataRange dataRange)
|
void |
processAxioms(java.util.Collection<? extends org.semanticweb.owlapi.model.OWLAxiom> axioms)
|
void |
processOntology(org.semanticweb.owlapi.model.OWLOntology ontology)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
m_factory
protected final org.semanticweb.owlapi.model.OWLDataFactory m_factory
m_axioms
protected final OWLAxioms m_axioms
m_firstReplacementIndex
protected final int m_firstReplacementIndex
m_definitions
protected final java.util.Map<org.semanticweb.owlapi.model.OWLClassExpression,org.semanticweb.owlapi.model.OWLClassExpression> m_definitions
m_definitionsForNegativeNominals
protected final java.util.Map<org.semanticweb.owlapi.model.OWLObjectOneOf,org.semanticweb.owlapi.model.OWLClass> m_definitionsForNegativeNominals
m_expressionManager
protected final ExpressionManager m_expressionManager
m_plVisitor
protected final OWLNormalization.PLVisitor m_plVisitor
m_dataRangeDefinitions
protected final java.util.Map<org.semanticweb.owlapi.model.OWLDataRange,org.semanticweb.owlapi.model.OWLDatatype> m_dataRangeDefinitions
OWLNormalization
public OWLNormalization(org.semanticweb.owlapi.model.OWLDataFactory factory,
OWLAxioms axioms,
int firstReplacementIndex)
processOntology
public void processOntology(org.semanticweb.owlapi.model.OWLOntology ontology)
processAxioms
public void processAxioms(java.util.Collection<? extends org.semanticweb.owlapi.model.OWLAxiom> axioms)
addFact
protected void addFact(org.semanticweb.owlapi.model.OWLIndividualAxiom axiom)
addHasKey
protected void addHasKey(org.semanticweb.owlapi.model.OWLHasKeyAxiom axiom)
addInclusion
protected void addInclusion(org.semanticweb.owlapi.model.OWLObjectPropertyExpression subObjectPropertyExpression,
org.semanticweb.owlapi.model.OWLObjectPropertyExpression superObjectPropertyExpression)
addInclusion
protected void addInclusion(org.semanticweb.owlapi.model.OWLObjectPropertyExpression[] subObjectPropertyExpressions,
org.semanticweb.owlapi.model.OWLObjectPropertyExpression superObjectPropertyExpression)
addInclusion
protected void addInclusion(org.semanticweb.owlapi.model.OWLDataPropertyExpression subDataPropertyExpression,
org.semanticweb.owlapi.model.OWLDataPropertyExpression superDataPropertyExpression)
makeTransitive
protected void makeTransitive(org.semanticweb.owlapi.model.OWLObjectPropertyExpression objectPropertyExpression)
makeReflexive
protected void makeReflexive(org.semanticweb.owlapi.model.OWLObjectPropertyExpression objectPropertyExpression)
makeIrreflexive
protected void makeIrreflexive(org.semanticweb.owlapi.model.OWLObjectPropertyExpression objectPropertyExpression)
makeAsymmetric
protected void makeAsymmetric(org.semanticweb.owlapi.model.OWLObjectPropertyExpression objectPropertyExpression)
isSimple
protected static boolean isSimple(org.semanticweb.owlapi.model.OWLClassExpression description)
isLiteral
protected static boolean isLiteral(org.semanticweb.owlapi.model.OWLDataRange dr)
isAtomic
protected static boolean isAtomic(org.semanticweb.owlapi.model.OWLDataRange dr)
isNegatedAtomic
protected static boolean isNegatedAtomic(org.semanticweb.owlapi.model.OWLDataRange dr)
isNominal
protected static boolean isNominal(org.semanticweb.owlapi.model.OWLClassExpression description)
isNegatedOneNominal
protected static boolean isNegatedOneNominal(org.semanticweb.owlapi.model.OWLClassExpression description)
getDataPropertyAssertionFromSyntacticVariant
protected org.semanticweb.owlapi.model.OWLDataPropertyAssertionAxiom getDataPropertyAssertionFromSyntacticVariant(org.semanticweb.owlapi.model.OWLClassAssertionAxiom axiom)
normalizeRules
protected void normalizeRules(java.util.List<org.semanticweb.owlapi.model.OWLClassExpression[]> inclusions,
java.util.List<org.semanticweb.owlapi.model.OWLDataRange[]> dataRangeInclusions,
java.util.Collection<org.semanticweb.owlapi.model.SWRLRule> rules)
normalizeInclusions
protected void normalizeInclusions(java.util.List<org.semanticweb.owlapi.model.OWLClassExpression[]> inclusions,
java.util.List<org.semanticweb.owlapi.model.OWLDataRange[]> dataRangeInclusions)
distributeUnionOverAnd
protected boolean distributeUnionOverAnd(org.semanticweb.owlapi.model.OWLClassExpression[] descriptions,
java.util.List<org.semanticweb.owlapi.model.OWLClassExpression[]> inclusions)
distributeUnionOverAnd
protected boolean distributeUnionOverAnd(org.semanticweb.owlapi.model.OWLDataRange[] descriptions,
java.util.List<org.semanticweb.owlapi.model.OWLDataRange[]> inclusions)
optimizedNegativeOneOfTranslation
protected boolean optimizedNegativeOneOfTranslation(org.semanticweb.owlapi.model.OWLClassExpression[] descriptions,
java.util.Collection<org.semanticweb.owlapi.model.OWLIndividualAxiom> facts)
getDefinitionFor
protected org.semanticweb.owlapi.model.OWLClassExpression getDefinitionFor(org.semanticweb.owlapi.model.OWLClassExpression description,
boolean[] alreadyExists,
boolean forcePositive)
getDefinitionFor
protected org.semanticweb.owlapi.model.OWLDatatype getDefinitionFor(org.semanticweb.owlapi.model.OWLDataRange dr,
boolean[] alreadyExists)
getDefinitionFor
protected org.semanticweb.owlapi.model.OWLClassExpression getDefinitionFor(org.semanticweb.owlapi.model.OWLClassExpression description,
boolean[] alreadyExists)
getClassFor
protected org.semanticweb.owlapi.model.OWLClass getClassFor(org.semanticweb.owlapi.model.OWLClassExpression description,
boolean[] alreadyExists)
getDefinitionForNegativeNominal
protected org.semanticweb.owlapi.model.OWLClass getDefinitionForNegativeNominal(org.semanticweb.owlapi.model.OWLObjectOneOf nominal,
boolean[] alreadyExists)
positive
protected org.semanticweb.owlapi.model.OWLClassExpression positive(org.semanticweb.owlapi.model.OWLClassExpression description)
negative
protected org.semanticweb.owlapi.model.OWLClassExpression negative(org.semanticweb.owlapi.model.OWLClassExpression description)
positive
protected org.semanticweb.owlapi.model.OWLDataRange positive(org.semanticweb.owlapi.model.OWLDataRange dataRange)
negative
protected org.semanticweb.owlapi.model.OWLDataRange negative(org.semanticweb.owlapi.model.OWLDataRange dataRange)