<!DOCTYPE html>
<html lang="en">
<head>
    

    <title>Apache Jena - Fuseki Data Service Configuration Syntax</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-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.1b17c39a117e22b46db4c66f6395dc27c134a60377d87d2d5745b8600eb69722.css" integrity="sha256-GxfDmhF&#43;IrRttMZvY5XcJ8E0pgN32H0tV0W4YA62lyI=">
    <link rel="shortcut icon" href="/images/favicon.ico" />
    
</head>

<body>

<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></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" id="navbarNav">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                <li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
                <li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">Tutorials</li>
                        <li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
                        <li><a class="dropdown-item"  href="/documentation/notes/index.html">How-To's</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/sparql.html">SPARQL tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">References</li>
                        <li><a class="dropdown-item"  href="/documentation/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
                        <li><a class="dropdown-item"  href="/documentation/io/">RDF I/O</a></li>
                        <li><a class="dropdown-item"  href="/documentation/assembler/index.html">Assembler</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tools/index.html">Command-line tools</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
                        <li><a class="dropdown-item"  href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/inference/index.html">Inference API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/ontology/">Ontology API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/permissions/index.html">Permissions</a></li>
                        <li><a class="dropdown-item"  href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdf/index.html">RDF API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfstar/index.html">RDF-star</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shacl/index.html">SHACL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shex/index.html">ShEx</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb/index.html">TDB</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb2/index.html">TDB2</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/text-query.html">Text Search</a></li>
                    </ul>
                </li>

                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
                    </ul>
                </li>
            </ul>
            <form class="d-flex" role="search" action="/search" method="GET">
                <div class="input-group">
                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search" style="width: 10rem;">
                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
                        <i class="bi-search"></i>
                    </button>
                </div>
            </form>
            <ul class="navbar-nav">
                <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html" title="Ask"><span class="bi-patch-question"></span><span class="text-body d-none d-xxl-inline"> Ask</span></a></li>

                <li class="nav-item dropdown">
                    <a href="#" title="Get involved" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span><span class="text-body d-none d-xxl-inline"> Get involved </span><b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
                        <li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">Project</li>
                        <li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
                        <li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
                        <li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
                        <li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
                        <li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
                        <li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
                        <li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">ASF</li>
                        <li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                    </ul>
                </li>
                
                
                
                
                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/fuseki2/fuseki-config-endpoint.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span><span class="text-body d-none d-xxl-inline"> Edit this page</span></a></li>
            </ul>
        </div>
    </div>
</nav>

<div class="container">
    <div class="row">
        <div class="col-md-12">
            
            <div id="breadcrumbs">
                





<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
    
    
        
        
    
        
        
            
                <li class="breadcrumb-item"><a href='/documentation'>DOCUMENTATION</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item"><a href='/documentation/fuseki2'>FUSEKI2</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item active">FUSEKI CONFIG ENDPOINT</li>
            
            
        
    
</ol>




            </div>
            <h1 class="title">Fuseki Data Service Configuration Syntax</h1>
            
            
<main class="d-flex flex-xl-row flex-column">
  
  <aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li><a href="#syntax">Syntax</a>
      <ul>
        <li><a href="#original-configuration-syntax">Original Configuration Syntax</a></li>
      </ul>
    </li>
    <li><a href="#operations">Operations</a>
      <ul>
        <li><a href="#command-line-equivalents">Command Line Equivalents</a></li>
      </ul>
    </li>
    <li><a href="#dispatch">Dispatch</a></li>
    <li><a href="#common-cases">Common Cases</a>
      <ul>
        <li>
          <ul>
            <li><a href="#case-1-read-only-dataset">Case 1: Read-only Dataset</a></li>
            <li><a href="#case-2-dataset-level-operation">Case 2: Dataset level operation.</a></li>
            <li><a href="#case-3-named-endpoints">Case 3: Named endpoints</a></li>
            <li><a href="#case-4-named-endpoints-with-query-of-the-dataset">Case 4: Named endpoints with query of the dataset.</a></li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#quad-extensions">Quad extensions</a></li>
    <li><a href="#context">Context</a></li>
    <li><a href="#security">Security</a></li>
  </ul>
