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

    <title>Apache Jena - Jena-related projects and tools</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/about_jena/contributions.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='/about_jena'>ABOUT JENA</a></li>
            
            
        
    
        
        
            
                <li class="active">CONTRIBUTIONS</li>
            
            
        
    
</ol>




                
            </div>
            <h1 class="title">Jena-related projects and tools</h1>
            
	<p>This page lists various projects and tools related to Jena - classes, packages,
libraries, applications, or ontologies that enhance Jena or are
built on top of it. These projects are not part of the Jena project itself, but
may be useful to Jena users.</p>
<p>This list is provided for information purposes only, and is not meant as an
endorsement of the mentioned projects by the Jena team.</p>
<p>If you wish your contribution to appear on this page, please raise a
Jira issue with the details to be published.</p>
<h2 id="related-projects">Related projects</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>License</th>
<th>Creator</th>
<th>URL</th>
</tr>
</thead>
<tbody>
<tr>
<td>GeoSPARQL Jena</td>
<td>Implementation of GeoSPARQL 1.0 standard using Apache Jena for SPARQL query or API.</td>
<td>Apache 2.0</td>
<td>Greg Albiston and Haozhe Chen</td>
<td><a href="https://github.com/galbiston/geosparql-jena">geosparql-jena at GitHub</a></td>
</tr>
<tr>
<td>GeoSPARQL Fuseki</td>
<td>HTTP server application compliant with the GeoSPARQL standard using GeoSPARQL Jena library and Apache Jena Fuseki server</td>
<td>Apache 2.0</td>
<td>Greg Albiston</td>
<td><a href="https://github.com/galbiston/geosparql-fuskei">geosparql-fuseki at GitHub</a></td>
</tr>
<tr>
<td>Jastor</td>
<td>Code generator that emits Java Beans from OWL Web Ontologies</td>
<td>Common Public License</td>
<td>Ben Szekely and Joe Betz</td>
<td><a href="http://jastor.sourceforge.net">Jastor website</a></td>
</tr>
<tr>
<td>NG4J</td>
<td>Named Graphs API for Jena</td>
<td>BSD license</td>
<td>Chris Bizer</td>
<td><a href="http://wifo5-03.informatik.uni-mannheim.de/bizer/ng4j/">NG4J website</a></td>
</tr>
<tr>
<td>Micro Jena (uJena)</td>
<td>Reduced version of Jena for mobile devices</td>
<td>as per Jena</td>
<td>Fulvio Crivellaro and Gabriele Genovese and Giorgio Orsi</td>
<td><a href="http://poseidon.elet.polimi.it/ca/?page_id=59">Micro Jena</a></td>
</tr>
<tr>
<td>Gloze</td>
<td>XML to RDF, RDF to XML, XSD to OWL mapping tool</td>
<td>as per Jena</td>
<td>Steve Battle</td>
<td><a href="http://sourceforge.net/project/showfiles.php?group_id=40417">jena files page</a></td>
</tr>
<tr>
<td>WYMIWYG KnoBot</td>
<td>A fully Jena based semantic CMS. Implements URIQA. File-based persistence.</td>
<td>Apache</td>
<td>Reto Bachmann-Gmuer / wymiwyg.org</td>
<td><a href="http://sourceforge.net/project/showfiles.php?group_id=83223">Download KnoBot</a></td>
</tr>
<tr>
<td>Infinite Graph</td>
<td>An infinite graph implementation for RDF graphs</td>
<td>BSD</td>
<td>UTD</td>
<td><a href="http://ig.semanticsupport.org/">Infinite Graph for Jena</a></td>
</tr>
<tr>
<td>Twinkle</td>
<td>A GUI interface for working with SPARQL queries</td>
<td>Public Domain</td>
<td>Leigh Dodds</td>
<td><a href="http://www.ldodds.com/projects/twinkle">Twinkle project homepage</a></td>
</tr>
<tr>
<td>GLEEN</td>
<td>A path expression (a.k.a. &ldquo;regular paths&rdquo;) property function library for ARQ SparQL</td>
<td>Apache 2.0</td>
<td>Todd Detwiler - University of Washington Structural Informatics Group</td>
<td><a href="http://sig.biostr.washington.edu/projects/ontviews/gleen/index.html">GLEEN home</a></td>
</tr>
<tr>
<td>Jena Sesame Model</td>
<td>Jena Sesame Model - Sesame triple store for Jena models</td>
<td>GNU</td>
<td>Weijian Fang</td>
<td><a href="http://sourceforge.net/projects/jenasesamemodel/">Jena Sesame Model</a></td>
</tr>
<tr>
<td>D2RQ</td>
<td>Treats non-RDF databases as virtual Jena RDF graphs</td>
<td>GNU GPL License</td>
<td>Chris Bizer</td>
<td><a href="http://d2rq.org/">D2RQ website</a></td>
</tr>
<tr>
<td>GeoSpatialWeb</td>
<td>This projects adds geo-spatial predicates and reasoning features to Jena property functions.</td>
<td>GNU GPL License</td>
<td>Marco Neumann and Taylor Cowan</td>
<td><a href="http://code.google.com/p/geospatialweb/">GeoSpatialWeb</a></td>
</tr>
<tr>
<td>Jenabean</td>
<td>Jenabean uses Jena&rsquo;s flexible RDF/OWL API to persist Java beans.</td>
<td>Apache 2.0</td>
<td>Taylor Cowan and David Donohue</td>
<td><a href="http://code.google.com/p/jenabean/">Jenabean project page</a></td>
</tr>
<tr>
<td>Persistence Annotations 4 RDF</td>
<td>Persistence Annotation for RDF (PAR) is a set of annotations and an entity manager that provides JPA like functionality on top of an RDF store while accounting for and exploiting the fundamental differences between graph storage and relational storage. PAR introduces three (3) annotations that map a RDF triple (subject, predicate, object) to a Plain Old Java Object (POJO) using Java&rsquo;s dynamic proxy capabilities.</td>
<td>Apache 2.0</td>
<td>Claude Warren</td>
<td><a href="https://sourceforge.net/projects/pa4rdf/">PA4RDF at Sourceforge</a></td>
</tr>
<tr>
<td>Semantic_Forms</td>
<td>Swiss army knife for data management and social networking.</td>
<td>open source</td>
<td>Jean-Marc Vanel</td>
<td><a href="https://github.com/jmvanel/semantic_forms">Semantic_Forms</a></td>
</tr>
<tr>
<td>JDBC 4 SPARQL</td>
<td>JDBC 4 SPARQL is a type 4 JDBC Driver that uses a SPARQL endpoint (or Jena Model) as the data store.  Presents graph data as relational data to tools that understand SQL and utilize JDBC</td>
<td>Apache 2.0 (Some components GNU LGPL V3.0)</td>
<td>Claude Warren</td>
<td>[jdbc4sparql at</td>
</tr>
<tr>
<td>GitHub](<a href="https://github.com/Claudenw/jdbc4sparql">https://github.com/Claudenw/jdbc4sparql</a>)</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>


        </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>
