Top | ![]() |
![]() |
![]() |
![]() |
Graph patterns form a a tree structure that build a rasqal_query
top-level graph pattern (see rasqal_query_get_query_graph_pattern()
)
which may have sub-graph patterns. Graph patterns at the leaf of the
tree operate over triple patterns (rasqal_triple) matching the
RDF triples in the data sources for RASQAL_GRAPH_PATTERN_OPERATOR_BASIC
or RASQAL_GRAPH_PATTERN_OPERATOR_OPTIONAL
. Other graph patterns
operators operate over sub graph patterns and group them, union them
or apply a GRAPH matching keyword (RASQAL_GRAPH_PATTERN_OPERATOR_GRAPH
).
int rasqal_graph_pattern_add_sub_graph_pattern (rasqal_graph_pattern *graph_pattern
,rasqal_graph_pattern *sub_graph_pattern
);
rasqal_expression *
rasqal_graph_pattern_get_filter_expression
(rasqal_graph_pattern *gp
);
int rasqal_graph_pattern_set_filter_expression (rasqal_graph_pattern *gp
,rasqal_expression *expr
);
raptor_sequence * rasqal_graph_pattern_get_flattened_triples (rasqal_query *query
,rasqal_graph_pattern *graph_pattern
);
rasqal_graph_pattern_operator
rasqal_graph_pattern_get_operator (rasqal_graph_pattern *graph_pattern
);
rasqal_literal *
rasqal_graph_pattern_get_origin (rasqal_graph_pattern *graph_pattern
);
rasqal_graph_pattern * rasqal_graph_pattern_get_sub_graph_pattern (rasqal_graph_pattern *graph_pattern
,int idx
);
raptor_sequence *
rasqal_graph_pattern_get_sub_graph_pattern_sequence
(rasqal_graph_pattern *graph_pattern
);
rasqal_triple * rasqal_graph_pattern_get_triple (rasqal_graph_pattern *graph_pattern
,int idx
);
raptor_sequence * rasqal_graph_pattern_get_triples (rasqal_query *query
,rasqal_graph_pattern *graph_pattern
);
rasqal_literal *
rasqal_graph_pattern_get_service (rasqal_graph_pattern *graph_pattern
);
rasqal_variable *
rasqal_graph_pattern_get_variable (rasqal_graph_pattern *graph_pattern
);
const char *
rasqal_graph_pattern_operator_as_string
(rasqal_graph_pattern_operator op
);
int rasqal_graph_pattern_variable_bound_in (rasqal_graph_pattern *gp
,rasqal_variable *v
);
int (*rasqal_graph_pattern_visit_fn) (rasqal_query *query
,rasqal_graph_pattern *gp
,void *user_data
);
User function to visit an graph_pattern and operate on it with
rasqal_graph_pattern_visit()
or rasqal_query_graph_pattern_visit()
query |
rasqal_query containing the graph pattern |
|
gp |
current graph_pattern |
|
user_data |
user data passed in |
int rasqal_graph_pattern_visit (rasqal_query *query
,rasqal_graph_pattern *gp
,rasqal_graph_pattern_visit_fn fn
,void *user_data
);
Graph pattern operators
Internal. |
||
Just triple patterns and constraints. |
||
Set of graph patterns (ANDed) and constraints. |
||
Set of graph patterns (UNIONed) and constraints. |
||
Set of graph patterns (ANDed) and constraints. |
||
A graph term + a graph pattern and constraints. |
||
A filter graph pattern with an expression |
||
LET ?var := Expression (LAQRS) |
||
SELECT graph pattern |
||
SERVICE graph pattern |
||
MINUS graph pattern |
||
VALUES graph pattern |
||
Internal. |