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/08/10 18:29:24 UTC

svn commit: r1371761 [1/3] - in /incubator/stanbol/trunk/ontologymanager: ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/ ontonet/src/main/java/org/ap...

Author: alexdma
Date: Fri Aug 10 16:29:22 2012
New Revision: 1371761

URL: http://svn.apache.org/viewvc?rev=1371761&view=rev
Log:
STANBOL-426:
* Got rid of the placeholder OriginOrInputSource class. Switched back to simple OntologyInputSource for ontology addition methods, but now input sources without a root ontology object are tolerated, provided that they have a valid Origin.
STANBOL-571:
* First commit of the internal network structure OWL schema (in Turtle syntax), with the versionIRI set to match the revision in the trunk.
* Completed Vocabulary class, also with OWL API types.

Added:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyReferenceSource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/StoredOntologySource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/resources/ontologies/meta.owl
Removed:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OriginOrInputSource.java
Modified:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/NamedArtifact.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/Vocabulary.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollector.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractClerezzaGraphInputSource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractGenericInputSource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOWLOntologyInputSource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologySpaceSource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/Origin.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologyScopeFactory.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologySpaceFactory.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/ClerezzaOntologyProvider.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CoreSpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/CustomSpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/MGraphNetworkMultiplexer.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/ontology/OntologyScopeImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/renderers/ScopeSetRenderer.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/session/SessionImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/session/SessionManagerImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/TestOntologyNetworkPersistence.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestClerezzaInputSources.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestOWLAPIInputSources.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.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/SessionResource.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/imports/inc_scope.ftl

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/NamedArtifact.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/NamedArtifact.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/NamedArtifact.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/NamedArtifact.java Fri Aug 10 16:29:22 2012
@@ -19,9 +19,9 @@ package org.apache.stanbol.ontologymanag
 import org.semanticweb.owlapi.model.IRI;
 
 /**
- * Denotes any API artifact that has an identifier. Both the identifier and the concatenation of the
- * namespace with the identifier should be unique in the system. Having both a non-null namespace and ID is
- * optional, but at least one of them should be non-null.
+ * Denotes any API artifact that has an identifier. Both the identifier and the concatenation of the namespace
+ * with the identifier should be unique in the system. Having both a non-null namespace and ID is optional,
+ * but at least one of them should be non-null.
  * 
  * @author alexdma
  * 
@@ -45,7 +45,7 @@ public interface NamedArtifact {
      * objects of different types cannot have the same ID. These aspects should be ensured by registries,
      * indexers etc.<br>
      * <br>
-     * TODO check if a type other than String (e.g. URI, IRI, UriRef) should be used.
+     * XXX check if a type other than String (e.g. URI, IRI, UriRef) should be used.
      * 
      * @return an identifier for this resource.
      */

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java Fri Aug 10 16:29:22 2012
@@ -18,7 +18,7 @@ package org.apache.stanbol.ontologymanag
 
 import java.io.File;
 
-import org.apache.stanbol.ontologymanager.ontonet.api.io.OriginOrInputSource;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.scope.OntologyScope;
 import org.apache.stanbol.ontologymanager.ontonet.api.scope.OntologyScopeFactory;
 import org.apache.stanbol.ontologymanager.ontonet.api.scope.OntologySpaceFactory;
