![]() |
![]() |
![]() |
Rasqal RDF Query Library Manual | ![]() |
---|---|---|---|---|
typedef rasqal_graph_pattern; int rasqal_graph_pattern_add_constraint (rasqal_graph_pattern *gp, rasqal_expression *expr); void rasqal_graph_pattern_add_sub_graph_pattern (rasqal_graph_pattern *graph_pattern, rasqal_graph_pattern *sub_graph_pattern); rasqal_expression* rasqal_graph_pattern_get_constraint (rasqal_graph_pattern *gp, int idx); raptor_sequence* rasqal_graph_pattern_get_constraint_sequence (rasqal_graph_pattern *gp); int rasqal_graph_pattern_get_flags (rasqal_graph_pattern *graph_pattern); rasqal_graph_pattern_operator rasqal_graph_pattern_get_operator (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); enum rasqal_graph_pattern_operator; const char* rasqal_graph_pattern_operator_as_string (rasqal_graph_pattern_operator op); void rasqal_graph_pattern_print (rasqal_graph_pattern *gp, FILE *fh); int (*rasqal_graph_pattern_visit_fn) (rasqal_query *query, rasqal_graph_pattern *gp, void *user_data); int rasqal_graph_pattern_visit (rasqal_query *query, rasqal_graph_pattern *gp, rasqal_graph_pattern_visit_fn fn, void *user_data);
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_constraint (rasqal_graph_pattern *gp, rasqal_expression *expr);
Add a constraint expression to the graph_pattern.
gp : |
rasqal_graph_pattern query object |
expr : |
rasqal_expression expr |
Returns : | non-0 on failure |
void rasqal_graph_pattern_add_sub_graph_pattern (rasqal_graph_pattern *graph_pattern, rasqal_graph_pattern *sub_graph_pattern);
Add a sub graph pattern to a graph pattern .
graph_pattern : |
graph pattern to add to |
sub_graph_pattern : |
graph pattern to add inside |
rasqal_expression* rasqal_graph_pattern_get_constraint (rasqal_graph_pattern *gp, int idx);
Get a constraint in the sequence of constraint expressions in the query.
gp : |
rasqal_graph_pattern query object |
idx : |
index into the sequence (0 or larger) |
Returns : | a rasqal_expression pointer or NULL if out of the sequence range |
raptor_sequence* rasqal_graph_pattern_get_constraint_sequence (rasqal_graph_pattern *gp);
Get the sequence of constraints expressions in the query.
gp : |
rasqal_graph_pattern object |
Returns : | a raptor_sequence of rasqal_expression pointers. |
int rasqal_graph_pattern_get_flags (rasqal_graph_pattern *graph_pattern);
Get the graph pattern flags .
deprecated
: Always returns 0
graph_pattern : |
rasqal_graph_pattern graph pattern object |
Returns : | 0 |
rasqal_graph_pattern_operator rasqal_graph_pattern_get_operator (rasqal_graph_pattern *graph_pattern);
Get the graph pattern operator .
The operator for the given graph pattern. See also
rasqal_graph_pattern_operator_as_string()
.
graph_pattern : |
rasqal_graph_pattern graph pattern object |
Returns : | graph pattern operator |
rasqal_graph_pattern* rasqal_graph_pattern_get_sub_graph_pattern (rasqal_graph_pattern *graph_pattern, int idx);
Get a sub-graph pattern inside a graph pattern.
graph_pattern : |
rasqal_graph_pattern graph pattern object |
idx : |
index into the sequence of sub graph_patterns in the graph pattern |
Returns : | rasqal_graph_pattern or NULL if out of range |
raptor_sequence* rasqal_graph_pattern_get_sub_graph_pattern_sequence (rasqal_graph_pattern *graph_pattern);
Get the sequence of graph patterns inside a graph pattern .
graph_pattern : |
rasqal_graph_pattern graph pattern object |
Returns : | a raptor_sequence of rasqal_graph_pattern pointers. |
rasqal_triple* rasqal_graph_pattern_get_triple (rasqal_graph_pattern *graph_pattern, int idx);
Get a triple inside a graph pattern.
graph_pattern : |
rasqal_graph_pattern graph pattern object |
idx : |
index into the sequence of triples in the graph pattern |
Returns : | rasqal_triple or NULL if out of range |
typedef enum { RASQAL_GRAPH_PATTERN_OPERATOR_UNKNOWN = 0, RASQAL_GRAPH_PATTERN_OPERATOR_BASIC = 1, RASQAL_GRAPH_PATTERN_OPERATOR_OPTIONAL = 2, RASQAL_GRAPH_PATTERN_OPERATOR_UNION = 3, RASQAL_GRAPH_PATTERN_OPERATOR_GROUP = 4, RASQAL_GRAPH_PATTERN_OPERATOR_GRAPH = 5, RASQAL_GRAPH_PATTERN_OPERATOR_LAST=RASQAL_GRAPH_PATTERN_OPERATOR_GRAPH } rasqal_graph_pattern_operator;
Graph pattern operators
const char* rasqal_graph_pattern_operator_as_string (rasqal_graph_pattern_operator op);
Get a string for the query verb.
op : |
the rasqal_graph_pattern_operator verb of the query |
Returns : | pointer to a shared string label for the query verb |
void rasqal_graph_pattern_print (rasqal_graph_pattern *gp, FILE *fh);
Print a rasqal_graph_pattern in a debug format.
The print debug format may change in any release.
gp : |
the rasqal_graph_pattern object |
fh : |
the FILE* handle to print to |
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 |
Returns : | 0 to truncate the visit |
int rasqal_graph_pattern_visit (rasqal_query *query, rasqal_graph_pattern *gp, rasqal_graph_pattern_visit_fn fn, void *user_data);
Visit a user function over a rasqal_graph_pattern
If the user function fn
returns 0, the visit is truncated.
query : |
rasqal_query to operate on |
gp : |
rasqal_graph_pattern graph pattern |
fn : |
pointer to function to apply that takes user data and graph pattern parameters |
user_data : |
user data for applied function |
Returns : | 0 if the visit was truncated. |