org.semanticweb.owlapi.reasoner
Interface OWLReasoner

All Known Implementing Classes:
OWLReasonerBase, StructuralReasoner

public interface OWLReasoner

Author: Matthew Horridge
The University of Manchester
Information Management Group
Date: 21-Jan-2009

An OWLReasoner reasons over a set of axioms (the set of reasoner axioms) that is based on the imports closure of a particular ontology - the "root" ontology. This ontology can be obtained using the getRootOntology() method. When the client responsible for creating the reasoner has finished with the reasoner instance it must call the dispose() method to free any resources that are used by the reasoner. In general, reasoners should not be instantiated directly, but should be created using the appropriate OWLReasonerFactory.

Ontology Change Management (Buffering and Non-Buffering Modes)

At creation time, an OWLReasoner will load the axioms in the root ontology imports closure. It will attach itself as a listener to the OWLOntologyManager that manages the root ontology. The reasoner will listen to any OWLOntologyChanges and respond appropriately to them before answering any queries. If the BufferingMode of the reasoner (the answer to getBufferingMode() is BufferingMode.NON_BUFFERING) the ontology changes are processed by the reasoner immediately so that any queries asked after the changes are answered with respect to the changed ontologies. If the BufferingMode of the reasoner is BufferingMode.BUFFERING then ontology changes are stored in a buffer and are only taken into consideration when the buffer is flushed with the flush() method. When reasoning, axioms in the root ontology imports closure, minus the axioms returned by the getPendingAxiomAdditions() method, plus the axioms returned by the getPendingAxiomRemovals() are taken into consideration.

Note that there is no guarantee that the reasoner implementation will respond to changes in an incremental (and efficient manner) manner.

Reasoner Axioms

The set of axioms that the reasoner takes into consideration when answering queries is known as the set of reasoner axioms. This corresponds the axioms in the imports closure of the root ontology plus the axioms returned by the getPendingAxiomRemovals() minus the axioms returned by getPendingAxiomAdditions()

Nodes

The reasoner interface contains methods that return NodeSets. These are sets of Nodes. A Node contains entities.

For a Node<OWLClass> of classes, each class in the node is equivalent to the other classes in the Node with respect to the imports closure of the root ontology.

For a Node<OWLObjectProperty> of object properties, each object property in the Node is equivalent to the other object properties in the node with respect to the imports closure of the root ontology.

For a Node<OWLDataProperty> of data properties, each data property in the Node is equivalent to the other data properties in the node with respect to the imports closure of the root ontology.

For a Node<OWLNamedIndividual> of named individuals, each individual in the node is the same as the other individuals in the node with respect to the imports closure of the root ontology.

By abuse of notation, we say that a NodeSet "contains" an entity if that entity is contained in one of the Nodes in the NodeSet.

Hierarchies

A hierachy (class hierachy, object property hierarchy, data property hierarchy) is viewed as a directed acyclic graph (DAG) containing nodes connected via edges. Each node in the hierarchy represents a set of entities that are equivalent to each other. Each hierarchy has a top node (see Node.isTopNode()) and a bottom node (see Node.isBottomNode()).

The figure below shows an example class hierarchy. Each box in the hierarchy represents a Node. In this case the top node contains owl:Thing and the bottom node contains owl:Nothing because the nodes in the hierarchy are OWLClass nodes. In this case, class G is equivalent to owl:Thing so it appears as an entity in the top node along with owl:Thing. Similarly, class K is unsatisfiable, so it is equivalent to owl:Nothing, and therefore appears in the bottom node containing owl:Nothing. In this example, classes A and B are equivalent so they appear in one node, also, classes D and F are equivalent so they appear in one node.

Asking for the subclasses of a given class (expression) returns the a NodeSet containing the nodes that contain classes that are strict subclasses of the specified class (expression). For example, asking for the subclasses of class C returns the NodeSet {E} and {owl:Nothing, K}.

Asking for the direct subclasses of a given class (expression) returns the NodeSet that contains the nodes that contains classes that are direct subclasses of the specified class. For example, asking for the direct subclasses of class A returns the NodeSet containing the nodes {C} and {D, F}. Note that there are convenience methods on NodeSet and Node that can be used to directly access the entities in a NodeSet without having to iterate over the nodes and entities in a NodeSet. For example, a "plain" set of classes contained inside the Nodes contained inside a NodeSet can easily be obtained using the NodeSet.getFlattened() method. In this case we could quickly obtain {C, D, F} as the direct subclasses of A simply by using the getSubClasses(org.semanticweb.owlapi.model.OWLClassExpression, boolean)} (with boolean=true) method on OWLReasoner and then we could use the NodeSet.getFlattened() method on the retuned NodeSet.

Asking for equivalent classes of a class (expression) returns a Node that contains classes that are equivalent to the class (expression) . For example, asking for the equivalent classes of owl:Nothing (i.e. asking for the unsatisfiable classes) returns the Node {owl:Nothing, K}.

Definitions

In what follows, an extension of the OWL 2 Functional Syntax is given in order to capture notions like a class being a "direct" subclass of another class.

StrictSubClassOf

Given two class expressions CE1 and CE2 and an ontology O, CE1 is a strict subclass of CE2, written StrictSubClassOf(CE1 CE2) if O entails SubClassOf(CE1 CE2) and O does not entail SubClassOf(CE2 CE1)

DirectSubClassOf

Given two class expressions CE1 and CE2 and an ontology O, CE1 is a direct subclass of CE2, written DirectSubClassOf(CE1 CE2), with respect to O if O entails StrictSubClassOf(CE1 CE2) and there is no class name C in the signature of O such that O entails StrictSubClassOf(CE1 C) and O entails StrictSubClassOf(C CE2).

StrictSubObjectPropertyOf

Given two object property expressions OPE1 and OPE2 and an ontology O, OPE1 is a strict subproperty of OPE2, written StrictSubObjectPropertyOf(OPE1 OPE2) if O entails SubObjectPropertyOf(OPE1 OPE2) and O does not entail SubObjectPropertyOf(OPE2 OPE1)

DirectSubObjectPropertyOf

Given two object property expressions OPE1 and OPE2 and an ontology O, OPE1 is a direct subproperty of OPE2, written DirectSubObjectPropertyOf(OPE1 OPE2), with respect to O if O entails StrictSubObjectPropertyOf(OPE1 OPE2) and there is no object property name P in the signature of O such that O entails StrictSubObjectPropertyOf(OPE1 P) and O entails StrictSubObjectPropertyOf(P OPE2).

