| Tracker SPARQL Library Reference Manual |
|---|
The Tracker SPARQL library provides an easy and secure way of creating SPARQL queries with the proper syntax. This is achieved using the TrackerSparqlBuilder object.
#include <tracker-sparql.h>
int main (int argc, char **argv)
{
TrackerSparqlBuilder *builder;
const gchar *iri = "urn:example:0001";
const gchar *query_str;
time_t now = time (NULL);
/* Initialize GLib type system */
g_type_init ();
/* Create builder */
builder = tracker_sparql_builder_new_update ();
/* Drop previous data */
tracker_sparql_builder_drop_graph (builder, iri);
/* Insert new data */
tracker_sparql_builder_insert_open (builder, iri);
tracker_sparql_builder_subject_iri (builder, iri);
tracker_sparql_builder_predicate (builder, "a");
tracker_sparql_builder_object (builder, "nie:DataObject");
tracker_sparql_builder_object (builder, "nfo:FileDataObject");
tracker_sparql_builder_predicate (builder, "nfo:fileLastModified");
tracker_sparql_builder_object_date (builder, &now);
tracker_sparql_builder_insert_close (builder);
/* Get query as string. Do NOT g_free() the resulting string! */
query_str = tracker_sparql_builder_get_result (builder);
/* Print it */
g_print ("Generated SPARQL query: \n"
"%s", query_str);
/* Once builder no longer needed, unref it. Note that after
* this operation, you must not use the returned query result
* any more */
g_object_unref (builder)
return 0;
}
The previous code will generate the following SPARQL query:
DROP GRAPH <urn:example:0001>
INSERT INTO <urn:example:0001> {
<urn:example:0001> a nie:DataObject , nfo:FileDataObject ;
nfo:fileLastModified "2010-08-04T13:09:26Z" .
}