marmotta-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r851896 - in /websites/staging/marmotta/trunk/content: ./ css/site.css dependencies.html kiwi-triplestore.html rat-report.html
Date Mon, 25 Feb 2013 17:12:48 GMT
Author: buildbot
Date: Mon Feb 25 17:12:48 2013
New Revision: 851896

Log:
Staging update by buildbot for marmotta

Modified:
    websites/staging/marmotta/trunk/content/   (props changed)
    websites/staging/marmotta/trunk/content/css/site.css
    websites/staging/marmotta/trunk/content/dependencies.html
    websites/staging/marmotta/trunk/content/kiwi-triplestore.html
    websites/staging/marmotta/trunk/content/rat-report.html

Propchange: websites/staging/marmotta/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Feb 25 17:12:48 2013
@@ -1 +1 @@
-1449728
+1449781

Modified: websites/staging/marmotta/trunk/content/css/site.css
==============================================================================
--- websites/staging/marmotta/trunk/content/css/site.css (original)
+++ websites/staging/marmotta/trunk/content/css/site.css Mon Feb 25 17:12:48 2013
@@ -72,6 +72,7 @@ div.navbar-inner {
     -webkit-box-shadow: rgba(0, 0, 0, 0.247059) 0px 1px 3px 0px, rgba(0, 0, 0, 0.0980392)
0px -1px 0px 0px inset;
     background-color: rgb(44, 44, 44);
     background-image: -webkit-linear-gradient(top, rgb(51, 51, 51), rgb(34, 34, 34));
+    background-image: linear-gradient(to bottom, rgb(51, 51, 51), rgb(34, 34, 34));
     background-repeat: repeat-x;
     border-bottom-left-radius: 0px;
     border-bottom-right-radius: 0px;

Modified: websites/staging/marmotta/trunk/content/dependencies.html
==============================================================================
--- websites/staging/marmotta/trunk/content/dependencies.html (original)
+++ websites/staging/marmotta/trunk/content/dependencies.html Mon Feb 25 17:12:48 2013
@@ -235,8 +235,8 @@
         }
       }
 </script>
-<a name="Dependency_Tree"></a><div class="section"><h3>Dependency
Tree<a name="Dependency_Tree"></a></h3><ul><li>org.apache.marmotta:marmotta-site:pom:3.0.0-incubating-SNAPSHOT
<img id="_306405807" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_1555978865', '_306405807' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_1555978865" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>Apache Marmotta Site</th></tr><tr class="b"><td><p><b>Description:
</b>Files for the Marmotta site (Apache CMS)</p><p><b>URL: </b><a
class="externalLink" href="http://marmotta.incubator.apache.org">http://marmotta.incubator.apache.org</a></p><p><b>Project
License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache
Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.marmotta:marmotta-reactor:pom:3.0.0-incubating-SNAPSHOT
(compile) <img id="_
 1025244318" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_276500039', '_1025244318' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_276500039" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>Apache Marmotta</th></tr><tr class="b"><td><p><b>Description:
</b>Open implementation of the Linked Data Platform</p><p><b>URL:
</b><a class="externalLink" href="http://marmotta.incubator.apache.org">http://marmotta.incubator.apache.org</a></p><p><b>Project
License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache
Software License, Version 2.0</a></p></td></tr></table></div></li><li>javax.servlet:servlet-api:jar:2.5
(provided) <img id="_2033675655" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_2114102329', '_2033675655' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_2114102329" style="disp
 lay:none"><table border="0" class="table table-striped"><tr class="a"><th>servlet-api</th></tr><tr