StrictSubDataPropertyOf

Given two dbject property expressions DPE1 and DPE2 and an ontology O, DPE1 is a strict subproperty of DPE2, written StrictSubDataPropertyOf(DPE1 DPE2) if O entails SubDataPropertyOf(DPE1 DPE2) and O does not entail SubDataPropertyOf(DPE1 DPE2)

DirectSubDataPropertyOf

Given two data property expressions DPE1 and DPE2 and an ontology O, DPE1 is a direct subproperty of DPE2, written DirectSubDataPropertyOf(DPE1 DPE2), with respect to O if O entails StrictSubDataPropertyOf(DPE1 DPE2) and there is no data property name P in the signature of O such that O entails StrictSubDataPropertyOf(DPE1 P) and O entails StrictSubDataPropertyOf(P DPE2).

DirectClassAssertion

Given an individual j and a class expression CE and an ontology O, CE is a direct class assertion (type) for j, written DirectClassAssertion(CE j), if O entails ClassAssertion(CE j) and there is no class name C in the signature of O such that O entails ClassAssertion(C j) and O entails StrictSubClassOf(C CE).

ObjectPropertyComplementOf

Given an object property expression pe, the object property complement of pe is written as ObjectPropertyComplementOf(pe). The interpretation of ObjectPropertyComplementOf(pe) is equal to the interpretation of owl:topObjectProperty minus the interpretation of pe. In other words, ObjectPropertyComplementOf(pe) is the set of pairs of individuals that are not in pe.

DataPropertyComplementOf

Given a data property expression pe, the data property complement of pe is written as DataPropertyComplementOf(pe). The interpretation of DataPropertyComplementOf(pe) is equal to the interpretation of owl:topDataProperty minus the interpretation of pe. In other words, DataPropertyComplementOf(pe) is the set of pairs of individual and literals that are not in pe.

Simplified Object Property Expression

A simplified object property expression is either a named property P, or an object inverse property of the form ObjectInverseOf(P) where P is a named property. In other words, there is no nesting of ObjectInverseOf operators.

Error Handling

An OWLReasoner may throw the following exceptions to indicate errors. More documentation for each type of exception can be found on the particular exception class. Note that ReasonerInternalException may be throw by any of the reasoner methods below.


Method Summary
 void dispose()
          Disposes of this reasoner.
 void flush()
          Flushes any changes stored in the buffer, which causes the reasoner to take into consideration the changes the current root ontology specified by the changes.
 Node<OWLClass> getBottomClassNode()
          Gets the Node corresponding to the bottom node (containing owl:Nothing) in the class hierarchy.
 Node<OWLDataProperty> getBottomDataPropertyNode()
          Gets the Node corresponding to the bottom node (containing owl:bottomDataProperty) in the data property hierarchy.
 Node<OWLObjectPropertyExpression> getBottomObjectPropertyNode()
          Gets the Node corresponding to the bottom node (containing owl:bottomObjectProperty) in the object property hierarchy.
 BufferingMode getBufferingMode()
          Gets the buffering mode of this reasoner.
 NodeSet<OWLClass> getDataPropertyDomains(OWLDataProperty pe, boolean direct)
          Gets the named classes that are the direct or indirect domains of this property with respect to the imports closure of the root ontology.
 java.util.Set<OWLLiteral> getDataPropertyValues(OWLNamedIndividual ind, OWLDataProperty pe)
          Gets the data property values for the specified individual and data property expression.
 NodeSet<OWLNamedIndividual> getDifferentIndividuals(OWLNamedIndividual ind)
          Gets the individuals which are entailed to be different from the specified individual.
 NodeSet<OWLClass> getDisjointClasses(OWLClassExpression ce)
          Gets the classes that are disjoint with the specified class expression ce.
 NodeSet<OWLDataProperty> getDisjointDataProperties(OWLDataPropertyExpression pe)
          Gets the data properties that are disjoint with the specified data property expression pe.
 NodeSet<OWLObjectPropertyExpression> getDisjointObjectProperties(OWLObjectPropertyExpression pe)
          Gets the simplified object property expressions that are disjoint with the specified object property expression pe.
 Node<OWLClass> getEquivalentClasses(OWLClassExpression ce)
          Gets the set of named classes that are equivalent to the specified class expression with respect to the set of reasoner axioms.
 Node<OWLDataProperty> getEquivalentDataProperties(OWLDataProperty pe)
          Gets the set of named data properties that are equivalent to the specified data property expression with respect to the imports closure of the root ontology.
 Node<OWLObjectPropertyExpression> getEquivalentObjectProperties(OWLObjectPropertyExpression pe)
          Gets the set of simplified object property expressions that are equivalent to the specified object property expression with respect to the set of reasoner axioms.
 FreshEntityPolicy getFreshEntityPolicy()
          Gets the Fresh Entity Policy in use by this reasoner.
 IndividualNodeSetPolicy getIndividualNodeSetPolicy()
          Gets the IndividualNodeSetPolicy in use by this reasoner.
 NodeSet<OWLNamedIndividual> getInstances(OWLClassExpression ce, boolean direct)
          Gets the individuals which are instances of the specified class expression.
 Node<OWLObjectPropertyExpression> getInverseObjectProperties(OWLObjectPropertyExpression pe)
          Gets the set of simplified object property expressions that are the inverses of the specified object property expression with respect to the imports closure of the root ontology.
 NodeSet<OWLClass> getObjectPropertyDomains(OWLObjectPropertyExpression pe, boolean direct)
          Gets the named classes that are the direct or indirect domains of this property with respect to the imports closure of the root ontology.
 NodeSet<OWLClass> getObjectPropertyRanges(OWLObjectPropertyExpression pe, boolean direct)
          Gets the named classes that are the direct or indirect ranges of this property with respect to the imports closure of the root ontology.
 NodeSet<OWLNamedIndividual> getObjectPropertyValues(OWLNamedIndividual ind, OWLObjectPropertyExpression pe)
          Gets the object property values for the specified individual and object property expression.
 java.util.Set<OWLAxiom> getPendingAxiomAdditions()
          Gets the axioms that as a result of ontology changes need to be added to the reasoner to synchronise it with the root ontology imports closure.
 java.util.Set<OWLAxiom> getPendingAxiomRemovals()
          Gets the axioms that as a result of ontology changes need to removed to the reasoner to synchronise it with the root ontology imports closure.
 java.util.List<OWLOntologyChange> getPendingChanges()
          Gets the pending changes which need to be taken into consideration by the reasoner so that it is up to date with the root ontology imports closure.
 java.util.Set<InferenceType> getPrecomputableInferenceTypes()
          Returns the set of InferenceTypes that are precomputable by reasoner.
 java.lang.String getReasonerName()
          Gets the name of this reasoner.
 Version getReasonerVersion()
          Gets the version of this reasoner.
 OWLOntology getRootOntology()
          Gets the "root" ontology that is loaded into this reasoner.
 Node<OWLNamedIndividual> getSameIndividuals(OWLNamedIndividual ind)
          Gets the individuals that are the same as the specified individual.
 NodeSet<OWLClass> getSubClasses(OWLClassExpression ce, boolean direct)
          Gets the set of named classes that are the strict (potentially direct) subclasses of the specified class expression with respect to the reasoner axioms.
 NodeSet<OWLDataProperty> getSubDataProperties(OWLDataProperty pe, boolean direct)
          Gets the set of named data properties that are the strict (potentially direct) subproperties of the specified data property expression with respect to the imports closure of the root ontology.
 NodeSet<OWLObjectPropertyExpression> getSubObjectProperties(OWLObjectPropertyExpression pe, boolean direct)
          Gets the set of simplified object property expressions that are the strict (potentially direct) subproperties of the specified object property expression with respect to the imports closure of the root ontology.
 NodeSet<OWLClass> getSuperClasses(OWLClassExpression ce, boolean direct)
          Gets the set of named classes that are the strict (potentially direct) super classes of the specified class expression with respect to the imports closure of the root ontology.
 NodeSet<OWLDataProperty> getSuperDataProperties(OWLDataProperty pe, boolean direct)
          Gets the set of named data properties that are the strict (potentially direct) super properties of the specified data property with respect to the imports closure of the root ontology.
 NodeSet<OWLObjectPropertyExpression> getSuperObjectProperties(OWLObjectPropertyExpression pe, boolean direct)
          Gets the set of simplified object property expressions that are the strict (potentially direct) super properties of the specified object property expression with respect to the imports closure of the root ontology.
 long getTimeOut()
          Gets the time out (in milliseconds) for the most basic reasoning operations.
 Node<OWLClass> getTopClassNode()
          Gets the Node corresponding to the top node (containing owl:Thing) in the class hierarchy.
 Node<OWLDataProperty> getTopDataPropertyNode()
          Gets the Node corresponding to the top node (containing owl:topDataProperty) in the data property hierarchy.
 Node<OWLObjectPropertyExpression> getTopObjectPropertyNode()
          Gets the Node corresponding to the top node (containing owl:topObjectProperty) in the object property hierarchy.
 NodeSet<OWLClass> getTypes(OWLNamedIndividual ind, boolean direct)
          Gets the named classes which are (potentially direct) types of the specified named individual.
 Node<OWLClass> getUnsatisfiableClasses()
          A convenience method that obtains the classes in the signature of the root ontology that are unsatisfiable.
 void interrupt()
          Asks the reasoner to interrupt what it is currently doing.
 boolean isConsistent()
          Determines if the set of reasoner axioms is consistent.
 boolean isEntailed(OWLAxiom axiom)
          A convenience method that determines if the specified axiom is entailed by the set of reasoner axioms.
 boolean isEntailed(java.util.Set<? extends OWLAxiom> axioms)
          Determines if the specified set of axioms is entailed by the reasoner axioms.
 boolean isEntailmentCheckingSupported(AxiomType<?> axiomType)
          Determines if entailment checking for the specified axiom type is supported.
 boolean isPrecomputed(InferenceType inferenceType)
          Determines if a specific set of inferences have been precomputed.
 boolean isSatisfiable(OWLClassExpression classExpression)
          A convenience method that determines if the specified class expression is satisfiable with respect to the reasoner axioms.
 void precomputeInferences(InferenceType... inferenceTypes)
          Asks the reasoner to precompute certain types of inferences.
 

