4S-QUERY(1J)

NAME
4s-query - Run SPARQL queries on a 4store storage backend

SYNOPSIS
4s-query kb-name [-f format] [-O optimisation-level] [-I insert-mode] [-r] [-s soft-limit] [-b base-URI] [-e] [-P] [query]

-f  Set the format to output results it, options are "sparql", "text", "json", and "testcase"

-O, --opt-level
    Set the optimisation level of the query engine, in the range 0-3.

-I, --insert
    Treat CONSTRUCT statements as INSERT statements. This feature is highly experimental and largely untested.

-r, --restricted
    Enable query complexity restriction mode

-s, --soft-limit
    Override default soft limit on search breadth

-d, --default-graph
    Enable SPARQL default graph support

-b, --base
    Set base URI for queries

-e, --explain
    Return an explanation of the query planner's decisions

-P  Enable programatic IO mode

INTERACTIVE MODE
If [query] is omitted then 4s-query goes into interactive mode, suitable for trying queries from the command line.

-P enables programmatic interactive mode, suitable for interfacing with processes via stdin and stdout. Queries are sent as UTF-8 bytes, terminated with "#EOQ" on a line of it's own, results are returned, ending with "#EOR". Interacting with 4store in this way is more efficient than using the SPARQL protocol, but non-standard.

SEE ALSO
4s-import(1), 4s-httpd(1), 4s-backend(1), 4s-delete-model(1)

STANDARDS
4s-query implements the SPARQL Query Language specification (aka. SPARQL/Query 1.0) and the SPARQL Result Format specification (aka. SPARQL/Results 1.0).

Default graph support is no normally enabled, the --default-graph turns it on, as does specifying FROM <default:> in the query. Data loaded with

$ 4s-import kb --add -m default: uri/filename

will be added to the default graph.

EXAMPLES
$ 4s-query -f sparql demo 'SELECT * WHERE { ?s ?p ?s } LIMIT 10'

Return 10 random triples from the knowledgebase "demo" in the SPARQL XML result format.

$ 4s-query -P demo < query.rq

Run the query in query.rq and output the result to stdout