</nav>
  </aside>
  <article class="flex-column me-lg-4">
    <p>A data service provides a number of operations on a dataset. These can be
explicitly named endpoints or operations at the URL of the dataset.  New
operations can be configured in; these typically have their own named endpoints.</p>
<h2 id="syntax">Syntax</h2>
<p>Here is an example of a server configuration that provides one operation, SPARQL
query, and then only on the dataset URL.</p>
<pre><code>PREFIX :        &lt;#&gt;
PREFIX fuseki:  &lt;http://jena.apache.org/fuseki#&gt;
PREFIX rdf:     &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;

[] rdf:type fuseki:Server .

&lt;#service&gt; rdf:type fuseki:Service ;
    fuseki:name         &quot;dataset&quot; ;
    fuseki:endpoint     [ fuseki:operation fuseki:query ] ;
    fuseki:dataset      &lt;#dataset&gt; .

## In memory transactional dataset initially loaded
##  with the contents of file &quot;data.trig&quot;
&lt;#dataset&gt; rdf:type ja:MemoryDataset;
    ja:data &quot;data.trig&quot; .
</code></pre>
<p>This is invoked with a URL of the form
<tt>http://<i>host:port</i>/dataset?query=...</tt>
which is a SPARQL query request sent to the dataset URL.</p>
<p>The property <code>fuseki:endpoint</code> describes the operation available. No name is
given so the operation is available at the URL of the dataset.</p>
<p><code>fuseki:dataset</code> names the dataset to be used with this data service.</p>
<p>In this second example:</p>
<pre><code>&lt;#service&gt; rdf:type fuseki:Service ;
    fuseki:name          &quot;dataset&quot; ;
    fuseki:endpoint     [ 
        fuseki:operation fuseki:query ;
        fuseki:name      &quot;sparql&quot;;
    ];
    fuseki:dataset       &lt;#dataset&gt; .
</code></pre>
<p>the endpoint has a name. The URL to invoke the operation is now:</p>
<p><tt>http://<i>host:port</i>/dataset/sparql?query=...</tt></p>
<p>and is similar to older form:</p>
<pre><code>&lt;#service&gt; rdf:type fuseki:Service ;
    fuseki:name          &quot;dataset&quot; ;
    fuseki:serviceQuery  &quot;sparql&quot; ;
    fuseki:dataset       &lt;#dataset&gt; .
</code></pre>
<p>Operations on the dataset URL have the name <code>&quot;&quot;</code> (the empty string) and this is
the default. The first example is the same as:</p>
<pre><code>&lt;#service&gt; rdf:type fuseki:Service ;
    fuseki:name         &quot;dataset&quot; ;
    fuseki:endpoint     [ 
        fuseki:operation fuseki:query ;
        fuseki:name      &quot;&quot; ;
    ] ;
    fuseki:dataset      &lt;#dataset&gt; .
