Your IP : 216.73.216.48
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Graph patterns</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="Rasqal RDF Query Library Manual">
<link rel="up" href="reference-manual.html" title="Part I. Reference Manual">
<link rel="prev" href="rasqal-section-expression.html" title="Expressions">
<link rel="next" href="rasqal-section-literal.html" title="Literal">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="rasqal-section-expression.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="reference-manual.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Rasqal RDF Query Library Manual</th>
<td><a accesskey="n" href="rasqal-section-literal.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#rasqal-section-graph-pattern.synopsis" class="shortcut">Top</a>
|
<a href="#rasqal-section-graph-pattern.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="rasqal-section-graph-pattern"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="rasqal-section-graph-pattern.top_of_page"></a>Graph patterns</span></h2>
<p>Graph patterns — Collections of triple patterns, sub-graph patterns with operators.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="rasqal-section-graph-pattern.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">typedef <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern">rasqal_graph_pattern</a>;
<span class="returnvalue">int</span> <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-add-sub-graph-pattern" title="rasqal_graph_pattern_add_sub_graph_pattern ()">rasqal_graph_pattern_add_sub_graph_pattern</a>
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *sub_graph_pattern</code></em>);
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="returnvalue">rasqal_expression</span></a> * <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-filter-expression" title="rasqal_graph_pattern_get_filter_expression ()">rasqal_graph_pattern_get_filter_expression</a>
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>);
<span class="returnvalue">int</span> <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-set-filter-expression" title="rasqal_graph_pattern_set_filter_expression ()">rasqal_graph_pattern_set_filter_expression</a>
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> *expr</code></em>);
<a href="/usr/share/gtk-doc/html/raptor/raptor-section-sequence.html#raptor-sequence"><span class="returnvalue">raptor_sequence</span></a> * <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-flattened-triples" title="rasqal_graph_pattern_get_flattened_triples ()">rasqal_graph_pattern_get_flattened_triples</a>
(<em class="parameter"><code><a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a> *query</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);
<span class="returnvalue">int</span> <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-index" title="rasqal_graph_pattern_get_index ()">rasqal_graph_pattern_get_index</a> (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>);
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-operator" title="enum rasqal_graph_pattern_operator"><span class="returnvalue">rasqal_graph_pattern_operator</span></a> <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-operator" title="rasqal_graph_pattern_get_operator ()">rasqal_graph_pattern_get_operator</a>
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);
<a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="returnvalue">rasqal_literal</span></a> * <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-origin" title="rasqal_graph_pattern_get_origin ()">rasqal_graph_pattern_get_origin</a> (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="returnvalue">rasqal_graph_pattern</span></a> * <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-sub-graph-pattern" title="rasqal_graph_pattern_get_sub_graph_pattern ()">rasqal_graph_pattern_get_sub_graph_pattern</a>
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>,
<em class="parameter"><code><span class="type">int</span> idx</code></em>);
<a href="/usr/share/gtk-doc/html/raptor/raptor-section-sequence.html#raptor-sequence"><span class="returnvalue">raptor_sequence</span></a> * <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-sub-graph-pattern-sequence" title="rasqal_graph_pattern_get_sub_graph_pattern_sequence ()">rasqal_graph_pattern_get_sub_graph_pattern_sequence</a>
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);
<a class="link" href="rasqal-section-triple.html#rasqal-triple" title="rasqal_triple"><span class="returnvalue">rasqal_triple</span></a> * <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-triple" title="rasqal_graph_pattern_get_triple ()">rasqal_graph_pattern_get_triple</a> (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>,
<em class="parameter"><code><span class="type">int</span> idx</code></em>);
<a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="returnvalue">rasqal_literal</span></a> * <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-service" title="rasqal_graph_pattern_get_service ()">rasqal_graph_pattern_get_service</a> (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);
<a class="link" href="rasqal-section-variable.html#rasqal-variable" title="rasqal_variable"><span class="returnvalue">rasqal_variable</span></a> * <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-get-variable" title="rasqal_graph_pattern_get_variable ()">rasqal_graph_pattern_get_variable</a> (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);
enum <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-operator" title="enum rasqal_graph_pattern_operator">rasqal_graph_pattern_operator</a>;
const <span class="returnvalue">char</span> * <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-operator-as-string" title="rasqal_graph_pattern_operator_as_string ()">rasqal_graph_pattern_operator_as_string</a>
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-operator" title="enum rasqal_graph_pattern_operator"><span class="type">rasqal_graph_pattern_operator</span></a> op</code></em>);
<span class="returnvalue">int</span> <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-print" title="rasqal_graph_pattern_print ()">rasqal_graph_pattern_print</a> (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><span class="type">FILE</span> *fh</code></em>);
<span class="returnvalue">int</span> <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-variable-bound-in" title="rasqal_graph_pattern_variable_bound_in ()">rasqal_graph_pattern_variable_bound_in</a>
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-variable.html#rasqal-variable" title="rasqal_variable"><span class="type">rasqal_variable</span></a> *v</code></em>);
<span class="returnvalue">int</span> (<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-visit-fn" title="rasqal_graph_pattern_visit_fn ()">*rasqal_graph_pattern_visit_fn</a>) (<em class="parameter"><code><a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a> *query</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);
<span class="returnvalue">int</span> <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-visit" title="rasqal_graph_pattern_visit ()">rasqal_graph_pattern_visit</a> (<em class="parameter"><code><a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a> *query</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-visit-fn" title="rasqal_graph_pattern_visit_fn ()"><span class="type">rasqal_graph_pattern_visit_fn</span></a> fn</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="rasqal-section-graph-pattern.description"></a><h2>Description</h2>
<p>
Graph patterns form a a tree structure that build a <a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a>
top-level graph pattern (see <a class="link" href="rasqal-section-query.html#rasqal-query-get-query-graph-pattern" title="rasqal_query_get_query_graph_pattern ()"><code class="function">rasqal_query_get_query_graph_pattern()</code></a>)
which may have sub-graph patterns. Graph patterns at the leaf of the
tree operate over triple patterns (<a class="link" href="rasqal-section-triple.html#rasqal-triple" title="rasqal_triple"><span class="type">rasqal_triple</span></a>) matching the
RDF triples in the data sources for <a class="link" href="rasqal-section-graph-pattern.html#RASQAL-GRAPH-PATTERN-OPERATOR-BASIC:CAPS"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_BASIC</code></a>
or <a class="link" href="rasqal-section-graph-pattern.html#RASQAL-GRAPH-PATTERN-OPERATOR-OPTIONAL:CAPS"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_OPTIONAL</code></a>. Other graph patterns
operators operate over sub graph patterns and group them, union them
or apply a GRAPH matching keyword (<a class="link" href="rasqal-section-graph-pattern.html#RASQAL-GRAPH-PATTERN-OPERATOR-GRAPH:CAPS"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_GRAPH</code></a>).
</p>
</div>
<div class="refsect1">
<a name="rasqal-section-graph-pattern.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="rasqal-graph-pattern"></a><h3>rasqal_graph_pattern</h3>
<pre class="programlisting">rasqal_graph_pattern* graph_pattern;
</pre>
<p>
Rasqal graph pattern class.
</p>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-add-sub-graph-pattern"></a><h3>rasqal_graph_pattern_add_sub_graph_pattern ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> rasqal_graph_pattern_add_sub_graph_pattern
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *sub_graph_pattern</code></em>);</pre>
<p>
Add a sub graph pattern to a graph pattern.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>graph_pattern</code></em> :</span></p></td>
<td>graph pattern to add to</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sub_graph_pattern</code></em> :</span></p></td>
<td>graph pattern to add inside</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>non-0 on failure</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-filter-expression"></a><h3>rasqal_graph_pattern_get_filter_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="returnvalue">rasqal_expression</span></a> * rasqal_graph_pattern_get_filter_expression
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>);</pre>
<p>
Get a filter graph pattern's constraint expression
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>gp</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> query object</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>expression or NULL on failure</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-set-filter-expression"></a><h3>rasqal_graph_pattern_set_filter_expression ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> rasqal_graph_pattern_set_filter_expression
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> *expr</code></em>);</pre>
<p>
Set a filter graph pattern constraint expression
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>gp</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> query object</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>expr</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> expr - ownership taken</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>non-0 on failure</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-flattened-triples"></a><h3>rasqal_graph_pattern_get_flattened_triples ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/raptor/raptor-section-sequence.html#raptor-sequence"><span class="returnvalue">raptor_sequence</span></a> * rasqal_graph_pattern_get_flattened_triples
(<em class="parameter"><code><a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a> *query</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);</pre>
<p>
Get the triples inside a tree of graph patterns (BASIC + GRAPH) as a single sequence with GRAPHs turned into triple origin.
</p>
<p>
The returned sequence and all the <a class="link" href="rasqal-section-triple.html#rasqal-triple" title="rasqal_triple"><span class="type">rasqal_triple</span></a> in it are owned
by the caller (hold references).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
<td>query</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>graph_pattern</code></em> :</span></p></td>
<td>graph pattern</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>new sequence of <span class="type">raptor_triple</span> or NULL on failure</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-index"></a><h3>rasqal_graph_pattern_get_index ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> rasqal_graph_pattern_get_index (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>);</pre>
<p>
Get the graph pattern absolute index in the array of graph patterns.
</p>
<p>
The graph pattern index is assigned when <a class="link" href="rasqal-section-query.html#rasqal-query-prepare" title="rasqal_query_prepare ()"><code class="function">rasqal_query_prepare()</code></a> is
run on a query containing a graph pattern.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>gp</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> graph pattern</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>index or <0 if no index has been assigned yet</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-operator"></a><h3>rasqal_graph_pattern_get_operator ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-operator" title="enum rasqal_graph_pattern_operator"><span class="returnvalue">rasqal_graph_pattern_operator</span></a> rasqal_graph_pattern_get_operator
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);</pre>
<p>
Get the graph pattern operator .
</p>
<p>
The operator for the given graph pattern. See also
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-operator-as-string" title="rasqal_graph_pattern_operator_as_string ()"><code class="function">rasqal_graph_pattern_operator_as_string()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>graph_pattern</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> graph pattern object</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>graph pattern operator</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-origin"></a><h3>rasqal_graph_pattern_get_origin ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="returnvalue">rasqal_literal</span></a> * rasqal_graph_pattern_get_origin (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);</pre>
<p>
Get the graph pattern literal for
<a class="link" href="rasqal-section-graph-pattern.html#RASQAL-GRAPH-PATTERN-OPERATOR-GRAPH:CAPS"><span class="type">RASQAL_GRAPH_PATTERN_OPERATOR_GRAPH</span></a> graph pattern
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>graph_pattern</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> graph pattern object</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>graph literal parameter or NULL if wrong graph pattern type or not defined</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-sub-graph-pattern"></a><h3>rasqal_graph_pattern_get_sub_graph_pattern ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="returnvalue">rasqal_graph_pattern</span></a> * rasqal_graph_pattern_get_sub_graph_pattern
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>,
<em class="parameter"><code><span class="type">int</span> idx</code></em>);</pre>
<p>
Get a sub-graph pattern inside a graph pattern.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>graph_pattern</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> graph pattern object</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
<td>index into the sequence of sub graph_patterns in the graph pattern</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> or NULL if out of range</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-sub-graph-pattern-sequence"></a><h3>rasqal_graph_pattern_get_sub_graph_pattern_sequence ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/raptor/raptor-section-sequence.html#raptor-sequence"><span class="returnvalue">raptor_sequence</span></a> * rasqal_graph_pattern_get_sub_graph_pattern_sequence
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);</pre>
<p>
Get the sequence of graph patterns inside a graph pattern .
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>graph_pattern</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> graph pattern object</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>a <a href="/usr/share/gtk-doc/html/raptor/raptor-section-sequence.html#raptor-sequence"><span class="type">raptor_sequence</span></a> of <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> pointers.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-triple"></a><h3>rasqal_graph_pattern_get_triple ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-triple.html#rasqal-triple" title="rasqal_triple"><span class="returnvalue">rasqal_triple</span></a> * rasqal_graph_pattern_get_triple (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>,
<em class="parameter"><code><span class="type">int</span> idx</code></em>);</pre>
<p>
Get a triple inside a graph pattern.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>graph_pattern</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> graph pattern object</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
<td>index into the sequence of triples in the graph pattern</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a class="link" href="rasqal-section-triple.html#rasqal-triple" title="rasqal_triple"><span class="type">rasqal_triple</span></a> or NULL if out of range</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-service"></a><h3>rasqal_graph_pattern_get_service ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="returnvalue">rasqal_literal</span></a> * rasqal_graph_pattern_get_service (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);</pre>
<p>
Get the literal for <a class="link" href="rasqal-section-graph-pattern.html#RASQAL-GRAPH-PATTERN-OPERATOR-SERVICE:CAPS"><span class="type">RASQAL_GRAPH_PATTERN_OPERATOR_SERVICE</span></a> graph pattern
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>graph_pattern</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> graph pattern object</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>graph variable or NULL if wrong graph pattern or not defined</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-get-variable"></a><h3>rasqal_graph_pattern_get_variable ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-variable.html#rasqal-variable" title="rasqal_variable"><span class="returnvalue">rasqal_variable</span></a> * rasqal_graph_pattern_get_variable (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *graph_pattern</code></em>);</pre>
<p>
Get the variable for <a class="link" href="rasqal-section-graph-pattern.html#RASQAL-GRAPH-PATTERN-OPERATOR-LET:CAPS"><span class="type">RASQAL_GRAPH_PATTERN_OPERATOR_LET</span></a> graph pattern
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>graph_pattern</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> graph pattern object</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>graph variable or NULL if wrong graph pattern or not defined</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-operator"></a><h3>enum rasqal_graph_pattern_operator</h3>
<pre class="programlisting">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_FILTER = 6,
RASQAL_GRAPH_PATTERN_OPERATOR_LET = 7,
RASQAL_GRAPH_PATTERN_OPERATOR_SELECT = 8,
RASQAL_GRAPH_PATTERN_OPERATOR_SERVICE = 9,
RASQAL_GRAPH_PATTERN_OPERATOR_MINUS = 10,
RASQAL_GRAPH_PATTERN_OPERATOR_LAST = RASQAL_GRAPH_PATTERN_OPERATOR_MINUS
} rasqal_graph_pattern_operator;
</pre>
<p>
Graph pattern operators
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_UNKNOWN</code></span></p></td>
<td>Internal.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-BASIC:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_BASIC</code></span></p></td>
<td>Just triple patterns and constraints.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-OPTIONAL:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_OPTIONAL</code></span></p></td>
<td>Set of graph patterns (ANDed) and constraints.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-UNION:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_UNION</code></span></p></td>
<td>Set of graph patterns (UNIONed) and constraints.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-GROUP:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_GROUP</code></span></p></td>
<td>Set of graph patterns (ANDed) and constraints.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-GRAPH:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_GRAPH</code></span></p></td>
<td>A graph term + a graph pattern and constraints.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-FILTER:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_FILTER</code></span></p></td>
<td>A filter graph pattern with an expression
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-LET:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_LET</code></span></p></td>
<td>LET ?var := Expression (LAQRS)
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-SELECT:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_SELECT</code></span></p></td>
<td>SELECT graph pattern
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-SERVICE:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_SERVICE</code></span></p></td>
<td>SERVICE graph pattern
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-MINUS:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_MINUS</code></span></p></td>
<td>MINUS graph pattern
</td>
</tr>
<tr>
<td><p><a name="RASQAL-GRAPH-PATTERN-OPERATOR-LAST:CAPS"></a><span class="term"><code class="literal">RASQAL_GRAPH_PATTERN_OPERATOR_LAST</code></span></p></td>
<td>Internal.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-operator-as-string"></a><h3>rasqal_graph_pattern_operator_as_string ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * rasqal_graph_pattern_operator_as_string
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-operator" title="enum rasqal_graph_pattern_operator"><span class="type">rasqal_graph_pattern_operator</span></a> op</code></em>);</pre>
<p>
Get a string for the query verb.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>op</code></em> :</span></p></td>
<td>the <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-operator" title="enum rasqal_graph_pattern_operator"><span class="type">rasqal_graph_pattern_operator</span></a> verb of the query</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>pointer to a shared string label for the query verb</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-print"></a><h3>rasqal_graph_pattern_print ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> rasqal_graph_pattern_print (<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><span class="type">FILE</span> *fh</code></em>);</pre>
<p>
Print a <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> in a debug format.
</p>
<p>
The print debug format may change in any release.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>gp</code></em> :</span></p></td>
<td>the <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> object</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fh</code></em> :</span></p></td>
<td>the FILE* handle to print to</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>non-0 on failure</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-variable-bound-in"></a><h3>rasqal_graph_pattern_variable_bound_in ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> rasqal_graph_pattern_variable_bound_in
(<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-variable.html#rasqal-variable" title="rasqal_variable"><span class="type">rasqal_variable</span></a> *v</code></em>);</pre>
<p>
Is the variable bound in this graph pattern (not including children)?
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>gp</code></em> :</span></p></td>
<td>graph pattern</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
<td>variable</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>non-0 if variable is bound in the given graph pattern.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-visit-fn"></a><h3>rasqal_graph_pattern_visit_fn ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> (*rasqal_graph_pattern_visit_fn) (<em class="parameter"><code><a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a> *query</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
<p>
User function to visit an graph_pattern and operate on it with
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-visit" title="rasqal_graph_pattern_visit ()"><code class="function">rasqal_graph_pattern_visit()</code></a> or <a class="link" href="rasqal-section-query.html#rasqal-query-graph-pattern-visit" title="rasqal_query_graph_pattern_visit ()"><code class="function">rasqal_query_graph_pattern_visit()</code></a>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a> containing the graph pattern</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>gp</code></em> :</span></p></td>
<td>current graph_pattern</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data passed in</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>non-0 to truncate the visit</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="rasqal-graph-pattern-visit"></a><h3>rasqal_graph_pattern_visit ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> rasqal_graph_pattern_visit (<em class="parameter"><code><a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a> *query</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> *gp</code></em>,
<em class="parameter"><code><a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern-visit-fn" title="rasqal_graph_pattern_visit_fn ()"><span class="type">rasqal_graph_pattern_visit_fn</span></a> fn</code></em>,
<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
<p>
Visit a user function over a <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a>
</p>
<p>
If the user function <em class="parameter"><code>fn</code></em> returns 0, the visit is truncated.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a> to operate on</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>gp</code></em> :</span></p></td>
<td>
<a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a> graph pattern</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fn</code></em> :</span></p></td>
<td>pointer to function to apply that takes user data and graph pattern parameters</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data for applied function</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>0 if the visit was truncated.</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.18</div>
</body>
</html>