This page is to direct developers to documentation that they would find helpful when developing their application to make use of Tracker technologies. This page is still being written, so some of this information is not yet available. This page is for Tracker > 0.6 only (a lot of the principles and documentation here do not apply to 0.6.x).
What can I do?
Tracker is built around a common well-defined database schema or 'ontology' and it is worth understanding this schema on a basic level before anything else. There are two approaches to using Tracker:
- Application developers: interested on querying the data in the store (and maybe updating few bits there)
Platform developers: interested on extending tracker adding new sources of data (miners) or supporting new file formats (extractors)
Data querying or updating:
libtracker-sparql: GObject-oriented library to access tracker data.
libtracker-miner: Base classes with the basic functionality for miners and other common code. Write a miner inheriting from those classes and implementing just the specific functionality.
libtracker-control: Library for managing miners, including polling status and progress, pausing, resuming and more.
Ontologies which describe how the data is related (common for all the previous components):
Deprecated and no longer used (listed for historical reference):
libtracker-client (deprecated in 0.9): Early simple querying API, mostly a wrapper around DBus.
Application developers manual: How data is related and what you should know as an application developer using Tracker.
Supported changes: required knowledge when migrating your database schema with updates.
W3C standard query language SPARQL standards (for updates and queries):
Supported SPARQL Features and Extensions: Tracker specific functions that can be used in the SPARQL queries.
Internal SPARQL Features: Tracker specific internal properties and features that can be used in SPARQL queries.
How to use SPARQL:
Introducing RDF & SPARQL: Examples of how you can make simple queries.
Advanced RDF & SPARQL: Examples of how you can make more complex queries.
Efficient queries: Dos and don'ts.
INSERT: How transactions are handled and how to do it sync/asynchronously.
INSERT OR REPLACE: How to use Tracker's INSERT OR REPLACE extension.
Related projects: other projects interacting or extending tracker
How Do Things Work?
Busy handling (for the Store, i.e. while replying a journal)
How to write a very simple client from scratch (deprecated, use libtracker-sparql instead)
How to write a client using D-Bus (deprecated, use libtracker-sparql instead)
Write-back capability (writing data back to files)