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 2012/01/13 13:11:14 UTC

svn commit: r802532 - in /websites/staging/jena/trunk/content/jena: documentation/io/ documentation/ontology/ documentation/query/ documentation/sdb/ documentation/serving_data/ documentation/tdb/ tutorials/

Author: buildbot
Date: Fri Jan 13 12:11:13 2012
New Revision: 802532

Log:
Staging update by buildbot for jena

Added:
    websites/staging/jena/trunk/content/jena/documentation/tdb/tdb_download.html
Modified:
    websites/staging/jena/trunk/content/jena/documentation/io/riot.html
    websites/staging/jena/trunk/content/jena/documentation/ontology/index.html
    websites/staging/jena/trunk/content/jena/documentation/query/algebra.html
    websites/staging/jena/trunk/content/jena/documentation/query/arq-query-eval.html
    websites/staging/jena/trunk/content/jena/documentation/query/cmds.html
    websites/staging/jena/trunk/content/jena/documentation/query/index.html
    websites/staging/jena/trunk/content/jena/documentation/query/sparql-remote.html
    websites/staging/jena/trunk/content/jena/documentation/sdb/javaapi.html
    websites/staging/jena/trunk/content/jena/documentation/serving_data/index.html
    websites/staging/jena/trunk/content/jena/documentation/tdb/assembler.html
    websites/staging/jena/trunk/content/jena/documentation/tdb/datasets.html
    websites/staging/jena/trunk/content/jena/documentation/tdb/dynamic_datasets.html
    websites/staging/jena/trunk/content/jena/documentation/tdb/index.html
    websites/staging/jena/trunk/content/jena/documentation/tdb/java_api.html
    websites/staging/jena/trunk/content/jena/documentation/tdb/tdb_transactions.html
    websites/staging/jena/trunk/content/jena/tutorials/sparql.html

Modified: websites/staging/jena/trunk/content/jena/documentation/io/riot.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/io/riot.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/io/riot.html Fri Jan 13 12:11:13 2012
@@ -178,9 +178,6 @@ is focused on input.</p>
 <li><a href="#contributions">Contributions</a></li>
 <li><a href="#support">Support</a></li>
 </ul>
-<h2 id="status">Status</h2>
-<p>RIOT is currently distributed as part of
-<a href="arq1.html" title="http://openjena.org/ARQ">ARQ</a>.</p>
 <h2 id="commands">Commands</h2>
 <p>There are Linux bash scripts in <code>/ARQ/bin</code> to run these commands, and
 indirection scripts that can be drop into any directory on the

Modified: websites/staging/jena/trunk/content/jena/documentation/ontology/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/ontology/index.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/ontology/index.html Fri Jan 13 12:11:13 2012
@@ -834,7 +834,7 @@ document may contain an individual of cl
 contains meta-data about that document itself. For example:</p>
 <div class="codehilite"><pre><span class="nt">&lt;owl:Ontology</span> <span class="na">rdf:about=</span><span class="s">&quot;&quot;</span><span class="nt">&gt;</span>
   <span class="nt">&lt;dc:creator</span> <span class="na">rdf:value=</span><span class="s">&quot;Ian Dickinson&quot;</span> <span class="nt">/&gt;</span>
-  <span class="nt">&lt;owl:imports</span> <span class="na">rdf:resource=</span><span class="s">&quot;http://openjena.org/examples/example-ont&quot;</span> <span class="nt">/&gt;</span>
+  <span class="nt">&lt;owl:imports</span> <span class="na">rdf:resource=</span><span class="s">&quot;http://jena.apache.org/examples/example-ont&quot;</span> <span class="nt">/&gt;</span>
 <span class="nt">&lt;/owl:Ontology&gt;</span>
 </pre></div>
 

Modified: websites/staging/jena/trunk/content/jena/documentation/query/algebra.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/query/algebra.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/query/algebra.html Fri Jan 13 12:11:13 2012
@@ -166,7 +166,7 @@
 <p>This page describes how to access and use expressions in the SPARQL
 algebra within ARQ. The definition of the SPARQL algebra is to be
 found in the SPARQL specification in
-<a href="http://www.w3.org/TR/rdf-sparql-query/#sparqlDefinition">section 12</a>.
+<a href="http://www.w3.org/TR/sparql11-query/#sparqlDefinition">section 12</a>.
 <a href="arq-query-eval.html">ARQ can be extended</a> to modify the evaluation
 of the algebra form to access difefrent graph storage
 implementations.</p>
@@ -182,7 +182,7 @@ the algebra form of a query:</p>
 </pre></div>
 
 
-<p>The syntax of the output is <a href="http://openjena.org/wiki/SSE">SSE</a>, a
+<p>The syntax of the output is <a href="../notes/sse.html">SSE</a>, a
 simple format for writing data structures involving RDF terms. It
 can be read back in again to produce the Java form of the algebra
 expression.</p>

Modified: websites/staging/jena/trunk/content/jena/documentation/query/arq-query-eval.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/query/arq-query-eval.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/query/arq-query-eval.html Fri Jan 13 12:11:13 2012
@@ -159,9 +159,8 @@
 modify query execution within ARQ. Through these mechanisms, ARQ
 can be used to query different graph implementations and to provide
 different query evaluation and optimization strategies for
-particular circumstances.  These mechanisms are used by
-<a href="../sdb/">SDB</a> and
-<a href="../tdb">TDB</a>.</p>
+particular circumstances. These mechanisms are used by
+<a href="../tdb">TDB</a> and <a href="../sdb/">SDB</a>.</p>
 <p>ARQ can be <a href="extension.html">extended in various ways</a> to
 incorporate custom code into a query.
 <a href="extension.html#valueFunctions">Custom filter functions</a> and
@@ -220,7 +219,7 @@ programmatically and the AST is not norm
 created, and in particular it is not modified by query execution.</p>
 <h3 id="algebra_generation">Algebra generation</h3>
 <p>ARQ generates the
-<a href="http://www.w3.org/TR/rdf-sparql-query/#sparqlQuery">SPARQL algebra</a>
+<a href="http://www.w3.org/TR/sparql11-query/#sparqlQuery">SPARQL algebra</a>
 expression for the query. After this a number of transformations
 can be applied (for example, identification of property functions)
 but the first step is the application of the algorithm in the
@@ -252,11 +251,12 @@ empty graph pattern).</p>
 </pre></div>
 
 
-<p>using the <a href="http://openjena.org/wiki/SSE">SSE syntax</a> to write out
+<p>using the <a href="../notes/sse.html">SSE syntax</a> to write out
 the internal data-structure for the algebra.</p>
 <p>The <a href="http://www.sparql.org/validator.html">online SPARQL validator</a>
 at <a href="http://sparql.org/">sparql.org</a> can be used to see the algebra
-expression for a SPARQL query.</p>
+expression for a SPARQL query. This validator is also include in 
+<a href="../serving_data/">Fuseki</a>.</p>
 <h3 id="high-level_optimization_and_transformations">High-Level Optimization and Transformations</h3>
 <p>There is a collection of transformations that can be applied to the
 algebra, such as replacing equality filters with a more efficient
