sig
  type g
  val open_graph :
    ?options:(string * string) list -> Rdf_uri.uri -> Rdf_graph.Graph.g
  val graph_name : Rdf_graph.Graph.g -> Rdf_uri.uri
  val add_triple :
    Rdf_graph.Graph.g ->
    sub:Rdf_node.node -> pred:Rdf_node.node -> obj:Rdf_node.node -> unit
  val rem_triple :
    Rdf_graph.Graph.g ->
    sub:Rdf_node.node -> pred:Rdf_node.node -> obj:Rdf_node.node -> unit
  val add_triple_t : Rdf_graph.Graph.g -> Rdf_node.triple -> unit
  val rem_triple_t : Rdf_graph.Graph.g -> Rdf_node.triple -> unit
  val subjects_of :
    Rdf_graph.Graph.g ->
    pred:Rdf_node.node -> obj:Rdf_node.node -> Rdf_node.node list
  val predicates_of :
    Rdf_graph.Graph.g ->
    sub:Rdf_node.node -> obj:Rdf_node.node -> Rdf_node.node list
  val objects_of :
    Rdf_graph.Graph.g ->
    sub:Rdf_node.node -> pred:Rdf_node.node -> Rdf_node.node list
  val find :
    ?sub:Rdf_node.node ->
    ?pred:Rdf_node.node ->
    ?obj:Rdf_node.node -> Rdf_graph.Graph.g -> Rdf_node.triple list
  val exists :
    ?sub:Rdf_node.node ->
    ?pred:Rdf_node.node -> ?obj:Rdf_node.node -> Rdf_graph.Graph.g -> bool
  val exists_t : Rdf_node.triple -> Rdf_graph.Graph.g -> bool
  val subjects : Rdf_graph.Graph.g -> Rdf_node.node list
  val predicates : Rdf_graph.Graph.g -> Rdf_node.node list
  val objects : Rdf_graph.Graph.g -> Rdf_node.node list
  val transaction_start : Rdf_graph.Graph.g -> unit
  val transaction_commit : Rdf_graph.Graph.g -> unit
  val transaction_rollback : Rdf_graph.Graph.g -> unit
  val new_blank_id : Rdf_graph.Graph.g -> Rdf_node.blank_id
end