<!-- Creator : groff version 1.18.1 -->
<!-- CreationDate: Sun Nov 5 09:05:35 2006 -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Redland RDF Application Framework - Redland RDF processor utility</title>
</head>
<body bgcolor="#ffffff" text="#000085">
<h1>Redland RDF Application Framework - Redland RDF processor utility</h1>
<hr />
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>rdfproc − Redland RDF processor utility</p>
</td>
</tr>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>rdfproc</b> [<b>options</b>] <i>store-name command arg...</i></p>
</td>
</tr>
</table>
<a name="EXAMPLE"></a>
<h2>EXAMPLE</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<pre>
<b>rdfproc test parse http://planetrdf.com/guide/rss.rdf
rdfproc test print
rdfproc test serialize ntriples
</b>
</pre></td>
</tr>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>The <b>rdfproc</b> utility allows parsing, querying, manipulating and serializing of RDF content using the <b>Redland</b> RDF library. The <i>store-name</i> is a Redland store name, typically a short identifier. The arguments to <i>command</i> vary and are explained in section COMMANDS below.</p>
</td>
</tr>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>rdfproc uses the usual GNU command line syntax, with long options starting with two dashes (‘-’) if supported by the getopt_long function. Otherwise the short options are only available.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>−h, −−help</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Show a summary of the options.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>−c, −−contexts</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Use a store with Redland contexts.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>−n, −−new</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Make a new store, overwriting any existing one.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>−o, −−output</b> <i>FORMAT</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set the output FORMAT for sequences of triples, such as from a search (find command) to a Redland serializer. At present the alternatives are ’simple’ (the default one if this option is omitted), ’ntriples’ or ’rdfxml’.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>−p, −−password</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Read the storage option ’password’ from standard input. Terminated by end of line (’\n’) or end of file. This is equivalent to setting it using −t or −−storage-options but does not require exposing the password in the argument list.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>−s, −−storage</b> <i>TYPE</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set the Redland storage type (default ’hashes’). Alternatives are ’memory’ which is always present and ’3store’, ’file’, ’mysql’, ’sqlite’, ’uri’ when support for those is compiled in If environment variable RDFPROC_STORAGE_TYPE is set, the storage type given here will override it.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>−t, −−storage-options</b> <i>OPTIONS</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set options for the the Redland storage, default is "hash-type=’bdb’,dir=’.’" to match the default storage "hashes". For storages types such as ’mysql’ that need extra options this would typically be something like "host=’hostname’,database=’dbname’,user=’abc’,password=’pass’". If environment variable RDFPROC_STORAGE_OPTIONS is set, the storage options given here will be applied afterwards.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>−v, −−version</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Print the Redland version and exit.</p>
</td>
</tr>
</table>
<a name="COMMANDS"></a>
<h2>COMMANDS</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>Where a node is allowed, such as <i>NODE</i>, <i>SUBJECT</i>, <i>PREDICATE</i> or <i>OBJECT</i> below, simple heuristics are used to guess which are blank node identifiers, URIs or literals (to add a statement with a literal, use add-typed). If the item starts with _: then it is assumed to be a blank node identifier, otherwise if it matches something:// it is assumed to be a URI, otherwise it is a literal. Literals are only allowed as objects of statements and blank nodes are not allowed as predicates.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>add</b> <i>SUBJECT PREDICATE OBJECT [CONTEXT]</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Add the given triple to graph, in the optional Redland context if the <i>CONTEXT</i> node is given.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>add-typed</b> <i>SUBJECT PREDICATE OBJECT OBJECT-LANG OBJECT-URI [CONTEXT]</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Add the triple with the datatyped literal object to the graph, in the optional Redland context if <i>CONTEXT</i> is given.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>arc</b> <i>SUBJECT OBJECT</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>arcs</b> <i>SUBJECT OBJECT</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Show one node/all nodes that match triples (<i>SUBJECT</i>, ?, <i>OBJECT</i>)</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>arcs-in</b> <i>NODE</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Show all properties of triples with <i>NODE</i> as a subject.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>arcs-out</b> <i>NODE</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Show all properties of triples with <i>NODE</i> as an object.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>contains</b> <i>SUBJECT PREDICATE OBJECT</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Check if the given triple is in the graph.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>contexts</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>List all the contexts in the graph (if contexts are enabled).</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>find</b> <i>SUBJECT</i><b>|-</b> <i>PREDICATE</i><b>|-</b> <i>OBJECT</i><b>|- [</b><i>CONTEXT</i><b>]</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Find matching triples to the given statement where - stands for a blank that matches any node. If <i>CONTEXT</i> is given, only search for triples in that context node.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>has-arc-in</b> <i>NODE ARC</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Check that there is a triple with <i>NODE</i> as a subject and <i>ARC</i> as a predicate.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>has-arc-out</b> NODE <i>ARC</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Check that there is a triple with <i>NODE</i> as a object and <i>ARC</i> as a predicate.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>parse</b> <i>URI|FILENAME</i> <b>[</b><i>SYNTAX|</i> <b>[</b><i>BASE URI</i><b>]]</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Parse syntax at <i>URI</i> into the graph using <i>SYNTAX</i> which can be one of <i>rdfxml</i> (RDF/XML, default), <i>ntriples</i>, <i>turtle</i>, <i>rss-tag-soup</i> (for all RSS and Atoms), <i>grddl</i> and <i>guess</i> to use content hints and protocol information to work it out. (This list changes faster than this manual page) If <i>FILENAME</i> is a existing file, the appropriate URI will be generated for it.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>parse-stream</b> <i>URI|FILENAME</i> <b>[</b><i>SYNTAX</i> <b>[</b><i>BASE URI</i> <b>[</b><i>CONTEXT</i><b>]]</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Streaming parse syntax at URI into the graph using <i>SYNTAX</i> which can be one of <i>rdfxml</i> (RDF/XML, default) or <i>ntriples</i>. If <i>FILENAME</i> is an existing file, the appropriate URI will be generated for it. If the optional <i>CONTEXT URI is given, the triples are added to that context.</i></p>
</td>
</tr>
</table>
<!-- TABS -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="7%">
<p><b>print</b></p>
</td>
<td width="2%"></td>
<td width="77%">
<p>Print the graph triples in a simple format showing context nodes if present.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>query</b> <i>NAME</i><b>|-</b> <i>URI</i><b>|-</b> <i>QUERY-STRING</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Run <i>QUERY-STRING query in language NAME</i> returning variable bindings, a boolean or RDF graph depending on the query. Query language can be ’sparql’ or ’rdql’.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>remove</b> <i>SUBJECT PREDICATE OBJECT [CONTEXT]</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Remove the given triple graph, in the optional Redland context if <i>CONTEXT</i> is given.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>remove-context</b> <i>CONTEXT</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Remove all triples in the graph with the Redland context <i>CONTEXT</i>.</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>serialize [</b><i>SYNTAX</i> <b>[</b><i>URI</i> <b>[</b><i>MIME-TYPE</i><b>]]]</b></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Serializes the graph to a syntax with a particular ISYNTAX <i>URI</i> or Internet Media Type/MIME Type. The default is RDF/XML (<i>NAME</i> "rdfxml", MIME Type "application/rdf/xml") if none of the above are given. Other alternatives are "ntriples" (no MIME Type).</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>source</b> <i>PREDICATE OBJECT</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>sources</b> <i>PREDICATE OBJECT</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Show one node/all nodes that match triples (?, <i>PREDICATE</i>, <i>OBJECT</i>)</p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>target</b> <i>SUBJECT PREDICATE</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>targets</b> <i>SUBJECT PREDICATE</i></p>
</td>
</tr>
</table>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Show one node/all nodes that match triples (<i>SUBJECT</i>, <i>PREDICATE</i>, ?)</p>
</td>
</tr>
</table>
<a name="ENVIRONMENT"></a>
<h2>ENVIRONMENT</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>RDFPROC_STORAGE_OPTIONS can be set to provide storage options instead of using the option −t, −−storage-options <i>OPTIONS</i>. When both are given, command options are applied last.</p>
<!-- INDENTATION -->
<p>RDFPROC_STORAGE_TYPE can be set to provide a storage type instead of using the option −s, −−storage <i>TYPE</i>. When both are given, the storage type from the command is used.</p>
</td>
</tr>
</table>
<a name="CONFORMING_TO"></a>
<h2>CONFORMING TO</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><i>RDF/XML Syntax (Revised)</i>, W3C Recommendation, http://www.w3.org/TR/rdf-syntax-grammar/</p>
<!-- INDENTATION -->
<p><i>N-Triples</i>, in <i>RDF Test Cases</i>, Jan Grant and Dave Beckett (eds.) W3C Recommendation, http://www.w3.org/TR/rdf-testcases/#ntriples</p>
</td>
</tr>
</table>
<a name="SEE_ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>redland(3), libraptor(3), rapper(1)</p>
</td>
</tr>
</table>
<a name="AUTHOR"></a>
<h2>AUTHOR</h2>
<!-- INDENTATION -->
<table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><a href="http://purl.org/net/dajobe/">Dave Beckett</a></p>
</td>
</tr>
</table>
<hr />
<p>Copyright 2002-2006 <a href="http://purl.org/net/dajobe/">Dave Beckett</a><br />2002-2006 <a href="http://www.bristol.ac.uk/">University of Bristol</a></p>
</body>
</html>