grafter.rdf.repository

Functions for constructing and working with various Sesame repositories.

->connection

(->connection repo)
Given a sesame repository return a connection to it.

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.

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 dataset)
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

(repo)(repo store)
Given a sesame Store of some type, return a sesame SailRepository.

shutdown

(shutdown repo)
Cleanly shutsdown the repository.

sparql-repo

(sparql-repo query-url)(sparql-repo query-url update-url)
Given a query-url and an optional update-url String return a Sesame
SPARQLRepository for communicating with remote repositories.

with-transaction

macro

(with-transaction repo & forms)
Wraps the given forms in a transaction on the supplied repository.
Exceptions are rolled back on failure.