@@ -288,7 +288,7 @@ other helper base class is <code>Transfo
 identify operation (returns the node supplied) for each transform
 operation.</p>
 <p>Operations can be printed out in
-<a href="http://openjena.org/wiki/SSE">SSE</a> syntax.  The Java <code>toString</code>
+<a href="../notes/sse.html">SSE</a> syntax. The Java <code>toString</code>
 method is overridden to provide pretty printing and the static
 methods in <code>WriterOp</code> provide output to various output objects like
 <code>java.io.OutputStream</code>.</p>
@@ -405,7 +405,7 @@ the <code>StageGenerator</code> mechanis
 requires less detail about the internal evaluation of the other
 SPARQL algebra operators.  This extension point corresponds to
 section 12.6
-"<a href="http://www.w3.org/TR/rdf-sparql-query/#sparqlBGPExtend">Extending SPARQL Basic Graph Matching</a>".</p>
+"<a href="http://www.w3.org/TR/sparql11-query/#sparqlBGPExtend">Extending SPARQL Basic Graph Matching</a>".</p>
 <p>Below is the default code to match a BGP from
 <code>OpExecutor.execute(OpBGP, QueryIterator)</code>. It merely calls fixed
 code in the <code>StageBuilder</code> class.The input is a stream of results
@@ -579,8 +579,7 @@ custom query engine and overriding <code
 
 <p>The extension may need to provide its own dataset implementation so
 that it can detect when queries are directed to its named graph
-storage. <a href="http://openjena.org/SDB">SDB</a> and
-<a href="http://openjena.org/TDB">TDB</a> are examples of this.</p>
+storage. <a href="../tdb/">TDB</a> and <a href="../sdb/">SDB</a> are examples of this.</p>
 <h2 id="mixed_graph_implementation_datasets">Mixed Graph Implementation Datasets</h2>
 <p>The dataset implementation used in normal operation does not work
 on quads but instead can provide a dataset with a collection of

Modified: websites/staging/jena/trunk/content/jena/documentation/query/cmds.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/query/cmds.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/query/cmds.html Fri Jan 13 12:11:13 2012
@@ -227,7 +227,7 @@ arguments are:</p>
 <li><code>--namedgraph FILE</code> : The data to query. It will be included as
     a named graph.</li>
 <li><code>--desc/--dataset</code>:
-    <a href="http://openjena.org/assembler/">Jena Assembler description</a> of the
+    <a href="../assembler/">Jena Assembler description</a> of the
     dataset to be queried, augmented with vocabulary for datasets, not
     just graphs. See <code>etc/</code> for examples.</li>
 </ul>
@@ -249,24 +249,15 @@ then your query was syntactically correc
 is broken.</p>
 <p>The command <code>arq.qparse --print=op --file &lt;i&gt;queryFile&lt;/i&gt;</code>will
 print the SPARQL algebra for the query in
-<a href="http://openjena.org/wiki/SSE">SSE format</a>.</p>
+<a href="../notes/sse.html">SSE format</a>.</p>
 <h3 id="arqupdate"><code>arq.update</code></h3>
-<p>Execute one or more
-<a href="http://openjena.org/~afs/SPARQL-Update.html">SPARQL/Update</a>
+<p>Execute <a href="http://www.w3.org/TR/sparql11-update/">SPARQL Update</a>
 requests.</p>
-<p>SPARQL/Update is an update language based on SPARQL syntax.</p>
 <ul>
 <li><code>--desc</code>:
-    <a href="http://openjena.org/assembler/">Jena Assembler description</a> of the
+    <a href="../assembler/">Jena Assembler description</a> of the
     dataset or graph store to be updated. See <code>etc/</code> for examples.</li>
 </ul>
-<h3 id="arqqtest"><code>arq.qtest</code></h3>
-<p>Execute a test set. In the ARQ directory, <code>qtest --all</code> runs the
-whole ARQ test suite.</p>
-<p>To run a specific test suite, use <code>qtest &lt;em&gt;manifest&lt;/em&gt;</code>. See
-the working group page
-<a href="http://www.w3.org/2001/sw/DataAccess/tests/">DAWG Testcases</a> for
-details.</p>
 <h3 id="arqrset"><code>arq.rset</code></h3>
 <p>Read and write result sets.</p>
 <p>In particular,</p>

Modified: websites/staging/jena/trunk/content/jena/documentation/query/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/query/index.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/query/index.html Fri Jan 13 12:11:13 2012
@@ -157,7 +157,7 @@
     <h1 class="title">ARQ - A SPARQL Processor for Jena</h1>
     <p>ARQ is a query engine for <a href="http://incubator.apache.org/jena">Jena</a> that
 supports the
-<a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL RDF Query language</a>.
+<a href="http://www.w3.org/TR/sparql11-query/">SPARQL RDF Query language</a>.
 SPARQL is the query language developed by the W3C
 <a href="http://www.w3.org/2001/sw/DataAccess/">RDF Data Access Working Group</a>.</p>
 <h2 id="arq_features">ARQ Features</h2>
@@ -241,7 +241,7 @@ support for the submission is for legacy
 </ul>
 <h2 id="w3c_documents">W3C Documents</h2>
 <ul>
-<li><a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL Query Language specification</a></li>
+<li><a href="http://www.w3.org/TR/sparql11-query/">SPARQL Query Language specification</a></li>
 <li><a href="http://www.w3.org/TR/rdf-sparql-XMLres/">SPARQL Query Results XML Format</a></li>
 <li><a href="http://www.w3.org/TR/rdf-sparql-protocol/">SPARQL Protocol</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/documentation/query/sparql-remote.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/query/sparql-remote.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/query/sparql-remote.html Fri Jan 13 12:11:13 2012
@@ -156,7 +156,7 @@
   <div id="content">
     <h1 class="title">ARQ - Querying Remote SPARQL Services</h1>
     <p>SPARQL is a
-<a href="http://www.w3.org/TR/rdf-sparql-query/">query language</a> and 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
 <a href="http://www.w3.org/TR/soap12-part0/">SOAP</a>.</p>

Modified: websites/staging/jena/trunk/content/jena/documentation/sdb/javaapi.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/sdb/javaapi.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/sdb/javaapi.html Fri Jan 13 12:11:13 2012
@@ -198,7 +198,7 @@ stores to be created.</p>
 managed by the <code>SDBFactory</code> which creates the necessary classes,
 such as Jena models and graphs.</p>
 <p>An object of class <code>DatasetStore</code> represents an
-<a href="http://www.w3.org/TR/rdf-sparql-query/#rdfDataset" title="http://www.w3.org/TR/rdf-sparql-query/#rdfDataset">RDF dataset</a>
+<a href="http://www.w3.org/TR/sparql11-query/#rdfDataset" title="http://www.w3.org/TR/rdf-sparql-query/#rdfDataset">RDF dataset</a>
 backed by an SDB store. Objects of this class trigger SPARQL
 queries being sent to SDB.</p>
 <p>The class <code>GraphSDB</code> provides the adapter between the standard Jena

