You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by bu...@apache.org on 2011/09/13 01:39:52 UTC

svn commit: r795655 [1/4] - in /websites/staging/jena/trunk/content/jena: ./ about_jena/ documentation/ documentation/assembler/ documentation/inference/ documentation/larq/ documentation/notes/ documentation/ontology/ documentation/query/ documentatio...

Author: buildbot
Date: Mon Sep 12 23:39:50 2011
New Revision: 795655

Log:
Staging update by buildbot

Added:
    websites/staging/jena/trunk/content/jena/documentation/notes/
    websites/staging/jena/trunk/content/jena/documentation/notes/concurrency-howto.html
    websites/staging/jena/trunk/content/jena/documentation/notes/event-handler-howto.html
    websites/staging/jena/trunk/content/jena/documentation/notes/file-manager.html
    websites/staging/jena/trunk/content/jena/documentation/notes/index.html
    websites/staging/jena/trunk/content/jena/documentation/notes/model-factory.html
    websites/staging/jena/trunk/content/jena/documentation/notes/rdf-frames.html
    websites/staging/jena/trunk/content/jena/documentation/notes/reification.html
    websites/staging/jena/trunk/content/jena/documentation/notes/schemagen.html
    websites/staging/jena/trunk/content/jena/documentation/notes/typed-literals.html
Modified:
    websites/staging/jena/trunk/content/jena/about_jena/about.html
    websites/staging/jena/trunk/content/jena/about_jena/architecture.html
    websites/staging/jena/trunk/content/jena/about_jena/index.html
    websites/staging/jena/trunk/content/jena/about_jena/roadmap.html
    websites/staging/jena/trunk/content/jena/about_jena/team.html
    websites/staging/jena/trunk/content/jena/documentation/assembler/assembler-howto.html
    websites/staging/jena/trunk/content/jena/documentation/assembler/index.html
    websites/staging/jena/trunk/content/jena/documentation/assembler/inside-assemblers.html
    websites/staging/jena/trunk/content/jena/documentation/index.html
    websites/staging/jena/trunk/content/jena/documentation/inference/index.html
    websites/staging/jena/trunk/content/jena/documentation/larq/index.html
    websites/staging/jena/trunk/content/jena/documentation/ontology/index.html
    websites/staging/jena/trunk/content/jena/documentation/query/index.html
    websites/staging/jena/trunk/content/jena/documentation/rdf/index.html
    websites/staging/jena/trunk/content/jena/documentation/sdb/index.html
    websites/staging/jena/trunk/content/jena/documentation/serving_data/index.html
    websites/staging/jena/trunk/content/jena/documentation/tdb/index.html
    websites/staging/jena/trunk/content/jena/documentation/tools/index.html
    websites/staging/jena/trunk/content/jena/documentation/tools/schemagen.html
    websites/staging/jena/trunk/content/jena/download/index.html
    websites/staging/jena/trunk/content/jena/download/maven.html
    websites/staging/jena/trunk/content/jena/download/osgi.html
    websites/staging/jena/trunk/content/jena/getting_involved/index.html
    websites/staging/jena/trunk/content/jena/getting_started/fuseki.html
    websites/staging/jena/trunk/content/jena/getting_started/index.html
    websites/staging/jena/trunk/content/jena/getting_started/rdf_api.html
    websites/staging/jena/trunk/content/jena/getting_started/sparql.html
    websites/staging/jena/trunk/content/jena/getting_started/tell_me_how.html
    websites/staging/jena/trunk/content/jena/help_and_support/bugs_and_suggestions.html
    websites/staging/jena/trunk/content/jena/help_and_support/faq.html
    websites/staging/jena/trunk/content/jena/help_and_support/index.html
    websites/staging/jena/trunk/content/jena/index.html
    websites/staging/jena/trunk/content/jena/tutorials/index.html
    websites/staging/jena/trunk/content/jena/tutorials/sparql.html
    websites/staging/jena/trunk/content/jena/tutorials/using_jena_with_eclipse.html

Modified: websites/staging/jena/trunk/content/jena/about_jena/about.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/about_jena/about.html (original)
+++ websites/staging/jena/trunk/content/jena/about_jena/about.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/about_jena/architecture.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/about_jena/architecture.html (original)
+++ websites/staging/jena/trunk/content/jena/about_jena/architecture.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/about_jena/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/about_jena/index.html (original)
+++ websites/staging/jena/trunk/content/jena/about_jena/index.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/about_jena/roadmap.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/about_jena/roadmap.html (original)
+++ websites/staging/jena/trunk/content/jena/about_jena/roadmap.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/about_jena/team.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/about_jena/team.html (original)
+++ websites/staging/jena/trunk/content/jena/about_jena/team.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/documentation/assembler/assembler-howto.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/assembler/assembler-howto.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/assembler/assembler-howto.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/documentation/assembler/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/assembler/index.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/assembler/index.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/documentation/assembler/inside-assemblers.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/assembler/inside-assemblers.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/assembler/inside-assemblers.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/documentation/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/index.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/index.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/documentation/inference/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/inference/index.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/inference/index.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Modified: websites/staging/jena/trunk/content/jena/documentation/larq/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/larq/index.html (original)
+++ websites/staging/jena/trunk/content/jena/documentation/larq/index.html Mon Sep 12 23:39:50 2011
@@ -87,7 +87,7 @@
 <ul>
 <li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
 <li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
-<li><a href="/jena/tutorials/usingklzzwxh:0023jenaklzzwxh:0024withklzzwxh:0025eclipse.html">Using Jena with Eclipse</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
 </ul>
 <h1 id="documentation">Documentation</h1>
 <ul>
@@ -106,6 +106,10 @@
 <li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
 </ul>
 </li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
 <li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
 <li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
 </ul>

