RepositoryImpl Configurer
The Purpose
Each project inside Semantic Turkey is associated with a local RDF4J
RepositoryManager that is in charge of managing the lifecycle of the RDF repositories backing the project. Indeed,
a project has always a
core repository containing the data being edited, and optionally a
support repository containing history/validation metadata. Additional repositories can be created for different purposes,
such as creating a snapshot of a specific version of the
core repository. A
RepositoryImplConfigurer is able to configure a specific type of repository.
The Model
In RDF4J the configuration of a repository (
RepositoryConfig) contains a reference to a
RepositoryImplConfig, which tells the nature of the repository (e.g. a sail-based one, or a remote repository) together
with specific configuration properties. Semantic Turkey neatly distinguishes remote repositories from local ones, since
the former are managed natively by Semantic Turkey, while in the latter case a
RepositoryImplConfigurer is used to instantiate the repository configuration. Assuming that the configured repository
is sail-based, an optional function is passed to the configurer, which is in charge to decorate the backend sail with
further sails, such as the one implementing history/validation.
Extension Point Details
The tables below summarizes the details of the
RepositoryImplConfigurer extension point.
Name |
RepositoryImpl Configurer |
Description |
A
RepositoryImplConfigurer creates a
RepositoryImplConfig for a specific triple store technology |
Identifier |
it.uniroma2.art.semanticturkey.extension.extpts.repositoryimplconfigurer.RepositoryImplConfigurer |
Configuration |
n/a |
Settings |
n/a |
Interfaces
The following interface defines the contract for the
RepositoryImplConfigurer extension point.
/**
* A component providing the configuration for a {@link RepositoryImplConfig}.
*/
public interface RepositoryImplConfigurer extends Extension {
/**
* Builds a {@link RepositoryImplConfig}, considering the provided <code>backend decorator</code> (if not
* <code>null</code>). A <code>backend decorator</code> wraps the backed sail with any stackable sail
* (useful to add history/validation).
*
* @param backendDecorator
* @return
*/
RepositoryImplConfig buildRepositoryImplConfig(
@Nullable Function<SailImplConfig, SailImplConfig> backendDecorator);
}
Choosing and Configuring a RepositoryImpl Configurer
RepositoryImplConfigurer can be created on demand by the system as it is needed to create a local repository or to
create a repository on a remote server. Nonetheless, they are usually configurable components, the configurations of which
can be stored according to the standard
configuration/settings
mechanism.
RepositoryImplConfigurer Implementations
Predefined RepositoryImpl Configurer
Name |
Predefined RepositoryImpl Configurer |
Description |
A RepositoryImplConfigurer that supports various configurations backed by
Eclipse RDF4J or
Ontotext GraphDB
|
Identifier |
it.uniroma2.art.semanticturkey.extension.impl.repositoryimplconfigurer.predefined.PredefinedRepositoryImplConfigurer |
Configuration |
Scopes:
PROJECT ,
USER ,
GraphDB Free (remote only) (it.uniroma2.art.semanticturkey.extension.impl.repositoryimplconfigurer.predefined.GraphDBFreeConfigurerConfiguration )
|
baseURL (baseURL ) |
BASE URL (owlim:base-URL) |
java.lang.String (default:
"" )
|
Optional |
|
defaultNS (defaultNS ) |
Default namespaces for imports(';' delimited) (owlim:defaultNS) |
java.lang.String (default:
"" )
|
Optional |
|
entityIndexSize (entityIndexSize ) |
Entity index size (owlim:entity-index-size) |
int (default:
10000000 )
|
Optional |
|
entityIdSize (entityIdSize ) |
Entity ID bit-size (owlim:entity-id-size) |
int (either
32 [default] or
40 )
|
Optional |
|
imports (imports ) |
Imported RDF files(';' delimited) (owlim:imports) |
java.lang.String (default:
"" )
|
Optional |
|
repositoryType (repositoryType ) |
Repository type (owlim:repository-type) |
java.lang.String (either
file-repository [default] or
weighted-file-repository )
|
Optional |
|
ruleset (ruleset ) |
Rule-set (owlim:ruleset) |
java.lang.String (either "empty" [default], "rdfs", "rdfsplus", "owl-horst", "owl-max",
"owl2-rl", "rdfs-optimized", "rdfsplus-optimized", "owl-horst-optimized",
"owl-max-optimized", "owl2-rl-optimized")
|
Optional |
|
storageFolder (storageFolder ) |
Storage folder (owlim:storage-folder) |
java.lang.String (default
"storage" )
|
Optional |
|
enableContextIndex (enableContextIndex ) |
Use context index (owlim:enable-context-index) |
boolean (default
false )
|
Optional |
|
enablePredicateList (enablePredicateList ) |
Use predicate indices (owlim:enablePredicateList) |
boolean (default
true )
|
Optional |
|
inMemoryLiteralProperties (inMemoryLiteralProperties ) |
Cache literal language tags (owlim:in-memory-literal-properties) |
boolean (default
true )
|
Optional |
|
enableLiteralIndex (enableLiteralIndex ) |
Enable literal index (owlim:enable-literal-index) |
boolean (default
true )
|
Optional |
|
checkForInconsistencies (checkForInconsistencies ) |
Check for inconsistencies (owlim:check-for-inconsistencies) |
boolean (default
false )
|
Optional |
|
disableSameAs (disableSameAs ) |
OWL sameAs (owlim:disable-sameAs) |
boolean (default
true )
|
Optional |
|
queryTimeout (queryTimeout ) |
Query time-out (seconds) (owlim:query-timeout) |
int (default
0 )
|
Optional |
|
queryLimitResults (queryLimitResults ) |
Limit query results (seconds) (owlim:query-limit-results) |
int (default
0 )
|
Optional |
|
throwQueryEvaluationExceptionOnTimeout (throwQueryEvaluationExceptionOnTimeout ) |
Throw exception on query time-out (owlim:throw-QueryEvaluationException-on-timeout) |
boolean (default
false )
|
Optional |
|
readOnly (readOnly ) |
Read-only (owlim:read-only) |
boolean (default
false )
|
Optional |
|
GraphDB SE (remote only) (it.uniroma2.art.semanticturkey.extension.impl.repositoryimplconfigurer.predefined.GraphDBSEConfigurerConfiguration )
|
baseURL (baseURL ) |
BASE URL (owlim:base-URL) |
java.lang.String (default:
"" )
|
Optional |
|
defaultNS (defaultNS ) |
Default namespaces for imports(';' delimited) (owlim:defaultNS) |
java.lang.String (default:
"" )
|
Optional |
|
entityIndexSize (entityIndexSize ) |
Entity index size (owlim:entity-index-size) |
int (default:
10000000 )
|
Optional |
|
entityIdSize (entityIdSize ) |
Entity ID bit-size (owlim:entity-id-size) |
int (either
32 [default] or
40 )
|
Optional |
|
imports (imports ) |
Imported RDF files(';' delimited) (owlim:imports) |
java.lang.String (default:
"" )
|
Optional |
|
repositoryType (repositoryType ) |
Repository type (owlim:repository-type) |
java.lang.String (either
file-repository [default] or
weighted-file-repository )
|
Optional |
|
ruleset (ruleset ) |
Rule-set (owlim:ruleset) |
java.lang.String (either "empty" [default], "rdfs", "rdfsplus", "owl-horst", "owl-max",
"owl2-rl", "rdfs-optimized", "rdfsplus-optimized", "owl-horst-optimized",
"owl-max-optimized", "owl2-rl-optimized")
|
Optional |
|
storageFolder (storageFolder ) |
Storage folder (owlim:storage-folder) |
java.lang.String (default
"storage" )
|
Optional |
|
enableContextIndex (enableContextIndex ) |
Use context index (owlim:enable-context-index) |
boolean (default
false )
|
Optional |
|
enablePredicateList (enablePredicateList ) |
Use predicate indices (owlim:enablePredicateList) |
boolean (default
true )
|
Optional |
|
inMemoryLiteralProperties (inMemoryLiteralProperties ) |
Cache literal language tags (owlim:in-memory-literal-properties) |
boolean (default
true )
|
Optional |
|
enableLiteralIndex (enableLiteralIndex ) |
Enable literal index (owlim:enable-literal-index) |
boolean (default
true )
|
Optional |
|
checkForInconsistencies (checkForInconsistencies ) |
Check for inconsistencies (owlim:check-for-inconsistencies) |
boolean (default
false )
|
Optional |
|
disableSameAs (disableSameAs ) |
OWL sameAs (owlim:disable-sameAs) |
boolean (default
true )
|
Optional |
|
queryTimeout (queryTimeout ) |
Query time-out (seconds) (owlim:query-timeout) |
int (default
0 )
|
Optional |
|
queryLimitResults (queryLimitResults ) |
Limit query results (seconds) (owlim:query-limit-results) |
int (default
0 )
|
Optional |
|
throwQueryEvaluationExceptionOnTimeout (throwQueryEvaluationExceptionOnTimeout ) |
Throw exception on query time-out (owlim:throw-QueryEvaluationException-on-timeout) |
boolean (default
false )
|
Optional |
|
readOnly (readOnly ) |
Read-only (owlim:read-only) |
boolean (default
false )
|
Optional |
|
in memory / persistent (it.uniroma2.art.semanticturkey.extension.impl.repositoryimplconfigurer.predefined.RDF4JPersistentInMemorySailConfigurerConfiguration )
|
syncDelay (syncDelay ) |
time in milliseconds before model is persisted; default is 1000 ms |
long (default:
1000 )
|
Optional |
|
directTypeInference (directTypeInference ) |
true if the RDF4J repository has to support directType inference; defaults to true |
boolean (default:
false )
|
Optional |
|
rdfsInference (rdfsInference ) |
true if the RDF4J repository has to support RDFS inferencing; defaults to true |
boolean (default:
false )
|
Optional |
|
native store / persistent (it.uniroma2.art.semanticturkey.extension.impl.repositoryimplconfigurer.predefined.RDF4JNativeSailConfigurerConfiguration )
|
forceSync (forceSync ) |
Specifies whether updates should be synced to disk forcefully; defaults to false |
boolean (default:
false )
|
Optional |
|
tripleIndexes (tripleIndexes ) |
specifies the
triple indexes to be created for optimizing query resolution; defaults to spoc, posc |
java.lang.String (default:
"spoc, posc" )
|
Optional |
|
directTypeInference (directTypeInference ) |
true if the RDF4J repository has to support directType inference; defaults to true |
boolean (default:
false )
|
Optional |
|
rdfsInference (rdfsInference ) |
true if the RDF4J repository has to support RDFS inferencing; defaults to true |
boolean (default:
false )
|
Optional |
|
|
Settings |
n/a |