Tracker SPARQL is a light-weight RDF triple store implementation, with a SPARQL 1.1 interface. Tracker is implemented as a library, and may be used to create private databases, in addition to connecting to remote endpoints for federated queries or creating such public endpoints.
Tracker SPARQL is the data storage backend for the Tracker Miner FS filesystem indexer, and is also used by apps that want to store, query and publish structured data using SPARQL.
Tracker offers the following advantages over other traditional databases:
- It is based on open standards. SPARQL is a W3C recommendation. So is the RDF data model and the various file formats available for import/export (Turtle, Trig, JSON-LD).
- Database format and schema updates are automatically managed. The user just needs to write and update the ontology defining the structure of the contained data. Databases will be created and implicitly updated to format changes without the need to write supporting code.
- It has versatile serialization capabilities. Tracker is able to export RDF data into the same formats it can import and load into databases. It is possible to perform backups, data mirroring, data synchronization…
- A complete set of CLI tools is included. Tracker databases are fully introspectable and can be opened with no additional supporting files, the command line tools can do anything the library could do, and a number of utilities is provided.
- Distributed data is a first class citizen. SPARQL has builtin capabilities to operate in a distributed environment, which may make it desirable to manage data that is naturally open to multiple users. Tracker may interoperate with other SPARQL implementations.
Tracker depends on the following libraries:
- GLib: General-purpose utility library. GLib provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on. More information available on the GLib API documentation.
- GObject: A library that provides a type system, a collection of fundamental types including an object type, and a signal system. More information available on the GObject API documentation.
- GIO: A modern, easy-to-use VFS API including abstractions for files, drives, volumes, stream I/O, as well as network programming and IPC though D-Bus. More information available on the GIO API documentation.
- SQLite: SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. SQLite is the most used database engine in the world. More information available on the SQLite website.
- Soup: libsoup is an HTTP and HTTP/2 client/server library for GNOME. It uses GObjects and the GLib main loop to integrate well with GNOME applications. More information available on the Soup API documentation
- LibXML2: Libxml2 is the XML C parser and toolkit developed for the GNOME project. More information at the libXML2 website.
It is possible to create private databases in local storage, or to connect to
remote HTTP or D-Bus SPARQL endpoints. See
and its different constructors for each of these methods.