</code></pre>
<h3 id="original-configuration-syntax">Original Configuration Syntax</h3>
<p>The syntax described on this page was introduced in Apache Jena 3.13.0.</p>
<p>The <a href="fuseki-old-config-endpoint.html">previous syntax</a> is still valid.</p>
<p>The new syntax enables more configuration options and gives more control of server functionality:</p>
<ul>
<li>setting the context on a per-endpoint basis</li>
<li>having multiple operations at the service access point, switching based on
operation type</li>
<li>a more general structure for adding custom services</li>
<li>adding custom extensions to a Fuseki server</li>
</ul>
<h2 id="operations">Operations</h2>
<p>The following operations are provided:</p>
<table>
<thead>
<tr>
<th>URI</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>fuseki:query</code></td>
<td>SPARQL 1.1 Query with ARQ extensions</td>
</tr>
<tr>
<td><code>fuseki:update</code></td>
<td>SPARQL 1.1 Update with ARQ extensions</td>
</tr>
<tr>
<td><code>fuseki:gsp-r</code></td>
<td>SPARQL Graph Store Protocol and Quad extensions (read only)</td>
</tr>
<tr>
<td><code>fuseki:gsp-rw</code></td>
<td>SPARQL Graph Store Protocol and Quad extensions</td>
</tr>
<tr>
<td><code>fuseki:upload</code></td>
<td>HTML form file upload</td>
</tr>
<tr>
<td><code>fuseki:no-op</code></td>
<td>An operation that causes a 400 or 404 error</td>
</tr>
</tbody>
</table>
<p>Custom extensions can be added (see <a href="fuseki-main.html#build">Programmatic configuration</a> of the Fuseki server). To be able to uniquely identify the operation, these are usually</p>
<pre><code>    fuseki:endpoint     [ 
        fuseki:operation fuseki:shacl ;
        fuseki:name      &quot;shacl&quot; ;
    ] ;
</code></pre>
<p>See the section <a href="/documentation/shacl/#integration-with-apache-jena-fuseki">&ldquo;Integration with Apache Jena Fuseki&rdquo;</a> for details of the SHACL support. While this operation is part of the standard Fuseki distribution, this operation is added during system initialization, using the custom operation support.</p>
<h3 id="command-line-equivalents">Command Line Equivalents</h3>
<p>The standard set of service installed by running the server from the command line
without a configuration file is for a read-only:</p>
<pre><code>&lt;#service1&gt; rdf:type fuseki:Service ;
    fuseki:name &quot;dataset&quot; ;
    fuseki:endpoint [ fuseki:operation fuseki:query ; ];
    fuseki:endpoint [ fuseki:operation fuseki:query ; fuseki:name &quot;sparql&quot; ];
    fuseki:endpoint [ fuseki:operation fuseki:query ; fuseki:name &quot;query&quot; ];

    fuseki:endpoint [ fuseki:operation fuseki:gsp-r ; ];
    fuseki:endpoint [ fuseki:operation fuseki:gsp-r ; fuseki:name &quot;get&quot; ];
    fuseki:dataset ...
</code></pre>
<p>which supports requests such as:</p>
<pre><code>http://&lt;i&gt;host:port&lt;/i&gt;/dataset?query=...

http://&lt;i&gt;host:port&lt;/i&gt;/dataset/sparql?query=...

http://&lt;i&gt;host:port&lt;/i&gt;/dataset?default

http://&lt;i&gt;host:port&lt;/i&gt;/dataset/get?default
</code></pre>
<p>and for an updatable dataset (command line <code>--mem</code> for an in-memory dataset;
or with TDB storage, with <code>--update</code>):</p>
<pre><code>&lt;#service1&gt; rdf:type fuseki:Service ;
    fuseki:name &quot;dataset&quot; ;
    fuseki:endpoint [ fuseki:operation fuseki:query ;];
    fuseki:endpoint [ fuseki:operation fuseki:query ; fuseki:name &quot;sparql&quot; ];
    fuseki:endpoint [ fuseki:operation fuseki:query ; fuseki:name &quot;query&quot; ];

    fuseki:endpoint [ fuseki:operation fuseki:update ; ];
    fuseki:endpoint [ fuseki:operation fuseki:update ; fuseki:name &quot;update&quot; ];

    fuseki:endpoint [ fuseki:operation fuseki:gsp-r ; fuseki:name &quot;get&quot; ];
    fuseki:endpoint [ fuseki:operation fuseki:gsp-rw ; ] ;
    fuseki:endpoint [ fuseki:operation fuseki:gsp-rw ; fuseki:name &quot;data&quot; ];
    fuseki:endpoint [ fuseki:operation fuseki:upload ; fuseki:name &quot;upload&quot; ]
    fuseki:dataset ...
