module Rdf_sparql_algebra: sig
.. end
module T: Rdf_sparql_types
type
error =
exception Error of error
val error : error -> 'a
val string_of_error : error -> string
type
query = {
}
type
filter = Rdf_sparql_types.constraint_
exception Implicit_aggregate_found
type
path =
type
triple = Rdf_sparql_types.var_or_term * path *
Rdf_sparql_types.var_or_term
module VS: Rdf_sparql_types.VarSet
type
algebra =
val visible_vars : query -> VS.t
val collect_and_remove_filters : Rdf_sparql_types.graph_pattern_elt list ->
Rdf_sparql_types.constraint_ list * Rdf_sparql_types.graph_pattern_elt list
val fresh_var : unit -> Rdf_sparql_types.var
val path_iri_first : path
val path_iri_rest : path
val iri_nil : T.iri
val iriref_type : Rdf_sparql_types.iriref
val path_iri_type : path
val translate_path : Rdf_sparql_types.path -> path
val translate_path_sequence : Rdf_sparql_types.path_sequence -> path
val translate_path_elt_or_inverse : T.path_elt_or_inverse -> path
val translate_path_elt : T.path_elt -> path
val translate_path_primary : Rdf_sparql_types.path_primary -> path
val partition_path_one_in_prop_set : Rdf_sparql_types.path_one_in_prop_set list ->
Rdf_sparql_types.iriref list * Rdf_sparql_types.iriref list
val translate_property_path_pattern : (T.var_or_term * path * T.var_or_term) list ->
T.var_or_term * path * T.var_or_term ->
(T.var_or_term * path * T.var_or_term) list
val translate_property_path_patterns : triple list ->
(T.var_or_term * path * T.var_or_term) list
val build_triples_path : T.var_or_term ->
triple list ->
T.prop_object_list -> triple list
val build_triples_prop_graph_node : T.var_or_term ->
path ->
triple list ->
Rdf_sparql_types.object_ -> triple list
val build_triples_path_collection : triple list ->
T.var_or_term ->
Rdf_sparql_types.object_ list -> triple list
val translate_triples_same_subject_path : triple list ->
T.triples_same_subject ->
(T.var_or_term * path * T.var_or_term) list
val translate_ggp : T.group_graph_pattern -> algebra
Translate group graph pattern as explained here:
http://www.w3.org/TR/sparql11-query#convertGraphPattern
val translate_subselect : Rdf_sparql_types.sub_select -> algebra
val translate_ggp_sub : Rdf_sparql_types.ggp_sub -> algebra
val translate_triples_block : T.triples_block -> algebra
val translate_union : T.group_graph_pattern list -> algebra
val translate_service : T.service_graph_pattern -> algebra
val translate_inline_data : T.datablock -> algebra
val has_implicit_grouping : query -> bool
val aggregation_step : query ->
algebra ->
algebra *
(Rdf_sparql_types.var * Rdf_sparql_types.expression) list *
query
val translate_query_level : query -> algebra
val p : Buffer.t -> string -> unit
val string_of_var : Rdf_sparql_types.var -> string
val string_of_var_or_term : Rdf_sparql_types.var_or_term -> string
val string_of_path : path -> string
val string_of_triple : Rdf_sparql_types.var_or_term * path *
Rdf_sparql_types.var_or_term -> string
val print_triple : string ->
Buffer.t ->
Rdf_sparql_types.var_or_term * path *
Rdf_sparql_types.var_or_term -> unit
val print_triples : string ->
Buffer.t ->
(Rdf_sparql_types.var_or_term * path *
Rdf_sparql_types.var_or_term)
list -> unit
val print_expr : Buffer.t -> Rdf_sparql_types.expression -> unit
val print_group_condition : Buffer.t -> Rdf_sparql_types.group_condition -> unit
val print : string -> Buffer.t -> algebra -> unit
val string_of_algebra : algebra -> string