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 [5/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/writing_propfuncs.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/writing_propfuncs.html (original)
+++ websites/staging/jena/trunk/content/documentation/query/writing_propfuncs.html Tue Jul 14 12:52:14 2015
@@ -144,10 +144,21 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">ARQ - Writing Property Functions</h1>
- <p><strong>ARQ - Writing Property Functions</strong></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><strong>ARQ - Writing Property Functions</strong></p>
<p>See also <a href="writing_functions.html">Writing Filter Functions</a>.</p>
<p>Applications can add SPARQL property functions to the query engine. This is done by first implementing the
- <a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/pfunction/PropertyFunction.html"><code>PropertyFunction</code></a>
+ <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/pfunction/PropertyFunction.html"><code>PropertyFunction</code></a>
interface, and then either registering that function or using the fake <code>java:</code> URI scheme to dynamically
load the function.</p>
<p><strong>Writing SPARQL Property Functions</strong></p>
@@ -155,7 +166,7 @@
that allows a URI to name a function in the query processor. A key difference is that Property Functions may
generate new bindings.</p>
<p>Just like
- <a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/function/Function.html">com.hp.hpl.jena.sparql.function.Function</a>
+ <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/function/Function.html">org.apache.jena.sparql.function.Function</a>
there are various utility classes provided to simplify the creation of a Property Function. The selection of
one depends on the 'style' of the desired built-in. For example, <code>PFuncSimple</code> is expected to be the predicate
of triple patterns <code>?such ex:as ?this</code>, where neither argument is an <code>rdf:list</code>, and either may be a variable.
@@ -178,18 +189,18 @@
<p>The choice of extension point determines the function signature that the developer will need to implement, and
primarily determines whether some of the arguments will be
- <a href="https://jena.apache.org/documentation/javadoc/jena/com/hp/hpl/jena/graph/Node.html"><code>com.hp.hpl.jena.graph.Node</code></a>s or
- <a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/pfunction/PropFuncArg.html"><code>com.hp.hpl.jena.sparql.pfunction.PropFuncArg</code></a>s.
+ <a href="https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/graph/Node.html"><code>org.apache.jena.graph.Node</code></a>s or
+ <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/pfunction/PropFuncArg.html"><code>org.apache.jena.sparql.pfunction.PropFuncArg</code></a>s.
In the latter case, the programmer can determine whether the argument is a list as well as how many
arguments it consists of.</p>
<p><strong>Registration</strong></p>
<p>Every property function is associated with a particular
- <a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/util/Context.html"><code>com.hp.hpl.jena.sparql.util.Context</code></a>.
+ <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/util/Context.html"><code>org.apache.jena.sparql.util.Context</code></a>.
This allows you to limit the availability of the function to be global or associated with a particular dataset.
For example, a custom Property Function may expose an index which only has meaning with respect to some set
of data.</p>
<p>Assuming you have an implementation of
- <a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/pfunction/PropertyFunctionFactory.html"><code>com.hp.hpl.jena.sparql.pfunction.PropertyFunctionFactory</code></a>
+ <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/pfunction/PropertyFunctionFactory.html"><code>org.apache.jena.sparql.pfunction.PropertyFunctionFactory</code></a>
(shown later), you can register a function as follows:</p>
<div class="codehilite"><pre><span class="n">final</span> <span class="n">PropertyFunctionRegistry</span> <span class="n">reg</span> <span class="p">=</span> <span class="n">PropertyFunctionRegistry</span><span class="p">.</span><span class="n">chooseRegistry</span><span class="p">(</span><span class="n">ARQ</span><span class="p">.</span><span class="n">getContext</span><span class="p">());</span>
<span class="n">reg</span><span class="p">.</span><span class="n">put</span><span class="p">(</span>"<span class="n">urn</span><span class="p">:</span><span class="n">ex</span><span class="p">:</span><span class="n">fn</span>#<span class="n">example</span>"<span class="p">,</span> <span class="n">new</span> <span class="n">ExamplePropertyFunctionFactory</span><span class="p">);</span>
@@ -206,7 +217,7 @@
<p>Note that
- <a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/pfunction/PropertyFunctionRegistry.html"><code>com.hp.hpl.jena.sparql.pfunction.PropertyFunctionRegistry</code></a>
+ <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/pfunction/PropertyFunctionRegistry.html"><code>org.apache.jena.sparql.pfunction.PropertyFunctionRegistry</code></a>
has other <code>put</code> methods that allow registration by passing a <code>Class</code> object, as well.</p>
<p><strong>Implementation</strong></p>
<p>The implementation of a Property Function is actually quite straight forward once one is aware of the tools
@@ -243,14 +254,14 @@
easy to support typical use cases.</p>
<p>Of particular note:</p>
<ul>
-<li><a href="https://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/engine/iterator/QueryIterNullIterator.html"><code>QueryIterNullIterator</code></a> - to indicate that there are no valid solutions/bindings for the given values</li>
-<li><a href="https://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/engine/iterator/QueryIterSingleton.html"><code>QueryIterSingleton</code></a> - to provide a single solution/binding for the given values</li>
-<li><a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/engine/iterator/QueryIterPlainWrapper.html"><code>QueryIterPlainWrapper</code></a> - to provide multiple solutions/bindings for the given values</li>
+<li><a href="https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/engine/iterator/QueryIterNullIterator.html"><code>QueryIterNullIterator</code></a> - to indicate that there are no valid solutions/bindings for the given values</li>
+<li><a href="https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/engine/iterator/QueryIterSingleton.html"><code>QueryIterSingleton</code></a> - to provide a single solution/binding for the given values</li>
+<li><a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/engine/iterator/QueryIterPlainWrapper.html"><code>QueryIterPlainWrapper</code></a> - to provide multiple solutions/bindings for the given values</li>
</ul>
<p>The second two cases require instances of <code>Binding</code> objects which can be obtained through static methods of
- <a href="http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/engine/binding/BindingFactory.html"><code>BindingFactory</code></a>.
- Creation of <code>Binding</code> objects will also require references to <a href="https://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/sparql/core/Var.html"><code>Var</code></a>
- and <a href="https://jena.apache.org/documentation/javadoc/jena/com/hp/hpl/jena/graph/NodeFactory.html"><code>NodeFactory</code></a></p>
+ <a href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/engine/binding/BindingFactory.html"><code>BindingFactory</code></a>.
+ Creation of <code>Binding</code> objects will also require references to <a href="https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/sparql/core/Var.html"><code>Var</code></a>
+ and <a href="https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/graph/NodeFactory.html"><code>NodeFactory</code></a></p>
<p>Note that it can make a lot of sense to generate the <code>Iterator<Binding></code> for <code>QueryIterPlainWrapper</code> by means of
Jena's <code>ExtendedIterator</code>. This can allow domain-specific value to be easily mapped to <code>Binding</code> objects in
a lazy fashion.</p>
Modified: websites/staging/jena/trunk/content/documentation/rdf/index.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/rdf/index.html (original)
+++ websites/staging/jena/trunk/content/documentation/rdf/index.html Tue Jul 14 12:52:14 2015
@@ -144,10 +144,21 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">The core RDF API</h1>
- <p>This section provides some basic reference notes on the core Jena RDF API.
+ <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 section provides some basic reference notes on the core Jena RDF API.
For a more tutorial introduction, please see <a href="/tutorials">the tutorials</a>.</p>
-<h2 id="core-concepts">Core concepts</h2>
-<h3 id="graphs-models">Graphs, models</h3>
+<h2 id="core-concepts">Core concepts<a class="headerlink" href="#core-concepts" title="Permanent link">¶</a></h2>
+<h3 id="graphs-models">Graphs, models<a class="headerlink" href="#graphs-models" title="Permanent link">¶</a></h3>
<p>In Jena, all state information provided by a collection of RDF triples is
contained in a data structure called a <code>Model</code>. The model denotes an
<em>RDF graph</em>, so called because it contains a collection of <em>RDF nodes</em>,
@@ -179,7 +190,7 @@ for different store substrates.</p>
<li><code>Graph</code>, a simpler Java API intended for extending Jena's functionality.</li>
</ul>
<p>As an application developer, you will mostly be concerned with <code>Model</code>.</p>
-<h3 id="nodes-resources-literals-and-blank-nodes">Nodes: resources, literals and blank nodes</h3>
+<h3 id="nodes-resources-literals-and-blank-nodes">Nodes: resources, literals and blank nodes<a class="headerlink" href="#nodes-resources-literals-and-blank-nodes" title="Permanent link">¶</a></h3>
<p>So if RDF information is contained in a graph of connected nodes, what do the nodes themselves
look like? There are two distinct types of nodes: URI references and literals. Essentially, these
denote, respectively, some resource about which we wish to make some assertions, and concrete data values that
@@ -210,7 +221,7 @@ as nodes in the graph with blank identit
of a bNode, the <code>getURI()</code> method returns <code>null</code>, and the <code>isAnon()</code> method returns true).
The Java interface <code>Literal</code> represents literals. Since both resources and literals may appear
as nodes in a graph, the common interface <code>RDFNode</code> is a super-class of both <code>Resource</code> and <code>Literal</code>.</p>
-<h3 id="triples">Triples</h3>
+<h3 id="triples">Triples<a class="headerlink" href="#triples" title="Permanent link">¶</a></h3>
<p>In an RDF graph, the relationships always connect one subject resource to one other resource or
one literal. For example:</p>
<div class="codehilite"><pre><span class="n">example</span><span class="o">:</span><span class="n">ijd</span> <span class="n">foaf</span><span class="o">:</span><span class="n">firstName</span> <span class="s2">"Ian"</span><span class="o">.</span>
@@ -238,7 +249,7 @@ below, the two representations are equiv
<p>Technically, an RDF graph corresponds to a set of RDF triples. This means that an RDF resource
can only be the subject of at most one triple with the same predicate and object (because sets do
not contain any duplicates).</p>
-<h3 id="properties">Properties</h3>
+<h3 id="properties">Properties<a class="headerlink" href="#properties" title="Permanent link">¶</a></h3>
<p>As mentioned above, the connection between two resources or a resource and a literal in an RDF graph
is labelled with the identity of the property. Just as RDF itself uses URI's as names for resources,
minimising the chances of accidental name collisions, so too are properties identified with URI's. In fact,
@@ -246,7 +257,7 @@ RDF Properties are just a special case o
object, which is a Java sub-class of <code>Resource</code> (itself a Java sub-class of <code>RDFNode</code>).</p>
<p>One difference between properties and resources in general is that RDF does not permit anonymous
properties, so you can't use a bNode in place of a <code>Property</code> in the graph.</p>
-<h3 id="namespaces">Namespaces</h3>
+<h3 id="namespaces">Namespaces<a class="headerlink" href="#namespaces" title="Permanent link">¶</a></h3>
<p>Suppose two companies, Acme Inc, and Emca Inc, decide to encode their product catalogues in RDF. A key
piece of information to include in the graph is the price of the product, so both decide to use a <code>price</code>
predicate to denote the relationship between a product and its current price. However, Acme wants the
@@ -283,7 +294,7 @@ are defined by RDF or Turtle: authors of
are defined before use.</p>
<p><strong>Note</strong></p>
<p>Jena does not treat namespaces in a special way. A <code>Model</code> will remember any prefixes defined
-in the input RDF (see the <a href="http://jena.apache.org/documentation/javadoc/jena/com/hp/hpl/jena/shared/PrefixMapping.html"><code>PrexixMapping</code></a>
+in the input RDF (see the <a href="http://jena.apache.org/documentation/javadoc/jena/org/apache/jena/shared/PrefixMapping.html"><code>PrexixMapping</code></a>
interface; all Jena <code>Model</code> objects extend <code>PrefixMapping</code>), and the output writers which
serialize a model to XML or Turtle will normally attempt to use prefixes to abbreviate URI's.
However internally, a <code>Resource</code> URI is not separated into a namespace and local-name pair.
@@ -293,14 +304,10 @@ input document.</p>
<p>can be used as the <em>subject</em> of statements about the properties
of that resource, as above, but also as the value of a statement. For example, the property
<code>is-a-friend-of</code> might typically connect two resources denoting people</p>
-<h2 id="jena-packages">Jena packages</h2>
+<h2 id="jena-packages">Jena packages<a class="headerlink" href="#jena-packages" title="Permanent link">¶</a></h2>
<p>As a guide to the various features of Jena, here's a description of the main Java packages.
-For brevity, we shorten <code>com.hp.hpl</code> to <code>chh</code> and <code>org.apache.jena</code> to <code>oaj</code>.</p>
-<p><strong>Important note</strong> At some future point, now that Jena has become a project under the Apache
-Software Foundation, the package names beginning <code>com.hpl.hpl</code> will change to <code>org.apache</code>.
-We will provide transition packages to help Jena users adapt to this
-change when it occurs.</p>
-<table>
+For brevity, we shorten <code>org.apache.jena</code> to <code>oaj</code>.</p>
+<table class="table">
<thead>
<tr>
<th>Package</th>
@@ -310,7 +317,7 @@ change when it occurs.</p>
</thead>
<tbody>
<tr>
-<td>chh.jena.rdf.model</td>
+<td>oaj.jena.rdf.model</td>
<td>The Jena core. Creating and manipulating RDF graphs.</td>
<td></td>
</tr>
@@ -320,38 +327,38 @@ change when it occurs.</p>
<td></td>
</tr>
<tr>
-<td>chh.jena.datatypes</td>
+<td>oaj.jena.datatypes</td>
<td>Provides the core interfaces through which datatypes are described to Jena.</td>
<td><a href="http://jena.apache.org/documentation/notes/typed-literals.html">Typed literals</a></td>
</tr>
<tr>
-<td>chh.jena.ontology</td>
+<td>oaj.jena.ontology</td>
<td>Abstractions and convenience classes for accessing and manipluating ontologies represented in RDF.</td>
<td><a href="http://jena.apache.org/documentation/ontology/index.html">Ontology API</a></td>
</tr>
<tr>
-<td>chh.jena.rdf.listeners</td>
+<td>oaj.jena.rdf.listeners</td>
<td>Listening for changes to the statements in a model</td>
<td></td>
</tr>
<tr>
-<td>chh.jena.reasoner</td>
+<td>oaj.jena.reasoner</td>
<td>The reasoner subsystem is supports a range of inference engines which derive additional information from an RDF model</td>
<td><a href="http://jena.apache.org/documentation/inference/index.html">Reasoner how-to</a></td>
</tr>
<tr>
-<td>chh.jena.shared</td>
+<td>oaj.jena.shared</td>
<td>Common utility classes</td>
<td></td>
</tr>
<tr>
-<td>chh.jena.vocabulary</td>
+<td>oaj.jena.vocabulary</td>
<td>A package containing constant classes with predefined constant objects for classes and properties defined in well known vocabularies.</td>
<td></td>
</tr>
</tbody>
</table>
-<p>chh.jena.xmloutput | Writing RDF/XML. | <a href="http://jena.apache.org/documentation/io/index.html">I/O index</a></p>
+<p>oaj.jena.xmloutput | Writing RDF/XML. | <a href="http://jena.apache.org/documentation/io/index.html">I/O index</a></p>
</div>
</div>
Modified: websites/staging/jena/trunk/content/documentation/sdb/dataset_description.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/sdb/dataset_description.html (original)
+++ websites/staging/jena/trunk/content/documentation/sdb/dataset_description.html Tue Jul 14 12:52:14 2015
@@ -144,13 +144,24 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">SDB Dataset Description</h1>
- <p>Assembler descriptions for RDF Datasets and individual models are
+ <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>Assembler descriptions for RDF Datasets and individual models are
built from
<a href="store_description.html" title="SDB/Store Description">Store Descriptions</a>.
A dataset assembler just points to the store to use; a model
assembler points to the store and identifies the model within the
store to use (or use the default model).</p>
-<h2 id="datatsets">Datatsets</h2>
+<h2 id="datatsets">Datatsets<a class="headerlink" href="#datatsets" title="Permanent link">¶</a></h2>
<p>The example below creates an in-memory store implemented by
HSQLDB.</p>
<div class="codehilite"><pre><span class="p">@</span><span class="n">prefix</span> <span class="n">rdfs</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>2000<span class="o">/</span>01<span class="o">/</span><span class="n">rdf</span><span class="o">-</span><span class="n">schema</span>#<span class="o">></span> <span class="p">.</span>
@@ -160,7 +171,7 @@ HSQLDB.</p>
<span class="p">@</span><span class="n">prefix</span> <span class="n">ja</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>2005<span class="o">/</span>11<span class="o">/</span><span class="n">Assembler</span>#<span class="o">></span> <span class="p">.</span>
<span class="p">@</span><span class="n">prefix</span> <span class="n">sdb</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>2007<span class="o">/</span><span class="n">sdb</span>#<span class="o">></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">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">sdb</span><span class="p">.</span><span class="n">SDB</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">sdb</span><span class="p">.</span><span class="n">SDB</span>" <span class="p">.</span>
<span class="n">sdb</span><span class="p">:</span><span class="n">DatasetStore</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>
@@ -176,7 +187,7 @@ HSQLDB.</p>
<p>A dataset description for SDB is identical to a store description,
except the <code>rdf:type</code> is <code>sdb:DatasetStore</code>. A different kind of
Java object is created.</p>
-<h2 id="models">Models</h2>
+<h2 id="models">Models<a class="headerlink" href="#models" title="Permanent link">¶</a></h2>
<p>To assemble a particular model in a store, especially to work with
at the API level rather than at the query level, the following can
be added to an assembler description:</p>
Modified: websites/staging/jena/trunk/content/documentation/sdb/fuseki_integration.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/sdb/fuseki_integration.html (original)
+++ websites/staging/jena/trunk/content/documentation/sdb/fuseki_integration.html Tue Jul 14 12:52:14 2015
@@ -144,14 +144,25 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">SDB Fuseki Integration</h1>
- <p><a href="../fuseki2/index.html">Fuseki</a> is a server
+ <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 href="../fuseki2/index.html">Fuseki</a> is a server
that implements the SPARQL protocol for HTTP. It can be used to
give a SPARQL interface to an SDB installation.</p>
<p>The Fuseki server needs the SDB jar files on its classpath. The
Fuseki configuration file needs to contain two triples to integrate
SDB:</p>
<div class="codehilite"><pre><span class="c">## Initialize SDB.</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.sdb.SDB"</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.sdb.SDB"</span> <span class="p">.</span>
<span class="c">## Declare that sdb:DatasetStore is an implementation of ja:RDFDataset .</span>
<span class="n">sdb</span><span class="p">:</span><span class="n">DatasetStore</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>
Modified: websites/staging/jena/trunk/content/documentation/serving_data/index.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/serving_data/index.html (original)
+++ websites/staging/jena/trunk/content/documentation/serving_data/index.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">Fuseki: serving RDF data over HTTP</h1>
- <hr />
+ <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>
+<hr />
<blockquote>
<p>This page covers Fuseki v1. As of Jena 2.13.0, there is also
a new version, Fuseki v2. See <a href="/documentation/fuseki2/">Fuseki2 documentation</a>.
@@ -164,7 +175,7 @@ and SPARQL Update using the SPARQL proto
<ul>
<li><a href="soh.html">SPARQL Over HTTP</a> â command-line tools for working with any SPARQL 1.1 system</li>
</ul>
-<h2 id="contents">Contents</h2>
+<h2 id="contents">Contents<a class="headerlink" href="#contents" title="Permanent link">¶</a></h2>
<ul>
<li><a href="#download-fuseki1">Download</a></li>
<li><a href="#getting-started-with-fuseki">Getting Started</a></li>
@@ -177,10 +188,10 @@ and SPARQL Update using the SPARQL proto
<li><a href="#use-from-java">Use from Java</a></li>
<li><a href="#development-system">Development System</a></li>
</ul>
-<h2 id="download-fuseki1">Download Fuseki1</h2>
+<h2 id="download-fuseki1">Download Fuseki1<a class="headerlink" href="#download-fuseki1" title="Permanent link">¶</a></h2>
<p>See the <a href="/download/#apache-jena-fuseki">downloads page</a> for details of
releases.</p>
-<h2 id="getting-started-with-fuseki">Getting Started With Fuseki</h2>
+<h2 id="getting-started-with-fuseki">Getting Started With Fuseki<a class="headerlink" href="#getting-started-with-fuseki" title="Permanent link">¶</a></h2>
<p>This section provides a brief guide to getting up and running with
a simple server installation. It uses the
<a href="soh.html">SOH (SPARQL over HTTP)</a> scripts included in the
@@ -204,7 +215,7 @@ download.</p>
</pre></div>
-<h2 id="user-interface">User Interface</h2>
+<h2 id="user-interface">User Interface<a class="headerlink" href="#user-interface" title="Permanent link">¶</a></h2>
<p>The Fuseki download includes a number of services:</p>
<ul>
<li>SPARQL Query, SPARQL Update, and file upload to a selected
@@ -221,7 +232,7 @@ download.</p>
</ol>
<p>The page offers SPARQL operations and file upload acting on the
selected dataset.</p>
-<h2 id="script-control">Script Control</h2>
+<h2 id="script-control">Script Control<a class="headerlink" href="#script-control" title="Permanent link">¶</a></h2>
<p>In a new window:</p>
<p>Load some RDF data into the default graph of the server:</p>
<div class="codehilite"><pre><span class="n">s</span><span class="o">-</span><span class="n">put</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>3030<span class="o">/</span><span class="n">ds</span><span class="o">/</span><span class="n">data</span> <span class="n">default</span> <span class="n">books</span><span class="p">.</span><span class="n">ttl</span>
@@ -243,7 +254,7 @@ selected dataset.</p>
</pre></div>
-<h2 id="security-and-access-control">Security and Access Control</h2>
+<h2 id="security-and-access-control">Security and Access Control<a class="headerlink" href="#security-and-access-control" title="Permanent link">¶</a></h2>
<p>Fuseki does not currently offer security and access control itself.</p>
<p>Authentication and control of the number of concurrent requests can
be added using an Apache server and either blocking the Fuseki port
@@ -254,7 +265,7 @@ PUT/POST/DELETE enabled).</p>
<p>Data can be updated without access control if the server is started
with the <code>--update</code> argument. If started without that argument, data
is read-only.</p>
-<h2 id="logging">Logging</h2>
+<h2 id="logging">Logging<a class="headerlink" href="#logging" title="Permanent link">¶</a></h2>
<p>Fuseki uses
<a href="http://logging.apache.org/log4j/">Log4J</a>
for logging. There are two main logging channels:</p>
@@ -274,7 +285,7 @@ file):</p>
</pre></div>
-<h2 id="server-uri-scheme">Server URI scheme</h2>
+<h2 id="server-uri-scheme">Server URI scheme<a class="headerlink" href="#server-uri-scheme" title="Permanent link">¶</a></h2>
<p>This details the service URIs for Fuseki:</p>
<ul>
<li><code>http://*host*/</code><em>dataset</em><code>/query</code> -- the SPARQL query endpoint.</li>
@@ -291,7 +302,7 @@ port 3030 so <em>host</em> is often <em>
<code>http://host/</code><em>dataset</em><code>/sparql</code>
is currently mapped to <code>/query</code> but this may change to being a
general purpose SPARQL query endpoint.</p>
-<h2 id="running-a-fuseki-server">Running a Fuseki Server</h2>
+<h2 id="running-a-fuseki-server">Running a Fuseki Server<a class="headerlink" href="#running-a-fuseki-server" title="Permanent link">¶</a></h2>
<p>The server can be run with the script <code>fuseki-server</code>. Common forms
are:</p>
<div class="codehilite"><pre><span class="n">fuseki</span><span class="o">-</span><span class="n">server</span> <span class="o">--</span><span class="n">mem</span> <span class="o">/</span><span class="n">DatasetPathName</span>
@@ -332,7 +343,7 @@ assembler file for TDB is in tdb.ttl.</p
<li><code>--localhost</code> <br /> Listen only to the localhost network interface.</li>
<li><code>--update</code> <br /> Allow update. Otherwise only read requests are served (ignored if a configuration file is given).</li>
</ul>
-<h2 id="fuseki-server-starting-with-an-empty-dataset">Fuseki Server starting with an empty dataset</h2>
+<h2 id="fuseki-server-starting-with-an-empty-dataset">Fuseki Server starting with an empty dataset<a class="headerlink" href="#fuseki-server-starting-with-an-empty-dataset" title="Permanent link">¶</a></h2>
<div class="codehilite"><pre><span class="n">fuseki</span><span class="o">-</span><span class="n">server</span> <span class="o">--</span><span class="n">update</span> <span class="o">--</span><span class="n">mem</span> <span class="o">/</span><span class="n">ds</span>
</pre></div>
@@ -350,7 +361,7 @@ and protocol details. For example, to lo
</pre></div>
-<h2 id="fuseki-server-and-tdb">Fuseki Server and TDB</h2>
+<h2 id="fuseki-server-and-tdb">Fuseki Server and TDB<a class="headerlink" href="#fuseki-server-and-tdb" title="Permanent link">¶</a></h2>
<p>Fuseki include a built-in version of TDB. Run the server with the
<code>--desc</code> argument</p>
<div class="codehilite"><pre><span class="n">fuseki</span><span class="o">-</span><span class="n">server</span> <span class="o">--</span><span class="n">desc</span> <span class="n">tdb</span><span class="p">.</span><span class="n">ttl</span> <span class="o">/</span><span class="n">ds</span>
@@ -363,7 +374,7 @@ and protocol details. For example, to lo
<span class="p">@</span><span class="n">prefix</span> <span class="n">ja</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>2005<span class="o">/</span>11<span class="o">/</span><span class="n">Assembler</span>#<span class="o">></span> <span class="p">.</span>
<span class="p">@</span><span class="n">prefix</span> <span class="n">tdb</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>2008<span class="o">/</span><span class="n">tdb</span>#<span class="o">></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">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>
@@ -388,7 +399,7 @@ unnamed graph, use:</p>
</pre></div>
-<h2 id="fuseki-server-and-general-dataset-descriptions">Fuseki Server and general dataset descriptions</h2>
+<h2 id="fuseki-server-and-general-dataset-descriptions">Fuseki Server and general dataset descriptions<a class="headerlink" href="#fuseki-server-and-general-dataset-descriptions" title="Permanent link">¶</a></h2>
<p>The Fuseki server can be given an
<a href="/documentation/assembler/">assembler description</a>
to build a variety of model and datasets types.</p>
@@ -419,7 +430,7 @@ to build a variety of model and datasets
<p>The models can be
<a href="/documentation/inference/">Jena inference models</a>.</p>
-<h2 id="fuseki-configuration-file">Fuseki Configuration File</h2>
+<h2 id="fuseki-configuration-file">Fuseki Configuration File<a class="headerlink" href="#fuseki-configuration-file" title="Permanent link">¶</a></h2>
<p>A Fuseki server can be set up using a configuration file. The
command-line arguments for publishing a single dataset are a short
cut that, internally, builds a default configuration based on the
@@ -429,7 +440,7 @@ description, with a number of services,
number of endpoints over a dataset.</p>
<p>The example below is all one file (RDF graph in Turtle syntax)
split to allow for commentary.</p>
-<h3 id="prefix-declarations">Prefix declarations</h3>
+<h3 id="prefix-declarations">Prefix declarations<a class="headerlink" href="#prefix-declarations" title="Permanent link">¶</a></h3>
<p>Some useful prefix declarations:</p>
<div class="codehilite"><pre><span class="p">@</span><span class="n">prefix</span> <span class="n">fuseki</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">fuseki</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>
@@ -440,7 +451,7 @@ split to allow for commentary.</p>
</pre></div>
-<h3 id="server-section">Server Section</h3>
+<h3 id="server-section">Server Section<a class="headerlink" href="#server-section" title="Permanent link">¶</a></h3>
<p>Order of the file does not matter to the machine, but it's useful
to start with the server description, then each of the services
with its datasets.</p>
@@ -464,14 +475,14 @@ with its datasets.</p>
</pre></div>
-<h3 id="assembler-initialization">Assembler Initialization</h3>
+<h3 id="assembler-initialization">Assembler Initialization<a class="headerlink" href="#assembler-initialization" title="Permanent link">¶</a></h3>
<p>All datasets are described by
<a href="../assembler/index.html">assembler descriptions</a>.
Assemblers provide an extensible way of describing many kinds of
objects. Set up any assembler extensions - here, the TDB assembler
support.</p>
<div class="codehilite"><pre><span class="c"># Declaration additional assembler items.</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="c"># TDB</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>
@@ -479,7 +490,7 @@ support.</p>
</pre></div>
-<h3 id="service-1">Service 1</h3>
+<h3 id="service-1">Service 1<a class="headerlink" href="#service-1" title="Permanent link">¶</a></h3>
<p>This service offers SPARQL Query, SPARQL Update and SPARQL Graph
Store protocol, as well as file upload, on an in-memory dataset.
Initially, the dataset is empty.</p>
@@ -502,7 +513,7 @@ Initially, the dataset is empty.</p>
</pre></div>
-<h3 id="service-2">Service 2</h3>
+<h3 id="service-2">Service 2<a class="headerlink" href="#service-2" title="Permanent link">¶</a></h3>
<p>This service offers a number of endpoints. It is read-only, because
only read-only endpoints are defined (SPARQL Query and HTTP GET
SPARQl Graph Store protocol). The dataset is a single in-memory
@@ -527,7 +538,7 @@ graph of data.</p>
</pre></div>
-<h3 id="service-3">Service 3</h3>
+<h3 id="service-3">Service 3<a class="headerlink" href="#service-3" title="Permanent link">¶</a></h3>
<p>This service offers SPARQL query access only to a TDB database. The
TDB database can have specific features set, such as query timeout
or making the default graph the union of all named graphs.</p>
@@ -547,12 +558,12 @@ or making the default graph the union of
</pre></div>
-<h2 id="sparql-over-http">SPARQL Over HTTP</h2>
+<h2 id="sparql-over-http">SPARQL Over HTTP<a class="headerlink" href="#sparql-over-http" title="Permanent link">¶</a></h2>
<p><strong>SOH</strong> (SPARQL Over HTTP) is a set of command-line scripts for
working with SPARQL 1.1. SOH is server-independent and will work
with any compliant SPARQL 1.1 system offering HTTP access.</p>
<p>See the <a href="soh.html">SPARQL Over HTTP</a> page.</p>
-<h3 id="examples">Examples</h3>
+<h3 id="examples">Examples<a class="headerlink" href="#examples" title="Permanent link">¶</a></h3>
<div class="codehilite"><pre><span class="c"># PUT a file</span>
<span class="n">s</span><span class="o">-</span><span class="n">put</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>3030<span class="o">/</span><span class="n">ds</span><span class="o">/</span><span class="n">data</span> <span class="n">default</span> <span class="n">D</span><span class="p">.</span><span class="n">nt</span>
@@ -570,12 +581,12 @@ with any compliant SPARQL 1.1 system off
</pre></div>
-<h2 id="use-from-java">Use from Java</h2>
-<h3 id="sparql-query">SPARQL Query</h3>
+<h2 id="use-from-java">Use from Java<a class="headerlink" href="#use-from-java" title="Permanent link">¶</a></h2>
+<h3 id="sparql-query">SPARQL Query<a class="headerlink" href="#sparql-query" title="Permanent link">¶</a></h3>
<p>ARQ's <code>QueryExecutionFactory.sparqlService</code> can be used.</p>
-<h3 id="sparql-update">SPARQL Update</h3>
+<h3 id="sparql-update">SPARQL Update<a class="headerlink" href="#sparql-update" title="Permanent link">¶</a></h3>
<p>See <code>UpdateExecutionFactory.createRemote</code></p>
-<h3 id="sparql-http">SPARQL HTTP</h3>
+<h3 id="sparql-http">SPARQL HTTP<a class="headerlink" href="#sparql-http" title="Permanent link">¶</a></h3>
<p>See <code>DatasetAccessor</code></p>
</div>
</div>
Modified: websites/staging/jena/trunk/content/documentation/tdb/assembler.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/tdb/assembler.html (original)
+++ websites/staging/jena/trunk/content/documentation/tdb/assembler.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">TDB Assembler</h1>
- <p><a href="/documentation/assembler/">Assemblers</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><a href="/documentation/assembler/">Assemblers</a>
are a general mechanism in Jena to describe objects to be built,
often these objects are models and datasets. Assemblers are used
heavily in <a href="../fuseki2/">Fuseki</a> for
@@ -155,7 +166,7 @@ which is a unnamed, default graph and ze
<p>Having the description in a file means that the data that the
application is going to work on can be changed without changing the
program code.</p>
-<h2 id="contents">Contents</h2>
+<h2 id="contents">Contents<a class="headerlink" href="#contents" title="Permanent link">¶</a></h2>
<ul>
<li><a href="#dataset">Dataset</a><ul>
<li><a href="#union-default-graph">Union Default Graph</a></li>
@@ -165,7 +176,7 @@ program code.</p>
<li><a href="#mixed-datasets">Mixed Datasets</a></li>
<li><a href="#rdfs">RDFS</a></li>
</ul>
-<h2 id="dataset">Dataset</h2>
+<h2 id="dataset">Dataset<a class="headerlink" href="#dataset" title="Permanent link">¶</a></h2>
<p>This is needed for use in <a href="../fuseki2/" title="Fuseki">Fuseki</a>.</p>
<p>A dataset can be constructed in an assembler file:</p>
<div class="codehilite"><pre><span class="p">@</span><span class="n">prefix</span> <span class="n">tdb</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>2008<span class="o">/</span><span class="n">tdb</span>#<span class="o">></span> <span class="p">.</span>
@@ -173,7 +184,7 @@ program code.</p>
<span class="p">@</span><span class="n">prefix</span> <span class="n">rdfs</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>2000<span class="o">/</span>01<span class="o">/</span><span class="n">rdf</span><span class="o">-</span><span class="n">schema</span>#<span class="o">></span> <span class="p">.</span>
<span class="p">@</span><span class="n">prefix</span> <span class="n">ja</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>2005<span class="o">/</span>11<span class="o">/</span><span class="n">Assembler</span>#<span class="o">></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">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>
@@ -200,7 +211,7 @@ be on the Java classpath.</p>
this case the jena assembler system checks for any <code>ja:loadClass</code>
statements before any attempt to assemble an object is made, having
it early in the file is helpful to any person looking at the file.</p>
-<div class="codehilite"><pre><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>
+<div class="codehilite"><pre><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>
</pre></div>
@@ -217,7 +228,7 @@ the assembler file is read from.</p>
subject with type <code>tdb:GraphDataset</code>. If more than one graph is
given in a single file, the application will have to specify which
description it wishes to use.</p>
-<h3 id="union-default-graph">Union Default Graph</h3>
+<h3 id="union-default-graph">Union Default Graph<a class="headerlink" href="#union-default-graph" title="Permanent link">¶</a></h3>
<p>An assembler can specify that the default graph for query is the
union of the named graphs. This is done by adding
<em>tdb:unionDefaultGraph</em>.</p>
@@ -228,7 +239,7 @@ union of the named graphs. This is done
</pre></div>
-<h2 id="graph">Graph</h2>
+<h2 id="graph">Graph<a class="headerlink" href="#graph" title="Permanent link">¶</a></h2>
<p>TDB always stores data in an RDF dataset. It is possible to use
just one of the graphs from the dataset. A common way of working
with one graph is to use the default graph of the dataset.</p>
@@ -237,7 +248,7 @@ with one graph is to use the default gra
<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>
<span class="p">@</span><span class="n">prefix</span> <span class="n">ja</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>2005<span class="o">/</span>11<span class="o">/</span><span class="n">Assembler</span>#<span class="o">></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">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="o"><</span>#<span class="n">dataset</span><span class="o">></span> <span class="n">rdf</span><span class="p">:</span><span class="n">type</span> <span class="n">tdb</span><span class="p">:</span><span class="n">DatasetTDB</span>Â <span class="p">;</span>
<span class="n">tdb</span><span class="p">:</span><span class="n">location</span> "<span class="n">DB</span>"Â <span class="p">;</span>
@@ -256,7 +267,7 @@ assembled with:</p>
</pre></div>
-<h2 id="mixed-datasets">Mixed Datasets</h2>
+<h2 id="mixed-datasets">Mixed Datasets<a class="headerlink" href="#mixed-datasets" title="Permanent link">¶</a></h2>
<p>It is possible to create a dataset with graphs backed by different
storage subsystems, although query is not necessarily as
efficient.</p>
@@ -267,7 +278,7 @@ below:</p>
<span class="p">@</span><span class="n">prefix</span> <span class="n">rdfs</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>2000<span class="o">/</span>01<span class="o">/</span><span class="n">rdf</span><span class="o">-</span><span class="n">schema</span>#<span class="o">></span> <span class="p">.</span>
<span class="p">@</span><span class="n">prefix</span> <span class="n">ja</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>2005<span class="o">/</span>11<span class="o">/</span><span class="n">Assembler</span>#<span class="o">></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">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>
@@ -298,7 +309,7 @@ below:</p>
<p>which provides for integration with complex model setups, such as
reasoners.</p>
-<h2 id="rdfs">RDFS</h2>
+<h2 id="rdfs">RDFS<a class="headerlink" href="#rdfs" title="Permanent link">¶</a></h2>
<div class="codehilite"><pre><span class="p">@</span><span class="n">prefix</span> <span class="n">tdb</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>2008<span class="o">/</span><span class="n">tdb</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>
<span class="p">@</span><span class="n">prefix</span> <span class="n">rdfs</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>2000<span class="o">/</span>01<span class="o">/</span><span class="n">rdf</span><span class="o">-</span><span class="n">schema</span>#<span class="o">></span> <span class="p">.</span>
Modified: websites/staging/jena/trunk/content/documentation/tdb/configuration.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/tdb/configuration.html (original)
+++ websites/staging/jena/trunk/content/documentation/tdb/configuration.html Tue Jul 14 12:52:14 2015
@@ -144,9 +144,20 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">TDB Configuration</h1>
- <p>There are a number of configuration options that affect 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 a number of configuration options that affect the
operation of TDB.</p>
-<h2 id="contents">Contents</h2>
+<h2 id="contents">Contents<a class="headerlink" href="#contents" title="Permanent link">¶</a></h2>
<ul>
<li><a href="#setting-options">Setting Options</a><ul>
<li><a href="#setting-from-the-command-line">Setting from the command line</a></li>
@@ -160,7 +171,7 @@ operation of TDB.</p>
<li><a href="#tdb-configuration-symbols">TDB Configuration Symbols</a></li>
<li><a href="#advanced-store-configuration">Advanced Store Configuration</a></li>
</ul>
-<h2 id="setting-options">Setting Options</h2>
+<h2 id="setting-options">Setting Options<a class="headerlink" href="#setting-options" title="Permanent link">¶</a></h2>
<p>Options can be set globally, through out the JVM, or on a per query
execution basis. TDB uses the same mechanism as
<a href="http://jena.sf.net/ARQ" title="http://jena.sf.net/ARQ">ARQ</a>.</p>
@@ -190,24 +201,24 @@ are short for the constants of class <co
or setup happens. Creation of a query execution object does not
compile the query, which happens when the appropriate <code>.exec</code>
method is called.</p>
-<h4 id="setting-from-the-command-line">Setting from the command line</h4>
+<h4 id="setting-from-the-command-line">Setting from the command line<a class="headerlink" href="#setting-from-the-command-line" title="Permanent link">¶</a></h4>
<p>Options can also set from the
<a href="commands.html#setting-options-from-the-command-line" title="TDB/Commands">command line</a>
with "<code>--set</code>.</p>
-<h4 id="setting-with-java-system-properties">Setting with Java System properties</h4>
+<h4 id="setting-with-java-system-properties">Setting with Java System properties<a class="headerlink" href="#setting-with-java-system-properties" title="Permanent link">¶</a></h4>
<p>(TDB 0.8.5 and later)</p>
<p>Options can be set when invoking the JVM using the Java system
properties as set by "<code>-D</code>".</p>
-<h2 id="query-of-the-union-of-named-graphs">Query of the union of named graphs</h2>
+<h2 id="query-of-the-union-of-named-graphs">Query of the union of named graphs<a class="headerlink" href="#query-of-the-union-of-named-graphs" title="Permanent link">¶</a></h2>
<p>See <a href="datasets.html" title="TDB/Datasets">TDB/Datasets</a>.</p>
-<h2 id="logging-query-execution">Logging Query Execution</h2>
+<h2 id="logging-query-execution">Logging Query Execution<a class="headerlink" href="#logging-query-execution" title="Permanent link">¶</a></h2>
<p>If the symbol "<code>tdb:logExec</code>" is set to "true", and also the logger
-<code>com.hp.hpl.jena.tdb.exec</code> is enabled fro level "info", then each
+<code>org.apache.jena.tdb.exec</code> is enabled fro level "info", then each
basic graph patterns is logged before execution. This pattern
logged is after substitution of variable values and after
optimization by the
<a href="optimizer.html" title="TDB/Optimizer">BGP optimizer</a>.</p>
-<h2 id="dataset-caching">Dataset Caching</h2>
+<h2 id="dataset-caching">Dataset Caching<a class="headerlink" href="#dataset-caching" title="Permanent link">¶</a></h2>
<p>(TDB 0.8.0 and later)</p>
<p>TDB caches datasets based on the location of the backing directory.
Within a single JVM, all attempts to create or open a dataset at a
@@ -217,13 +228,13 @@ several times in different places in the
same underlying dataset for query and update.</p>
<p>Note that closing the dataset closes it everywhere (the opening
calls are not being reference counted).</p>
-<h2 id="file-access-mode">File Access Mode</h2>
+<h2 id="file-access-mode">File Access Mode<a class="headerlink" href="#file-access-mode" title="Permanent link">¶</a></h2>
<p>The context symbol can be set to "mapped" or "direct". Unset, or
the value "default", ask TDB to use to make the choice based on
JVM. Leaving it to the default is <em>strongly</em> encouraged.</p>
-<h2 id="tdb-configuration-symbols">TDB Configuration Symbols</h2>
+<h2 id="tdb-configuration-symbols">TDB Configuration Symbols<a class="headerlink" href="#tdb-configuration-symbols" title="Permanent link">¶</a></h2>
<p>Configuration Symbols</p>
-<table>
+<table class="table">
<thead>
<tr>
<th>Symbol</th>
@@ -236,7 +247,7 @@ JVM. Leaving it to the default is <em>st
<tr>
<td><code>tdb:logExec</code></td>
<td><code>TDB.symLogExec</code></td>
-<td>Log execution of BGPs. Set to "true" to enable. Must also enable the logger "com.hp.hpl.jena.tdb.exec". e.g. log4j.properties <code>log4j.logger.com.hp.hpl.jena.tdb.exec=INFO</code></td>
+<td>Log execution of BGPs. Set to "true" to enable. Must also enable the logger "org.apache.jena.tdb.exec". e.g. log4j.properties <code>log4j.logger.org.apache.jena.tdb.exec=INFO</code></td>
<td>unset</td>
</tr>
<tr>
@@ -253,7 +264,7 @@ JVM. Leaving it to the default is <em>st
</tr>
</tbody>
</table>
-<h2 id="advanced-store-configuration">Advanced Store Configuration</h2>
+<h2 id="advanced-store-configuration">Advanced Store Configuration<a class="headerlink" href="#advanced-store-configuration" title="Permanent link">¶</a></h2>
<p>Various internal caching sizes can be set to different values to the
defaults. See the <a href="store-parameters.html">full description</a>.</p>
</div>
Modified: websites/staging/jena/trunk/content/documentation/tdb/optimizer.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/tdb/optimizer.html (original)
+++ websites/staging/jena/trunk/content/documentation/tdb/optimizer.html Tue Jul 14 12:52:14 2015
@@ -144,7 +144,18 @@
<div class="col-md-12">
<div id="breadcrumbs"></div>
<h1 class="title">TDB Optimizer</h1>
- <p>Query execution in TDB involves both static and dynamic
+ <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>Query execution in TDB involves both static and dynamic
optimizations. Static optimizations are transformations of the
SPARQL algebra performed before query execution begins; dynamic
optimizations involve deciding the best execution approach during
@@ -159,7 +170,7 @@ for triple patterns. The statistic file
generated. The user can add and modify rules to tune the database
based on higher level knowledge, such as inverse function
properties.</p>
-<h2 id="contents">Contents</h2>
+<h2 id="contents">Contents<a class="headerlink" href="#contents" title="Permanent link">¶</a></h2>
<ul>
<li><a href="#quickstart">Quickstart</a></li>
<li><a href="#running-tdbstats">Running tdbstats</a></li>
@@ -178,7 +189,7 @@ properties.</p>
</li>
<li><a href="#writing-rules">Writing Rules</a></li>
</ul>
-<h2 id="quickstart">Quickstart</h2>
+<h2 id="quickstart">Quickstart<a class="headerlink" href="#quickstart" title="Permanent link">¶</a></h2>
<p>This section provides a practical how-to.</p>
<ol>
<li>Load data.</li>
@@ -186,17 +197,17 @@ properties.</p>
<li>Place the file generated in the database directory with the
name stats.opt.</li>
</ol>
-<h2 id="running-tdbstats">Running <code>tdbstats</code></h2>
+<h2 id="running-tdbstats">Running <code>tdbstats</code><a class="headerlink" href="#running-tdbstats" title="Permanent link">¶</a></h2>
<p>Usage:</p>
<div class="codehilite"><pre> <span class="n">tdbstats</span> <span class="o">--</span><span class="n">loc</span><span class="p">=</span><span class="n">DIR</span><span class="o">|--</span><span class="n">desc</span><span class="p">=</span><span class="n">assemblerFile</span> <span class="p">[</span><span class="o">--</span><span class="n">graph</span><span class="p">=</span><span class="n">URI</span><span class="p">]</span>
</pre></div>
-<h2 id="choosing-the-optimizer-strategy">Choosing the optimizer strategy</h2>
+<h2 id="choosing-the-optimizer-strategy">Choosing the optimizer strategy<a class="headerlink" href="#choosing-the-optimizer-strategy" title="Permanent link">¶</a></h2>
<p>TDB chooses the basic graph pattern optimizer by the presence of a
file in the database directory.</p>
<p>Optimizer control files</p>
-<table>
+<table class="table">
<thead>
<tr>
<th>File name</th>
@@ -224,7 +235,7 @@ and don't matter. They can be zero-lengt
over <code>fixed.opt</code> over <code>none.opt</code>.</p>
<p>The "no reorder" strategy can be useful in investigating the
effects. Filter placement still takes place.</p>
-<h2 id="filter-placement">Filter placement</h2>
+<h2 id="filter-placement">Filter placement<a class="headerlink" href="#filter-placement" title="Permanent link">¶</a></h2>
<p>One of the key optimization is of filtered basic graph patterns.
This optimization decides the best order of triple patterns in a
basic graph pattern and also the best point at which to apply the
@@ -233,21 +244,21 @@ filters within the triple patterns.</p>
immediately after all it's variables will be bound. Conjunctions at
the top level in filter expressions are broken into their
constituent pieces and placed separately.</p>
-<h2 id="investigating-what-is-going-on">Investigating what is going on</h2>
+<h2 id="investigating-what-is-going-on">Investigating what is going on<a class="headerlink" href="#investigating-what-is-going-on" title="Permanent link">¶</a></h2>
<p>TDB can optionally log query execution details. This is controlled
by two setting: the logging level and a context setting. Having two
setting means it is possible to log some queries and not others.</p>
-<p>The logger used is called <code>com.hp.hpl.jena.arq.exec</code>. Message are
+<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="c"># Execution 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="nb">info</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">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="nb">exec</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">arq</span><span class="p">.</span><span class="nb">info</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">arq</span><span class="p">.</span><span class="nb">exec</span><span class="p">=</span><span class="n">WARN</span>
</pre></div>
<p>In versions of TDB before 0.8.7, this is:</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">tdb</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">tdb</span><span class="p">.</span><span class="n">exec</span><span class="p">=</span><span class="n">INFO</span>
</pre></div>
@@ -275,8 +286,8 @@ local context.</p>
<p>TDB version 0.8.3 provides more fine-grained logging controls.
Instead of "true", which sets all levels, the following can be
used:</p>
-<h2 id="explanation-levels">Explanation Levels</h2>
-<table>
+<h2 id="explanation-levels">Explanation Levels<a class="headerlink" href="#explanation-levels" title="Permanent link">¶</a></h2>
+<table class="table">
<thead>
<tr>
<th>Level</th>
@@ -308,7 +319,7 @@ using the constants in <code>Explain.Inf
</pre></div>
-<h2 id="tdbquery-explain">tdbquery --explain</h2>
+<h2 id="tdbquery-explain">tdbquery --explain<a class="headerlink" href="#tdbquery-explain" title="Permanent link">¶</a></h2>
<p>The <code>--explain</code> parameter can be used for understanding the query execution.
An execution can detail the query, algebra and every point at which the
dataset is touched.</p>
@@ -330,11 +341,11 @@ the query execution.</p>
<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">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">log4j</span><span class="p">.</span><span class="n">PatternLayout</span>
<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="c"># the query execution logger</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="nb">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="nb">exec</span><span class="p">=</span><span class="n">INFO</span>
</pre></div>
-<p>It is important to create a <code>log4j.logger.com.hp.hpl.jena.arq.exec</code> logger,
+<p>It is important to create a <code>log4j.logger.org.apache.jena.arq.exec</code> logger,
as otherwise the command won't output the query execution details.</p>
<p>The command output will be similar to this one.</p>
<div class="codehilite"><pre><span class="mi">00</span><span class="o">:</span><span class="mi">05</span><span class="o">:</span><span class="mi">20</span> <span class="n">INFO</span> <span class="n">exec</span> <span class="o">::</span> <span class="n">QUERY</span>
@@ -350,7 +361,7 @@ as otherwise the command won't output th
<p>The logging operation can be expensive, so try to limit it when possible.</p>
-<h2 id="statistics-rule-file">Statistics Rule File</h2>
+<h2 id="statistics-rule-file">Statistics Rule File<a class="headerlink" href="#statistics-rule-file" title="Permanent link">¶</a></h2>
<p>The syntax is <code>SSE</code>, a simple format that uses
<a href="http://www.w3.org/TeamSubmission/turtle/" title="http://www.w3.org/TeamSubmission/turtle/">Turtle</a>-syntax
for RDF terms, keywords for other terms (for example, the stats
@@ -391,7 +402,7 @@ full).</p>
- they guide the optimizer in choosing one execution plan over
another. They do not have to exactly up-to-date providing the
relative counts are representative of the data.</p>
-<h3 id="statistics-rule-language">Statistics Rule Language</h3>
+<h3 id="statistics-rule-language">Statistics Rule Language<a class="headerlink" href="#statistics-rule-language" title="Permanent link">¶</a></h3>
<p>A rule is made up of a triple pattern and a count estimation for
the approximate number of matches that the pattern will yeild. This
does have to be exact, only an indication.</p>
@@ -414,7 +425,7 @@ executed after the pattern ?x :identi
<p>where <em>subj</em>, <em>pred</em>, <em>obj</em> are either RDF terms or one of the
tokens in the following table:</p>
-<h3 id="statistic-rule-tokens">Statistic rule tokens</h3>
+<h3 id="statistic-rule-tokens">Statistic rule tokens<a class="headerlink" href="#statistic-rule-tokens" title="Permanent link">¶</a></h3>
<p>Token | Description
TERM | Matches any RDF term (URI, Literal, Blank node)
VAR | Matches a named variable (e.g. ?x)
@@ -439,7 +450,7 @@ to match is taken.</p>
<p>BNODE does not match a blank node in the query (which is a variable
and matches VAR) but in the data, if it is known that slot of a
triple pattern is a blank node.</p>
-<h3 id="abbreviated-rule-form">Abbreviated Rule Form</h3>
+<h3 id="abbreviated-rule-form">Abbreviated Rule Form<a class="headerlink" href="#abbreviated-rule-form" title="Permanent link">¶</a></h3>
<p>While a complete rule is of the form:</p>
<div class="codehilite"><pre><span class="p">(</span> <span class="p">(</span><span class="n">subj</span> <span class="n">pred</span> <span class="n">obj</span><span class="p">)</span> <span class="n">count</span><span class="p">)</span>
</pre></div>
@@ -469,7 +480,7 @@ this optimization.</p>
<p>These number are merely convenient guesses and the application can
use the full rules language for detailed control of pattern
weightings.</p>
-<h3 id="defaults">Defaults</h3>
+<h3 id="defaults">Defaults<a class="headerlink" href="#defaults" title="Permanent link">¶</a></h3>
<p>A rule of the form:</p>
<div class="codehilite"><pre><span class="p">(</span><span class="n">other</span> <span class="n">number</span><span class="p">)</span>
</pre></div>
@@ -483,7 +494,7 @@ specifying -1 as the number. To declare
and no other predicates occur in the data, set this to 0 (zero)
because the triple pattern can not match the data (the predicate
does not occur).</p>
-<h2 id="generating-a-statistics-file">Generating a statistics file</h2>
+<h2 id="generating-a-statistics-file">Generating a statistics file<a class="headerlink" href="#generating-a-statistics-file" title="Permanent link">¶</a></h2>
<p>The command line <code>tdbstats</code> will scan the data and produce a rules
file based on the frequency of properties. The output should first
go to a temporary file, then that file moved into the database
@@ -491,7 +502,7 @@ location.</p>
<p>Practical tip: Don't feed the output of this command directly to
<em>location</em>/stats.opt because when the command starts it will find
an empty statistics file at that location.</p>
-<h3 id="generating-statistics-for-union-graphs">Generating statistics for Union Graphs</h3>
+<h3 id="generating-statistics-for-union-graphs">Generating statistics for Union Graphs<a class="headerlink" href="#generating-statistics-for-union-graphs" title="Permanent link">¶</a></h3>
<p>By default <code>tdbstats</code> only processes the default graph of a dataset. However
in some circumstances it is desirable to have the statistics generated
over Named Graphs in the dataset.</p>
@@ -505,7 +516,7 @@ union graph. This can be achieved using
<p>The <code>graph</code> parameter uses a built-in TDB <a href="/documentation/tdb/datasets.html#special-graph-names">special graph name</a></p>
-<h2 id="writing-rules">Writing Rules</h2>
+<h2 id="writing-rules">Writing Rules<a class="headerlink" href="#writing-rules" title="Permanent link">¶</a></h2>
<p>Rule for an inverse functional property:</p>
<div class="codehilite"><pre><span class="p">((</span><span class="n">VAR</span>Â <span class="p">:</span><span class="n">ifp</span> <span class="n">TERM</span><span class="p">)</span> 1 <span class="p">)</span>
</pre></div>