</code></pre>
<p>which adds requests that can change the data.</p>
<p>New operations can be added by programmatic setup in <a href="/documentation/fuseki2/fuseki-main">Fuseki Main</a>.</p>
<h2 id="dispatch">Dispatch</h2>
<p>&ldquo;Dispatch&rdquo; is the process of routing a HTTP request to a specific operation
processor implementation to handle the request.</p>
<p>Dispatch to named endpoint usually happens from the name alone, when there is a
unique name for an endpoint. If, however, two endpoints give the same
<code>fuseki:name</code>, or if operations are defined for the dataset itself, then
dispatch is based on a second step of determining the operation type by
inspecting the request.  Each of the SPARQL operations has a unique signature.</p>
<p>A query is either a GET with query string including &ldquo;?query=&rdquo;, or a POST with a
content type of the body &ldquo;application/sparql-query&rdquo;, or an HTML form with a field
&ldquo;query=&rdquo;</p>
<p>An update is a POST where the body is &ldquo;application/sparql-update&rdquo; or an HTML
form with field &ldquo;update=&rdquo;.</p>
<p>A GSP operation has <code>?default</code> or <code>?graph=</code>.</p>
<p>Quads operations are also provided by GSP endpoints when there is no query string and a have a <code>Content-Type</code> for a data in
a RDF triples or quads syntax.</p>
<p>So, for example &ldquo;GET /dataset&rdquo; is a request to get all the triples and quads in the
dataset. The syntax for the response is determined by content negotiation,
defaulting to <code>text/trig</code>.</p>
<p>Custom services usually use a named endpoint.  Custom operations
can specific a content type that they handle, which must be unique for the
operation. They can not provide a query string signature for dispatch.</p>
<h2 id="common-cases">Common Cases</h2>
<p>This section describes a few deployment patterns:</p>
<h4 id="case-1-read-only-dataset">Case 1: Read-only Dataset</h4>
<p>The 2 SPARQL standard operations for a read-only dataset:</p>
<pre><code>&lt;#service&gt; rdf:type fuseki:Service ;
    fuseki:name     &quot;ds-read-only&quot; ;
    ## fuseki:name &quot;&quot; is optional.
    fuseki:endpoint [ fuseki:operation fuseki:query; ] ;
    fuseki:endpoint [ fuseki:operation fuseki:gsp-r; ] ;
    fuseki:dataset  &lt;#dataset&gt; .
</code></pre>
<p>This is good for publishing data.</p>
<h4 id="case-2-dataset-level-operation">Case 2: Dataset level operation.</h4>
<p>The 3 SPARQL standard operations for a read-write dataset, request are sent to <tt>http://<i>host:port</i>/dataset</tt>. There are no named endpoint services.</p>
<pre><code>&lt;#service&gt; rdf:type fuseki:Service ;
    fuseki:name     &quot;ds-rw&quot; ;
    ## fuseki:name &quot;&quot; is optional.
    fuseki:endpoint [ fuseki:operation fuseki:query; ] ;
    fuseki:endpoint [ fuseki:operation fuseki:update;] ;
    fuseki:endpoint [ fuseki:operation fuseki:gsp-rw; ] ;
    fuseki:dataset  &lt;#dataset&gt; .
</code></pre>
<h4 id="case-3-named-endpoints">Case 3: Named endpoints</h4>
<pre><code>&lt;#service1&gt; rdf:type fuseki:Service ;
    fuseki:name     &quot;ds-named&quot; ;
    fuseki:endpoint [ fuseki:operation fuseki:query;  fuseki:name &quot;sparql&quot;  ] ;
    fuseki:endpoint [ fuseki:operation fuseki:query;  fuseki:name &quot;query&quot;   ] ;
    fuseki:endpoint [ fuseki:operation fuseki:update; fuseki:name &quot;update&quot;  ] ;
    fuseki:endpoint [ fuseki:operation fuseki:upload; fuseki:name &quot;upload&quot;  ] ;
    fuseki:endpoint [ fuseki:operation fuseki:gsp_r;  fuseki:name &quot;get&quot;     ] ;
    fuseki:endpoint [ fuseki:operation fuseki:gsp_rw; fuseki:name &quot;data&quot;    ] ;
    fuseki:dataset  &lt;#dataset&gt; .
