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 2012/02/17 17:41:54 UTC

svn commit: r1245648 - in /incubator/stanbol/trunk/ontologymanager: ontonet/ ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ ontonet/src/main...

Author: alexdma
Date: Fri Feb 17 16:41:53 2012
New Revision: 1245648

URL: http://svn.apache.org/viewvc?rev=1245648&view=rev
Log:
* First implementation of a "touch library" policy from STANBOL-497; namely, policy 1 (REST-side) with selection of the library with fewest ontologies, whatever the size.
* Some freemarker stuff to allow operations on OntoNet via the HTML interface.

Added:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProviderListener.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/static/scripts/
      - copied from r1243475, incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/static/actions/
    incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/static/scripts/jquery-1.6.1
      - copied unchanged from r1243475, incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/static/jquery/jquery-1.6.1
    incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/static/style/
      - copied from r1243475, incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/static/css/
Removed:
    incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/static/actions/
    incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/static/css/
    incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/static/jquery/
Modified:
    incubator/stanbol/trunk/ontologymanager/ontonet/pom.xml
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyCollector.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/ClerezzaOntologyProvider.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/ScopeRegistryImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/owlapi/AbstractOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestClerezzaInputSources.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/LibraryImpl.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ScopeResource.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/StoredOntologyResource.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource/index.ftl
    incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/RegistryManagerResource/index.ftl

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/pom.xml?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/pom.xml (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/pom.xml Fri Feb 17 16:41:53 2012
@@ -130,6 +130,11 @@
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
 		</dependency>
+    	<dependency>
+    		<groupId>org.slf4j</groupId>
+    		<artifactId>slf4j-simple</artifactId>
+    		<scope>test</scope>
+    	</dependency>
 		<dependency>
 			<groupId>org.apache.clerezza</groupId>
 			<artifactId>rdf.jena.parser</artifactId>

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyCollector.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyCollector.java?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyCollector.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyCollector.java Fri Feb 17 16:41:53 2012
@@ -137,6 +137,8 @@ public interface OntologyCollector exten
      * @return
      */
     int getOntologyCount(boolean withClosure);
+    
+    int getOntologyCount();
 
     /**
      * Determines if the ontology identified by the supplied <i>logical</i> IRI has been loaded in this space.<br>

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProviderListener.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProviderListener.java?rev=1245648&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProviderListener.java (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyProviderListener.java Fri Feb 17 16:41:53 2012
@@ -0,0 +1,51 @@
+/*
+ * 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;
+
+public interface OntologyProviderListener {
+
+    /**
+     * A utility implementation of {@link OntologyProviderListener} that does nothing.
+     * 
+     * @author alessandro
+     * 
+     */
+    public class Stub implements OntologyProviderListener {
+
+        @Override
+        public void beforeOntologyRequested(OntologyProvider<?> provider, String key) {}
+
+        @Override
+        public void beforeOntologyStored(OntologyProvider<?> provider, Object ontology) {}
+
+        @Override
+        public void onOntologyRequested(OntologyProvider<?> provider, String key) {}
+
+        @Override
+        public void onOntologyStored(OntologyProvider<?> provider, Object ontology) {}
+
+    }
+
+    void beforeOntologyRequested(OntologyProvider<?> provider, String key);
+
+    void beforeOntologyStored(OntologyProvider<?> provider, Object ontology);
+
+    void onOntologyRequested(OntologyProvider<?> provider, String key);
+
+    void onOntologyStored(OntologyProvider<?> provider, Object ontology);
+
+}

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=1245648&r1=1245647&r2=1245648&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 Fri Feb 17 16:41:53 2012
@@ -573,6 +573,11 @@ public abstract class AbstractOntologyCo
                 "Closure support not implemented efficiently yet. Please call getOntologyCount(false).");
         return managedOntologies.size();
     }
