<?xml version="1.0" encoding="UTF-8"?>

<node name="/org/freedesktop/Tracker1">
  <interface name="org.freedesktop.Tracker1.Resources">

    <!-- Load statements from Turtle file -->
    <method name="Load">
      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
      <arg type="s" name="uri" direction="in" />
    </method>

    <!-- SPARQL Query without updates -->
    <method name="SparqlQuery">
      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
      <annotation name="com.trolltech.QtDBus.QtTypeName.Out0"
		  value="QVector&lt;QStringList&gt;"/>
      <arg type="s" name="query" direction="in" />
      <arg type="aas" name="result" direction="out" />
    </method>

    <!-- SPARQL Update extensions, insert and delete -->
    <method name="SparqlUpdate">
      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
      <arg type="s" name="query" direction="in" />
    </method>

    <!-- SPARQL Update extensions, insert and delete,
         return generated URIs for inserted blank nodes -->
    <method name="SparqlUpdateBlank">
      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
      <arg type="s" name="query" direction="in" />
      <arg type="aaa{ss}" name="result" direction="out" />
    </method>

    <!-- sync data to disk -->
    <method name="Sync">
      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
    </method>

    <!-- SPARQL Update as part of a batch, use this method when sending a
         possibly large amount of updates to improve performance, may delay
         database commit until receiving BatchCommit -->
    <method name="BatchSparqlUpdate">
      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
      <arg type="s" name="query" direction="in" />
    </method>

    <!-- Commits pending updates to the database -->
    <method name="BatchCommit">
      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
    </method>

   <signal name="Writeback">
      <arg type="a{iai}" name="subjects" />
   </signal>

   <signal name="GraphUpdated">
      <arg type="s" name ="classname" />
      <arg type="a(iiii)" name="deletes" />
      <arg type="a(iiii)" name="inserts" />
   </signal>

  </interface>
</node>
