sig
  type literal = {
    lit_value : string;
    lit_language : string option;
    lit_type : Rdf_uri.uri option;
  }
  type blank_id
  type node =
      Uri of Rdf_uri.uri
    | Literal of Rdf_node.literal
    | Blank
    | Blank_ of Rdf_node.blank_id
  module Ord_type :
    sig
      type t = Rdf_node.node
      val compare : Rdf_node.node -> Rdf_node.node -> int
    end
  type triple = Rdf_node.node * Rdf_node.node * Rdf_node.node
  val string_of_blank_id : Rdf_node.blank_id -> string
  val blank_id_of_string : string -> Rdf_node.blank_id
  val node_of_uri_string : string -> Rdf_node.node
  val mk_literal :
    ?typ:Rdf_uri.uri -> ?lang:string -> string -> Rdf_node.literal
  val mk_literal_datetime : ?d:float -> unit -> Rdf_node.literal
  val node_of_datetime : ?d:float -> unit -> Rdf_node.node
  val datetime_of_literal : Rdf_node.literal -> Netdate.t
  val mk_literal_bool : bool -> Rdf_node.literal
  val node_of_bool : bool -> Rdf_node.node
  val bool_of_literal : Rdf_node.literal -> bool
  val node_of_literal_string :
    ?typ:Rdf_uri.uri -> ?lang:string -> string -> Rdf_node.node
  val string_of_node : Rdf_node.node -> string
  val node_hash : Rdf_node.node -> int64
end