Method Detail

getReasonerName

java.lang.String getReasonerName()
Gets the name of this reasoner.

Returns:
A string that represents the name of this reasoner.

getReasonerVersion

Version getReasonerVersion()
Gets the version of this reasoner.

Returns:
The version of this reasoner. Not null.

getBufferingMode

BufferingMode getBufferingMode()
Gets the buffering mode of this reasoner.

Returns:
The buffering mode of this reasoner.

flush

void flush()
Flushes any changes stored in the buffer, which causes the reasoner to take into consideration the changes the current root ontology specified by the changes. If the reasoner buffering mode is BufferingMode.NON_BUFFERING then this method will have no effect.


getPendingChanges

java.util.List<OWLOntologyChange> getPendingChanges()
Gets the pending changes which need to be taken into consideration by the reasoner so that it is up to date with the root ontology imports closure. After the flush() method is called the set of pending changes will be empty.

Returns:
A set of changes. Note that the changes represent the raw changes as applied to the imports closure of the root ontology.

getPendingAxiomAdditions

java.util.Set<OWLAxiom> getPendingAxiomAdditions()
Gets the axioms that as a result of ontology changes need to be added to the reasoner to synchronise it with the root ontology imports closure. If the buffering mode is BufferingMode.NON_BUFFERING then there will be no pending axiom additions.

Returns:
The set of axioms that need to added to the reasoner to the reasoner to synchronise it with the root ontology imports closure.

getPendingAxiomRemovals

java.util.Set<OWLAxiom> getPendingAxiomRemovals()
Gets the axioms that as a result of ontology changes need to removed to the reasoner to synchronise it with the root ontology imports closure. If the buffering mode is BufferingMode.NON_BUFFERING then there will be no pending axiom additions.

Returns:
The set of axioms that need to added to the reasoner to the reasoner to synchronise it with the root ontology imports closure.

getRootOntology

OWLOntology getRootOntology()
Gets the "root" ontology that is loaded into this reasoner. The reasoner takes into account the axioms in this ontology and its imports closure, plus the axioms returned by getPendingAxiomRemovals(), minus the axioms returned by getPendingAxiomAdditions() when reasoning.

Note that the root ontology is set at reasoner creation time and cannot be changed thereafter. Clients that want to add ontologies to and remove ontologies from the reasoner after creation time should create a "dummy" ontology that imports the "real" ontologies and then specify the dummy ontology as the root ontology at reasoner creation time.

Returns:
The root ontology that is loaded into the reasoner.

