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

    <title>Apache Jena - Creating Jena models</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/notes/model-factory.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/notes'>NOTES</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item active">MODEL FACTORY</li>
            
            
        
    
</ol>




            </div>
            <h1 class="title">Creating Jena models</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="#introduction">Introduction</a></li>
    <li><a href="#simple-model-creation">Simple model creation</a></li>
    <li><a href="#database-model-creation">Database model creation</a></li>
    <li><a href="#inference-model-creation">Inference model creation</a></li>
    <li><a href="#ontology-model-creation">Ontology model creation</a></li>
    <li><a href="#creating-models-from-assembler-descriptions">Creating models from Assembler descriptions</a>
      <ul>
        <li><a href="#file-based-models">File-based models</a></li>
      </ul>
    </li>
    <li><a href="#modelmakers">ModelMakers</a></li>
    <li><a href="#miscellany">Miscellany</a></li>
  </ul>
</nav>
  </aside>
  <article class="flex-column me-lg-4">
    <h2 id="introduction">Introduction</h2>
<p>Jena is a moderately complicated system, with several
different kinds of <code>Model</code> and ways of constructing them. This note
describes the Jena <code>ModelFactory</code>, a one-stop shop for
creating Jena models. <code>ModelFactory</code> lives in Java package
<code>org.apache.jena.rdf.model</code>.</p>
<p>This note is an introduction, not an exhaustive description. As
usual consult the Javadoc for details of the methods and classes to
use.</p>
<h2 id="simple-model-creation">Simple model creation</h2>
<p>The simplest way to create a model (if not the shortest) is to call
<code>ModelFactory.createDefaultModel()</code>. This [by default] delivers a
plain RDF model, stored in-memory, that does no inference and has
no special ontology interface.</p>
<h2 id="database-model-creation">Database model creation</h2>
<p>For methods of creating models for <a href="/documentation/tdb/index.html">TDB</a>
please see the relevant reference sections.</p>
<h2 id="inference-model-creation">Inference model creation</h2>
<p>An important feature of Jena is support for different kinds of
inference over RDF-based models (used for RDFS and OWL).
Inference models are constructed by applying <em>reasoners</em> to
<em>base models</em> and optionally <em>schema</em>. The statements deduced by
the reasoner from the base model then appear in the inferred model
alongside the statements from the base model itself.
RDFS reasoning is directly available:</p>
<ul>
<li>
<p><code>createRDFSModel(Model base)</code> creates an inference model over the
base model using the built-in RDFS inference rules and any RDFS
statements in the base model.</p>
</li>
<li>
<p><code>createRDFSModel(Model schema, Model base)</code> creates an RDFS
inference model from the base model and the supplied schema model.
The advantage of supplying the schema separately is that the
reasoner may be able to compute useful information in advance on
the assumption that the schema won&rsquo;t change, or at least not change
as often as the base model.</p>
</li>
</ul>
<p>It&rsquo;s possible to use other reasoning systems than RDFS. For these a
Reasoner is required:</p>
<ul>
<li>
<p><code>createInfModel(Reasoner reasoner, Model base)</code> creates an
inference model using the rules of <code>reasoner</code> over the model
<code>base</code>.</p>
</li>
<li>
<p><code>createInfModel(Reasoner reasoner, Model schema, Model base)</code> Just
as for the RDFS case, the schema may be supplied separately to
allow the reasoner to digest them before working on the model.</p>
</li>
</ul>
<p>From where do you fetch your reasoners? From the
<em>reasoner registry</em>, the class
<a href="/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/reasoner/ReasonerRegistry.html">ReasonerRegistry</a>.
This allows reasoners to be looked up by name, but also provides
some predefined access methods for well-know reasoners:</p>
<ul>
<li>
<p><code>getOWLReasoner()</code>: the reasoner used for OWL inference</p>
</li>
<li>
<p><code>getRDFSReasoner()</code>: the reasoner used for RDFS inference</p>
</li>
<li>
<p><code>getTransitiveReasoner()</code>: a reasoner for doing subclass and
sub-property closure.</p>
</li>
</ul>
<h2 id="ontology-model-creation">Ontology model creation</h2>
<p>An <em>ontology model</em> is one that presents RDF as an ontology -
classes, individuals, different kinds of properties, and so forth.
Jena supports RDFS and OWL ontologies through <em>profiles</em>.
There is extensive documentation on
<a href="../ontology/index.html">Jena&rsquo;s ontology support</a>, so all we&rsquo;ll do
here is summarise the creation methods.</p>
<ul>
<li>
<p><code>createOntologyModel()</code> Creates an ontology model which is
in-memory and presents OWL ontologies.</p>
</li>
<li>
<p><code>createOntologyModel(OntModelSpec spec, Model base)</code> Creates an
ontology model according the
<a href="/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/ontology/OntModelSpec.html">OntModelSpec</a>
<code>spec</code> which presents the ontology of <code>base</code>.</p>
</li>
<li>
<p><code>createOntologyModel(OntModelSpec spec, ModelMaker maker, Model base)</code>
Creates an OWL ontology model according to the <code>spec</code> over the
<code>base</code> model. If the ontology model needs to construct additional
models (for OWL imports), use the <code>ModelMaker</code> to create them. [The
previous method will construct a <code>MemModelMaker</code> for this.]</p>
</li>
</ul>
<p>Where do <code>OntModelSpec</code>s come from? There&rsquo;s a cluster of
constants in the class which provide for common uses; to name but
three:</p>
<ul>
<li>
<p><code>OntModelSpec.OWL_MEM_RDFS_INF</code> OWL ontologies, model stored in
memory, using RDFS entailment only</p>
</li>
<li>
<p><code>OntModelSpec.RDFS_MEM</code> RDFS ontologies, in memory, but doing no
additional inferences</p>
</li>
<li>
<p><code>OntModelSpec.OWL_DL_MEM_RULE_INF</code> OWL ontologies, in memory, with
the full OWL Lite inference</p>
</li>
</ul>
<h2 id="creating-models-from-assembler-descriptions">Creating models from Assembler descriptions</h2>
<p>A model can be built from a description of the required model.
This is documented in the
<a href="../assembler/assembler-howto.html">assembler howto</a>.
Access to the
assembler system for model creation is provided by three
ModelFactory methods:</p>
<ul>
<li>
<p><code>assembleModelFrom( Model singleRoot )</code>: assemble a Model from the
single Model description in <code>singleRoot</code>. If there is no such
description, or more than one, an exception is thrown. If a
description has to be selected from more than one available
candidates, consider using the methods below.</p>
</li>
<li>
<p><code>findAssemblerRoots( Model m )</code>: answer a Set of all the Resources
in <code>m</code> which are of type <code>ja:Model</code>, ie descriptions of models to
assemble. (Note that this will include sub-descriptions of embedded
models if they are present.)</p>
</li>
<li>
<p><code>assembleModelFrom( Resource root )</code>: answer a Model assembled
according to the description hanging from <code>root</code>.
Assemblers can construct other things as well as models, and the
Assembler system is user-extensible: see the howto for details.</p>
</li>
</ul>
<h3 id="file-based-models">File-based models</h3>
<p>The method <code>ModelFactory.createFileModelMaker(String)</code> returns a
<code>ModelMaker</code> which attaches models to filing-system files. The
<code>String</code> argument is the <em>fileBase</em>. When a file-ModelMaker opens a
file, it reads it from a file in the directory named by the
fileBase; when the model is closed (and <em>only</em> then, in the current
implementation), the contents of the model are written back to the
file.</p>
<p>Because the names of models in a modelMaker can be arbitrary
character strings, in particular URIs, they are translated slightly
to avoid confusion with significant characters of common filing
systems. In the current implementation,</p>
<ul>
<li>colon : is converted to \_C</li>
<li>slash / is converted to \_S</li>
<li>underbar _ is converted to \_U</li>
</ul>
<h2 id="modelmakers">ModelMakers</h2>
<p>Plain models can be given names which allows them to be &ldquo;saved&rdquo; and
looked up by name later. This is handled by implementations of the
interface <code>ModelMaker</code>; each <code>ModelMaker</code> produces Models of the
same kind. The simplest kind of <code>ModelMaker</code> is a memory model
maker, which you get by calling
<code>ModelFactory.createMemModelMaker()</code>. The methods you&rsquo;d want to use
to start with on a ModelMaker are:</p>
<ul>
<li>
<p><code>createModel(String)</code>: create a model with the given name in the
ModelMaker. If a model with that name already exists, then that
model is used instead.</p>
</li>
<li>
<p><code>openModel(String)</code>: open an existing model with the given name. If
no such model exists, create a new empty one and give it that name.
[createModel(String) and openModel(String) behave in the same way,
but each has a two-argument form for which the behaviour is
different. Use whichever one best fits your intention.]</p>
</li>
<li>
<p><code>createModel()</code>: create a fresh anonymous model.</p>
</li>
<li>
<p><code>getModel()</code>: each <code>ModelMaker</code> has a <em>default model</em>; this method
returns that model.</p>
</li>
</ul>
<p>There are other methods, for removing models, additional control
over create <em>vs</em> open, closing the maker, and looking names up; for
those consult the
<a href="/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/rdf/model/ModelMaker.html">ModelMaker JavaDoc</a>.</p>
<h2 id="miscellany">Miscellany</h2>
<p>Finally, <code>ModelFactory</code> contains a collection of methods for some
special cases not conveniently dealt with elsewhere.</p>
<p><code>createModelForGraph(Graph g)</code> is used when an advanced user with
access to the Jena SPI has constructed or obtained a <code>Graph</code> and
wishes to present it as a model. This method wraps the graph up as
a plain model. Alterations to the graph are visible in the model,
and <em>vice versa</em>.</p>

  </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="#introduction">Introduction</a></li>
    <li><a href="#simple-model-creation">Simple model creation</a></li>
    <li><a href="#database-model-creation">Database model creation</a></li>
    <li><a href="#inference-model-creation">Inference model creation</a></li>
    <li><a href="#ontology-model-creation">Ontology model creation</a></li>
    <li><a href="#creating-models-from-assembler-descriptions">Creating models from Assembler descriptions</a>
      <ul>
        <li><a href="#file-based-models">File-based models</a></li>
      </ul>
    </li>
    <li><a href="#modelmakers">ModelMakers</a></li>
    <li><a href="#miscellany">Miscellany</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>
