You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by bu...@apache.org on 2015/07/14 14:52:15 UTC
svn commit: r958279 [4/6] - in /websites/staging/jena/trunk/content: ./
about_jena/ documentation/ documentation/csv/ documentation/hadoop/
documentation/inference/ documentation/io/ documentation/jdbc/
documentation/notes/ documentation/ontology/ docu...
Modified: websites/staging/jena/trunk/content/documentation/query/architecture.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/architecture.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/architecture.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">ARQ - Internal Design</h1>
- <p>@@ Incomplete / misnamed?</p>
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>@@ Incomplete / misnamed?</p>
<p>ARQ consists of the following parts:</p>
<ul>
<li>The SPARQL abstract syntax tree (AST) and the SPARQL parser</li>
@@ -173,8 +184,8 @@
<a href="http://json.org">JSON</a> and text versions.</p>
</li>
</ul>
-<h2 id="main-packages">Main packages</h2>
-<table>
+<h2 id="main-packages">Main packages<a class="headerlink" href="#main-packages" title="Permanent link">¶</a></h2>
+<table class="table">
<thead>
<tr>
<th>Package</th>
@@ -183,47 +194,47 @@
</thead>
<tbody>
<tr>
-<td><code>com.hp.hpl.jena.query</code></td>
+<td><code>org.apache.jena.query</code></td>
<td>The application API</td>
</tr>
<tr>
-<td><code>com.hp.hpl.jena.sparql.syntax</code></td>
+<td><code>org.apache.jena.sparql.syntax</code></td>
<td>Abstract syntax tree</td>
</tr>
<tr>
-<td><code>com.hp.hpl.jena.sparql.algebra</code></td>
+<td><code>org.apache.jena.sparql.algebra</code></td>
<td>SPARQL algebra</td>
</tr>
<tr>
-<td><code>com.hp.hpl.jena.sparql.lang</code></td>
+<td><code>org.apache.jena.sparql.lang</code></td>
<td>The parsers: SPARQL, ARQ, RDQL</td>
</tr>
<tr>
-<td><code>com.hp.hpl.jena.sparql.expr</code></td>
+<td><code>org.apache.jena.sparql.expr</code></td>
<td>Expression code.</td>
</tr>
<tr>
-<td><code>com.hp.hpl.jena.sparql.serializer</code></td>
+<td><code>org.apache.jena.sparql.serializer</code></td>
<td>Output in SPARQL, ARQ forms, in SPARQL syntax, in an abstract form (useful in debugging) and in XML.</td>
</tr>
<tr>
-<td><code>com.hp.hpl.jena.sparql.engine</code></td>
+<td><code>org.apache.jena.sparql.engine</code></td>
<td>The abstraction of a query engine.</td>
</tr>
<tr>
-<td><code>com.hp.hpl.jena.sparql.engine.main</code></td>
+<td><code>org.apache.jena.sparql.engine.main</code></td>
<td>The usual query engine.</td>
</tr>
<tr>
-<td><code>com.hp.hpl.jena.sparql.engine.ref</code></td>
+<td><code>org.apache.jena.sparql.engine.ref</code></td>
<td>The reference query engine (and quad version)</td>
</tr>
</tbody>
</table>
-<h2 id="key-execution-classes">Key Execution Classes</h2>
-<h3 id="bindings">Bindings</h3>
-<h3 id="query-iterators">Query Iterators</h3>
-<h3 id="context">Context</h3>
+<h2 id="key-execution-classes">Key Execution Classes<a class="headerlink" href="#key-execution-classes" title="Permanent link">¶</a></h2>
+<h3 id="bindings">Bindings<a class="headerlink" href="#bindings" title="Permanent link">¶</a></h3>
+<h3 id="query-iterators">Query Iterators<a class="headerlink" href="#query-iterators" title="Permanent link">¶</a></h3>
+<h3 id="context">Context<a class="headerlink" href="#context" title="Permanent link">¶</a></h3>
<p><a href="index.html">ARQ documentation index</a></p>
</div>
</div>
Modified: websites/staging/jena/trunk/content/documentation/query/explain.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/explain.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/explain.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">explaining ARQ queries</h1>
- <p><em>This page applies to ARQ version 2.8.6 and later. In this version query
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><em>This page applies to ARQ version 2.8.6 and later. In this version query
logging was consolidated and made uniform across ARQ, SDB and TDB.
Details of TDB logging changed to use this logging and explanation
framework from TDB version 0.8.8.</em></p>
@@ -158,7 +169,7 @@ basic graph patterns.</p>
<p>The effect of <a href="#algebra-transformations">high-level optimizations</a> can
be seen using <code>arq.qparse</code> and the low-level runtime optimziations can
be seen by <a href="#execution-logging">execution logging</a>.</p>
-<h2 id="algebra-transformations">Algebra Transformations</h2>
+<h2 id="algebra-transformations">Algebra Transformations<a class="headerlink" href="#algebra-transformations" title="Permanent link">¶</a></h2>
<p>The preparation for a query for execution can be investigated with the
command <code>arq.qparse --explain --query QueryFile.rq</code>. Different storage
systems may perform different optimizations, usually chosen from the
@@ -166,7 +177,7 @@ standard set. <code>qparse</code> shows
which applies all optimizations.</p>
<p>Other useful arguments are:</p>
<p><strong>qparse arguments</strong></p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Argument</th>
@@ -204,7 +215,7 @@ which applies all optimizations.</p>
</pre></div>
-<h2 id="execution-logging">Execution Logging</h2>
+<h2 id="execution-logging">Execution Logging<a class="headerlink" href="#execution-logging" title="Permanent link">¶</a></h2>
<p>ARQ can log query and update execution details globally or for an
individual operations. This adds another level of control on top of the
logger level controls.</p>
@@ -218,10 +229,10 @@ the execution context.</p>
<p>Execution logging at level <code>ALL</code> can cause a significant slowdown in
query execution speeds but the order of operations logged will be
correct.</p>
-<p>The logger used is called <code>com.hp.hpl.jena.arq.exec</code>. Message are sent
+<p>The logger used is called <code>org.apache.jena.arq.exec</code>. Message are sent
at level "info". So for log4j, the following can be set in the
log4j.properties file:</p>
-<div class="codehilite"><pre><span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">arq</span><span class="p">.</span><span class="n">exec</span><span class="p">=</span><span class="n">INFO</span>
+<div class="codehilite"><pre><span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">arq</span><span class="p">.</span><span class="n">exec</span><span class="p">=</span><span class="n">INFO</span>
</pre></div>
Modified: websites/staging/jena/trunk/content/documentation/query/extension.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/extension.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/extension.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">Extensions in ARQ</h1>
- <p>There are several ways to extend the ARQ query engine within the
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>There are several ways to extend the ARQ query engine within the
SPARQL syntax.</p>
<ul>
<li><a href="#value-functions">Filter Functions</a> - additional operations in
@@ -171,20 +182,20 @@ can
<p>The <a href="/documentation/larq/">free text support in ARQ</a> is provided by
<a href="http://lucene.apache.org/java/docs/index.html">Lucene</a>, using
property functions.</p>
-<h2 id="filter-functions">Filter Functions</h2>
+<h2 id="filter-functions">Filter Functions<a class="headerlink" href="#filter-functions" title="Permanent link">¶</a></h2>
<p>A SPARQL custom function is implementation dependent. Most details
of the ARQ query engine do not have to be understood to write a
function; it is a matter of implementing one interface. This is
made simpler for many cases by a number of base classes that
provide much of the machinery needed.</p>
-<h3 id="function-registry">Function Registry</h3>
+<h3 id="function-registry">Function Registry<a class="headerlink" href="#function-registry" title="Permanent link">¶</a></h3>
<p>Functions can be installed into the function registry by the
application. The function registry is a mapping from URI to a
factory class for functions (each time a function is mentioned in a
query, a new instance is created) and there is an auto-factory
class so just registering a Java class will work. A function can
access the queried dataset.</p>
-<h3 id="dynamically-loaded-functions">Dynamically Loaded Functions</h3>
+<h3 id="dynamically-loaded-functions">Dynamically Loaded Functions<a class="headerlink" href="#dynamically-loaded-functions" title="Permanent link">¶</a></h3>
<p>The ARQ function library uses this mechanism. The namespace of the
ARQ function library is <<code>http://jena.hpl.hp.com/ARQ/function#></code>.</p>
<div class="codehilite"><pre><span class="n">PREFIX</span> <span class="n">afn</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">jena</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">com</span><span class="o">/</span><span class="n">ARQ</span><span class="o">/</span><span class="k">function</span>#<span class="o">></span>
@@ -202,7 +213,7 @@ ARQ function library is <<code>http:/
<p>URIs for functions in the (fake)
<a href="java-uri.html">URI scheme <code>java:</code></a> are dynamically loaded. The
class name forms the scheme specific part of the URI.</p>
-<h2 id="property-functions">Property functions</h2>
+<h2 id="property-functions">Property functions<a class="headerlink" href="#property-functions" title="Permanent link">¶</a></h2>
<p>Property functions, sometimes called "magic properties", are
properties that cause triple matching to happen by executing some
piece of code, determined by the property URI, and not by the usual
@@ -247,7 +258,7 @@ For example, <code>splitIRI</code> will
ad localname parts to variables (if the variables are already
bound, not constants are used, <code>splitIRI</code> will check the values).</p>
<div class="codehilite"><pre><span class="n">PREFIX</span> <span class="n">xsd</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="p">.</span><span class="n">w3</span><span class="p">.</span><span class="n">org</span><span class="o">/</span>2001<span class="o">/</span><span class="n">XMLSchema</span>#<span class="o">></span>
-<span class="n">PREFIX</span> <span class="n">apf</span><span class="p">:</span> <span class="o"><</span><span class="n">java</span><span class="p">:</span><span class="n">com</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">query</span><span class="p">.</span><span class="n">pfunction</span><span class="p">.</span><span class="n">library</span><span class="p">.</span><span class="o">></span>
+<span class="n">PREFIX</span> <span class="n">apf</span><span class="p">:</span> <span class="o"><</span><span class="n">java</span><span class="p">:</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">query</span><span class="p">.</span><span class="n">pfunction</span><span class="p">.</span><span class="n">library</span><span class="p">.</span><span class="o">></span>
<span class="n">SELECT</span> ?<span class="n">namespace</span> ?<span class="n">localname</span> <span class="p">{</span>
<span class="n">xsd</span><span class="p">:</span><span class="n">string</span> <span class="n">apf</span><span class="p">:</span><span class="n">splitIRI</span> <span class="p">(</span>?<span class="n">namespace</span> ?<span class="n">localname</span><span class="p">)</span>
<span class="p">}</span>
@@ -273,7 +284,7 @@ be turned off by the Java code:</p>
<p>URIs for functions in the (fake)
<a href="java-uri.html">URI scheme <code>java:</code></a> are dynamically loaded. The
class name forms the scheme specific part of the URI.</p>
-<h2 id="describe-handlers">DESCRIBE handlers</h2>
+<h2 id="describe-handlers">DESCRIBE handlers<a class="headerlink" href="#describe-handlers" title="Permanent link">¶</a></h2>
<p>The <code>DESCRIBE</code> result form in SPARQL does not define an exact form
of RDF to return. Instead, it allows the server or query processor
to return what it considers to be an appropriate description of the
@@ -288,7 +299,7 @@ result forms.</p>
<p>Application-specific handlers can be added to the
<code>DescribeHandlerRegistry</code>. The handler will be called for each
resource (not literals) identified by the <code>DESCRIBE</code> query.</p>
-<h2 id="blank-node-labels">Blank Node Labels</h2>
+<h2 id="blank-node-labels">Blank Node Labels<a class="headerlink" href="#blank-node-labels" title="Permanent link">¶</a></h2>
<p>URIs from with scheme name "_" (which is illegal) are created as
blank node labels for directly accessing a blank node in the
queried graph or dataset. This are constant terms in the query -
Modified: websites/staging/jena/trunk/content/documentation/query/http-auth.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/http-auth.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/http-auth.html Tue Jul 14 12:52:14 2015
@@ -144,16 +144,27 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">HTTP Authentication in ARQ</h1>
- <p>As of ARQ 2.11.0 there is a new unified HTTP operation framework that provides a uniform mechanism for
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>As of ARQ 2.11.0 there is a new unified HTTP operation framework that provides a uniform mechanism for
HTTP authentication that also allows ARQ to support a broader range of authentication mechanisms than were previously possible.</p>
-<h2 id="applying-authentication">Applying Authentication</h2>
+<h2 id="applying-authentication">Applying Authentication<a class="headerlink" href="#applying-authentication" title="Permanent link">¶</a></h2>
<p>APIs that support authentication typically provide two methods for providing authenticators, a <code>setAuthentication(String username, char[] password)</code> method
which merely configures a <code>SimpleAuthenticator</code>. There will also be a <code>setAuthenticator(HttpAuthenticator authenticator)</code> method
that allows you to configure an arbitrary authenticator.</p>
<p>Authenticators applied this way will only be used for requests by that specific API. APIs that currently support this are as follows:</p>
<ul>
-<li><a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.html">QueryEngineHTTP</a> - This is the <code>QueryExecution</code> implementation returned by <code>QueryExecutionFactory.sparqlService()</code> calls</li>
-<li><a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/modify/UpdateProcessRemoteBase.html">UpdateProcessRemoteBase</a> - This is the base class of <code>UpdateProcessor</code> implementations returned by <code>UpdateExecutionFactory.createRemote()</code> and <code>UpdateExecutionFactory.createRemoteForm()</code> calls</li>
+<li><a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/engine/http/QueryEngineHTTP.html">QueryEngineHTTP</a> - This is the <code>QueryExecution</code> implementation returned by <code>QueryExecutionFactory.sparqlService()</code> calls</li>
+<li><a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/modify/UpdateProcessRemoteBase.html">UpdateProcessRemoteBase</a> - This is the base class of <code>UpdateProcessor</code> implementations returned by <code>UpdateExecutionFactory.createRemote()</code> and <code>UpdateExecutionFactory.createRemoteForm()</code> calls</li>
<li><a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/web/DatasetGraphAccessorHTTP.html">DatasetGraphAccessorHTTP</a> - This is the <code>DatasetGraphAccessor</code> implementation underlying remote dataset accessors.</li>
</ul>
<p>From 2.11.0 onwards the relevant factory methods include overloads that allow providing a <code>HttpAuthenticator</code> at creation time which
@@ -167,16 +178,16 @@ avoids the needs to cast and manually se
</pre></div>
-<h3 id="authenticators">Authenticators</h3>
+<h3 id="authenticators">Authenticators<a class="headerlink" href="#authenticators" title="Permanent link">¶</a></h3>
<p>Authentication mechanisms are provided by <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/HttpAuthenticator.html">HttpAuthenticator</a> implementations of which a number are provided built into ARQ.</p>
<p>This API provides the authenticator with access to the <code>HttpClient</code>, <code>HttpContext</code> and target <code>URI</code> of the request that is about to be carried
out. This allows for authenticators to add credentials to requests on a per-request basis and/or to use different mechanisms and credentials for different services.</p>
-<h4 id="simpleauthenticator">SimpleAuthenticator</h4>
+<h4 id="simpleauthenticator">SimpleAuthenticator<a class="headerlink" href="#simpleauthenticator" title="Permanent link">¶</a></h4>
<p>The <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/SimpleAuthenticator.html">simple authenticator</a> is as the name suggests the simplest implementation. It takes a single set of credentials which is applied to
any service.</p>
<p>Authentication however is not preemptive so unless the remote service sends a HTTP challenge (401 Unauthorized or 407 Proxy Authorization
Required) then credentials will not actually be submitted.</p>
-<h4 id="scopedauthenticator">ScopedAuthenticator</h4>
+<h4 id="scopedauthenticator">ScopedAuthenticator<a class="headerlink" href="#scopedauthenticator" title="Permanent link">¶</a></h4>
<p>The <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/ScopedAuthenticator.html">scoped authenticator</a> is an authenticator which maps credentials to different service URIs. This allows you to specify different
credentials for different services as appropriate. Similarly to the simple authenticator this is not preemptive authentication so credentials are
not sent unless the service requests them.</p>
@@ -184,11 +195,11 @@ not sent unless the service requests the
if you define credentialsfor <code>http://example.org</code> then these are used for any request that requires authentication under that URI
e.g. <code>http://example.org/some/path</code>. However if you had also defined credentials for <code>http://example.org/some/path</code> then these would be
used in favor of those for <code>http://example.org</code></p>
-<h4 id="serviceauthenticator">ServiceAuthenticator</h4>
+<h4 id="serviceauthenticator">ServiceAuthenticator<a class="headerlink" href="#serviceauthenticator" title="Permanent link">¶</a></h4>
<p>The <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/ServiceAuthenticator.html">service authenticator</a> is an authenticator which uses information encoded in the ARQ context and basically provides access to the
existing credential provision mechanisms provided for the <code>SERVICE</code> clause, see <a href="service.html">Basic Federated Query</a> for more information on
configuration for this.</p>
-<h4 id="formsauthenticator">FormsAuthenticator</h4>
+<h4 id="formsauthenticator">FormsAuthenticator<a class="headerlink" href="#formsauthenticator" title="Permanent link">¶</a></h4>
<p>The <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/FormsAuthenticator.html">forms authenticator</a> is an authenticator usable with services that require form based logins and use session cookies to verify login state.
This is intended for use with services that don't support HTTP's built-in authentication mechanisms for whatever reason. One example of this
are servers secured using Apache HTTP Server <a href="https://httpd.apache.org/docs/2.4/mod/mod_auth_form.html">mod_auth_form</a>.</p>
@@ -216,7 +227,7 @@ we'd need to configure our authenticator
<p>Note that you can also create a forms authenticator that uses different login forms for different services by creating a <code>Map<URI, FormLogin></code>
that maps each service to an associated form login and passing that to the <code>FormsAuthenticator</code> constructor.</p>
<p>Currently forms based login that require more than just a username and password are not supported.</p>
-<h4 id="preemptivebasicauthenticator">PreemptiveBasicAuthenticator</h4>
+<h4 id="preemptivebasicauthenticator">PreemptiveBasicAuthenticator<a class="headerlink" href="#preemptivebasicauthenticator" title="Permanent link">¶</a></h4>
<p>This <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/PreemptiveBasicAuthenticator.html">authenticator</a> is a decorator over another authenticator that enables preemptive basic authentication, this <strong>only</strong> works for servers
that support basic authentication and so will cause authentication failures when any other authentication scheme is required. You should <strong>only</strong>
use this when you know the remote server uses basic authentication.</p>
@@ -229,15 +240,15 @@ use this when you know the remote server
<p>Also be aware that basic authentication is very insecure since it sends credentials over the wire with only obfuscation for protection. Therefore
many servers will use more secure schemes like Digest authentication which <strong>cannot</strong> be done preemptively as they require more complex
challenge response sequences.</p>
-<h4 id="delegatingauthenticator">DelegatingAuthenticator</h4>
+<h4 id="delegatingauthenticator">DelegatingAuthenticator<a class="headerlink" href="#delegatingauthenticator" title="Permanent link">¶</a></h4>
<p>The <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/DelegatingAuthenticator.html">delegating authenticator</a> allows for mapping different authenticators to different services, this is useful when you need to mix and
match the types of authentication needed.</p>
-<h3 id="debugging-authentication">Debugging Authentication</h3>
+<h3 id="debugging-authentication">Debugging Authentication<a class="headerlink" href="#debugging-authentication" title="Permanent link">¶</a></h3>
<p>ARQ uses <a href="http://hc.apache.org">Apache Http Client</a> for all its HTTP operations and this provides detailed logging information that can be used for debugging. To
see this information you need to configure your logging framework to set the <code>org.apache.http</code> package to either <code>DEBUG</code> or <code>TRACE</code> level.</p>
<p>The <code>DEBUG</code> level will give you general diagnostic information about requests and responses while the <code>TRACE</code> level will give you detailed
HTTP traces i.e. allow you to see the exact HTTP requests and responses which can be extremely useful for debugging authentication problems.</p>
-<h3 id="the-default-authenticator">The Default Authenticator</h3>
+<h3 id="the-default-authenticator">The Default Authenticator<a class="headerlink" href="#the-default-authenticator" title="Permanent link">¶</a></h3>
<p>Since it may not always be possible/practical to configure authenticators on a per-request basis the API includes a means to specify a default
authenticator that is used when no authenticator is explicitly specified. This may be configured via the
<code>setDefaultAuthenticator(HttpAuthenticator authenticator)</code> method of the <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/riot/web/HttpOp.html">HttpOp</a> class.</p>
Modified: websites/staging/jena/trunk/content/documentation/query/java-uri.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/java-uri.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/java-uri.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">ARQ - The `java:` URI scheme</h1>
- <p>ARQ uses URIs of the form <code><java:<i>package.class</i>></code> to provide
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>ARQ uses URIs of the form <code><java:<i>package.class</i>></code> to provide
dynamic loading of code for
<a href="extension.html#valueFunctions">value functions</a> and
<a href="extension.html#propertyFunctions">property functions</a>. ARQ loads
@@ -152,7 +163,7 @@ the class when needed. For functions and
also wraps it in the necessary factory code. A new instance of the
function or property function is created for each mention of the
name in each query.</p>
-<h2 id="dynamic-code-loading">Dynamic Code Loading</h2>
+<h2 id="dynamic-code-loading">Dynamic Code Loading<a class="headerlink" href="#dynamic-code-loading" title="Permanent link">¶</a></h2>
<p>Any classes loaded by ARQ must already be on the java classpath.
ARQ does not create any new class loaders, nor modify the Java
class path in any way. The class path must be set up to include any
@@ -168,12 +179,12 @@ the <code>PREFIX</code> declaration.</p>
</pre></div>
-<h2 id="remapping">Remapping</h2>
+<h2 id="remapping">Remapping<a class="headerlink" href="#remapping" title="Permanent link">¶</a></h2>
<p>All code loading is performed via the <code>MappedLoader</code> class. Before
actually loading the code, the mapped loader applies any
transformation of URIs. For example, the ARQ function library has a
namespace of <code><http://jena.hpl.hp.com/ARQ/function#></code> and resides
-in the Java package com.hp.hpl.jena.sparql.function.library. The
+in the Java package org.apache.jena.sparql.function.library. The
mapped loader includes a partial rewrite rule turning http URLs
starting with that namespace into java: URIs using the package
name.</p>
Modified: websites/staging/jena/trunk/content/documentation/query/library-function.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/library-function.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/library-function.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">Functions in ARQ</h1>
- <p>SPARQL allows custom functions in filter expressions so that
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>SPARQL allows custom functions in filter expressions so that
queries can be used on domain-specific data. SPARQL defines a
function by URI (or prefixed name) in FILTER expressions. ARQ
provides a function library and supports application-provided
@@ -155,16 +166,16 @@ functions. Functions and property fu
page.</p>
<p>Applications can also
<a href="writing_functions.html">provide their own functions</a>.</p>
-<h2 id="function-library">Function Library</h2>
+<h2 id="function-library">Function Library<a class="headerlink" href="#function-library" title="Permanent link">¶</a></h2>
<p>The prefix <code>afn</code> is <code><http://jena.hpl.hp.com/ARQ/function#></code>.</p>
<p>Direct loading using a URI prefix of
-<code><java:com.hp.hpl.jena.sparql.function.library.></code> (note the final
+<code><java:org.apache.jena.sparql.function.library.></code> (note the final
dot) is deprecated.</p>
<p>The prefix <code>fn</code> is <code><http://www.w3.org/2005/xpath-functions#></code> (the
XPath and XQuery function namespace).</p>
-<h3 id="xqueryxpath-functions-and-operators-supported">XQuery/XPath functions and operators supported</h3>
+<h3 id="xqueryxpath-functions-and-operators-supported">XQuery/XPath functions and operators supported<a class="headerlink" href="#xqueryxpath-functions-and-operators-supported" title="Permanent link">¶</a></h3>
<p><strong>String Functions</strong></p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Function name</th>
@@ -227,7 +238,7 @@ from zero.
</ol>
<p>The operation <code>afn:substring</code> provides Java semantics.</p>
<p><strong>Mathematical Functions</strong></p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Function name</th>
@@ -264,7 +275,7 @@ from zero.
<p>Note: See also <code>afn:min</code> and <code>afn:max</code> for binary min and max
functions.</p>
<p><strong>Boolean Functions</strong></p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Function name</th>
@@ -282,9 +293,9 @@ functions.</p>
</tr>
</tbody>
</table>
-<h4 id="functions-provided-by-arq">Functions provided by ARQ</h4>
+<h4 id="functions-provided-by-arq">Functions provided by ARQ<a class="headerlink" href="#functions-provided-by-arq" title="Permanent link">¶</a></h4>
<p><strong>RDF Graph Functions</strong></p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Function name</th>
@@ -307,7 +318,7 @@ functions.</p>
</tbody>
</table>
<p><strong>String Functions</strong></p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Function name</th>
@@ -334,7 +345,7 @@ functions.</p>
</tbody>
</table>
<p><strong>Mathematical Functions</strong></p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Function name</th>
@@ -365,7 +376,7 @@ functions.</p>
</tbody>
</table>
<p><strong>Miscellaneous Functions</strong></p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Function name</th>
Modified: websites/staging/jena/trunk/content/documentation/query/library-propfunc.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/library-propfunc.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/library-propfunc.html Tue Jul 14 12:52:14 2015
@@ -144,17 +144,28 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">Property Functions in ARQ</h1>
- <p>SPARQL allows custom property functions to add functionality to the
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>SPARQL allows custom property functions to add functionality to the
triple matching process. Property functions can be
<a href="extension.html">registered or dynamically loaded</a>.</p>
<p>See also the <a href="text-query.html">free text search</a> page.</p>
<p>See also the FILTER functions
<a href="library-function.html">FILTER functions library</a>.</p>
<p>Applications can also <a href="writing_propfuncs.html">provide their own property functions</a>.</p>
-<h2 id="property-function-library">Property Function Library</h2>
+<h2 id="property-function-library">Property Function Library<a class="headerlink" href="#property-function-library" title="Permanent link">¶</a></h2>
<p>Prefix <code>apf:</code> which is <code><http://jena.hpl.hp.com/ARQ/property#></code>.</p>
<p>Direct loading using a URI prefix of
-<code><java:com.hp.hpl.jena.sparql.pfunction.library.></code> (note the final
+<code><java:org.apache.jena.sparql.pfunction.library.></code> (note the final
dot) also works.</p>
<p>The prefix <code>list:</code> is <code>http://jena.hpl.hp.com/ARQ/list#</code>.</p>
<table>
Modified: websites/staging/jena/trunk/content/documentation/query/logging.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/logging.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/logging.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">ARQ - Logging</h1>
- <p>ARQ uses
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>ARQ uses
<a href="http://slf4j.org/">SLF4j</a>
as the API and ships with
<a href="http://logging.apache.org/log4j/">Log4J</a> as a deployment
@@ -155,9 +166,9 @@ logging set to an application at INFO wi
normal operation. Output below INFO can be very verbose and is
intended mainly to help debug ARQ. WARN and FATAL messages are only
used when something is wrong.</p>
-<p>The root of all the loggers is <code>com.hp.hpl.jena</code>.
-<code>com.hp.hpl.jena.query</code> is the application API.Â
-<code>com.hp.hpl.jena.sparql</code> is the implementation and extensions
+<p>The root of all the loggers is <code>org.apache.jena</code>.
+<code>org.apache.jena.query</code> is the application API.Â
+<code>org.apache.jena.sparql</code> is the implementation and extensions
points.</p>
<p>If using in Tomcat, or other system that provides complex class
loading arrangements, be careful about loading from jars in both
@@ -166,7 +177,7 @@ separate logging systems to be created (
<p>The ARQ and RIOT command line utilities look for a file
"log4j.properties" in the current directory to control logging during
command execution.</p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Logger Names</th>
@@ -178,14 +189,14 @@ command execution.</p>
</thead>
<tbody>
<tr>
-<td><code>com.hp.hpl.jena.arq.info</code></td>
+<td><code>org.apache.jena.arq.info</code></td>
<td><code>ARQ.logInfoName</code></td>
<td><code>ARQ.getLoggerInfo()</code></td>
<td>General information</td>
<td></td>
</tr>
<tr>
-<td><code>com.hp.hpl.jena.arq.exec</code></td>
+<td><code>org.apache.jena.arq.exec</code></td>
<td><code>ARQ.logExecName</code></td>
<td><code>ARQ.getLoggerExec()</code></td>
<td>Execution information</td>
@@ -207,11 +218,11 @@ by a call to <code>org.apache.jena.atlas
<span class="n">log4j</span><span class="p">.</span><span class="n">appender</span><span class="p">.</span><span class="n">stdlog</span><span class="p">.</span><span class="n">layout</span><span class="p">.</span><span class="n">ConversionPattern</span><span class="p">=</span><span class="c">%d{HH:mm:ss} %-5p %-25c{1} :: %m%n</span>
# <span class="n">Execution</span> <span class="n">logging</span>
-<span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">arq</span><span class="p">.</span><span class="n">info</span><span class="p">=</span><span class="n">INFO</span>
-<span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">arq</span><span class="p">.</span><span class="n">exec</span><span class="p">=</span><span class="n">INFO</span>
+<span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">arq</span><span class="p">.</span><span class="n">info</span><span class="p">=</span><span class="n">INFO</span>
+<span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">arq</span><span class="p">.</span><span class="n">exec</span><span class="p">=</span><span class="n">INFO</span>
# <span class="n">Other</span>
-<span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">jena</span><span class="p">=</span><span class="n">WARN</span>
+<span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jena</span><span class="p">=</span><span class="n">WARN</span>
<span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jena</span><span class="p">=</span><span class="n">WARN</span>
</pre></div>
@@ -220,16 +231,16 @@ by a call to <code>org.apache.jena.atlas
server output can include <a href="explain.html" title="ARQ/Explain">ARQ execution logging</a>.</p>
<p>Note: ARQ performs some direct control of logging in the test suite and
depends on log4j to compile.</p>
-<h2 id="execution-logging">Execution Logging</h2>
+<h2 id="execution-logging">Execution Logging<a class="headerlink" href="#execution-logging" title="Permanent link">¶</a></h2>
<p>ARQ can log query and update execution details globally or for an
individual operations. This adds another level of control on top of the
logger level controls.</p>
<p>Explanatory messages are controlled by the <code>Explain.InfoLevel</code> level in
the execution context.</p>
-<p>The logger used is called <code>com.hp.hpl.jena.arq.exec</code>. Message are sent
+<p>The logger used is called <code>org.apache.jena.arq.exec</code>. Message are sent
at level "info". So for log4j, the following can be set in the
log4j.properties file:</p>
-<div class="codehilite"><pre><span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">arq</span><span class="p">.</span><span class="n">exec</span><span class="p">=</span><span class="n">INFO</span>
+<div class="codehilite"><pre><span class="n">log4j</span><span class="p">.</span><span class="n">logger</span><span class="p">.</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">arq</span><span class="p">.</span><span class="n">exec</span><span class="p">=</span><span class="n">INFO</span>
</pre></div>
@@ -255,7 +266,7 @@ context.</p>
<p>The command <code>tdbquery</code> takes the same <code>--explain</code> argument.</p>
<p><strong>Information levels</strong></p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Level</th>
Modified: websites/staging/jena/trunk/content/documentation/query/parameterized-sparql-strings.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/parameterized-sparql-strings.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/parameterized-sparql-strings.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">Parameterized SPARQL String</h1>
- <p>A Parameterized SPARQL String is a SPARQL query/update into which values
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>A Parameterized SPARQL String is a SPARQL query/update into which values
may be injected.</p>
<p>The intended usage of this is where using a <code>QuerySolutionMap</code> as
initial bindings is either inappropriate or not possible e.g.</p>
@@ -167,8 +178,8 @@ the query with constants and to add pref
<code>Query</code> or <code>UpdateRequest</code> can be created using
the <code>asQuery()</code> and <code>asUpdate()</code> methods assuming the command an
instance represents is actually valid as a query/update.</p>
-<h2 id="building-parameterised-commands">Building parameterised commands</h2>
-<p>A <a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/query/ParameterizedSparqlString.html">ParameterizedSparqlString</a> is created as follows:</p>
+<h2 id="building-parameterised-commands">Building parameterised commands<a class="headerlink" href="#building-parameterised-commands" title="Permanent link">¶</a></h2>
+<p>A <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/query/ParameterizedSparqlString.html">ParameterizedSparqlString</a> is created as follows:</p>
<div class="codehilite"><pre><span class="n">ParameterizedSparqlString</span> <span class="n">pss</span> <span class="p">=</span> <span class="n">new</span> <span class="n">ParameterizedSparqlString</span><span class="p">();</span>
</pre></div>
@@ -212,16 +223,16 @@ declare them in your command text by usi
<p>Note that the state of the instance returned by <code>toString()</code> will include any injected values. Part of what the <code>toString()</code> method
does is check that your command is not subject to SPARQL injection attacks so in some cases where a possible
injection is detected an <code>ARQException</code> will be thrown.</p>
-<h3 id="injecting-values">Injecting Values</h3>
+<h3 id="injecting-values">Injecting Values<a class="headerlink" href="#injecting-values" title="Permanent link">¶</a></h3>
<p>Once you have a command text prepared then you want to actually inject values into it, values may be injected in several ways:</p>
<ul>
<li>By treating a variable in the SPARQL string as a parameter</li>
<li>Using JDBC style positional parameters</li>
<li>Appending values directly to the command text being built</li>
</ul>
-<p>See the <a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/query/ParameterizedSparqlString.html">ParameterizedSparqlString</a> javadocs for a comprehensive reference of available methods for setting values,
+<p>See the <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/query/ParameterizedSparqlString.html">ParameterizedSparqlString</a> javadocs for a comprehensive reference of available methods for setting values,
the following sections shows some basic examples of this.</p>
-<h4 id="variable-parameters">Variable Parameters</h4>
+<h4 id="variable-parameters">Variable Parameters<a class="headerlink" href="#variable-parameters" title="Permanent link">¶</a></h4>
<p>Any SPARQL variable in the command text may have a value injected to it, injecting a value replaces all usages of
that variable in the command i.e. substitutes the variable for a constant. Importantly injection is done by textual
substitution so in some cases may cause unexpected side effects.</p>
@@ -245,7 +256,7 @@ to <code>null</code> has the same effect
</pre></div>
-<h4 id="positional-parameters">Positional Parameters</h4>
+<h4 id="positional-parameters">Positional Parameters<a class="headerlink" href="#positional-parameters" title="Permanent link">¶</a></h4>
<p>You can use JDBC style positional parameters if you prefer, a JDBC style parameter is a single <code>?</code> followed by
whitespace or certain punctuation characters (currently <code>; , .</code>). Positional parameters have a unique index which
reflects the order in which they appear in the string. Note that positional parameters use a zero based index.</p>
@@ -269,10 +280,10 @@ to <code>null</code> has the same effect
</pre></div>
-<h4 id="non-existent-parameters">Non-existent parameters</h4>
+<h4 id="non-existent-parameters">Non-existent parameters<a class="headerlink" href="#non-existent-parameters" title="Permanent link">¶</a></h4>
<p>Where you try to set a variable/positional parameter that does not exist there will be no feedback that the parameter
does not exist, however the value set will not be included in the string produced when calling the <code>toString()</code> method.</p>
-<h4 id="buffer-usage">Buffer Usage</h4>
+<h4 id="buffer-usage">Buffer Usage<a class="headerlink" href="#buffer-usage" title="Permanent link">¶</a></h4>
<p>Additionally you may use this purely as a <code>StringBuffer</code> replacement for creating commands since it provides a
large variety of convenience methods for appending things either as-is or as nodes (which causes appropriate
formatting to be applied).</p>
@@ -291,12 +302,12 @@ wanted to use the value being appended a
</pre></div>
-<h4 id="getting-a-queryupdate">Getting a Query/Update</h4>
+<h4 id="getting-a-queryupdate">Getting a Query/Update<a class="headerlink" href="#getting-a-queryupdate" title="Permanent link">¶</a></h4>
<p>Once you've prepared your command you should then call the <code>asQuery()</code> or <code>asUpdate()</code> method to get it as a <code>Query</code>
or <code>UpdateRequest</code> object as appropriate. Doing this calls <code>toString()</code> to produce the final version of your command with
all values injected and runs it through the appropriate parser (either <code>QueryFactory</code> or <code>UpdateFactory</code>).</p>
<p>You can then use the returned <code>Query</code> or <code>UpdateRequest</code> object as you would normally to make a query/update.</p>
-<h3 id="sparql-injection-notes">SPARQL Injection Notes</h3>
+<h3 id="sparql-injection-notes">SPARQL Injection Notes<a class="headerlink" href="#sparql-injection-notes" title="Permanent link">¶</a></h3>
<p>First a couple of warnings:</p>
<ol>
<li>This class does not in any way check that your command is syntactically correct until such time as you try and parse
Modified: websites/staging/jena/trunk/content/documentation/query/sparql-remote.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/sparql-remote.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/sparql-remote.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">ARQ - Querying Remote SPARQL Services</h1>
- <p>SPARQL is a
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>SPARQL is a
<a href="http://www.w3.org/TR/sparql11-query/">query language</a> and a
<a href="http://www.w3.org/2001/sw/DataAccess/proto-wd/">remote access protocol</a>.
The remote access protocol can be used with plain HTTP or over
@@ -153,17 +164,17 @@ The remote access protocol can be used w
SPARQL protocol over HTTP. Fuseki uses ARQ to provide SPARQL
query access to Jena models, including Jena persistent models.</p>
<p>ARQ includes a query engine capable of using the HTTP version.</p>
-<h2 id="from-your-application">From your application</h2>
+<h2 id="from-your-application">From your application<a class="headerlink" href="#from-your-application" title="Permanent link">¶</a></h2>
<p>The <code>QueryExecutionFactory</code> has methods for creating a
<code>QueryExecution</code> object for remote use.
<code>QueryExecutionFactory.sparqlService</code></p>
<p>These methods build a query execution object that uses the query
-engine in <code>com.hp.hpl.jena.sparql.engine.http</code>.</p>
+engine in <code>org.apache.jena.sparql.engine.http</code>.</p>
<p>The remote request is made when the <code>execSelect</code>, <code>execConstruct</code>,
<code>execDescribe</code> or <code>execAsk</code> method is called.</p>
<p>The results are held locally after remote execution and can be
processed as usual.</p>
-<h2 id="from-the-command-line">From the command line</h2>
+<h2 id="from-the-command-line">From the command line<a class="headerlink" href="#from-the-command-line" title="Permanent link">¶</a></h2>
<p>The <a href="cmds.html#arq.sparql"><code>arq.sparql</code> command</a> can issue remote
query requests using the <code>--service</code> argument:</p>
<div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">cp</span> <span class="p">...</span> <span class="n">arq</span><span class="p">.</span><span class="n">query</span> <span class="o">--</span><span class="n">service</span> <span class="s">'http://host/service'</span> <span class="s">'SELECT ?s WHERE {?s [] []}'</span>
@@ -173,9 +184,9 @@ query requests using the <code>--service
<p>This takes a URL that is the service location.</p>
<p>The query given is parsed locally to check for syntax errors before
sending.</p>
-<h2 id="authentication">Authentication</h2>
+<h2 id="authentication">Authentication<a class="headerlink" href="#authentication" title="Permanent link">¶</a></h2>
<p>ARQ provides a flexible API for authenticating against remote services, see the <a href="http-auth.html">HTTP Authentication</a> documentation for more details.</p>
-<h2 id="firewalls-and-proxies">Firewalls and Proxies</h2>
+<h2 id="firewalls-and-proxies">Firewalls and Proxies<a class="headerlink" href="#firewalls-and-proxies" title="Permanent link">¶</a></h2>
<p>Don't forget to set the proxy for Java if you are accessing a
public server from behind a blocking firewall. Most home firewalls
do not block outgoing requests; many corporate firewalls do block
Modified: websites/staging/jena/trunk/content/documentation/query/spatial-query.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/spatial-query.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/spatial-query.html Tue Jul 14 12:52:14 2015
@@ -347,7 +347,7 @@ You also optionally use JtsSpatialContex
<span class="p">@</span><span class="n">prefix</span> <span class="n">spatial</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">jena</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">spatial</span><span class="c">#> .</span>
<span class="c"># TDB</span>
-<span class="p">[]</span> <span class="n">ja</span><span class="p">:</span><span class="n">loadClass</span> <span class="s">"com.hp.hpl.jena.tdb.TDB"</span> <span class="p">.</span>
+<span class="p">[]</span> <span class="n">ja</span><span class="p">:</span><span class="n">loadClass</span> <span class="s">"org.apache.jena.tdb.TDB"</span> <span class="p">.</span>
<span class="n">tdb</span><span class="p">:</span><span class="n">DatasetTDB</span> <span class="n">rdfs</span><span class="p">:</span><span class="n">subClassOf</span> <span class="n">ja</span><span class="p">:</span><span class="n">RDFDataset</span> <span class="p">.</span>
<span class="n">tdb</span><span class="p">:</span><span class="n">GraphTDB</span> <span class="n">rdfs</span><span class="p">:</span><span class="n">subClassOf</span> <span class="n">ja</span><span class="p">:</span><span class="n">Model</span> <span class="p">.</span>
Modified: websites/staging/jena/trunk/content/documentation/query/support_request.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/support_request.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/support_request.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title"></h1>
- <h1 id="writing-a-support-request">Writing a Support Request</h1>
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="writing-a-support-request">Writing a Support Request<a class="headerlink" href="#writing-a-support-request" title="Permanent link">¶</a></h1>
<p>A good support request or bug report is clear and concise. For ARQ,
reduce the problem to a short dataset (20 triples should be enough;
Turtle, N3 or N-triples preferred) and a query that illustrates the
@@ -155,17 +166,17 @@ happen.</p>
<li><a href="faq.html">ARQ FAQ</a></li>
<li><a href="index.html">ARQ Documentation</a></li>
</ul>
-<h3 id="parse-errors">Parse Errors</h3>
+<h3 id="parse-errors">Parse Errors<a class="headerlink" href="#parse-errors" title="Permanent link">¶</a></h3>
<p>The SPARQL parser outputs a line and column number - it is usually
correct in identifying the first point of a syntax error.</p>
-<h3 id="execution-failure">Execution failure</h3>
+<h3 id="execution-failure">Execution failure<a class="headerlink" href="#execution-failure" title="Permanent link">¶</a></h3>
<p>If you are reporting a failure that produces a stack trace, please
include the message, exception and the stack trace. Only if it is
very long, should you truncate the trace but please include the
whole trace to the point where it indicates it is entering ARQ (a
-package name starting <code>com.hp.hpl.jena.query</code>) and then one level
+package name starting <code>org.apache.jena.query</code>) and then one level
which is your code.</p>
-<h3 id="unexpected-results">Unexpected results</h3>
+<h3 id="unexpected-results">Unexpected results<a class="headerlink" href="#unexpected-results" title="Permanent link">¶</a></h3>
<p>If you are getting unexpected results, show the results you expect
as well as what you actually get.</p>
<p>If you are getting no results, or less than you expected, try
@@ -175,7 +186,7 @@ Print your results in text form if possi
<a href="http://www.w3.org/2001/sw/DataAccess/tests/README.html">testing format</a>
used by the Data Access Working Group and that is used for the
scripted tests in the distribution.</p>
-<h3 id="reports">Reports</h3>
+<h3 id="reports">Reports<a class="headerlink" href="#reports" title="Permanent link">¶</a></h3>
<p>A bug report or support request should be <strong>complete</strong> and
<strong>minimal</strong>. It helps you to develop a concise description of the
problem - often, you will discover the solution yourself.</p>
Modified: websites/staging/jena/trunk/content/documentation/query/text-query.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/text-query.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/text-query.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title"></h1>
- <p>This module was first released with Jena 2.11.0.</p>
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>This module was first released with Jena 2.11.0.</p>
<p>This extension to ARQ combines SPARQL and text search.</p>
<p>It gives applications the ability to perform free text searches within
SPARQL queries. Text indexes are additional information for
@@ -169,7 +180,7 @@ the actual label. More details are give
</pre></div>
-<h2 id="table-of-contents">Table of Contents</h2>
+<h2 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link">¶</a></h2>
<ul>
<li><a href="#architecture">Architecture</a></li>
<li><a href="#query-with-sparql">Query with SPARQL</a></li>
@@ -187,7 +198,7 @@ the actual label. More details are give
<li><a href="#configuring-alternative-textdocproducers">Configuring Alternative TextDocProducers</a></li>
<li><a href="#maven-dependency">Maven Dependency</a></li>
</ul>
-<h2 id="architecture">Architecture</h2>
+<h2 id="architecture">Architecture<a class="headerlink" href="#architecture" title="Permanent link">¶</a></h2>
<p>The text index is used provide a reverse index mapping query strings to URIs.
The text indexed can be part of the RDF data or the text index can be used to index
external content with only additional RDF in the RDF store.</p>
@@ -199,11 +210,11 @@ or
properties work with. When data is added, any properties matching the
description cause an entry to be added from analysed text from the triple
object and mapping to the subject.</p>
-<h3 id="pattern-a-wzxhzdk33-rdf-data">Pattern A – RDF data</h3>
+<h3 id="pattern-a-rdf-data">Pattern A – RDF data<a class="headerlink" href="#pattern-a-rdf-data" title="Permanent link">¶</a></h3>
<p>In this pattern, the data in the text index is indexing literals in the RDF data.<br />
Additions to the RDF data are reflected in additions to the index.</p>
<p>(Deletes do not remove text index entries - <a href="#deletion-of-indexed-entities">see below</a>)</p>
-<h3 id="pattern-b-wzxhzdk34-external-content">Pattern B – External content</h3>
+<h3 id="pattern-b-external-content">Pattern B – External content<a class="headerlink" href="#pattern-b-external-content" title="Permanent link">¶</a></h3>
<p>There is no requirement that the text data indexed is present in the RDF
data. As long as the index contains the index text documents to match the
index description, then text search can be performed.</p>
@@ -212,11 +223,11 @@ URI naming the document is the result of
dataset with the document metadata can be combined with accessing the
content by URI.</p>
<p>The maintenance of the index is external to the RDF data store.</p>
-<h3 id="external-applications">External applications</h3>
+<h3 id="external-applications">External applications<a class="headerlink" href="#external-applications" title="Permanent link">¶</a></h3>
<p>By using Solr, in either pattern A (RDF data indexed) or pattern B
(external content indexed), other applications can share the
text index with SPARQL search.</p>
-<h2 id="query-with-sparql">Query with SPARQL</h2>
+<h2 id="query-with-sparql">Query with SPARQL<a class="headerlink" href="#query-with-sparql" title="Permanent link">¶</a></h2>
<p>The property function is <code>http://jena.apache.org/text#query</code> more
conveniently written:</p>
<div class="codehilite"><pre><span class="n">PREFIX</span> <span class="n">text</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">jena</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">text</span>#<span class="o">></span>
@@ -242,7 +253,7 @@ conveniently written:</p>
<p>Only the query string is required, and if it is the only argument the
surrounding <code>( )</code> can be omitted.</p>
<p>The property URI is only necessary if multiple properties have been indexed.</p>
-<table>
+<table class="table">
<thead>
<tr>
<th> Argument </th>
@@ -264,10 +275,10 @@ surrounding <code>( )</code> can be omit
</tr>
</tbody>
</table>
-<h3 id="good-practice">Good practice</h3>
+<h3 id="good-practice">Good practice<a class="headerlink" href="#good-practice" title="Permanent link">¶</a></h3>
<p>The query execution does not know the selectivity of the text index. It is
better to use one of two styles.</p>
-<h4 id="query-pattern-1-wzxhzdk35-find-in-the-text-index-and-enhance-results">Query pattern 1 – Find in the text index and enhance results</h4>
+<h4 id="query-pattern-1-find-in-the-text-index-and-enhance-results">Query pattern 1 – Find in the text index and enhance results<a class="headerlink" href="#query-pattern-1-find-in-the-text-index-and-enhance-results" title="Permanent link">¶</a></h4>
<p>Access to the index is first in the query and used to find a number of
items of interest; further information is obtained about these items from
the RDF data.</p>
@@ -281,7 +292,7 @@ the RDF data.</p>
<p>Limit is useful here when working with large indexes to limit results to the
more higher scoring results.</p>
-<h4 id="query-pattern-2-wzxhzdk36-filter">Query pattern 2 – Filter</h4>
+<h4 id="query-pattern-2-filter">Query pattern 2 – Filter<a class="headerlink" href="#query-pattern-2-filter" title="Permanent link">¶</a></h4>
<p>By finding items of interest first in the RDF data, the text search can be
used to restrict the items found still further.</p>
<div class="codehilite"><pre><span class="n">SELECT</span> ?<span class="n">s</span>
@@ -292,7 +303,7 @@ used to restrict the items found still f
</pre></div>
-<h2 id="configuration">Configuration</h2>
+<h2 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">¶</a></h2>
<p>The usual way to describe an index is with a
<a href="../assembler/index.html">Jena assembler description</a>. Configurations can
also be built with code. The assembler describes a 'text
@@ -307,7 +318,7 @@ index field. More complex setups, with m
(URI) are possible.</p>
<p>Once setup this way, any data added to the text dataset is automatically
indexed as well.</p>
-<h3 id="text-dataset-assembler">Text Dataset Assembler</h3>
+<h3 id="text-dataset-assembler">Text Dataset Assembler<a class="headerlink" href="#text-dataset-assembler" title="Permanent link">¶</a></h3>
<p>The following is an example of a TDB dataset with a text index.</p>
<div class="codehilite"><pre><span class="p">@</span><span class="n">prefix</span> <span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="o">/</span><span class="n">jena_example</span><span class="o">/</span>#<span class="o">></span> <span class="p">.</span>
<span class="p">@</span><span class="n">prefix</span> <span class="n">rdf</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="p">.</span><span class="n">w3</span><span class="p">.</span><span class="n">org</span><span class="o">/</span>1999<span class="o">/</span>02<span class="o">/</span>22<span class="o">-</span><span class="n">rdf</span><span class="o">-</span><span class="n">syntax</span><span class="o">-</span><span class="n">ns</span>#<span class="o">></span> <span class="p">.</span>
@@ -318,7 +329,7 @@ indexed as well.</p>
## <span class="n">Example</span> <span class="n">of</span> <span class="n">a</span> <span class="n">TDB</span> <span class="n">dataset</span> <span class="n">and</span> <span class="n">text</span> <span class="n">index</span>
## <span class="n">Initialize</span> <span class="n">TDB</span>
-<span class="p">[]</span> <span class="n">ja</span><span class="p">:</span><span class="n">loadClass</span> "<span class="n">com</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">tdb</span><span class="p">.</span><span class="n">TDB</span>" <span class="p">.</span>
+<span class="p">[]</span> <span class="n">ja</span><span class="p">:</span><span class="n">loadClass</span> "<span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">tdb</span><span class="p">.</span><span class="n">TDB</span>" <span class="p">.</span>
<span class="n">tdb</span><span class="p">:</span><span class="n">DatasetTDB</span> <span class="n">rdfs</span><span class="p">:</span><span class="n">subClassOf</span> <span class="n">ja</span><span class="p">:</span><span class="n">RDFDataset</span> <span class="p">.</span>
<span class="n">tdb</span><span class="p">:</span><span class="n">GraphTDB</span> <span class="n">rdfs</span><span class="p">:</span><span class="n">subClassOf</span> <span class="n">ja</span><span class="p">:</span><span class="n">Model</span> <span class="p">.</span>
@@ -375,7 +386,7 @@ indexed as well.</p>
the text dataset, one for the base data. Therefore, the application
needs to identify the text dataset by it's URI
<code>http://localhost/jena_example/#text_dataset</code>.</p>
-<h3 id="configuring-an-analyzer">Configuring an Analyzer</h3>
+<h3 id="configuring-an-analyzer">Configuring an Analyzer<a class="headerlink" href="#configuring-an-analyzer" title="Permanent link">¶</a></h3>
<p>Text to be indexed is passed through a text analyzer that divides it into tokens
and may perform other transformations such as eliminating stop words. If a Solr text
index is used, the analyzer used is determined by the Solr configuration.
@@ -420,7 +431,7 @@ which is a case-insensitive version of <
language specific analyzers.
See <a href="#linguistic-support-with-lucene-index">Linguistic Support with Lucene Index</a>
part for details.</p>
-<h4 id="analyzer-for-query">Analyzer for Query</h4>
+<h4 id="analyzer-for-query">Analyzer for Query<a class="headerlink" href="#analyzer-for-query" title="Permanent link">¶</a></h4>
<p>New in Jena 2.13.0.</p>
<p>There is an ability to specify an analyzer to be used for the
query string itself. It will find terms in the query text. If not set, then the
@@ -436,7 +447,7 @@ the <code>TextIndexLucene</code> resourc
</pre></div>
-<h3 id="configuration-by-code">Configuration by Code</h3>
+<h3 id="configuration-by-code">Configuration by Code<a class="headerlink" href="#configuration-by-code" title="Permanent link">¶</a></h3>
<p>A text dataset can also be constructed in code as might be done for a
purely in-memory setup:</p>
<div class="codehilite"><pre> <span class="o">//</span> <span class="n">Example</span> <span class="n">of</span> <span class="n">building</span> <span class="n">a</span> <span class="n">text</span> <span class="n">dataset</span> <span class="n">with</span> <span class="n">code</span><span class="p">.</span>
@@ -454,7 +465,7 @@ purely in-memory setup:</p>
</pre></div>
-<h3 id="graph-specific-indexing">Graph-specific Indexing</h3>
+<h3 id="graph-specific-indexing">Graph-specific Indexing<a class="headerlink" href="#graph-specific-indexing" title="Permanent link">¶</a></h3>
<p>Starting with version 1.0.1, jena-text supports
storing information about the source graph into the text index. This allows
for more efficient text queries when the query targets only a single named
@@ -486,11 +497,11 @@ EntityDefinition constructors that suppo
<p><strong>Note:</strong> If you migrate from a global (non-graph-aware) index to a graph-aware index,
you need to rebuild the index to ensure that the graph information is stored.</p>
-<h3 id="linguistic-support-with-lucene-index">Linguistic support with Lucene index</h3>
+<h3 id="linguistic-support-with-lucene-index">Linguistic support with Lucene index<a class="headerlink" href="#linguistic-support-with-lucene-index" title="Permanent link">¶</a></h3>
<p>It is now possible to take advantage of languages of triple literals to enhance
index and queries. Sub-sections below detail different settings with the index,
and use cases with SPARQL queries.</p>
-<h4 id="explicit-language-field-in-the-index">Explicit Language Field in the Index</h4>
+<h4 id="explicit-language-field-in-the-index">Explicit Language Field in the Index<a class="headerlink" href="#explicit-language-field-in-the-index" title="Permanent link">¶</a></h4>
<p>Literals' languages of triples can be stored (during triple addition phase) into the
index to extend query capabilities.
For that, the new <code>text:langField</code> property must be set in the EntityMap assembler :</p>
@@ -509,7 +520,7 @@ EntityDefinition instance, e.g.</p>
</pre></div>
-<h4 id="sparql-linguistic-clause-forms">SPARQL Linguistic Clause Forms</h4>
+<h4 id="sparql-linguistic-clause-forms">SPARQL Linguistic Clause Forms<a class="headerlink" href="#sparql-linguistic-clause-forms" title="Permanent link">¶</a></h4>
<p>Once the <code>langField</code> is set, you can use it directly inside SPARQL queries, for that the <code>'lang:xx'</code>
argument allows you to target specific localized values. For example:</p>
<div class="codehilite"><pre><span class="c1">//target english literals</span>
@@ -523,7 +534,7 @@ argument allows you to target specific l
</pre></div>
-<h4 id="localizedanalyzer">LocalizedAnalyzer</h4>
+<h4 id="localizedanalyzer">LocalizedAnalyzer<a class="headerlink" href="#localizedanalyzer" title="Permanent link">¶</a></h4>
<p>You can specify and use a LocalizedAnalyzer in order to benefit from Lucene language
specific analyzers (stemming, stop words,...). Like any others analyzers, it can
be done for default text indexation, for each different field or for query.</p>
@@ -553,7 +564,7 @@ index configuration object:</p>
<code>Directory</code> classes.</p>
<p><strong>Note</strong>: You do not have to set the <code>text:langField</code> property with a single
localized analyzer.</p>
-<h4 id="multilingual-support">Multilingual Support</h4>
+<h4 id="multilingual-support">Multilingual Support<a class="headerlink" href="#multilingual-support" title="Permanent link">¶</a></h4>
<p>Let us suppose that we have many triples with many localized literals in many different
languages. It is possible to take all this languages into account for future mixed localized queries.
Just set the <code>text:multilingualSupport</code> property at <code>true</code> to automatically enable the localized
@@ -588,7 +599,7 @@ the storage of langField properties.</p>
(institution, institutional,...) in French and in English.</p>
<p><strong>Note</strong>: If the <code>text:langField</code> property is not set, the "lang" field will be
used anyway by default, because multilingual index cannot work without it.</p>
-<h2 id="working-with-fuseki">Working with Fuseki</h2>
+<h2 id="working-with-fuseki">Working with Fuseki<a class="headerlink" href="#working-with-fuseki" title="Permanent link">¶</a></h2>
<p>The Fuseki configuration simply points to the text dataset as the
<code>fuseki:dataset</code> of the service.</p>
<div class="codehilite"><pre><span class="o"><</span>#<span class="n">service_text_tdb</span><span class="o">></span> <span class="n">rdf</span><span class="p">:</span><span class="n">type</span> <span class="n">fuseki</span><span class="p">:</span><span class="n">Service</span> <span class="p">;</span>
@@ -605,13 +616,13 @@ used anyway by default, because multilin
</pre></div>
-<h2 id="building-a-text-index">Building a Text Index</h2>
+<h2 id="building-a-text-index">Building a Text Index<a class="headerlink" href="#building-a-text-index" title="Permanent link">¶</a></h2>
<p>When working at scale, or when preparing a published, read-only, SPARQL
service, creating the index by loading the text dataset is impractical.<br />
The index and the dataset can be built using command line tools in two
steps: first load the RDF data, second create an index from the existing
RDF dataset.</p>
-<h3 id="step-1-building-a-tdb-dataset">Step 1 - Building a TDB dataset</h3>
+<h3 id="step-1-building-a-tdb-dataset">Step 1 - Building a TDB dataset<a class="headerlink" href="#step-1-building-a-tdb-dataset" title="Permanent link">¶</a></h3>
<p><strong>Note:</strong> If you have an existing TDB dataset then you can skip this step</p>
<p>Build the TDB dataset:</p>
<div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">cp</span> $<span class="n">FUSEKI_HOME</span><span class="o">/</span><span class="n">fuseki</span><span class="o">-</span><span class="n">server</span><span class="p">.</span><span class="n">jar</span> <span class="n">tdb</span><span class="p">.</span><span class="n">tdbloader</span> <span class="o">--</span><span class="n">tdb</span><span class="p">=</span><span class="n">assembler_file</span> <span class="n">data_file</span>
@@ -625,7 +636,7 @@ RDF dataset.</p>
</pre></div>
-<h3 id="step-2-build-the-text-index">Step 2 - Build the Text Index</h3>
+<h3 id="step-2-build-the-text-index">Step 2 - Build the Text Index<a class="headerlink" href="#step-2-build-the-text-index" title="Permanent link">¶</a></h3>
<p>You can then build the text index with the <code>jena.textindexer</code> tool:</p>
<div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">cp</span> $<span class="n">FUSEKI_HOME</span><span class="o">/</span><span class="n">fuseki</span><span class="o">-</span><span class="n">server</span><span class="p">.</span><span class="n">jar</span> <span class="n">jena</span><span class="p">.</span><span class="n">textindexer</span> <span class="o">--</span><span class="n">desc</span><span class="p">=</span><span class="n">assembler_file</span>
</pre></div>
@@ -634,12 +645,12 @@ RDF dataset.</p>
<p>Because a Fuseki assembler description can have several datasets descriptions,
and several text indexes, it may be necessary to extract a single dataset and index description
into a separate assembler file for use in loading.</p>
-<h4 id="updating-the-index">Updating the index</h4>
+<h4 id="updating-the-index">Updating the index<a class="headerlink" href="#updating-the-index" title="Permanent link">¶</a></h4>
<p>If you allow updates to the dataset through Fuseki, the configured index
will automatically be updated on every modification. This means that you
do not have to run the above mentioned <code>jena.textindexer</code> after updates,
only when you want to rebuild the index from scratch.</p>
-<h2 id="deletion-of-indexed-entities">Deletion of Indexed Entities</h2>
+<h2 id="deletion-of-indexed-entities">Deletion of Indexed Entities<a class="headerlink" href="#deletion-of-indexed-entities" title="Permanent link">¶</a></h2>
<p>If the text index is being maintain by changed to the RDF, then deletion of
RDF triple or quads does not cause entries in the index to be removed. The
index does not store the literal indexed, nor does it store a reference
@@ -684,7 +695,7 @@ EntityDefinition instance, e.g.</p>
<p><strong>Note</strong>: If you migrate from a global (non-deletion-support) index to a deletion-support
index, you need to rebuild the index to ensure that the uid information is
stored.</p>
-<h1 id="configuring-alternative-textdocproducers">Configuring Alternative TextDocProducers</h1>
+<h1 id="configuring-alternative-textdocproducers">Configuring Alternative TextDocProducers<a class="headerlink" href="#configuring-alternative-textdocproducers" title="Permanent link">¶</a></h1>
<p>The default behaviour when text indexing is to index a single
property as a single field, generating a different <code>Document</code>
for each indexed triple. To change this behaviour requires
@@ -713,7 +724,7 @@ will be the graph of the configured data
<p><code>TextDocProducerTriples</code> produces a new document for each subject/field
added to the dataset, using <code>TextIndex.addEntity(Entity)</code>. </p>
-<h2 id="example">Example</h2>
+<h2 id="example">Example<a class="headerlink" href="#example" title="Permanent link">¶</a></h2>
<p>The example class below is a <code>TextDocProducer</code> that only indexes
<code>ADD</code>s of quads for which the subject already had at least one
property-value. It uses the two-argument constructor to give it
@@ -747,7 +758,7 @@ gives rise to this <code>change()</code>
</pre></div>
-<h2 id="maven-dependency">Maven Dependency</h2>
+<h2 id="maven-dependency">Maven Dependency<a class="headerlink" href="#maven-dependency" title="Permanent link">¶</a></h2>
<p>The <code>jena-text</code> module is included in Fuseki. To use it within application code,
then use the following maven dependency:</p>
<div class="codehilite"><pre><span class="nt"><dependency></span>
Modified: websites/staging/jena/trunk/content/documentation/query/writing_functions.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/writing_functions.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/writing_functions.html Tue Jul 14 12:52:14 2015
@@ -144,19 +144,30 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">ARQ - Writing Filter Functions</h1>
- <p>Applications can add SPARQL functions to the query engine. This is
+ <style type="text/css">
+/* The following code is added by mdx_elementid.py
+ It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+ visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p>Applications can add SPARQL functions to the query engine. This is
done by writing a class implementing the right interface, then
either registering it or using the fake <code>java:</code> URI scheme to
dynamically call the function.</p>
-<h2 id="writing-sparql-value-functions">Writing SPARQL Value Functions</h2>
+<h2 id="writing-sparql-value-functions">Writing SPARQL Value Functions<a class="headerlink" href="#writing-sparql-value-functions" title="Permanent link">¶</a></h2>
<p>A SPARQL value function is an extension point of the SPARQL query
language that allows URI to name a function in the query
processor.</p>
<p>In the ARQ engine, code to implement function must implement the
-interface <code>com.hp.hpl.jena.sparql.function.Function</code> although it is
+interface <code>org.apache.jena.sparql.function.Function</code> although it is
easier to work with one of the abstract classes for specific
numbers of arguments like
-<code>com.hp.hpl.jena.sparql.function.FunctionBase1</code> for one argument
+<code>org.apache.jena.sparql.function.FunctionBase1</code> for one argument
functions. Functions do not have to have a fixed number of
arguments.</p>
<p>The abstract class <code>FunctionBase</code>, the superclass of
@@ -221,8 +232,8 @@ Jena operation for the actual work):</p>
<p>This throws an evaluation exception if it is passed a value that is
not a URI.</p>
<p>The standard library, in package
-<code>com.hp.hpl.jena.sparql.function.library</code>, contains many examples.</p>
-<h2 id="registering-functions">Registering Functions</h2>
+<code>org.apache.jena.sparql.function.library</code>, contains many examples.</p>
+<h2 id="registering-functions">Registering Functions<a class="headerlink" href="#registering-functions" title="Permanent link">¶</a></h2>
<p>The query compiler finds functions based on the functions URI.Â
There is a global registry of known functions, but any query
execution can have it's own function registry.</p>