interrupt

void interrupt()
Asks the reasoner to interrupt what it is currently doing. An ReasonerInterruptedException will be thrown in the thread that invoked the last reasoner operation. The OWL API is not thread safe in general, but it is likely that this method will be called from another thread than the event dispatch thread or the thread in which reasoning takes place.

Note that the reasoner will periodically check for interupt requests. Asking the reasoner to interrupt the current process does not mean that it will be interrupted immediately. However, clients can expect to be able to interupt individual consistency checks, satisfiability checks etc.


precomputeInferences

void precomputeInferences(InferenceType... inferenceTypes)
                          throws ReasonerInterruptedException,
                                 TimeOutException,
                                 InconsistentOntologyException
Asks the reasoner to precompute certain types of inferences. Note that it is NOT necessary to call this method before asking any other queries - the reasoner will answer all queries correctly regardless of whether inferences are precomputed or not. For example, if the imports closure of the root ontology entails SubClassOf(A B) then the result of getSubClasses(B) will contain A, regardless of whether precomputeInferences(InferenceType.CLASS_HIERARCHY) has been called.

If the reasoner does not support the precomputation of a particular type of inference then it will silently ignore the request.

Parameters:
inferenceTypes - Suggests a list of the types of inferences that should be precomputed. If the list is empty then the reasoner will determine which types of inferences are precomputed. Note that the order of the list is unimportant - the reasoner will determine the order in which inferences are computed.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

isPrecomputed

boolean isPrecomputed(InferenceType inferenceType)
Determines if a specific set of inferences have been precomputed.

Parameters:
inferenceType - The type of inference to check for.
Returns:
true if the specified type of inferences have been precomputed, otherwise false.

getPrecomputableInferenceTypes

java.util.Set<InferenceType> getPrecomputableInferenceTypes()
Returns the set of InferenceTypes that are precomputable by reasoner.

Returns:
A set of InferenceTypes that can be precomputed by this reasoner.

isConsistent

boolean isConsistent()
                     throws ReasonerInterruptedException,
                            TimeOutException
Determines if the set of reasoner axioms is consistent. Note that this method will NOT throw an InconsistentOntologyException even if the root ontology imports closure is inconsistent.

Returns:
true if the imports closure of the root ontology is consistent, or false if the imports closure of the root ontology is inconsistent.
Throws:
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process).
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

isSatisfiable

boolean isSatisfiable(OWLClassExpression classExpression)
                      throws ReasonerInterruptedException,
                             TimeOutException,
                             ClassExpressionNotInProfileException,
                             FreshEntitiesException,
                             InconsistentOntologyException
A convenience method that determines if the specified class expression is satisfiable with respect to the reasoner axioms.

Parameters:
classExpression - The class expression
Returns:
true if classExpression is satisfiable with respect to the set of axioms, or false if classExpression is unsatisfiable with respect to the axioms.
Throws:
InconsistentOntologyException - if the set of reasoner axioms is inconsistent
ClassExpressionNotInProfileException - if classExpression is not within the profile that is supported by this reasoner.
FreshEntitiesException - if the signature of the classExpression is not contained within the signature of the set of reasoner axioms.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getUnsatisfiableClasses

Node<OWLClass> getUnsatisfiableClasses()
                                       throws ReasonerInterruptedException,
                                              TimeOutException,
                                              InconsistentOntologyException
A convenience method that obtains the classes in the signature of the root ontology that are unsatisfiable.

Returns:
A Node that is the bottom node in the class hierarchy. This node represents owl:Nothing and contains owl:Nothing itself plus classes that are equivalent to owl:Nothing.
Throws:
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().
InconsistentOntologyException - if the set of reasoner axioms is inconsistent

isEntailed

boolean isEntailed(OWLAxiom axiom)
                   throws ReasonerInterruptedException,
                          UnsupportedEntailmentTypeException,
                          TimeOutException,
                          AxiomNotInProfileException,
                          FreshEntitiesException,
                          InconsistentOntologyException
A convenience method that determines if the specified axiom is entailed by the set of reasoner axioms.

Parameters:
axiom - The axiom
Returns:
true if axiom is entailed by the reasoner axioms or false if axiom is not entailed by the reasoner axioms. true if the set of reasoner axioms is inconsistent.
Throws:
FreshEntitiesException - if the signature of the axiom is not contained within the signature of the imports closure of the root ontology.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().
UnsupportedEntailmentTypeException - if the reasoner cannot perform a check to see if the specified axiom is entailed
AxiomNotInProfileException - if axiom is not in the profile that is supported by this reasoner.
InconsistentOntologyException - if the set of reasoner axioms is inconsistent
See Also:
isEntailmentCheckingSupported(org.semanticweb.owlapi.model.AxiomType)

isEntailed

boolean isEntailed(java.util.Set<? extends OWLAxiom> axioms)
                   throws ReasonerInterruptedException,
                          UnsupportedEntailmentTypeException,
                          TimeOutException,
                          AxiomNotInProfileException,
                          FreshEntitiesException,
                          InconsistentOntologyException
Determines if the specified set of axioms is entailed by the reasoner axioms.

Parameters:
axioms - The set of axioms to be tested
Returns:
true if the set of axioms is entailed by the axioms in the imports closure of the root ontology, otherwise false. If the set of reasoner axioms is inconsistent then true.
Throws:
FreshEntitiesException - if the signature of the set of axioms is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().
UnsupportedEntailmentTypeException - if the reasoner cannot perform a check to see if the specified axiom is entailed
AxiomNotInProfileException - if axiom is not in the profile that is supported by this reasoner.
InconsistentOntologyException - if the set of reasoner axioms is inconsistent
See Also:
isEntailmentCheckingSupported(org.semanticweb.owlapi.model.AxiomType)

isEntailmentCheckingSupported

boolean isEntailmentCheckingSupported(AxiomType<?> axiomType)
Determines if entailment checking for the specified axiom type is supported.

Parameters:
axiomType - The axiom type
Returns:
true if entailment checking for the specified axiom type is supported, otherwise false. If true then asking isEntailed(org.semanticweb.owlapi.model.OWLAxiom) will not throw an exception of UnsupportedEntailmentTypeException. If false then asking isEntailed(org.semanticweb.owlapi.model.OWLAxiom) will throw an UnsupportedEntailmentTypeException.

getTopClassNode

Node<OWLClass> getTopClassNode()
Gets the Node corresponding to the top node (containing owl:Thing) in the class hierarchy.

