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

    <title>Apache Jena - Jena Query Builder - A query builder for Jena.</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/extras/querybuilder/__index.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/extras'>EXTRAS</a></li>
            
            
        
    
        
        
            
                <li class="active">QUERYBUILDER</li>
            
            
        
    
</ol>




                
            </div>
            <h1 class="title">Jena Query Builder - A query builder for Jena.</h1>
            
	<h1 id="table-of-contents">Table of Contents</h1>
<p>{% toc %}</p>
<h1 id="overview">Overview</h1>
<p>Query Builder provides implementations of Ask, Construct, Select and Update builders that allow developers to create queries without resorting to StringBuilders or similar solutions.  The Query Builder module is an extra package and is found in the <code>jena-querybuilder</code> jar.</p>
<p>Each of the builders has a series of methods to define the query.  Each method returns the builder for easy chaining.  The  example:</p>
<pre><code>SelectBuilder sb = new SelectBuilder()
    .addVar( &quot;*&quot; )
    .addWhere( &quot;?s&quot;, &quot;?p&quot;, &quot;?o&quot; );

Query q = sb.build() ;
</code></pre>
<p>produces</p>
<pre><code>SELECT *
WHERE
  { ?s ?p ?o }
</code></pre>
<h1 id="constructing-expressions">Constructing Expressions</h1>
<p>Expressions are primarily used in <code>filter</code> and <code>bind</code> statements as well as in select clauses.  All the standard expressions are implemented in the <code>ExprFactory</code> class.  An <code>ExprFactory</code> can be retrieved from any Builder by calling the <code>getExprFactory()</code> method.  This will create a Factory that has the same prefix mappings and the query.  An alternative is to construct the <code>ExprFactory</code> directly, this factory will not have the prefixes defined in <code>PrefixMapping.Extended</code>.</p>
<pre><code>SelectBuilder builder = new SelectBuilder();
ExprFactory exprF = builder.getExprFactory()
    .addPrefix( &quot;cf&quot;,
        &quot;http://vocab.nerc.ac.uk/collection/P07/current/CFSN0023/&quot;)
builder.addVar( exprF.floor( ?v ), ?floor )

    .addWhere( ?s, &quot;cf:air_temperature&quot;, ?v )
</code></pre>
<h1 id="update-builder">Update Builder</h1>
<p>The <code>UpdateBuilder</code> is used to create <code>Update</code>, <code>UpdateDeleteWhere</code> or <code>UpdateRequest</code> objects.  When an <code>UpdateRequest</code> is built is contains a single <code>Update</code> object as defined by the <code>UpdateBuilder</code>.  <code>Update</code> objects can  be added to an UpdateRequest using the <code>appendTo()</code> method.</p>
<pre><code>Var subj = Var.alloc( &quot;s&quot; );
Var obj = Var.alloc( &quot;o&quot; );

UpdateBuilder builder = new UpdateBuilder( PrefixMapping.Standard)
    .addInsert( subj, &quot;rdfs:comment&quot;, obj )
    .addWhere( subj, &quot;dc:title&quot;, obj);

UpdateRequest req = builder.buildRequest();

UpdateBuilder builder2 = new UpdateBuilder()
    .addPrefix( &quot;dc&quot;, &quot;http://purl.org/dc/elements/1.1/&quot;)
    .addDelete( subj, &quot;?p&quot;, obj)
    .where( subj, dc:creator, &quot;me&quot;)
    .appendTo( req );
</code></pre>
<h1 id="where-builder">Where Builder</h1>
<p>In some use cases it is desirable to create a where clause without constructing an entire query.  The <code>WhereBuilder</code> is designed to fit this need.  For example to construct the query:</p>
<pre><code>PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;

SELECT ?page ?type WHERE
{
    ?s foaf:page ?page .
    { ?s rdfs:label &quot;Microsoft&quot;@en . BIND (&quot;A&quot; as ?type) }
    UNION
    { ?s rdfs:label &quot;Apple&quot;@en . BIND (&quot;B&quot; as ?type) }
}
</code></pre>
<p>You could use a WhereBuilder to construct the union queries and add them to a Select or other query builder.</p>
<pre><code>WhereBuilder whereBuilder = new WhereBuilder()
    .addPrefix( &quot;rdfs&quot;,  &quot;http://www.w3.org/2000/01/rdf-schema#&quot; )
    addWhere( &quot;?s&quot;, &quot;rdfs:label&quot;, &quot;'Microsoft'@en&quot; )
    .addBind( &quot;'A'&quot;, &quot;?type&quot;)
    .addUnion( new WhereBuilder()
        .addPrefix( &quot;rdfs&quot;,  &quot;http://www.w3.org/2000/01/rdf-schema#&quot; )
        .addWhere( &quot;?s&quot;, &quot;rdfs:label&quot;, &quot;'Apple'@en&quot; )
        .addBind( &quot;'B'&quot;, &quot;?type&quot;)
    );

SelectBuilder builder = new SelectBuilder()
   .addPrefix( &quot;rdfs&quot;,  &quot;http://www.w3.org/2000/01/rdf-schema#&quot; )
   .addPrefix( &quot;foaf&quot;, &quot;http://xmlns.com/foaf/0.1/&quot; );
   .addVar( &quot;?page&quot;)
   .addVar( &quot;?type&quot; )
   .addWhere( &quot;?s&quot;, &quot;foaf:page&quot;,  &quot;?page&quot; )
   .addWhere( whereBuilder );
</code></pre>
<p>The where clauses could be built inline as:</p>
<pre><code>SelectBuilder builder = new SelectBuilder()
  .addPrefixs( PrefixMapping.Standard )
  .addPrefix( &quot;foaf&quot;, &quot;http://xmlns.com/foaf/0.1/&quot; );
  .addVar( &quot;?page&quot;)
  .addVar( &quot;?type&quot; )
  .addWhere( &quot;?s&quot;, &quot;foaf:page&quot;,  &quot;?page&quot; )
  .addWhere( new WhereBuilder()
      .addPrefix( &quot;rdfs&quot;,  &quot;http://www.w3.org/2000/01/rdf-schema#&quot; )
      .addWhere( &quot;?s&quot;, &quot;rdfs:label&quot;, &quot;'Microsoft'@en&quot; )
      .addBind( &quot;'A'&quot;, &quot;?type&quot;)
      .addUnion( new WhereBuilder()
          .addPrefix( &quot;rdfs&quot;,  &quot;http://www.w3.org/2000/01/rdf-schema#&quot; )
          .addWhere( &quot;?s&quot;, &quot;rdfs:label&quot;, &quot;'Apple'@en&quot; )
          .addBind( &quot;'B'&quot;, &quot;?type&quot;)
      )
  );
</code></pre>
<h1 id="template-usage">Template Usage</h1>
<p>In addition to making it easier to build valid queries the QueryBuilder has a clone method.
Using this a developer can create as &ldquo;Template&rdquo; query and add to it as necessary.</p>
<p>For example using the above query as the &ldquo;template&rdquo; with this code:</p>
<pre><code>SelectBuilder sb2 = sb.clone();
sb2.addPrefix( &quot;foaf&quot;, &quot;http://xmlns.com/foaf/0.1/&quot; )
   .addWhere( ?s, RDF.type, &quot;foaf:Person&quot;) ;
</code></pre>
<p>produces</p>
<pre><code>PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
SELECT *
WHERE
  { ?s ?p ?o .
    ?s &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; foaf:person .
  }
</code></pre>
<h1 id="prepared-statement-usage">Prepared Statement Usage</h1>
<p>The query builders have the ability to replace variables with other values.  This can be</p>
<pre><code>SelectBuilder sb = new SelectBuilder()
    .addVar( &quot;*&quot; )
    .addWhere( &quot;?s&quot;, &quot;?p&quot;, &quot;?o&quot; );

sb.setVar( Var.alloc( &quot;?o&quot; ), NodeFactory.createURI( &quot;http://xmlns.com/foaf/0.1/Person&quot; ) ) ;
Query q = sb.build();
</code></pre>
<p>produces</p>
<pre><code>SELECT *
WHERE
  { ?s ?p &lt;http://xmlns.com/foaf/0.1/Person&gt; }
</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>