</code></pre>
<p>The operation on this dataset can only be accessed as &ldquo;/ds-named/sparql&rdquo;,
&ldquo;/ds-named/update&rdquo; etc, not as &ldquo;/ds-named&rdquo;.</p>
<h4 id="case-4-named-endpoints-with-query-of-the-dataset">Case 4: Named endpoints with query of the dataset.</h4>
<pre><code>&lt;#service1&gt; rdf:type fuseki:Service ;
    
    fuseki:name     &quot;ds&quot; ;
    fuseki:endpoint [ fuseki:operation fuseki:query ] ;
    fuseki:endpoint [ fuseki:operation fuseki:query;  fuseki:name &quot;sparql&quot;  ] ;
    fuseki:endpoint [ fuseki:operation fuseki:query;  fuseki:name &quot;query&quot;   ] ;
    fuseki:endpoint [ fuseki:operation fuseki:update; fuseki:name &quot;update&quot;  ] ;
    fuseki:endpoint [ fuseki:operation fuseki:upload; fuseki:name &quot;upload&quot;  ] ;
    fuseki:endpoint [ fuseki:operation fuseki:gsp_r;  fuseki:name &quot;get&quot;     ] ;
    fuseki:endpoint [ fuseki:operation fuseki:gsp_rw; fuseki:name &quot;data&quot;    ] ;
    fuseki:dataset  &lt;#dataset&gt; .