Modified: websites/staging/jena/trunk/content/jena/documentation/serving_data/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/serving_data/index.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/serving_data/index.html Fri Jan 13 12:11:13 2012
@@ -291,18 +291,18 @@ is read-only.</p>
 <a href="http://logging.apache.org/log4j/">Log4J</a>
 for logging. There are two main logging channels:</p>
 <ol>
-<li>The general server messages : <code>org.openjena.fuseki.Server</code></li>
-<li>A channel for all request messages: <code>org.openjena.fuseki.Fuseki</code></li>
+<li>The general server messages: <code>org.apache.jena.fuseki.Server</code></li>
+<li>A channel for all request messages: <code>org.apache.jena.fuseki.Fuseki</code></li>
 </ol>
 <p>The default settings are (this is an extract of a log4j properties
 file):</p>
 <div class="codehilite"><pre><span class="c1"># Fuseki</span>
 <span class="c1"># Server log.</span>
-<span class="n">log4j</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">org</span><span class="o">.</span><span class="n">openjena</span><span class="o">.</span><span class="n">fuseki</span><span class="o">.</span><span class="n">Server</span><span class="o">=</span><span class="n">INFO</span>
+<span class="n">log4j</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">jena</span><span class="o">.</span><span class="n">fuseki</span><span class="o">.</span><span class="n">Server</span><span class="o">=</span><span class="n">INFO</span>
 <span class="c1"># Request log.</span>
-<span class="n">log4j</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">org</span><span class="o">.</span><span class="n">openjena</span><span class="o">.</span><span class="n">fuseki</span><span class="o">.</span><span class="n">Fuseki</span><span class="o">=</span><span class="n">INFO</span>
+<span class="n">log4j</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">jena</span><span class="o">.</span><span class="n">fuseki</span><span class="o">.</span><span class="n">Fuseki</span><span class="o">=</span><span class="n">INFO</span>
 <span class="c1"># Internal logs</span>
-<span class="n">log4j</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">org</span><span class="o">.</span><span class="n">openjena</span><span class="o">.</span><span class="n">fuseki</span><span class="o">=</span><span class="n">INFO</span>
+<span class="n">log4j</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">jena</span><span class="o">.</span><span class="n">fuseki</span><span class="o">=</span><span class="n">INFO</span>
 </pre></div>
 
 

Modified: websites/staging/jena/trunk/content/jena/documentation/tdb/assembler.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/tdb/assembler.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/tdb/assembler.html Fri Jan 13 12:11:13 2012
@@ -158,11 +158,10 @@
     <p><a href="/jena/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="http://www.joseki.org/" title="http://www.joseki.org/">Joseki</a> for
-datset and model descriptions, for example.</p>
+heavily in <a href="../serving_data/">Fuseki</a> for
+dataset and model descriptions, for example.</p>
 <p>SPARQL queries operate over an
-<a href="http://www.w3.org/TR/rdf-sparql-query/#rdfDataset" title="http://www.w3.org/TR/rdf-sparql-query/#rdfDataset">RDF dataset</a>,
+<a href="http://www.w3.org/TR/sparql11-query/#rdfDataset" title="http://www.w3.org/TR/rdf-sparql-query/#rdfDataset">RDF dataset</a>,
 which is a unnamed, default graph and zero or more named graphs.</p>
 <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
@@ -178,8 +177,7 @@ program code.</p>
 <li><a href="#RDFS">RDFS</a></li>
 </ul>
 <h2 id="dataset">Dataset</h2>
-<p>This is needed for use in <a href="fuseki.html" title="Fuseki">Fuseki</a> or
-<a href="http://www.joseki.org" title="http://www.joseki.org">Joseki</a>.</p>
+<p>This is needed for use in <a href="../serving_data/" title="Fuseki">Fuseki</a>.</p>
 <p>A dataset can be constructed in an assembler file:</p>
 <div class="codehilite"><pre><span class="nv">@prefix</span> <span class="n">tdb:</span>     <span class="sr">&lt;http://jena.hpl.hp.com/2008/tdb#&gt;</span> <span class="o">.</span>
 <span class="nv">@prefix</span> <span class="n">rdf:</span>     <span class="sr">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;</span> <span class="o">.</span>
@@ -249,8 +247,8 @@ union of the named graphs. This is done 
 
 <span class="o">[]</span> <span class="n">ja:loadClass</span> <span class="s">&quot;com.hp.hpl.jena.tdb.TDB&quot;</span> <span class="o">.</span>
 
- <span class="sr">&lt;#graph&gt;</span> <span class="n">rdf:type</span> <span class="n">tdb:GraphTDB</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">tdb:location</span> <span class="s">&quot;DB&quot;</span> <span class="o">.</span>
+<span class="sr">&lt;#graph&gt;</span> <span class="n">rdf:type</span> <span class="n">tdb:GraphTDB</span><span class="err"> </span><span class="p">;</span>
+    <span class="n">tdb:location</span> <span class="s">&quot;DB&quot;</span> <span class="o">.</span>
 </pre></div>
 
 
@@ -265,21 +263,21 @@ assembled with:</p>
 <span class="o">[]</span> <span class="n">ja:loadClass</span> <span class="s">&quot;com.hp.hpl.jena.tdb.TDB&quot;</span> <span class="o">.</span>
 
 <span class="sr">&lt;#graph&gt;</span> <span class="n">rdf:type</span> <span class="n">tdb:GraphTDB</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">tdb:location</span> <span class="s">&quot;DB&quot;</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">tdb:graphName</span> <span class="sr">&lt;http://example/graph1&gt;</span><span class="err"> </span><span class="p">;</span>
-     <span class="o">.</span>
+    <span class="n">tdb:location</span> <span class="s">&quot;DB&quot;</span><span class="err"> </span><span class="p">;</span>
+    <span class="n">tdb:graphName</span> <span class="sr">&lt;http://example/graph1&gt;</span><span class="err"> </span><span class="p">;</span>
+    <span class="o">.</span>
 </pre></div>
 
 
 <p>It is also possible to describe a graph, or named graph, in a
 dataset where the dataset description can now be shared:</p>
 <div class="codehilite"><pre><span class="sr">&lt;#graph2&gt;</span> <span class="n">rdf:type</span> <span class="n">tdb:GraphTDB</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">tdb:dataset</span> <span class="sr">&lt;#dataset&gt;</span><span class="err"> </span><span class="p">;</span>
-     <span class="o">.</span>
+    <span class="n">tdb:dataset</span> <span class="sr">&lt;#dataset&gt;</span><span class="err"> </span><span class="p">;</span>
+    <span class="o">.</span>
 
 <span class="sr">&lt;#dataset&gt;</span> <span class="n">rdf:type</span> <span class="n">tdb:DatasetTDB</span><span class="err"> </span><span class="p">;</span>
-   <span class="n">tdb:location</span> <span class="s">&quot;DB&quot;</span><span class="err"> </span><span class="p">;</span>
-   <span class="o">.</span>
+    <span class="n">tdb:location</span> <span class="s">&quot;DB&quot;</span><span class="err"> </span><span class="p">;</span>
+    <span class="o">.</span>
 </pre></div>
 
 