+    
+    @Override
+    public int getOntologyCount() {
+        return getOntologyCount(false);
+    }
 
     @Override
     public Set<Class<?>> getSupportedOntologyTypes() {

Modified: 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=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java Fri Feb 17 16:41:53 2012
@@ -318,12 +318,16 @@ public class ClerezzaOntologyProvider im
 
     @Override
     public <O> O getStoredOntology(IRI reference, Class<O> returnType) {
-        return getStoredOntology(getKey(reference), returnType);
+        return getStoredOntology(reference, returnType, false);
     }
 
     @Override
     public <O> O getStoredOntology(IRI reference, Class<O> returnType, boolean forceMerge) {
-        return getStoredOntology(getKey(reference), returnType, forceMerge);
+        String key = getKey(reference);
+        if (key == null || key.isEmpty()) {
+            log.warn("No key found for IRI {}", reference);
+            return null;
+        } else return getStoredOntology(key, returnType, forceMerge);
     }
 
     @Override
@@ -337,11 +341,12 @@ public class ClerezzaOntologyProvider im
     @SuppressWarnings("unchecked")
     @Override
     public <O> O getStoredOntology(String identifier, Class<O> returnType, boolean forceMerge) {
-        if (identifier == null) throw new IllegalArgumentException("Identifier cannot be null");
+        if (identifier == null || identifier.isEmpty()) throw new IllegalArgumentException(
+                "Identifier cannot be null or empty.");
         if (returnType == null) {
             // Defaults to OWLOntology
             returnType = (Class<O>) OWLOntology.class;
-            log.warn("No return type given for ontologies. Will return a {}", returnType);
+            log.warn("No return type given for the ontology. Will return a {}", returnType.getCanonicalName());
         }
         boolean canDo = false;
         for (Class<?> clazz : getSupportedReturnTypes())
@@ -350,11 +355,12 @@ public class ClerezzaOntologyProvider im
                 break;
             }
         if (!canDo) throw new UnsupportedOperationException(
-                "Return type " + returnType
+                "Return type " + returnType.getCanonicalName()
                         + " is not allowed in this implementation. Only allowed return types are "
                         + supported);
 
         TripleCollection tc = store.getTriples(new UriRef(identifier));
+        if (tc == null) return null;
 
         if (MGraph.class.isAssignableFrom(returnType)) {
             return returnType.cast(tc);
@@ -362,7 +368,9 @@ public class ClerezzaOntologyProvider im
             try {
                 return (O) toOWLOntology(new UriRef(identifier), forceMerge);
             } catch (OWLOntologyCreationException e) {
-                log.error("Failed to return stored ontology " + identifier + " as type " + returnType, e);
+                log.error(
+                    "Failed to return stored ontology " + identifier + " as type "
+                            + returnType.getCanonicalName(), e);
             }
         }
 

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/ScopeRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/ScopeRegistryImpl.java?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/ScopeRegistryImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/ScopeRegistryImpl.java Fri Feb 17 16:41:53 2012
@@ -130,11 +130,6 @@ public class ScopeRegistryImpl implement
             l.scopeRegistered(scope);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see eu.iksproject.kres.api.manager.ontology.ScopeRegistry#getActiveScopes()
-     */
     @Override
     public Set<OntologyScope> getActiveScopes() {
         Set<OntologyScope> scopes = new HashSet<OntologyScope>();
@@ -143,67 +138,32 @@ public class ScopeRegistryImpl implement
         return scopes;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see eu.iksproject.kres.api.manager.ontology.ScopeRegistry#getRegisteredScopes()
-     */
     @Override
     public synchronized Set<OntologyScope> getRegisteredScopes() {
         return new HashSet<OntologyScope>(scopeMap.values());
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see eu.iksproject.kres.api.manager.ontology.ScopeRegistry#getScope(org.semanticweb.owlapi.model.IRI)
-     */
     @Override
     public OntologyScope getScope(String scopeID) {
         return scopeMap.get(scopeID);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see eu.iksproject.kres.api.manager.ontology.ScopeRegistry#getScopeRegistrationListeners()
-     */
     @Override
     public Set<ScopeEventListener> getScopeRegistrationListeners() {
         return scopeListeners;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * eu.iksproject.kres.api.manager.ontology.ScopeRegistry#isScopeActive(org.semanticweb.owlapi.model.IRI)
-     */
     @Override
     public boolean isScopeActive(String scopeID) {
         if (!containsScope(scopeID)) throw new NoSuchScopeException(scopeID);
         return activeScopeIRIs.contains(scopeID);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * eu.iksproject.kres.api.manager.ontology.ScopeRegistry#registerScope(eu.iksproject.kres.api.manager.
-     * ontology.OntologyScope)
-     */
     @Override
     public synchronized void registerScope(OntologyScope scope) {
         registerScope(scope, false);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * eu.iksproject.kres.api.manager.ontology.ScopeRegistry#registerScope(eu.iksproject.kres.api.manager.
-     * ontology.OntologyScope, boolean)
-     */
     @Override
     public synchronized void registerScope(OntologyScope scope, boolean activate) {
         scopeMap.put(scope.getID(), scope);
@@ -211,25 +171,11 @@ public class ScopeRegistryImpl implement
         fireScopeRegistered(scope);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * eu.iksproject.kres.api.manager.ontology.ScopeRegistry#removeScopeRegistrationListener(eu.iksproject
-     * .kres.api.manager.ontology.ScopeEventListener)
-     */
     @Override
     public void removeScopeRegistrationListener(ScopeEventListener listener) {
         scopeListeners.remove(listener);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * eu.iksproject.kres.api.manager.ontology.ScopeRegistry#setScopeActive(org.semanticweb.owlapi.model.IRI,
-     * boolean)
-     */
     @Override
     public void setScopeActive(String scopeID, boolean active) {
         if (!containsScope(scopeID)) throw new NoSuchScopeException(scopeID);

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=1245648&r1=1245647&r2=1245648&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 Fri Feb 17 16:41:53 2012
@@ -315,6 +315,11 @@ public abstract class AbstractOntologySp
             return set.size();
         }
     }
+    
+    @Override
+    public int getOntologyCount() {
+        return getOntologyCount(true);
+    }
 
     @Override
     public Set<Class<?>> getSupportedOntologyTypes() {

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestClerezzaInputSources.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestClerezzaInputSources.java?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestClerezzaInputSources.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestClerezzaInputSources.java Fri Feb 17 16:41:53 2012
@@ -23,34 +23,38 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertNotNull;
 
 import java.io.InputStream;
+import java.util.Hashtable;
 import java.util.Set;
 
 import org.apache.clerezza.rdf.core.TripleCollection;
 import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.TcProvider;
+import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
+import org.apache.clerezza.rdf.simple.storage.SimpleTcProvider;
 import org.apache.stanbol.ontologymanager.ontonet.Locations;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.GraphContentInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.GraphSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpace;
+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.CoreOntologySpaceImpl;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.semanticweb.owlapi.model.IRI;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TestClerezzaInputSources {
 
+    private Logger log = LoggerFactory.getLogger(getClass());
+
     @BeforeClass
     public static void loadGraphs() throws Exception {
         reset();
-        UriRef uri = new UriRef(Locations.CHAR_ACTIVE.toString());
-        InputStream inputStream = TestClerezzaInputSources.class
-                .getResourceAsStream("/ontologies/characters_all.owl");
-        parser.parse(tcManager.createMGraph(uri), inputStream, "application/rdf+xml", uri);
-        uri = new UriRef(Locations.CHAR_MAIN.toString());
-        inputStream = TestClerezzaInputSources.class.getResourceAsStream("/ontologies/maincharacters.owl");
-        parser.parse(tcManager.createMGraph(uri), inputStream, "application/rdf+xml", uri);
-        uri = new UriRef(Locations.CHAR_MINOR.toString());
-        inputStream = TestClerezzaInputSources.class.getResourceAsStream("/ontologies/minorcharacters.owl");
-        parser.parse(tcManager.createMGraph(uri), inputStream, "application/rdf+xml", uri);
-
     }
 
     private OntologyInputSource<TripleCollection,?> gis;
@@ -66,7 +70,48 @@ public class TestClerezzaInputSources {
     }
 
     @Test
+    public void testGraphContentSource() throws Exception {
+        // Make sure the tc manager has been reset
+        assertEquals(0, tcManager.listTripleCollections().size());
+
+        OntologyProvider<TcProvider> provider = new ClerezzaOntologyProvider(tcManager,
+                new OfflineConfigurationImpl(new Hashtable<String,Object>()), parser);
+
+        InputStream content = TestClerezzaInputSources.class
+                .getResourceAsStream("/ontologies/droppedcharacters.owl");
+        OntologyInputSource<?,TcProvider> src = new GraphContentInputSource(content, SupportedFormat.RDF_XML,
+            new SimpleTcProvider(), parser);
+        
+        log.info("After input source creation, TcManager has {} graphs. ", tcManager.listTripleCollections()
+                .size());
+        for (UriRef name : tcManager.listTripleCollections())
+            log.info("-- {} (a {})", name, tcManager.getTriples(name).getClass().getSimpleName());
+        assertEquals(0, tcManager.listTripleCollections().size());
+        OntologySpace spc = new CoreOntologySpaceImpl(TestClerezzaInputSources.class.getSimpleName(),
+                IRI.create("http://stanbol.apache.org/ontologies/"), provider);
+        spc.addOntology(src);
+        log.info("After addition to space, TcManager has {} graphs. ", tcManager.listTripleCollections()
+                .size());
+
+        for (UriRef name : tcManager.listTripleCollections())
+            log.info("-- {} (a {})", name, tcManager.getTriples(name).getClass().getSimpleName());
+        assertEquals(1, tcManager.listTripleCollections().size());
+    
+    }
+
+    @Test
     public void testGraphSource() throws Exception {
+        UriRef uri = new UriRef(Locations.CHAR_ACTIVE.toString());
+        InputStream inputStream = TestClerezzaInputSources.class
+                .getResourceAsStream("/ontologies/characters_all.owl");
+        parser.parse(tcManager.createMGraph(uri), inputStream, SupportedFormat.RDF_XML, uri);
+        uri = new UriRef(Locations.CHAR_MAIN.toString());
+        inputStream = TestClerezzaInputSources.class.getResourceAsStream("/ontologies/maincharacters.owl");
+        parser.parse(tcManager.createMGraph(uri), inputStream, SupportedFormat.RDF_XML, uri);
+        uri = new UriRef(Locations.CHAR_MINOR.toString());
+        inputStream = TestClerezzaInputSources.class.getResourceAsStream("/ontologies/minorcharacters.owl");
+        parser.parse(tcManager.createMGraph(uri), inputStream, SupportedFormat.RDF_XML, uri);
+
         gis = new GraphSource(new UriRef(Locations.CHAR_ACTIVE.toString()));
         assertNotNull(gis);
         assertNotNull(gis.getRootOntology());

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/RegistryManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/RegistryManagerImpl.java?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/RegistryManagerImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/RegistryManagerImpl.java Fri Feb 17 16:41:53 2012
@@ -126,7 +126,10 @@ public class RegistryManagerImpl impleme
     @Reference
     private OfflineConfiguration offline;
 
-    /* Maps libraries to ontologies */
+    /*
+     * Maps libraries (values) to ontologies (keys). This does not keep track of the loading status of each
+     * library, as it is handled by the library itelf.
+     */
     private Map<IRI,Set<IRI>> ontologyIndex = new HashMap<IRI,Set<IRI>>();
 
     private Map<IRI,RegistryItem> population = new TreeMap<IRI,RegistryItem>();
@@ -536,13 +539,13 @@ public class RegistryManagerImpl impleme
     }
 
     protected Library populateLibrary(OWLNamedIndividual ind, Set<OWLOntology> registries) throws RegistryContentException {
-        IRI id = ind.getIRI();
+        IRI libId = ind.getIRI();
         RegistryItem lib = null;
-        if (population.containsKey(id)) {
+        if (population.containsKey(libId)) {
             // We are not allowing multityping either.
-            lib = population.get(id);
+            lib = population.get(libId);
             if (!(lib instanceof Library)) throw new RegistryContentException(
-                    "Inconsistent multityping: for item " + id + " : {" + Library.class + ", "
+                    "Inconsistent multityping: for item " + libId + " : {" + Library.class + ", "
                             + lib.getClass() + "}");
         } else {
             lib = riFactory.createLibrary(ind.asOWLNamedIndividual());
@@ -560,22 +563,25 @@ public class RegistryManagerImpl impleme
         for (OWLIndividual iront : ironts)
             if (iront.isNamed()) {
                 IRI childId = iront.asOWLNamedIndividual().getIRI();
+                // If some populate*() method has created it, it will be there.
                 RegistryItem ront = population.get(childId);
-                if (ront != null) lib.addChild(ront);
-                else if (lib.getChild(childId) == null) lib.addChild(populateOntology(
-                    iront.asOWLNamedIndividual(), registries));
+                // Otherwise populating it will also put it in population.
+                if (ront == null) ront = populateOntology(iront.asOWLNamedIndividual(), registries);
+                lib.addChild(ront);
+                if (ontologyIndex.get(childId) == null) ontologyIndex.put(childId, new HashSet<IRI>());
+                ontologyIndex.get(childId).add(libId);
             }
         return (Library) lib;
     }
 
     protected RegistryOntology populateOntology(OWLNamedIndividual ind, Set<OWLOntology> registries) throws RegistryContentException {
-        IRI id = ind.getIRI();
+        IRI ontId = ind.getIRI();
         RegistryItem ront = null;
-        if (population.containsKey(id)) {
+        if (population.containsKey(ontId)) {
             // We are not allowing multityping either.
-            ront = population.get(id);
+            ront = population.get(ontId);
             if (!(ront instanceof RegistryOntology)) throw new RegistryContentException(
-                    "Inconsistent multityping: for item " + id + " : {" + RegistryOntology.class + ", "
+                    "Inconsistent multityping: for item " + ontId + " : {" + RegistryOntology.class + ", "
                             + ront.getClass() + "}");
         } else {
             ront = riFactory.createRegistryOntology(ind);
@@ -593,10 +599,13 @@ public class RegistryManagerImpl impleme
         for (OWLIndividual ilib : libs)
             if (ilib.isNamed()) {
                 IRI parentId = ilib.asOWLNamedIndividual().getIRI();
+                // If some populate*() method has created it, it will be there.
                 RegistryItem rlib = population.get(parentId);
-                if (rlib != null) ront.addParent(rlib);
-                else if (ront.getParent(parentId) == null) ront.addParent(populateLibrary(
-                    ilib.asOWLNamedIndividual(), registries));
+                // Otherwise populating it will also put it in population.
+                if (rlib == null) rlib = populateLibrary(ilib.asOWLNamedIndividual(), registries);
+                ront.addParent(rlib);
+                if (ontologyIndex.get(ontId) == null) ontologyIndex.put(ontId, new HashSet<IRI>());
+                ontologyIndex.get(ontId).add(parentId);
             }
         return (RegistryOntology) ront;
     }

Modified: incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/model/LibraryImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/model/LibraryImpl.java?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/model/LibraryImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/registry/src/main/java/org/apache/stanbol/ontologymanager/registry/impl/model/LibraryImpl.java Fri Feb 17 16:41:53 2012
@@ -20,13 +20,9 @@ import java.io.IOException;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.clerezza.rdf.core.TripleCollection;
-import org.apache.clerezza.rdf.core.UriRef;
 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.stanbol.commons.owl.transformation.OWLAPIToClerezzaConverter;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
 import org.apache.stanbol.ontologymanager.ontonet.impl.clerezza.ClerezzaOntologyProvider;
 import org.apache.stanbol.ontologymanager.registry.api.IllegalRegistryCycleException;
@@ -131,16 +127,24 @@ public class LibraryImpl extends Abstrac
 
     @Override
     public OWLOntology getOntology(IRI id) throws RegistryContentException {
-        Object store = cache.getStore();
-        if (store instanceof WeightedTcProvider) {
-            WeightedTcProvider wtcp = (WeightedTcProvider) store;
-            TripleCollection tc = wtcp.getTriples(new UriRef(id.toString()));
-            return OWLAPIToClerezzaConverter.clerezzaGraphToOWLOntology(tc);
-        } else if (store instanceof OWLOntologyManager) {
-            OWLOntologyManager omgr = (OWLOntologyManager) store;
-            return omgr.getOntology(id);
-        } else throw new IllegalStateException(
-                "Library implementation was assigned an unsupported cache type.");
+        /*
+         * Note that this implementation is not synchronized. Listeners may indefinitely be notified before or
+         * after the rest of this method is executed. If listeners call loadOntologies(), they could still get
+         * a RegistryContentException, which however they can catch by calling loadOntologies() and
+         * getOntologies() in sequence.
+         */
+        fireContentRequested(this);
+        // If no listener has saved the day by loading the ontologies by now, an exception will be thrown.
+        if (!loaded) throw new LibraryContentNotLoadedException(this);
+
+        OWLOntology ontology = null;
+
+        RegistryItem child = getChild(id);
+        if (child instanceof RegistryOntology) {
+            ontology = (OWLOntology) getCache().getStoredOntology(((RegistryOntology) child).getIRI(),
+                OWLOntology.class);
+        }
+        return ontology;
     }
 
     @Override

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/OntonetFragment.java Fri Feb 17 16:41:53 2012
@@ -124,7 +124,7 @@ public class OntonetFragment implements 
     @Override
     public List<LinkResource> getLinkResources() {
         List<LinkResource> resources = new ArrayList<LinkResource>();
-        resources.add(new LinkResource("stylesheet", "css/ontonet.css", this, 10));
+        resources.add(new LinkResource("stylesheet", "style/ontonet.css", this, 10));
         return resources;
     }
 
@@ -143,7 +143,7 @@ public class OntonetFragment implements 
     @Override
     public List<ScriptResource> getScriptResources() {
         List<ScriptResource> resources = new ArrayList<ScriptResource>();
-        resources.add(new ScriptResource("text/javascript", "actions/actions.js", this, 10));
+        resources.add(new ScriptResource("text/javascript", "scripts/actions.js", this, 10));
         return resources;
     }
 

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource.java?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource.java Fri Feb 17 16:41:53 2012
@@ -104,9 +104,9 @@ public class OntologyNetworkResource ext
     @GET
     @Produces(value = {KRFormat.RDF_XML, KRFormat.OWL_XML, KRFormat.TURTLE, KRFormat.FUNCTIONAL_OWL,
                        KRFormat.MANCHESTER_OWL, KRFormat.RDF_JSON})
-    public Response getScopes(@DefaultValue("false") @QueryParam("with-inactive") boolean inactive,
-                              @Context HttpHeaders headers,
-                              @Context ServletContext servletContext) {
+    public Response getScopeModel(@DefaultValue("false") @QueryParam("with-inactive") boolean inactive,
+                                  @Context HttpHeaders headers,
+                                  @Context ServletContext servletContext) {
 
         ScopeRegistry reg = onm.getScopeRegistry();
 
@@ -117,6 +117,14 @@ public class OntologyNetworkResource ext
         return Response.ok(ontology).build();
     }
 
+    public Set<OntologyScope> getScopes() {
+        return onm.getScopeRegistry().getRegisteredScopes();
+    }
+    
+    public Set<OntologyScope> getActiveScopes() {
+        return onm.getScopeRegistry().getActiveScopes();
+    }
+
     @GET
     @Produces(TEXT_HTML)
     public Response getView() {

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ScopeResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ScopeResource.java?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ScopeResource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ScopeResource.java Fri Feb 17 16:41:53 2012
@@ -234,7 +234,7 @@ public class ScopeResource extends BaseS
                                   @QueryParam("coreont") String coreOntology,
                                   @QueryParam("customreg") String customRegistry,
                                   @QueryParam("customont") String customOntology,
-                                  @DefaultValue("false") @QueryParam("activate") String activate,
+                                  @DefaultValue("false") @QueryParam("activate") boolean activate,
                                   @Context UriInfo uriInfo,
                                   @Context HttpHeaders headers,
                                   @Context ServletContext servletContext) {
@@ -303,11 +303,7 @@ public class ScopeResource extends BaseS
             // still be open for modification.
             scope.setUp();
             reg.registerScope(scope);
-            boolean activateBool = true;
-            if (activate != null && !activate.equals("")) {
-                activateBool = Boolean.valueOf(activate);
-            }
-            reg.setScopeActive(scopeid, activateBool);
+            reg.setScopeActive(scopeid, activate);
         } catch (DuplicateIDException e) {
             throw new WebApplicationException(e, CONFLICT);
         } catch (Exception ex) {

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/StoredOntologyResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/StoredOntologyResource.java?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/StoredOntologyResource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/StoredOntologyResource.java Fri Feb 17 16:41:53 2012
@@ -39,6 +39,9 @@ import org.apache.stanbol.commons.web.ba
 import org.apache.stanbol.commons.web.base.format.KRFormat;
 import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
+import org.apache.stanbol.ontologymanager.registry.api.RegistryContentException;
+import org.apache.stanbol.ontologymanager.registry.api.RegistryManager;
+import org.apache.stanbol.ontologymanager.registry.api.model.Library;
 import org.semanticweb.owlapi.model.AddImport;
 import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLDataFactory;
@@ -60,11 +63,18 @@ public class StoredOntologyResource exte
      */
     protected OntologyProvider<?> ontologyProvider;
 
+    /*
+     * Placeholder for the OntologyProvider to be fetched from the servlet context.
+     */
+    protected RegistryManager registryManager;
+
     public StoredOntologyResource(@PathParam(value = "ontologyId") String ontologyId,
                                   @Context ServletContext servletContext) {
         this.servletContext = servletContext;
         this.ontologyProvider = (OntologyProvider<?>) ContextHelper.getServiceFromContext(
             OntologyProvider.class, servletContext);
+        this.registryManager = (RegistryManager) ContextHelper.getServiceFromContext(RegistryManager.class,
+            servletContext);
     }
 
     /**
@@ -87,35 +97,61 @@ public class StoredOntologyResource exte
                                        @Context UriInfo uriInfo,
                                        @Context HttpHeaders headers) {
         if (ontologyId == null) return Response.status(Status.BAD_REQUEST).build();
+        IRI iri = IRI.create(ontologyId);
+        log.debug("Will try to retrieve ontology {} from provider.", iri);
+        // TODO replace OWLOntology with Graph.
+        OWLOntology o = null;
         try {
-            IRI iri = IRI.create(ontologyId);
-            OWLOntology o = (OWLOntology) ontologyProvider.getStoredOntology(iri, OWLOntology.class, merged);
-            if (o == null) return Response.status(NOT_FOUND).build();
-
-            // Rewrite imports
-            String uri = uriInfo.getRequestUri().toString();
-            URI base = URI.create(uri.substring(0, uri.lastIndexOf(ontologyId) - 1));
-
-            // Rewrite import statements
-            List<OWLOntologyChange> changes = new ArrayList<OWLOntologyChange>();
-            OWLDataFactory df = o.getOWLOntologyManager().getOWLDataFactory();
-            /*
-             * TODO manage import rewrites better once the container ID is fully configurable (i.e. instead of
-             * going upOne() add "session" or "ontology" if needed).
-             */
-            for (OWLImportsDeclaration oldImp : o.getImportsDeclarations()) {
-                changes.add(new RemoveImport(o, oldImp));
-                String s = oldImp.getIRI().toString();
-                s = s.substring(s.indexOf("::") + 2, s.length());
-                IRI target = IRI.create(base + "/" + s);
-                changes.add(new AddImport(o, df.getOWLImportsDeclaration(target)));
+            o = (OWLOntology) ontologyProvider.getStoredOntology(iri, OWLOntology.class, merged);
+        } catch (Exception ex) {
+            log.warn("Retrieval of ontology with ID " + iri + " failed.", ex);
+        }
+
+        if (o == null) {
+            log.debug("Ontology {} missing from provider. Trying libraries...", iri);
+            // See if we can touch a library. TODO: replace with event model on the ontology provider.
+            int minSize = -1;
+            IRI smallest = null;
+            for (Library lib : registryManager.getLibraries(iri)) {
+                int size = lib.getChildren().length;
+                if (minSize < 1 || size < minSize) {
+                    smallest = lib.getIRI();
+                    minSize = size;
+                }
+            }
+            log.debug("Selected library for ontology {} is {} .", iri, smallest);
+            try {
+                o = registryManager.getLibrary(smallest).getOntology(iri);
+            } catch (RegistryContentException e) {
+                log.warn("The content of library " + smallest + " could not be accessed.", e);
             }
-            o.getOWLOntologyManager().applyChanges(changes);
+        }
+        log.debug("Ontology {} not found in any ontology provider or library.", iri);
+        if (o == null) return Response.status(NOT_FOUND).build();
 
-            return Response.ok(o).build();
-        } catch (Exception ex) {
-            return Response.status(Status.BAD_REQUEST).build();
+        log.debug("Retrieved ontology {} .", iri);
+
+        // Rewrite imports
+        String uri = uriInfo.getRequestUri().toString();
+        URI base = URI.create(uri.substring(0, uri.lastIndexOf(ontologyId) - 1));
+
+        // Rewrite import statements
+        List<OWLOntologyChange> changes = new ArrayList<OWLOntologyChange>();
+        OWLDataFactory df = o.getOWLOntologyManager().getOWLDataFactory();
+        /*
+         * TODO manage import rewrites better once the container ID is fully configurable (i.e. instead of
+         * going upOne() add "session" or "ontology" if needed).
+         */
+        for (OWLImportsDeclaration oldImp : o.getImportsDeclarations()) {
+            changes.add(new RemoveImport(o, oldImp));
+            String s = oldImp.getIRI().toString();
+            s = s.substring(s.indexOf("::") + 2, s.length());
+            IRI target = IRI.create(base + "/" + s);
+            changes.add(new AddImport(o, df.getOWLImportsDeclaration(target)));
         }
+        o.getOWLOntologyManager().applyChanges(changes);
+
+        return Response.ok(o).build();
 
     }
 

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource/index.ftl
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource/index.ftl?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource/index.ftl (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntologyNetworkResource/index.ftl Fri Feb 17 16:41:53 2012
@@ -18,15 +18,62 @@
 <#import "/imports/ontonetDescription.ftl" as ontonetDescription>
 
 <#escape x as x?html>
-  <@common.page title="Apache Stanbol OntoNet scope manager" hasrestapi=false>
+  <@common.page title="Apache Stanbol OntoNet scope manager" hasrestapi=true>
 		
     <div class="panel" id="webview">
+      <#assign scopes = it.scopes>
       <p>This is the start page of the ontology scope manager.</p>
-    </div>
+      
+      <div class="storeContents">
+      	<table id="allScopes">
+		  <div>
+		    <tr>
+		  	  <th></th>
+		      <th>Name</th>
+              <th>Status</th>
+		      <th>Comment <#--TODO: fix image path  <img src="${it.staticRootUrl}/contenthub/images/rdf.png" alt="Format: RDF"/> --></th>
+			  <th>&#35;Ontologies</th>
+		    </tr>
+		    <#list it.scopes as scope>
+		      <tr>
+			    <td>
+                  <img src="${it.staticRootUrl}/contenthub/images/edit_icon_16.png" title="Edit this item" />
+                  <img src="${it.staticRootUrl}/contenthub/images/delete_icon_16.png" title="Delete this item" />
+                </td>
+                <td><a href="${scope.ID}" title="${scope.ID}">${scope.ID}</a></td>
+                <td>${scope.locked?string("locked", "modifiable")}</td>
+                <td></td>
+                <td>${scope.coreSpace.ontologyCount + scope.customSpace.ontologyCount}</td>
+		      </tr>
+		    </#list>
+		  </div>
+	    </table> <!-- allScopes -->
+      </div>
+      
+      <!-- Collapsible version -->
+      <div class="enginelisting">
+        <p class="collapseheader">Ontology Scopes: 
+        </p>
+        <div class="collapsable">
+          <ul>
+            <#list it.scopes as scope>
+            <li>
+              <b>${scope.ID}</b> 
+            </li>
+            </#list>
+          </ul>
+        </div> <!-- collapsible-->
+      </div> <!-- scope listing -->
+    </div> <!-- web view -->
     
-    <hr>
+    <div class="panel" id="restapi" style="display: none;">
+
+    <h3>Service Endpoints</h3>
     <#include "/imports/inc_scopemgr.ftl">
     <#include "/imports/inc_scope.ftl">
 
+    </div>
+
+
   </...@common.page>
 </#escape>
\ No newline at end of file

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/RegistryManagerResource/index.ftl
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/RegistryManagerResource/index.ftl?rev=1245648&r1=1245647&r2=1245648&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/RegistryManagerResource/index.ftl (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/RegistryManagerResource/index.ftl Fri Feb 17 16:41:53 2012
@@ -39,7 +39,7 @@
      </#list>
     </ul>
     
-    <p class="note">Administrators can enable, disable and deploy reasoning services using the <a href="/system/console/components" target="_blank">OSGi console</a>.</p>
+    <p class="note">Administrators can add, remove and load ontology registries using the <a href="/system/console/components" target="_blank">OSGi console</a>.</p>
    </div>
    
   </div>