You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by al...@apache.org on 2011/11/02 19:41:39 UTC

svn commit: r1196752 [1/3] - in /incubator/stanbol/trunk: explanation/core/src/test/java/org/apache/stanbol/explanation/impl/ ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ ontologymanager/ontonet/src/mai...

Author: alexdma
Date: Wed Nov  2 18:41:36 2011
New Revision: 1196752

URL: http://svn.apache.org/viewvc?rev=1196752&view=rev
Log:
STANBOL-332:
- OntologyInputSource now supports generics for ontology class
- New interface OntologyProvider with OWLAPI and Clerezza implementations. Partly used by ontonet, fully used by registry (replaces usage of OWLOntologyManager objects for caching). (TODO make separate bundles out of the owlapi and clerezza implementations; by default, install only the clerezza one into launchers).
- ONManagerImpl constructor taking TcManager and WeightedTcProvider as arguments are deprecated. Non-OSGi implementations should invoke the one based on OntologyProvider. (TODO get rid of old ClerezzaStorage class altogether)
- Session ontology spaces are deprecated. trying to create one with newer Clerezza-based factories results in UnsupportedOperationException being thrown.

Added:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProvider.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyScopeFactoryImpl.java
      - copied unchanged from r1186680, incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyScopeFactoryImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/
      - copied from r1186680, incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLAPIOntologyProvider.java
    incubator/stanbol/trunk/ontologymanager/registry/src/test/java/org/apache/stanbol/ontologymanager/registry/MockOsgiContext.java
    incubator/stanbol/trunk/ontologymanager/registry/src/test/resources/ontologies/allcharacters.owl
      - copied unchanged from r1186680, incubator/stanbol/trunk/ontologymanager/registry/src/test/resources/ontologies/characters_all.owl
Removed:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/AbstractOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CoreOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/CustomOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OWLOntologyManagerFactoryImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/NoSuchStoreException.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OntologyIndexImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OntologyScopeFactoryImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OntologyScopeImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/ScopeRegistryImpl.java
    incubator/stanbol/trunk/ontologymanager/registry/src/test/resources/ontologies/characters_all.owl
Modified:
    incubator/stanbol/trunk/explanation/core/src/test/java/org/apache/stanbol/explanation/impl/TestSchemaMatchers.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologyCollectorImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CoreOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CustomOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/OntologySpaceFactoryImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/io/ClerezzaOntologyStorage.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/AbstractOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CoreOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CustomOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLOntologyManagerFactoryImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OntologySpaceFactoryImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/SessionOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestStorage.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestClerezzaSpaces.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologySpaces.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java
    incubator/stanbol/trunk/ontologymanager/registry/pom.xml
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/IllegalRegistryCycleException.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/LibraryContentNotLoadedException.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentException.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentListener.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemFactory.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemIndex.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryManager.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOntologyNotLoadedException.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOperation.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/model/CachingPolicy.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/model/Library.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/model/Registry.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/model/RegistryItem.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/model/RegistryOntology.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/RegistryItemFactoryImpl.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/RegistryManagerImpl.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/model/AbstractRegistryItem.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/model/LibraryImpl.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/model/RegistryOntologyImpl.java
    incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/io/LibrarySource.java
    incubator/stanbol/trunk/ontologymanager/registry/src/test/java/org/apache/stanbol/ontologymanager/registry/TestOntologyLibrary.java
    incubator/stanbol/trunk/ontologymanager/registry/src/test/java/org/apache/stanbol/ontologymanager/registry/TestOntologyRegistry.java
    incubator/stanbol/trunk/ontologymanager/registry/src/test/java/org/apache/stanbol/ontologymanager/registry/TestRegistryManager.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ScopeResource.java
    incubator/stanbol/trunk/reengineer/db/pom.xml
    incubator/stanbol/trunk/reengineer/xml/pom.xml
    incubator/stanbol/trunk/reengineer/xml/src/test/java/org/apache/stanbol/reengineer/xml/XMLReengineerTest.java
    incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRecipeTest.java
    incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/AddRuleTest.java
    incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRecipeTest.java
    incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/GetRuleTest.java
    incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/LoadRuleFileTest.java
    incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRecipeTest.java
    incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RemoveRuleTest.java
    incubator/stanbol/trunk/rules/manager/src/test/java/org/apache/stanbol/rules/manager/RuleStoreTest.java
    incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RecipeResource.java
    incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RuleResource.java

Modified: incubator/stanbol/trunk/explanation/core/src/test/java/org/apache/stanbol/explanation/impl/TestSchemaMatchers.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/explanation/core/src/test/java/org/apache/stanbol/explanation/impl/TestSchemaMatchers.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/explanation/core/src/test/java/org/apache/stanbol/explanation/impl/TestSchemaMatchers.java (original)
+++ incubator/stanbol/trunk/explanation/core/src/test/java/org/apache/stanbol/explanation/impl/TestSchemaMatchers.java Wed Nov  2 18:41:36 2011
@@ -16,6 +16,7 @@ import org.apache.stanbol.explanation.Da
 import org.apache.stanbol.explanation.MockOsgiContext;
 import org.apache.stanbol.ontologymanager.ontonet.api.OfflineConfiguration;
 import org.apache.stanbol.ontologymanager.ontonet.impl.OfflineConfigurationImpl;
+import org.apache.stanbol.ontologymanager.ontonet.impl.clerezza.ClerezzaOntologyProvider;
 import org.apache.stanbol.ontologymanager.registry.api.RegistryManager;
 import org.apache.stanbol.ontologymanager.registry.api.model.Library;
 import org.apache.stanbol.ontologymanager.registry.impl.RegistryManagerImpl;
@@ -50,13 +51,13 @@ public class TestSchemaMatchers {
                           TestSchemaMatchers.class.getResource("/schemas/registry/explanation-mappings.owl")
                                   .toString()});
         OfflineConfiguration offline = new OfflineConfigurationImpl(configuration);
-        regman = new RegistryManagerImpl(offline, configuration);
+        regman = new RegistryManagerImpl(offline, new ClerezzaOntologyProvider(tcManager, offline, parser),configuration);
 
         // The model should be created by now.
 
