summaryrefslogtreecommitdiff
path: root/docs/manpages/tracker3-sparql.1.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manpages/tracker3-sparql.1.txt')
-rw-r--r--docs/manpages/tracker3-sparql.1.txt310
1 files changed, 310 insertions, 0 deletions
diff --git a/docs/manpages/tracker3-sparql.1.txt b/docs/manpages/tracker3-sparql.1.txt
new file mode 100644
index 000000000..304b0feb1
--- /dev/null
+++ b/docs/manpages/tracker3-sparql.1.txt
@@ -0,0 +1,310 @@
+tracker3-sparql(1)
+==================
+
+== NAME
+
+tracker3-sparql - Use SparQL to query the Tracker databases.
+
+== SYNOPSIS
+
+....
+tracker3 sparql -q <sparql> [-u] | -f <file>
+tracker3 sparql -t [class] [-s <needle>] [-p]
+tracker3 sparql [-c] [-p] [-x] [-n [class]] [-i [property]] [-s <needle>]
+tracker3 sparql [--get-longhand <class>] [--get-shorthand <class>]
+....
+
+== DESCRIPTION
+
+This command allows probing of the current database schema (also known
+as ontology) and running low level queries or updates on the data set.
+In terms of the database ontology, it's easy to find out what properties
+are indexed for speed, or notified on changes, what classes are
+available and the properties belonging to those classes. There are also
+visual tools to display an ascii tree layout of the classes and their
+relationships to each other.
+
+When the caller runs a query, the query is in RDF and SPARQL. This can
+be done two ways. Either by providing a _file_ with the query or by
+providing a string with the _sparql_ query.
+
+The _file_ argument can be either a local path or a URI. It also does
+not have to be an absolute path.
+
+== 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 "tracker3 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://tracker.api.gnome.org/ontology/v3/nfo#Video_ or
+ the shortened prefix name _nfo:Video_.
+
+This gives the following result:
+
+----
+$ tracker3 sparql -p nfo:Video
+
+Properties: 2
+ http://tracker.api.gnome.org/ontology/v3/nfo#frameRate
+ http://tracker.api.gnome.org/ontology/v3/nfo#frameCount
+----
+
+These properties _nfo:frameRate_ and _nfo:frameCount_ can then be used
+in queries.
+
+See also *--tree* and *--query*.
+
+*-n, --list-notifies=[_class_]*::
+ Returns a list of classes which are notified over D-Bus about any
+ changes that occur in the database. The _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. The
+ _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.
+* -g, --list-graphs::
+ List all the named graphs in the database. These are used by the
+ filesystem miner to separate metadata so that apps can only see
+ the information relevant to them.
+*-t, --tree=[_class_]*::
+ Prints a tree showing all parent classes of _class_ in the ontology.
+ The _class_ can be provided in shorthand or longhand (see
+ *--get-shorthand* and *--get-longhand* for details). For example:
+
+----
+$ tracker3 sparql -t nmo:MMSMessage
+ROOT
+ +-- rdfs:Resource (C)
+ | +-- nie:InformationElement (C)
+ | | +-- nfo:Document (C)
+ | | | +-- nfo:TextDocument (C)
+ | | | | `-- nmo:Message (C)
+ | | | | | +-- nmo:PhoneMessage (C)
+ | | | | | | `-- nmo:MMSMessage (C)
+----
+
+If no _class_ is given, the entire tree is shown.
+
+The *--search* command line option can be used to highlight parts of the
+tree you're looking for. The search is case insensitive.
+
+The *--properties* command line option can be used to show properties
+for each class displayed, for example:
+
+----
+$ tracker3 sparql -t nfo:FileDataObject -p
+ROOT
+ +-- rdfs:Resource (C)
+ | --> http://purl.org/dc/elements/1.1/contributor (P)
+ | --> http://purl.org/dc/elements/1.1/coverage (P)
+ | --> http://purl.org/dc/elements/1.1/creator (P)
+ | --> http://purl.org/dc/elements/1.1/date (P)
+ | --> http://purl.org/dc/elements/1.1/description (P)
+ | --> http://purl.org/dc/elements/1.1/format (P)
+ | --> http://purl.org/dc/elements/1.1/identifier (P)
+ | --> http://purl.org/dc/elements/1.1/language (P)
+ | --> http://purl.org/dc/elements/1.1/publisher (P)
+ | --> http://purl.org/dc/elements/1.1/relation (P)
+ | --> http://purl.org/dc/elements/1.1/rights (P)
+ | --> http://purl.org/dc/elements/1.1/source (P)
+ | --> http://purl.org/dc/elements/1.1/subject (P)
+ | --> http://purl.org/dc/elements/1.1/title (P)
+ | --> http://purl.org/dc/elements/1.1/type (P)
+ | --> nao:deprecated (P)
+ | --> nao:hasTag (P)
+ | --> nao:identifier (P)
+ | --> nao:isRelated (P)
+ | --> nao:lastModified (P)
+ | --> nao:numericRating (P)
+ | --> rdf:type (P)
+ | --> rdfs:comment (P)
+ | --> rdfs:label (P)
+ | --> nrl:added (P)
+ | --> nrl:damaged (P)
+ | --> nrl:modified (P)
+ | +-- nie:DataObject (C)
+ | | --> nfo:belongsToContainer (P)
+ | | --> nie:byteSize (P)
+ | | --> nie:created (P)
+ | | --> nie:dataSource (P)
+ | | --> nie:interpretedAs (P)
+ | | --> nie:isPartOf (P)
+ | | --> nie:lastRefreshed (P)
+ | | --> nie:url (P)
+ | | --> tracker:available (P)
+ | | +-- nfo:FileDataObject (C)
+ | | | --> nfo:fileCreated (P)
+ | | | --> nfo:fileLastAccessed (P)
+ | | | --> nfo:fileLastModified (P)
+ | | | --> nfo:fileName (P)
+ | | | --> nfo:fileOwner (P)
+ | | | --> nfo:fileSize (P)
+ | | | --> nfo:hasHash (P)
+ | | | --> nfo:permissions (P)
+----
+
+*-s, --search=<__needle__>*::
+ Returns a list of classes and properties which partially match
+ _needle_ in the ontology. This is a case insensitive match, for
+ example:
+
+----
+$ tracker3 sparql -s text
+
+Classes: 4
+ http://tracker.api.gnome.org/ontology/v3/nfo#TextDocument
+ http://tracker.api.gnome.org/ontology/v3/nfo#PlainTextDocument
+ http://tracker.api.gnome.org/ontology/v3/nfo#PaginatedTextDocument
+ http://tracker.api.gnome.org/ontology/v3/nmm#SynchronizedText
+
+Properties: 4
+ http://tracker.api.gnome.org/ontology/v3/tracker#fulltextIndexed
+ http://tracker.api.gnome.org/ontology/v3/nie#plainTextContent
+ http://tracker.api.gnome.org/ontology/v3/nmo#plainTextMessageContent
+ http://tracker.api.gnome.org/ontology/v3/scal#textLocation
+----
+
+See also *--tree*.
+
+*--get-shorthand=<__class__>*::
+ Returns the shorthand for a class given by a URL. For example:
+
+----
+$ tracker3 sparql --get-shorthand http://tracker.api.gnome.org/ontology/v3/nmo#plainTextMessageContent
+nmo:plainTextMessageContent
+----
+
+*--get-longhand=<__class__>*::
+ Returns the longhand for a class given in the form of CLASS:PROPERTY.
+ For example:
+
+----
+$ tracker3 sparql --get-longhand nmm:MusicPiece
+http://tracker.api.gnome.org/ontology/v3/nmm#MusicPiece
+----
+
+== EXAMPLES
+
+List all classes::
++
+....
+$ tracker3 sparql -q "SELECT ?cl WHERE { ?cl a rdfs:Class }"
+....
+
+List all properties for the Resources class (see --list-properties)::
++
+----
+$ tracker3 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::
++
+----
+$ tracker3 sparql -q "SELECT ?prefix ?ns WHERE {
+ ?ns a nrl:Namespace ;
+ nrl:prefix ?prefix
+}"
+----
+
+List all music files::
++
+----
+$ tracker3 sparql -q "SELECT ?song WHERE { ?song a nmm:MusicPiece }"
+----
+
+List all music albums, showing title, track count, and length in seconds.::
++
+----
+$ tracker3 sparql -q "SELECT ?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::
++
+----
+$ tracker3 sparql -q "SELECT ?song ?title WHERE {
+ ?song nmm:performer [ nmm:artistName 'Artist Name' ] ;
+ nie:title ?title
+}"
+----
+
+Set the played count for a song::
++
+----
+$ tracker3 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::
++
+----
+$ tracker3 sparql -q "SELECT ?image WHERE { ?image a nfo:Image }"
+----
+
+List all image files with a specific tag::
++
+----
+$ tracker3 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::
++
+----
+$ tracker3 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
+
+*tracker3-sql*(1), *tracker3-info*(1).
+
+*http://nepomuk.semanticdesktop.org/*
+*http://www.w3.org/TR/rdf-sparql-query/*