Returns:
A Node containing owl:Thing that is the top node in the class hierarchy. This Node is essentially equal to the Node returned by calling getEquivalentClasses(org.semanticweb.owlapi.model.OWLClassExpression) with a parameter of owl:Thing.

getBottomClassNode

Node<OWLClass> getBottomClassNode()
Gets the Node corresponding to the bottom node (containing owl:Nothing) in the class hierarchy.

Returns:
A Node containing owl:Nothing that is the bottom node in the class hierarchy. This Node is essentially equal to the Node that will be returned by calling getEquivalentClasses(org.semanticweb.owlapi.model.OWLClassExpression) with a parameter of owl:Nothing.

getSubClasses

NodeSet<OWLClass> getSubClasses(OWLClassExpression ce,
                                boolean direct)
                                throws ReasonerInterruptedException,
                                       TimeOutException,
                                       FreshEntitiesException,
                                       InconsistentOntologyException,
                                       ClassExpressionNotInProfileException
Gets the set of named classes that are the strict (potentially direct) subclasses of the specified class expression with respect to the reasoner axioms. Note that the classes are returned as a NodeSet.

Parameters:
ce - The class expression whose strict (direct) subclasses are to be retrieved.
direct - Specifies if the direct subclasses should be retrived (true) or if the all subclasses (descendant) classes should be retrieved (false).
Returns:
If direct is true, a NodeSet such that for each class C in the NodeSet the set of reasoner axioms entails DirectSubClassOf(C, ce).

If direct is false, a NodeSet such that for each class C in the NodeSet the set of reasoner axioms entails StrictSubClassOf(C, ce).

If ce is equivalent to owl:Nothing then the empty NodeSet will be returned.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
ClassExpressionNotInProfileException - if classExpression is not within the profile that is supported by this reasoner.
FreshEntitiesException - if the signature of the classExpression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getSuperClasses

NodeSet<OWLClass> getSuperClasses(OWLClassExpression ce,
                                  boolean direct)
                                  throws InconsistentOntologyException,
                                         ClassExpressionNotInProfileException,
                                         FreshEntitiesException,
                                         ReasonerInterruptedException,
                                         TimeOutException
Gets the set of named classes that are the strict (potentially direct) super classes of the specified class expression with respect to the imports closure of the root ontology. Note that the classes are returned as a NodeSet.

Parameters:
ce - The class expression whose strict (direct) super classes are to be retrieved.
direct - Specifies if the direct super classes should be retrived (true) or if the all super classes (ancestors) classes should be retrieved (false).
Returns:
If direct is true, a NodeSet such that for each class C in the NodeSet the set of reasoner axioms entails DirectSubClassOf(ce, C).

If direct is false, a NodeSet such that for each class C in the NodeSet the set of reasoner axioms entails StrictSubClassOf(ce, C).

If ce is equivalent to owl:Thing then the empty NodeSet will be returned.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
ClassExpressionNotInProfileException - if classExpression is not within the profile that is supported by this reasoner.
FreshEntitiesException - if the signature of the classExpression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getEquivalentClasses

Node<OWLClass> getEquivalentClasses(OWLClassExpression ce)
                                    throws InconsistentOntologyException,
                                           ClassExpressionNotInProfileException,
                                           FreshEntitiesException,
                                           ReasonerInterruptedException,
                                           TimeOutException
Gets the set of named classes that are equivalent to the specified class expression with respect to the set of reasoner axioms. The classes are returned as a Node.

Parameters:
ce - The class expression whose equivalent classes are to be retrieved.
Returns:
A node containing the named classes such that for each named class C in the node the root ontology imports closure entails EquivalentClasses(ce C). If ce is not a class name (i.e. it is an anonymous class expression) and there are no such classes C then the node will be empty.

If ce is a named class then ce will be contained in the node.

If ce is unsatisfiable with respect to the set of reasoner axioms then the node representing and containing owl:Nothing, i.e. the bottom node, will be returned.

If ce is equivalent to owl:Thing with respect to the set of reasoner axioms then the node representing and containing owl:Thing, i.e. the top node, will be returned

.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
ClassExpressionNotInProfileException - if classExpression is not within the profile that is supported by this reasoner.
FreshEntitiesException - if the signature of the classExpression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getDisjointClasses

NodeSet<OWLClass> getDisjointClasses(OWLClassExpression ce)
                                     throws ReasonerInterruptedException,
                                            TimeOutException,
                                            FreshEntitiesException,
                                            InconsistentOntologyException
Gets the classes that are disjoint with the specified class expression ce. The classes are returned as a NodeSet.

Parameters:
ce - The class expression whose disjoint classes are to be retrieved.
Returns:
The return value is a NodeSet such that for each class D in the NodeSet the set of reasoner axioms entails EquivalentClasses(D, ObjectComplementOf(ce)) or StrictSubClassOf(D, ObjectComplementOf(ce)).
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
ClassExpressionNotInProfileException - if classExpression is not within the profile that is supported by this reasoner.
FreshEntitiesException - if the signature of the classExpression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getTopObjectPropertyNode

Node<OWLObjectPropertyExpression> getTopObjectPropertyNode()
Gets the Node corresponding to the top node (containing owl:topObjectProperty) in the object property hierarchy.

Returns:
A Node containing owl:topObjectProperty that is the top node in the object property hierarchy. This Node is essentially equivalent to the Node returned by calling getEquivalentObjectProperties(org.semanticweb.owlapi.model.OWLObjectPropertyExpression) with a parameter of owl:topObjectProperty.

getBottomObjectPropertyNode

Node<OWLObjectPropertyExpression> getBottomObjectPropertyNode()
Gets the Node corresponding to the bottom node (containing owl:bottomObjectProperty) in the object property hierarchy.

Returns:
A Node, containing owl:bottomObjectProperty, that is the bottom node in the object property hierarchy. This Node is essentially equal to the Node that will be returned by calling getEquivalentObjectProperties(org.semanticweb.owlapi.model.OWLObjectPropertyExpression) with a parameter of owl:bottomObjectProperty.

getSubObjectProperties

NodeSet<OWLObjectPropertyExpression> getSubObjectProperties(OWLObjectPropertyExpression pe,
                                                            boolean direct)
                                                            throws InconsistentOntologyException,
                                                                   FreshEntitiesException,
                                                                   ReasonerInterruptedException,
                                                                   TimeOutException
