Provided by: tracker-utils_0.16.5-0ubuntu0.2_amd64 bug

NAME

       tracker-sparql - Use SparQL to query the Tracker databases.

SYNOPSIS

       tracker-sparql [OPTION...] [-q QUERY] | [-f FILE]

DESCRIPTION

       tracker-sparql allows the caller to run an RDF query on the database. This can be done two
       ways. Either by providing a FILE with the query or by providing a string  with  the  QUERY
       string.

       The  FILE  argument  can  be  either a local path or a URI. It also does not have to be an
       absolute path.

OPTIONS

       -?, --help
              Show summary of options.

       -f, --file=FILE
              Use a FILE with SPARQL content to query or update.

       -q, --query=SPARQL
              Use a SPARQL string to query the database with.

       -u, --update
              This has to be used with --query.  This tells  tracker-sparql  to  use  the  SPARQL
              update  extensions  so  it knows it isn't a regular data lookup request. So if your
              query is intended to change data in the database, this option is needed.

       -c, --list-classes
              Returns a list of classes which describe the ontology used for storing data.  These
              classes  are  also  used  in  queries.  For example, http://www.w3.org/2000/01/rdf-
              schema#Resource is one of many classes which should be returned here.

       -x, --list-class-prefixes
              Returns a list of classes and their related prefixes. Prefixes  are  used  to  make
              querying   a   lot   simpler   and   are   much   like   an   alias.  For  example,
              http://www.w3.org/2000/01/rdf-schema#Resource has the prefix rdfs so queries can be
              cut down to:

              "SELECT ?u WHERE { ?u a rdfs:Resource }"

       -p, --list-properties=CLASS
              Returns  a  list  of  properties which pertain to a class. You can use both formats
              here       for       the       class,       either       the       full        name
              http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Video   or  the  shortened
              prefix name nfo:Video.

              This gives the following result:

              $ tracker-sparql -p nfo:Video

              Properties: 2
                http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#frameRate
                http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#frameCount

              These properties nfo:frameRate and nfo:frameCount  can  be  used  in  more  complex
              queries (see --query).

       -n, --list-notifies=CLASS
              Returns  a  list  of  classes  which are notified over D-Bus about any changes that
              occur in the database. CLASS does not have to be supplied here.  This  is  optional
              and  filters  the  results  according  to any argument supplied. With no CLASS, all
              classes are listed.

       -i, --list-indexes=PROPERTY
              Returns a list of properties which are indexed in the database.   Indexes  improves
              query  speed  but  also  add  an  indexing  penalty.   PROPERTY does not have to be
              supplied here. This is optional and filters the results according to  any  argument
              supplied. With no PROPERTY, all properties are listed.

       -s, --search=TERM
              Returns  a  list  of  classes  and  properties  which  partially  match TERM in the
              ontology. This is a case insensitive match, for example:

              $ tracker-sparql -s text

              Classes: 4
                http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#TextDocument
                http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PlainTextDocument
                http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PaginatedTextDocument
                http://www.tracker-project.org/temp/nmm#SynchronizedText

              Properties: 4
                http://www.tracker-project.org/ontologies/tracker#fulltextIndexed
                http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent
                http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#plainTextMessageContent
                http://www.tracker-project.org/temp/scal#textLocation

       -V, --version
              Print version.

ENVIRONMENT

       TRACKER_SPARQL_BACKEND
              This option allows you to choose which  backend  you  use  for  connecting  to  the
              database. This choice can limit your functionality. There are three settings.

              With "direct" the connection to the database is made directly to the file itself on
              the disk, there is no intermediary daemon or  process.  The  "direct"  approach  is
              purely read-only.

              With "bus" the tracker-store process is used to liase with the database queuing all
              requests and managing the connections via  an  IPC  /  D-Bus.  This  adds  a  small
              overhead  BUT  this  is  the  only approach you can use if you want to write to the
              database.

              With "auto" the backend is  decided  for  you,  much  like  it  would  be  if  this
              environment variable was undefined.

       TRACKER_PRAGMAS_FILE
              Tracker  has  a  fixed  set  of PRAGMA settings for creating its SQLite connection.
              With this environment variable pointing to a  text  file  you  can  override  these
              settings. The file is a \n separated list of SQLite queries to execute on any newly
              created SQLite connection in tracker-store.

EXAMPLES

       List all classes

              $ tracker-sparql -q "SELECT ?cl WHERE { ?cl a rdfs:Class }"

       List all properties for the Resources class (see --list-properties)

              $ tracker-sparql -q "SELECT ?prop WHERE {
                    ?prop a rdf:Property ;
                    rdfs:domain <http://www.w3.org/2000/01/rdf-schema#Resource>
               }"

       List all class namespace prefixes

              $ tracker-sparql -q "SELECT ?prefix ?ns WHERE {
                    ?ns a tracker:Namespace ;
                    tracker:prefix ?prefix
                }"

       List all music files

              $ tracker-sparql -q "SELECT ?song WHERE { ?song a nmm:MusicPiece }"

       List all music albums

              $ tracker-sparql -q "SELECT ?album ?title COUNT(?song)
                                   AS songs
                                   SUM(?length) AS totallength
                                   WHERE {
                    ?album a nmm:MusicAlbum ;
                    nie:title ?title .
                    ?song nmm:musicAlbum ?album ;
                    nfo:duration ?length
                } GROUP BY ?album"

       List all music from a particular artist

              $ tracker-sparql -q "SELECT ?song ?title WHERE {
                    ?song nmm:performer [ nmm:artistName 'Artist Name' ] ;
                    nie:title ?title
                }"

       Set the played count for a song

              $ tracker-sparql -u -q "DELETE {
                    <file:///home/user/Music/song.mp3> nie:usageCounter ?count
                } WHERE {
                    <file:///home/user/Music/song.mp3> nie:usageCounter ?count
                } INSERT {
                    <file:///home/user/Music/song.mp3> nie:usageCounter 42
                }"

       List all image files

              $ tracker-sparql -q "SELECT ?image WHERE { ?image a nfo:Image }"

       List all image files with a specific tag

              $ tracker-sparql -q "SELECT ?image WHERE {
                    ?image a nfo:Image ;
                    nao:hasTag [ nao:prefLabel 'tag' ]
                }"

       List all image files created on a specific month and order by date

              $ tracker-sparql -q "SELECT ?image ?date WHERE {
                    ?image a nfo:Image ;
                    nie:contentCreated ?date .
                    FILTER (?date >= '2008-07-01T00:00:00' &&
                            ?date <  '2008-08-01T00:00:00')
                } ORDER BY ?date"

SEE ALSO

       tracker-store(1), tracker-info(1).

       http://nepomuk.semanticdesktop.org/

       http://www.w3.org/TR/rdf-sparql-query/