Added: websites/staging/jena/trunk/content/jena/documentation/notes/concurrency-howto.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/notes/concurrency-howto.html (added)
+++ websites/staging/jena/trunk/content/jena/documentation/notes/concurrency-howto.html Mon Sep 12 23:39:50 2011
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/jena/css/jena.css" rel="stylesheet" type="text/css">
+  <title>Apache Jena - Concurrent access to Models</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script src="/jena/js/jquery-1.6.1.min.js" type="text/javascript"></script>
+  <script src="/jena/js/jena-navigation.js" type="text/javascript"></script>
+</head>
+
+<body>
+  <div id="header">
+    <div id="logoblock">
+    <img alt="Apache Jena" src="/jena/images/jena-logo/jena-logo-small.png"/>
+    </div>
+
+    <div id="titleblock">
+      <h1 class="title">Apache Jena</h1>
+      <div id="topmenu" class="tabbar round-10">
+        <ul>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/index.html" id="home_menu">Home</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/help_and_support/index.html">Support</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/getting_started/index.html">Getting started</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/tutorials/index.html">Tutorials</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/documentation/index.html">Documentation</a></li>
+        </ul>
+      </div>
+    </div>
+  </div>
+
+  <div id="navigation" class="clear">
+  <h1 id="quick_links">Quick links</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/download/index.html">Downloads</a></li>
+<li><a href="/jena/help_and_support/index.html">Help and support</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/getting_involved/index.html">Getting involved</a></li>
+</ul>
+<h1 id="about_jena">About Jena</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/about_jena/about.html">About Jena</a></li>
+<li><a href="/jena/about_jena/architecture.html">Architecture</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/about_jena/team.html">Project team</a></li>
+</ul>
+<h1 id="download">Download</h1>
+<ul>
+<li><a href="/jena/download/index.html">Downloading Jena</a></li>
+<li><a href="/jena/download/maven.html">Using Maven</a></li>
+<li><a href="/jena/download/osgi.html">Using OSGi</a></li>
+</ul>
+<h1 id="help_and_support">Help and support</h1>
+<ul>
+<li><a href="/jena/help_and_support/index.html">Getting help</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Bugs and suggestions</a></li>
+</ul>
+<h1 id="getting_started">Getting Started</h1>
+<ul>
+<li><a href="/jena/getting_started/index.html">A first Jena project</a></li>
+<li><a href="/jena/getting_started/rdf_api.html">RDF API overview</a></li>
+<li><a href="/jena/getting_started/sparql.html">Querying RDF with SPARQL</a></li>
+<li><a href="/jena/getting_started/fuseki.html">Serving RDF over HTTP</a></li>
+<li><a href="/jena/getting_started/tell_me_how.html">Tell me how to ...</a></li>
+</ul>
+<h1 id="tutorials">Tutorials</h1>
+<ul>
+<li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
+<li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/jena/documentation/index.html">Overview</a></li>
+<li><a href="/jena/documentation/javadoc">Javadoc</a></li>
+<li><a href="/jena/documentation/rdf/index.html">RDF</a></li>
+<li><a href="/jena/documentation/query/index.html">Query</a></li>
+<li><a href="/jena/documentation/tdb/index.html">TDB</a></li>
+<li><a href="/jena/documentation/sdb/index.html">SDB</a></li>
+<li><a href="/jena/documentation/larq/index.html">LARQ</a></li>
+<li><a href="/jena/documentation/serving_data/index.html">Serving Data</a></li>
+<li><a href="/jena/documentation/ontology/index.html">Ontology</a></li>
+<li><a href="/jena/documentation/inference/index.html">Inference</a></li>
+<li><a href="/jena/documentation/assembler/index.html">Assembler</a><ul>
+<li><a href="/jena/documentation/assembler/assembler-howto.html">Assembler how-to</a></li>
+<li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
+<li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
+</ul>
+</li>
+</ul>
+<h1 id="getting_involved">Getting Involved</h1>
+<ul>
+<li><a href="/jena/getting_involved/index.html">Contributing to Jena</a></li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Concurrent access to Models</h1>
+    <p>Applications need to be aware of the concurrency issues in access
+Jena models.  API operations are not thread safe by default. Thread
+safety would simple ensure that the model data-structures remained
+intact but would not give an application consistent access to the
+RDF graph.  It would also limit the throughput of multi-threaded
+applications on multiprocessor machines where true concurrency can
+lead to a reduction in response time.</p>
+<p>For example, supposed an application wishes to read the name and
+age of a person from model.  This takes two API calls.  It is more
+convenient to be able to read that information in a consistent
+fashion, knowing that the access to the second piece of information
+is not being done after some model change has occurred.</p>
+<p>Special care is needed with iterators.  In general, Jena's
+iterators do <em>not</em> take a copy to enable safe use in the presence
+of concurrent update.  A multi-threaded application needs to be
+aware of these issues and correctly use the mechanisms that Jena
+provides (or manage its own concurrency itself).  While not zero,
+the application burden is not high.</p>
+<p>There are two main cases:</p>
+<ul>
+<li>Multiple threads in the same JVM.</li>
+<li>Multiple applications accessing the same persistent model
+    (typically, a database).</li>
+</ul>
+<p>Transactions are provided by database-backed models: see the
+<a href="../DB/index.html">database documentation TODO</a> and the
+<a href="../javadoc/com/hp/hpl/jena/rdf/model/Model.html#supportsTransactions()">Model interface to transactions TODO</a>.</p>
+<p>This note describes the support for same-JVM, multi-threaded
+applications.</p>
+<h2 id="locks">Locks</h2>
+<p>Locks provide critical section support for managing the
+interactions of multiple threads in the same JVM.  Jena provides
+multiple-reader/single-writer concurrency support (MRSW).</p>
+<p>The pattern general is:</p>
+<div class="codehilite"><pre><span class="n">Model</span> <span class="n">model</span> <span class="o">=</span> <span class="o">.</span> <span class="o">.</span> <span class="o">.</span> <span class="p">;</span>
+<span class="n">model</span><span class="o">.</span><span class="n">enterCriticalSection</span><span class="p">(</span><span class="n">Lock</span><span class="o">.</span><span class="n">READ</span><span class="p">)</span> <span class="p">;</span>  <span class="sr">//</span> <span class="ow">or</span> <span class="n">Lock</span><span class="o">.</span><span class="n">WRITE</span>
+<span class="n">try</span> <span class="p">{</span>
+    <span class="o">...</span> <span class="n">perform</span> <span class="n">actions</span> <span class="n">on</span> <span class="n">the</span> <span class="n">model</span> <span class="o">...</span>
+    <span class="o">...</span> <span class="n">obey</span> <span class="n">contract</span> <span class="o">-</span> <span class="nb">no</span> <span class="n">update</span> <span class="n">operations</span> <span class="k">if</span> <span class="n">a</span> <span class="nb">read</span> <span class="n">lock</span>
+<span class="p">}</span> <span class="n">finally</span> <span class="p">{</span>
+    <span class="n">model</span><span class="o">.</span><span class="n">leaveCriticalSection</span><span class="p">()</span> <span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>Applications are expected to obey the lock contract, that is, they
+must not do update operations if they have a read lock as there can
+be other application threads reading the model concurrently.</p>
+<h2 id="iterators">Iterators</h2>
+<p>Care must be taken with iterators: unless otherwise stated, all
+iterators must be assumed to be iterating over the data-structures
+in the model or graph implementation itself.  It is not possible to
+safely pass these out of critical sections.</p>
+<h2 id="sparql_query">SPARQL Query</h2>
+<p>SPARQL query results are iterators and no different from other
+iterators in Jena for concurrency purposes.  The default query
+engine does not give thread safety and the normal requirements on
+an application to ensure MRSW access in the presence of iterators
+applies.  Note that Jena's query mechanism is itself multi-threaded.
+If the application is single threaded, no extra work is necessary. 
+If the application is multi-threaded, queries should be executed
+with a read lock.</p>
+<p>Outline:</p>
+<div class="codehilite"><pre>  <span class="n">Model</span> <span class="n">model</span> <span class="o">=</span> <span class="o">...</span> <span class="p">;</span>
+  <span class="n">String</span> <span class="n">queryString</span> <span class="o">=</span> <span class="s">&quot; .... &quot;</span> <span class="p">;</span>
+  <span class="n">Query</span> <span class="n">query</span> <span class="o">=</span> <span class="n">QueryFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">queryString</span><span class="p">)</span> <span class="p">;</span>
+  <span class="n">model</span><span class="o">.</span><span class="n">enterCriticalSection</span><span class="p">(</span><span class="n">Lock</span><span class="o">.</span><span class="n">READ</span><span class="p">)</span> <span class="p">;</span>
+  <span class="n">try</span> <span class="p">{</span>
+    <span class="n">QueryExecution</span> <span class="n">qexec</span> <span class="o">=</span> <span class="n">QueryExecutionFactory</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">model</span><span class="p">)</span> <span class="p">;</span>
+    <span class="n">ResultSet</span> <span class="n">results</span> <span class="o">=</span> <span class="n">qexec</span><span class="o">.</span><span class="n">execSelect</span><span class="p">()</span> <span class="p">;</span>
+   <span class="n">try</span> <span class="p">{</span>
+      <span class="k">for</span> <span class="p">(</span> <span class="p">;</span> <span class="n">results</span><span class="o">.</span><span class="n">hasNext</span><span class="p">()</span> <span class="p">;</span> <span class="p">)</span>
+      <span class="p">{</span>
+          <span class="n">QuerySolution</span> <span class="n">soln</span> <span class="o">=</span> <span class="n">results</span><span class="o">.</span><span class="n">nextSolution</span><span class="p">()</span> <span class="p">;</span>
+          <span class="n">RDFNode</span> <span class="n">x</span> <span class="o">=</span> <span class="n">soln</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;..var name..&quot;</span><span class="p">)</span> <span class="p">;</span>
+      <span class="p">}</span>
+    <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">qexec</span><span class="o">.</span><span class="nb">close</span><span class="p">()</span> <span class="p">;</span> <span class="p">}</span>
+  <span class="p">}</span> <span class="n">finally</span> <span class="p">{</span> <span class="n">model</span><span class="o">.</span><span class="n">leaveCriticalSection</span><span class="p">()</span> <span class="p">;</span> <span class="p">}</span>
+</pre></div>
+
+
+<p>Updates to the model should not be performed inside the read-only
+section.  For database-backed models, the application can use a
+transaction.  For in-memory models, the application should collect
+the changes together during the query processing then making all
+the changes holding a write lock.</p>
+<p>Jena Locks do not provide lock promotion - an application can not
+start a "write" critical section while holding a "read" lock
+because this can lead to deadlock.</p>
+<h2 id="compatibility">Compatibility</h2>
+<p>The actually interface is called <code>Lock</code> and has implementations
+including <code>LockMRSW</code>.</p>
+<p>For compatibility with previous versions of Jena, there is a class
+<code>ModelLock</code>.</p>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/jena/trunk/content/jena/documentation/notes/event-handler-howto.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/notes/event-handler-howto.html (added)
+++ websites/staging/jena/trunk/content/jena/documentation/notes/event-handler-howto.html Mon Sep 12 23:39:50 2011
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/jena/css/jena.css" rel="stylesheet" type="text/css">
+  <title>Apache Jena - Event handling in Jena</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script src="/jena/js/jquery-1.6.1.min.js" type="text/javascript"></script>
+  <script src="/jena/js/jena-navigation.js" type="text/javascript"></script>
+</head>
+
+<body>
+  <div id="header">
+    <div id="logoblock">
+    <img alt="Apache Jena" src="/jena/images/jena-logo/jena-logo-small.png"/>
+    </div>
+
+    <div id="titleblock">
+      <h1 class="title">Apache Jena</h1>
+      <div id="topmenu" class="tabbar round-10">
+        <ul>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/index.html" id="home_menu">Home</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/help_and_support/index.html">Support</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/getting_started/index.html">Getting started</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/tutorials/index.html">Tutorials</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/documentation/index.html">Documentation</a></li>
+        </ul>
+      </div>
+    </div>
+  </div>
+
+  <div id="navigation" class="clear">
+  <h1 id="quick_links">Quick links</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/download/index.html">Downloads</a></li>
+<li><a href="/jena/help_and_support/index.html">Help and support</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/getting_involved/index.html">Getting involved</a></li>
+</ul>
+<h1 id="about_jena">About Jena</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/about_jena/about.html">About Jena</a></li>
+<li><a href="/jena/about_jena/architecture.html">Architecture</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/about_jena/team.html">Project team</a></li>
+</ul>
+<h1 id="download">Download</h1>
+<ul>
+<li><a href="/jena/download/index.html">Downloading Jena</a></li>
+<li><a href="/jena/download/maven.html">Using Maven</a></li>
+<li><a href="/jena/download/osgi.html">Using OSGi</a></li>
+</ul>
+<h1 id="help_and_support">Help and support</h1>
+<ul>
+<li><a href="/jena/help_and_support/index.html">Getting help</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Bugs and suggestions</a></li>
+</ul>
+<h1 id="getting_started">Getting Started</h1>
+<ul>
+<li><a href="/jena/getting_started/index.html">A first Jena project</a></li>
+<li><a href="/jena/getting_started/rdf_api.html">RDF API overview</a></li>
+<li><a href="/jena/getting_started/sparql.html">Querying RDF with SPARQL</a></li>
+<li><a href="/jena/getting_started/fuseki.html">Serving RDF over HTTP</a></li>
+<li><a href="/jena/getting_started/tell_me_how.html">Tell me how to ...</a></li>
+</ul>
+<h1 id="tutorials">Tutorials</h1>
+<ul>
+<li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
+<li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/jena/documentation/index.html">Overview</a></li>
+<li><a href="/jena/documentation/javadoc">Javadoc</a></li>
+<li><a href="/jena/documentation/rdf/index.html">RDF</a></li>
+<li><a href="/jena/documentation/query/index.html">Query</a></li>
+<li><a href="/jena/documentation/tdb/index.html">TDB</a></li>
+<li><a href="/jena/documentation/sdb/index.html">SDB</a></li>
+<li><a href="/jena/documentation/larq/index.html">LARQ</a></li>
+<li><a href="/jena/documentation/serving_data/index.html">Serving Data</a></li>
+<li><a href="/jena/documentation/ontology/index.html">Ontology</a></li>
+<li><a href="/jena/documentation/inference/index.html">Inference</a></li>
+<li><a href="/jena/documentation/assembler/index.html">Assembler</a><ul>
+<li><a href="/jena/documentation/assembler/assembler-howto.html">Assembler how-to</a></li>
+<li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
+<li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
+</ul>
+</li>
+</ul>
+<h1 id="getting_involved">Getting Involved</h1>
+<ul>
+<li><a href="/jena/getting_involved/index.html">Contributing to Jena</a></li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Event handling in Jena</h1>
+    <h2 id="modelchangedlistener">ModelChangedListener</h2>
+<p>In Jena it is possible to monitor a <code>Model</code> for changes, so that
+code can be run after changes are applied without the coding for
+that Model having to do anything special. We call these changes
+"events". This first
+design and implementation is open for user comment and we may
+refine or reduce the implementation as more experience is gained with
+it.</p>
+<p>To monitor a Model, you must <em>register</em> a <em>ModelChangedListener</em>
+with that Model:
+        Model m = ModelFactory.createDefaultModel();
+        ModelChangedListener L = new MyListener();
+        m.register( L );</p>
+<p><em>MyListener</em> must be an implementation of <em>ModelChangedListener</em>,
+for example:
+        class MyListener implements ModelChangedListener
+            {
+            public void addedStatement( Statement s )
+                { System.out.println( "&gt;&gt; added statement " + s ); }
+            public void addedStatements( Statement [] statements ) {}
+            public void addedStatements( List statements ) {}
+            public void addedStatements( StmtIterator statements ) {}
+            public void addedStatements( Model m ) {}
+            public void removedStatement( Statement s ) {}
+            public void removedStatements( Statement [] statements ) {}
+            public void removedStatements( List statements ) {}
+            public void removedStatements( StmtIterator statements ) {}
+            public void removedStatements( Model m ) {}
+            }</p>
+<p>This listener ignores everything except the addition of single
+statements to <em>m</em>; those it prints out. The listener has a method
+for each of the ways that statements can be added to a Model:
+-   as a single statement, Model::add(Statement)
+-   as an element of an array of statements,
+    Model::add(Statement[])
+-   as an element of a list of statements, Model::add(List)
+-   as an iterator over statements, Model::add(StmtIterator)
+-   as part of another Model, Model::add(Model)</p>
+<p>(Similarly for <em>delete</em>.)</p>
+<p>The listener method is called when the statement(s) have been added
+to the Model, if no exceptions have been thrown. It does not matter
+if the statement was <em>already</em> in the Model or not; it is the act
+of adding it that fires the listener.</p>
+<p>There is no guarantee that the statement, array, list, or model
+that is added or removed is the same one that is passed to the
+appropriate listener method, and the <em>StmtIterator</em> will never be
+the same one. However, in the current design:</p>
+<ul>
+<li>a single Statement will be .equals to the original Statement</li>
+<li>a List will be .equals to the original List</li>
+<li>a Statement[] will be the same length and have .equal elements
+    in the same order</li>
+<li>a StmtIterator will deliver .equal elements in the same order</li>
+<li>a Model will contain the same statements</li>
+</ul>
+<p>We advise not relying on these ordering properties; instead assume
+that for any bulk update operation on the model, the listener will
+be told the method of update and the statements added or removed,
+but that the order may be different and duplicate statements may
+have been removed.
+Note in particular that a Model with any Listeners will have to
+record the complete contents of any <em>StmtIterator</em> that is added or
+removed to the model, so that the Model and the Listener can both
+see all the statements.</p>
+<p>Finally, there is no guarantee that <em>only</em> Statements etc added
+through the Model API will be presented to the listener; any
+Triples added to its underlying Graph will also be presented to the
+listener as statements.</p>
+<h2 id="utility_classes">Utility classes</h2>
+<p>The full Listener API is rather chunky and it can be inconvenient
+to use, especially for the creation of inline classes. There are
+four utility classes in <em>com.hp.hpl.jena.rdf.listeners:</em>
+-   <em>NullListener</em>. This class's methods do nothing. This is useful
+    when you want to subclass and intercept only specific ways of
+    updating a Model.
+-   <em>ChangedListener</em>. This class only records whether some change
+    has been made, but not what it is. The method <em>hasChanged()</em>
+    returns <em>true</em> if some change has been made since the last call of
+    <em>hasChanged()</em> [or since the listener was created].
+-   <em>StatementListener</em>. This class translates all bulk update
+    calls (ie the ones other than <em>addedStatement()</em> and
+    <em>removedStatement()</em>) into calls to
+    <em>addedStatement()/removedStatement()</em> for each Statement in the
+    collection. This allows statements to be tracked whether they are
+    added one at a time or in bulk.
+-   <em>ObjectListener</em>. This class translates all the listener calls
+    into <em>added(Object)</em> or <em>removed(Object)</em> as appropriate; it is
+    left to the user code to distinguish among the types of argument.</p>
+<h2 id="when_listeners_are_called">When listeners are called</h2>
+<p>In the current implementation, listener methods are called
+immediately the additions or removals are made, in the same thread
+as the one making the update. If a model has multiple listeners
+registered, the order in which they are informed about an update is
+unspecified and may change from update to update. If any listener
+throws an exception, that exception is thrown through the update
+call, and other listeners may not be informed of the update.
+Hence listener code should be brief and exception-free if at all
+possible.</p>
+<h2 id="registering_and_unregistering">Registering and unregistering</h2>
+<p>A listener may be registered with the same model multiple times. If
+so, it will be invoked as many times as it is registered for each
+update event on the model.</p>
+<p>A listener <em>L</em> may be <em>unregistered</em> from a Model using the method
+<code>unregister(L)</code>. If <em>L</em> is not registered with the model, nothing
+happens.</p>
+<p>If a listener is registered multiple times with the same model,
+each <code>unregister()</code> for that listener will remove just one of the
+registrations.</p>
+<h2 id="transactions_and_databases">Transactions and databases</h2>
+<p>In the current design, listeners are not informed of transaction
+boundaries, and all events are fed to listeners as soon as they
+happen.
+In the current implementation, if an RDB model <em>M</em> is modified by
+some other client of the database, those changes are not seen and
+thus are not reported to listeners.</p>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/jena/trunk/content/jena/documentation/notes/file-manager.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/notes/file-manager.html (added)
+++ websites/staging/jena/trunk/content/jena/documentation/notes/file-manager.html Mon Sep 12 23:39:50 2011
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/jena/css/jena.css" rel="stylesheet" type="text/css">
+  <title>Apache Jena - The Jena FileManager and LocationMapper</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script src="/jena/js/jquery-1.6.1.min.js" type="text/javascript"></script>
+  <script src="/jena/js/jena-navigation.js" type="text/javascript"></script>
+</head>
+
+<body>
+  <div id="header">
+    <div id="logoblock">
+    <img alt="Apache Jena" src="/jena/images/jena-logo/jena-logo-small.png"/>
+    </div>
+
+    <div id="titleblock">
+      <h1 class="title">Apache Jena</h1>
+      <div id="topmenu" class="tabbar round-10">
+        <ul>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/index.html" id="home_menu">Home</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/help_and_support/index.html">Support</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/getting_started/index.html">Getting started</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/tutorials/index.html">Tutorials</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/documentation/index.html">Documentation</a></li>
+        </ul>
+      </div>
+    </div>
+  </div>
+
+  <div id="navigation" class="clear">
+  <h1 id="quick_links">Quick links</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/download/index.html">Downloads</a></li>
+<li><a href="/jena/help_and_support/index.html">Help and support</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/getting_involved/index.html">Getting involved</a></li>
+</ul>
+<h1 id="about_jena">About Jena</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/about_jena/about.html">About Jena</a></li>
+<li><a href="/jena/about_jena/architecture.html">Architecture</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/about_jena/team.html">Project team</a></li>
+</ul>
+<h1 id="download">Download</h1>
+<ul>
+<li><a href="/jena/download/index.html">Downloading Jena</a></li>
+<li><a href="/jena/download/maven.html">Using Maven</a></li>
+<li><a href="/jena/download/osgi.html">Using OSGi</a></li>
+</ul>
+<h1 id="help_and_support">Help and support</h1>
+<ul>
+<li><a href="/jena/help_and_support/index.html">Getting help</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Bugs and suggestions</a></li>
+</ul>
+<h1 id="getting_started">Getting Started</h1>
+<ul>
+<li><a href="/jena/getting_started/index.html">A first Jena project</a></li>
+<li><a href="/jena/getting_started/rdf_api.html">RDF API overview</a></li>
+<li><a href="/jena/getting_started/sparql.html">Querying RDF with SPARQL</a></li>
+<li><a href="/jena/getting_started/fuseki.html">Serving RDF over HTTP</a></li>
+<li><a href="/jena/getting_started/tell_me_how.html">Tell me how to ...</a></li>
+</ul>
+<h1 id="tutorials">Tutorials</h1>
+<ul>
+<li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
+<li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/jena/documentation/index.html">Overview</a></li>
+<li><a href="/jena/documentation/javadoc">Javadoc</a></li>
+<li><a href="/jena/documentation/rdf/index.html">RDF</a></li>
+<li><a href="/jena/documentation/query/index.html">Query</a></li>
+<li><a href="/jena/documentation/tdb/index.html">TDB</a></li>
+<li><a href="/jena/documentation/sdb/index.html">SDB</a></li>
+<li><a href="/jena/documentation/larq/index.html">LARQ</a></li>
+<li><a href="/jena/documentation/serving_data/index.html">Serving Data</a></li>
+<li><a href="/jena/documentation/ontology/index.html">Ontology</a></li>
+<li><a href="/jena/documentation/inference/index.html">Inference</a></li>
+<li><a href="/jena/documentation/assembler/index.html">Assembler</a><ul>
+<li><a href="/jena/documentation/assembler/assembler-howto.html">Assembler how-to</a></li>
+<li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
+<li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
+</ul>
+</li>
+</ul>
+<h1 id="getting_involved">Getting Involved</h1>
+<ul>
+<li><a href="/jena/getting_involved/index.html">Contributing to Jena</a></li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">The Jena FileManager and LocationMapper</h1>
+    <p>The FileManager is a utility to find and read files into models.
+There is a standard global FileManager and applications may also
+define specific ones by constructing addition FileManagers.</p>
+<p>The LocationMapper provides alternative locations for RDF data.</p>
+<h2 id="the_file_manager">The File Manager</h2>
+<p>Files are named by a string, according to the conventions of their
+storage system. Typically this is by URI. There are a number of
+storage system adapters provided:</p>
+<ul>
+<li>File locator (with own current directory)</li>
+<li>URL locator</li>
+<li>Class loader locator</li>
+<li>Zip file locator</li>
+</ul>
+<p>The global file manager has a file location, a URL locator and a
+class loader (tried in that order).
+A FileManager can have an associated LocationMapper that transforms
+names before use. This means local copies of documents can be used
+transparently to the rest of the application.</p>
+<p>There are two categories of operations: loadModel, readModel. Load
+operations fetch and parse the data into a new memory model. Read
+operations fetch and parse the data into an existing model. For
+more complex ways to create a new model see
+<a href="../assembler/index.html">the Assembler documentation</a>.</p>
+<p>Each FileManager has an optional in-memory cache of models. When
+on, loading models will look in the cache first and return a cached
+model if possible. This cached model is not copied - updates <em>will</em>
+change the cached version. The default is that cache is off.</p>
+<p>In fetching and parsing a file, the file manager will attempt to
+guess the serialization format, if not explicitly supplied. This is
+by name extension:</p>
+<ul>
+<li><code>.rdf</code> and <code>.owl</code> : RDF/XML</li>
+<li><code>.n3</code> : N3</li>
+<li><code>.nt</code> : N-Triples</li>
+<li>Anything else: RDF/XML</li>
+</ul>
+<h2 id="the_locationmapper_configuration_file">The LocationMapper configuration file</h2>
+<p>This example uses the RDF subset of
+<a href="http://www.w3.org/2000/10/swap/Primer">N3</a>. Jena has an RDF reader
+and RDF writer for N3. This is nearly the same as
+<a href="http://www.ilrt.bris.ac.uk/discovery/2004/01/turtle/">Turtle</a> but
+allowing international characters and some restrictions due to N3.</p>
+<p>Location mapping files are RDF - they may be written in RDF/XML, N3
+(file suffix <code>.n3</code>) or N-Triples (file suffix <code>.nt</code>). The default
+is RDF/XML unless one of these suffices is found.</p>
+<div class="codehilite"><pre><span class="nv">@prefix</span> <span class="n">lm:</span> <span class="sr">&lt;http://jena.hpl.hp.com/2004/08/location-mapping#&gt;</span>
+
+<span class="o">[]</span> <span class="n">lm:mapping</span>
+   <span class="p">[</span> <span class="n">lm:name</span> <span class="s">&quot;file:foo.n3&quot;</span> <span class="p">;</span>     <span class="n">lm:altName</span> <span class="s">&quot;file:etc/foo.n3&quot;</span> <span class="p">]</span> <span class="p">,</span>
+   <span class="p">[</span> <span class="n">lm:prefix</span> <span class="s">&quot;file:etc/&quot;</span> <span class="p">;</span>     <span class="n">lm:altPrefix</span> <span class="s">&quot;file:ETC/&quot;</span> <span class="p">]</span> <span class="p">,</span>
+   <span class="p">[</span> <span class="n">lm:name</span> <span class="s">&quot;file:etc/foo.n3&quot;</span> <span class="p">;</span> <span class="n">lm:altName</span> <span class="s">&quot;file:DIR/foo.n3&quot;</span> <span class="p">]</span>
+   <span class="o">.</span>
+</pre></div>
+
+
+<p>There are two types of location mapping: exact match renaming and
+prefix renaming. When trying to find an alternative location, a
+LocationMapper first tries for an exact match; if none is found,
+the LocationMapper will search for the longest matching prefix. If
+two are the same length, there is no guarantee on order tried;
+there is no implied order in a location mapper configuration file
+(it sets up two hash tables).</p>
+<p>In the example above, <code>file:etc/foo.n3</code> becomes <code>file:DIR/foo.n3</code>
+because that is an exact match. The prefix match of file:/etc/ is
+ignored.</p>
+<p>All string tests are done case sensitively because the primary use
+is for URLs.</p>
+<p>Notes:</p>
+<ul>
+<li>Property values are not URIs, but strings. This is a system
+    feature, not an RDF feature. Prefix mapping is name rewriting;
+    alternate names are not treated as equivalent resources in the rest
+    of Jena. While application writers are encouraged to use URIs to
+    identify files, this is not always possible.</li>
+<li>There is no check to see if the alternative system resource is
+    equivalent to the original.</li>
+</ul>
+<p>A LocationMapper finds its configuration file by looking for the
+following files, in order:</p>
+<ul>
+<li><code>file:location-mapping.rdf</code></li>
+<li><code>file:location-mapping.n3</code></li>
+<li><code>file:etc/location-mapping.rdf</code></li>
+<li><code>file:etc/location-mapping.n3</code></li>
+</ul>
+<p>This is a specified as a path - note the path separator is always
+the character ';' regardless of operating system because URLs
+contain ':'.</p>
+<p>Applications can also set mappings programmatically. No
+configuration file is necessary.</p>
+<p>The base URI for reading models with the FileManager will be the
+original URI, not the alternative location.</p>
+<h3 id="debugging">Debugging</h3>
+<p>Using log4j, set the logging level of the classes:
+    com.hp.hpl.jena.util.FileManager=ALL
+    com.hp.hpl.jena.util.LocationManager=ALL</p>
+<h3 id="see_also">See also</h3>
+<p>Javadoc:
+<a href="../javadoc/com/hp/hpl/jena/util/FileManager.html">FileManager TODO</a>
+<a href="../javadoc/com/hp/hpl/jena/util/LocationMapper.html">LocationMapper TODO</a></p>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/jena/trunk/content/jena/documentation/notes/index.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/notes/index.html (added)
+++ websites/staging/jena/trunk/content/jena/documentation/notes/index.html Mon Sep 12 23:39:50 2011
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/jena/css/jena.css" rel="stylesheet" type="text/css">
+  <title>Apache Jena - General notes and how-to&#39;s</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script src="/jena/js/jquery-1.6.1.min.js" type="text/javascript"></script>
+  <script src="/jena/js/jena-navigation.js" type="text/javascript"></script>
+</head>
+
+<body>
+  <div id="header">
+    <div id="logoblock">
+    <img alt="Apache Jena" src="/jena/images/jena-logo/jena-logo-small.png"/>
+    </div>
+
+    <div id="titleblock">
+      <h1 class="title">Apache Jena</h1>
+      <div id="topmenu" class="tabbar round-10">
+        <ul>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/index.html" id="home_menu">Home</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/help_and_support/index.html">Support</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/getting_started/index.html">Getting started</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/tutorials/index.html">Tutorials</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/documentation/index.html">Documentation</a></li>
+        </ul>
+      </div>
+    </div>
+  </div>
+
+  <div id="navigation" class="clear">
+  <h1 id="quick_links">Quick links</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/download/index.html">Downloads</a></li>
+<li><a href="/jena/help_and_support/index.html">Help and support</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/getting_involved/index.html">Getting involved</a></li>
+</ul>
+<h1 id="about_jena">About Jena</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/about_jena/about.html">About Jena</a></li>
+<li><a href="/jena/about_jena/architecture.html">Architecture</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/about_jena/team.html">Project team</a></li>
+</ul>
+<h1 id="download">Download</h1>
+<ul>
+<li><a href="/jena/download/index.html">Downloading Jena</a></li>
+<li><a href="/jena/download/maven.html">Using Maven</a></li>
+<li><a href="/jena/download/osgi.html">Using OSGi</a></li>
+</ul>
+<h1 id="help_and_support">Help and support</h1>
+<ul>
+<li><a href="/jena/help_and_support/index.html">Getting help</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Bugs and suggestions</a></li>
+</ul>
+<h1 id="getting_started">Getting Started</h1>
+<ul>
+<li><a href="/jena/getting_started/index.html">A first Jena project</a></li>
+<li><a href="/jena/getting_started/rdf_api.html">RDF API overview</a></li>
+<li><a href="/jena/getting_started/sparql.html">Querying RDF with SPARQL</a></li>
+<li><a href="/jena/getting_started/fuseki.html">Serving RDF over HTTP</a></li>
+<li><a href="/jena/getting_started/tell_me_how.html">Tell me how to ...</a></li>
+</ul>
+<h1 id="tutorials">Tutorials</h1>
+<ul>
+<li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
+<li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/jena/documentation/index.html">Overview</a></li>
+<li><a href="/jena/documentation/javadoc">Javadoc</a></li>
+<li><a href="/jena/documentation/rdf/index.html">RDF</a></li>
+<li><a href="/jena/documentation/query/index.html">Query</a></li>
+<li><a href="/jena/documentation/tdb/index.html">TDB</a></li>
+<li><a href="/jena/documentation/sdb/index.html">SDB</a></li>
+<li><a href="/jena/documentation/larq/index.html">LARQ</a></li>
+<li><a href="/jena/documentation/serving_data/index.html">Serving Data</a></li>
+<li><a href="/jena/documentation/ontology/index.html">Ontology</a></li>
+<li><a href="/jena/documentation/inference/index.html">Inference</a></li>
+<li><a href="/jena/documentation/assembler/index.html">Assembler</a><ul>
+<li><a href="/jena/documentation/assembler/assembler-howto.html">Assembler how-to</a></li>
+<li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
+<li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
+</ul>
+</li>
+</ul>
+<h1 id="getting_involved">Getting Involved</h1>
+<ul>
+<li><a href="/jena/getting_involved/index.html">Contributing to Jena</a></li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">General notes and how-to&#39;s</h1>
+    <ul>
+<li><a href="concurrency-howto.mdtext">Concurrency how-to</a> Handling concurrent access to Jena models</li>
+<li><a href="event-handler-howto.mdtext">Event handler how-to</a> Responding to events</li>
+</ul>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>

Added: websites/staging/jena/trunk/content/jena/documentation/notes/model-factory.html
==============================================================================
--- websites/staging/jena/trunk/content/jena/documentation/notes/model-factory.html (added)
+++ websites/staging/jena/trunk/content/jena/documentation/notes/model-factory.html Mon Sep 12 23:39:50 2011
@@ -0,0 +1,424 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/jena/css/jena.css" rel="stylesheet" type="text/css">
+  <title>Apache Jena - Creating Jena models</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script src="/jena/js/jquery-1.6.1.min.js" type="text/javascript"></script>
+  <script src="/jena/js/jena-navigation.js" type="text/javascript"></script>
+</head>
+
+<body>
+  <div id="header">
+    <div id="logoblock">
+    <img alt="Apache Jena" src="/jena/images/jena-logo/jena-logo-small.png"/>
+    </div>
+
+    <div id="titleblock">
+      <h1 class="title">Apache Jena</h1>
+      <div id="topmenu" class="tabbar round-10">
+        <ul>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/index.html" id="home_menu">Home</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/help_and_support/index.html">Support</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/getting_started/index.html">Getting started</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/tutorials/index.html">Tutorials</a></li>
+        <li class="round-top-8"><a class="round-top-8" href="/jena/documentation/index.html">Documentation</a></li>
+        </ul>
+      </div>
+    </div>
+  </div>
+
+  <div id="navigation" class="clear">
+  <h1 id="quick_links">Quick links</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/download/index.html">Downloads</a></li>
+<li><a href="/jena/help_and_support/index.html">Help and support</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/getting_involved/index.html">Getting involved</a></li>
+</ul>
+<h1 id="about_jena">About Jena</h1>
+<ul>
+<li><a href="/jena/index.html">Home</a></li>
+<li><a href="/jena/about_jena/about.html">About Jena</a></li>
+<li><a href="/jena/about_jena/architecture.html">Architecture</a></li>
+<li><a href="/jena/about_jena/roadmap.html">Roadmap</a></li>
+<li><a href="/jena/about_jena/team.html">Project team</a></li>
+</ul>
+<h1 id="download">Download</h1>
+<ul>
+<li><a href="/jena/download/index.html">Downloading Jena</a></li>
+<li><a href="/jena/download/maven.html">Using Maven</a></li>
+<li><a href="/jena/download/osgi.html">Using OSGi</a></li>
+</ul>
+<h1 id="help_and_support">Help and support</h1>
+<ul>
+<li><a href="/jena/help_and_support/index.html">Getting help</a></li>
+<li><a href="/jena/help_and_support/bugs_and_suggestions.html">Bugs and suggestions</a></li>
+</ul>
+<h1 id="getting_started">Getting Started</h1>
+<ul>
+<li><a href="/jena/getting_started/index.html">A first Jena project</a></li>
+<li><a href="/jena/getting_started/rdf_api.html">RDF API overview</a></li>
+<li><a href="/jena/getting_started/sparql.html">Querying RDF with SPARQL</a></li>
+<li><a href="/jena/getting_started/fuseki.html">Serving RDF over HTTP</a></li>
+<li><a href="/jena/getting_started/tell_me_how.html">Tell me how to ...</a></li>
+</ul>
+<h1 id="tutorials">Tutorials</h1>
+<ul>
+<li><a href="/jena/tutorials/index.html">RDF tutorial</a></li>
+<li><a href="/jena/tutorials/sparql.html">SPARQL queries</a></li>
+<li><a href="/jena/tutorials/usingklzzwxh:0025jenaklzzwxh:0026withklzzwxh:0027eclipse.html">Using Jena with Eclipse</a></li>
+</ul>
+<h1 id="documentation">Documentation</h1>
+<ul>
+<li><a href="/jena/documentation/index.html">Overview</a></li>
+<li><a href="/jena/documentation/javadoc">Javadoc</a></li>
+<li><a href="/jena/documentation/rdf/index.html">RDF</a></li>
+<li><a href="/jena/documentation/query/index.html">Query</a></li>
+<li><a href="/jena/documentation/tdb/index.html">TDB</a></li>
+<li><a href="/jena/documentation/sdb/index.html">SDB</a></li>
+<li><a href="/jena/documentation/larq/index.html">LARQ</a></li>
+<li><a href="/jena/documentation/serving_data/index.html">Serving Data</a></li>
+<li><a href="/jena/documentation/ontology/index.html">Ontology</a></li>
+<li><a href="/jena/documentation/inference/index.html">Inference</a></li>
+<li><a href="/jena/documentation/assembler/index.html">Assembler</a><ul>
+<li><a href="/jena/documentation/assembler/assembler-howto.html">Assembler how-to</a></li>
+<li><a href="/jena/documentation/assembler/inside-assemblers.html">Inside assemblers</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/notes/index.html">Notes</a><ul>
+<li><a href="/jena/documentation/assembler/concurrency-howto.html">Concurrency how-to</a></li>
+</ul>
+</li>
+<li><a href="/jena/documentation/tools/index.html">Tools</a><ul>
+<li><a href="/jena/documentation/tools/schemagen.html">schemagen</a></li>
+</ul>
+</li>
+</ul>
+<h1 id="getting_involved">Getting Involved</h1>
+<ul>
+<li><a href="/jena/getting_involved/index.html">Contributing to Jena</a></li>
+</ul>
+<h1 id="asf_links">ASF links</h1>
+<ul>
+<li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+  </div>
+
+  <div id="content">
+    <h1 class="title">Creating Jena models</h1>
+    <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>com.hp.hpl.jena.rdf.model</code>.
+Most of <code>ModelFactory</code> methods have been around for a while now,
+but Jena 2.5's ModelFactory contains methods that use the
+<code>Assembler</code> API which appeared in Jena.4, which allows models to
+be created according to RDF descriptions that can be
+programmatically constructed or read in from external resources
+such as configuration files. (This API replaces the old <code>ModelSpec</code>
+API, which had proved unsatisfactory.)</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="modelmakers">ModelMakers</h2>
+<p>Plain models can be given names which allows them to be "saved" 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'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="../javadoc/com/hp/hpl/jena/rdf/model/ModelMaker.html">ModelMaker javadoc TODO </a>.</p>
+<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="reification_styles">Reification styles</h2>
+<p>Jena models have different <em>reification styles</em>, which are
+described in more detail in the
+<a href="reification.html">reification howto</a>. <code>ModelFactory</code> provides
+constants for those styles:</p>
+<ul>
+<li><code>ModelFactory.Standard</code></li>
+<li><code>ModelFactory.Convenient</code></li>
+<li><code>ModelFactory.Minimal</code></li>
+</ul>
+<p>And methods corresponding to those already discussed:</p>
+<ul>
+<li>
+<p><code>ModelFactory.createDefaultModel(style)</code> creates a default model
+with the specified reification style.</p>
+</li>
+<li>
+<p><code>ModelFactory.createMemModelMaker(style)</code> creates a ModelMaker that
+creates memory models with the specified reification style.</p>
+</li>
+<li>
+<p><code>ModelFactory.createFileModelMaker(root,style)</code>
+creates a ModelMaker that creates file-associated models with the
+specified reification style.</p>
+</li>
+</ul>
+<p>Reification styles also appear in other Modelfactory methods,
+although they are not required. We shall not discuss them further
+in this document; consult the Javadoc for appropriate details.</p>
+<h2 id="database_model_creation">Database model creation</h2>
+<p>Jena allows models to be created within databases. For an extensive
+discussion of the available options and controls, see the
+<a href="../DB/index.html">database howto documents</a>. The current
+ModelFactory interface only provides simple access to database
+model creation.
+ModelFactory creation of models takes place through RDB
+ModelMakers:</p>
+<ul>
+<li><code>createModelRDBMaker(IDBConnection c)</code></li>
+</ul>
+<p>delivers a ModelMaker that makes (or finds) models by name in the
+Jena model database attached to the connection <code>c</code>. Models from an
+RDB maker are "just like" memory-based models, except that they can
+be much larger, are likely to be significantly slower, and persist
+over application termination.
+The connection can be created in two ways:</p>
+<ul>
+<li>
+<p><code>ModelFactory.createSimpleRDBConnection(url,user,pass,type)</code>:
+creates a connection to the database with the given JDBC url, the
+given user and password, and the database type.</p>
+</li>
+<li>
+<p><code>ModelFactory.createSimpleRDBConnection()</code>: creates a connection to
+the database, taking the URL from the system property
+<strong>jena.db.url</strong>, the user name from <strong>jena.db.user</strong>, the password
+from <strong>jena.db.password</strong>, and the database type from
+<strong>jena.db.type</strong>.</p>
+</li>
+</ul>
+<p>Details of these fields can be found in the database documentation,
+as well as direct ways to construct connections if required, and
+additional operations on RDB Models that may be useful.</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, OWL, and DAML).
+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't change, or at least not change
+as often as the base model.</p>
+</li>
+</ul>
+<p>It'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="../javadoc/com/hp/hpl/jena/reasoner/ReasonerRegistry.html">ReasonerRegistry TODO</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, OWL, and DAML ontologies through <em>profiles</em>.
+There is extensive documentation on
+<a href="../ontology/index.html">Jena's ontology support</a>, so all we'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="../javadoc/com/hp/hpl/jena/ontology/OntModelSpec.html">OntModelSpec TODO</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's a cluster of
+constants in the class which provide for common uses; to name but
+three:
+- <code>OntModelSpec.OWL_MEM_RDFS_INF</code> OWL ontologies, model stored in
+memory, using RDFS entailment only</p>
+<ul>
+<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 new feature of Jena since Jena 2.4 is the use of
+<em>assembler descriptions</em>, 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>
+<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>
+<ul>
+<li>
+<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>
+</li>
+<li>
+<p><code>withHiddenStatements(Model)</code> returns a new Model in which any
+reification quadlets (see the reification howto) that may be hidden
+in the base model are exposed in the result. It may return the base
+model, if it does not hide quadlets. This is useful if you want to
+see all the statements of the model as they will appear in a
+serialisation.</p>
+</li>
+</ul>
+  </div>
+
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+
+</body>
+</html>