Gets the set of simplified object property expressions that are the strict (potentially direct) subproperties of the specified object property expression with respect to the imports closure of the root ontology. Note that the properties are returned as a NodeSet.

Parameters:
pe - The object property expression whose strict (direct) subproperties are to be retrieved.
direct - Specifies if the direct subproperties should be retrived (true) or if the all subproperties (descendants) should be retrieved (false).
Returns:
If direct is true, a NodeSet of simplified object property expressions, such that for each simplified object property expression, P, in the NodeSet the set of reasoner axioms entails DirectSubObjectPropertyOf(P, pe).

If direct is false, a NodeSet of simplified object property expressions, such that for each simplified object property expression, P, in the NodeSet the set of reasoner axioms entails StrictSubObjectPropertyOf(P, pe).

If pe is equivalent to owl:bottomObjectProperty then the empty NodeSet will be returned.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the object property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getSuperObjectProperties

NodeSet<OWLObjectPropertyExpression> getSuperObjectProperties(OWLObjectPropertyExpression pe,
                                                              boolean direct)
                                                              throws InconsistentOntologyException,
                                                                     FreshEntitiesException,
                                                                     ReasonerInterruptedException,
                                                                     TimeOutException
Gets the set of simplified object property expressions that are the strict (potentially direct) super properties of the specified object property expression with respect to the imports closure of the root ontology. Note that the properties are returned as a NodeSet.

Parameters:
pe - The object property expression whose strict (direct) super properties are to be retrieved.
direct - Specifies if the direct super properties should be retrived (true) or if the all super properties (ancestors) should be retrieved (false).
Returns:
If direct is true, a NodeSet of simplified object property expressions, such that for each simplified object property expression, P, in the NodeSet, the set of reasoner axioms entails DirectSubObjectPropertyOf(pe, P).

If direct is false, a NodeSet of simplified object property expressions, such that for each simplified object property expression, P, in the NodeSet, the set of reasoner axioms entails StrictSubObjectPropertyOf(pe, P).

If pe is equivalent to owl:topObjectProperty then the empty NodeSet will be returned.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the object property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getEquivalentObjectProperties

Node<OWLObjectPropertyExpression> getEquivalentObjectProperties(OWLObjectPropertyExpression pe)
                                                                throws InconsistentOntologyException,
                                                                       FreshEntitiesException,
                                                                       ReasonerInterruptedException,
                                                                       TimeOutException
Gets the set of simplified object property expressions that are equivalent to the specified object property expression with respect to the set of reasoner axioms. The properties are returned as a Node.

Parameters:
pe - The object property expression whose equivalent properties are to be retrieved.
Returns:
A node containing the simplified object property expressions such that for each simplified object property expression, P, in the node, the set of reasoner axioms entails EquivalentObjectProperties(pe P).

If pe is a simplified object property expression then pe will be contained in the node.

If pe is unsatisfiable with respect to the set of reasoner axioms then the node representing and containing owl:bottomObjectProperty, i.e. the bottom node, will be returned.

If pe is equivalent to owl:topObjectProperty with respect to the set of reasoner axioms then the node representing and containing owl:topObjectProperty, i.e. the top node, will be returned

.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the object property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getDisjointObjectProperties

NodeSet<OWLObjectPropertyExpression> getDisjointObjectProperties(OWLObjectPropertyExpression pe)
                                                                 throws InconsistentOntologyException,
                                                                        FreshEntitiesException,
                                                                        ReasonerInterruptedException,
                                                                        TimeOutException
Gets the simplified object property expressions that are disjoint with the specified object property expression pe. The object properties are returned as a NodeSet.

Parameters:
pe - The object property expression whose disjoint object properties are to be retrieved.
Returns:
The return value is a NodeSet of simplified object property expressions, such that for each simplified object property expression, P, in the NodeSet the set of reasoner axioms entails EquivalentObjectProperties(P, ObjectPropertyComplementOf(pe)) or StrictSubObjectPropertyOf(P, ObjectPropertyComplementOf(pe)).
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
ClassExpressionNotInProfileException - if object propertyExpression is not within the profile that is supported by this reasoner.
FreshEntitiesException - if the signature of pe is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getInverseObjectProperties

Node<OWLObjectPropertyExpression> getInverseObjectProperties(OWLObjectPropertyExpression pe)
                                                             throws InconsistentOntologyException,
                                                                    FreshEntitiesException,
                                                                    ReasonerInterruptedException,
                                                                    TimeOutException
Gets the set of simplified object property expressions that are the inverses of the specified object property expression with respect to the imports closure of the root ontology. The properties are returned as a NodeSet

Parameters:
pe - The property expression whose inverse properties are to be retrieved.
Returns:
A NodeSet of simplified object property expressions, such that for each simplified object property expression P in the nodes set, the set of reasoner axioms entails InverseObjectProperties(pe, P).
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the object property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getObjectPropertyDomains

NodeSet<OWLClass> getObjectPropertyDomains(OWLObjectPropertyExpression pe,
                                           boolean direct)
                                           throws InconsistentOntologyException,
                                                  FreshEntitiesException,
                                                  ReasonerInterruptedException,
                                                  TimeOutException
Gets the named classes that are the direct or indirect domains of this property with respect to the imports closure of the root ontology. The classes are returned as a NodeSet.

Parameters:
pe - The property expression whose domains are to be retrieved.
direct - Specifies if the direct domains should be retrieved (true), or if all domains should be retrieved (false).
Returns:
Let N = getEquivalentClasses(ObjectSomeValuesFrom(pe owl:Thing)).

If direct is true: then if N is not empty then the return value is N, else the return value is the result of getSuperClasses(ObjectSomeValuesFrom(pe owl:Thing), true).

If direct is false: then the result of getSuperClasses(ObjectSomeValuesFrom(pe owl:Thing), false) together with N if N is non-empty.

Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the object property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getObjectPropertyRanges

NodeSet<OWLClass> getObjectPropertyRanges(OWLObjectPropertyExpression pe,
                                          boolean direct)
                                          throws InconsistentOntologyException,
                                                 FreshEntitiesException,
                                                 ReasonerInterruptedException,
                                                 TimeOutException
Gets the named classes that are the direct or indirect ranges of this property with respect to the imports closure of the root ontology. The classes are returned as a NodeSet.

Parameters:
pe - The property expression whose ranges are to be retrieved.
direct - Specifies if the direct ranges should be retrieved (true), or if all ranges should be retrieved (false).
Returns:
Let N = getEquivalentClasses(ObjectSomeValuesFrom(ObjectInverseOf(pe) owl:Thing)).

