Tracker.SparqlConnection.new
Description: Reference for Tracker.SparqlConnection.new

### Constructor

# Tracker SparqlConnectionnew

#### Declaration [src]

    TrackerSparqlConnection*
    tracker_sparql_connection_new (
      TrackerSparqlConnectionFlags flags,
      GFile* store,
      GFile* ontology,
      GCancellable* cancellable,
      GError** error
    )

#### Description [src]

Creates or opens a process-local database.

This method should only be used for databases owned by the current process. To connect to databases managed by other processes, use `tracker_sparql_connection_bus_new()`.

If `store` is `NULL`, the database will be created in memory.

If defined, the `ontology` argument must point to a location containing suitable `.ontology` files in Turtle format. These define the structure of the triple store. You can learn more about ontologies, or you can use the stock Nepomuk ontologies by calling `tracker_sparql_get_ontology_nepomuk()`.

If opening an existing database, it is possible to pass `NULL` as the `ontology` location, the ontology will be introspected from the database. Passing a `NULL` `ontology` will raise an error if the database does not exist.

If a database is opened without the #TRACKER_SPARQL_CONNECTION_FLAG_READONLY flag enabled, and the given `ontology` holds differences with the current data layout, migration to the new structure will be attempted. This operation may raise an error. In particular, not all migrations are possible without causing data loss and Tracker will refuse to delete data during a migration. The database is always left in a consistent state, either prior or posterior to migration.

It is considered a developer error to ship ontologies that contain format errors, or that fail at migrations.

It is encouraged to use `resource:///` URI locations for `ontology` wherever possible, so the triple store structure is tied to the executable binary, and in order to minimize disk seeks during `TrackerSparqlConnection` initialization.

#### Parameters

`flags`

  Type: `TrackerSparqlConnectionFlags`

  Connection flags to define the SPARQL connection behavior.

`store`

  Type: `GFile`

  The directory that contains the database as a `GFile`, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`ontology`

  Type: `GFile`

  The directory that contains the database schemas as a `GFile`, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`cancellable`

  Type: `GCancellable`

  Optional `GCancellable`

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`error`

  Type: `GError **`

  The return location for a recoverable error.

  The argument can be `NULL`.
  If the return location is not `NULL`, then you must initialize it to a `NULL` `GError*`.
  The argument will left initialized to `NULL` by the constructor if there are no errors.
  In case of error, the argument will be set to a newly allocated `GError`; the caller will take ownership of the data, and be responsible for freeing it.

#### Return value

Type: `TrackerSparqlConnection`

A new `TrackerSparqlConnection`.

The caller of the function takes ownership of the data, and is responsible for freeing it.