@@ -298,7 +296,8 @@ below:</p>
 <span class="n">tdb:DatasetTDB</span>  <span class="n">rdfs:subClassOf</span>  <span class="n">ja:RDFDataset</span> <span class="o">.</span>
 <span class="n">tdb:GraphTDB</span>    <span class="n">rdfs:subClassOf</span>  <span class="n">ja:Model</span> <span class="o">.</span>
 
-<span class="c1"># A dataset of one TDB-backed graph as the default graph and an in-memory graph as a named graph.</span>
+<span class="c1"># A dataset of one TDB-backed graph as the default graph and </span>
+<span class="c1"># an in-memory graph as a named graph.</span>
 <span class="sr">&lt;#dataset&gt;</span> <span class="n">rdf:type</span>      <span class="n">ja:RDFDataset</span><span class="err"> </span><span class="p">;</span>
      <span class="n">ja:defaultGraph</span> <span class="sr">&lt;#graph&gt;</span><span class="err"> </span><span class="p">;</span>
      <span class="n">ja:namedGraph</span>
@@ -325,7 +324,6 @@ below:</p>
 <p>which provides for integration with complex model setups, such as
 reasoners.</p>
 <h2 id="rdfs">RDFS</h2>
-<p>(to be finished)</p>
 <div class="codehilite"><pre><span class="nv">@prefix</span> <span class="n">tdb:</span>     <span class="sr">&lt;http://jena.hpl.hp.com/2008/tdb#&gt;</span> <span class="o">.</span>
 <span class="nv">@prefix</span> <span class="n">rdf:</span>     <span class="sr">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;</span> <span class="o">.</span>
 <span class="nv">@prefix</span> <span class="n">rdfs:</span>    <span class="sr">&lt;http://www.w3.org/2000/01/rdf-schema#&gt;</span> <span class="o">.</span>

Modified: websites/staging/jena/trunk/content/jena/documentation/tdb/datasets.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/tdb/datasets.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/tdb/datasets.html Fri Jan 13 12:11:13 2012
@@ -156,7 +156,7 @@
   <div id="content">
     <h1 class="title">TDB Datasets</h1>
     <p>An
-<a href="http://www.w3.org/TR/rdf-sparql-query/#rdfDataset" title="http://www.w3.org/TR/rdf-sparql-query/#rdfDataset">RDF Dataset</a>
+<a href="http://www.w3.org/TR/sparql11-query/#rdfDataset" title="http://www.w3.org/TR/rdf-sparql-query/#rdfDataset">RDF Dataset</a>
 is a collection of one, unnamed, default graph and zero, or more
 named graphs. In a SPARQL query, a query pattern is matched against
 the default graph unless the GRAPH keyword is applied to a

Modified: websites/staging/jena/trunk/content/jena/documentation/tdb/dynamic_datasets.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/tdb/dynamic_datasets.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/tdb/dynamic_datasets.html Fri Jan 13 12:11:13 2012
@@ -162,7 +162,7 @@ allows access to either a specific named
 graph in a dataset. This feature means that only specified named
 graphs are visible to the query.</p>
 <p>SPARQL has the concept of a
-<a href="http://www.w3.org/TR/rdf-sparql-query/#specifyingDataset">dataset description</a>.
+<a href="http://www.w3.org/TR/sparql11-query/#specifyingDataset">dataset description</a>.
 In a query string, the clauses for FROM and FROM NAMED specify the
 dataset. The FROM clauses define the graphs that are merged to form
 the default graph, and the FROM NAMED clauses identify the graphs

Modified: websites/staging/jena/trunk/content/jena/documentation/tdb/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/tdb/index.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/tdb/index.html Fri Jan 13 12:11:13 2012
@@ -157,24 +157,18 @@
     <h1 class="title">TDB</h1>
     <p>TDB is a component of
 <a href="http://incubator.apache.org/jena">Jena</a> for RDF storage
-and query, as well as the full range of Jena APIs.
-TDB can be used as a high performance RDF store
-on a single machine. This documentation describes the latest version, unless
+and query.  It support the full range of Jena APIs.
+TDB can be used as a high performance RDF store on a single machine.
+This documentation describes the latest version, unless
 otherwise noted.</p>
 <p>A TDB store can be accessed and managed with the provided command
 line scripts and via the Jena API.</p>
-<p>See also <a href="../fuseki">Fuseki</a> for a SPARQL server that
+<p>See also <a href="../serving_data/">Fuseki</a> for a SPARQL server that
 uses TDB for persistent storage and provides the SPARQL protocols
 for query, update and REST update over HTTP.</p>
-<h2 id="contents">Contents</h2>
-<ul>
-<li><a href="#documentation">Documentation</a></li>
-<li><a href="#downloads">Downloads</a></li>
-<li><a href="#subversion">Subversion</a></li>
-</ul>
 <h2 id="documentation">Documentation</h2>
 <ul>
-<li><a href="installation.html">TDB Installation</a></li>
+<li><a href="tdb_download.html">TDB Download and Installation</a></li>
 <li><a href="requirements.html">TDB Requirements</a></li>
 <li><a href="commands.html">Command line utilities</a></li>
 <li><a href="java_api.html">Using TDB from Java through the API</a></li>
@@ -187,13 +181,8 @@ for query, update and REST update over H
 <li><a href="architecture.html">TDB Design</a></li>
 <li><a href="optimizer.html">The TDB Optimizer</a></li>
 <li><a href="configuration.html">TDB Configuration</a></li>
-<li><a href="joseki_integration.html">Joseki Integration</a></li>
 <li><a href="tdb_transactions.html">Transactions</a></li>
 </ul>
-<h2 id="downloads">Downloads</h2>
-<p>See the <a href="/jena/downloads/">downloads page</a> for details.</p>
-<h2 id="subversion">Subversion</h2>
-<p><a href="https://svn.apache.org/repos/asf/incubator/jena/Jena2/TDB/">TDB Subversion repository</a></p>
   </div>
 
   <div id="footer">

Modified: websites/staging/jena/trunk/content/jena/documentation/tdb/java_api.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/tdb/java_api.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/tdb/java_api.html Fri Jan 13 12:11:13 2012
@@ -156,13 +156,10 @@
   <div id="content">
     <h1 class="title">TDB Java API</h1>
     <p>All the operations of the
-Jena API
-including the
-<a href="../query/">SPARQL query support</a>.
+Jena API including the
+<a href="../query/">SPARQL query and SPARQL Update</a> are supported.
 The application obtains a model or RDF datasets from TDB then uses
 it as for any other model or dataset.</p>
-<p>See also
-<a href="concurrency.html">Concurrency and Locking</a>.</p>
 <h2 id="contents">Contents</h2>
 <ul>
 <li><a href="#Constructing_a_model_or_dataset">Constructing a model or dataset</a><ul>
@@ -171,14 +168,14 @@ it as for any other model or dataset.</p
 </ul>
 </li>
 <li><a href="#Bulkloader">Bulkloader</a></li>
-<li><a href="#Caching_and_synchronization">Caching and synchronization</a></li>
 <li><a href="#Concurrency">Concurrency</a></li>
