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 2018/12/17 14:46:01 UTC

svn commit: r1037846 - in /websites/staging/jena/trunk/content: ./ documentation/serving_data/fuseki1.html

Author: buildbot
Date: Mon Dec 17 14:46:01 2018
New Revision: 1037846

Log:
Staging update by buildbot for jena

Added:
    websites/staging/jena/trunk/content/documentation/serving_data/fuseki1.html
Modified:
    websites/staging/jena/trunk/content/   (props changed)

Propchange: websites/staging/jena/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Dec 17 14:46:01 2018
@@ -1 +1 @@
-1849100
+1849101

Added: websites/staging/jena/trunk/content/documentation/serving_data/fuseki1.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/serving_data/fuseki1.html (added)
+++ websites/staging/jena/trunk/content/documentation/serving_data/fuseki1.html Mon Dec 17 14:46:01 2018
@@ -0,0 +1,622 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <title>Apache Jena - Fuseki: serving RDF data over HTTP</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+  <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
+  <link href="/css/bootstrap-extension.css" rel="stylesheet" type="text/css">
+  <link href="/css/jena.css" rel="stylesheet" type="text/css">
+  <link rel="shortcut icon" href="/images/favicon.ico" />
+  
+  <script
+        src="https://code.jquery.com/jquery-2.2.4.min.js"
+        integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
+        crossorigin="anonymous"></script>
+  <script src="/js/jena-navigation.js" type="text/javascript"></script>
+  <script src="/js/bootstrap.min.js" type="text/javascript"></script>
+  <script src="/js/breadcrumbs.js" type="text/javascript"></script>
+
+  <script src="/js/improve.js" type="text/javascript"></script>
+
+  
+  <!-- Uncomment to enable code coloring <link href="/css/codehilite.css" rel="stylesheet" type="text/css"> -->
+
+</head>
+
+<body>
+
+
+
+<nav class="navbar navbar-default" role="navigation">
+<div class="container">
+  <div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+    <a class="navbar-brand" href="/index.html">
+    <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
+  </div>
+ 
+  <div class="collapse navbar-collapse navbar-ex1-collapse">
+    <ul class="nav navbar-nav">
+              <li id="homepage"><a href="/index.html"><span class="glyphicon glyphicon-home"></span> Home</a></li>
+              <li id="download"><a href="/download/index.cgi"><span class="glyphicon glyphicon-download-alt"></span> Download</a></li>
+              <li class="dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Learn <b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li class="dropdown-header">Tutorials</li>
+                  <li><a href="/tutorials/index.html">Overview</a></li>
+                  <li><a href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
+                  <li><a href="/tutorials/sparql.html">SPARQL tutorial</a></li>
+                  <li><a href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
+                  <li><a href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
+                  <li><a href="/documentation/notes/index.html">How-To's</a></li>
+                  <li class="divider"></li>
+                  <li class="dropdown-header">References</li>
+                  <li><a href="/documentation/index.html">Overview</a></li>
+                  <li><a href="/documentation/javadoc/">Javadoc</a></li>
+                  <li><a href="/documentation/rdf/index.html">RDF API</a></li>
+                  <li><a href="/documentation/io/">RDF I/O</a></li>
+                  <li><a href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
+                  <li><a href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
+                  <li><a href="/documentation/hadoop/index.html">Elephas - tools for RDF on Hadoop</a></li>
+                  <li><a href="/documentation/query/text-query.html">Text Search</a></li>
+                  <li><a href="/documentation/tdb/index.html">TDB</a></li>
+                  <li><a href="/documentation/sdb/index.html">SDB</a></li>
+                  <li><a href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
+                  <li><a href="/documentation/fuseki2/index.html">Fuseki</a></li>
+                  <li><a href="/documentation/permissions/index.html">Permissions</a></li>
+                  <li><a href="/documentation/assembler/index.html">Assembler</a></li>
+                  <li><a href="/documentation/ontology/">Ontology API</a></li>
+                  <li><a href="/documentation/inference/index.html">Inference API</a></li>
+                  <li><a href="/documentation/tools/index.html">Command-line tools</a></li>
+                  <li><a href="/documentation/extras/index.html">Extras</a></li>
+                </ul>
+              </li>
+
+              <li class="drop down">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Javadoc <b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/documentation/javadoc/jena/">Jena Core</a></li>
+                  <li><a href="/documentation/javadoc/arq/">ARQ</a></li>
+                  <li><a href="/documentation/javadoc/tdb/">TDB</a></li>
+                  <li><a href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
+                  <li><a href="/documentation/javadoc/elephas/">Elephas</a></li>
+                  <li><a href="/documentation/javadoc/text/">Text Search</a></li>
+                  <li><a href="/documentation/javadoc/spatial/">Spatial Search</a></li>
+                  <li><a href="/documentation/javadoc/permissions/">Permissions</a></li>
+                  <li><a href="/documentation/javadoc/jdbc/">JDBC</a></li>
+                  <li><a href="/documentation/javadoc/">All Javadoc</a></li>
+                </ul>
+              </li>
+
+              <li id="ask"><a href="/help_and_support/index.html"><span class="glyphicon glyphicon-question-sign"></span> Ask</a></li>
+              
+              <li class="dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-bullhorn"></span> Get involved <b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/getting_involved/index.html">Contribute</a></li>
+                  <li><a href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
+                  <li class="divider"></li>
+                  <li class="dropdown-header">Project</li>
+                  <li><a href="/about_jena/about.html">About Jena</a></li>
+                  <li><a href="/about_jena/roadmap.html">Roadmap</a></li>
+                  <li><a href="/about_jena/architecture.html">Architecture</a></li>
+                  <li><a href="/about_jena/team.html">Project team</a></li>
+                  <li><a href="/about_jena/contributions.html">Related projects</a></li>
+                  <li class="divider"></li>
+                  <li class="dropdown-header">ASF</li>
+                  <li><a href="http://www.apache.org/">Apache Software Foundation</a></li>
+                  <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                  <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                  <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+                  <li><a href="http://www.apache.org/security/">Security</a></li>
+                </ul>
+              </li>
+
+              <li id="edit"><a href="javascript:improveThisPage(location.href);" title="Improve this Page (Use username anonymous and empty password)"><span class="glyphicon glyphicon-pencil"></span> Improve this Page</a></li>   
+    </ul>
+  </div>
+</div>
+</nav>
+
+
+<div class="container">
+    <div class="row">
+    <div class="col-md-12">
+    <div id="breadcrumbs"></div>
+    <h1 class="title">Fuseki: serving RDF data over HTTP</h1>
+  <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<hr />
+<blockquote>
+<p>This page covers Fuseki v1.
+Fuseki1 is deprecated and has been retired. 
+The last release of Jena with this module is Jena 3.9.0.
+See <a href="https://github.com/apache/jena/tree/master/fuseki1">jena-fuseki1/README.md</a>.
+This is the original documentation.</p>
+</blockquote>
+<hr />
+<h2 id="see-the-fuseki2-documentation">&gt; See the <a href="/documentation/fuseki2/">Fuseki2 documentation</a>.<a class="headerlink" href="#see-the-fuseki2-documentation" title="Permanent link">&para;</a></h2>
+<p>Fuseki is a SPARQL server. It provides REST-style SPARQL HTTP Update, SPARQL Query,
+and SPARQL Update using the SPARQL protocol over HTTP.</p>
+<p>The relevant SPARQL standards are:</p>
+<ul>
+<li><a href="http://www.w3.org/TR/sparql11-query/">SPARQL 1.1 Query</a></li>
+<li><a href="http://www.w3.org/TR/sparql11-update/">SPARQL 1.1 Update</a></li>
+<li><a href="http://www.w3.org/TR/sparql11-protocol/">SPARQL 1.1 Protocol</a></li>
+<li><a href="http://www.w3.org/TR/sparql11-http-rdf-update/">SPARQL 1.1 Graph Store HTTP Protocol</a></li>
+</ul>
+<h2 id="contents">Contents<a class="headerlink" href="#contents" title="Permanent link">&para;</a></h2>
+<ul>
+<li><a href="#download-fuseki1">Download</a></li>
+<li><a href="#getting-started-with-fuseki">Getting Started</a></li>
+<li><a href="#security-and-access-control">Security</a></li>
+<li><a href="#logging">Logging</a></li>
+<li><a href="#server-uri-scheme">Server URI scheme</a></li>
+<li><a href="#running-a-fuseki-server">Running a Fuseki Server</a></li>
+<li><a href="#fuseki-configuration-file">Fuseki Configuration File</a></li>
+<li><a href="#sparql-over-http">SPARQL Over HTTP</a></li>
+<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<a class="headerlink" href="#download-fuseki1" title="Permanent link">&para;</a></h2>
+<p>Binaries for Fuseki1 are available from the 
+<a href="http://central.maven.org/maven2/org/apache/jena/jena-fuseki1/">maven
+repositories</a>.</p>
+<p>The source code is available in the Apache Jena source release.</p>
+<h2 id="getting-started-with-fuseki">Getting Started With Fuseki<a class="headerlink" href="#getting-started-with-fuseki" title="Permanent link">&para;</a></h2>
+<p>This section provides a brief guide to getting up and running with
+a simple server installation. It uses the
+<a href="../fuseki2/soh.html">SOH (SPARQL over HTTP)</a> scripts included in the
+download.</p>
+<ol>
+<li><a href="/download/#jena-fuseki">Download</a> the latest <code>jena-fuseki-*-distribution</code> </li>
+<li>Unpack the downloaded file with <code>unzip</code> or <code>tar zxfv</code></li>
+<li>(Linux) <code>chmod +x fuseki-server s-*</code></li>
+<li>
+<p>Run a server</p>
+<p>./fuseki-server --update --mem /ds</p>
+</li>
+</ol>
+<p>The server logging goes to the console:</p>
+<div class="codehilite"><pre><span class="mi">09</span><span class="o">:</span><span class="mi">25</span><span class="o">:</span><span class="mi">41</span> <span class="n">INFO</span>  <span class="n">Fuseki</span>              <span class="err"> </span><span class="o">::</span> <span class="n">Dataset</span><span class="o">:</span> <span class="k">in</span><span class="o">-</span><span class="n">memory</span>
+<span class="mi">09</span><span class="o">:</span><span class="mi">25</span><span class="o">:</span><span class="mi">41</span> <span class="n">INFO</span>  <span class="n">Fuseki</span>              <span class="err"> </span><span class="o">::</span> <span class="n">Update</span> <span class="n">enabled</span>
+<span class="mi">09</span><span class="o">:</span><span class="mi">25</span><span class="o">:</span><span class="mi">41</span> <span class="n">INFO</span>  <span class="n">Fuseki</span>              <span class="err"> </span><span class="o">::</span> <span class="n">Fuseki</span> <span class="n">development</span>
+<span class="mi">09</span><span class="o">:</span><span class="mi">25</span><span class="o">:</span><span class="mi">41</span> <span class="n">INFO</span>  <span class="n">Fuseki</span>              <span class="err"> </span><span class="o">::</span> <span class="n">Jetty</span> <span class="mf">7.2</span><span class="o">.</span><span class="mi">1</span><span class="o">.</span><span class="na">v20101111</span>
+<span class="mi">09</span><span class="o">:</span><span class="mi">25</span><span class="o">:</span><span class="mi">41</span> <span class="n">INFO</span>  <span class="n">Fuseki</span>              <span class="err"> </span><span class="o">::</span> <span class="n">Dataset</span> <span class="o">=</span> <span class="o">/</span><span class="n">ds</span>
+<span class="mi">09</span><span class="o">:</span><span class="mi">25</span><span class="o">:</span><span class="mi">41</span> <span class="n">INFO</span>  <span class="n">Fuseki</span>              <span class="err"> </span><span class="o">::</span> <span class="n">Started</span> <span class="mi">2011</span><span class="sr">/01/</span><span class="mi">06</span> <span class="mi">09</span><span class="o">:</span><span class="mi">25</span><span class="o">:</span><span class="mi">41</span> <span class="n">GMT</span> <span class="n">on</span> <span class="n">port</span> <span class="mi">3030</span>
+</pre></div>
+
+
+<h2 id="user-interface">User Interface<a class="headerlink" href="#user-interface" title="Permanent link">&para;</a></h2>
+<p>The Fuseki download includes a number of services:</p>
+<ul>
+<li>SPARQL Query, SPARQL Update, and file upload to a selected
+    dataset.</li>
+<li>Link to the documentation (here).</li>
+<li>Validators for SPARQL query and update and for non-RDF/XML
+    formats.</li>
+</ul>
+<p>For the control panel:</p>
+<ol>
+<li>In a browser, go to <code>http://localhost:3030/</code></li>
+<li>Click on <em>Control Panel</em></li>
+<li>Select the dataset (if set up above, there is only one choice).</li>
+</ol>
+<p>The page offers SPARQL operations and file upload acting on the
+selected dataset.</p>
+<h2 id="script-control">Script Control<a class="headerlink" href="#script-control" title="Permanent link">&para;</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>
+</pre></div>
+
+
+<p>Get it back:</p>
+<div class="codehilite"><pre><span class="n">s</span><span class="o">-</span><span class="n">get</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>
+</pre></div>
+
+
+<p>Query it with SPARQL using the .../query endpoint.</p>
+<div class="codehilite"><pre><span class="n">s</span><span class="o">-</span><span class="n">query</span> <span class="o">--</span><span class="n">service</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">query</span> <span class="s">&#39;SELECT * {?s ?p ?o}&#39;</span>
+</pre></div>
+
+
+<p>Update it with SPARQL using the .../update endpoint.</p>
+<div class="codehilite"><pre><span class="n">s</span><span class="o">-</span><span class="n">update</span> <span class="o">--</span><span class="n">service</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">update</span> <span class="s">&#39;CLEAR DEFAULT&#39;</span>
+</pre></div>
+
+
+<h2 id="security-and-access-control">Security and Access Control<a class="headerlink" href="#security-and-access-control" title="Permanent link">&para;</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
+to outside traffic (e.g. on Amazon's EC2) or by listening only the
+<code>localhost</code> network interface. This is especially important for update
+endpoints (SPARQL Update, SPARQL Graph Store protocol with
+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<a class="headerlink" href="#logging" title="Permanent link">&para;</a></h2>
+<p>Fuseki uses
+<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.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="c"># Fuseki</span>
+<span class="c"># Server log.</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">fuseki</span><span class="p">.</span><span class="n">Server</span><span class="p">=</span><span class="n">INFO</span>
+<span class="c"># Request log.</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">fuseki</span><span class="p">.</span><span class="n">Fuseki</span><span class="p">=</span><span class="n">INFO</span>
+<span class="c"># Internal logs</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">fuseki</span><span class="p">=</span><span class="n">INFO</span>
+</pre></div>
+
+
+<h2 id="server-uri-scheme">Server URI scheme<a class="headerlink" href="#server-uri-scheme" title="Permanent link">&para;</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>
+<li><code>http://*host*/</code><em>dataset</em><code>/update</code> -- the SPARQL Update language
+    endpoint.</li>
+<li><code>http://*host*/</code><em>dataset</em><code>/data</code> -- the SPARQL Graph Store Protocol
+    endpoint.</li>
+<li><code>http://*host*/</code><em>dataset</em><code>/upload</code> -- the file upload endpoint.</li>
+</ul>
+<p>Where <em>dataset</em> is a URI path. Note that Fuseki defaults to using
+port 3030 so <em>host</em> is often <em>localhost:3030</em>.</p>
+<p><strong>Important</strong> - While you may set <em>dataset</em> to be the text <code>dataset</code> this should be avoided since it may interfere with the function of the control panel and web pages.</p>
+<p>The URI
+<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<a class="headerlink" href="#running-a-fuseki-server" title="Permanent link">&para;</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>
+
+<span class="n">fuseki</span><span class="o">-</span><span class="n">server</span> <span class="o">--</span><span class="n">file</span><span class="p">=</span><span class="n">FILE</span> <span class="o">/</span><span class="n">DatasetPathName</span>
+
+<span class="n">fuseki</span><span class="o">-</span><span class="n">server</span> <span class="o">--</span><span class="n">loc</span><span class="p">=</span><span class="n">DB</span> <span class="o">/</span><span class="n">DatasetPathName</span>
+
+<span class="n">fuseki</span><span class="o">-</span><span class="n">server</span> <span class="o">--</span><span class="n">config</span><span class="p">=</span><span class="n">ConfigFile</span>
+</pre></div>
+
+
+<p>There is an option <code>--port=PORT</code> to set the port number. It
+defaults to 3030.</p>
+<p><code>/DatasetPathName</code> is the name under which the dataset will be
+accessible over HTTP.  Please see the above section on Server URI scheme for notes regarding available URIs and choice of this name</p>
+<p>The server will service read requests only unless the <code>--update</code>
+argument is used.</p>
+<p>The full choice of dataset forms is:</p>
+<p><strong>Fuseki Dataset Descriptions</strong></p>
+<ul>
+<li><code>--mem</code> <br /> Create an empty, in-memory (non-persistent) dataset.</li>
+<li><code>--file=FILE</code> <br />
+    Create an empty, in-memory (non-persistent) dataset, then load FILE
+    into it.</li>
+<li><code>--loc=DIR</code> <br />Use an existing TDB database. Create an empty one if it does not
+    exist.</li>
+<li><code>--desc=assemblerFile</code> <br /> Construct a dataset based on the general assembler description.</li>
+<li><code>--config=ConfigFile</code> <br /> Construct one or more service endpoints based on the
+    <a href="#fuseki-configuration-file">configuration description</a>.</li>
+</ul>
+<p>A copy of TDB is included in the standalone server. An example
+assembler file for TDB is in tdb.ttl.</p>
+<p><strong>Fuseki Server Arguments</strong></p>
+<ul>
+<li><code>--help</code>          <br /> Print help message.</li>
+<li><code>--port=*number*</code> <br /> Run on port <em>number</em> (default is 3030).</li>
+<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<a class="headerlink" href="#fuseki-server-starting-with-an-empty-dataset" title="Permanent link">&para;</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>
+
+
+<p>runs the server on port 3030 with an in-memory dataset. It can be
+accessed via the appropriate protocol at the following URLs:</p>
+<ul>
+<li>SPARQL query: <code>http://localhost:3030/ds/query</code></li>
+<li>SPARQL update: <code>http://localhost:3030/ds/update</code></li>
+<li>SPARQL HTTP update: <code>http://localhost:3030/ds/data</code></li>
+</ul>
+<p>The <a href="soh.html">SPARQL Over HTTP</a> scripts take care of naming
+and protocol details. For example, to load in a file <code>data.rdf</code>:</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">data</span><span class="p">.</span><span class="n">rdf</span>
+</pre></div>
+
+
+<h2 id="fuseki-server-and-tdb">Fuseki Server and TDB<a class="headerlink" href="#fuseki-server-and-tdb" title="Permanent link">&para;</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>
+</pre></div>
+
+
+<p>and a database in the directory DB, an assembler description of:</p>
+<div class="codehilite"><pre><span class="p">@</span><span class="n">prefix</span> <span class="n">rdf</span><span class="p">:</span>     <span class="o">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</span> <span class="p">.</span>
+
+<span class="p">[]</span> <span class="n">ja</span><span class="p">:</span><span class="n">loadClass</span> &quot;<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>&quot; <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>
+
+<span class="o">&lt;</span>#<span class="n">dataset</span><span class="o">&gt;</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> &quot;<span class="n">DB</span>&quot; <span class="p">;</span>
+     <span class="p">.</span>
+</pre></div>
+
+
+<p>The form:</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">loc</span><span class="p">=</span><span class="n">DB</span> <span class="o">/</span><span class="n">ds</span>
+</pre></div>
+
+
+<p>is a shorthand for such an assembler with location <code>DB</code>.</p>
+<p>To make triples from all the named graphs appear as the default,
+unnamed graph, use:</p>
+<div class="codehilite"><pre><span class="o">&lt;</span>#<span class="n">dataset</span><span class="o">&gt;</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> &quot;<span class="n">DB</span>&quot; <span class="p">;</span>
+     <span class="n">tdb</span><span class="p">:</span><span class="n">unionDefaultGraph</span> <span class="n">true</span> <span class="p">;</span>
+    <span class="p">.</span>
+</pre></div>
+
+
+<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">&para;</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>
+<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">assembler</span><span class="p">.</span><span class="n">ttl</span> <span class="o">/</span><span class="n">ds</span>
+</pre></div>
+
+
+<p>Full details of setting up models assembler is given in the
+<a href="/documentation/assembler/">assembler documentation</a> and <a href="/documentation/assembler/assembler-howto.html">assembler howto</a>.</p>
+<p>A general dataset is described by:</p>
+<div class="codehilite"><pre><span class="c"># Dataset of default graph and one named graph.</span>
+<span class="o">&lt;</span><span class="c">#dataset&gt; rdf:type ja:RDFDataset ;</span>
+   <span class="n">ja</span><span class="p">:</span><span class="n">defaultGraph</span> <span class="o">&lt;</span><span class="c">#modelDft&gt; ;</span>
+   <span class="n">ja</span><span class="p">:</span><span class="n">namedGraph</span>
+       <span class="p">[</span> <span class="n">ja</span><span class="p">:</span><span class="n">graphName</span>      <span class="o">&lt;</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="nb">example</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">name1</span><span class="o">&gt;</span> <span class="p">;</span>
+         <span class="n">ja</span><span class="p">:</span><span class="n">graph</span>          <span class="o">&lt;</span><span class="c">#model1&gt; ] ;</span>
+   <span class="p">.</span>
+
+<span class="o">&lt;</span><span class="c">#modelDft&gt; a ja:MemoryModel ;</span>
+        <span class="n">ja</span><span class="p">:</span><span class="n">content</span> <span class="p">[</span> <span class="n">ja</span><span class="p">:</span><span class="n">externalContent</span> <span class="o">&lt;</span><span class="n">file</span><span class="p">:</span><span class="n">Data</span><span class="p">.</span><span class="n">ttl</span><span class="o">&gt;</span> <span class="p">.</span>
+
+<span class="o">&lt;</span><span class="c">#model1&gt;  rdf:type ja:MemoryModel ;</span>
+   <span class="n">ja</span><span class="p">:</span><span class="n">content</span> <span class="p">[</span> <span class="n">ja</span><span class="p">:</span><span class="n">externalContent</span> <span class="o">&lt;</span><span class="n">file</span><span class="p">:</span><span class="n">FILE</span><span class="o">-</span>1<span class="p">.</span><span class="n">ttl</span><span class="o">&gt;</span> <span class="p">]</span> <span class="p">;</span>
+   <span class="n">ja</span><span class="p">:</span><span class="n">content</span> <span class="p">[</span> <span class="n">ja</span><span class="p">:</span><span class="n">externalContent</span> <span class="o">&lt;</span><span class="n">file</span><span class="p">:</span><span class="n">FILE</span><span class="o">-</span>2<span class="p">.</span><span class="n">ttl</span><span class="o">&gt;</span> <span class="p">]</span> <span class="p">;</span>
+   <span class="p">.</span>
+</pre></div>
+
+
+<p>The models can be
+<a href="/documentation/inference/">Jena inference models</a>.</p>
+<h2 id="fuseki-configuration-file">Fuseki Configuration File<a class="headerlink" href="#fuseki-configuration-file" title="Permanent link">&para;</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
+dataset name given.</p>
+<p>The configuration is an RDF graph. One graph consists of one server
+description, with a number of services, and each service offers a
+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<a class="headerlink" href="#prefix-declarations" title="Permanent link">&para;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</span> <span class="p">.</span>
+<span class="p">@</span><span class="n">prefix</span> <span class="p">:</span>        <span class="o">&lt;</span>#<span class="o">&gt;</span> <span class="p">.</span>
+</pre></div>
+
+
+<h3 id="server-section">Server Section<a class="headerlink" href="#server-section" title="Permanent link">&para;</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>
+<div class="codehilite"><pre><span class="p">[]</span> <span class="n">rdf</span><span class="p">:</span><span class="n">type</span> <span class="n">fuseki</span><span class="p">:</span><span class="n">Server</span> <span class="p">;</span>
+   # <span class="n">Server</span><span class="o">-</span><span class="n">wide</span> <span class="n">context</span> <span class="n">parameters</span> <span class="n">can</span> <span class="n">be</span> <span class="n">given</span> <span class="n">here</span><span class="p">.</span>
+   # <span class="n">For</span> <span class="n">example</span><span class="p">,</span> <span class="n">to</span> <span class="n">set</span> <span class="n">query</span> <span class="n">timeouts</span><span class="p">:</span> <span class="n">on</span> <span class="n">a</span> <span class="n">server</span><span class="o">-</span><span class="n">wide</span> <span class="n">basis</span><span class="p">:</span>
+   # <span class="n">Format</span> 1<span class="p">:</span> &quot;1000&quot; <span class="o">--</span> 1 <span class="n">second</span> <span class="n">timeout</span>
+   # <span class="n">Format</span> 2<span class="p">:</span> &quot;10000<span class="p">,</span>60000&quot; <span class="o">--</span> 10<span class="n">s</span> <span class="n">timeout</span> <span class="n">to</span> <span class="n">first</span> <span class="n">result</span><span class="p">,</span> <span class="n">then</span> 60<span class="n">s</span> <span class="n">timeout</span> <span class="n">to</span> <span class="k">for</span> <span class="n">rest</span> <span class="n">of</span> <span class="n">query</span><span class="p">.</span>
+   # <span class="n">See</span> <span class="n">java</span> <span class="n">doc</span> <span class="k">for</span> <span class="n">ARQ</span><span class="p">.</span><span class="n">queryTimeout</span>
+   # <span class="n">ja</span><span class="p">:</span><span class="n">context</span> <span class="p">[</span> <span class="n">ja</span><span class="p">:</span><span class="n">cxtName</span> &quot;<span class="n">arq</span><span class="p">:</span><span class="n">queryTimeout</span>&quot; <span class="p">;</span>  <span class="n">ja</span><span class="p">:</span><span class="n">cxtValue</span> &quot;10000&quot; <span class="p">]</span> <span class="p">;</span>
+
+   # <span class="n">Load</span> <span class="n">custom</span> <span class="n">code</span> <span class="p">(</span><span class="n">rarely</span> <span class="n">needed</span><span class="p">)</span>
+   # <span class="n">ja</span><span class="p">:</span><span class="n">loadClass</span> &quot;<span class="n">your</span><span class="p">.</span><span class="n">code</span><span class="p">.</span><span class="n">Class</span>&quot; <span class="p">;</span>
+
+   # <span class="n">Services</span> <span class="n">available</span><span class="p">.</span>  <span class="n">Only</span> <span class="n">explicitly</span> <span class="n">listed</span> <span class="n">services</span> <span class="n">are</span> <span class="n">configured</span><span class="p">.</span>
+   #  <span class="n">If</span> <span class="n">there</span> <span class="n">is</span> <span class="n">a</span> <span class="n">service</span> <span class="n">description</span> <span class="n">not</span> <span class="n">linked</span> <span class="n">from</span> <span class="n">this</span> <span class="n">list</span><span class="p">,</span> <span class="n">it</span> <span class="n">is</span> <span class="n">ignored</span><span class="p">.</span>
+   <span class="n">fuseki</span><span class="p">:</span><span class="n">services</span> <span class="p">(</span>
+     <span class="o">&lt;</span>#<span class="n">service1</span><span class="o">&gt;</span>
+     <span class="o">&lt;</span>#<span class="n">service2</span><span class="o">&gt;</span>
+   <span class="p">)</span> <span class="p">.</span>
+</pre></div>
+
+
+<h3 id="assembler-initialization">Assembler Initialization<a class="headerlink" href="#assembler-initialization" title="Permanent link">&para;</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">&quot;org.apache.jena.tdb.TDB&quot;</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>
+<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>
+</pre></div>
+
+
+<h3 id="service-1">Service 1<a class="headerlink" href="#service-1" title="Permanent link">&para;</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>
+<div class="codehilite"><pre><span class="c">## ---------------------------------------------------------------</span>
+<span class="c">## Updatable in-memory dataset.</span>
+
+<span class="o">&lt;</span><span class="c">#service1&gt; rdf:type fuseki:Service ;</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">name</span>                       <span class="s">&quot;ds&quot;</span> <span class="p">;</span>       <span class="c"># http://host:port/ds</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">serviceQuery</span>               <span class="s">&quot;query&quot;</span> <span class="p">;</span>    <span class="c"># SPARQL query service</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">serviceQuery</span>               <span class="s">&quot;sparql&quot;</span> <span class="p">;</span>   <span class="c"># SPARQL query service</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">serviceUpdate</span>              <span class="s">&quot;update&quot;</span> <span class="p">;</span>   <span class="c"># SPARQL query service</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">serviceUpload</span>              <span class="s">&quot;upload&quot;</span> <span class="p">;</span>   <span class="c"># Non-SPARQL upload service</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">serviceReadWriteGraphStore</span> <span class="s">&quot;data&quot;</span> <span class="p">;</span>     <span class="c"># SPARQL Graph store protocol (read and write)</span>
+    <span class="c"># A separate read-only graph store endpoint:</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">serviceReadGraphStore</span>      <span class="s">&quot;get&quot;</span> <span class="p">;</span>      <span class="c"># SPARQL Graph store protocol (read only)</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">dataset</span>                   <span class="o">&lt;</span><span class="c">#dataset-mem&gt; ;</span>
+    <span class="p">.</span>
+
+<span class="o">&lt;</span><span class="c">#dataset-mem&gt; rdf:type ja:RDFDataset .</span>
+</pre></div>
+
+
+<h3 id="service-2">Service 2<a class="headerlink" href="#service-2" title="Permanent link">&para;</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
+graph:</p>
+<p>This service offers read-only access to a dataset with a single
+graph of data.</p>
+<div class="codehilite"><pre><span class="o">&lt;</span>#<span class="n">service2</span><span class="o">&gt;</span> <span class="n">rdf</span><span class="p">:</span><span class="n">type</span> <span class="n">fuseki</span><span class="p">:</span><span class="n">Service</span> <span class="p">;</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">name</span>                     &quot;<span class="n">books</span>&quot; <span class="p">;</span>    # <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">host</span><span class="p">:</span><span class="n">port</span><span class="o">/</span><span class="n">books</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">serviceQuery</span>             &quot;<span class="n">query</span>&quot; <span class="p">;</span>    # <span class="n">SPARQL</span> <span class="n">query</span> <span class="n">service</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">serviceReadGraphStore</span>    &quot;<span class="n">data</span>&quot; <span class="p">;</span>     # <span class="n">SPARQL</span> <span class="n">Graph</span> <span class="n">store</span> <span class="n">protocol</span> <span class="p">(</span><span class="n">read</span> <span class="n">only</span><span class="p">)</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">dataset</span>           <span class="o">&lt;</span>#<span class="n">books</span><span class="o">&gt;</span> <span class="p">;</span>
+    <span class="p">.</span>
+
+<span class="o">&lt;</span>#<span class="n">books</span><span class="o">&gt;</span>    <span class="n">rdf</span><span class="p">:</span><span class="n">type</span> <span class="n">ja</span><span class="p">:</span><span class="n">RDFDataset</span> <span class="p">;</span>
+    <span class="n">rdfs</span><span class="p">:</span><span class="n">label</span> &quot;<span class="n">Books</span>&quot; <span class="p">;</span>
+    <span class="n">ja</span><span class="p">:</span><span class="n">defaultGraph</span>
+      <span class="p">[</span> <span class="n">rdfs</span><span class="p">:</span><span class="n">label</span> &quot;<span class="n">books</span><span class="p">.</span><span class="n">ttl</span>&quot; <span class="p">;</span>
+        <span class="n">a</span> <span class="n">ja</span><span class="p">:</span><span class="n">MemoryModel</span> <span class="p">;</span>
+        <span class="n">ja</span><span class="p">:</span><span class="n">content</span> <span class="p">[</span><span class="n">ja</span><span class="p">:</span><span class="n">externalContent</span> <span class="o">&lt;</span><span class="n">file</span><span class="p">:</span><span class="n">Data</span><span class="o">/</span><span class="n">books</span><span class="p">.</span><span class="n">ttl</span><span class="o">&gt;</span> <span class="p">]</span> <span class="p">;</span>
+      <span class="p">]</span> <span class="p">;</span>
+    <span class="p">.</span>
+</pre></div>
+
+
+<h3 id="service-3">Service 3<a class="headerlink" href="#service-3" title="Permanent link">&para;</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>
+<div class="codehilite"><pre><span class="o">&lt;</span>#<span class="n">service3</span><span class="o">&gt;</span>  <span class="n">rdf</span><span class="p">:</span><span class="n">type</span> <span class="n">fuseki</span><span class="p">:</span><span class="n">Service</span> <span class="p">;</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">name</span>              &quot;<span class="n">tdb</span>&quot; <span class="p">;</span>       # <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">host</span><span class="p">:</span><span class="n">port</span><span class="o">/</span><span class="n">tdb</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">serviceQuery</span>      &quot;<span class="n">sparql</span>&quot; <span class="p">;</span>    # <span class="n">SPARQL</span> <span class="n">query</span> <span class="n">service</span>
+    <span class="n">fuseki</span><span class="p">:</span><span class="n">dataset</span>           <span class="o">&lt;</span>#<span class="n">dataset</span><span class="o">&gt;</span> <span class="p">;</span>
+    <span class="p">.</span>
+
+<span class="o">&lt;</span>#<span class="n">dataset</span><span class="o">&gt;</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> &quot;<span class="n">DB</span>&quot; <span class="p">;</span>
+    # <span class="n">Query</span> <span class="n">timeout</span> <span class="n">on</span> <span class="n">this</span> <span class="n">dataset</span> <span class="p">(</span>1<span class="n">s</span><span class="p">,</span> 1000 <span class="n">milliseconds</span><span class="p">)</span>
+    <span class="n">ja</span><span class="p">:</span><span class="n">context</span> <span class="p">[</span> <span class="n">ja</span><span class="p">:</span><span class="n">cxtName</span> &quot;<span class="n">arq</span><span class="p">:</span><span class="n">queryTimeout</span>&quot; <span class="p">;</span>  <span class="n">ja</span><span class="p">:</span><span class="n">cxtValue</span> &quot;1000&quot; <span class="p">]</span> <span class="p">;</span>
+    # <span class="n">Make</span> <span class="n">the</span> <span class="n">default</span> <span class="n">graph</span> <span class="n">be</span> <span class="n">the</span> <span class="n">union</span> <span class="n">of</span> <span class="n">all</span> <span class="n">named</span> <span class="n">graphs</span><span class="p">.</span>
+    ## <span class="n">tdb</span><span class="p">:</span><span class="n">unionDefaultGraph</span> <span class="n">true</span> <span class="p">;</span>
+     <span class="p">.</span>
+</pre></div>
+
+
+<h2 id="sparql-over-http">SPARQL Over HTTP<a class="headerlink" href="#sparql-over-http" title="Permanent link">&para;</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<a class="headerlink" href="#examples" title="Permanent link">&para;</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>
+
+<span class="c"># GET a file</span>
+<span class="n">s</span><span class="o">-</span><span class="k">get</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="c"># PUT a file to a named graph</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">http</span><span class="p">:</span><span class="o">//</span><span class="nb">example</span><span class="o">/</span><span class="n">graph</span> <span class="n">D</span><span class="p">.</span><span class="n">nt</span>
+
+<span class="c"># Query</span>
+<span class="n">s</span><span class="o">-</span><span class="n">query</span> <span class="o">--</span><span class="n">service</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">query</span> <span class="s">&#39;SELECT * {?s ?p ?o}&#39;</span>
+
+<span class="c"># Update</span>
+<span class="n">s</span><span class="o">-</span><span class="n">update</span> <span class="o">--</span><span class="n">service</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">update</span> <span class="o">--</span><span class="n">file</span><span class="p">=</span><span class="n">update</span><span class="p">.</span><span class="n">ru</span>
+</pre></div>
+
+
+<h2 id="use-from-java">Use from Java<a class="headerlink" href="#use-from-java" title="Permanent link">&para;</a></h2>
+<h3 id="sparql-query">SPARQL Query<a class="headerlink" href="#sparql-query" title="Permanent link">&para;</a></h3>
+<p>ARQ's <code>QueryExecutionFactory.sparqlService</code> can be used.</p>
+<h3 id="sparql-update">SPARQL Update<a class="headerlink" href="#sparql-update" title="Permanent link">&para;</a></h3>
+<p>See <code>UpdateExecutionFactory.createRemote</code></p>
+<h3 id="sparql-http">SPARQL HTTP<a class="headerlink" href="#sparql-http" title="Permanent link">&para;</a></h3>
+<p>See <code>DatasetAccessor</code></p>
+  </div>
+</div>
+
+</div><!--/.container -->
+
+    <footer class="footer">
+      <div class="container">
+        <p>Copyright &copy; 2011&ndash;2018 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        </p>
+        <p>
+        Apache Jena, Jena, the Apache Jena project logo,
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+        </p>
+      </div>
+  </footer>
+
+  <!-- for marking links as active in the navbar-menu -->
+  <script type="text/javascript">
+    var link = $('a[href="' + this.location.pathname + '"]');
+    if (link != undefined)
+      link.parents('li,ul').addClass('active');
+  </script>
+
+</body>
+</html>