1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-11 14:41:06 +02:00
audacity/lib-src/redland/rasqal/docs/html/rasqal-section-triples-source.html
2010-01-24 09:19:39 +00:00

317 lines
13 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Triples Source</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="index.html" title="Rasqal RDF Query Library Manual">
<link rel="up" href="pt01.html" title="Part I. Reference Manual">
<link rel="prev" href="rasqal-section-triple.html" title="Triples">
<link rel="next" href="rasqal-section-variable.html" title="Variables">
<meta name="generator" content="GTK-Doc V1.10 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="rasqal.html" title="Rasqal Overview">
<link rel="part" href="pt01.html" title="Part I. Reference Manual">
<link rel="index" href="ix01.html" title="Index">
</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-triple.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="pt01.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-variable.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#rasqal-section-triples-source.synopsis" class="shortcut">Top</a>
 | 
<a href="#rasqal-section-triples-source.description" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="rasqal-section-triples-source"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="rasqal-section-triples-source.top_of_page"></a>Triples Source</span></h2>
<p>Triples Source — Source of matches to a triple pattern.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="rasqal-section-triples-source.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
<a class="link" href="rasqal-section-triples-source.html#rasqal-triple-meta" title="rasqal_triple_meta">rasqal_triple_meta</a>;
<a class="link" href="rasqal-section-triples-source.html#rasqal-triples-match" title="rasqal_triples_match">rasqal_triples_match</a>;
<a class="link" href="rasqal-section-triples-source.html#rasqal-triples-source" title="rasqal_triples_source">rasqal_triples_source</a>;
<a class="link" href="rasqal-section-triples-source.html#rasqal-triples-source-factory" title="rasqal_triples_source_factory">rasqal_triples_source_factory</a>;
void <a class="link" href="rasqal-section-triples-source.html#rasqal-set-triples-source-factory" title="rasqal_set_triples_source_factory ()">rasqal_set_triples_source_factory</a> (<a class="link" href="rasqal-section-general.html#rasqal-world" title="rasqal_world">rasqal_world</a> *world,
void (register_fnrasqal_triples_source_factory *factory) (),
void *user_data);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="rasqal-section-triples-source.description"></a><h2>Description</h2>
<p>
A factory that provides the raw triple matches for a triple pattern
against some RDF graph. The <a class="link" href="rasqal-section-triples-source.html#rasqal-triples-source-factory" title="rasqal_triples_source_factory"><span class="type">rasqal_triples_source_factory</span></a>
must create use a new <a class="link" href="rasqal-section-triples-source.html#rasqal-triples-source" title="rasqal_triples_source"><span class="type">rasqal_triples_source</span></a> that can be used
to initialise and build a <a class="link" href="rasqal-section-triples-source.html#rasqal-triples-match" title="rasqal_triples_match"><span class="type">rasqal_triples_match</span></a> for some
<a class="link" href="rasqal-section-triple.html#rasqal-triple" title="rasqal_triple"><span class="type">rasqal_triple</span></a> (subject, predicate, object, origin URI).
</p>
</div>
<div class="refsect1" lang="en">
<a name="rasqal-section-triples-source.details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="rasqal-triple-meta"></a><h3>rasqal_triple_meta</h3>
<pre class="programlisting">typedef struct {
/* triple (subject, predicate, object) and origin */
rasqal_variable* bindings[4];
rasqal_triples_match *triples_match;
void *context;
rasqal_triple_parts parts;
/* non-0 if the associated triple pattern contains no variables */
int is_exact;
/* non-0 if the triple pattern has been fully executed */
int executed;
} rasqal_triple_meta;
</pre>
<p>
Triple matching metadata for one triple pattern.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="rasqal-section-variable.html#rasqal-variable" title="rasqal_variable">rasqal_variable</a> *<em class="structfield"><code>bindings</code></em>[4];</span></p></td>
<td> Variable bindings for this triple+origin to set.
</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="rasqal-section-triples-source.html#rasqal-triples-match" title="rasqal_triples_match">rasqal_triples_match</a> *<em class="structfield"><code>triples_match</code></em>;</span></p></td>
<td> The matcher that is setting these bindings.
</td>
</tr>
<tr>
<td><p><span class="term">void *<em class="structfield"><code>context</code></em>;</span></p></td>
<td> Context data used by the matcher.
</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="rasqal-section-triple.html#rasqal-triple-parts" title="enum rasqal_triple_parts">rasqal_triple_parts</a> <em class="structfield"><code>parts</code></em>;</span></p></td>
<td> Parts of the triple to match/bindings to set.
</td>
</tr>
<tr>
<td><p><span class="term">int <em class="structfield"><code>is_exact</code></em>;</span></p></td>
<td> non-0 if all parts of the triple are given
</td>
</tr>
<tr>
<td><p><span class="term">int <em class="structfield"><code>executed</code></em>;</span></p></td>
<td> non-0 if the triple pattern has been fully executed
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-triples-match"></a><h3>rasqal_triples_match</h3>
<pre class="programlisting">typedef struct {
void *user_data;
rasqal_triple_parts (*bind_match)(struct rasqal_triples_match_s* rtm, void *user_data, rasqal_variable *bindings[4], rasqal_triple_parts parts);
void (*next_match)(struct rasqal_triples_match_s* rtm, void *user_data);
int (*is_end)(struct rasqal_triples_match_s* rtm, void *user_data);
void (*finish)(struct rasqal_triples_match_s* rtm, void *user_data);
rasqal_world *world;
} rasqal_triples_match;
</pre>
<p>
Triples match structure as initialised by <a class="link" href="rasqal-section-triples-source.html#rasqal-triples-source" title="rasqal_triples_source"><span class="type">rasqal_triples_source</span></a>
method init_triples_match.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term">void *<em class="structfield"><code>user_data</code></em>;</span></p></td>
<td> User data pointer for factory methods.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code>bind_match</code></em> ()</span></p></td>
<td> The [4]array (s,p,o,origin) bindings against the current triple match only touching triple parts given. Returns parts that were bound or 0 on failure.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code>next_match</code></em> ()</span></p></td>
<td> Move to next match.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code>is_end</code></em> ()</span></p></td>
<td> Check for end of triple match - return non-0 if is end.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code>finish</code></em> ()</span></p></td>
<td> Finish triples match and destroy any allocated memory.
</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="rasqal-section-general.html#rasqal-world" title="rasqal_world">rasqal_world</a> *<em class="structfield"><code>world</code></em>;</span></p></td>
<td> rasqal_world object
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-triples-source"></a><h3>rasqal_triples_source</h3>
<pre class="programlisting">typedef struct {
rasqal_query* query;
void *user_data;
int (*init_triples_match)(rasqal_triples_match* rtm, struct rasqal_triples_source_s* rts, void *user_data, rasqal_triple_meta *m, rasqal_triple *t);
int (*triple_present)(struct rasqal_triples_source_s* rts, void *user_data, rasqal_triple *t);
void (*free_triples_source)(void *user_data);
} rasqal_triples_source;
</pre>
<p>
Triples source as initialised by a <a class="link" href="rasqal-section-triples-source.html#rasqal-triples-source-factory" title="rasqal_triples_source_factory"><span class="type">rasqal_triples_source_factory</span></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query">rasqal_query</a> *<em class="structfield"><code>query</code></em>;</span></p></td>
<td> Source for this query.
</td>
</tr>
<tr>
<td><p><span class="term">void *<em class="structfield"><code>user_data</code></em>;</span></p></td>
<td> Context user data passed into the factory methods.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code>init_triples_match</code></em> ()</span></p></td>
<td> Factory method to initalise a new <a class="link" href="rasqal-section-triples-source.html#rasqal-triples-match" title="rasqal_triples_match"><span class="type">rasqal_triples_match</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code>triple_present</code></em> ()</span></p></td>
<td> Factory method to return presence or absence of a complete triple.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code>free_triples_source</code></em> ()</span></p></td>
<td> Factory method to deallocate resources.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-triples-source-factory"></a><h3>rasqal_triples_source_factory</h3>
<pre class="programlisting">typedef struct {
void *user_data;
size_t user_data_size;
int (*new_triples_source)(rasqal_query* query, void *factory_user_data, void *user_data, rasqal_triples_source* rts);
} rasqal_triples_source_factory;
</pre>
<p>
A factory that initialises <a class="link" href="rasqal-section-triples-source.html#rasqal-triples-source" title="rasqal_triples_source"><span class="type">rasqal_triples_source</span></a> structures
to returning matches to a triple pattern.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term">void *<em class="structfield"><code>user_data</code></em>;</span></p></td>
<td> User data for triples_source_factory.
</td>
</tr>
<tr>
<td><p><span class="term">size_t <em class="structfield"><code>user_data_size</code></em>;</span></p></td>
<td> Size Of <em class="parameter"><code>user_data</code></em> for new_triples_source.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code>new_triples_source</code></em> ()</span></p></td>
<td> Create a new triples source - returns non-zero on failure &lt; 0 is a 'no rdf data error', &gt; 0 is an unspecified error..
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-set-triples-source-factory"></a><h3>rasqal_set_triples_source_factory ()</h3>
<pre class="programlisting">void rasqal_set_triples_source_factory (<a class="link" href="rasqal-section-general.html#rasqal-world" title="rasqal_world">rasqal_world</a> *world,
void (register_fnrasqal_triples_source_factory *factory) (),
void *user_data);</pre>
<p>
Register the factory to return triple sources.
</p>
<p>
Registers the factory that returns triples sources. Note that
there is only one of these per runtime.
</p>
<p>
The rasqal_triples_source_factory factory method new_triples_source is
called with the user data for some query and rasqal_triples_source.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>world</code></em> :</span></p></td>
<td> rasqal_world object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>register_fn</code></em> :</span></p></td>
<td> registration function
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td> user data for registration
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.10</div>
</body>
</html>