@@ -31,7 +31,7 @@ import org.apache.stanbol.ontologymanage
  * <br>
  * Note that since this object is both a {@link ScopeRegistry} and an {@link OntologyScopeFactory}, the call
  * to {@link ScopeRegistry#registerScope(OntologyScope)} or its overloads after
- * {@link OntologyScopeFactory#createOntologyScope(String, OriginOrInputSource...)} is unnecessary, as the
+ * {@link OntologyScopeFactory#createOntologyScope(String, OntologyInputSource...)} is unnecessary, as the
  * ONManager automatically registers newly created scopes.
  * 
  * @author alexdma, anuzzolese

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/Vocabulary.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/Vocabulary.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/Vocabulary.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/Vocabulary.java Fri Aug 10 16:29:22 2012
@@ -17,9 +17,28 @@
 package org.apache.stanbol.ontologymanager.ontonet.api;
 
 import org.apache.clerezza.rdf.core.UriRef;
-
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLClass;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLDataProperty;
+import org.semanticweb.owlapi.model.OWLIndividual;
+import org.semanticweb.owlapi.model.OWLObjectProperty;
+
+/**
+ * An internal representation of the vocabulary that Stanbol uses internally for representing stored
+ * ontologies and virtual ontology networks, and restoring them on startup. This vocabulary is not intended to
+ * be used for ontologies exposed to the public.
+ * 
+ * TODO create the objects through reflection after parsing the corresponding OWL schema.
+ * 
+ * @author alexdma
+ * 
+ */
 public class Vocabulary {
 
+    private static OWLDataFactory __df = OWLManager.getOWLDataFactory();
+
     /**
      * The default namespace for the Stanbol OntoNet metadata vocabulary
      */
@@ -34,124 +53,349 @@ public class Vocabulary {
      */
     public static final String _NS_STANBOL_INTERNAL = "http://stanbol.apache.org/ontology/.internal/";
 
+    private static final String _SHORT_APPENDED_TO = "isAppendedTo";
+
+    private static final String _SHORT_ENTRY = "Entry";
+
+    private static final String _SHORT_GRAPH = "Graph";
+
+    private static final String _SHORT_HAS_APPENDED = "hasAppended";
+
+    private static final String _SHORT_HAS_ONTOLOGY_IRI = "hasOntologyIRI";
+
+    private static final String _SHORT_HAS_SPACE_CORE = "hasCoreSpace";
+
+    private static final String _SHORT_HAS_SPACE_CUSTOM = "hasCustomSpace";
+
+    private static final String _SHORT_HAS_STATUS = "hasStatus";
+
+    private static final String _SHORT_HAS_VERSION_IRI = "hasVersionIRI";
+
+    private static final String _SHORT_IS_MANAGED_BY = "isManagedBy";
+
+    private static final String _SHORT_IS_MANAGED_BY_CORE = "isManagedByCore";
+
+    private static final String _SHORT_IS_MANAGED_BY_CUSTOM = "isManagedByCustom";
+
+    private static final String _SHORT_IS_SPACE_CORE_OF = "isCoreSpaceOf";
+
+    private static final String _SHORT_IS_SPACE_CUSTOM_OF = "isCustomSpaceOf";
+
+    private static final String _SHORT_MANAGES = "manages";
+
+    private static final String _SHORT_MANAGES_IN_CORE = "managesInCore";
+
+    private static final String _SHORT_MANAGES_IN_CUSTOM = "managesInCustom";
+
+    private static final String _SHORT_MAPS_TO_GRAPH = "mapsToGraph";
+
+    private static final String _SHORT_RETRIEVED_FROM = "retrievedFrom";
+
+    private static final String _SHORT_SCOPE = "Scope";
+
+    private static final String _SHORT_SESSION = "Session";
+
+    private static final String _SHORT_SIZE_IN_AXIOMS = "hasSizeInAxioms";
+
+    private static final String _SHORT_SIZE_IN_TRIPLES = "hasSizeInTriples";
+
+    private static final String _SHORT_SPACE = "Space";
+
+    private static final String _SHORT_STATUS = "Status";
+
+    private static final String _SHORT_STATUS_ACTIVE = _SHORT_STATUS + ".ACTIVE";
+
+    private static final String _SHORT_STATUS_INACTIVE = _SHORT_STATUS + ".INACTIVE";
+
     /**
      * The OWL <b>object property</b> <tt>isAppendedTo</tt>.
      */
-    public static final UriRef APPENDED_TO = new UriRef(_NS_ONTONET + "isAppendedTo");
+    public static final OWLObjectProperty APPENDED_TO = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_APPENDED_TO));
 
     /**
-     * The OWL <b>class</b> <tt>Scope</tt>.
+     * The OWL <b>object property</b> <tt>isAppendedTo</tt> (in UriRef form).
+     */
+    public static final UriRef APPENDED_TO_URIREF = new UriRef(_NS_ONTONET + _SHORT_APPENDED_TO);
+
+    /**
+     * The OWL <b>class</b> <tt>Entry</tt>.
+     */
+    public static final OWLClass ENTRY = __df.getOWLClass(IRI.create(_NS_ONTONET + _SHORT_ENTRY));
+
+    /**
+     * The OWL <b>class</b> <tt>Entry</tt> (in UriRef form).
+     */
+    public static final UriRef ENTRY_URIREF = new UriRef(_NS_ONTONET + _SHORT_ENTRY);
+
+    /**
+     * The OWL <b>class</b> <tt>Graph</tt>.
      */
-    public static final UriRef ENTRY = new UriRef(_NS_ONTONET + "Entry");
+    public static final OWLClass GRAPH = __df.getOWLClass(IRI.create(_NS_ONTONET + _SHORT_GRAPH));
+
+    /**
+     * The OWL <b>class</b> <tt>Graph</tt> (in UriRef form).
+     */
+    public static final UriRef GRAPH_URIREF = new UriRef(_NS_ONTONET + _SHORT_GRAPH);
 
     /**
      * The OWL <b>object property</b> <tt>hasAppended</tt>.
      */
-    public static final UriRef HAS_APPENDED = new UriRef(_NS_ONTONET + "hasAppended");
+    public static final OWLObjectProperty HAS_APPENDED = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_HAS_APPENDED));
+
+    /**
+     * The OWL <b>object property</b> <tt>hasAppended</tt> (in UriRef form).
+     */
+    public static final UriRef HAS_APPENDED_URIREF = new UriRef(_NS_ONTONET + _SHORT_HAS_APPENDED);
 
     /**
      * The OWL <b>datatype property</b> <tt>hasOntologyIRI</tt>.
      */
-    public static final UriRef HAS_ONTOLOGY_IRI = new UriRef(_NS_ONTONET + "hasOntologyIRI");
+    public static final OWLDataProperty HAS_ONTOLOGY_IRI = __df.getOWLDataProperty(IRI
+            .create(_NS_ONTONET + _SHORT_HAS_ONTOLOGY_IRI));
 
     /**
-     * The OWL <b>object property</b> <tt>hasCoreSpace</tt>.
+     * The OWL <b>datatype property</b> <tt>hasOntologyIRI</tt> (in UriRef form).
      */
-    public static final UriRef HAS_SPACE_CORE = new UriRef(_NS_ONTONET + "hasCoreSpace");
+    public static final UriRef HAS_ONTOLOGY_IRI_URIREF = new UriRef(_NS_ONTONET + _SHORT_HAS_ONTOLOGY_IRI);
 
     /**
-     * The OWL <b>object property</b> <tt>hasCustomSpace</tt>.
+     * The OWL <b>object property</b> <tt>isManagedBy</tt>.
      */
-    public static final UriRef HAS_SPACE_CUSTOM = new UriRef(_NS_ONTONET + "hasCustomSpace");
+    public static final OWLObjectProperty HAS_SPACE_CORE = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_HAS_SPACE_CORE));
+
+    /**
+     * The OWL <b>object property</b> <tt>hasCoreSpace</tt> (in UriRef form).
+     */
+    public static final UriRef HAS_SPACE_CORE_URIREF = new UriRef(_NS_ONTONET + _SHORT_HAS_SPACE_CORE);
+
+    /**
+     * The OWL <b>object property</b> <tt>isManagedBy</tt>.
+     */
+    public static final OWLObjectProperty HAS_SPACE_CUSTOM = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_HAS_SPACE_CUSTOM));
+
+    /**
+     * The OWL <b>object property</b> <tt>hasCustomSpace</tt> (in UriRef form).
+     */
+    public static final UriRef HAS_SPACE_CUSTOM_URIREF = new UriRef(_NS_ONTONET + _SHORT_HAS_SPACE_CUSTOM);
+
+    /**
+     * The OWL <b>object property</b> <tt>hasStatus</tt> (in UriRef form).
+     */
+    public static final OWLObjectProperty HAS_STATUS = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_HAS_STATUS));
 
     /**
      * The OWL <b>object property</b> <tt>hasStatus</tt>.
      */
