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

    <title>Apache Jena - Extensions in ARQ</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/improve.js" type="text/javascript"></script>

    
</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="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
                        <li><a href="/documentation/notes/index.html">How-To's</a></li>
                        <li><a href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</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="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</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/query/index.html">ARQ (SPARQL)</a></li>
                        <li><a href="/documentation/assembler/index.html">Assembler</a></li>
                        <li><a href="/documentation/tools/index.html">Command-line tools</a></li>
                        <li><a href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
                        <li><a href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
                        <li><a href="/documentation/inference/index.html">Inference API</a></li>
                        <li><a href="/documentation/javadoc.html">Javadoc</a></li>
                        <li><a href="/documentation/ontology/">Ontology API</a></li>
                        <li><a href="/documentation/permissions/index.html">Permissions</a></li>
                        <li><a href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
                        <li><a href="/documentation/rdf/index.html">RDF API</a></li>
                        <li><a href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
                        <li><a href="/documentation/io/">RDF I/O</a></li>
                        <li><a href="/documentation/rdfstar/index.html">RDF-star</a></li>
                        <li><a href="/documentation/shacl/index.html">SHACL</a></li>
                        <li><a href="/documentation/shex/index.html">ShEx</a></li>
                        <li><a href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
                        <li><a href="/documentation/tdb/index.html">TDB</a></li>
                        <li><a href="/documentation/tdb2/index.html">TDB2</a></li>
                        <li><a href="/documentation/query/text-query.html">Text Search</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.html">All Javadoc</a></li>
                        <li><a href="/documentation/javadoc/arq/">ARQ</a></li>
                        <li><a href="/documentation/javadoc_elephas.html">Elephas</a></li>
                        <li><a href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
                        <li><a href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
                        <li><a href="/documentation/javadoc/jdbc/">JDBC</a></li>
                        <li><a href="/documentation/javadoc/jena/">Jena Core</a></li>
                        <li><a href="/documentation/javadoc/permissions/">Permissions</a></li>
                        <li><a href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
                        <li><a href="/documentation/javadoc/shacl/">SHACL</a></li>
                        <li><a href="/documentation/javadoc/tdb/">TDB</a></li>
                        <li><a href="/documentation/javadoc/text/">Text Search</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/architecture.html">Architecture</a></li>
                        <li><a href="/about_jena/citing.html">Citing</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><a href="/about_jena/roadmap.html">Roadmap</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/foundation/sponsorship.html">Become a Sponsor</a></li>
                        <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
                        <li><a href="http://www.apache.org/security/">Security</a></li>
                        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
                    </ul>
                </li>


    

                <li id="edit"><a href="https://github.com/apache/jena-site/edit/main/source/documentation/query/extension.md" title="Edit this page on GitHub"><span class="glyphicon glyphicon-pencil"></span> Edit this page</a></li>
            </ul>
        </div>
    </div>
</nav>


<div class="container">
    <div class="row">
        <div class="col-md-12">
            <div id="breadcrumbs">
                
                    





<ol class="breadcrumb">
    
    
        
        
    
        
        
            
                <li><a href='/documentation'>DOCUMENTATION</a></li>
            
            
        
    
        
        
            
                <li><a href='/documentation/query'>QUERY</a></li>
            
            
        
    
        
        
            
                <li class="active">EXTENSION</li>
            
            
        
    
</ol>




                
            </div>
            <h1 class="title">Extensions in ARQ</h1>
            
	<p>There are several ways to extend the ARQ query engine within the
