Module Rdf_dt

module Rdf_dt: sig .. end
Computing values in Sparql, mapping to/from RDF terms.

A value can be an error, and propagated in computations.


type error = 
| Type_error of value * string (*The value has not the given expected "type"*)
| Invalid_literal of Rdf_node.literal (*Invalid literal: bad integer string for an integer, ...*)
| Exception of exn (*To keep the original exception which resulted in an error.*)
type value = 
| Err of error (*Value is an error*)
| Blank of string (*A blank node with its label*)
| Iri of Rdf_uri.uri (*An URI.*)
| String of string (*A string literal.*)
| Int of int (*An integer.*)
| Float of float (*A decimal, float or double.*)
| Bool of bool (*A Boolean.*)
| Datetime of Netdate.t (*A datetime.*)
| Ltrl of string * string option (*A literal string with an optional language tag.*)
| Ltrdt of string * Rdf_uri.uri (*A literal value with a specified datatype.*)
exception Error of error
val error : error -> 'a
Raise a Rdf_dt.Error exception with the given error.
val date_fmt : string
Default date format.
val string_of_value : value -> string
Return a string to show the given value.
module ValueOrdered: sig .. end
module VMap: Map.S  with type key = value
Maps over values.
module VSet: Set.S  with type elt = value
Sets of values.
val string_of_error : error -> string
Return a human-readable message from the given error.
val iri : Rdf_uri.uri -> value -> value
iri base v returns a Iri value, ensure the given value is an URI. If it is a literal string, convert it to an URI, eventually appending to the base uri if the string expresses a relative URI.
val datatype : value -> value
datatype v returns the URI of the datatype of the value. If v is Err, Blank or Iri, return Err.
val string_literal : value -> string * string option
string_literal v returns a pair (string, optional language tag) if v is String of Ltrl. Else return Err.
val string : value -> value
string v returns a String value, converting any value to a string, except Err and Blank for which Err is returned.
val int : value -> value
int v returns a Int value, trying to convert literal values to an integer. Return Err if v is Err, Blank or Iri, or if the literal value could not be converted to an integer. Floats are truncated.
val float : value -> value
Same as Rdf_dt.int but for floats.
val bool : value -> value
Same as Rdf_dt.int but for booleans. Bool true, String "true", String "1", Int n with n<>0 and Float f when f is not nan nor zero evaluate to Bool true. Bool false, String "false", String "0", Int 0 and Float f when f is nan or zero evaluate to Bool false. Any other value evaluates to Err.
val datetime : value -> value
datetime v returns a Datetime, if possible. String literals are converted if possible; else Err is returned.
val ltrl : value -> value
Same as Rdf_dt.string, but languge tag is kept is present (i.e. if the value is a Ltrl).
val numeric : value -> value
Try to convert the given value to an Int or else to a Float, if the value is not already Int or Float.
val of_literal : Rdf_node.literal -> value
of_literal lit returns a value from a literal node.
val of_node : Rdf_node.node -> value
of_node node returns a value from an RDF node.
val to_node : value -> Rdf_node.node
to_node v converts the given value to an RDF node. If v is Error e, then exception e is raised.