-    public static final UriRef HAS_STATUS = new UriRef(_NS_ONTONET + "hasStatus");
+    public static final UriRef HAS_STATUS_URIREF = new UriRef(_NS_ONTONET + _SHORT_HAS_STATUS);
 
     /**
      * The OWL <b>datatype property</b> <tt>hasVersionIRI</tt>.
      */
-    public static final UriRef HAS_VERSION_IRI = new UriRef(_NS_ONTONET + "hasVersionIRI");
+    public static final OWLDataProperty HAS_VERSION_IRI = __df.getOWLDataProperty(IRI
+            .create(_NS_ONTONET + _SHORT_HAS_VERSION_IRI));
+
+    /**
+     * The OWL <b>datatype property</b> <tt>hasVersionIRI</tt> (in UriRef form).
+     */
+    public static final UriRef HAS_VERSION_IRI_URIREF = new UriRef(_NS_ONTONET + _SHORT_HAS_VERSION_IRI);
 
     /**
      * The OWL <b>object property</b> <tt>isManagedBy</tt>.
      */
-    public static final UriRef IS_MANAGED_BY = new UriRef(_NS_ONTONET + "isManagedBy");
+    public static final OWLObjectProperty IS_MANAGED_BY = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_IS_MANAGED_BY));
 
     /**
      * The OWL <b>object property</b> <tt>isManagedByCore</tt>.
      */
-    public static final UriRef IS_MANAGED_BY_CORE = new UriRef(_NS_ONTONET + "isManagedByCore");
+    public static final OWLObjectProperty IS_MANAGED_BY_CORE = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_IS_MANAGED_BY_CORE));
+
+    /**
+     * The OWL <b>object property</b> <tt>isManagedByCore</tt> (in UriRef form).
+     */
+    public static final UriRef IS_MANAGED_BY_CORE_URIREF = new UriRef(_NS_ONTONET + _SHORT_IS_MANAGED_BY_CORE);
 
     /**
      * The OWL <b>object property</b> <tt>isManagedByCustom</tt>.
      */
-    public static final UriRef IS_MANAGED_BY_CUSTOM = new UriRef(_NS_ONTONET + "isManagedByCustom");
+    public static final OWLObjectProperty IS_MANAGED_BY_CUSTOM = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_IS_MANAGED_BY_CUSTOM));
+
+    /**
+     * The OWL <b>object property</b> <tt>isManagedByCustom</tt> (in UriRef form).
+     */
+    public static final UriRef IS_MANAGED_BY_CUSTOM_URIREF = new UriRef(_NS_ONTONET
+                                                                        + _SHORT_IS_MANAGED_BY_CUSTOM);
+
+    /**
+     * The OWL <b>object property</b> <tt>isManagedBy</tt> (in UriRef form).
+     */
+    public static final UriRef IS_MANAGED_BY_URIREF = new UriRef(_NS_ONTONET + _SHORT_IS_MANAGED_BY);
 
     /**
      * The OWL <b>object property</b> <tt>isCoreSpaceOf</tt>.
      */
-    public static final UriRef IS_SPACE_CORE_OF = new UriRef(_NS_ONTONET + "isCoreSpaceOf");
+    public static final OWLObjectProperty IS_SPACE_CORE_OF = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_IS_SPACE_CORE_OF));
+
+    /**
+     * The OWL <b>object property</b> <tt>isCoreSpaceOf</tt> (in UriRef form).
+     */
+    public static final UriRef IS_SPACE_CORE_OF_URIREF = new UriRef(_NS_ONTONET + _SHORT_IS_SPACE_CORE_OF);
 
     /**
      * The OWL <b>object property</b> <tt>isCustomSpaceOf</tt>.
      */
-    public static final UriRef IS_SPACE_CUSTOM_OF = new UriRef(_NS_ONTONET + "isCustomSpaceOf");
+    public static final OWLObjectProperty IS_SPACE_CUSTOM_OF = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_IS_SPACE_CUSTOM_OF));
 
     /**
-     * The OWL <b>object property</b> <tt>manages</tt>.
+     * The OWL <b>object property</b> <tt>isCustomSpaceOf</tt> (in UriRef form).
      */
-    public static final UriRef MANAGES = new UriRef(_NS_ONTONET + "manages");
+    public static final UriRef IS_SPACE_CUSTOM_OF_URIREF = new UriRef(_NS_ONTONET + _SHORT_IS_SPACE_CUSTOM_OF);
 
     /**
+     * The OWL <b>object property</b> <tt>manages</tt>.
+     */
+    public static final OWLObjectProperty MANAGES = __df.getOWLObjectProperty(IRI.create(_NS_ONTONET
+                                                                                         + _SHORT_MANAGES));
+    /**
      * The OWL <b>object property</b> <tt>managesInCore</tt>.
      */
-    public static final UriRef MANAGES_IN_CORE = new UriRef(_NS_ONTONET + "managesInCore");
+    public static final OWLObjectProperty MANAGES_IN_CORE = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_MANAGES_IN_CORE));
+
+    /**
+     * The OWL <b>object property</b> <tt>managesInCore</tt> (in UriRef form).
+     */
+    public static final UriRef MANAGES_IN_CORE_URIREF = new UriRef(_NS_ONTONET + _SHORT_MANAGES_IN_CORE);
 
     /**
      * The OWL <b>object property</b> <tt>managesInCustom</tt>.
      */