SPARQL syntax.</p>
<ul>
<li><a href="#value-functions">Expression Functions</a> - additional operations in
<code>FILTERS</code>, <code>BIND</code> and <code>SELECT</code> expressions.</li>
<li><a href="#property-functions">Property functions</a> - adding predicates
that introduce custom query stages</li>
<li><a href="#describe-handlers">DESCRIBE handlers</a></li>
<li>Support for
<a href="#match-blank-node-labels">finding blank nodes by label</a></li>
<li><a href="arq-query-eval.html">Extending query evaluation</a> for querying
different storage and inference systems</li>
</ul>
<p>Functions are standard part of SPARQL. ARQ provides
application-written functions and provides a
<a href="library-function.html">function library</a>. Applications can
<a href="writing_functions.html">write and register their own functions</a>.</p>
<p>Property functions provide a way to provide custom matching of
particular predicates. They enable triple matches to be calculated,
rather than just looked up in a RDF graph and they are a way to add
functionality and remain within SPARQL. ARQ has a
<a href="library-propfunc.html">property function library</a>. Applications
can
<a href="writing_propfuncs.html">write and register their own property functions</a>.</p>
<p>The <a href="/documentation/query/text-query.html/">free text support in ARQ</a> is provided by
<a href="http://lucene.apache.org/java/docs/index.html">Lucene</a>, using
property functions.</p>
<h2 id="filter-functions">Filter Functions</h2>
<p>A SPARQL custom function is implementation dependent. Most details
of the ARQ query engine do not have to be understood to write a
function; it is a matter of implementing one interface.  This is
made simpler for many cases by a number of base classes that
provide much of the machinery needed.</p>
<h3 id="function-registry">Function Registry</h3>
<p>Functions can be installed into the function registry by the
application. The function registry is a mapping from URI to a
factory class for functions (each time a function is mentioned in a
query, a new instance is created) and there is an auto-factory
class so just registering a Java class will work. A function can
access the queried dataset.</p>
<h3 id="dynamically-loaded-functions">Dynamically Loaded Functions</h3>
<p>The ARQ function library uses this mechanism.  The namespace of the
ARQ function library is <code>&lt;http://jena.apache.org/ARQ/function#&gt;</code>.</p>
<pre><code>PREFIX afn: &lt;http://jena.apache.org/ARQ/function#&gt;
PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;
SELECT ?v { 
    ?x dc:date ?date . 
    FILTER (?date &lt; afn:now() )
}
</code></pre>
<p>The afn:now returns the time the query started.</p>
<p>The expression functions in the ARQ distribution are described on the
<a href="library-function.html">expression function library page</a>.</p>
<p>URIs for functions in the (fake)
<a href="java-uri.html">URI scheme <code>java:</code></a> are dynamically loaded. The
class name forms the scheme specific part of the URI.</p>
<h2 id="property-functions">Property functions</h2>
<p>Property functions, sometimes called &ldquo;magic properties&rdquo;, are
properties that cause triple matching to happen by executing some
piece of code, determined by the property URI, and not by the usual
graph matching. They can be used to give certain kinds of inference
and rule processing. Some calculated properties have additional,
non-declarative requirements such as needing one of other of the
subject or object to be a query constant or a bound value, and not
able to generate all possibilities for that slot.</p>
<p>Property functions must have fixed URI for the predicate (it can&rsquo;t
be query variable). They may take a list for subject or object.</p>
<p>One common case is for access to collections (RDF lists) or
containers (rdf:Bag, rdf:Seq, rdf:Alt).</p>
<pre><code>PREFIX list: &lt;http://jena.apache.org/ARQ/list#&gt;
SELECT ?member { 
    ?x :p ?list .     # Some way to find the list 
    ?list list:member ?member .
}
</code></pre>
<p>which can also be written:</p>
<pre><code>PREFIX list: &lt;http://jena.apache.org/ARQ/list#&gt;
SELECT ?member { 
    ?x :p [ list:member ?member ] 
}
</code></pre>
<p>Likewise, RDF containers:</p>
<pre><code>PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
SELECT ?member { 
    ?x :p ?bag .     # Some way to find the bag 
    ?bag rdfs:member ?member .
}
</code></pre>
<p>Property functions can also take lists in the subject or object
slot.</p>
<p>Code for properties can be dynamically loaded or pre-registered.
For example, <code>splitIRI</code> will take an IRI and assign the namespace
ad localname parts to variables (if the variables are already
bound, not constants are used, <code>splitIRI</code> will check the values).</p>
<pre><code>PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;
PREFIX apf: &lt;java:org.apache.jena.query.pfunction.library.&gt;
SELECT ?namespace ?localname { 
    xsd:string apf:splitIRI (?namespace ?localname) 
}
</code></pre>
<p>Property functions might conflict with inference rules and it can
be turned off by the Java code:</p>
<pre><code> ARQ.setFalse(ARQ.enablePropertyFunctions) ;
</code></pre>
<p>or on a per instance basis:</p>
<pre><code> try(QueryExecution qExec = ... ) {
     qExec.getContext().setFalse(ARQ.enablePropertyFunctions) ;
     ...
 }
</code></pre>
<p>The property functions in the ARQ distribution are described on the
<a href="library-propfunc.html">property function library page</a>.</p>
<p>URIs for functions in the (fake)
<a href="java-uri.html">URI scheme <code>java:</code></a> are dynamically loaded. The
class name forms the scheme specific part of the URI.</p>
<h2 id="describe-handlers">DESCRIBE handlers</h2>
<p>The <code>DESCRIBE</code> result form in SPARQL does not define an exact form
of RDF to return. Instead, it allows the server or query processor
to return what it considers to be an appropriate description of the
resources located. This description will be specific to the domain,
data modelling or application.</p>
<p>ARQ comes with one built-in handler which calculates the blank node
closure of resources found. While suitable for many situations, it
is not general (for example, a <a href="http://www.foaf-project.org/">FOAF</a>
file usually consists of all blank nodes). ARQ allows the
application to replace or add handlers for producing <code>DESCRIBE</code>
result forms.</p>
<p>Application-specific handlers can be added to the
<code>DescribeHandlerRegistry</code>. The handler will be called for each
resource (not literals) identified by the <code>DESCRIBE</code> query.</p>
<h2 id="blank-node-labels">Blank Node Labels</h2>
<p>URIs from with scheme name &ldquo;_&rdquo; (which is illegal) are created as
blank node labels for directly accessing a blank node in the
queried graph or dataset. These are constant terms in the query -
not unnamed variables. Do not confuse these with the standard
qname-like notation for blank nodes in queries. This is not
portable - use with care.</p>
<pre><code>&lt;_:1234-5678-90&gt; # A blank node in the data

_:b0 # A blank node in the query - a variable
</code></pre>


        </div>
    </div>

</div>

<footer class="footer">
    <div class="container" style="font-size:80%" >
        <p>
            Copyright &copy; 2011&ndash;2022 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.
            <br/>
          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
             >Apache Software Foundation Privacy Policy</a>.
        </p>
    </div>
</footer>


<script type="text/javascript">
    var link = $('a[href="' + this.location.pathname + '"]');
    if (link != undefined)
        link.parents('li,ul').addClass('active');
</script>

</body>
</html>