-        for (Library lib : regman.getLibraries()) {
-            System.out.println(lib.getIRI() + " : " + lib.getName());
-        }
+//        for (Library lib : regman.getLibraries()) {
+//            System.out.println(lib.getIRI() + " : " + lib.getName());
+//        }
 
         // IRI id =
         // IRI.create("http://www.ontologydesignpatterns.org/registry/explanation.owl#ExplanationSchemaCatalog");

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProvider.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProvider.java?rev=1196752&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProvider.java (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProvider.java Wed Nov  2 18:41:36 2011
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Set;
+
+import org.apache.clerezza.rdf.core.serializedform.UnsupportedFormatException;
+import org.semanticweb.owlapi.model.IRI;
+
+/**
+ * A system responsible for maintaining registry ontologies. Depending on the implementation, it can be
+ * volatile or persistent, centralised or distributed.
+ * 
+ * @author alexdma
+ * 
+ * @param <S>
+ *            the storage system actually used by this provider.
+ */
+public interface OntologyProvider<S> {
+
+    /**
+     * The key used to configure the prefix to be used for addressing ontologies stored by this provider.
+     */
+    public String GRAPH_PREFIX = "org.apache.stanbol.ontologymanager.ontonet.graphPrefix";
+
+    /**
+     * The key used to configure the default import resolution policy for this provider.
+     */
+    public String RESOLVE_IMPORTS = "org.apache.stanbol.ontologymanager.ontonet.resolveImports";
+
+    Set<String> getOntologyReferences();
+
+    /**
+     * Returns the storage system used by this ontology provider.
+     * 
+     * @return the ontology store.
+     */
+    S getStore();
+
+    /**
+     * 
+     * @param identifier
+     * @param returnType
+     *            The expected type for the returned ontology object. If null, the provider will arbitrarily
+     *            select a supported return type. If the supplied type is not supported (i.e. not assignable
+     *            to any type contained in the result of {@link #getSupportedReturnTypes()}) an
+     *            {@link UnsupportedOperationException} will be thrown.
+     * @return
+     */
+    Object getStoredOntology(String identifier, Class<?> returnType);
+
+    /**
+     * Returns an array containing the most specific types for ontology objects that this provider can manage
+     * and return on a call to {@link #getStoredOntology(String, Class)}.
+     * 
+     * @return the supported ontology return types.
+     */
+    Class<?>[] getSupportedReturnTypes();
+
+    String loadInStore(InputStream data, String formatIdentifier, boolean force) throws IOException,
+                                                                                UnsupportedFormatException;
+
+    String loadInStore(IRI location, String formatIdentifier, boolean force) throws IOException,
+                                                                            UnsupportedFormatException;
+
+}

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java Wed Nov  2 18:41:36 2011
@@ -24,7 +24,9 @@ import java.util.Dictionary;
 import java.util.List;
 
 import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.access.TcProvider;
 import org.apache.clerezza.rdf.core.access.WeightedTcProvider;
+import org.apache.clerezza.rdf.core.serializedform.Parser;
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
@@ -44,6 +46,7 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.CustomOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.NoSuchScopeException;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyIndex;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyScope;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyScopeFactory;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpace;
@@ -52,11 +55,12 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.UnmodifiableOntologyCollectorException;
 import org.apache.stanbol.ontologymanager.ontonet.api.session.SessionManager;
 import org.apache.stanbol.ontologymanager.ontonet.conf.OntologyNetworkConfigurationUtils;
+import org.apache.stanbol.ontologymanager.ontonet.impl.clerezza.ClerezzaOntologyProvider;
+import org.apache.stanbol.ontologymanager.ontonet.impl.clerezza.OntologySpaceFactoryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.io.ClerezzaOntologyStorage;
 import org.apache.stanbol.ontologymanager.ontonet.impl.io.InMemoryOntologyStorage;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyIndexImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyScopeFactoryImpl;
-import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologySpaceFactoryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.ScopeRegistryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.session.ScopeSessionSynchronizer;
 import org.apache.stanbol.ontologymanager.ontonet.impl.session.SessionManagerImpl;
@@ -147,6 +151,9 @@ public class ONManagerImpl implements ON
     @Reference
     private OfflineConfiguration offline;
 
+    @Reference
+    private OntologyProvider<?> ontologyProvider;
+
     /**
      * The {@link OfflineMode} is used by Stanbol to indicate that no external service should be referenced.
      * For this engine that means it is necessary to check if the used {@link ReferencedSite} can operate
@@ -222,6 +229,9 @@ public class ONManagerImpl implements ON
     /**
      * Constructor to be invoked by non-OSGi environments.
      * 
+     * @deprecated tcm and wctp are no longer to be supplied directly to the ONManager object. Use
+     *             {@link #ONManagerImpl(OntologyProvider, OfflineConfiguration, Dictionary)} instead.
+     * 
      * @param tcm
      *            the triple collection manager to be used for storing ontologies.
      * @param wtcp
@@ -231,15 +241,24 @@ public class ONManagerImpl implements ON
      * @param configuration
      *            additional parameters for the ONManager not included in {@link OfflineConfiguration}.
      */
+    @Deprecated
     public ONManagerImpl(TcManager tcm,
                          WeightedTcProvider wtcp,
-                         OfflineConfiguration onmconfig,
+                         OfflineConfiguration offline,
+                         Dictionary<String,Object> configuration) {
+        /*
+         * Assume this.tcm this.wtcp and this.wtcp were not filled in by OSGi-DS. As a matter of fact,
+         * WeightedTcProvider is now ignored as we assume to use those bound with the TcManager.
+         */
+        this(new ClerezzaOntologyProvider(tcm, offline, new Parser()), offline, configuration);
+    }
+
+    public ONManagerImpl(OntologyProvider<?> ontologyProvider,
+                         OfflineConfiguration offline,
                          Dictionary<String,Object> configuration) {
         this();
-        // Assume this.tcm this.wtcp and this.wtcp were not filled in by OSGi-DS.
-        this.tcm = tcm;
-        this.wtcp = wtcp;
-        this.offline = onmconfig;
+        this.ontologyProvider = ontologyProvider;
+        this.offline = offline;
         try {
             activate(configuration);
         } catch (IOException e) {
@@ -380,8 +399,13 @@ public class ONManagerImpl implements ON
         // Now create everything that depends on the Storage object.
 
         // These may require the OWL cache manager
-        ontologySpaceFactory = new OntologySpaceFactoryImpl(scopeRegistry, storage, offline,
+
+        if (ontologyProvider.getStore() instanceof TcManager) ontologySpaceFactory = new OntologySpaceFactoryImpl(
+                scopeRegistry, (OntologyProvider<TcProvider>) ontologyProvider, offline,
                 IRI.create(getOntologyNetworkNamespace()));
+        else ontologySpaceFactory = new org.apache.stanbol.ontologymanager.ontonet.impl.owlapi.OntologySpaceFactoryImpl(
+                scopeRegistry, storage, offline, IRI.create(getOntologyNetworkNamespace()));
+
         ontologyScopeFactory = new OntologyScopeFactoryImpl(scopeRegistry,
                 IRI.create(getOntologyNetworkNamespace()), ontologySpaceFactory);
         ontologyScopeFactory.addScopeEventListener(oIndex);

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologyCollectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologyCollectorImpl.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologyCollectorImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologyCollectorImpl.java Wed Nov  2 18:41:36 2011
@@ -26,7 +26,7 @@ import org.apache.clerezza.rdf.core.MGra
 import org.apache.clerezza.rdf.core.TripleCollection;
 import org.apache.clerezza.rdf.core.UriRef;
 import org.apache.clerezza.rdf.core.access.EntityAlreadyExistsException;
-import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.access.TcProvider;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.LockableOntologyCollector;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyCollectorListener;
@@ -71,16 +71,16 @@ public abstract class AbstractOntologyCo
 
     protected Set<Class<?>> supportedTypes;
 
-    private TcManager tcManager;
+    private TcProvider tcProvider;
 
-    public AbstractOntologyCollectorImpl(String id, IRI namespace, TcManager tcManager) {
+    public AbstractOntologyCollectorImpl(String id, IRI namespace, TcProvider tcProvider) {
         // Supports OWL API and Clerezza
         supportedTypes = new HashSet<Class<?>>();
         supportedTypes.add(OWLOntology.class);
         supportedTypes.add(TripleCollection.class);
         setID(id);
         setNamespace(namespace);
-        this.tcManager = tcManager;
+        this.tcProvider = tcProvider;
         this.managedOntologies = new HashSet<IRI>();
     }
 
@@ -107,9 +107,9 @@ public abstract class AbstractOntologyCo
         // create/get the graph and add the triples.
         MGraph mg;
         try {
-            mg = tcManager.createMGraph(uri);
+            mg = tcProvider.createMGraph(uri);
         } catch (EntityAlreadyExistsException e) {
-            mg = tcManager.getMGraph(uri);
+            mg = tcProvider.getMGraph(uri);
             mg.clear();
         }
         if (o instanceof TripleCollection) mg.addAll((TripleCollection) o);
@@ -197,7 +197,7 @@ public abstract class AbstractOntologyCo
     @Override
     public OWLOntology getOntology(IRI ontologyIri) {
         if (!managedOntologies.contains(ontologyIri)) return null;
-        TripleCollection g = tcManager.getTriples(new UriRef(ontologyIri.toString()));
+        TripleCollection g = tcProvider.getTriples(new UriRef(ontologyIri.toString()));
         return OWLAPIToClerezzaConverter.clerezzaGraphToOWLOntology(g);
     }
 
@@ -206,8 +206,8 @@ public abstract class AbstractOntologyCo
         return Collections.unmodifiableSet(supportedTypes);
     }
 
-    public TcManager getTcManager() {
-        return tcManager;
+    public TcProvider getTcProvider() {
+        return tcProvider;
     }
 
     @Override

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologySpaceImpl.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/AbstractOntologySpaceImpl.java Wed Nov  2 18:41:36 2011
@@ -19,7 +19,7 @@ package org.apache.stanbol.ontologymanag
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.access.TcProvider;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OWLExportable;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SpaceType;
@@ -51,8 +51,8 @@ public abstract class AbstractOntologySp
 
     protected SpaceType type;
 
-    public AbstractOntologySpaceImpl(String spaceID, IRI namespace, SpaceType type, TcManager tcManager) {
-        super(spaceID, namespace, tcManager);
+    public AbstractOntologySpaceImpl(String spaceID, IRI namespace, SpaceType type, TcProvider tcProvider) {
+        super(spaceID, namespace, tcProvider);
         this.type = type;
     }
 

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java?rev=1196752&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java Wed Nov  2 18:41:36 2011
@@ -0,0 +1,379 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.ontonet.impl.clerezza;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.Stack;
+
+import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.Resource;
+import org.apache.clerezza.rdf.core.Triple;
+import org.apache.clerezza.rdf.core.TripleCollection;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.EntityAlreadyExistsException;
+import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.access.TcProvider;
+import org.apache.clerezza.rdf.core.access.WeightedTcProvider;
+import org.apache.clerezza.rdf.core.serializedform.Parser;
+import org.apache.clerezza.rdf.core.serializedform.UnsupportedFormatException;
+import org.apache.clerezza.rdf.ontologies.OWL;
+import org.apache.clerezza.rdf.ontologies.RDF;
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.apache.felix.scr.annotations.ReferencePolicy;
+import org.apache.felix.scr.annotations.ReferenceStrategy;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.commons.stanboltools.offline.OfflineMode;
+import org.apache.stanbol.ontologymanager.ontonet.api.OfflineConfiguration;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
+import org.apache.stanbol.owl.OWLOntologyManagerFactory;
+import org.apache.stanbol.owl.PhonyIRIMapper;
+import org.apache.stanbol.owl.transformation.OWLAPIToClerezzaConverter;
+import org.osgi.service.component.ComponentContext;
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntology;
+import org.semanticweb.owlapi.model.OWLOntologyIRIMapper;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Clerezza-based ontology cache implementation. Whether it is persistent or in-memory depends on the
+ * {@link WeightedTcProvider} used.
+ * 
+ * @author alexdma
+ * 
+ */
+@Component(immediate = true, metatype = false)
+@Service(OntologyProvider.class)
+public class ClerezzaOntologyProvider implements OntologyProvider<TcProvider> {
+
+    private static final String _GRAPH_PREFIX_DEFAULT = "ontonet";
+
+    private static final boolean _RESOLVE_IMPORTS_DEFAULT = true;
+
+    private Logger log = LoggerFactory.getLogger(getClass());
+
+    private List<OWLOntologyIRIMapper> mappers = new ArrayList<OWLOntologyIRIMapper>();
+
+    @Reference
+    private OfflineConfiguration offline;
+
+    /**
+     * The {@link OfflineMode} is used by Stanbol to indicate that no external service should be referenced.
+     * For this engine that means it is necessary to check if the used {@link ReferencedSite} can operate
+     * offline or not.
+     * 
+     * @see #enableOfflineMode(OfflineMode)
+     * @see #disableOfflineMode(OfflineMode)
+     */
+    @Reference(cardinality = ReferenceCardinality.OPTIONAL_UNARY, policy = ReferencePolicy.DYNAMIC, bind = "enableOfflineMode", unbind = "disableOfflineMode", strategy = ReferenceStrategy.EVENT)
+    private OfflineMode offlineMode;
+
+    @Reference
+    private Parser parser;
+
+    @Property(name = OntologyProvider.GRAPH_PREFIX, value = _GRAPH_PREFIX_DEFAULT)
+    protected String prefix = _GRAPH_PREFIX_DEFAULT;
+
+    @Property(name = OntologyProvider.RESOLVE_IMPORTS, boolValue = _RESOLVE_IMPORTS_DEFAULT)
+    protected boolean resolveImports = _RESOLVE_IMPORTS_DEFAULT;
+
+    /*
+     * Do not use SCR reference here: this might be different from the registered WeightedTcProvider services
+     * : when supplied, it overrides TcManager
+     */
+    private TcProvider store = null;
+
+    private Class<?>[] supported = null;
+
+    @Reference
+    private TcManager tcManager;
+
+    /**
+     * This default constructor is <b>only</b> intended to be used by the OSGI environment with Service
+     * Component Runtime support.
+     * <p>
+     * DO NOT USE to manually create instances - the ClerezzaOntologyProvider instances do need to be
+     * configured! YOU NEED TO USE {} or its overloads, to parse the configuration and then initialise the
+     * rule store if running outside an OSGI environment.
+     */
+    public ClerezzaOntologyProvider() {
+        supported = new Class<?>[] {MGraph.class, OWLOntology.class};
+    }
+
+    public ClerezzaOntologyProvider(TcProvider store, OfflineConfiguration offline, Parser parser) {
+        this();
+
+        this.offline = offline;
+        // Re-assign the TcManager if no store is supplied
+        if (store == null) store = TcManager.getInstance();
+        this.store = store;
+        if (this.tcManager == null) this.tcManager = TcManager.getInstance();
+        if (parser == null) this.parser = Parser.getInstance();
+        else this.parser = parser;
+
+        activate(new Hashtable<String,Object>());
+    }
+
+    @SuppressWarnings("unchecked")
+    @Activate
+    protected void activate(ComponentContext context) {
+        log.info("in {} activate with context {}", getClass(), context);
+        if (context == null) {
+            throw new IllegalStateException("No valid" + ComponentContext.class + " parsed in activate!");
+        }
+        activate((Dictionary<String,Object>) context.getProperties());
+    }
+
+    protected void activate(Dictionary<String,Object> configuration) {
+        // Parse configuration.
+        prefix = (String) (configuration.get(OntologyProvider.GRAPH_PREFIX));
+        if (prefix == null) prefix = _GRAPH_PREFIX_DEFAULT; // Should be already assigned though
+
+        try {
+            resolveImports = (Boolean) (configuration.get(OntologyProvider.RESOLVE_IMPORTS));
+        } catch (Exception ex) {
+            resolveImports = _RESOLVE_IMPORTS_DEFAULT; // Should be already assigned though
+        }
+
+        final IRI[] offlineResources;
+        if (this.offline != null) {
+            List<IRI> paths = offline.getOntologySourceLocations();
+            if (paths != null) offlineResources = paths.toArray(new IRI[0]);
+            // There are no offline paths.
+            else offlineResources = new IRI[0];
+        }
+        // There's no offline configuration at all.
+        else offlineResources = new IRI[0];
+
+        this.mappers = OWLOntologyManagerFactory.getMappers(offlineResources);
+
+    }
+
+    @Deactivate
+    protected void deactivate(ComponentContext context) {
+        log.info("in {} deactivate with context {}", getClass(), context);
+    }
+
+    /**
+     * Called by the ConfigurationAdmin to unbind the {@link #offlineMode} if the service becomes unavailable
+     * 
+     * @param mode
+     */
+    protected final void disableOfflineMode(OfflineMode mode) {
+        this.offlineMode = null;
+    }
+
+    /**
+     * Called by the ConfigurationAdmin to bind the {@link #offlineMode} if the service becomes available
+     * 
+     * @param mode
+     */
+    protected final void enableOfflineMode(OfflineMode mode) {
+        this.offlineMode = mode;
+    }
+
+    private void fillImportsReverse(UriRef importing, List<UriRef> reverseImports) {
+        reverseImports.add(importing);
+        TripleCollection graph = store.getTriples(importing);
+        Iterator<Triple> it = graph.filter(null, RDF.type, OWL.Ontology);
+        if (it.hasNext()) {
+            Iterator<Triple> it2 = graph.filter(it.next().getSubject(), OWL.imports, null);
+            while (it2.hasNext()) {
+                Resource obj = it2.next().getObject();
+                if (obj instanceof UriRef) fillImportsReverse(
+                    new UriRef(prefix + "::" + ((UriRef) obj).getUnicodeString()), reverseImports);
+            }
+        }
+    }
+
+    @Override
+    public Set<String> getOntologyReferences() {
+        Set<String> result = new HashSet<String>();
+        for (UriRef u : store.listTripleCollections())
+            result.add(u.getUnicodeString());
+        return result;
+    }
+
+    @Override
+    public TcProvider getStore() {
+        return store;
+    }
+
+    @Override
+    public Object getStoredOntology(String identifier, Class<?> returnType) {
+        if (returnType == null) {
+            returnType = OWLOntology.class;
+            log.warn("No return type given for ontologies. Will return a {}", returnType);
+        }
+        boolean canDo = false;
+        for (Class<?> clazz : getSupportedReturnTypes())
+            if (clazz.isAssignableFrom(returnType)) {
+                canDo = true;
+                break;
+            }
+        if (!canDo) throw new UnsupportedOperationException(
+                "Return type " + returnType
+                        + " is not allowed in this implementation. Only allowed return types are "
+                        + supported);
+
+        TripleCollection tc = store.getTriples(new UriRef(identifier));
+
+        if (MGraph.class.isAssignableFrom(returnType)) {
+            return returnType.cast(tc);
+        } else if (OWLOntology.class.isAssignableFrom(returnType)) {
+            return toOWLOntology(new UriRef(identifier));
+        }
+
+        return null;
+    }
+
+    @Override
+    public Class<?>[] getSupportedReturnTypes() {
+        return supported;
+    }
+
+    /**
+     * Returns <code>true</code> only if Stanbol operates in {@link OfflineMode}.
+     * 
+     * @return the offline state
+     */
+    protected final boolean isOfflineMode() {
+        return offlineMode != null;
+    }
+
+    @Override
+    public String loadInStore(InputStream data, String formatIdentifier, boolean force) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public String loadInStore(IRI ontologyIri, String formatIdentifier, boolean force) throws IOException,
+                                                                                      UnsupportedFormatException {
+        log.debug("Loading {}", ontologyIri);
+        if (ontologyIri == null) throw new IllegalArgumentException("Ontology IRI cannot be null.");
+
+        String s = prefix + "::" + ontologyIri.toString();
+
+        IRI location = null;
+        if (force) location = null;
+        else for (OWLOntologyIRIMapper mapper : mappers) {
+            location = mapper.getDocumentIRI(ontologyIri);
+            if (location != null) break;
+        }
+        if (location == null) {
+            if (isOfflineMode()) throw new IllegalStateException(
+                    "Cannot retrieve " + ontologyIri + " while Stanbol is in offline mode. "
+                            + "No resource with that identifier was found locally.");
+            else location = ontologyIri;
+        }
+
+        log.info("found {} in {}", ontologyIri, location);
+
+        boolean loaded = false;
+
+        Set<String> formats;
+        if (formatIdentifier == null || "".equals(formatIdentifier.trim())) formats = parser
+                .getSupportedFormats();
+        else formats = Collections.singleton(formatIdentifier);
+        for (String format : formats) {
+            try {
+                final URLConnection con = location.toURI().toURL().openConnection();
+                con.setRequestProperty("Accept", format);
+                final InputStream is = con.getInputStream();
+                if (is != null) {
+                    MGraph graph;
+                    TripleCollection rdfData = parser.parse(is, format);
+                    if (rdfData instanceof MGraph) {
+                        graph = (MGraph) rdfData;
+                    } else {
+                        UriRef uriref = new UriRef(s);
+                        try {
+                            graph = store.createMGraph(uriref);
+                            // graph = new SimpleMGraph();
+                        } catch (EntityAlreadyExistsException e) {
+                            if (uriref.equals(e.getEntityName())) graph = store.getMGraph(uriref);
+                            else graph = store.createMGraph(uriref);
+                        }
+                        graph.addAll(rdfData);
+                    }
+                    if (resolveImports) {
+                        Iterator<Triple> it = graph.filter(null, RDF.type, OWL.Ontology);
+                        if (it.hasNext()) {
+                            Iterator<Triple> it2 = graph.filter(it.next().getSubject(), OWL.imports, null);
+                            while (it2.hasNext()) {
+                                Resource obj = it2.next().getObject();
+                                if (obj instanceof UriRef) loadInStore(
+                                    IRI.create(((UriRef) obj).getUnicodeString()), null, false);
+                            }
+                        }
+
+                    }
+
+                    loaded = true;
+                    break;
+                }
+            } catch (UnsupportedFormatException e) {
+                log.debug("Parsing format {} failed.", format);
+                continue;
+            } catch (Exception e) {
+                log.debug("Parsing format {} failed.", format);
+                continue;
+            }
+        }
+        if (loaded) return s;
+        else return null;
+    }
+
+    protected OWLOntology toOWLOntology(UriRef graphName) {
+
+        OWLOntologyManager mgr = OWLManager.createOWLOntologyManager();
+        // Never try to import
+        mgr.addIRIMapper(new PhonyIRIMapper(Collections.<IRI> emptySet()));
+        List<UriRef> revImps = new Stack<UriRef>();
+        fillImportsReverse(graphName, revImps);
+        Set<UriRef> loaded = new HashSet<UriRef>();
+
+        for (UriRef ref : revImps) {
+            if (!loaded.contains(ref)) {
+                TripleCollection tc = store.getTriples(ref);
+                OWLAPIToClerezzaConverter.clerezzaGraphToOWLOntology(tc, mgr);
+                loaded.add(ref);
+            }
+        }
+
+        TripleCollection graph = store.getTriples(graphName);
+        return OWLAPIToClerezzaConverter.clerezzaGraphToOWLOntology(graph, mgr);
+    }
+}

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CoreOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CoreOntologySpaceImpl.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CoreOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CoreOntologySpaceImpl.java Wed Nov  2 18:41:36 2011
@@ -16,7 +16,7 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.impl.clerezza;
 
-import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.access.TcProvider;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.CoreOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SpaceType;
 import org.semanticweb.owlapi.model.IRI;
@@ -35,8 +35,8 @@ public class CoreOntologySpaceImpl exten
         return (scopeID != null ? scopeID : "") + "/" + SUFFIX;
     }
 
-    public CoreOntologySpaceImpl(String scopeID, IRI namespace, TcManager tcManager) {
-        super(buildId(scopeID), namespace, SpaceType.CORE, tcManager);
+    public CoreOntologySpaceImpl(String scopeID, IRI namespace, TcProvider tcProvider) {
+        super(buildId(scopeID), namespace, SpaceType.CORE, tcProvider);
     }
 
     /**

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CustomOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CustomOntologySpaceImpl.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CustomOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CustomOntologySpaceImpl.java Wed Nov  2 18:41:36 2011
@@ -16,7 +16,7 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.impl.clerezza;
 
-import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.access.TcProvider;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.CoreOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.CustomOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SpaceType;
@@ -37,8 +37,8 @@ public class CustomOntologySpaceImpl ext
         return (scopeID != null ? scopeID : "") + "/" + SUFFIX;
     }
 
-    public CustomOntologySpaceImpl(String scopeID, IRI namespace, TcManager tcManager) {
-        super(buildId(scopeID), namespace, SpaceType.CUSTOM, tcManager);
+    public CustomOntologySpaceImpl(String scopeID, IRI namespace, TcProvider tcProvider) {
+        super(buildId(scopeID), namespace, SpaceType.CUSTOM, tcProvider);
     }
 
     @Override

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/OntologySpaceFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/OntologySpaceFactoryImpl.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/OntologySpaceFactoryImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/OntologySpaceFactoryImpl.java Wed Nov  2 18:41:36 2011
@@ -16,15 +16,16 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.impl.clerezza;
 
-import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.access.TcProvider;
 import org.apache.stanbol.ontologymanager.ontonet.api.OfflineConfiguration;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.CoreOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.CustomOntologySpace;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyCollectorListener;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyScope;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpaceFactory;
-import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyCollectorListener;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.ScopeRegistry;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SessionOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SpaceType;
@@ -49,14 +50,14 @@ public class OntologySpaceFactoryImpl im
 
     protected ScopeRegistry registry;
 
-    protected TcManager tcManager;
+    protected OntologyProvider<TcProvider> provider;
 
     public OntologySpaceFactoryImpl(ScopeRegistry registry,
-                                    TcManager tcManager,
+                                    OntologyProvider<TcProvider> provider,
                                     OfflineConfiguration offline,
                                     IRI namespace) {
         this.registry = registry;
-        this.tcManager = tcManager;
+        this.provider = provider;
         this.offline = offline;
         this.namespace = namespace;
     }
@@ -86,7 +87,7 @@ public class OntologySpaceFactoryImpl im
 
     @Override
     public CoreOntologySpace createCoreOntologySpace(String scopeId, OntologyInputSource<?>... coreSources) {
-        CoreOntologySpace s = new CoreOntologySpaceImpl(scopeId, namespace, tcManager);
+        CoreOntologySpace s = new CoreOntologySpaceImpl(scopeId, namespace, provider.getStore());
         configureSpace(s, scopeId, coreSources);
         return s;
     }
@@ -94,7 +95,7 @@ public class OntologySpaceFactoryImpl im
     @Override
     public CustomOntologySpace createCustomOntologySpace(String scopeId,
                                                          OntologyInputSource<?>... customSources) {
-        CustomOntologySpace s = new CustomOntologySpaceImpl(scopeId, namespace, tcManager);
+        CustomOntologySpace s = new CustomOntologySpaceImpl(scopeId, namespace, provider.getStore());
         configureSpace(s, scopeId, customSources);
         return s;
     }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/io/ClerezzaOntologyStorage.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/io/ClerezzaOntologyStorage.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/io/ClerezzaOntologyStorage.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/io/ClerezzaOntologyStorage.java Wed Nov  2 18:41:36 2011
@@ -49,6 +49,7 @@ import com.hp.hpl.jena.rdf.model.Model;
 import com.hp.hpl.jena.rdf.model.ModelFactory;
 import com.hp.hpl.jena.util.FileManager;
 
+@Deprecated
 public class ClerezzaOntologyStorage {
 
     private static Logger log = LoggerFactory.getLogger(ClerezzaOntologyStorage.class);

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/AbstractOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/AbstractOntologySpaceImpl.java?rev=1196752&r1=1186680&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/AbstractOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/AbstractOntologySpaceImpl.java Wed Nov  2 18:41:36 2011
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
+package org.apache.stanbol.ontologymanager.ontonet.impl.owlapi;
 
 import java.util.Collection;
 import java.util.Collections;

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CoreOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CoreOntologySpaceImpl.java?rev=1196752&r1=1186680&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CoreOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CoreOntologySpaceImpl.java Wed Nov  2 18:41:36 2011
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
+package org.apache.stanbol.ontologymanager.ontonet.impl.owlapi;
 
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.CoreOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SpaceType;

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CustomOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CustomOntologySpaceImpl.java?rev=1196752&r1=1186680&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CustomOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/CustomOntologySpaceImpl.java Wed Nov  2 18:41:36 2011
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
+package org.apache.stanbol.ontologymanager.ontonet.impl.owlapi;
 
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.CoreOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.CustomOntologySpace;

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLAPIOntologyProvider.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLAPIOntologyProvider.java?rev=1196752&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLAPIOntologyProvider.java (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLAPIOntologyProvider.java Wed Nov  2 18:41:36 2011
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.ontonet.impl.owlapi;
+
+import java.io.InputStream;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
+import org.apache.stanbol.owl.util.OWLUtils;
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntology;
+import org.semanticweb.owlapi.model.OWLOntologyAlreadyExistsException;
+import org.semanticweb.owlapi.model.OWLOntologyCreationException;
+import org.semanticweb.owlapi.model.OWLOntologyDocumentAlreadyExistsException;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * OWLAPI-based (in-memory) ontology cache implementation.
+ * 
+ * @author alexdma
+ * 
+ */
+// @Component(immediate = true, metatype = false)
+// @Service(OntologyProvider.class)
+public class OWLAPIOntologyProvider implements OntologyProvider<OWLOntologyManager> {
+
+    private Logger log = LoggerFactory.getLogger(getClass());
+
+    private OWLOntologyManager store = null;
+
+    public OWLAPIOntologyProvider() {
+        this(OWLManager.createOWLOntologyManager());
+    }
+
+    /**
+     * Creates a new instance of ClerezzaCache with an embedded {@link OWLOntologyManager}.
+     */
+    public OWLAPIOntologyProvider(OWLOntologyManager store) {
+        if (store == null) throw new IllegalArgumentException("Cache requires a non-null OWLOntologyManager.");
+        this.store = store;
+    }
+
+    @Override
+    public Set<String> getOntologyReferences() {
+        Set<String> result = new HashSet<String>();
+        for (OWLOntology o : store.getOntologies())
+            result.add(OWLUtils.guessOntologyIdentifier(o).toString());
+        return result;
+    }
+
+    @Override
+    public OWLOntologyManager getStore() {
+        return store;
+    }
+
+    @Override
+    public Object getStoredOntology(String identifier, Class<?> returnType) {
+        if (returnType == null) {
+            returnType = OWLOntology.class;
+            log.warn("No return type given for ontologies. Will return a {}", returnType);
+        }
+        boolean canDo = false;
+        for (Class<?> clazz : getSupportedReturnTypes())
+            if (clazz.isAssignableFrom(returnType)) {
+                canDo = true;
+                break;
+            }
+        if (!canDo) throw new UnsupportedOperationException(
+                "Return type " + returnType
+                        + " is not allowed in this implementation. Only allowed return types are "
+                        + getSupportedReturnTypes());
+        return null;
+    }
+
+    @Override
+    public Class<?>[] getSupportedReturnTypes() {
+        return new Class<?>[] {OWLOntology.class};
+    }
+
+    @Override
+    public String loadInStore(InputStream data, String formatIdentifier, boolean force) {
+        try {
+            OWLOntology o = store.loadOntologyFromOntologyDocument(data);
+            return OWLUtils.guessOntologyIdentifier(o).toString();
+        } catch (OWLOntologyCreationException e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
+    @Override
+    public String loadInStore(IRI location, String formatIdentifier, boolean force) {
+        OWLOntology o = null;
+        try {
+            o = store.loadOntologyFromOntologyDocument(location);
+        } catch (OWLOntologyAlreadyExistsException e) {
+            if (!force) o = store.getOntology(e.getOntologyID());
+        } catch (OWLOntologyDocumentAlreadyExistsException e) {
+            if (!force) o = store.getOntology(e.getOntologyDocumentIRI());
+        } catch (OWLOntologyCreationException e) {
+            throw new IllegalArgumentException(e);
+        }
+        return OWLUtils.guessOntologyIdentifier(o).toString();
+    }
+
+}

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLOntologyManagerFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLOntologyManagerFactoryImpl.java?rev=1196752&r1=1186680&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLOntologyManagerFactoryImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OWLOntologyManagerFactoryImpl.java Wed Nov  2 18:41:36 2011
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
+package org.apache.stanbol.ontologymanager.ontonet.impl.owlapi;
 
 import java.io.File;
 import java.net.URI;

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OntologySpaceFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OntologySpaceFactoryImpl.java?rev=1196752&r1=1186680&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OntologySpaceFactoryImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/OntologySpaceFactoryImpl.java Wed Nov  2 18:41:36 2011
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
+package org.apache.stanbol.ontologymanager.ontonet.impl.owlapi;
 
 import org.apache.stanbol.ontologymanager.ontonet.api.OfflineConfiguration;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/SessionOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/SessionOntologySpaceImpl.java?rev=1196752&r1=1186680&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/SessionOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/SessionOntologySpaceImpl.java Wed Nov  2 18:41:36 2011
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
+package org.apache.stanbol.ontologymanager.ontonet.impl.owlapi;
 
 import java.util.Random;
 

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestStorage.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestStorage.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestStorage.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestStorage.java Wed Nov  2 18:41:36 2011
@@ -16,6 +16,7 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.io;
 
+import static org.apache.stanbol.ontologymanager.ontonet.MockOsgiContext.parser;
 import static org.apache.stanbol.ontologymanager.ontonet.MockOsgiContext.reset;
 import static org.apache.stanbol.ontologymanager.ontonet.MockOsgiContext.tcManager;
 import static org.junit.Assert.assertEquals;
@@ -30,14 +31,18 @@ import java.util.Set;
 import org.apache.clerezza.rdf.core.Graph;
 import org.apache.clerezza.rdf.core.Triple;
 import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.TcProvider;
 import org.apache.clerezza.rdf.utils.GraphNode;
 import org.apache.stanbol.ontologymanager.ontonet.Constants;
 import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
+import org.apache.stanbol.ontologymanager.ontonet.api.OfflineConfiguration;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.RootOntologyIRISource;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyScope;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ONManagerImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.OfflineConfigurationImpl;
+import org.apache.stanbol.ontologymanager.ontonet.impl.clerezza.ClerezzaOntologyProvider;
 import org.junit.After;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -53,17 +58,20 @@ public class TestStorage {
 
     private String scopeId = "StorageTest";
 
+    private static OntologyProvider<TcProvider> provider;
+
     @BeforeClass
     public static void setup() {
         reset();
+        OfflineConfiguration offline = new OfflineConfigurationImpl(new Hashtable<String,Object>());
+        provider = new ClerezzaOntologyProvider(tcManager, offline, parser);
         // Empty configurations are fine, but this time we provide a Clerezza context.
-        onm = new ONManagerImpl(tcManager, tcManager.getProviderList().first(), new OfflineConfigurationImpl(
-                new Hashtable<String,Object>()), new Hashtable<String,Object>());
+        onm = new ONManagerImpl(provider, offline, new Hashtable<String,Object>());
     }
 
     @Test
     public void storageOnScopeCreation() throws Exception {
-        assertTrue(onm.getOntologyStore().listGraphs().isEmpty());
+        assertTrue(provider.getStore().listTripleCollections().isEmpty());
         OntologyInputSource ois = new RootOntologyIRISource(IRI.create(getClass().getResource(
             "/ontologies/minorcharacters.owl")));
 
@@ -71,17 +79,16 @@ public class TestStorage {
 
         Set<Triple> triples = new HashSet<Triple>();
 
-        for (IRI iri : onm.getOntologyStore().listGraphs()) {
+        for (UriRef iri : provider.getStore().listTripleCollections()) {
             log.info("{}", iri.toString());
             UriRef entity = new UriRef(Constants.PEANUTS_MINOR_BASE + "#" + Constants.truffles);
-            Graph ctx = new GraphNode(entity, onm.getOntologyStore().getGraph(
-                new UriRef(iri.toString().substring(1, iri.toString().length() - 1)))).getNodeContext();
+            Graph ctx = new GraphNode(entity, provider.getStore().getTriples(iri)).getNodeContext();
             Iterator<Triple> it = ctx.iterator();
             while (it.hasNext())
                 triples.add(it.next());
         }
 
-        assertFalse(onm.getOntologyStore().listGraphs().isEmpty());
+        assertFalse(provider.getStore().listTripleCollections().isEmpty());
         assertEquals(3, triples.size());
     }
 

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestClerezzaSpaces.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestClerezzaSpaces.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestClerezzaSpaces.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestClerezzaSpaces.java Wed Nov  2 18:41:36 2011
@@ -51,6 +51,7 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SpaceType;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.UnmodifiableOntologyCollectorException;
 import org.apache.stanbol.ontologymanager.ontonet.impl.OfflineConfigurationImpl;
+import org.apache.stanbol.ontologymanager.ontonet.impl.clerezza.ClerezzaOntologyProvider;
 import org.apache.stanbol.ontologymanager.ontonet.impl.clerezza.ClerezzaUtils;
 import org.apache.stanbol.ontologymanager.ontonet.impl.clerezza.OntologySpaceFactoryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.ScopeRegistryImpl;
@@ -114,8 +115,8 @@ public class TestClerezzaSpaces {
         OWLIndividual iLinus = df.getOWLNamedIndividual(IRI.create(baseIri + "/" + Constants.linus));
         linusIsHuman = df.getOWLClassAssertionAxiom(cHuman, iLinus);
 
-        factory = new OntologySpaceFactoryImpl(reg, tcManager, offline,
-                IRI.create("http://stanbol.apache.org/ontology/"));
+        factory = new OntologySpaceFactoryImpl(reg, new ClerezzaOntologyProvider(tcManager, offline, parser),
+                offline, IRI.create("http://stanbol.apache.org/ontology/"));
     }
 
     String scopeId = "Comics";
@@ -270,7 +271,7 @@ public class TestClerezzaSpaces {
 
     }
 
-//    @Test
+    // @Test
     public void testSessionModification() throws Exception {
         SessionOntologySpace space = factory.createSessionOntologySpace(scopeId);
         space.setUp();

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java Wed Nov  2 18:41:36 2011
@@ -33,9 +33,9 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.ScopeRegistry;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ONManagerImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.OfflineConfigurationImpl;
-import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.CoreOntologySpaceImpl;
-import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.CustomOntologySpaceImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyScopeFactoryImpl;
+import org.apache.stanbol.ontologymanager.ontonet.impl.owlapi.CoreOntologySpaceImpl;
+import org.apache.stanbol.ontologymanager.ontonet.impl.owlapi.CustomOntologySpaceImpl;
 import org.apache.stanbol.owl.OWLOntologyManagerFactory;
 import org.junit.After;
 import org.junit.Before;

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologySpaces.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologySpaces.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologySpaces.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologySpaces.java Wed Nov  2 18:41:36 2011
@@ -256,7 +256,7 @@ public class TestOntologySpaces {
 
     }
 
-    @Test
+//    @Test
     public void testSessionModification() throws Exception {
         SessionOntologySpace space = factory.createSessionOntologySpace(scopeId);
         space.setUp();

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java Wed Nov  2 18:41:36 2011
@@ -95,8 +95,8 @@ public class TestSessions {
         assertNotNull(scope);
         Session ses = sesmgr.createSession();
         assertTrue(scope.getSessionSpaces().isEmpty());
-        scope.addSessionSpace(spaceFactory.createSessionOntologySpace(scopeId1), ses.getID());
-        assertFalse(scope.getSessionSpaces().isEmpty());
+        // scope.addSessionSpace(spaceFactory.createSessionOntologySpace(scopeId1), ses.getID());
+        // assertFalse(scope.getSessionSpaces().isEmpty());
     }
 
     @Test

Modified: incubator/stanbol/trunk/ontologymanager/registry/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/pom.xml?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/pom.xml (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/pom.xml Wed Nov  2 18:41:36 2011
@@ -123,6 +123,26 @@
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>rdf.jena.parser</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>rdf.jena.serializer</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>rdf.rdfjson</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>rdf.simple.storage</artifactId>
+			<scope>test</scope>
+		</dependency>
 
 	</dependencies>
 

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/IllegalRegistryCycleException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/IllegalRegistryCycleException.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/IllegalRegistryCycleException.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/IllegalRegistryCycleException.java Wed Nov  2 18:41:36 2011
@@ -21,7 +21,9 @@ import org.apache.stanbol.ontologymanage
 /**
  * Thrown when an attempt to create an illegal cycle in the registry item model is detected. Examples of
  * illegal cycles include being both a parent and a child of the same registry item, or a parent or child of
- * itself.
+ * itself, or a library being a child of an ontology.
+ * 
+ * @author alexdma
  */
 public class IllegalRegistryCycleException extends RegistryContentException {
 

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/LibraryContentNotLoadedException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/LibraryContentNotLoadedException.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/LibraryContentNotLoadedException.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/LibraryContentNotLoadedException.java Wed Nov  2 18:41:36 2011
@@ -18,11 +18,12 @@ package org.apache.stanbol.ontologymanag
 
 import org.apache.stanbol.ontologymanager.registry.api.model.Library;
 
-
 /**
  * Thrown whenever there is a request for the contents of an ontology library which have not been loaded yet
  * (e.g. due to lazy loading policies). Developers who catch this exception may, for example, decide to load
  * the library contents.
+ * 
+ * @author alexdma
  */
 public class LibraryContentNotLoadedException extends RegistryContentException {
 

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentException.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentException.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentException.java Wed Nov  2 18:41:36 2011
@@ -19,6 +19,8 @@ package org.apache.stanbol.ontologymanag
 /**
  * Thrown when trying to process an invalid registry item. The reason why it is invalid can be specified by
  * the cause, message or subclasses of this exception.
+ * 
+ * @author alexdma
  */
 public class RegistryContentException extends Exception {
 

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentListener.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentListener.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentListener.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryContentListener.java Wed Nov  2 18:41:36 2011
@@ -19,7 +19,9 @@ package org.apache.stanbol.ontologymanag
 import org.apache.stanbol.ontologymanager.registry.api.model.RegistryItem;
 
 /**
- * Object that react to direct content requests to ontology registry items will implement this interface.
+ * Objects that react to direct content requests to ontology registry items will implement this interface.
+ * 
+ * @author alexdma
  */
 public interface RegistryContentListener {
 

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemFactory.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemFactory.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemFactory.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemFactory.java Wed Nov  2 18:41:36 2011
@@ -32,6 +32,8 @@ import org.semanticweb.owlapi.model.OWLO
  * create and/or append the parents and children of any generated object. Refer to
  * {@link RegistryManager#createModel(Set)} to recursively populate a registry item starting from a set of
  * registries.
+ * 
+ * @author alexdma
  */
 public interface RegistryItemFactory {
 

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemIndex.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemIndex.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemIndex.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryItemIndex.java Wed Nov  2 18:41:36 2011
@@ -22,6 +22,12 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.registry.api.model.Registry;
 import org.semanticweb.owlapi.model.IRI;
 
+/**
+ * Objects that keep track of known libraries, registries and ontologies can implement this interface.
+ * 
+ * @author alexdma
+ * 
+ */
 public interface RegistryItemIndex {
 
     /**

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryManager.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryManager.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryManager.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryManager.java Wed Nov  2 18:41:36 2011
@@ -27,7 +27,10 @@ import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLOntology;
 
 /**
- * Replacement for {@link RegistryLoader}. Also indexes libraries (and ontologies?).
+ * An object responsible for the retrieval, loading and unloading of ontology registries and libraries. Also
+ * works as an indexer for registry items.
+ * 
+ * @author alexdma
  */
 public interface RegistryManager extends RegistryItemIndex {
 
@@ -70,13 +73,13 @@ public interface RegistryManager extends
      * Depending on implementations, this method may or may not be automatically invoked after a call to
      * methods that determine changes to the model.
      * 
-     * @param registryOntologies
+     * @param registryDescriptors
      *            the source OWL ontologies that describe the registries. If any of these denotes an invalid
      *            registry, a {@link RegistryContentException} will be thrown. If it does not denote a
      *            registry at all, it will be skipped.
      * @return the ontology registries that are the parent items of the entire model.
      */
-    Set<Registry> createModel(Set<OWLOntology> registryOntologies);
+    Set<Registry> createModel(Set<OWLOntology> registryDescriptors);
 
     /**
      * Returns the ontology caching policy currently adopted by the registry manager.

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOntologyNotLoadedException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOntologyNotLoadedException.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOntologyNotLoadedException.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOntologyNotLoadedException.java Wed Nov  2 18:41:36 2011
@@ -19,7 +19,6 @@ package org.apache.stanbol.ontologymanag
 import org.apache.stanbol.ontologymanager.registry.api.model.RegistryItem;
 import org.apache.stanbol.ontologymanager.registry.api.model.RegistryOntology;
 
-
 /**
  * Thrown whenever there is a request for the raw OWL version of a registry ontology which has not been loaded
  * yet (e.g. due to lazy loading policies). Developers who catch this exception may, for example, decide to
@@ -28,6 +27,8 @@ import org.apache.stanbol.ontologymanage
  * Note that this exception is independent from calls to
  * {@link RegistryContentListener#registryContentRequested(RegistryItem)}, although it can be expected to be
  * thrown thereafter.
+ * 
+ * @author alexdma
  */
 public class RegistryOntologyNotLoadedException extends RegistryContentException {
 

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOperation.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOperation.java?rev=1196752&r1=1196751&r2=1196752&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOperation.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/api/RegistryOperation.java Wed Nov  2 18:41:36 2011
@@ -18,6 +18,8 @@ package org.apache.stanbol.ontologymanag
 
 /**
  * The possible types of operations that can be performed with registry items.
+ * 
+ * @author alexdma
  */
 public enum RegistryOperation {