-    public static final UriRef MANAGES_IN_CUSTOM = new UriRef(_NS_ONTONET + "managesInCustom");
+    public static final OWLObjectProperty MANAGES_IN_CUSTOM = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_MANAGES_IN_CUSTOM));
+
+    /**
+     * The OWL <b>object property</b> <tt>managesInCustom</tt> (in UriRef form).
+     */
+    public static final UriRef MANAGES_IN_CUSTOM_URIREF = new UriRef(_NS_ONTONET + _SHORT_MANAGES_IN_CUSTOM);
+
+    /**
+     * The OWL <b>object property</b> <tt>manages</tt> (in UriRef form).
+     */
+    public static final UriRef MANAGES_URIREF = new UriRef(_NS_ONTONET + _SHORT_MANAGES);
+
+    /**
+     * The OWL <b>object property</b> <tt>mapsToGraph</tt>.
+     */
+    public static final OWLObjectProperty MAPS_TO_GRAPH = __df.getOWLObjectProperty(IRI
+            .create(_NS_ONTONET + _SHORT_MAPS_TO_GRAPH));
+
+    /**
+     * The OWL <b>object property</b> <tt>mapsToGraph</tt> (in UriRef form).
+     */
+    public static final UriRef MAPS_TO_GRAPH_URIREF = new UriRef(_NS_ONTONET + _SHORT_MAPS_TO_GRAPH);
+
+    /**
+     * The OWL <b>datatype property</b> <tt>retrievedFrom</tt>.
+     */
+    public static final OWLDataProperty RETRIEVED_FROM = __df.getOWLDataProperty(IRI
+            .create(_NS_ONTONET + _SHORT_RETRIEVED_FROM));
+
+    /**
+     * The OWL <b>datatype property</b> <tt>retrievedFrom</tt> (in UriRef form).
+     */
+    public static final UriRef RETRIEVED_FROM_URIREF = new UriRef(_NS_ONTONET + _SHORT_RETRIEVED_FROM);
 
     /**
      * The OWL <b>class</b> <tt>Scope</tt>.
      */
-    public static final UriRef SCOPE = new UriRef(_NS_ONTONET + "Scope");
+    public static final OWLClass SCOPE = __df.getOWLClass(IRI.create(_NS_ONTONET + _SHORT_SCOPE));
+
+    /**
+     * The OWL <b>class</b> <tt>Scope</tt> (in UriRef form).
+     */
+    public static final UriRef SCOPE_URIREF = new UriRef(_NS_ONTONET + _SHORT_SCOPE);
 
     /**
      * The OWL <b>class</b> <tt>Session</tt>.
      */
-    public static final UriRef SESSION = new UriRef(_NS_ONTONET + "Session");
+    public static final OWLClass SESSION = __df.getOWLClass(IRI.create(_NS_ONTONET + _SHORT_SESSION));
+
+    /**
+     * The OWL <b>class</b> <tt>Session</tt> (in UriRef form).
+     */
+    public static final UriRef SESSION_URIREF = new UriRef(_NS_ONTONET + _SHORT_SESSION);
 
     /**
      * The OWL <b>datatype property</b> <tt>hasSizeInAxioms</tt>.
      */
-    public static final UriRef SIZE_IN_AXIOMS = new UriRef(_NS_ONTONET + "hasSizeInAxioms");
+    public static final OWLDataProperty SIZE_IN_AXIOMS = __df.getOWLDataProperty(IRI
+            .create(_NS_ONTONET + _SHORT_SIZE_IN_AXIOMS));
+
+    /**
+     * The OWL <b>datatype property</b> <tt>hasSizeInAxioms</tt> (in UriRef form).
+     */
+    public static final UriRef SIZE_IN_AXIOMS_URIREF = new UriRef(_NS_ONTONET + _SHORT_SIZE_IN_AXIOMS);
 
     /**
      * The OWL <b>datatype property</b> <tt>hasSizeInTriples</tt>.
      */
-    public static final UriRef SIZE_IN_TRIPLES = new UriRef(_NS_ONTONET + "hasSizeInTriples");
+    public static final OWLDataProperty SIZE_IN_TRIPLES = __df.getOWLDataProperty(IRI
+            .create(_NS_ONTONET + _SHORT_SIZE_IN_TRIPLES));
+
+    /**
+     * The OWL <b>datatype property</b> <tt>hasSizeInTriples</tt> (in UriRef form).
+     */
+    public static final UriRef SIZE_IN_TRIPLES_URIREF = new UriRef(_NS_ONTONET + _SHORT_SIZE_IN_TRIPLES);
 
     /**
      * The OWL <b>class</b> <tt>Space</tt>.
      */
-    public static final UriRef SPACE = new UriRef(_NS_ONTONET + "Space");
+    public static final OWLClass SPACE = __df.getOWLClass(IRI.create(_NS_ONTONET + _SHORT_SPACE));
+
+    /**
+     * The OWL <b>class</b> <tt>Space</tt> (in UriRef form).
+     */
+    public static final UriRef SPACE_URIREF = new UriRef(_NS_ONTONET + _SHORT_SPACE);
 
     /**
      * The OWL <b>class</b> <tt>Status</tt>.
      */
-    public static final UriRef STATUS = new UriRef(_NS_ONTONET + "Status");
+    public static final OWLClass STATUS = __df.getOWLClass(IRI.create(_NS_ONTONET + _SHORT_STATUS));
 
     /**
      * The OWL <b>individual</b> <tt>Status.ACTIVE</tt>.
      */
-    public static final UriRef STATUS_ACTIVE = new UriRef(_NS_ONTONET + "Status.ACTIVE");
+    public static final OWLIndividual STATUS_ACTIVE = __df.getOWLNamedIndividual(IRI
+            .create(_NS_ONTONET + _SHORT_STATUS_ACTIVE));
+
+    /**
+     * The OWL <b>individual</b> <tt>Status.ACTIVE</tt> (in UriRef form).
+     */
+    public static final UriRef STATUS_ACTIVE_URIREF = new UriRef(_NS_ONTONET + _SHORT_STATUS_ACTIVE);
 
     /**
      * The OWL <b>individual</b> <tt>Status.INACTIVE</tt>.
      */
-    public static final UriRef STATUS_INACTIVE = new UriRef(_NS_ONTONET + "Status.INACTIVE");
+    public static final OWLIndividual STATUS_INACTIVE = __df.getOWLNamedIndividual(IRI
+            .create(_NS_ONTONET + _SHORT_STATUS_INACTIVE));
+
+    /**
+     * The OWL <b>individual</b> <tt>Status.INACTIVE</tt> (in UriRef form).
+     */
+    public static final UriRef STATUS_INACTIVE_URIREF = new UriRef(_NS_ONTONET + _SHORT_STATUS_INACTIVE);
+
+    /**
+     * The OWL <b>class</b> <tt>Status</tt> (in UriRef form).
+     */
+    public static final UriRef STATUS_URIREF = new UriRef(_NS_ONTONET + _SHORT_STATUS);
 
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollector.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollector.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollector.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollector.java Fri Aug 10 16:29:22 2012
@@ -19,8 +19,8 @@ package org.apache.stanbol.ontologymanag
 import java.util.Set;
 
 import org.apache.stanbol.ontologymanager.ontonet.api.NamedArtifact;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSourceHandler;