If direct is true: then if N is not empty then the return value is N, else the return value is the result of getSuperClasses(ObjectSomeValuesFrom(ObjectInverseOf(pe) owl:Thing), true).

If direct is false: then the result of getSuperClasses(ObjectSomeValuesFrom(ObjectInverseOf(pe) owl:Thing), false) together with N if N is non-empty.

Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the object property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getTopDataPropertyNode

Node<OWLDataProperty> getTopDataPropertyNode()
Gets the Node corresponding to the top node (containing owl:topDataProperty) in the data property hierarchy.

Returns:
A Node, containing owl:topDataProperty, that is the top node in the data property hierarchy. This Node is essentially equal to the Node returned by calling getEquivalentDataProperties(org.semanticweb.owlapi.model.OWLDataProperty) with a parameter of owl:topDataProperty.

getBottomDataPropertyNode

Node<OWLDataProperty> getBottomDataPropertyNode()
Gets the Node corresponding to the bottom node (containing owl:bottomDataProperty) in the data property hierarchy.

Returns:
A Node, containing owl:bottomDataProperty, that is the bottom node in the data property hierarchy. This Node is essentially equal to the Node that will be returned by calling getEquivalentDataProperties(org.semanticweb.owlapi.model.OWLDataProperty) with a parameter of owl:bottomDataProperty.

getSubDataProperties

NodeSet<OWLDataProperty> getSubDataProperties(OWLDataProperty pe,
                                              boolean direct)
                                              throws InconsistentOntologyException,
                                                     FreshEntitiesException,
                                                     ReasonerInterruptedException,
                                                     TimeOutException
Gets the set of named data properties that are the strict (potentially direct) subproperties of the specified data property expression with respect to the imports closure of the root ontology. Note that the properties are returned as a NodeSet.

Parameters:
pe - The data property whose strict (direct) subproperties are to be retrieved.
direct - Specifies if the direct subproperties should be retrived (true) or if the all subproperties (descendants) should be retrieved (false).
Returns:
If direct is true, a NodeSet such that for each property P in the NodeSet the set of reasoner axioms entails DirectSubDataPropertyOf(P, pe).

If direct is false, a NodeSet such that for each property P in the NodeSet the set of reasoner axioms entails StrictSubDataPropertyOf(P, pe).

If pe is equivalent to owl:bottomDataProperty then the empty NodeSet will be returned.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the data property is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getSuperDataProperties

NodeSet<OWLDataProperty> getSuperDataProperties(OWLDataProperty pe,
                                                boolean direct)
                                                throws InconsistentOntologyException,
                                                       FreshEntitiesException,
                                                       ReasonerInterruptedException,
                                                       TimeOutException
Gets the set of named data properties that are the strict (potentially direct) super properties of the specified data property with respect to the imports closure of the root ontology. Note that the properties are returned as a NodeSet.

Parameters:
pe - The data property whose strict (direct) super properties are to be retrieved.
direct - Specifies if the direct super properties should be retrived (true) or if the all super properties (ancestors) should be retrieved (false).
Returns:
If direct is true, a NodeSet such that for each property P in the NodeSet the set of reasoner axioms entails DirectSubDataPropertyOf(pe, P).

If direct is false, a NodeSet such that for each property P in the NodeSet the set of reasoner axioms entails StrictSubDataPropertyOf(pe, P).

If pe is equivalent to owl:topDataProperty then the empty NodeSet will be returned.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the data property is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getEquivalentDataProperties

Node<OWLDataProperty> getEquivalentDataProperties(OWLDataProperty pe)
                                                  throws InconsistentOntologyException,
                                                         FreshEntitiesException,
                                                         ReasonerInterruptedException,
                                                         TimeOutException
Gets the set of named data properties that are equivalent to the specified data property expression with respect to the imports closure of the root ontology. The properties are returned as a Node.

Parameters:
pe - The data property expression whose equivalent properties are to be retrieved.
Returns:
A node containing the named data properties such that for each named data property P in the node, the set of reasoner axioms entails EquivalentDataProperties(pe P).

If pe is a named data property then pe will be contained in the node.

If pe is unsatisfiable with respect to the set of reasoner axioms then the node representing and containing owl:bottomDataProperty, i.e. the bottom node, will be returned.

If ce is equivalent to owl:topDataProperty with respect to the set of reasoner axioms then the node representing and containing owl:topDataProperty, i.e. the top node, will be returned

.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the data property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getDisjointDataProperties

NodeSet<OWLDataProperty> getDisjointDataProperties(OWLDataPropertyExpression pe)
                                                   throws InconsistentOntologyException,
                                                          FreshEntitiesException,
                                                          ReasonerInterruptedException,
                                                          TimeOutException
Gets the data properties that are disjoint with the specified data property expression pe. The data properties are returned as a NodeSet.

Parameters:
pe - The data property expression whose disjoint data properties are to be retrieved.
Returns:
The return value is a NodeSet such that for each data property P in the NodeSet the set of reasoner axioms entails EquivalentDataProperties(P, DataPropertyComplementOf(pe)) or StrictSubDataPropertyOf(P, DataPropertyComplementOf(pe)).
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
ClassExpressionNotInProfileException - if data propertyExpression is not within the profile that is supported by this reasoner.
FreshEntitiesException - if the signature of pe is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getDataPropertyDomains

NodeSet<OWLClass> getDataPropertyDomains(OWLDataProperty pe,
                                         boolean direct)
                                         throws InconsistentOntologyException,
                                                FreshEntitiesException,
                                                ReasonerInterruptedException,
                                                TimeOutException
Gets the named classes that are the direct or indirect domains of this property with respect to the imports closure of the root ontology. The classes are returned as a NodeSet.

Parameters:
pe - The property expression whose domains are to be retrieved.
direct - Specifies if the direct domains should be retrieved (true), or if all domains should be retrieved (false).
Returns:
Let N = getEquivalentClasses(DataSomeValuesFrom(pe rdfs:Literal)).

If direct is true: then if N is not empty then the return value is N, else the return value is the result of getSuperClasses(DataSomeValuesFrom(pe rdfs:Literal), true).

If direct is false: then the result of getSuperClasses(DataSomeValuesFrom(pe rdfs:Literal), false) together with N if N is non-empty.

(Note, rdfs:Literal is the top datatype).

Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the object property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getTypes

