<p xmlns="http://www.w3.org/1999/xhtml">
SCB comprises the following architectural components as depicted in Fig. 1:
</p>
<ul xmlns="http://www.w3.org/1999/xhtml">
<li>Core</li>
<li>Facades</li>
<li>Utilities</li>
<li>Storage Providers</li>
<li>Parsing Providers</li>
<li>Serializing Providers</li>
<li>Ontologies Tool</li>
</ul>
<p xmlns="http://www.w3.org/1999/xhtml">
<img alt="SCB Architecture" src="images/scb_architecture.png"/>
<br/><i>Figure 1: SCB Architecture</i>
</p>
<p xmlns="http://www.w3.org/1999/xhtml">
The Core contains interface definitions of the RDF graph data model and its
implementation. The three main classes are <code>Graph</code>, <code>MGraph</code>,
and <code>TripleCollection</code>. The class <code>Graph</code> represents an
immutable RDF Graph, as such its identity criterion is defined in terms of
graph-isomorphism. The class <code>MGraph</code> represents a mutable RDF Graph,
which enables triples to be added to or removed from a graph. The class
<code>TripleCollection</code> is the super class of both the class <code>Graph</code>
and <code>M</code><code/><code/><code/><code/><code/><code/><code/><code>Graph</code>.
SCB Core provides three services: <code>TcManager</code> [<a href="#ref4">4</a>] allows access to
the various <code>TripleCollection</code>s, <code>Parser</code> [<a href="#ref5">5</a>] and
<code>Serializer</code> [<a href="#ref6">6</a>] to allow reading and writing graphs from and to
various formats. In an OSGi environment these services are accessed using the
service registry or injected using OSGi Declarative Services. In a non OSGi environment
static factory methods are used to return an instance.
The <code>TcManager</code> delegates actual processing tasks to a specific Storage Provider
chosen from a set of Storage Providers based on their priority number (weight).
Storage Providers can be dynamically bound to or unbound from the Core.
The functionality required by the Parser and Serializer is delegated to registered
Parsing and Serializing Providers respectively, according to their capability
(supported formats). Later registered providers shadow previous ones for the same format.
</p>
<p xmlns="http://www.w3.org/1999/xhtml">
The current implementation of SCB includes a Jena Façade. The Jena Façade allows an
application to use Jena API to manipulate a TC.
</p>
<p xmlns="http://www.w3.org/1999/xhtml">
In order to ease operations on a resource in a TC, the Utilities component provides
a class with a set of useful methods, e.g., to delete all triples (statements) with
the resource as subject and a specified predicate.
</p>
<p xmlns="http://www.w3.org/1999/xhtml">
Finally, the Ontologies Tool contains a standalone application called SchemaGen to
generate the Java source code with constants from an ontology description.
</p>
1