-import org.apache.stanbol.ontologymanager.ontonet.api.io.OriginOrInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
 import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLOntologyID;
@@ -41,13 +41,11 @@ public interface OntologyCollector exten
      * storage and does not have an OWL version IRI of its own, this ontology collector will 'claim ownership'
      * of the ontology by setting its own logical ID as the version IRI of the new ontology.
      * 
-     * TODO make this method return the public key as an {@link OWLOntologyID}.
-     * 
      * @param ontology
      *            the ontology to be added
      * @return the key that can be used for accessing the stored ontology directly
      */
-    OWLOntologyID addOntology(OriginOrInputSource ontology);
+    OWLOntologyID addOntology(OntologyInputSource<?> ontology);
 
     /**
      * Returns the ontologies managed by this ontology space. This is a shortcut method for iterating

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractClerezzaGraphInputSource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractClerezzaGraphInputSource.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractClerezzaGraphInputSource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractClerezzaGraphInputSource.java Fri Aug 10 16:29:22 2012
@@ -16,18 +16,8 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.api.io;
 
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.apache.clerezza.rdf.core.NonLiteral;
-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.TcManager;
-import org.apache.clerezza.rdf.ontologies.OWL;
-import org.apache.clerezza.rdf.ontologies.RDF;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -51,36 +41,4 @@ public abstract class AbstractClerezzaGr
         super.bindRootOntology(ontology);
     }
 
-    @Override
-    public Set<TripleCollection> getImports(boolean recursive) {
-        return getImportedGraphs(rootOntology, recursive);
-    }
-
-    protected Set<TripleCollection> getImportedGraphs(TripleCollection g, boolean recursive) {
-        Set<TripleCollection> result = new HashSet<TripleCollection>();
-        UriRef u = null;
-
-        Iterator<Triple> it = g.filter(null, RDF.type, OWL.Ontology);
-        if (it.hasNext()) {
-            NonLiteral subj = it.next().getSubject();
-            if (it.hasNext()) log.warn(
-                "RDF Graph has multiple OWL ontology definitions! Ignoring all but {}", subj);
-            if (subj instanceof UriRef) u = (UriRef) subj;
-        }
-
-        it = g.filter(u, OWL.imports, null);
-        while (it.hasNext()) {
-            Resource r = it.next().getObject();
-            if (r instanceof UriRef) {
-                TripleCollection gr = TcManager.getInstance().getTriples((UriRef) r);
-                // Avoid calls to getGraph() to save memory
-                // if (gr instanceof Graph)
-                result.add(/* (Graph) */gr);
-                // else if (gr instanceof MGraph) result.add(((MGraph) gr).getGraph());
-                if (recursive) result.addAll(getImportedGraphs(gr, true));
-            }
-        }
-        return result;
-    }
-
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractGenericInputSource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractGenericInputSource.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractGenericInputSource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractGenericInputSource.java Fri Aug 10 16:29:22 2012
@@ -34,17 +34,6 @@ public abstract class AbstractGenericInp
 
     protected O rootOntology = null;
 
