org.semanticweb.HermiT
Class Configuration

java.lang.Object
  extended by org.semanticweb.HermiT.Configuration
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration

public class Configuration
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable, org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration

See Also:
Serialized Form

Nested Class Summary
static class Configuration.BlockingSignatureCacheType
          Switches caching on or off (caching can only be used with non-core blocking and if the ontology does not contain nominals).
static class Configuration.BlockingStrategyType
          The blocking strategy determines how which nodes HermiT considers for blockers.
static class Configuration.DirectBlockingType
          Sets the blocking type used by HermiT.
static class Configuration.ExistentialStrategyType
          Sets a strategy type that determines how HermiT expands the model.
static class Configuration.PrepareReasonerInferences
           
static class Configuration.TableauMonitorType
          Tableau monitors can be used to be informed about what HermiT does and they can be useful for debugging the reasoner.
static interface Configuration.WarningMonitor
           
 
Field Summary
 Configuration.BlockingSignatureCacheType blockingSignatureCacheType
           
 Configuration.BlockingStrategyType blockingStrategyType
           
 boolean bufferChanges
          If set to true axioms that are to be added or removed are buffered and the addition and removal is only performed when the flush() method of the reasoner is called.
 boolean checkClauses
          HermiT checks whether all clauses are safe.
 Configuration.DirectBlockingType directBlockingType
           
 Configuration.ExistentialStrategyType existentialStrategyType
           
 boolean forceQuasiOrderClassification
          The default value is false and HermiT will use a specialiased classification strategy for deterministic ontologies, which often is faster, but not always.
 org.semanticweb.owlapi.reasoner.FreshEntityPolicy freshEntityPolicy
           
 boolean ignoreUnsupportedDatatypes
          If HermiT encounters a non-OWL2 datatype, it normally throws an error.
 org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy individualNodeSetPolicy
           
 long individualTaskTimeout
          If set to some value, reasoning in HermiT is interrupted as soon as any individual reasoning task takes any longer than individualTaskTimeout ms.
 TableauMonitor monitor
          Can be used to set a custom Tableau monitor.
 java.util.Map<java.lang.String,java.lang.Object> parameters
          The parameters are passed to the Tableau class instance, but currently no parameters are used.
 Configuration.PrepareReasonerInferences prepareReasonerInferences
           
 org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor reasonerProgressMonitor
          If a progress monitor is set, HermiT will report the progress of a classification task.
 Configuration.TableauMonitorType tableauMonitorType
           
 boolean throwInconsistentOntologyException
          The default value is true and HermiT will throw an exception if it finds the ontology to be inconsistent.
 boolean useDisjunctionLearning
          If set to true, then each disjunct of a disjunction is associated with a punish factor and whenever a disjunct causes a clash, the punish factor is increased.
 Configuration.WarningMonitor warningMonitor
          One can implement an instance of this class and pass it to HermiT.
 
Constructor Summary
Configuration()
           
 
Method Summary
 Configuration clone()
           
 org.semanticweb.owlapi.reasoner.FreshEntityPolicy getFreshEntityPolicy()
           
 org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy getIndividualNodeSetPolicy()
           
 org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor getProgressMonitor()
           
 long getTimeOut()
           
protected  java.util.Set<AtomicConcept> loadConceptsFromFile(java.io.File file)
           
 void loadIndividualReuseStrategyReuseAlways(java.io.File file)
           
 void loadIndividualReuseStrategyReuseNever(java.io.File file)
           
protected  void setIndividualReuseStrategyReuseAlways(java.util.Set<? extends AtomicConcept> concepts)
           
protected  void setIndividualReuseStrategyReuseNever(java.util.Set<? extends AtomicConcept> concepts)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

warningMonitor

public Configuration.WarningMonitor warningMonitor
One can implement an instance of this class and pass it to HermiT. HermiT will then print warning with the warning() method of the interface, e.g., if it ignores an unsupported datatype. HermiT does not provide an implementation for the interface itself though.


reasonerProgressMonitor

public org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor reasonerProgressMonitor
If a progress monitor is set, HermiT will report the progress of a classification task. This is used for example by Protege.


tableauMonitorType

public Configuration.TableauMonitorType tableauMonitorType

directBlockingType

public Configuration.DirectBlockingType directBlockingType

blockingStrategyType

public Configuration.BlockingStrategyType blockingStrategyType

blockingSignatureCacheType

