mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-11 14:41:06 +02:00
317 lines
13 KiB
HTML
317 lines
13 KiB
HTML
<!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 < 0 is a 'no rdf data error', > 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>
|