NodeSet<OWLClass> getTypes(OWLNamedIndividual ind,
                           boolean direct)
                           throws InconsistentOntologyException,
                                  FreshEntitiesException,
                                  ReasonerInterruptedException,
                                  TimeOutException
Gets the named classes which are (potentially direct) types of the specified named individual. The classes are returned as a NodeSet.

Parameters:
ind - The individual whose types are to be retrieved.
direct - Specifies if the direct types should be retrieved (true), or if all types should be retrieved (false).
Returns:
If direct is true, a NodeSet containing named classes such that for each named class C in the node set, the set of reasoner axioms entails DirectClassAssertion(C, ind).

If direct is false, a NodeSet containing named classes such that for each named class C in the node set, the set of reasoner axioms entails ClassAssertion(C, ind).

Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the individual is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getInstances

NodeSet<OWLNamedIndividual> getInstances(OWLClassExpression ce,
                                         boolean direct)
                                         throws InconsistentOntologyException,
                                                ClassExpressionNotInProfileException,
                                                FreshEntitiesException,
                                                ReasonerInterruptedException,
                                                TimeOutException
Gets the individuals which are instances of the specified class expression. The individuals are returned a a NodeSet.

Parameters:
ce - The class expression whose instances are to be retrieved.
direct - Specifies if the direct instances should be retrieved (true), or if all instances should be retrieved (false).
Returns:
If direct is true, a NodeSet containing named individuals such that for each named individual j in the node set, the set of reasoner axioms entails DirectClassAssertion(ce, j).

If direct is false, a NodeSet containing named individuals such that for each named individual j in the node set, the set of reasoner axioms entails ClassAssertion(ce, j).

If ce is unsatisfiable with respect to the set of reasoner axioms then the empty NodeSet is returned.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
ClassExpressionNotInProfileException - if the class expression ce is not in the profile that is supported by this reasoner.
FreshEntitiesException - if the signature of the class expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().
See Also:
org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy}

getObjectPropertyValues

NodeSet<OWLNamedIndividual> getObjectPropertyValues(OWLNamedIndividual ind,
                                                    OWLObjectPropertyExpression pe)
                                                    throws InconsistentOntologyException,
                                                           FreshEntitiesException,
                                                           ReasonerInterruptedException,
                                                           TimeOutException
Gets the object property values for the specified individual and object property expression. The individuals are returned as a NodeSet.

Parameters:
ind - The individual that is the subject of the object property values
pe - The object property expression whose values are to be retrieved for the specified individual
Returns:
A NodeSet containing named individuals such that for each individual j in the node set, the set of reasoner axioms entails ObjectPropertyAssertion(pe ind j).
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the individual and property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().
See Also:
org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy}

getDataPropertyValues

java.util.Set<OWLLiteral> getDataPropertyValues(OWLNamedIndividual ind,
                                                OWLDataProperty pe)
                                                throws InconsistentOntologyException,
                                                       FreshEntitiesException,
                                                       ReasonerInterruptedException,
                                                       TimeOutException
Gets the data property values for the specified individual and data property expression. The values are a set of literals. Note that the results are not guaranteed to be complete for this method. The reasoner may also return canonical literals or they may be in a form that bears a resemblance to the syntax of the literals in the root ontology imports closure.

Parameters:
ind - The individual that is the subject of the data property values
pe - The data property expression whose values are to be retrieved for the specified individual
Returns:
A set of OWLLiterals containing literals such that for each literal l in the set, the set of reasoner axioms entails DataPropertyAssertion(pe ind l).
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the individual and property expression is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().
See Also:
org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy}

getSameIndividuals

Node<OWLNamedIndividual> getSameIndividuals(OWLNamedIndividual ind)
                                            throws InconsistentOntologyException,
                                                   FreshEntitiesException,
                                                   ReasonerInterruptedException,
                                                   TimeOutException
Gets the individuals that are the same as the specified individual.

Parameters:
ind - The individual whose same individuals are to be retrieved.
Returns:
A node containing individuals such that for each individual j in the node, the root ontology imports closure entails SameIndividual(j, ind). Note that the node will contain j.
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the individual is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getDifferentIndividuals

NodeSet<OWLNamedIndividual> getDifferentIndividuals(OWLNamedIndividual ind)
                                                    throws InconsistentOntologyException,
                                                           FreshEntitiesException,
                                                           ReasonerInterruptedException,
                                                           TimeOutException
Gets the individuals which are entailed to be different from the specified individual. The individuals are returned as a NodeSet.

Parameters:
ind - The individual whose different individuals are to be returned.
Returns:
A NodeSet containing OWLNamedIndividuals such that for each individual i in the NodeSet the set of reasoner axioms entails DifferentIndividuals(ind, i).
Throws:
InconsistentOntologyException - if the imports closure of the root ontology is inconsistent
FreshEntitiesException - if the signature of the individual is not contained within the signature of the imports closure of the root ontology and the undeclared entity policy of this reasoner is set to FreshEntityPolicy.DISALLOW.
ReasonerInterruptedException - if the reasoning process was interrupted for any particular reason (for example if reasoning was cancelled by a client process)
TimeOutException - if the reasoner timed out during a basic reasoning operation. See getTimeOut().

getTimeOut

long getTimeOut()
Gets the time out (in milliseconds) for the most basic reasoning operations. That is the maximum time for a satisfiability test, subsumption test etc. The time out should be set at reasoner creation time. During satisfiability (subsumption) checking the reasoner will check to see if the time it has spent doing the single check is longer than the value returned by this method. If this is the case, the reasoner will throw a TimeOutException in the thread that is executing the reasoning process.

Note that clients that want a higher level timeout, at the level of classification for example, should start their own timers and request that the reasoner interrupts the current process using the interrupt() method.

Returns:
The time out in milliseconds for basic reasoner operation. By default this is the value of Long.MAX_VALUE.

getFreshEntityPolicy

FreshEntityPolicy getFreshEntityPolicy()
Gets the Fresh Entity Policy in use by this reasoner. The policy is set at reasoner creation time.

Returns:
The policy.

getIndividualNodeSetPolicy

IndividualNodeSetPolicy getIndividualNodeSetPolicy()
Gets the IndividualNodeSetPolicy in use by this reasoner. The policy is set at reasoner creation time.

Returns:
The policy.

dispose

void dispose()
Disposes of this reasoner. This frees up any resources used by the reasoner and detaches the reasoner as an OWLOntologyChangeListener from the OWLOntologyManager that manages the ontologies contained within the reasoner.