public Configuration.BlockingSignatureCacheType blockingSignatureCacheType

existentialStrategyType

public Configuration.ExistentialStrategyType existentialStrategyType

checkClauses

public boolean checkClauses
HermiT checks whether all clauses are safe. Non-safe clauses might cause problems in HermiT (non-termination), but sometimes one might want to play with non-safe rules or such like.


ignoreUnsupportedDatatypes

public boolean ignoreUnsupportedDatatypes
If HermiT encounters a non-OWL2 datatype, it normally throws an error. If set to true, axioms containing unsupported datatypes will be ignored.


monitor

public TableauMonitor monitor
Can be used to set a custom Tableau monitor.


parameters

public java.util.Map<java.lang.String,java.lang.Object> parameters
The parameters are passed to the Tableau class instance, but currently no parameters are used.


individualTaskTimeout

public long individualTaskTimeout
If set to some value, reasoning in HermiT is interrupted as soon as any individual reasoning task takes any longer than individualTaskTimeout ms.


individualNodeSetPolicy

public org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy individualNodeSetPolicy

freshEntityPolicy

public org.semanticweb.owlapi.reasoner.FreshEntityPolicy freshEntityPolicy

useDisjunctionLearning

public boolean useDisjunctionLearning
If set to true, then each disjunct of a disjunction is associated with a punish factor and whenever a disjunct causes a clash, the punish factor is increased. Whenever HermiT has to pick a disjunction, it picks the disjunction with the least punish factor that has not yet been tried for that node and disjunction.


bufferChanges

public boolean bufferChanges
If set to true axioms that are to be added or removed are buffered and the addition and removal is only performed when the flush() method of the reasoner is called.


throwInconsistentOntologyException

public boolean throwInconsistentOntologyException
The default value is true and HermiT will throw an exception if it finds the ontology to be inconsistent. If set to false, HermiT will not throw an exception for inconsistent ontologies. The only exception is when asked for data property values for an individual and a data property because any of the infinitely many data values would be an answer. Restricting answers to just the data values in the signature does not make much sense. If the parameter is set to false and the ontology is inconsistent, all classes occurring in the ontology are, for example, returned as subclasses of owl:nothing. Some answers might be unexpected or unintuitive, e.g., a property will be both reflexive and irreflexive etc. Use with care, e.g., only when trying to get explanations of inconsistencies, where throwing an error might not be helpful.


prepareReasonerInferences

public Configuration.PrepareReasonerInferences prepareReasonerInferences

forceQuasiOrderClassification

public boolean forceQuasiOrderClassification
The default value is false and HermiT will use a specialiased classification strategy for deterministic ontologies, which often is faster, but not always. If the value is set to true, then HermiT will use the Quasi Ordering Classification method even for deterministic ontologies.

Constructor Detail

Configuration

public Configuration()
Method Detail

setIndividualReuseStrategyReuseAlways

protected void setIndividualReuseStrategyReuseAlways(java.util.Set<? extends AtomicConcept> concepts)

loadIndividualReuseStrategyReuseAlways

public void loadIndividualReuseStrategyReuseAlways(java.io.File file)
                                            throws java.io.IOException
Throws:
java.io.IOException

setIndividualReuseStrategyReuseNever

protected void setIndividualReuseStrategyReuseNever(java.util.Set<? extends AtomicConcept> concepts)

loadIndividualReuseStrategyReuseNever

public void loadIndividualReuseStrategyReuseNever(java.io.File file)
                                           throws java.io.IOException
Throws:
java.io.IOException

loadConceptsFromFile

protected java.util.Set<AtomicConcept> loadConceptsFromFile(java.io.File file)
                                                     throws java.io.IOException
Throws:
java.io.IOException

clone

public Configuration clone()
Overrides:
clone in class java.lang.Object

getTimeOut

public long getTimeOut()
Specified by:
getTimeOut in interface org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration

getIndividualNodeSetPolicy

public org.semanticweb.owlapi.reasoner.IndividualNodeSetPolicy getIndividualNodeSetPolicy()
Specified by:
getIndividualNodeSetPolicy in interface org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration

getProgressMonitor

public org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor getProgressMonitor()
Specified by:
getProgressMonitor in interface org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration

getFreshEntityPolicy

public org.semanticweb.owlapi.reasoner.FreshEntityPolicy getFreshEntityPolicy()
Specified by:
getFreshEntityPolicy in interface org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration