Skip to content
Commits on Source (1405)
# Tracker HACKING guide
This file contains information useful for developers who want to improve
the tracker and tracker-miners projects.
## Automated testing
You can run the Tracker testsuite using the `meson test` command.
Tracker runs the tests automatically in GitLab CI. The .gitlab-ci.yml file
controls this. Here are the latest tests that were run:
* https://gitlab.gnome.org/GNOME/tracker/pipelines
* https://gitlab.gnome.org/GNOME/tracker-miners/pipelines
Some distros also run the test suite, including these:
* Ubuntu autopkgtest:
* https://autopkgtest.ubuntu.com/packages/tracker/
* https://autopkgtest.ubuntu.com/packages/tracker-miners/
* Debian builds:
* https://buildd.debian.org/status/package.php?p=tracker
* https://buildd.debian.org/status/package.php?p=tracker-miners
* Debian reproducible-builds:
* https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/tracker.html
* https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/tracker-miners.html
OpenSuSE do automated whole-system testing that includes the GNOME desktop for their Tumbleweed rolling release distro: https://openqa.opensuse.org/group_overview/1
## Logging
The following environment variables control logging from Tracker daemons:
* `G_MESSAGES_DEBUG`: controls log output from all GLib-based libraries
in the current process. Use `G_MESSAGES_DEBUG=Tracker` to see Tracker
related messages, or `G_MESSAGES_DEBUG=all` to see everything.
* `TRACKER_DEBUG`: takes a comma-separated list of keywords to enable
extra debugging output. Use the keyword 'help' for a list of keywords.
Options for libtracker-sparql include:
- collation
- ontology-changes
- sparql
- sqlite
- sql-statements
See the relevant `man` page for options relevant to tracker-miner-fs.
You can set these variables when using `tracker-sandbox`, and when running the
Tracker test suite. Note that Meson will not print log output from tests by
default, use `meson test --verbose` or `meson test --print-errorlogs` to
enable.
You can use `TRACKER_DEBUG=tests` to see logging from the test harness,
including full log output from the internal D-Bus daemon for functional-tests.
Note that by default, functional tests filter output from the D-Bus daemon to
only show log messages from Tracker processes. Anything written directly to
stdout, for example by `g_print()` or by the dbus-daemon itself, will not be
displayed unless `TRACKER_DEBUG=tests` is set.
When working with GitLab CI, you can use the
[Run Pipeline dialog](https://gitlab.gnome.org/GNOME/tracker/pipelines/new)
to set the values of these variables and increase the verbosity of the tests in
CI.
## Attaching a debugger to Tracker daemons
Tracker daemons are not started directly. Instead they are started by the D-Bus
daemon by request. When using the run-uninstalled script or the
functional-tests, it's difficult to start the daemon manually under `gdb`.
Instead, we recommend adding a 10 second timeout at the top of the daemon's
main() function. In Vala code, try this:
print("Pausing to attach debugger. Run: gdb attach %i\n", Posix.getpid());
Posix.usleep(10 * 1000 * 1000);
print("Waking up again\n");
Run the test, using the `meson build --timeout-multiplier=10000`
option to avoid your process being killed by the test runner. When you see
the 'Pausing' message, run the `gdb attach``command in another terminal within
10 seconds.
## Running Tracker daemons under Valgrind
The Tracker daemons are launched using D-Bus autolaunch. When running them from
the source tree using the run-uninstalled script or the functional-tests, the
commandline is controlled by the D-Bus .service.in files stored in
`./tests/services`. Just change the `Exec=` line to add Valgrind, like this:
Exec=/usr/bin/valgrind @abs_top_builddir@/src/tracker-store/tracker-store
By default the run-uninstalled script and the functional-tests will only show
output from Tracker code. For the functional-tests, set TRACKER_TESTS_VERBOSE=1
to see output from Valgrind. For tracker-sandbox use the `--debug-dbus` option.
Martyn Russell
E-mail: martyn@lanedo.com
Userid: mr
Jürg Billeter
E-mail: juerg.billeter@codethink.co.uk
Userid: juergbi
Philip Van Hoof
E-mail: philip@codeminded.be
Userid: pvanhoof
Carlos Garnacho
E-mail: carlos@lanedo.com
Userid: carlosg
Mikael Ottela
E-mail: mikael.ottela@ixonos.com
Userid: mottela
Aleksander Morgado
E-mail: aleksander@lanedo.com
Userid: aleksm
Ivan Frade
E-mail: ivan.frade@nokia.com
Userid: ifrade
Sam Thursfield
E-mail: sam@afuera.me.uk
Userid: sthursfield
NEW in 2.3.6 - 2020-09-07
NEW in 3.1.1 - 2021-04-02
=========================
* Do not autostart tracker-store
* Better error handling during database initialization
* Implemented tracker_sparql_connection_update_array_async
over TrackerBatch, resulting in lower memory usage.
* VAPI updates
* Updated tracker_sparql_connection_update_array docs
* Leak and double free fixes
Translations: de, es, hu, id, lt, pl, pt_BR, ro, sl, sv
Translations: en_GB, nl, zh_CN
NEW in 2.3.5 - 2020-08-24
NEW in 3.1.0 - 2021-03-20
=========================
* Add 'tracker export' subcommand to ease migration to 3.x
* Use correct signature for DBusSignalCallback
* get the systemd user unit dir from pkg-config
* Replace sensitive terms
Translations: lt, uk
* Add build-time warning for SQLite 3.35.[01]
* Workaround other SQLite 3.35 bug
Highlighted changes since 3.0:
* New, faster API for updates, see TrackerBatch and
tracker_sparql_connection_update_resource
* New API to create HTTP endpoints, see
tracker_endpoint_http_new
* New tracker:strip-punctuation SPARQL function
* Multiple performance improvements
* Several SPARQL 1.1 correctness fixes
NEW in 3.1.0.rc - 2021-03-14
============================
* Add tracker_sparql_connection_bus_new_async()
* Fix TrackerNotifier signal subscriptions across the portal
* Fix race condition / crash when performing SELECT queries
* Propagate errors better when updating the database
* Do not miss valid prefixed names in TrackerResource
* Sparql 1.1 correctness fixes
* Handle nesting of multivalued property functions
* CI improvements in JUnit test results
Translations: fr, gl, hr, ko, pl, sr, tr
NEW in 3.1.0.beta - 2021-02-14
==============================
* Fix possible crash in fts:offsets function
* Handle variables as service URIs, e.g.
SERVICE ?s { ... } VALUES ?s { ... }
* Add more g-i-r annotations
* Improve ellipsizing in CLI tools
Translations: cs, fur, hu, id, pt_BR, sl, sr, sv, tr
NEW in 3.1.0.alpha - 2021-01-10
===============================
* Add TrackerBatch, object made to hold multiple updates
(in SPARQL string form, or TrackerResource) that will
be performed atomically.
* Add TrackerEndpointHttp, a TrackerEndpoint subclass to
implement a (readonly) SPARQL HTTP endpoint as per
https://www.w3.org/TR/2013/REC-sparql11-protocol-20130321/
* Add tracker:strip-punctuation SPARQL function
* Specify that nfo:duration is expressed in seconds
* Fix portal initialization order
* Improve TTL parser
* Improve date/time parsing
* Make handling of large series of UPDATEs iteratively
to avoid stack size limits
* Improve parallelization of queries
* Optimize idempotent DELETE operations
* Optimize insert operations
* Optimize database resource refcount management
* Fix tracker_notifier_signal_subscribe annotation
* Fix possible race conditions handling ontology objects
* Handle NULL arguments in tracker:uri-is-parent
* Avoid FTS5 table inconsistency with SQLite >= 3.34.0
* Memory leak fixes
* Documentation improvements
NEW in 2.3.4 - 2020-03-10
=========================
* Brown paper bag release, fix NULL check.
Translations: ca, de, es, eu, fur, gl, lt, ro, uk, zh_TW
NEW in 2.3.3 - 2020-03-09
NEW in 3.0.1 - 2020-10-02
=========================
* Fix race condition during tracker-store shutdown maybe leading to
warnings and missed writeback events.
* Made fts:offsets stronger against corrupt FTS tables
* Reference Discourse instead of the mailing list
* Use specific Meson options to enable debug flags
* Reduce in use by TrackerSparqlStatement
* Fix tracker:title-sort
* Fix stale graphs with WITH clauses
* Cleanup libtracker-common
* Several fixes for Coverity warnings
* More tests
* Build fixes
Translations: ja
Translations: he, nl, pt, sk
NEW in 2.3.2 - 2020-02-18
NEW in 3.0.0 - 2020-09-13
=========================
* Location info for photos is now inserted into the DB. It didn't
work before as we failed to process SPARQL "blank nodes" correctly.
* Fix for oversensitive FTS5 index corruption detection
Translations: ms
Translations: da, de, it, kk, ko, lv
NEW in 2.3.1 - 2019-10-12
=========================
* Fixed a case where old data was not deleted correctly from the store when
inserting new values. This was causing tracker-extract to log errors for
multi-disc music albums stored as FLAC files with embedded CUE sheets.
NEW in 2.99.5 - 2020-09-07
==========================
* Fix DBus logging in tracker-sandbox test helper
* Removed programming terms from English stop word list
* Handle empty input correctly
* Fix possible database locks when using "tracker3 sql" on a
running database
* Fixes for SERVICE clauses in UNIONs
* Handle empty group graph patterns as per the spec
* Fixes to property paths being used in different graphs
* Release memory on inactivity
* Fix build/linking with 2.x in the system
* Add "tracker3 export --2to3" helper for data migrations
* Hide FTS5 search syntax from fts:match
Translations: cs, fr, fur, gl, hr, id, lt, pt_BR, zh_CN
NEW in 2.99.4 - 2020-08-24
==========================
* CLI modernization
- integration with pager
- bash completion for endpoints
* Use curly quotes consistently in CLI options
* SPARQL parsing fixes
* Multiple fixes around 'VALUES' SPARQL syntax
* Fix race conditions around graph creation
* Better use of asserts in tests
Translations: en_GB, es, eu, gl, pl, pt_BR, ro, sl, tr, uk
NEW in 2.99.3 - 2020-08-10
==========================
* Add portal
* Use WAL on all database connections
* Fix race conditions in reusable statements
* Documentation fixes and improvements
* Better errors from library function calls
* Test fixes
* CI improvements
NEW in 2.99.2 - 2020-06-26
==========================
* Dropped priority argument from tracker_sparql_connection_update*()
* Better parser error messages
* SPARQL correctness fixes
* Fixes to tracker_sparql_cursor_is_bound() checks
* Ontology clean ups and sync ups with Nepomuk
* Fixed lifetime of blank node labels
* Fixes to recursive property paths
* Ensure property functions pick non NULL values
* Several fixes merge SERVICE{} data with the local graph pattern
* Add `tracker export --show-graphs` CLI subcommand to show available
graphs
* Parameter bindings within SERVICE{} clauses are now allowed
* Fixes to single/double quote escaping
* Fixes to make tracker-sandbox more usable in tests
* Many cleanups, memory leak and performance fixes
NEW in 2.99.1 - 2020-05-03
==========================
Translations: sk
Highlighted updates compared to 2.x:
------------------------------------
* A full implementation of SPARQL 1.1
* A change of paradigm. There is no central store, services are
free to create their own, and to make those an endpoint for public
access. Applications may syndicate queries across external endpoints
through the SERVICE syntax.
* No tracker-store
* No libtracker-miner
* No libtracker-control
* API changes
- Explicit API to create a local store, or proxy a DBus/remote one
- TrackerEndpoint proxies local stores out of process
- separate python library to write tests
* A base and reference ontologies of our own
- Officially it's no longer Nepomuk
- No more broken links
* An extensible CLI tool, with a generic set of core subcommands
* Parallel installable to tracker 2.x
* Documentation
* Tests
* Many many others
NEW in 2.3.0 - 2019-09-09
=========================
......
......@@ -6,25 +6,28 @@ and mobile.
The Tracker project is divided into two main repositories:
* [Tracker core](https://gitlab.gnome.org/GNOME/tracker) contains the database
(*tracker-store*), the database ontologies, the commandline user
interface (`tracker`), and several support libraries.
* [Tracker SPARQL](https://gitlab.gnome.org/GNOME/tracker) contains the
triplestore database, provided as the `libtracker-sparql` library
and implemented using [SQLite](http://sqlite.org/). This repo also contains
the database ontologies and the commandline user interface (`tracker3`).
* [Tracker Miners](https://gitlab.gnome.org/GNOME/tracker-miners) contains
the indexer daemon (*tracker-miner-fs*) and tools to extract metadata
the indexer daemon (*tracker-miner-fs-3*) and tools to extract metadata
from many different filetypes.
More information on Tracker can be found at:
* <https://gnome.pages.gitlab.gnome.org/tracker/>
* <https://wiki.gnome.org/Projects/Tracker>
Source code and issue tracking:
* <https://gitlab.gnome.org/GNOME/tracker>
* <https://gitlab.gnome.org/GNOME/tracker-miners>
All discussion related to Tracker happens on:
* <https://mail.gnome.org/mailman/listinfo/tracker-list>
* <https://discourse.gnome.org/tag/tracker>
IRC channel #tracker on:
......@@ -36,7 +39,31 @@ Related projects:
extends Tracker to allow searching and indexing some kinds of online
content.
# Developing Tracker
## Goals and Non-goals
Here's a summary of the goals and non-goals of the Tracker project.
1. Provide real-time searching and browsing of desktop content.
2. Provide searchable data storage for desktop apps.
3. Allow full-text search within common document types.
4. Allow advanced queries using a standard query language.
5. Be secure and private by default.
6. Be efficient enough for desktop and mobile use.
7. Be maintainable by a small team.
These are some things we currently don't want to do in Tracker itself.
* Depend on features of a specific filesystem. Tracker should work on
all commonly used filesystems.
* Index source code. There are plenty of IDEs and source-code indexing tools already.
* Index user data in network / cloud services. This is out of scope for the core of
Tracker but can be done by third party projects -- see
[Gnome Online Miners](https://wiki.gnome.org/Projects/GnomeOnlineMiners).
* Index data on the Web.
* Provide our own GUI components. Tracker is a middleware component, not an end user
application.
## Developing Tracker
If you want to help develop and improve Tracker, great! Remember that Tracker
is a middleware component, designed to be integrated into larger codebases. To
......@@ -49,7 +76,7 @@ Component](https://wiki.gnome.org/Newcomers/BuildSystemComponent) workflow.
It's also possible to build Tracker on its own and install it inside your home
directory for testing purposes. Read on for instructions on how to do this.
## Compilation
### Compilation
Tracker uses the [Meson build system](http://mesonbuild.com), which you must
have installed in order to build Tracker.
......@@ -78,54 +105,56 @@ new, isolated prefix named `opt/tracker` inside your home folder.
cd build
ninja install
## Running the testsuite
### Running the testsuite
At this point you can run the Tracker test suite from the `build` directory:
meson test --print-errorlogs
## Developing with tracker-sandbox
### Using the run-uninstalled script
Tracker normally runs automatically, indexing content in the background so that
search results are available quickly when needed.
When developing and testing Tracker you will normally want it to run in the
foreground instead. The `tracker-sandbox` tool exists to help with this.
foreground instead. You also probably want to run it from a build tree, rather
than installing it somewhere everytime you make a change, and you certainly
should isolates your development version from the real Tracker database in your
home directory.
There is a tool to help with this, which is part of the 'trackertestutils'
Python module. You can run the tool using a helper script generated in the
tracker-miners.git build process named 'run-uninstalled'.
You can run the tool directly from the tracker.git source tree. Ensure you are
in the top of the tracker source tree and type this to see the --help output:
Check the helper script is set up correctly by running this from your
tracker-miners.git build tree:
./utils/sandbox/tracker-sandbox.py --help
./run-uninstalled --help
You should always pass the `--prefix` option, which should be the same as the
--prefix argument you passed to Meson. You also need to use `--index` which
controls where internal state files like the database are kept. You may also
want to pass `--debug` to see detailed log output.
If run with no arguments, the script will start an interactive shell. Any
arguments after a `--` sentinel are treated as a command to run in a non-interactive
shell.
Now you can index some files using `--update` mode. Here's how to index files
in `~/Documents` for example:
Now check that it runs the correct version of the Tracker CLI:
./utils/sandbox/tracker-sandbox.py --prefix ~/opt/tracker --index ~/tracker-content \
--update --content ~/Documents
./run-uninstalled -- tracker3 --version
You can then list the files that have been indexed...
Let's try and index some content. (Subtitute ~/Music for any other location
where you have interesting data). We need to explicitly tell the script to wait
for the miners to finish, or it will exit too soon. (This is a workaround for
[issue #122](https://gitlab.gnome.org/GNOME/tracker/issues/122).)
./utils/sandbox/tracker-sandbox.py --prefix ~/opt/tracker --index ~/tracker-content \
--list-files
./run-uninstalled --wait-for-miner=Files --wait-for-miner=Extract -- tracker3 index --add ~/Music
... run a full-text search ...
Let's see what files were found!
./utils/sandbox/tracker-sandbox.py --prefix ~/opt/tracker --index ~/tracker-content \
--search "bananas"
./run-uninstalled -- tracker3 sparql --dbus-service=org.freedesktop.Tracker3.Miner.Files -q 'SELECT ?url { ?u nie:url ?url }'
... or run a SPARQL query on the content:
Or, you can try a full-text search ...
./utils/sandbox/tracker-sandbox.py --prefix ~/opt/tracker --index ~/tracker-content \
--sparql "SELECT ?url { ?resource a nfo:FileDataObject ; nie:url ?url . }"
./run-uninstalled -- tracker3 search "bananas"
You can also open a shell inside the sandbox environment. From here you can run
the `tracker` commandline tool, and you can run the Tracker daemons manually
under a debugger such as GDB.
There are many more things you can do with the script.
For more information about developing Tracker, look at
https://wiki.gnome.org/Projects/Tracker.
https://wiki.gnome.org/Projects/Tracker and HACKING.md.
......@@ -3,90 +3,28 @@
/* Extras added manually */
#mesondefine LOCALEDIR
#mesondefine SHAREDIR
#mesondefine TRACKER_MINERS_DIR
#mesondefine TRACKER_UI_DIR
/* Define if we disable the journal */
#mesondefine DISABLE_JOURNAL
/* Include functional tests in the installation */
#mesondefine DIST_FUNCTIONAL_TESTS
/* Use new evolution-shell API */
#mesondefine EVOLUTION_SHELL_2_91
/* Use new evolution-shell API */
#mesondefine EVOLUTION_SHELL_3_2
/* Use new evolution-shell API */
#mesondefine EVOLUTION_SHELL_3_3_5
/* Define the gettext package to be used */
#mesondefine GETTEXT_PACKAGE
/* Define that GStreamer Discoverer should be used */
#mesondefine GSTREAMER_BACKEND_DISCOVERER
/* Define that GUPnP-DLNA should be used */
#mesondefine GSTREAMER_BACKEND_GUPNP_DLNA
/* Guarantee existence of some metadata */
#mesondefine GUARANTEE_METADATA
/* Defined if Sqlite has FTS5 compiled in */
#mesondefine HAVE_BUILTIN_FTS
/* Define if we have exempi */
#mesondefine HAVE_EXEMPI
/* Define to 1 if you have the `getline' function. */
#mesondefine HAVE_GETLINE
/* Define if we have GStreamer */
#mesondefine HAVE_GSTREAMER
/* Define if we have libcue */
#mesondefine HAVE_LIBCUE
/* Define if we have libcue 2 or up */
#mesondefine HAVE_LIBCUE2
/* Define if we have libexif */
#mesondefine HAVE_LIBEXIF
/* libicu Unicode support library */
#mesondefine HAVE_LIBICU
/* Define if we have libiptcdata */
#mesondefine HAVE_LIBIPTCDATA
/* Define if we have libstemmer */
#mesondefine HAVE_LIBSTEMMER
/* libunistring Unicode support library */
#mesondefine HAVE_LIBUNISTRING
/* Define if we have NetworkManager for network status detection */
#mesondefine HAVE_NETWORK_MANAGER
/* Define to 1 if you have the `posix_fadvise' function. */
#mesondefine HAVE_POSIX_FADVISE
/* Define to 1 if you have the `statvfs64' function. */
#mesondefine HAVE_STATVFS64
/* Define to 1 if you have the `strnlen' function. */
#mesondefine HAVE_STRNLEN
/* Define to 0 if tracker FTS is not compiled */
#mesondefine HAVE_TRACKER_FTS
/* Define if we have UPOWER */
#mesondefine HAVE_UPOWER
/* Define to 1 if you have the `up_client_get_on_low_battery' function. */
#mesondefine HAVE_UP_CLIENT_GET_ON_LOW_BATTERY
/* Define to the address where bug reports for this package should be sent. */
#mesondefine PACKAGE_BUGREPORT
......@@ -119,6 +57,3 @@
/* Define to the Tracker minor version */
#mesondefine TRACKER_MINOR_VERSION
/* Unzip ps.gz files */
#mesondefine USING_UNZIPPSFILES
tracker_gsettings_schemas = files([
'org.freedesktop.Tracker.DB.gschema.xml',
'org.freedesktop.Tracker.FTS.gschema.xml',
'org.freedesktop.Tracker.gschema.xml',
'org.freedesktop.Tracker.Store.gschema.xml'
])
foreach schema : tracker_gsettings_schemas
schemas = configure_file(
input: schema,
output: '@PLAINNAME@',
copy: true,
install: true,
install_dir: gsettings_schema_dir)
endforeach
tracker_store_settings_enums = custom_target('tracker-store-settings-enums',
input: tracker_common_enums_header,
output: 'org.freedesktop.Tracker.enums.xml',
command: [glib_mkenums,
'--comments', '<!-- @comment@ -->',
'--fhead', '<schemalist>',
'--vhead', '<@type@ id="org.freedesktop.Tracker.@EnumName@">',
'--vprod', ' <value nick="@valuenick@" value="@valuenum@"/>',
'--vtail', ' </@type@>',
'--ftail', '</schemalist>', '@INPUT@'],
capture: true,
install: true,
install_dir: gsettings_schema_dir)
# Compile schemas locally so that the functional-tests can use them without
# them being installed into /usr.
#
custom_target('compile-schemas',
output: 'gschemas.compiled',
command: [glib_compile_schemas, meson.current_build_dir()],
build_by_default: true,
depends: tracker_store_settings_enums)
tracker_uninstalled_gsettings_schema_dir = meson.current_build_dir()
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2011, Nokia <ivan.frade@nokia.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
-->
<schemalist>
<schema id="org.freedesktop.Tracker.DB" path="/org/freedesktop/tracker/db/" gettext-domain="tracker">
<key name="journal-chunk-size" type="i">
<default>50</default>
<summary>Maximum size of journal</summary>
<description>Size of the journal at rotation in MB. Use -1 to disable rotating.</description>
</key>
<key name="journal-rotate-destination" type="s">
<default>''</default>
<summary>Location of journal pieces</summary>
<description>Where to store a journal chunk when it hits the max size.</description>
</key>
</schema>
</schemalist>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2011, Nokia <ivan.frade@nokia.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
-->
<schemalist>
<schema id="org.freedesktop.Tracker.FTS" path="/org/freedesktop/tracker/fts/" gettext-domain="tracker">
<key name="max-word-length" type="i">
<default>30</default>
<range min="0" max="200"/>
<summary>Maximum length of a word to be indexed</summary>
<description>Words with more characters than this length will be ignored by the indexer.</description>
</key>
<key name="max-words-to-index" type="i">
<default>10000</default>
<summary>Maximum number of words to index in a document</summary>
<description>Indexer will read only this maximum number of words from a single document.</description>
</key>
<key name="enable-stemmer" type="b">
<summary>Enable stemmer</summary>
<description>Simplify the words to their root to provide more results. E.g. “shelves” and “shelf” to “shel”</description>
<default>false</default>
</key>
<key name="enable-unaccent" type="b">
<summary>Enable unaccent</summary>
<description>Translate accented characters to the equivalent unaccented. E.g. “Idéa” to “Idea” for improved matching. </description>
<default>true</default>
</key>
<key name="ignore-numbers" type="b">
<summary>Ignore numbers</summary>
<description>If enabled, numbers will not be indexed.</description>
<default>true</default>
</key>
<key name="ignore-stop-words" type="b">
<summary>Ignore stop words</summary>
<description>If enabled, the words listed in the stop-words list are ignored. E.g. common words like “the”, “yes”, “no”, etc.</description>
<default>true</default>
</key>
</schema>
</schemalist>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2011, Nokia <ivan.frade@nokia.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
-->
<schemalist>
<schema id="org.freedesktop.Tracker.Store" path="/org/freedesktop/tracker/store/" gettext-domain="tracker">
<key name="verbosity" enum="org.freedesktop.Tracker.TrackerVerbosity">
<default>'errors'</default>
<summary>Log verbosity</summary>
<description>Log verbosity.</description>
</key>
<key name="graphupdated-delay" type="i">
<default>1000</default>
<summary>GraphUpdated delay</summary>
<description>Period in milliseconds between GraphUpdated signals being emitted when indexed data has changed inside the database.</description>
</key>
</schema>
</schemalist>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2011, Nokia <ivan.frade@nokia.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
-->
<schemalist>
<schema id="org.freedesktop.Tracker" path="/org/freedesktop/tracker/">
<child name="db" schema="org.freedesktop.Tracker.DB"/>
<child name="fts" schema="org.freedesktop.Tracker.FTS"/>
<child name="store" schema="org.freedesktop.Tracker.Store"/>
</schema>
</schemalist>
install_man('tracker-export.1')
install_man('tracker-info.1')
install_man('tracker-daemon.1')
install_man('tracker-search.1')
install_man('tracker-sparql.1')
install_man('tracker-sql.1')
install_man('tracker-status.1')
install_man('tracker-store.1')
install_man('tracker-tag.1')
install_man('tracker-reset.1')
install_man('tracker-index.1')
manpages = [
['endpoint', 'tracker3-endpoint', 1],
['export', 'tracker3-export', 1],
['import', 'tracker3-import', 1],
['sparql', 'tracker3-sparql', 1],
['sql', 'tracker3-sql', 1],
['xdg-portal', 'tracker-xdg-portal-3', 1],
]
foreach m : manpages
src = m[0]
dst = m[1]
section = m[2]
manpage_src = 'tracker-@0@.@1@.txt'.format(src, section)
manpage_xml = '@0@.@1@.xml'.format(dst, section)
manpage = '@0@.@1@'.format(dst, section)
xml = custom_target(manpage_xml,
command: [asciidoc,
'--attribute=author=The Tracker developers',
'--attribute=manversion=@0@'.format(meson.project_version()),
'--attribute=manmanual=Tracker manual',
'--backend', 'docbook',
'--doctype', 'manpage',
'--out-file', '@OUTPUT@', '@INPUT@'],
input: manpage_src,
output: manpage_xml
)
custom_target(manpage,
command: [xsltproc,
'--output', '@OUTPUT@',
'--stringparam', 'man.authors.section.enabled', '0',
'/etc/asciidoc/docbook-xsl/manpage.xsl', '@INPUT@'],
input: xml,
output: manpage,
install: true,
install_dir: get_option('mandir') / 'man@0@'.format(section),
)
endforeach
.TH tracker-daemon 1 "September 2014" GNU "User Commands"
.SH NAME
tracker-daemon \- Start, stop, restart and list daemons responsible for indexing content
.SH SYNOPSIS
.nf
\fBtracker daemon\fR [\fIoptions\fR...]
\fBtracker daemon\fR \-s | \-t [\fIdaemons\fR] | \-k [\fIdaemons\fR] | \-l
\fBtracker daemon\fR \-f | \-w [\fIontology\fR]
\fBtracker daemon\fR \-\-miner <\fIminer\fR> \-\-pause[-for-process] <\fIreason\fR>
\fBtracker daemon\fR \-\-miner <\fIminer\fR> \-\-resume <\fIcookie\fR>
.fi
.SH DESCRIPTION
Tracker has many components to it including a "store" for handling data
set updates and "miners" for handling data mining in their respective
areas.
The \fBtracker daemon\fR command allows for control of these components.
This ranges from starting, stopping and killing processes to pausing
and resuming them.
In addition to all this, there are ways to change the log verbsity for
all processes that generate logs and to follow or watch what is
happening in real time from a top level and right down where the
SPARQL commits are happening too.
If no arguments are provided this command will show the current status
of all Tracker entities (store and all available data miners).
For \fBtracker-store\fR, the status is always "Idle" unless it is
restoring a backup and/or replaying a journal (see also \fBtracker reset
--soft\fR). For a list of common statuses, see
\fB\-\-list\-common\-statuses\fR.
The data miners can be paused or resumed using this command and you can
also list miners running and available.
.SH OPTIONS
.TP
.B \-p, \-\-list\-processes
This lists all Tracker processes in the system.
.TP
.B \-k, \-\-kill\fR=[\fIdaemons\fR]
This uses SIGKILL to stop all Tracker processes found matching the
parameter, if no extra parameter is passed, "all" will be assumed.
This is not advised unless you are having problems stopping Tracker in
the first place. This \fBGUARANTEES\fR death.
The possible \fIdaemons\fR options are:
.sp
.RS 12
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIall\fR
\- All daemons.
.sp
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 2.3
.\}
\fIstore\fR
\- Only the \fBtracker-store\fR.
.sp
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIminers\fR
\- Only data miners.
.sp
.RE
.TP
.B \-t, \-\-terminate\fR=[daemons]
This uses SIGTERM to stop all Tracker processes found matching the
parameter, if no extra parameter is passed, "all" will be assumed.
This is recommended over \-\-kill because it gives the processes time
to shutdown cleanly.
For a list of possible \fIdaemons\fR, see \-\-kill.
.TP
.B \-s, \-\-start
Starts all miners. This indirectly starts \fBtracker-store\fR too
because it is needed for miners to operate properly. The store is
started from D-Bus.
.TP
.B \-\-get\-log\-verbosity
This displays the log verbosity for ALL components using GSettings for
this configuration. For possible values, see
.B \-\-set\-log\-verbosity.
.TP
.B \-\-set\-log\-verbosity\fR=<\fIverbosity\fR>
This sets the log verbosity for ALL daemons using GSettings to store
their "verbosity" configuration.
The possible \fIverbosity\fR options are:
.sp
.RS 12
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIdebug\fR
\- Show EVERYTHING, from debug messages to errors. This often includes
actual SQL being executed.
.sp
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 2.3
.\}
\fIdetailed\fR
\- Show enough detail to understand what is happening.
.sp
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIminimal\fR
\- Show an overview of what is going on, e.g. stats and when things
start or stop.
.sp
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIerrors\fR
\- Show only warnings, criticals, errors or fatal events.
.RE
.TP
.B \-f, \-\-follow
Follow status changes to daemons as they happen. This is a top level
view of what is happening. You will see the name for each daemon and a
state with the progress in that state.
This requires Ctrl+C to stop and return to the command line. Each new
status is put on a new line.
.TP
.B \-w, \-\-watch\fR=[\fIontology\fR]
Watch changes that happen to the database in real time. This requires
Ctrl+C to stop and return to the command line.
If \fIontology\fR is unspecified, all updates are shown. The
\fIontology\fR can be a comma separated list of shorthand or long hand
ontology properties. For example:
.nf
$ tracker-control -w nie:url,nie:mimeType,nfo:fileSize,nie:dataSource
Now listening for resource updates to the database
All nie:plainTextContent properties are omitted
Press Ctrl+C to stop
'nfo:Document'
'nfo:fileSize' = '1770'
'nie:dataSource' = 'http://www.tracker-project.org/ontologies/tracker#extractor-data-source'
'nie:mimeType' = 'text/plain'
'nie:url' = 'file:///home/martyn/.bash_aliases'
'nfo:Document'
'nie:dataSource' = 'http://www.tracker-project.org/ontologies/tracker#extractor-data-source'
...
.fi
.TP
.B \-\-list-common-statuses
This will list statuses most commonly produced by miners and the
store. These statuses are not translated when sent over D-Bus and
should be translated by each application. These are not considered
static and are subject to change at any point.
Additionally, these statuses are not the only ones which may be
reported by a miner. There may be other states pertaining to the
specific roles of the miner in question.
.TP
.B \-\-list\-miners\-running
This will list all miners which have responded to a D-Bus call.
Sometimes it is helpful to use this command with
.B \-\-list\-miners\-available.
.TP
.B \-\-list-miners-available
This will list all miners which are available even if they are not
running at the moment.
.TP
.B \-\-pause\-details
For listing all miners which are paused and the reasons for being
paused, you can use this. It will also display the application that
requested the pause too.
.TP
.B \-\-miner\fR=<\fIminer\fR>
This argument is used with \fB\-\-pause\fR or \fB\-\-resume\fR to say
which miner you want to pause or resume. You can use the full D-Bus
name, e.g. "org.freedesktop.Tracker1.Miner.Files" OR you can use
the suffix, e.g. "Files".
.TP
.B \-\-pause\fR=<\fIreason\fR>
The \fIreason\fR here is useful to know WHY the miner should be paused. A
miner can be paused many times by multiple applications. Only when all
pauses have been resumed will it continue. If successful, a cookie
will be given to uniquely identify the request. This cookie is used to
resume the pause at a later stage.
.TP
.B \-\-pause\-for\-process\fR=<\fIreason\fR>
This works exactly the same way as \fB\-\-pause\fR with the exception
that it only keeps the pause active while the calling process is
alive. As soon as you press Ctrl+C the pause is resumed automatically.
.TP
.B \-\-resume\fR=<\fIcookie\fR>
The \fIcookie\fR is given by a successful \fB\-\-pause\fR command. It
is a number which identifies each pause request. When all pauses have
been resumed, the miner will resume working.
.SH SEE ALSO
.BR tracker-store (1).
tracker3-endpoint(1)
====================
== NAME
tracker3-endpoint - Create a SPARQL endpoint
== SYNOPSIS
....
tracker3 endpoint [--dbus-service | -b] <service_name>
[--database-path | -d] <database_path>
[[--ontology | -o] <ontology_name> |
[--ontology-path | -p] <ontology_path>]
[--http-port] <port>
[--loopback]
[[--system | --session]]
....
== DESCRIPTION
This command allows creating SPARQL endpoints. The endpoint will be able
to handle SPARQL select and update queries, and notify about changes in
it.
The endpoint is exported via DBus, accessible through the given
_service_name_, either using it in a *SERVICE* clause, or by creating a
dedicated bus-based SPARQL connection.
When creating a database, the _ontology_name_ (or alternatively, a
_ontology_path_) must be provided in order to generate the database. If
_ontology_name_ is used, the ontology must exist in
_$datadir/tracker/ontologies_
The database itself will be stored according to _database_path_.
== OPTIONS
*-b, --dbus-service=<__service_name__>*::
Service name to use on the endpoint.
*-d, --database-path=<__database_path__>*::
The path where the database will be stored.
*-o, --ontology*::
The name of an ontology in _$datadir/tracker/ontologies_ to use on the
constructed database.
*-p, --ontology-path*::
Full path to an ontology to use on the constructed database.
*--session*::
Use the session bus. This is the default.
*--system*::
Use the system bus.
*-l, --list*::
List all SPARQL endpoints available in DBus
*--http-port*::
Creates a HTTP endpoint that listens in the specified port
*--loopback*::
Allows only HTTP connections in the loopback device. Only
effective with HTTP endpoints.
== EXAMPLES
Export a Nepomuk endpoint with the _org.example.Example1_ bus name.
$ tracker3 endpoint -b org.example.Example1 -o nepomuk -d /tmp/example1
Access this endpoint with the *tracker3-sparql(1)* subcommand.
$ tracker3 sparql --dbus-service org.example.Example1 -q "
SELECT ?s ?o
WHERE {
?u a ?o
}"
Export a Nepomuk endpoint via HTTP.
$ tracker3 endpoint --http-port 8080 -o nepomuk --loopback
Access this endpoint via HTTP.
$ tracker3 sparql --remote-service http://127.0.0.1:8080/sparql -q "
SELECT ?u {
?u a rdfs:Resource
}"
== SEE ALSO
*tracker3-sparql*(1),
<https://www.w3.org/TR/sparql11-query/>
......@@ -13,30 +13,6 @@ exports all data stored in a Tracker database, in Turtle format.
The output is intended to be machine-readable, not human readable.
Use a tool such as rapper(1) to convert the data to different formats.
.SH OPTIONS
.TP
.B \-g, \-\-show-graphs
This flag causes the relevant GRAPH statements to be output along with
the data.
In this mode the output is TriG syntax rather than Turtle, due to
the extra GRAPH statements. Some tools which understand Turtle do not
understand TriG.
.TP
.B \-t, \-\-type\fR=<\fITYPE\fR>
Used for exporting a specific type of user data from a Tracker database.
The possible \fITYPE\fR options are:
.sp
\fIfiles-starred\fR
\- Export starred files (as created by GNOME Files)
.sp
\fIphotos-albums\fR
\- Export photo albums (as created by GNOME Photos)
.sp
\fIphotos-favorites\fR
\- Export starred photos (as created by GNOME Photos)
.SH EXAMPLES
.TP
Export all data from Tracker Index and prettify the output using rapper(1).
......
tracker3-export(1)
==================
== NAME
tracker3-export - Export all data from a Tracker database.
== SYNOPSIS
*tracker3 export* [_options_...] [*IRI*...]
== DESCRIPTION
*tracker3 export* exports data stored in a Tracker database, in
Turtle format. By default all data is exported, if any *IRI*, only those
resources will be printed.
The output is intended to be machine-readable, not human readable. Use a
tool such as rapper(1) to convert the data to different formats.
== OPTIONS
*-g, --show-graphs*::
Tracker can separate data into multiple graphs. This feature is used
by the filesystem miner to separate different types of content. This
flag causes the relevant GRAPH statements to be output along with
the data.
In this mode the output is TriG syntax rather than Turtle, due to
the extra GRAPH statements. Some tools which understand Turtle do not
understand TriG.
*--2to3*::
Helper for migrating data from Tracker 2.x databases. This option
takes an argument specifying the scope. Only the “files-starred”
argument is available so far.
*--keyfile*::
Outputs the data in a key file format. Only may be used with --2to3
== EXAMPLES
Export all data from Tracker Index and prettify the output using
rapper(1).::
....
$ tracker3 export -b org.freedesktop.Tracker1.Miner.Files | rapper - -I . -i turtle -o turtle
....
== SEE ALSO
*tracker3-import*(1), *tracker3-sparql*(1).
.TH tracker-extract 1 "April 2016" GNU "User Commands"
.SH NAME
tracker-extract \- Extract metadata from a file.
.SH SYNOPSYS
\fBtracker extract\fR \fIFILE\fR
.SH DESCRIPTION
.B tracker extract
reads the file provided and extracts any metadata it can from this
file, then displays the metadata on standard output.
The metadata is displayed as a SPARQL update command, that can be run against
a SPARQL endpoint to update its copy of the metadata.
The actual extraction is done by a separate process. This is done to isolate
the calling process from any memory leaks or crashes in the libraries Tracker
uses to extract metadata.
For more information see the libtracker-extract reference documentation.
.SH OPTIONS
.TP
.B \-v, \-\-verbosity\fR=<\fILEVEL\fR>
This sets the log verbosity for the extractor process.
The possible \fILEVEL\fR options are:
.sp
.RS 12
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIdebug\fR
\- Show EVERYTHING, from debug messages to errors.
.sp
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 2.3
.\}
\fIdetailed\fR
\- Show enough detail to understand what is happening.
.sp
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIminimal\fR
\- Show an overview of what is going on
.sp
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fIerrors\fR
\- Show only warnings, criticals, errors or fatal events.
.RE
.TP
.B \-o, \-\-output-format\fR=<\fIFORMAT\fR>
Choose which format to use to output results. Supported formats are
\fIsparql\fR, \fIturtle\fR and \fIjson-ld\fR.
.SH EXAMPLES
.TP
Using command line to extract metadata from a file:
.BR
$ tracker extract /path/to/some/file.mp3
.SH ENVIRONMENT
.TP
.B TRACKER_EXTRACTORS_DIR
This is the directory which tracker uses to load the shared libraries
from (used for extracting metadata for specific file types). These are
needed on each invocation of tracker-store. If unset it will default
to the correct place. This is used mainly for testing purposes. The
default location is /usr/lib/tracker-2.0/extract-modules/.
.TP
.B TRACKER_EXTRACTOR_RULES_DIR
This is the directory which tracker uses to load the rules files from.
The rules files describe extractor modules and their supported MIME
types. The default location is /usr/share/tracker/extract-rules/.
.TP
.B TRACKER_USE_CONFIG_FILES
Don't use GSettings, instead use a config file similar to how settings
were saved in 0.10.x. That is, a file which is much like an .ini file.
These are saved to $HOME/.config/tracker/
.SH SEE ALSO
.BR tracker-store (1),
.BR tracker-sparql (1),
.BR tracker-stats (1),
.BR tracker-info (1).
.TP
.BR /usr/lib/tracker-2.0/extract-modules/
.TP
.BR /usr/share/tracker/extract-rules/
.TH tracker-import 1 "Mar 2020" GNU "User Commands"
.SH NAME
tracker-import \- Import data into a Tracker database.
.SH SYNOPSIS
\fBtracker import\fR FILE.ttl
.SH DESCRIPTION
.B tracker import
imports data into a Tracker database.
The data must conform to the existing ontology of the database.
The data must be in Turtle format. You can use a tool such as rapper(1) to
convert the data from other formats to Turtle.
.SH SEE ALSO
.BR tracker-export (1),
.BR tracker-sparql (1).
tracker3-import(1)
==================
== NAME
tracker3-import - Import data into a Tracker database.
== SYNOPSIS
*tracker3 import* FILE.ttl
== DESCRIPTION
*tracker3 import* imports data into a Tracker database.
The data must conform to the existing ontology of the database.
The data must be in Turtle format. You can use a tool such as rapper(1)
to convert the data from other formats to Turtle.
== SEE ALSO
*tracker3-export*(1), *tracker3-sparql*(1).
.TH tracker-index 1 "September 2014" GNU "User Commands"
.SH NAME
tracker-index \- List, pause, resume and command data miners indexing content
.SH SYNOPSIS
.nf
\fBtracker index\fR \-\-reindex\-mime\-type <\fImime1\fR> [[\-m [\fImime2\fR]] ...]
\fBtracker index\fR \-\-file <\fIfile1\fR> [[\fIfile2\fR] ...]
\fBtracker index\fR \-\-import <\fIfile1\fR> [[\fIfile2\fR] ...]
\fBtracker index\fR \-\-backup <\fIfile\fR> | \-\-restore <\fIfile\fR>
.fi
.SH DESCRIPTION
This command perform actions on the current index. The "index" holds a
snapshot of the working tree in a database.
The index command allows some level of control on existing data
indexed, such as re-indexing content from a specific demographic -
e.g. all JPEG images, or simply reindexing an existing or non-existent
file.
It may be a good idea to backup your index before an upgrade in case
there is data loss (which should never happen). In those cases, the
backup command is made available and of course the restore command
will import an older data set (or index) into an empty index.
Finally, there is an import feature which makes testing or applying a
"base" data set for use much easier.
.SH OPTIONS
.TP
.B \-m, \-\-reindex-mime\-type\fR=<\fImime1\fR> [[\-m [\fImime2\fR]] ...]
Re-index files which match the \fImime\fR type supplied. This is
usually used when installing new extractors which support \fImime\fR
types previously unsupported. This forces Tracker to re-index those
files. You can use \fB\-\-reindex\-mime\-type\fR more than once per
\fImime\fR type.
.TP
.B \-f, \-\-index\fR=<\fIfile1\fR> [[\fIfile2\fR] ...]
(Re)index a file matching the \fIfile\fR name(s) supplied.
.TP
.B \-b, \-\-backup\fR=<\fIfile\fR>
Begins backing up the Tracker databases and save it to the \fIfile\fR
given.
.TP
.B \-o, \-\-restore\fR=<\fIfile\fR>
Begins restoring a previous backup from the \fIfile\fR which points to
the location of the backup generated by \fB\-\-backup\fR.
.TP
.B \i, \-\-import\fR=<\fIfile1\fR> [[\fIfile2\fR] ...]
Allows data to be imported into the index / database by providing
files with Turtle content.
Multiple \fIfile\fR arguments can be provided to import data from
multiple files.
The \fIfile\fR argument can be either a local path or a URI. It also
does not have to be an absolute path.
.SH SEE ALSO
.BR tracker (1).
.BR Turtle.
.TH tracker-info 1 "Oct 2008" GNU "User Commands"
.SH NAME
tracker-info \- Retrieve all information available for a certain file.
.SH SYNOPSIS
\fBtracker info\fR [\fIoptions\fR...] <\fIfile1\fR> [[\fIfile2\fR] ...]
.SH DESCRIPTION
.B tracker info
asks for all the known metadata available for the given \fIfile\fR.
Multiple \fIfile\fR arguments can be provided to retrieve information
about multiple files.
The \fIfile\fR argument can be either a local path or a URI. It also
does not have to be an absolute path.
.SH OPTIONS
.TP
.B \-f, \-\-full\-namespaces
By default, all keys and values reported about any given \fIfile\fR
are returned in shortened form, for example, \fInie:title\fR is shown
instead of
\fIhttp://www.semanticdesktop.org/ontologies/2007/01/19/nie#title\fR.
This makes things much easier to see generally and the output is less
cluttered. This option reverses that so FULL namespaces are shown
instead.
.TP
.B \-c, \-\-plain\-text\-content
If the resource being displayed has nie:PlainTextContent (i.e.
information about the content of the resource, which could be the
contents of a file on the disk), then this option displays that in the
output.
.TP
.B \-i, \-\-resource\-is\-iri
In most cases, the \fIfile\fR argument supplied points to a URL or
PATH which is queried for according to the resource associated with it
by \fInie:url\fR. However, in cases where the \fIfile\fR specified
turns out to be the actual URN itself, this argument is required to
tell "tracker info" not to do the extra step of looking up the URN
related by \fInie:url\fR.
For example, consider that you store URNs by the actual URL itself and
use the unique nie:url in another resource (which is quite reasonable
when using containers and multi-resource conditions), you would need
this argument to tell "tracker info" that the \fIfile\fR supplied
is actually a URN not URL.
.TP
.B \-t, \-\-turtle
Output results as Turtle RDF. If \-f is enabled, full URIs are shown
for subjects, predicates and objects; otherwise, shortened URIs are
used, and all the prefixes Tracker knows about are printed at the top
of the output.
.SH ENVIRONMENT
.TP
.B 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 "\fBdirect\fR" the connection to the database is made directly to
the file itself on the disk, there is no intermediary daemon or
process. The "\fBdirect\fR" approach is purely \fIread-only\fR.
With "\fBbus\fR" the \fBtracker-store\fR 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 \fIBUT\fR this is the only
approach you can use if you want to \fIwrite\fR to the database.
With "\fBauto\fR" the backend is decided for you, much like it would
be if this environment variable was undefined.
.SH SEE ALSO
.BR tracker-store (1),
.BR tracker-sparql (1).
.TP
.BR http://nepomuk.semanticdesktop.org/
.TP
.BR http://www.w3.org/TR/rdf-sparql-query/