class="b"><td><p><b>Description: </b>There is currently no description
associated with this project.</p><p><b>Project License: </b>No license
is defined for this project.</p></td></tr></table></div></li><li>junit:junit:jar:4.11
(test) <img id="_1298999282" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_323452821', '_1298999282' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_323452821" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>JUnit</th></tr><tr class="b"><td><p><b>Description:
</b>JUnit is a regression testing framework written by Erich Gamma and Kent Beck.
-        It is used by the developer who implements unit tests in Java.</p><p><b>URL:
</b><a class="externalLink" href="http://junit.org">http://junit.org</a></p><p><b>Project
License: </b><a class="externalLink" href="http://www.opensource.org/licenses/cpl1.0.txt">Common
Public License Version 1.0</a></p></td></tr></table></div></li><li>org.hamcrest:hamcrest-library:jar:1.3
(test) <img id="_976484723" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_1760635870', '_976484723' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_1760635870" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>Hamcrest library</th></tr><tr class="b"><td><p><b>Description:
</b>Hamcrest library of matcher implementations.</p><p><b>URL: </b><a
class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-library">https://github.com/hamcrest/JavaHamcrest/hamcrest-library</a></p><p><b>Project
Licen
 se: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New
BSD License</a></p></td></tr></table></div></li><li>org.hamcrest:hamcrest-core:jar:1.3
(test) <img id="_1230352185" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_937349248', '_1230352185' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_937349248" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>Hamcrest Core</th></tr><tr class="b"><td><p><b>Description:
</b>This is the core API of hamcrest matcher framework to be used by third-party framework
providers. This includes the a foundation set of matcher implementations for common operations.</p><p><b>URL:
</b><a class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">https://github.com/hamcrest/JavaHamcrest/hamcrest-core</a></p><p><b>Project
License: </b><a class="externalLink" href="http://www.opensource.org/lic
 enses/bsd-license.php">New BSD License</a></p></td></tr></table></div></li></ul></li></ul></div></div><a
name="Licenses"></a><div class="section"><h2>Licenses<a name="Licenses"></a></h2><p><b>Apache
Software License, Version 2.0: </b>Apache Marmotta, Apache Marmotta Site</p><p><b>New
BSD License: </b>Hamcrest Core, Hamcrest library</p><p><b>Unknown:
</b>servlet-api</p><p><b>Common Public License Version 1.0: </b>JUnit</p></div><a
name="Dependency_File_Details"></a><div class="section"><h2>Dependency
File Details<a name="Dependency_File_Details"></a></h2><table border="0"
class="table table-striped"><tr class="a"><th>Filename</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK
Rev</th><th>Debug</th></tr><tr class="b"><td>servlet-api-2.5.jar</td><td>102.65
kB</td><td>68</td><td>42</td><td>2</td><td>1.5</td><td>debug</td></tr><tr
class="a"><td>junit-4.11.jar</td><td>239.30 kB</td><td>266</td><td>233</td><td>28</td><td>1.5</td><td>debug</td></tr><tr
class="
 b"><td>marmotta-reactor-3.0.0-incubating-SNAPSHOT.pom</td><td>9.62 kB</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr><tr
class="a"><td>hamcrest-core-1.3.jar</td><td>43.97 kB</td><td>52</td><td>45</td><td>3</td><td>1.5</td><td>debug</td></tr><tr
class="b"><td>hamcrest-library-1.3.jar</td><td>51.83 kB</td><td>46</td><td>35</td><td>7</td><td>1.5</td><td>debug</td></tr><tr
class="a"><th>Total</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK
Rev</th><th>Debug</th></tr><tr class="b"><td>5</td><td>447.36
kB</td><td>432</td><td>355</td><td>40</td><td>1.5</td><td>4</td></tr><tr
class="a"><td>compile: 1</td><td>compile: 9.62 kB</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr><tr
class="b"><td>test: 3</td><td>test: 335.09 kB</td><td>test:
364</td><td>test: 313</td><td>test: 38</td><td>-</td><td>test:
3</td></tr><tr class="a"><td>provided: 1</td><td>provided:
102.65 kB</td><td>provided: 68</td><td>provided: 42</td><td>provided:
2</td><td>-
 </td><td>provided: 1</td></tr></table></div>