+<li><a href="#Caching_and_synchronization">Caching and synchronization</a></li>
 </ul>
+<p>TDB also supports <a href="transactions">tdb_transsactions.html</a>.</p>
 <h2 id="constructing_a_model_or_dataset">Constructing a model or dataset</h2>
 <p>The class <code>TDBFactory</code> contains the static factory methods for
 creating and connecting to a TDB-backed graph or an RDF dataset.
 Models and datasets should be closed after use.</p>
-<p>See also the examples in <code>src-examples</code>.</p>
 <p>An application can specify the model or dataset by:</p>
 <ol>
 <li>Giving a directory name</li>
@@ -208,7 +205,7 @@ forced to disk if they have not been wri
 <div class="codehilite"><pre>  <span class="sr">//</span> <span class="n">Assembler</span> <span class="n">way:</span> <span class="n">Make</span> <span class="n">a</span> <span class="n">TDB</span><span class="o">-</span><span class="n">back</span> <span class="n">Jena</span> <span class="n">model</span> <span class="n">in</span> <span class="n">the</span> <span class="n">named</span> <span class="n">directory</span><span class="o">.</span>
   <span class="sr">//</span> <span class="n">This</span> <span class="n">way</span><span class="p">,</span> <span class="n">you</span> <span class="n">can</span> <span class="n">change</span> <span class="n">the</span> <span class="n">model</span> <span class="n">being</span> <span class="n">used</span> <span class="n">without</span> <span class="n">changing</span> <span class="n">the</span> <span class="n">code</span><span class="o">.</span>
   <span class="sr">//</span> <span class="n">The</span> <span class="n">assembler</span> <span class="n">file</span> <span class="n">is</span> <span class="n">a</span> <span class="n">configuration</span> <span class="n">file</span><span class="o">.</span>
