grafter.rdf.repository
deprecated in 0.12.0
DEPRECATED. Use grafter.rdf4j.repository instead. This namespace
contains the old sesame implementation.
Functions for constructing and working with various Sesame repositories.
add->repo
(add->repo)
(add->repo acc)
(add->repo acc v)
batched-query
(batched-query qstr conn)
(batched-query qstr conn limit)
(batched-query qstr conn limit offset)
Like query, but queries are batched from the server by wrapping
them in a SPARQL SELECT query with a limit/offset.
NOTE: Though this function returns a lazy sequence, it is intended
to be used eagerly, perhaps inside something that eagerly loads the
results and manages the connection resources inside a with-open.
custom-query-inferencer
(custom-query-inferencer)
(custom-query-inferencer query-text matcher-text)
(custom-query-inferencer notifying-sail query-text matcher-text)
A forward-chaining inferencer that infers new statements using a
SPARQL graph query.
direct-type-inferencer
(direct-type-inferencer)
(direct-type-inferencer notifying-sail)
A forward-chaining inferencer that infers the direct-type hierarchy
relations sesame:directSubClassOf, sesame:directSubPropertyOf and
sesame:directType.
fixture-repo
(fixture-repo)
(fixture-repo repo-or-data & data)
adds the specified data to a sparql repository. if the first
argument is a repository that object is used, otherwise the first
and remaining arguments are assumed to be
grafter.rdf.protocols/itriplereadable and are loaded into a sesame
memorystore sail-repo.
this function is most useful for loading fixture data from files e.g.
(fixture-repo "test-data.trig" "more-test-data.trig")
http-repo
(http-repo repo-url)
Given a URL as a String return a Sesame HTTPRepository for e.g.
interacting with the OpenRDF Workbench.
IQueryEvaluator
protocol
members
evaluate
(evaluate this)
Low level protocol to evaluate a sesame RDF Query
object, and convert the results into a grafter representation.
make-restricted-dataset
(make-restricted-dataset & {:as options})
Build a dataset to act as a graph restriction. You can specify for
both `:default-graph` and `:named-graphs`. Both of which take sequences
of URI strings.
memory-store
(memory-store)
Instantiate a sesame RDF MemoryStore.
native-store
(native-store datadir)
(native-store datadir indexes)
Instantiate a sesame RDF NativeStore.
prepare-query
(prepare-query repo sparql-string)
(prepare-query repo sparql-string restriction)
Low level function to prepare (parse, but not process) a sesame RDF
query. Takes a repository a query string and an optional sesame
Dataset to act as a query restriction.
Prepared queries still need to be evaluated with evaluate.
prepare-update
(prepare-update repo sparql-update-str)
(prepare-update repo sparql-update-str dataset)
Prepare (parse but don't process) a SPARQL update request.
Prepared updates still need to be evaluated with evaluate.
query
(query repo sparql & {:as options})
Run an arbitrary SPARQL query. Works with ASK, DESCRIBE, CONSTRUCT
and SELECT queries.
You can call this on a Repository however if you do you may in some
cases cause a resource leak, for example if the sequence of results
isn't fully consumed.
To use this without leaking resources it is recommended that you
call ->connection on your repository, inside a with-open; and then
consume all your results inside of a nested doseq/dorun/etc...
e.g.
````
(with-open [conn (->connection repo)]
(doseq [res (query conn "SELECT * WHERE { ?s ?p ?o .}")]
(println res)))
````
Takes a repo and sparql string and an optional set of k/v argument
pairs, and executes the sparql query on the repository.
Options are:
- `:default-graph` a seq of URI strings representing named graphs to be set
as the default union graph for the query.
- `:named-graphs` a seq of URI strings representing the named graphs in
to be used in the query.
If no options are passed then we use the default of no graph
restrictions whilst the union graph is the union of all graphs.
rdfs-inferencer
(rdfs-inferencer)
(rdfs-inferencer notifying-sail)
Returns a Sesame ForwardChainingRDFSInferencer using the rules from
the RDF Semantics Recommendation (10 February 2004).
You can instantiate a repository with a memory store or a native
store or with any SAIL that returns InferencerConnections. e.g. to
instantiate a repository with a memory-store:
`(repo (rdfs-inferencer (memory-store)))`
repo
deprecated in 0.8.0
(repo)
(repo sail-or-rdf-file)
(repo rdf-data sail)
DEPRECATED: Use sail-repo or fixture-repo instead.
Given a sesame Sail of some type, return a sesame SailRepository.
This function also supports initialising the repository with some
data that can be loaded from anything grafter.rdf/statements can
coerce. Additionally the data can also be a sequence of
grafter.rdf.protocols/Quad's.
Finally you can also optionally supply a sesame sail to wrap the
repository, which can be used to configure a sesame NativeStore.
By default this function will return a repository initialised with a
Sesame MemoryStore.
resource-repo
(resource-repo)
(resource-repo repo-or-data & data)
Like fixture repo but assumes all supplied data is on the java
resource path. For example:
(repo/resource-repo "grafter/rdf/sparql/sparql-data.trig"
"grafter/rdf/rdf-types.trig")
Will load the supplied RDF files from the resource path into a
single memory repository for testing.
If you want to use a custom repository the first argument can be a
repository.
sail-repo
(sail-repo)
(sail-repo sail)
Given a sesame Sail of some type, return a sesame SailRepository.
Finally you can also optionally supply a sesame sail to wrap the
repository, which can be used to configure a sesame NativeStore.
By default this function will return a repository initialised with a
Sesame MemoryStore.
shutdown
(shutdown repo)
Cleanly shutsdown the repository.
sparql-repo
(sparql-repo query-url)
(sparql-repo query-url update-url)
Given a query-url (String or IURI) and an optional update-url String
or IURI, return a Sesame SPARQLRepository for communicating with
remote repositories.
ToConnection
protocol
members
->connection
(->connection repo)
Given a sesame repository return a connection to it.
->connection is designed to be used with the macro with-open
with-transaction
macro
(with-transaction repo & forms)
Wraps the given forms in a transaction on the supplied repository.
Exceptions are rolled back on failure.