</code></pre>
<p>The operations on this dataset are accessed as &ldquo;/ds/sparql&rdquo;,
&ldquo;/ds/update&rdquo; etc. In addition, &ldquo;/ds?query=&rdquo; provided SPARQL query.</p>
<h2 id="quad-extensions">Quad extensions</h2>
<p>The GSP (SPARQL Graph Store Protocol) operations provide the HTTP operations of
GET, POST, PUT and DELETE for specific graphs in the RDF dataset. The SPARQL GSP
standard includes identifying the target graph with <code>?default</code> or <code>?graph=...uri...</code> and
the request or response is one of the RDF triple syntaxes (Turtle, N-Triples,
JSON-LD, RDF/XML) as well as older proposals (TriX and RDF/JSON).</p>
<p>Apache Jena Fuseki also provides quad operations for HTTP methods
GET, POST, PUT (not DELETE, that would be the dataset itself),
and the request or response is one of the syntaxes for datasets
(TriG, N-Quads, JSON-LD, TriX).</p>
<p>The DSP (&ldquo;Dataset Store Protocol&rdquo;) operations provide operations similar to GSP
but operating on the dataset, not a speciifc graph.</p>
<p>Fuseki also provides [/documentation/io/rdf-binary.html](RDF Binary) for triples and quads.</p>
<h2 id="context">Context</h2>
<p>Each operation execution is given a &ldquo;context&rdquo; - a set of name-value pairs.
Internally, this is used for system registries, for the fixed &ldquo;current time&rdquo; for
an operation. The context is the merge of the server&rsquo;s context, any additional
settings on the dataset and any settings for the endpoint. The merge is performed
in that order - server then dataset then endpoint.</p>
<p>Uses for the context setting include query timeouts and making default query pattern
matching apply to the union of named graphs, not the default graph.</p>
<p>In this example (prefix <code>tdb2:</code> is for URI <code>&lt;http://jena.apache.org/2016/tdb#&gt;</code>):</p>
<pre><code>&lt;#servicetdb&gt; rdf:type fuseki:Service ;
    fuseki:name         &quot;ds-tdb&quot; ;
    fuseki:endpoint [
        fuseki:operation fuseki:query ;
        fuseki:name      &quot;sparql-union&quot; ;
        ja:context [ ja:cxtName &quot;tdb:unionDefaultGraph&quot; ; ja:cxtValue true ] ;
    ] ;
    fuseki:endpoint [ fuseki:operation fuseki:query; ] ;
    fuseki:endpoint [ fuseki:operation fuseki:update; ] ;
    fuseki:dataset &lt;#tdbDataset&gt; .

&lt;#tdbDataset&gt; rdf:type tdb2:DatasetTDB ;
    ja:context [ ja:cxtName &quot;arq:queryTimeout&quot; ;  ja:cxtValue &quot;10000,30000&quot; ] ;
    tdb2:location &quot;DATA&quot; .
</code></pre>
<p>&ldquo;/ds-tdb&rdquo; is a <a href="/documentation/tdb2/">TDB2 database</a> with endpoints for SPARQL
query and update on the dataset URL. In addition, it has a named service
&ldquo;/ds-tdb/sparql-union&rdquo; where the query works with the union of named graphs as
the default graph.</p>
<p>Query timeout is set for any use of the dataset with first result in 10
seconds, and complete results in 30 seconds.</p>
<h2 id="security">Security</h2>
<p>The page <a href="./fuseki-data-access-control.html">Data Access Control for Fuseki</a>
covers the</p>
<p>For endpoints, the permitted users are part of the endpoint description.</p>
<pre><code>fuseki:endpoint [ 
    fuseki:operation fuseki:query;
    fuseki:name &quot;sparql&quot; ;
    fuseki:allowedUsers &quot;user1&quot;, &quot;user2&quot;
] ;
</code></pre>

  </article>
  
  <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li><a href="#syntax">Syntax</a>
      <ul>
        <li><a href="#original-configuration-syntax">Original Configuration Syntax</a></li>
      </ul>
    </li>
    <li><a href="#operations">Operations</a>
      <ul>
        <li><a href="#command-line-equivalents">Command Line Equivalents</a></li>
      </ul>
    </li>
    <li><a href="#dispatch">Dispatch</a></li>
    <li><a href="#common-cases">Common Cases</a>
      <ul>
        <li>
          <ul>
            <li><a href="#case-1-read-only-dataset">Case 1: Read-only Dataset</a></li>
            <li><a href="#case-2-dataset-level-operation">Case 2: Dataset level operation.</a></li>
            <li><a href="#case-3-named-endpoints">Case 3: Named endpoints</a></li>
            <li><a href="#case-4-named-endpoints-with-query-of-the-dataset">Case 4: Named endpoints with query of the dataset.</a></li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#quad-extensions">Quad extensions</a></li>
    <li><a href="#context">Context</a></li>
    <li><a href="#security">Security</a></li>
  </ul>
</nav>
  </aside>
</main>

        </div>
    </div>
</div>

<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
    <div class="container" style="font-size:80%" >
        <p>
            Copyright &copy; 2011&ndash;2024 The Apache Software Foundation, Licensed under the
            <a href="https://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.
            <br/>
          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
             >Apache Software Foundation Privacy Policy</a>.
        </p>
    </div>
</footer>

<script src="/js/popper.min.js.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/improve.js" type="text/javascript"></script>

<script type="text/javascript">
(function() {
    'use strict'
    
    

    const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
    if (links !== undefined && links !== null) {
        for (const link of links) {
            
            link.classList.add('active')
            let parentElement = link.parentElement
            let count = 0
            const levelsLimit = 4
            
            
            
            
            
            while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
                if (parentElement.tagName === 'LI') {
                    
                    
                    
                    parentElement.querySelector('a:first-child').classList.add('active')
                }
                parentElement = parentElement.parentElement
                count++
            }
        }
    }
})()
</script>

</body>
</html>