-    @Override
-    public OntologyInputSource<?> asInputSource() {
-        return this;
-    }
-
-    @Override
-    public Origin<?> asOrigin() {
-        throw new UnsupportedOperationException("Unsupported conversion from " + getClass() + " to "
-                                                + Origin.class);
-    }
-
     /**
      * This method is used to remind developers to bind a physical reference to the
      * {@link OntologyInputSource} if intending to do so.
@@ -99,16 +88,6 @@ public abstract class AbstractGenericInp
     }
 
     @Override
-    public boolean isInputSource() {
-        return true;
-    }
-
-    @Override
-    public boolean isOrigin() {
-        return false;
-    }
-
-    @Override
     public abstract String toString();
 
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOWLOntologyInputSource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOWLOntologyInputSource.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOWLOntologyInputSource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOWLOntologyInputSource.java Fri Aug 10 16:29:22 2012
@@ -16,11 +16,8 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.api.io;
 
-import java.util.Set;
-
 import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLOntology;
-import org.semanticweb.owlapi.model.OWLOntologyManager;
 
 /**
  * Abstract OWL API implementation of {@link OntologyInputSource} with the basic methods for obtaining root
@@ -31,10 +28,4 @@ import org.semanticweb.owlapi.model.OWLO
  */
 public abstract class AbstractOWLOntologyInputSource extends AbstractGenericInputSource<OWLOntology> {
 
-    @Override
-    public Set<OWLOntology> getImports(boolean recursive) {
-        OWLOntologyManager mgr = rootOntology.getOWLOntologyManager();
-        return (recursive ? mgr.getImportsClosure(rootOntology) : mgr.getDirectImports(rootOntology));
-    }
-
 }

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyReferenceSource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyReferenceSource.java?rev=1371761&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyReferenceSource.java (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyReferenceSource.java Fri Aug 10 16:29:22 2012
@@ -0,0 +1,40 @@
+/*
+ * 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.io;
+
+/**
+ * Input sources that do not deliver an ontology object, but only a means for consumers to obtain one if they
+ * wish, should subclass this one.
+ * 
+ * These input sources should be used whenever it is possible to avoid creating an ontology object, thereby
+ * saving resources. Examples include cases where the ontology is already stored in Stanbol, or whenever
+ * loading has to be deferred.
+ * 
+ * @author alexdma
+ * 
+ * @param <O>
+ *            the ontology object
+ */
+@SuppressWarnings({"unchecked", "rawtypes"})
+public abstract class AbstractOntologyReferenceSource extends AbstractGenericInputSource {
+
+    public AbstractOntologyReferenceSource(Origin<?> origin) {
+        this.origin = origin;
+        this.rootOntology = null;
+    }
+
+}

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java Fri Aug 10 16:29:22 2012
@@ -16,8 +16,6 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.api.io;
 
-import java.util.Set;
-
 /**
  * An ontology input source provides a point for loading an ontology. Currently it provides two ways of
  * obtaining an ontology document:
@@ -36,15 +34,7 @@ import java.util.Set;
  * @author alexdma
  * 
  */
-public interface OntologyInputSource<O> extends OriginOrInputSource {
-
-    /**
-     * Gets the ontology network resulting from the transitive closure of import statements on the root
-     * ontology. Useful for implementations with a custom management of ontology loading.
-     * 
-     * @return the import closure of the root ontology.
-     */
-    Set<O> getImports(boolean recursive);
+public interface OntologyInputSource<O> {
 
     /**
      * Returns a reference object that can be used for obtaining the supplied ontology. Depending on how the

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologySpaceSource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologySpaceSource.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologySpaceSource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologySpaceSource.java Fri Aug 10 16:29:22 2012
@@ -56,11 +56,6 @@ public class OntologySpaceSource extends
     }
 
     @Override
-    public Set<OWLOntology> getImports(boolean recursive) {
-        return space.getManagedOntologies(OWLOntology.class, recursive);
-    }
-
-    @Override
     public String toString() {
         return "SCOPE_ONT_IRI<" + getOrigin() + ">";
     }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/Origin.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/Origin.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/Origin.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/Origin.java Fri Aug 10 16:29:22 2012
@@ -26,6 +26,7 @@ import org.semanticweb.owlapi.model.OWLO
  * Currently the supported types are:
  * <ul>
  * <li> {@link IRI}, which is interpreted as the physical location of the resource.
+ * <li> {@link OWLOntologyID}, which is interpreted as the public key of an ontology already stored by Stanbol.
  * <li> {@link UriRef}, which is interpreted as the name of a graph to be retrieved from an underlying Clerezza
  * store (typically a {@link TcProvider}).
  * </ul>
@@ -35,7 +36,7 @@ import org.semanticweb.owlapi.model.OWLO
  * @param <R>
  *            the resource reference.
  */
-public class Origin<R> implements OriginOrInputSource {
+public class Origin<R> {
 
     /**
      * Creates a new Origin for a resource that can be retrieved by dereferencing the given IRI as an URL.
@@ -90,17 +91,6 @@ public class Origin<R> implements Origin
     }
 
     @Override
-    public OntologyInputSource<?> asInputSource() {
-        throw new UnsupportedOperationException("Unsupported conversion from " + getClass() + " to "
-                                                + OntologyInputSource.class);
-    }
-
-    @Override
-    public Origin<?> asOrigin() {
-        return this;
-    }
-
-    @Override
     public boolean equals(Object arg0) {
         if (arg0 == null) return false;
         if (!(arg0 instanceof Origin<?>)) return false;
@@ -117,16 +107,6 @@ public class Origin<R> implements Origin
     }
 
     @Override
-    public boolean isInputSource() {
-        return false;
-    }
-
-    @Override
-    public boolean isOrigin() {
-        return true;
-    }
-
-    @Override
     public String toString() {
         return "Origin(" + ref.toString() + ")";
     }

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/StoredOntologySource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/StoredOntologySource.java?rev=1371761&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/StoredOntologySource.java (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/StoredOntologySource.java Fri Aug 10 16:29:22 2012
@@ -0,0 +1,45 @@
+/*
+ * 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.io;
+
+import org.semanticweb.owlapi.model.OWLOntologyID;
+
+/**
+ * An reference source for an ontology already stored by Stanbol with the given public key. Handlers are free
+ * to decide whether to obtain an ontology object from it , or simply pass the reference along.
+ * 
+ * @author alexdma
+ * 
+ */
+public class StoredOntologySource extends AbstractOntologyReferenceSource {
+
+    /**
+     * Creates a new instance of {@link StoredOntologySource}.
+     * 
+     * @param publicKey
+     *            the public key of the stored ontology.
+     */
+    public StoredOntologySource(OWLOntologyID publicKey) {
+        super(Origin.create(publicKey));
+    }
+
+    @Override
+    public String toString() {
+        return "PUBLIC-KEY" + origin.getReference();
+    }
+
+}

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologyScopeFactory.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologyScopeFactory.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologyScopeFactory.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologyScopeFactory.java Fri Aug 10 16:29:22 2012
@@ -17,7 +17,7 @@
 package org.apache.stanbol.ontologymanager.ontonet.api.scope;
 
 import org.apache.stanbol.ontologymanager.ontonet.api.collector.DuplicateIDException;
-import org.apache.stanbol.ontologymanager.ontonet.api.io.OriginOrInputSource;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 
 /**
  * An ontology scope factory is responsible for the creation of new ontology scopes from supplied ontology
@@ -44,5 +44,5 @@ public interface OntologyScopeFactory ex
      *             if an ontology scope with the given identifier is already <i>registered</i>. The exception
      *             is not thrown if another scope with the same ID has been created but not registered.
      */
-    OntologyScope createOntologyScope(String scopeID, OriginOrInputSource... coreOntologies) throws DuplicateIDException;
+    OntologyScope createOntologyScope(String scopeID, OntologyInputSource<?>... coreOntologies) throws DuplicateIDException;
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologySpaceFactory.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologySpaceFactory.java?rev=1371761&r1=1371760&r2=1371761&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologySpaceFactory.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/scope/OntologySpaceFactory.java Fri Aug 10 16:29:22 2012
@@ -17,7 +17,7 @@
 package org.apache.stanbol.ontologymanager.ontonet.api.scope;
 
 import org.apache.stanbol.ontologymanager.ontonet.api.NamedArtifact;
-import org.apache.stanbol.ontologymanager.ontonet.api.io.OriginOrInputSource;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.scope.OntologySpace.SpaceType;
 
 /**
@@ -42,7 +42,7 @@ public interface OntologySpaceFactory ex
      *            the sources of the optional ontologies to be immediately loaded upon space creation.
      * @return the generated ontology space.
      */
-    CoreOntologySpace createCoreOntologySpace(String scopeId, OriginOrInputSource... coreOntologies);
+    CoreOntologySpace createCoreOntologySpace(String scopeId, OntologyInputSource<?>... coreOntologies);
 
     /**
      * Creates and sets up a default custom ontology space. Equivalent to calling
@@ -55,7 +55,7 @@ public interface OntologySpaceFactory ex
      *            the sources of the optional ontologies to be immediately loaded upon space creation.
      * @return the generated ontology space.
      */
-    CustomOntologySpace createCustomOntologySpace(String scopeId, OriginOrInputSource... customOntologies);
+    CustomOntologySpace createCustomOntologySpace(String scopeId, OntologyInputSource<?>... customOntologies);
 
     /**
      * Creates an ontology space of the specified type.
@@ -69,6 +69,8 @@ public interface OntologySpaceFactory ex
      *            the sources of the optional ontologies to be immediately loaded upon space creation.
      * @return the generated ontology space.
      */
-    OntologySpace createOntologySpace(String scopeId, SpaceType type, OriginOrInputSource... ontologySources);
+    OntologySpace createOntologySpace(String scopeId,
+                                      SpaceType type,
+                                      OntologyInputSource<?>... ontologySources);
 
 }

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=1371761&r1=1371760&r2=1371761&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 Fri Aug 10 16:29:22 2012
@@ -46,9 +46,8 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.collector.UnmodifiableOntologyCollectorException;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.BlankOntologySource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
-import org.apache.stanbol.ontologymanager.ontonet.api.io.Origin;
-import org.apache.stanbol.ontologymanager.ontonet.api.io.OriginOrInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.RootOntologyIRISource;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.StoredOntologySource;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
 import org.apache.stanbol.ontologymanager.ontonet.api.scope.CustomOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.scope.NoSuchScopeException;
@@ -407,7 +406,7 @@ public class ONManagerImpl extends Scope
     }
 
     @Override
-    public OntologyScope createOntologyScope(String scopeID, OriginOrInputSource... coreOntologies) throws DuplicateIDException {
+    public OntologyScope createOntologyScope(String scopeID, OntologyInputSource<?>... coreOntologies) throws DuplicateIDException {
         if (this.containsScope(scopeID)) throw new DuplicateIDException(scopeID,
                 "Scope registry already contains ontology scope with ID " + scopeID);
         IRI prefix = IRI.create(getOntologyNetworkNamespace() + scopeRegistryId + "/");
@@ -511,13 +510,11 @@ public class ONManagerImpl extends Scope
             long before = System.currentTimeMillis();
             log.debug("Rebuilding scope with ID \"{}\".", scopeId);
             Collection<OWLOntologyID> coreOnts = struct.getCoreOntologyKeysForScope(scopeId);
-            Origin<?>[] srcs = new Origin<?>[coreOnts.size()];
+            OntologyInputSource<?>[] srcs = new OntologyInputSource<?>[coreOnts.size()];
             int i = 0;
             for (OWLOntologyID coreOnt : coreOnts) {
                 log.debug("Core ontology key : {}", coreOnts);
-                srcs[i++] = Origin.create(coreOnt)
-                // new GraphSource(coreOnt)
-                ;
+                srcs[i++] = new StoredOntologySource(coreOnt);
             }
             OntologyScope scope;
             try {
@@ -533,9 +530,7 @@ public class ONManagerImpl extends Scope
             for (OWLOntologyID key : struct.getCustomOntologyKeysForScope(scopeId))
                 try {
                     log.debug("Custom ontology key : {}", key);
-                    custom.addOntology(Origin.create(key)
-                    // new GraphSource(key)
-                    );
+                    custom.addOntology(new StoredOntologySource(key));
                 } catch (MissingOntologyException ex) {
                     log.error(
                         "Could not find an ontology with public key {} to be managed by scope \"{}\". Proceeding to next 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=1371761&r1=1371760&r2=1371761&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 Aug 10 16:29:22 2012
@@ -50,11 +50,9 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSourceHandler;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.Origin;
-import org.apache.stanbol.ontologymanager.ontonet.api.io.OriginOrInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.RootOntologyIRISource;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OWLExportable;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyProvider;
-import org.apache.stanbol.ontologymanager.ontonet.api.scope.OntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.impl.util.OntologyUtils;
 import org.semanticweb.owlapi.apibinding.OWLManager;
 import org.semanticweb.owlapi.model.AddImport;
@@ -121,87 +119,68 @@ public abstract class AbstractOntologyCo
         supportedTypes.add(OWLOntology.class);
         supportedTypes.add(TripleCollection.class);
         setID(id);
-        setNamespace(namespace);
+        setDefaultNamespace(namespace);
         this.ontologyProvider = ontologyProvider;
         this.managedOntologies = new HashSet<OWLOntologyID>();
     }
 
     @Override
-    public OWLOntologyID addOntology(OriginOrInputSource ontology) {
-        if (ontology.isInputSource()) return addOntology(ontology.asInputSource());
-        if (ontology.isOrigin()) {
-            addOntology(ontology.asOrigin());
-            return null;
-        }
-        return null;
-    }
-
-    private synchronized OWLOntologyID addOntology(OntologyInputSource<?> ontologySource) throws UnmodifiableOntologyCollectorException {
-
-        long before = System.currentTimeMillis();
+    public synchronized OWLOntologyID addOntology(OntologyInputSource<?> ontologySource) throws UnmodifiableOntologyCollectorException {
 
+        // Check for error conditions.
         if (locked) throw new UnmodifiableOntologyCollectorException(this);
+        if (ontologySource == null) throw new IllegalArgumentException("Ontology source cannot be null.");
 
         log.debug("Adding ontology to collector {}", getID());
-        if (ontologySource == null || !ontologySource.hasRootOntology()) // No ontology to add
-        throw new IllegalArgumentException(
-                "Ontology source cannot be null and must provide an ontology object.");
-
-        Object o = ontologySource.getRootOntology();
-
-        // Now for the actual storage. We pass the ontology object directly.
         OWLOntologyID key = null;
-        // // FIXME restore ownership management, but maybe not by directly setting the versionIRI
-        // if (ontologyProvider.hasOntology(id.getOntologyIRI())) if (o instanceof MGraph)
-        // claimOwnership((MGraph) o);
-        // else if (o instanceof OWLOntology) claimOwnership((OWLOntology) o);
-
-        if (ontologySource.hasOrigin()) key = ontologyProvider.loadInStore(o, false,
-            ontologySource.getOrigin());
-        else key = ontologyProvider.loadInStore(o, false);
-
-        /*
-         * Actually we are not interested in knowing the key here (ontology collectors are not concerned with
-         * them), but knowing it is non-null and non-empty indicates the operation was successful.
-         */
-        if (key != null) {
 
-            // add to index
-            managedOntologies.add(key);
-            // // Always add sanitized version
-            // managedOntologies.add(id.getVersionIRI() == null ? new OWLOntologyID(URIUtils.sanitizeID(id
-            // .getOntologyIRI())) : new OWLOntologyID(URIUtils.sanitizeID(id.getOntologyIRI()),
-            // URIUtils.sanitizeID(id.getVersionIRI())));
-            // Note that imported ontologies are not considered as managed! TODO should we change this?
-            log.debug("Add ontology completed in {} ms.", (System.currentTimeMillis() - before));
-            // fire the event
-            fireOntologyAdded(key);
-        }
+        if (ontologySource.hasRootOntology()) {
+            long before = System.currentTimeMillis();
+            Object o = ontologySource.getRootOntology();
+            // // FIXME restore ownership management, but maybe not by directly setting the versionIRI
+            // if (ontologyProvider.hasOntology(id.getOntologyIRI())) if (o instanceof MGraph)
+            // claimOwnership((MGraph) o);
+            // else if (o instanceof OWLOntology) claimOwnership((OWLOntology) o);
+
+            // Check the origin anyhow, as it may be useful for setting aliases with physical locations etc.
+            if (ontologySource.hasOrigin()) key = ontologyProvider.loadInStore(o, false,
+                ontologySource.getOrigin());
+            else key = ontologyProvider.loadInStore(o, false);
+            if (key != null) {
+                managedOntologies.add(key);
+                // Note that imported ontologies are not considered as managed! TODO should we change this?
+                log.info("Add ontology completed in {} ms.", (System.currentTimeMillis() - before));
+                // Fire the event
+                fireOntologyAdded(key);
+            }
+        } else if (ontologySource.hasOrigin()) {
+            // Just the origin : see if it is satisfiable
+            log.debug("Checking origin satisfiability...");
+            Origin<?> origin = ontologySource.getOrigin();
+            Object ref = origin.getReference();
+            log.debug("Origin wraps a {}", ref.getClass().getCanonicalName());
+            if (ref instanceof IRI) try {
+                log.debug("Deferring addition to physical IRI {} (if available).", ref);
+                key = addOntology(new RootOntologyIRISource((IRI) ref));
+            } catch (OWLOntologyCreationException e) {
+                throw new RuntimeException(e);
+            }
+            else if (ref instanceof UriRef) {
+                log.debug("Deferring addition to stored Clerezza graph {} (if available).", ref);
+                key = addOntology(new GraphSource((UriRef) ref));
+            } else if (ref instanceof OWLOntologyID) {
+                OWLOntologyID idref = (OWLOntologyID) ref;
+                log.debug("Deferring addition to stored ontology with public key {} (if available).", ref);
+                if (!ontologyProvider.hasOntology(idref)) throw new MissingOntologyException(this, idref);
+                key = idref;
+                if (managedOntologies.add(idref)) fireOntologyAdded(idref);
+            } else throw new IllegalArgumentException("Invalid origin " + origin);
+        } else throw new IllegalArgumentException(
+                "Ontology source must provide either an ontology object, or a way to reference one (i.e. an origin).");
+        log.info("Public key : {}", key);
         return key;
     }
 
-    private synchronized void addOntology(Origin<?> origin) throws UnmodifiableOntologyCollectorException {
-        if (origin == null) throw new IllegalArgumentException("Origin cannot be null.");
-        Object ref = origin.getReference();
-        if (ref instanceof IRI) try {
-            addOntology(new RootOntologyIRISource((IRI) ref));
-            return;
-        } catch (OWLOntologyCreationException e) {
-            throw new RuntimeException(e);
-        }
-        if (ref instanceof UriRef) {
-            addOntology(new GraphSource((UriRef) ref));
-            return;
-        }
-        if (ref instanceof OWLOntologyID) {
-            OWLOntologyID idref = (OWLOntologyID) ref;
-            if (!ontologyProvider.hasOntology(idref)) throw new MissingOntologyException(this, idref);
-            if (managedOntologies.add(idref)) fireOntologyAdded(idref);
-            return;
-        }
-        throw new IllegalArgumentException("Invalid origin " + origin);
-    }
-
     @Override
     public void addOntologyCollectorListener(OntologyCollectorListener listener) {
         listeners.add(listener);
@@ -266,6 +245,21 @@ public abstract class AbstractOntologyCo
     }
 
     @Override
+    public boolean equals(Object arg0) {
+        if (arg0 == null) return false;
+        if (!(arg0 instanceof OntologyCollector)) return false;
+        if (this == arg0) return true;
+        log.warn(
+            "{} only implements weak equality, i.e. managed ontologies are only checked by public key, not by content.",
+            getClass());
+        OntologyCollector coll = (OntologyCollector) arg0;
+        return this.getID().equals(coll.getID())
+               && this.getDefaultNamespace().equals(coll.getDefaultNamespace())
+               && this.listManagedOntologies().equals(coll.listManagedOntologies())
+               && this.getSupportedOntologyTypes().equals(coll.getSupportedOntologyTypes());
+    }
+
+    @Override
     public <O> O export(Class<O> returnType, boolean merge) {
         return export(returnType, merge, getDefaultNamespace());
     }
@@ -742,8 +736,6 @@ public abstract class AbstractOntologyCo
      *            only allows non-null and non-empty IRIs, with no query or fragment. Hash URIs are not
      *            allowed, slash URIs are preferred. If neither, a slash will be concatenated and a warning
      *            will be logged.
-     * 
-     * @see OntologySpace#setNamespace(IRI)
      */
     @Override
     public void setDefaultNamespace(IRI namespace) {