tracker-sparql(1) User Commands tracker-sparql(1)
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 sup-
plied here. This is optional and filters the results according to any argument supplied. With no CLASS, all classes 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: 5
http://www.tracker-project.org/ontologies/tracker#fulltextIndexed
http://www.tracker-project.org/ontologies/tracker#fulltextNoLimit
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.
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/
GNU
July 2009 tracker-sparql(1)