In this section, we look at a simple first query and show how to execute it with ARQ.
The file "q1.rq" contains the following query:
SELECT ?x WHERE { ?x <http://www.w3.org/2001/vcard-rdf/3.0#FN> "John Smith" }
executing that query with the command line query application;
--------------------------------- | x | ================================= | <http://somewhere/JohnSmith/> | ---------------------------------
This works by matching the triple pattern in the WHERE
clause against
the triples in the RDF graph. The predicate and object of the triple are fixed values
so the pattern is going to match only triples with those values. The subject is a
variable, and there are no other restrictions on the variable. The pattern matches
any triples with these predicate and object values, and it matches with solutions for
x
.
The item enclosed in <> is a URI (actually, it's an IRI) and the item enclosed in "" is a plain literal. Just like Turtle, N3 or N-triples, typed literals are written with ^^ and language tags can be added with @.
?x is a variable called x. The ? does not form part of the name which is why it does not appear in the table output.
There is one match. The query returns the match in
the x
query variable. The output shown was obtained by using
one of ARQ's command line applications.
There are helper scripts
in the ARQ bat/
and bin/
directories of the ARQ
distribution.
They may not be in a Jena distribution. You should check these scripts before use.
Set the ARQROOT environment variable to the file location of the ARQ distribution.
set ARQROOT=c:\MyProjects\ARQ
The distribution usually has the version number in the directory name.
In the ARQ directory, execute:
bat\sparql.bat --data=doc\Tutorial\vc-db-1.rdf --query=doc\Tutorial\q1.rq
You can just put the bat/
directory on your classpath
or copy the programs out of it. They all depend on ARQROOT.
Set the ARQROOT environment variable to the file location of the ARQ distribution.
export ARQROOT=$HOME/MyProjects/ARQ
The distribution usually has the version number in the directory name.
In the ARQ directory, execute:
bin/sparql --data=doc/Tutorial/vc-db-1.rdf --query=doc/Tutorial/q1.rq
You can just put the bin/
directory on your classpath or
copy the programs out of it. They all depend on ARQROOT.
Cygwin is a Linux-like environment for Windows.
You will need to set the
classpath to include all the jar files in the ARQ
lib/
directory.
For example, on Windows:
ARQdir\lib\antlr-2.7.5.jar;ARQdir\lib\arq-extra.jar;ARQdir\lib\arq.jar; ARQdir\lib\commons-logging-1.1.jar;ARQdir\lib\concurrent.jar;ARQdir\lib\icu4j_3_4.jar; ARQdir\lib\iri.jar;ARQdir\lib\jena.jar;ARQdir\lib\jenatest.jar; ARQdir\lib\json.jar;ARQdir\lib\junit.jar;ARQdir\lib\log4j-1.2.12.jar; ARQdir\lib\lucene-core-2.2.0.jar;ARQdir\lib\stax-api-1.0.jar; ARQdir\lib\wstx-asl-3.0.0.jar;ARQdir\lib\xercesImpl.jar;ARQdir\lib\xml-apis.jar
where ARQdir
is where you unpacked ARQ.
This must be all one line.
The names of jar files sometimes changes and new jar files do get added - do check this list with your version of ARQ.
The commands themselves are in the arq
package.