Class SchemaCachingRDFSInferencer
- java.lang.Object
-
- org.eclipse.rdf4j.sail.helpers.SailWrapper
-
- org.eclipse.rdf4j.sail.helpers.NotifyingSailWrapper
-
- org.eclipse.rdf4j.sail.inferencer.fc.SchemaCachingRDFSInferencer
-
- All Implemented Interfaces:
FederatedServiceResolverClient,NotifyingSail,Sail,StackableSail
public class SchemaCachingRDFSInferencer extends org.eclipse.rdf4j.sail.helpers.NotifyingSailWrapperThe SchemaCachingRDFSInferencer is an RDFS reasoner that caches all schema (TBox) statements and calculates an inference map to quickly determine inferred statements. The reasoner can also be instantiated with a predefined schema for improved performance.
This reasoner is not a rule based reasoner and will be up to 80x faster than the
ForwardChainingRDFSInferencer, as well as being more complete.The sail puts no limitations on isolation level for read transactions, however all write/delete/update transactions are serializable with exclusive locks. This limits write/delete/update transactions to one transaction at a time.
- Author:
- HÃ¥vard Mikkelsen Ottestad
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanuseInferredToCreateSchema
-
Constructor Summary
Constructors Constructor Description SchemaCachingRDFSInferencer()Instantiate a new SchemaCachingRDFSInferencerSchemaCachingRDFSInferencer(NotifyingSail data)Instantiate a SchemaCachingRDFSInferencer.SchemaCachingRDFSInferencer(NotifyingSail data, boolean useAllRdfsRules)Instantiate a SchemaCachingRDFSInferencer.SchemaCachingRDFSInferencer(NotifyingSail data, Repository predefinedSchema)Instantiate a SchemaCachingRDFSInferencer with a predefined schema.SchemaCachingRDFSInferencer(NotifyingSail data, Repository predefinedSchema, boolean useAllRdfsRules)Instantiate a SchemaCachingRDFSInferencer with a predefined schema.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SchemaCachingRDFSInferencerfastInstantiateFrom(SchemaCachingRDFSInferencer sailToInstantiateFrom, NotifyingSail store)Instantiate a new SchemaCachingRDFSInferencer from an existing one.static SchemaCachingRDFSInferencerfastInstantiateFrom(SchemaCachingRDFSInferencer sailToInstantiateFrom, NotifyingSail store, boolean useAllRdfsRules)Instantiate a new SchemaCachingRDFSInferencer from an existing one.SchemaCachingRDFSInferencerConnectiongetConnection()org.eclipse.rdf4j.common.transaction.IsolationLevelgetDefaultIsolationLevel()org.eclipse.rdf4j.model.ValueFactorygetValueFactory()voidinit()booleanisAddInferredStatementsToDefaultContext()Inferred statements can either be added to the default context or to the context that the original inserted statement has.voidsetAddInferredStatementsToDefaultContext(boolean addInferredStatementsToDefaultContext)Inferred statements can either be added to the default context or to the context that the original inserted statement has.-
Methods inherited from class org.eclipse.rdf4j.sail.helpers.NotifyingSailWrapper
addSailChangedListener, getBaseSail, removeSailChangedListener, setBaseSail
-
Methods inherited from class org.eclipse.rdf4j.sail.helpers.SailWrapper
getCollectionFactory, getDataDir, getFederatedServiceResolver, getSupportedIsolationLevels, isWritable, setDataDir, setFederatedServiceResolver, shutDown, verifyBaseSailSet
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.sail.Sail
getCollectionFactory, getDataDir, getSupportedIsolationLevels, isWritable, setDataDir, shutDown
-
-
-
-
Constructor Detail
-
SchemaCachingRDFSInferencer
public SchemaCachingRDFSInferencer()
Instantiate a new SchemaCachingRDFSInferencer
-
SchemaCachingRDFSInferencer
public SchemaCachingRDFSInferencer(NotifyingSail data)
Instantiate a SchemaCachingRDFSInferencer.- Parameters:
data- Base sail for storing data.
-
SchemaCachingRDFSInferencer
public SchemaCachingRDFSInferencer(NotifyingSail data, Repository predefinedSchema)
Instantiate a SchemaCachingRDFSInferencer with a predefined schema. The schema will be used for inference, all other schema statements added will be ignored and no schema statements can be removed. Using a predefined schema significantly improves performance.- Parameters:
data- Base sail for storing data.predefinedSchema- Repository containing the schema.
-
SchemaCachingRDFSInferencer
public SchemaCachingRDFSInferencer(NotifyingSail data, boolean useAllRdfsRules)
Instantiate a SchemaCachingRDFSInferencer.- Parameters:
data- Base sail for storing data.useAllRdfsRules- Usel all RDFS rules. If set to false rule rdf4a and rdfs4b will be ignore
-
SchemaCachingRDFSInferencer
public SchemaCachingRDFSInferencer(NotifyingSail data, Repository predefinedSchema, boolean useAllRdfsRules)
Instantiate a SchemaCachingRDFSInferencer with a predefined schema. The schema will be used for inference, all other schema statements added will be ignored and no schema statements can be removed. Using a predefined schema significantly improves performance.- Parameters:
data- Base sail for storing data.predefinedSchema- Repository containing the schema.useAllRdfsRules- Usel all RDFS rules. If set to false rule rdf4a and rdfs4b will be ignore
-
-
Method Detail
-
init
public void init() throws SailException- Specified by:
initin interfaceSail- Overrides:
initin classorg.eclipse.rdf4j.sail.helpers.SailWrapper- Throws:
SailException
-
getConnection
public SchemaCachingRDFSInferencerConnection getConnection() throws SailException
- Specified by:
getConnectionin interfaceNotifyingSail- Specified by:
getConnectionin interfaceSail- Overrides:
getConnectionin classorg.eclipse.rdf4j.sail.helpers.NotifyingSailWrapper- Throws:
SailException
-
getValueFactory
public org.eclipse.rdf4j.model.ValueFactory getValueFactory()
- Specified by:
getValueFactoryin interfaceSail- Overrides:
getValueFactoryin classorg.eclipse.rdf4j.sail.helpers.SailWrapper
-
fastInstantiateFrom
public static SchemaCachingRDFSInferencer fastInstantiateFrom(SchemaCachingRDFSInferencer sailToInstantiateFrom, NotifyingSail store)
Instantiate a new SchemaCachingRDFSInferencer from an existing one. Fast instantiation extracts the schema lookup tables generated by the existing sail and uses them to populate the lookup tables of a new reasoner. Schema triples can not be queried in the SchemaCachingRDFSInferencer returned by this method.- Parameters:
sailToInstantiateFrom- The SchemaCachingRDFSInferencer to extract the lookup tables from.store- Base sail for storing data.- Returns:
- inferencer
-
fastInstantiateFrom
public static SchemaCachingRDFSInferencer fastInstantiateFrom(SchemaCachingRDFSInferencer sailToInstantiateFrom, NotifyingSail store, boolean useAllRdfsRules)
Instantiate a new SchemaCachingRDFSInferencer from an existing one. Fast instantiation extracts the schema lookup tables generated by the existing sail and uses them to populate the lookup tables of a new reasoner. Schema triples can not be queried in the SchemaCachingRDFSInferencer returned by this method.- Parameters:
sailToInstantiateFrom- The SchemaCachingRDFSInferencer to extract the lookup tables from.store- Base sail for storing data.useAllRdfsRules- Use all RDFS rules. If set to false rule rdf4a and rdfs4b will be ignore- Returns:
- inferencer
-
getDefaultIsolationLevel
public org.eclipse.rdf4j.common.transaction.IsolationLevel getDefaultIsolationLevel()
- Specified by:
getDefaultIsolationLevelin interfaceSail- Overrides:
getDefaultIsolationLevelin classorg.eclipse.rdf4j.sail.helpers.SailWrapper
-
isAddInferredStatementsToDefaultContext
public boolean isAddInferredStatementsToDefaultContext()
Inferred statements can either be added to the default context or to the context that the original inserted statement has.
-
setAddInferredStatementsToDefaultContext
public void setAddInferredStatementsToDefaultContext(boolean addInferredStatementsToDefaultContext)
Inferred statements can either be added to the default context or to the context that the original inserted statement has. setAddInferredStatementsToDefaultContext(true) will add all inferred statements to the default context.
Which context a tbox statement is added to is undefined.
Before 3.0 default value for addInferredStatementsToDefaultContext was true. From 3.0 the default value is false.
- Parameters:
addInferredStatementsToDefaultContext-
-
-