+<a name="Dependency_Tree"></a><div class="section"><h3>Dependency
Tree<a name="Dependency_Tree"></a></h3><ul><li>org.apache.marmotta:marmotta-site:pom:3.0.0-incubating-SNAPSHOT
<img id="_1678408648" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_765064455', '_1678408648' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_765064455" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>Apache Marmotta Site</th></tr><tr class="b"><td><p><b>Description:
</b>Files for the Marmotta site (Apache CMS)</p><p><b>URL: </b><a
class="externalLink" href="http://marmotta.incubator.apache.org">http://marmotta.incubator.apache.org</a></p><p><b>Project
License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache
Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.marmotta:marmotta-reactor:pom:3.0.0-incubating-SNAPSHOT
(compile) <img id="_
 580287586" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_559741456', '_580287586' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_559741456" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>Apache Marmotta</th></tr><tr class="b"><td><p><b>Description:
</b>Open implementation of the Linked Data Platform</p><p><b>URL:
</b><a class="externalLink" href="http://marmotta.incubator.apache.org">http://marmotta.incubator.apache.org</a></p><p><b>Project
License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache
Software License, Version 2.0</a></p></td></tr></table></div></li><li>javax.servlet:servlet-api:jar:2.5
(provided) <img id="_1509307358" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_186273995', '_1509307358' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_186273995" style="display:
 none"><table border="0" class="table table-striped"><tr class="a"><th>servlet-api</th></tr><tr
class="b"><td><p><b>Description: </b>There is currently no description
associated with this project.</p><p><b>Project License: </b>No license
is defined for this project.</p></td></tr></table></div></li><li>junit:junit:jar:4.11
(test) <img id="_590332378" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_529979813', '_590332378' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_529979813" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>JUnit</th></tr><tr class="b"><td><p><b>Description:
</b>JUnit is a regression testing framework written by Erich Gamma and Kent Beck.
+        It is used by the developer who implements unit tests in Java.</p><p><b>URL:
</b><a class="externalLink" href="http://junit.org">http://junit.org</a></p><p><b>Project
License: </b><a class="externalLink" href="http://www.opensource.org/licenses/cpl1.0.txt">Common
Public License Version 1.0</a></p></td></tr></table></div></li><li>org.hamcrest:hamcrest-library:jar:1.3
(test) <img id="_539642061" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_560200', '_539642061' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_560200" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>Hamcrest library</th></tr><tr class="b"><td><p><b>Description:
</b>Hamcrest library of matcher implementations.</p><p><b>URL: </b><a
class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-library">https://github.com/hamcrest/JavaHamcrest/hamcrest-library</a></p><p><b>Project
License: </b>
 <a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New