-  <span class="sr">//</span> <span class="n">The</span> <span class="n">same</span> <span class="n">assembler</span> <span class="n">description</span> <span class="n">will</span> <span class="n">work</span> <span class="n">in</span> <span class="n">Joseki</span><span class="o">.</span>
+  <span class="sr">//</span> <span class="n">The</span> <span class="n">same</span> <span class="n">assembler</span> <span class="n">description</span> <span class="n">will</span> <span class="n">work</span> <span class="n">in</span> <span class="n">Fuseki</span><span class="o">.</span>
   <span class="n">String</span> <span class="n">assemblerFile</span> <span class="o">=</span> <span class="s">&quot;Store/tdb-assembler.ttl&quot;</span><span class="err"> </span><span class="p">;</span>
   <span class="n">Model</span> <span class="n">model</span> <span class="o">=</span> <span class="n">TDBFactory</span><span class="o">.</span><span class="n">assembleModel</span><span class="p">(</span><span class="n">assemblerFile</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
   <span class="o">...</span>
@@ -228,29 +225,22 @@ for details.</p>
 <p>The bulkloader is a faster way to load data into an empty graph
 than just using the Jena update operations.</p>
 <p>It is accessed through the command line utility <code>tdbloader</code>.</p>
+<h2 id="concurrency">Concurrency</h2>
+<p>TDB support <a href="transactions">tdb_transactions.html</a>, which is the preferred 
+way to work.  It is possible to act directly on the dataset without transaction
+with a Multiple Reader or Single Writer (MRSW) policy for
+concurrency access. Applications are expected to adhere to this
+policy - it is not automatically checked.</p>
+<p>One gotcha is Java iterators. An iterator that is moving over the
+database is making read operations and no updates to the dataset
+are possible while an iterator is being used.</p>
 <h2 id="caching_and_synchronization">Caching and synchronization</h2>
-<p>TDB employs caching at various levels, from RDF terms to disk
+<p>If used non-transactionally, then the application must be aware of 
+the caching and synchronization used by TDB.  TDB employs caching at 
+various levels, from RDF terms to disk
 blocks. It is important to flush all caches to make the file state
 consistent with the cached states because some caches are
-write-behind so unwritten chnages may be held in-memory.</p>
-<p>Caches are flushes when a model or dataset is closed.</p>
-<div class="codehilite"><pre> <span class="n">Model</span> <span class="n">model</span> <span class="o">=</span> <span class="n">TDBFactory</span><span class="o">.</span><span class="n">createModel</span><span class="p">(</span><span class="n">disk</span> <span class="n">location</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
- <span class="o">...</span>
- <span class="n">model</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span><span class="err"> </span><span class="p">;</span>
-
- <span class="n">Dataset</span> <span class="n">dataset</span> <span class="o">=</span> <span class="n">TDBFactory</span><span class="o">.</span><span class="n">createDataset</span><span class="p">(</span><span class="n">disk</span> <span class="n">location</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
- <span class="o">...</span>
- <span class="n">dataset</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span><span class="err"> </span><span class="p">;</span>
-</pre></div>
-
-
-<p>In addition, while TDB does not support full transaction semantics,
-the <code>Model.commit</code> does provide for synchronising the in-memory and
-disk states.</p>
-<div class="codehilite"><pre> <span class="n">model</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span><span class="err"> </span><span class="p">;</span>
-</pre></div>
-
-
+write-behind so unwritten changes may be held in-memory.</p>
 <p>TDB provides an explicit call for model and dataset objects for
 synchronization with disk:</p>
 <div class="codehilite"><pre>  <span class="n">Model</span> <span class="n">model</span> <span class="o">=</span> <span class="o">...</span><span class="err"> </span><span class="p">;</span>
@@ -264,13 +254,6 @@ synchronization with disk:</p>
 <p>Any dataset or model can be passed to these functions - if they are
 not backed by TDB then no action is taken and the call merely
 returns without error.</p>
-<h2 id="concurrency">Concurrency</h2>
-<p>TDB provides a Multiple Reader or Single Writer (MRSW) policy for
-concurrency access. Applications are expected to adhere to this
-policy - it is not automatically checked.</p>
-<p>One gotcha is Java iterators. An iterator that is moving over the
-database is making read operations and no updates to the dataset
-are possible while an iterator is being used.</p>
   </div>
 
   <div id="footer">

Added: websites/staging/jena/trunk/content/jena/documentation/tdb/tdb_download.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/tdb/tdb_download.html (added)
+++ websites/staging/jena/trunk/content/jena/documentation/tdb/tdb_download.html Fri Jan 13 12:11:13 2012
@@ -0,0 +1,38 @@
+Title: TDB Download and Installation
+
+## TDB Downloads
+
+Currently, TDB is a separate download from the main release of Jena. 
+The TDB download includes a compatible copy of Jena.
+
+See the [Jena downloads page](/jena/downloads/) for details of Jena download area.
+
+TDB is distributed as a complete download and also via Apache Maven
+(groupId `or.apache.jena`, artifact `jena-tdb`).
+
+After downloading a TDB distribution, place *all* the jars in the
+`lib/` directory on the classpath. TDB itself is a single jar, the
+other jars in `lib/` are a consistent set of dependencies 
+requires at runtime.
+
+## Maven
+
+     <dependency>
+        <groupId>org.apache.jena</groupId>
+        <artifactId>jena-tdb</artifactId>
+        <version>VER-incubating</version>
+    </dependency>
+
+where <i>VER</i> is the version number.  This will pull-in the relevant version of other 
+Jena components.
+
+## Development builds
+
+Development builds are avilable from 
+[Apache Snapshot repository org/apache/jena/jena-tdb/]
+(https://repository.apache.org/content/repositories/snapshots/org/apache/jena/jena-tdb/).
+
+## Subversion
+
+[TDB Subversion repository](https://svn.apache.org/repos/asf/incubator/jena/Jena2/TDB/)
+

Modified: websites/staging/jena/trunk/content/jena/documentation/tdb/tdb_transactions.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/tdb/tdb_transactions.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/tdb/tdb_transactions.html Fri Jan 13 12:11:13 2012
@@ -177,9 +177,7 @@ for reverting a database to 0.8.X.</p>
 <li><a href="#bulk_loading">Bulk loading</a></li>
 </ul>
 <h2 id="status">Status</h2>
-<p>Currently <em>in development</em>.</p>
-<p><a href="http://www.openjena.org/repo-dev/com/hp/hpl/jena/tx-tdb/">Development snapshot builds</a></p>
-<p><a href="https://svn.apache.org/repos/asf/incubator/jena/Experimental/TxTDB/trunk/">Source code repository</a></p>
+<p>Transactions are part of the 0.9.0 release.</p>
 <h2 id="overview">Overview</h2>
 <p>The transaction mechanism in TDB is based on
 <a href="http://en.wikipedia.org/wiki/Write-ahead_logging">write-ahead-logging</a>.
@@ -203,13 +201,11 @@ Graph Store Update as well as the full J
 <a href="http://en.wikipedia.org/wiki/Isolation_(database_systems)#SERIALIZABLE">Serializable</a>
 transactions, the highest
 <a href="http://en.wikipedia.org/wiki/Isolation_(database_systems)">isolation level</a>.</p>
-<p>The transaction action mechanism is not designed for large-scale
-database changes.</p>
 <h2 id="limitations">Limitations</h2>
 <p>(some of these limitations may be removed in later versions)</p>
 <ul>
 <li>Bulk loads: the TDB bulk loader is not transactional</li>
-<li>No nested update transactions.</li>
+<li><a href="http://en.wikipedia.org/wiki/Nested_transaction">Nested write transactions</a> are not supported.</li>
 <li>Single active writer: no multiple concurrent update
     transactions.</li>
 <li>Some active transaction state is held exclusively in-memory,
@@ -221,67 +217,118 @@ database changes.</p>
 many updates, the system will consume a lot of temporary
 resources.</p>
 <h2 id="api_for_transactions">API for Transactions</h2>
-<p>[Development]</p>
-<p><em>The API currently relies on a mix of TDB-specific low-level operations and general high-level operations. This will be sorted out to be uniform.</em></p>
+<p>TDB supports the general Jena API for transactions on RDF datasets 
+(introduced in Jena 2.7.0, ARQ 2.9.0).  Not all storage systems support 
+transactions.</p>
+<p>A TDB-backed dataset can be used non-transactionally but once used in a transaction, 
+it should be used transactionally after that.</p>
 <h3 id="read_transactions">Read transactions</h3>
 <p>These are used for SPARQL queries and code using the Jena API
-actions that do not change the data.</p>
-<h3 id="write_transactions">Write transactions</h3>
-<p>These are used for SPARQL queries, SPARQL updates and any Jena API
-actions.</p>
-<p>While it is possible to shared a write transaction between multiple
-threads, this is not encouraged. Applications needing to do so must
-ensure that within the transactions, all threads are acting
-"multiple reader OR single writer". Changes the data within the
-transaction must be executed one at a time.</p>
-<h2 id="examples">Examples</h2>
-<h3 id="read_transaction">Read Transaction</h3>
-<div class="codehilite"><pre> <span class="n">DatasetGraphTxn</span> <span class="n">dsg</span> <span class="o">=</span> <span class="n">sConn</span><span class="o">.</span><span class="n">begin</span><span class="p">(</span><span class="n">ReadWrite</span><span class="o">.</span><span class="n">READ</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
+actions that do not change the data.  The general pattern is:</p>
+<div class="codehilite"><pre><span class="n">dataset</span><span class="o">.</span><span class="n">begin</span><span class="p">(</span><span class="n">ReadWrite</span><span class="o">.</span><span class="n">READ</span><span class="p">)</span> <span class="p">;</span>
+<span class="n">try</span> <span class="p">{</span>
+  <span class="o">...</span>
+<span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">dataset</span><span class="o">.</span><span class="n">end</span><span class="p">()</span> <span class="p">;</span> <span class="p">}</span>
+</pre></div>
+
+
+<p>The <code>dataset.end()</code> declares the end of the read transaction.  Applications may also call
+<code>dataset.commit()</code> or <code>dataset.abort()</code> which all have the same effect for a read transaction.</p>
+<div class="codehilite"><pre> <span class="n">Dataset</span> <span class="n">dataset</span> <span class="o">=</span>  <span class="o">...</span> <span class="p">;</span>
+ <span class="n">dataset</span><span class="o">.</span><span class="n">begin</span><span class="p">(</span><span class="n">ReadWrite</span><span class="o">.</span><span class="n">READ</span><span class="p">)</span> <span class="p">;</span>
+
  <span class="n">try</span> <span class="p">{</span>
-     <span class="n">Dataset</span> <span class="n">ds</span> <span class="o">=</span> <span class="n">DatasetFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">dsg</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">QueryExecution</span> <span class="n">qExec</span> <span class="o">=</span> <span class="n">QueryExecutionFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="s">&quot;SELECT * { ?s ?p ?o} LIMIT 10&quot;</span><span class="p">,</span> <span class="n">ds</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">ResultSet</span> <span class="n">rs</span> <span class="o">=</span> <span class="n">qExec</span><span class="o">.</span><span class="n">execSelect</span><span class="p">()</span><span class="err"> </span><span class="p">;</span>
+     <span class="n">QueryExecution</span> <span class="n">qExec</span> <span class="o">=</span> <span class="n">QueryExecutionFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="s">&quot;SELECT * {?s ?p ?o} LIMIT 10&quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="p">)</span> <span class="p">;</span>
+     <span class="n">ResultSet</span> <span class="n">rs</span> <span class="o">=</span> <span class="n">qExec</span><span class="o">.</span><span class="n">execSelect</span><span class="p">()</span> <span class="p">;</span>
      <span class="n">try</span> <span class="p">{</span>
-         <span class="n">ResultSetFormatter</span><span class="o">.</span><span class="n">out</span><span class="p">(</span><span class="n">rs</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">qExec</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span><span class="err"> </span><span class="p">;</span> <span class="p">}</span>
+         <span class="n">ResultSetFormatter</span><span class="o">.</span><span class="n">out</span><span class="p">(</span><span class="n">rs</span><span class="p">)</span> <span class="p">;</span>
+     <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">qExec</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span> <span class="p">;</span> <span class="p">}</span>
 
      <span class="sr">//</span> <span class="n">Another</span> <span class="n">query</span> <span class="o">-</span> <span class="n">same</span> <span class="n">view</span> <span class="n">of</span> <span class="n">the</span> <span class="n">data</span><span class="o">.</span>
-     <span class="n">qExec</span> <span class="o">=</span> <span class="n">QueryExecutionFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="s">&quot;SELECT * { ?s ?p ?o} OFFSET 10 LIMIT 10&quot;</span><span class="p">,</span> <span class="n">ds</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">rs</span> <span class="o">=</span> <span class="n">qExec</span><span class="o">.</span><span class="n">execSelect</span><span class="p">()</span><span class="err"> </span><span class="p">;</span>
+     <span class="n">qExec</span> <span class="o">=</span> <span class="n">QueryExecutionFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="s">&quot;SELECT * {?s ?p ?o} OFFSET 10 LIMIT 10&quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="p">)</span> <span class="p">;</span>
+     <span class="n">rs</span> <span class="o">=</span> <span class="n">qExec</span><span class="o">.</span><span class="n">execSelect</span><span class="p">()</span> <span class="p">;</span>
      <span class="n">try</span> <span class="p">{</span>
-         <span class="n">ResultSetFormatter</span><span class="o">.</span><span class="n">out</span><span class="p">(</span><span class="n">rs</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">qExec</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span><span class="err"> </span><span class="p">;</span> <span class="p">}</span>
- <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">dsg</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span><span class="err"> </span><span class="p">;</span> <span class="p">}</span>
+         <span class="n">ResultSetFormatter</span><span class="o">.</span><span class="n">out</span><span class="p">(</span><span class="n">rs</span><span class="p">)</span> <span class="p">;</span>
+     <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">qExec</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span> <span class="p">;</span> <span class="p">}</span>
+ <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">dataset</span><span class="o">.</span><span class="n">end</span><span class="p">()</span> <span class="p">;</span> <span class="p">}</span>
+</pre></div>
+
+
+<h3 id="write_transactions">Write transactions</h3>
+<p>These are used for SPARQL queries, SPARQL updates and any Jena API
+actions that modify the data.  Beware that large <code>model.read</code> 
+operations consume large amounts of temporary space.</p>
+<p>The general pattern is:</p>
+<div class="codehilite"><pre><span class="n">dataset</span><span class="o">.</span><span class="n">begin</span><span class="p">(</span><span class="n">ReadWrite</span><span class="o">.</span><span class="n">WRITE</span><span class="p">)</span> <span class="p">;</span>
+<span class="n">try</span> <span class="p">{</span>
+  <span class="o">...</span>
+  <span class="n">dataset</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span> <span class="p">;</span>
+<span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> 
+   <span class="n">dataset</span><span class="o">.</span><span class="n">end</span><span class="p">()</span> <span class="p">;</span> 
+<span class="p">}</span>
 </pre></div>
 
 
-<h3 id="write_transaction">Write Transaction</h3>
-<div class="codehilite"><pre> <span class="n">DatasetGraphTxn</span> <span class="n">dsg</span> <span class="o">=</span> <span class="n">sConn</span><span class="o">.</span><span class="n">begin</span><span class="p">(</span><span class="n">ReadWrite</span><span class="o">.</span><span class="n">WRITE</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
+<p>The  <code>dataset.end()</code> will abort the transaction is there was no call to
+<code>dataset.commit()</code> or <code>dataset.abort()</code> inside the write transaction.</p>
+<p>Once <code>dataset.commit()</code> or <code>dataset.abort()</code> is called, the application
+needs to start a new transaction to perform further operations on the 
+dataset.</p>
+<div class="codehilite"><pre> <span class="n">Dataset</span> <span class="n">dataset</span> <span class="o">=</span> <span class="o">...</span> <span class="p">;</span>
+ <span class="n">dataset</span><span class="o">.</span><span class="n">begin</span><span class="p">(</span><span class="n">ReadWrite</span><span class="o">.</span><span class="n">WRITE</span><span class="p">)</span> <span class="p">;</span>
+
  <span class="n">try</span> <span class="p">{</span>
-     <span class="n">Dataset</span> <span class="n">ds</span> <span class="o">=</span> <span class="n">DatasetFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">dsg</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="sr">//</span> <span class="n">Query</span>
-     <span class="n">QueryExecution</span> <span class="n">qExec</span> <span class="o">=</span> <span class="n">QueryExecutionFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="s">&quot;SELECT * { ?s ?p ?o} LIMIT 10&quot;</span><span class="p">,</span> <span class="n">ds</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">ResultSet</span> <span class="n">rs</span> <span class="o">=</span> <span class="n">qExec</span><span class="o">.</span><span class="n">execSelect</span><span class="p">()</span><span class="err"> </span><span class="p">;</span>
+     <span class="n">Model</span> <span class="n">model</span> <span class="o">=</span> <span class="n">dataset</span><span class="o">.</span><span class="n">getDefaultModel</span><span class="p">()</span> <span class="p">;</span>
+     <span class="sr">//</span> <span class="n">API</span> <span class="n">calls</span> <span class="n">to</span> <span class="n">a</span> <span class="n">model</span> <span class="n">in</span> <span class="n">the</span> <span class="n">dataset</span>
+
+     <span class="n">model</span><span class="o">.</span><span class="n">add</span><span class="p">(</span> <span class="o">...</span> <span class="p">)</span>
+
+     <span class="sr">//</span> <span class="n">A</span> <span class="n">SPARQL</span> <span class="n">query</span> <span class="n">will</span> <span class="n">see</span> <span class="n">the</span> <span class="k">new</span> <span class="n">statement</span> <span class="n">added</span><span class="o">.</span>
+     <span class="n">QueryExecution</span> <span class="n">qExec</span> <span class="o">=</span> <span class="n">QueryExecutionFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span>
+           <span class="s">&quot;SELECT (count(*) AS ?count) { ?s ?p ?o} LIMIT 10&quot;</span><span class="p">,</span> 
+           <span class="n">dataset</span><span class="p">)</span> <span class="p">;</span>
+     <span class="n">ResultSet</span> <span class="n">rs</span> <span class="o">=</span> <span class="n">qExec</span><span class="o">.</span><span class="n">execSelect</span><span class="p">()</span> <span class="p">;</span>
      <span class="n">try</span> <span class="p">{</span>
-         <span class="n">ResultSetFormatter</span><span class="o">.</span><span class="n">out</span><span class="p">(</span><span class="n">rs</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">qExec</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span><span class="err"> </span><span class="p">;</span> <span class="p">}</span>
+         <span class="n">ResultSetFormatter</span><span class="o">.</span><span class="n">out</span><span class="p">(</span><span class="n">rs</span><span class="p">)</span> <span class="p">;</span>
+     <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">qExec</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span> <span class="p">;</span> <span class="p">}</span>
 
-     <span class="sr">//</span> <span class="n">Update</span>
-     <span class="n">UpdateRequest</span> <span class="n">request</span> <span class="o">=</span> <span class="n">UpdateFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="s">&quot;PREFIX : &lt;http://example/&gt; INSERT DATA { :s :p :o}&quot;</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">UpdateProcessor</span> <span class="n">proc</span> <span class="o">=</span> <span class="n">UpdateExecutionFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">dsg</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
-     <span class="n">proc</span><span class="o">.</span><span class="n">execute</span><span class="p">()</span><span class="err"> </span><span class="p">;</span>
-     <span class="sr">//</span> <span class="n">A</span> <span class="n">query</span> <span class="n">here</span> <span class="n">will</span> <span class="n">see</span> <span class="n">the</span> <span class="n">inserted</span> <span class="n">data</span><span class="o">.</span>
-     <span class="n">dsg</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span><span class="err"> </span><span class="p">;</span>
- <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">dsg</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span><span class="err"> </span><span class="p">;</span> <span class="p">}</span> <span class="sr">//</span> <span class="n">WARNING</span> <span class="k">if</span> <span class="nb">no</span> <span class="n">commit</span> <span class="ow">or</span> <span class="n">abort</span><span class="o">.</span>
+     <span class="sr">//</span> <span class="o">...</span> <span class="n">perform</span> <span class="n">a</span> <span class="n">SPARQL</span> <span class="n">Update</span>
+     <span class="n">GraphStore</span> <span class="n">graphStore</span> <span class="o">=</span> <span class="n">GraphStoreFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">dataset</span><span class="p">)</span> <span class="p">;</span>
+     <span class="n">String</span> <span class="n">sparqlUpdateString</span> <span class="o">=</span> <span class="n">StrUtils</span><span class="o">.</span><span class="n">strjoinNL</span><span class="p">(</span>
+          <span class="s">&quot;PREFIX . &lt;http://example/&gt;&quot;</span><span class="p">,</span>
+          <span class="s">&quot;INSERT { :s :p ?now } WHERE { BIND(now() AS ?now) }&quot;</span>
+          <span class="p">)</span> <span class="p">;</span>
+
+     <span class="n">UpdateRequest</span> <span class="n">request</span> <span class="o">=</span> <span class="n">UpdateFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">sparqlUpdateString</span><span class="p">)</span> <span class="p">;</span>
+     <span class="n">UpdateProcessor</span> <span class="n">proc</span> <span class="o">=</span> <span class="n">UpdateExecutionFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">graphStore</span><span class="p">)</span> <span class="p">;</span>
+     <span class="n">proc</span><span class="o">.</span><span class="n">execute</span><span class="p">()</span> <span class="p">;</span>
+
+     <span class="sr">//</span> <span class="n">Finally</span><span class="p">,</span> <span class="n">commit</span> <span class="n">the</span> <span class="n">transaction</span><span class="o">.</span> 
+     <span class="n">dataset</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span> <span class="p">;</span>
+     <span class="sr">//</span> <span class="n">Or</span> <span class="n">call</span> <span class="o">.</span><span class="n">abort</span><span class="p">()</span>
+    <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> 
+        <span class="n">dataset</span><span class="o">.</span><span class="n">end</span><span class="p">()</span> <span class="p">;</span> 
+    <span class="p">}</span>
 </pre></div>
 
 
-<h3 id="nesting_transactions">Nesting Transactions</h3>
-<p><a href="http://en.wikipedia.org/wiki/Nested_transaction">Nested write transactions</a>
-are not supported.</p>
-<p>A read transaction may be started inside a write transaction - this
-behaves like a top-level read transaction over the state of the
-database before the write transaction started.</p>
+<h3 id="multi-threaded_use">Multi-threaded use</h3>
+<p>While it is possible to shared a write transaction between multiple
+threads, this is not encouraged. Applications needing to do so must
+ensure that within the transaction, all threads are acting
+"multiple reader OR single writer". Change to the data within the
+transaction must be executed one at a time.</p>
+<h2 id="multi_jvm">Multi JVM</h2>
+<p>Multiple applications, running in multiple JVMs, using the same
+file databases is not supported. There must be a single JVM
+controlling the database directory and files.</p>
+<p>Use <a href="../serving_data/">Fuseki</a> to provide a
+database server for multiple applications. Fuseki supports 
+<a href="http://www.w3.org/TR/sparql11-query/">SPARQL Query</a>,
+<a href="http://www.w3.org/TR/sparql11-update/">SPARQL Update</a> and the
+<a href="http://www.w3.org/TR/sparql11-http-rdf-update/">SPARQL Graph Store protocol</a>.</p>
+<h2 id="bulk_loading">Bulk loading</h2>
+<p>The bulk loader is not transactional.</p>
 <h2 id="migration_from_tdb_08x">Migration from TDB 0.8.X</h2>
 <p>The database files used by TDB 0.9.0 are fully compatible with TDB
 0.8.X; there are no file format changes and application code using
@@ -296,15 +343,6 @@ before without transactions.</p>
 <p>A database can be reverted to TDB 0.8.X by running <code>tdb.tdbrecover</code>
 - this program recovers any committed transaction with pending
 actions. The database can then be used with TDB 0.8.X.</p>
-<h2 id="multi_jvm">Multi JVM</h2>
-<p>Multiple applications, running in multiple JVMs, using the same
-file databases is not supported. There must be a single JVM
-controlling the database directory and files.</p>
-<p>Use <a href="http://openjena.org/wiki/Fuseki">Fuseki</a> to provide a
-database server for multiple applications. Fuseki supports SPARQL
-Query, SPARQL Update, SPARQL Graph Store Update.</p>
-<h2 id="bulk_loading">Bulk loading</h2>
-<p>The bulk loader is not transactional.</p>
   </div>
 
   <div id="footer">

Modified: websites/staging/jena/trunk/content/jena/tutorials/sparql.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/tutorials/sparql.html (original)
+++ websites/staging/jena/trunk/content/jena/tutorials/sparql.html Fri Jan 13 12:11:13 2012
@@ -161,7 +161,7 @@ language through examples but does not a
 <p>If you are looking for a short introduction to SPARQL and Jena try
 <a href="http://www.ibm.com/developerworks/xml/library/j-sparql/">Search RDF data with SPARQL</a></p>
 <p>SPARQL is a
-<a href="http://www.w3.org/TR/rdf-sparql-query/">query language</a> and a
+<a href="http://www.w3.org/TR/sparql11-query/">query language</a> and a
 <a href="http://www.w3.org/TR/rdf-sparql-protocol/">protocol</a> for accessing
 RDF designed by the
 <a href="http://www.w3.org/2001/sw/DataAccess/">W3C RDF Data Access Working Group</a>. </p>
@@ -187,7 +187,7 @@ information, in the form of a set of bin
 <h2 id="other_material">Other Material</h2>
 <ul>
 <li>The
-    <a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL query language definition document</a>
+    <a href="http://www.w3.org/TR/sparql11-query/">SPARQL query language definition document</a>
     itself contains many examples.</li>
 <li><a href="http://www.ibm.com/developerworks/xml/library/j-sparql/">Search RDF data with SPARQL</a>
     (by Phil McCarthy) - article published on IBM developer works about