BSD License</a></p></td></tr></table></div></li><li>org.hamcrest:hamcrest-core:jar:1.3
(test) <img id="_1835405702" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail(
'_65618614', '_1835405702' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div
id="_65618614" style="display:none"><table border="0" class="table table-striped"><tr
class="a"><th>Hamcrest Core</th></tr><tr class="b"><td><p><b>Description:
</b>This is the core API of hamcrest matcher framework to be used by third-party framework
providers. This includes the a foundation set of matcher implementations for common operations.</p><p><b>URL:
</b><a class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">https://github.com/hamcrest/JavaHamcrest/hamcrest-core</a></p><p><b>Project
License: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-
 license.php">New BSD License</a></p></td></tr></table></div></li></ul></li></ul></div></div><a
name="Licenses"></a><div class="section"><h2>Licenses<a name="Licenses"></a></h2><p><b>Apache
Software License, Version 2.0: </b>Apache Marmotta, Apache Marmotta Site</p><p><b>New
BSD License: </b>Hamcrest Core, Hamcrest library</p><p><b>Unknown:
</b>servlet-api</p><p><b>Common Public License Version 1.0: </b>JUnit</p></div><a
name="Dependency_File_Details"></a><div class="section"><h2>Dependency
File Details<a name="Dependency_File_Details"></a></h2><table border="0"
class="table table-striped"><tr class="a"><th>Filename</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK
Rev</th><th>Debug</th></tr><tr class="b"><td>servlet-api-2.5.jar</td><td>102.65
kB</td><td>68</td><td>42</td><td>2</td><td>1.5</td><td>debug</td></tr><tr
class="a"><td>junit-4.11.jar</td><td>239.30 kB</td><td>266</td><td>233</td><td>28</td><td>1.5</td><td>debug</td></tr><tr
class="b"><td>mar
 motta-reactor-3.0.0-incubating-SNAPSHOT.pom</td><td>9.62 kB</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr><tr
class="a"><td>hamcrest-core-1.3.jar</td><td>43.97 kB</td><td>52</td><td>45</td><td>3</td><td>1.5</td><td>debug</td></tr><tr
class="b"><td>hamcrest-library-1.3.jar</td><td>51.83 kB</td><td>46</td><td>35</td><td>7</td><td>1.5</td><td>debug</td></tr><tr
class="a"><th>Total</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK
Rev</th><th>Debug</th></tr><tr class="b"><td>5</td><td>447.36
kB</td><td>432</td><td>355</td><td>40</td><td>1.5</td><td>4</td></tr><tr
class="a"><td>compile: 1</td><td>compile: 9.62 kB</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr><tr
class="b"><td>test: 3</td><td>test: 335.09 kB</td><td>test:
364</td><td>test: 313</td><td>test: 38</td><td>-</td><td>test:
3</td></tr><tr class="a"><td>provided: 1</td><td>provided:
102.65 kB</td><td>provided: 68</td><td>provided: 42</td><td>provided:
2</td><td>-</td><td>p
 rovided: 1</td></tr></table></div>
                   </div>
           </div>
 

Modified: websites/staging/marmotta/trunk/content/kiwi-triplestore.html
==============================================================================
--- websites/staging/marmotta/trunk/content/kiwi-triplestore.html (original)
+++ websites/staging/marmotta/trunk/content/kiwi-triplestore.html Mon Feb 25 17:12:48 2013
@@ -218,7 +218,80 @@
                 
         <div id="bodyColumn" >
                                   
-            <h1>KiWi Triple Store</h1><p>TODO</p>
+            <h1>KiWi Triple Store</h1><p>The KiWi triple store is a high
performance transactional triple store backend for OpenRDF Sesame building on top of a relational
database (currently H2, PostgreSQL, or MySQL). It has optional support for rule-based reasoning
(sKWRL) and versioning of updates. The KiWi triple store is also the default backend for Apache
Marmotta. It originated in the EU-funded research project KiWi - Knowledge in a Wiki (hence
the name).</p><div class="section"><h2>Introduction<a name="Introduction"></a></h2><p>The
KiWi triple store is composed of a number of Sesame Sail modules that can be combined and
stacked as needed. Currently (Apache Marmotta v3.0), the KiWi triple store offers the following
modules:</p>
+<ul>
+  <li>kiwi-triplestore: implements triple persistence in a relational database</li>
+  <li>kiwi-transactions: adds extended transaction support to a notifying sail (notifies
on transaction commit)</li>
+  <li>kiwi-tripletable: support for in-memory indexed Java Collections for OpenRDF
statements</li>
+  <li>kiwi-contextaware: support for context-aware OpenRDF Sails (allow overriding
contexts in statements)</li>
+  <li>kiwi-reasoner: adds a rule-based forward chaining reasoner with truth maintenance
for the KiWi triple store</li>
+  <li>kiwi-versioning: adds versioning of updates to a KiWi triple store</li>
+</ul><p>Versioning and Reasoner only work with a KiWi store as parent Sail, i.e.
they cannot be used with other Sesame backends. Transactions, Context-Aware Sails, and the
Triple Table support classes are in principle independent and can also be stacked with other
storage backends.</p></div><div class="section"><h2>KiWi Store (kiwi-triplestore)<a
name="KiWi_Store_kiwi-triplestore"></a></h2><p>The heart of the KiWi
triple store is the KiWiStore storage backend. It implements a OpenRDF Notifying Sail on top
of a custom relational database schema. It can be used in a similar way to the already existing
(but now deprecated) OpenRDF RDBMS backends. The KiWi triple store operates almost directly
on top of the relational database, there is only minimal overhead on the Java side (some caching
and result transformations). Each OpenRDF repository connection is a database connection,
and each repository result is a database cursor (so it supports lazy fetching when iterating
over the r
 esult).</p>
+<div class="section"><h3> Maven Artifact <a name="Maven_Artifact"></a></h3><p>To
use the KiWiStore, include the following artifact in your Maven build file:</p>
+<div class="source"><pre class="prettyprint">&lt;dependency&gt;
+    &lt;groupId&gt;org.apache.marmotta&lt;/groupId&gt;
+    &lt;artifactId&gt;kiwi-triplestore&lt;/artifactId&gt;
+    &lt;version&gt;3.0.0-incubating-SNAPSHOT&lt;/version&gt;
+&lt;/dependency&gt;
+</pre></div>
+</div><div class="section"><h3> Code Usage <a name="Code_Usage"></a></h3><p>In
your code, creating a KiWi triple store works mostly like other OpenRDF backends. The only
additional data that is required are the JDBC connection details for accessing the database
(i.e. database type, database URI, database user and database password) and how to store inferred
triples or triples without explicit context. You can create a new instance of a KiWi store
as follows:</p>
+<div class="source"><pre class="prettyprint">String defaultContext  = &quot;http://localhost/context/default&quot;;
+String inferredContext = &quot;http://localhost/context/inferred&quot;;
+KiWiDialect dialect    = new H2Dialect();
+KiWiStore store = new KiWiStore(&quot;test&quot;,jdbcUrl,jdbcUser,jdbcPass,dialect,
defaultContext, inferredContext );
+Repository repository = new SailRepository(store);
+try {
+    repository.initialize();
+
+    // get a connection and perform operations as usual
+    RepositoryConnection con = repository.getConnection();
+    try {
+        con.begin();
+
+        // do stuff
+
+        con.commit();
+    } finally {
+        con.close();
+    }
+} catch(RepositoryException ex) {
+    // handle exception
+} finally {
+    repository.shutdown();
+}
+</pre></div><p>Note that there are some uncommon parameters, most notably
the defaultContext and inferredContext:</p>
+<ul>
+  <li><b>defaultContext</b> is the URI of the context to use in case no
explicit context is specified; this changes the default  behaviour of OpenRDF a bit, but it
is the cleaner approach (and more efficient in the relational database because it  avoids
NULL values)</li>
+  <li><b>inferredContext</b> is the URI to use for storing all triples
that are inferred by some reasoner (either the KiWi reasoner  or the OpenRDF RDFS reasoner);
this is also a different behaviour to OpenRDF; we use it because the semantics is  otherwise
not completely clear in case an inference was made based on the information stemming from
two different  contexts</li>
+  <li><b>dialect</b> specifies the dialect to use for connecting to the
database; currently supported dialects are H2Dialect,  PostgreSQLDialect and MySQLDialect;
note that the MySQL JDBC library is licensed under LGPL and can therefore not  be shipped
with Apache Marmotta</li>
+</ul><p>We plan to add support for additional databases over time.</p>
+</div><div class="section"><h3> Performance Considerations <a name="Performance_Considerations"></a></h3><p>Additionally,
there are some things to keep in mind when using a KiWi triple store (all of them are good
coding practice, but in KiWi they also have performance implications):</p>
+<ul>
+  <li>a RepositoryConnection has a direct correspondence to a database connection,
so it always needs to be closed properly;  if you forget closing connections, you will have
resource leakage pretty quickly</li>
+  <li>all operations carried out on a repository connection are directly carried out
in the database (e.g. inserting  triples); the database connection is transactional, i.e.
changes will only be available to other transactions when  the commit() method is called explicitly;
it is therefore good practice to always commit or rollback a connection  before closing it</li>
+  <li>a RepositoryResult has a direct correspondence to a database ResultSet and therefore
to a database cursor, so like  with connections, it needs to be closed properly or otherwise
you will have resource leakage</li>
+  <li>the value factory of the KiWi Store maintains its own, separate database connection
for creating and retrieving  RDF values; any newly created values are committed immediately
to the database to make sure they are available to  other transactions</li>
+  <li>the database tables will only be created when repository.initialize() is called;
if the tables already exist,  initialization will check whether a schema upgrade is required
and automatically do the upgrade if needed</li>
+  <li>the repository must be explicitly shutdown when it is no longer needed, or otherwise
it will keep open  the database connection of the value factory as well as the internal connection
pool</li>
+</ul></div></div><div class="section"><h2>KiWi Transaction
Support (kiwi-transactions)<a name="KiWi_Transaction_Support_kiwi-transactions"></a></h2><p>OpenRDF
Sesame already offers basic transaction handling and update notification support in any OpenRDF
sail stack around a NotifyingSail (i.e. it can be used independently of the KiWi triple store).
This module builds on this functionality to provide a mechanism for keeping track of all changes
(added and removed triples) occurring between the time a transaction began and the time the
transaction was committed or rolled back. The transaction data is then handed over to all
registered transaction listeners at certain event points (in analogy to JPA we offer before
commit, after commit, on rollback).</p><p>Extended transaction support is e.g.
used by the versioning component (each transaction is considered a unit of work or version)
and by the reasoner (on transaction commit, the transaction data is handed to the incremental
re
 asoner). It is also used by some extended Apache Marmotta and Linked Media Framework functionalities
like the LMF Semantic Search.</p>
+<div class="section"><h3> Maven Artifact <a name="Maven_Artifact"></a></h3><p>To
use the extended transaction support, include the following artifact in your Maven build file:</p>
+<div class="source"><pre class="prettyprint"> &lt;dependency&gt;
+     &lt;groupId&gt;org.apache.marmotta&lt;/groupId&gt;
+     &lt;artifactId&gt;kiwi-transactions&lt;/artifactId&gt;
+     &lt;version&gt;3.0.0-incubating-SNAPSHOT&lt;/version&gt;
+ &lt;/dependency&gt;
+</pre></div>
+</div><div class="section"><h3> Code Usage <a name="Code_Usage"></a></h3><p>In
your code, the KiWi extended transactions can easily be stacked into your sail stack around
any NotifyingSail. Event listeners can be added/removed by calling the appropriate addTransactionListener
and removeTransactionListener methods:</p>
+<div class="source"><pre class="prettyprint">KiWiTransactionalSail sail = new
KiWiTransactionalSail(new MemoryStore());
+sail.addTransactionListener(...);
+Repository repository = new SailRepository(sail);
+...
+</pre></div><p>The TransactionListener interface defines three methods:</p>
+<ul>
+  <li><i>beforeCommit(TransactionData data)</i> is called just before the
transaction actually carries out its commit  to the database;</li>
+  <li><i>afterCommit(TransactionData data)</i> is called immediately after
the transaction has been committed to the database  (i.e. you can rely on the data being persistent)</li>
+  <li><i>rollback(TransactionData data)</i> is called when the transaction
is rolled back (e.g. in case of an error)</li>
+</ul></div></div>
                   </div>
           </div>
 

Modified: websites/staging/marmotta/trunk/content/rat-report.html
==============================================================================
--- websites/staging/marmotta/trunk/content/rat-report.html (original)
+++ websites/staging/marmotta/trunk/content/rat-report.html Mon Feb 25 17:12:48 2013
@@ -222,7 +222,7 @@
 *****************************************************
 Summary
 -------
-Generated at: 2013-02-25T14:49:34+00:00
+Generated at: 2013-02-25T17:12:45+00:00
 Notes: 2
 Binaries: 2
 Archives: 0
@@ -240,6 +240,7 @@ Generated files do not required license 
 
 Unapproved licenses:
 
+  content/markdown/kiwi-triplestore.md.vm
   content/markdown/index.md
   content/markdown/client-library.md
   content/markdown/ldclient.md
@@ -248,7 +249,6 @@ Unapproved licenses:
   content/markdown/configuration.md
   content/markdown/privacy.md
   content/markdown/ldcache.md
-  content/markdown/kiwi-triplestore.md
   content/markdown/download.md
   content/markdown/installation.md
   content/markdown/development.md
@@ -267,6 +267,7 @@ Archives:
   Binary files (which do not require AL headers) will be marked B
   Compressed archives will be marked A
   Notices, licenses etc will be marked N
+ !????? content/markdown/kiwi-triplestore.md.vm
  !????? content/markdown/index.md
  !????? content/markdown/client-library.md
  !????? content/markdown/ldclient.md
@@ -275,7 +276,6 @@ Archives:
  !????? content/markdown/configuration.md
  !????? content/markdown/privacy.md
  !????? content/markdown/ldcache.md
- !????? content/markdown/kiwi-triplestore.md
  !????? content/markdown/download.md
  !????? content/markdown/installation.md
  !????? content/markdown/development.md
@@ -298,6 +298,60 @@ Archives:
  
  
  =======================================================================
+ ==content/markdown/kiwi-triplestore.md.vm
+ =======================================================================
+# KiWi Triple Store #
+
+The KiWi triple store is a high performance transactional triple store backend for OpenRDF
Sesame building on top of a
+relational database (currently H2, PostgreSQL, or MySQL). It has optional support for rule-based
reasoning (sKWRL) and
+versioning of updates. The KiWi triple store is also the default backend for Apache Marmotta.
It originated in the
+EU-funded research project &quot;KiWi - Knowledge in a Wiki&quot; (hence the name).
+
+Introduction
+------------
+
+The KiWi triple store is composed of a number of Sesame Sail modules that can be combined
and stacked as needed.
+Currently (Apache Marmotta v3.0), the KiWi triple store offers the following modules:
+
+* kiwi-triplestore: implements triple persistence in a relational database
+* kiwi-transactions: adds extended transaction support to a notifying sail (notifies on transaction
commit)
+* kiwi-tripletable: support for in-memory indexed Java Collections for OpenRDF statements
+* kiwi-contextaware: support for context-aware OpenRDF Sails (allow overriding contexts in
statements)
+* kiwi-reasoner: adds a rule-based forward chaining reasoner with truth maintenance for the
KiWi triple store
+* kiwi-versioning: adds versioning of updates to a KiWi triple store
+
+Versioning and Reasoner only work with a KiWi store as parent Sail, i.e. they cannot be used
with other Sesame backends.
+Transactions, Context-Aware Sails, and the Triple Table support classes are in principle
independent and can also
+be stacked with other storage backends.
+
+KiWi Store (kiwi-triplestore)
+-----------------------------
+
+The heart of the KiWi triple store is the KiWiStore storage backend. It implements a OpenRDF
Notifying Sail on top
+of a custom relational database schema. It can be used in a similar way to the already existing
(but now deprecated)
+OpenRDF RDBMS backends. The KiWi triple store operates almost directly on top of the relational
database, there is
+only minimal overhead on the Java side (some caching and result transformations). Each OpenRDF
repository connection
+is a database connection, and each repository result is a database cursor (so it supports
lazy fetching when iterating
+over the result).
+
+&lt;h3&gt; Maven Artifact &lt;/h3&gt;
+
+To use the KiWiStore, include the following artifact in your Maven build file:
+
+    &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.marmotta&lt;/groupId&gt;
+        &lt;artifactId&gt;kiwi-triplestore&lt;/artifactId&gt;
+        &lt;version&gt;${projectVersion}&lt;/version&gt;
+    &lt;/dependency&gt;
+
+&lt;h3&gt; Code Usage &lt;/h3&gt;
+
+In your code, creating a KiWi triple store works mostly like other OpenRDF backends. The
only additional data that is
+required are the JDBC connection details for accessing the database (i.e. database type,
database URI, database user
+and database password) and how to store inferred triples or triples without explicit context.
You can create a new
+instance of a KiWi store as follows:
+
+ =======================================================================
  ==content/markdown/index.md
  =======================================================================
 # Apache Marmotta (incubator)
@@ -481,13 +535,6 @@ list along with updating the &quot;Last 
 @@TODOO
 
  =======================================================================
- ==content/markdown/kiwi-triplestore.md
- =======================================================================
-# KiWi Triple Store
-
-TODO
-
- =======================================================================
  ==content/markdown/download.md
  =======================================================================
 # Download Marmotta 



Mime
View raw message