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/11/12 16:30:14 UTC

svn commit: r1408321 - in /stanbol/trunk/ontologymanager: generic/core/src/license/ generic/servicesapi/src/license/ generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/ generic/servicesapi/src/main/java/org/apach...

Author: alexdma
Date: Mon Nov 12 15:30:07 2012
New Revision: 1408321

URL: http://svn.apache.org/viewvc?rev=1408321&view=rev
Log:
* Fixed missing third party licenses. (STANBOL-800)
* Fixed missing license headers for Turtle files in test resources. (STANBOL-800)
* Re-introduced some exceptions in the deprecated ontonet API (STANBOL-672)
* POST service on ontology resources for deferred content loading. (STANBOL-802) (TODO also support it for scopes and sessions?)
* GET query parameter "meta=true" on stored ontology resources now returns the set of registered aliases. POST parameter "alias" adds new aliases, but only if the alias is not already a public key of an assigned ontology, and only if no content is being supplied in the same POST. (STANBOL-801)
* Fixed a bug that prevented some aliases from showing in the HTML client (STANBOL-801). Also, from the same page it is now possible to download the ontology content in any supported format.

Added:
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/DuplicateSessionIDException.java
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/NonReferenceableSessionException.java
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionEvent.java
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionIDGenerator.java
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionLimitException.java
    stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/TestAliasing.java
Modified:
    stanbol/trunk/ontologymanager/generic/core/src/license/THIRD-PARTY.properties
    stanbol/trunk/ontologymanager/generic/servicesapi/src/license/THIRD-PARTY.properties
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/IrremovableOntologyException.java
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/MissingOntologyException.java
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollectorModificationException.java
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/UnmodifiableOntologyCollectorException.java
    stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/servicesapi/ontology/OntologyProvider.java
    stanbol/trunk/ontologymanager/multiplexer/clerezza/src/license/THIRD-PARTY.properties
    stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/ClerezzaOntologyProvider.java
    stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/MetaGraphManager.java
    stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/abox.owl
    stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/tbox.owl
    stanbol/trunk/ontologymanager/registry/src/license/THIRD-PARTY.properties
    stanbol/trunk/ontologymanager/sources/clerezza/src/license/THIRD-PARTY.properties
    stanbol/trunk/ontologymanager/sources/owlapi/src/license/THIRD-PARTY.properties
    stanbol/trunk/ontologymanager/web/src/license/THIRD-PARTY.properties
    stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource.java
    stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/util/OntologyStatsResource.java
    stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource/ontology.ftl

Modified: stanbol/trunk/ontologymanager/generic/core/src/license/THIRD-PARTY.properties
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/core/src/license/THIRD-PARTY.properties?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/generic/core/src/license/THIRD-PARTY.properties (original)
+++ stanbol/trunk/ontologymanager/generic/core/src/license/THIRD-PARTY.properties Mon Nov 12 15:30:07 2012
@@ -1,26 +1,28 @@
 # Generated by org.codehaus.mojo.license.AddThirdPartyMojo
 #-------------------------------------------------------------------------------
 # Already used licenses in project :
-# - Apache 2
-# - Apache License
-# - BSD
-# - BSD-style license
-# - CDDL 1.1
-# - Common Development and Distribution License (CDDL) v1.0
-# - Common Public License Version 1.0
-# - GPL2 w/ CPE
+# - Apache Software License
+# - Apache Software License, Version 2.0
+# - BSD License
+# - Common Development And Distribution License (CDDL), Version 1.0
+# - Common Development And Distribution License (CDDL), Version 1.1
+# - Common Public License, Version 1.0
+# - Eclipse Public License, Version 1.0
+# - GNU General Public License (GPL), Version 2 with classpath exception
+# - GNU Lesser General Public License (LGPL)
+# - GNU Lesser General Public License (LGPL), Version 2.1
 # - ICU License
 # - MIT License
-# - The Apache Software License, Version 2.0
+# - Public Domain License
 #-------------------------------------------------------------------------------
 # Please fill the missing licenses for dependencies :
 #
 #
-#Wed Feb 15 19:05:02 CET 2012
+#Mon Nov 12 12:00:50 CET 2012
 asm--asm--3.1=BSD License
-javax.servlet--servlet-api--2.4=Common Development And Distribution License (CDDL), Version 1.0
+javax.servlet--servlet-api--2.5=Common Development And Distribution License (CDDL), Version 1.0
+net.sourceforge.owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 org.codehaus.jettison--jettison--1.3=The Apache Software License, Version 2.0
 org.osgi--org.osgi.compendium--4.1.0=The Apache Software License, Version 2.0
 org.osgi--org.osgi.core--4.1.0=The Apache Software License, Version 2.0
-owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 xerces--xercesImpl--2.7.1=The Apache Software License, Version 2.0

Modified: stanbol/trunk/ontologymanager/generic/servicesapi/src/license/THIRD-PARTY.properties
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/license/THIRD-PARTY.properties?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/license/THIRD-PARTY.properties (original)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/license/THIRD-PARTY.properties Mon Nov 12 15:30:07 2012
@@ -1,26 +1,28 @@
 # Generated by org.codehaus.mojo.license.AddThirdPartyMojo
 #-------------------------------------------------------------------------------
 # Already used licenses in project :
-# - Apache 2
-# - Apache License
-# - BSD
-# - BSD-style license
-# - CDDL 1.1
-# - Common Development and Distribution License (CDDL) v1.0
-# - Common Public License Version 1.0
-# - GPL2 w/ CPE
+# - Apache Software License
+# - Apache Software License, Version 2.0
+# - BSD License
+# - Common Development And Distribution License (CDDL), Version 1.0
+# - Common Development And Distribution License (CDDL), Version 1.1
+# - Common Public License, Version 1.0
+# - Eclipse Public License, Version 1.0
+# - GNU General Public License (GPL), Version 2 with classpath exception
+# - GNU Lesser General Public License (LGPL)
+# - GNU Lesser General Public License (LGPL), Version 2.1
 # - ICU License
 # - MIT License
-# - The Apache Software License, Version 2.0
+# - Public Domain License
 #-------------------------------------------------------------------------------
 # Please fill the missing licenses for dependencies :
 #
 #
-#Wed Feb 15 19:05:02 CET 2012
+#Mon Nov 12 11:57:49 CET 2012
 asm--asm--3.1=BSD License
-javax.servlet--servlet-api--2.4=Common Development And Distribution License (CDDL), Version 1.0
+javax.servlet--servlet-api--2.5=Common Development And Distribution License (CDDL), Version 1.0
+net.sourceforge.owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 org.codehaus.jettison--jettison--1.3=The Apache Software License, Version 2.0
 org.osgi--org.osgi.compendium--4.1.0=The Apache Software License, Version 2.0
 org.osgi--org.osgi.core--4.1.0=The Apache Software License, Version 2.0
-owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 xerces--xercesImpl--2.7.1=The Apache Software License, Version 2.0

Modified: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/IrremovableOntologyException.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/IrremovableOntologyException.java?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/IrremovableOntologyException.java (original)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/IrremovableOntologyException.java Mon Nov 12 15:30:07 2012
@@ -16,8 +16,6 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.api.collector;
 
-import org.apache.stanbol.ontologymanager.servicesapi.collector.OntologyCollector;
-
 @Deprecated
 public class IrremovableOntologyException extends OntologyCollectorModificationException {
 

Modified: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/MissingOntologyException.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/MissingOntologyException.java?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/MissingOntologyException.java (original)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/MissingOntologyException.java Mon Nov 12 15:30:07 2012
@@ -16,7 +16,6 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.api.collector;
 
-import org.apache.stanbol.ontologymanager.servicesapi.collector.OntologyCollector;
 import org.semanticweb.owlapi.model.OWLOntologyID;
 
 @Deprecated

Modified: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollectorModificationException.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollectorModificationException.java?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollectorModificationException.java (original)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/OntologyCollectorModificationException.java Mon Nov 12 15:30:07 2012
@@ -16,8 +16,6 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.api.collector;
 
-import org.apache.stanbol.ontologymanager.servicesapi.collector.OntologyCollector;
-
 @Deprecated
 public class OntologyCollectorModificationException extends
         org.apache.stanbol.ontologymanager.servicesapi.collector.OntologyCollectorModificationException {

Modified: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/UnmodifiableOntologyCollectorException.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/UnmodifiableOntologyCollectorException.java?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/UnmodifiableOntologyCollectorException.java (original)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/collector/UnmodifiableOntologyCollectorException.java Mon Nov 12 15:30:07 2012
@@ -16,8 +16,6 @@
  */
 package org.apache.stanbol.ontologymanager.ontonet.api.collector;
 
-import org.apache.stanbol.ontologymanager.servicesapi.collector.OntologyCollector;
-
 @Deprecated
 public class UnmodifiableOntologyCollectorException extends OntologyCollectorModificationException {
 

Added: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/DuplicateSessionIDException.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/DuplicateSessionIDException.java?rev=1408321&view=auto
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/DuplicateSessionIDException.java (added)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/DuplicateSessionIDException.java Mon Nov 12 15:30:07 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.session;
+
+@Deprecated
+public class DuplicateSessionIDException extends
+        org.apache.stanbol.ontologymanager.servicesapi.session.DuplicateSessionIDException {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -4010987903120880675L;
+
+    public DuplicateSessionIDException(String dupe) {
+        super(dupe);
+    }
+
+    public DuplicateSessionIDException(String dupe, String message) {
+        super(dupe, message);
+    }
+
+    public DuplicateSessionIDException(String dupe, Throwable cause) {
+        super(dupe, cause);
+    }
+
+}

Added: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/NonReferenceableSessionException.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/NonReferenceableSessionException.java?rev=1408321&view=auto
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/NonReferenceableSessionException.java (added)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/NonReferenceableSessionException.java Mon Nov 12 15:30:07 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.session;
+
+@Deprecated
+public class NonReferenceableSessionException extends
+        org.apache.stanbol.ontologymanager.servicesapi.session.NonReferenceableSessionException {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -5824276516809214914L;
+
+    public NonReferenceableSessionException() {
+        super();
+    }
+
+    public NonReferenceableSessionException(String message) {
+        super(message);
+    }
+
+    public NonReferenceableSessionException(Throwable cause) {
+        super(cause);
+    }
+
+}

Added: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionEvent.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionEvent.java?rev=1408321&view=auto
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionEvent.java (added)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionEvent.java Mon Nov 12 15:30:07 2012
@@ -0,0 +1,34 @@
+/*
+ * 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.session;
+
+@Deprecated
+public class SessionEvent extends org.apache.stanbol.ontologymanager.servicesapi.session.SessionEvent {
+
+    public SessionEvent(Session session, OperationType operationType) {
+        super(session, operationType);
+    }
+
+    @Override
+    public Session getSession() {
+        // TODO Auto-generated method stub
+        org.apache.stanbol.ontologymanager.servicesapi.session.Session session = super.getSession();
+        if (session instanceof Session) return (Session) session;
+        else throw new UnsupportedOperationException("Referenced session must be from the deprecated API.");
+    }
+
+}

Added: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionIDGenerator.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionIDGenerator.java?rev=1408321&view=auto
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionIDGenerator.java (added)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionIDGenerator.java Mon Nov 12 15:30:07 2012
@@ -0,0 +1,23 @@
+/*
+ * 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.session;
+
+@Deprecated
+public interface SessionIDGenerator extends
+        org.apache.stanbol.ontologymanager.servicesapi.session.SessionIDGenerator {
+
+}

Added: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionLimitException.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionLimitException.java?rev=1408321&view=auto
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionLimitException.java (added)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionLimitException.java Mon Nov 12 15:30:07 2012
@@ -0,0 +1,42 @@
+/*
+ * 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.session;
+
+@Deprecated
+public class SessionLimitException extends
+        org.apache.stanbol.ontologymanager.servicesapi.session.SessionLimitException {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 3820288680568447463L;
+
+    public SessionLimitException(int limit) {
+        super(limit);
+    }
+
+    public SessionLimitException(int limit, String message) {
+        super(limit, message);
+
+    }
+
+    public SessionLimitException(int limit, Throwable cause) {
+        super(limit, cause);
+
+    }
+
+}

Modified: stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/servicesapi/ontology/OntologyProvider.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/servicesapi/ontology/OntologyProvider.java?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/servicesapi/ontology/OntologyProvider.java (original)
+++ stanbol/trunk/ontologymanager/generic/servicesapi/src/main/java/org/apache/stanbol/ontologymanager/servicesapi/ontology/OntologyProvider.java Mon Nov 12 15:30:07 2012
@@ -45,6 +45,36 @@ import org.semanticweb.owlapi.model.OWLO
 public interface OntologyProvider<S> {
 
     /**
+     * The status of a stored ontology entry in the {@link OntologyProvider}.
+     * 
+     * @author alexdma
+     * 
+     */
+    public enum Status {
+
+        /**
+         * A non-null ontology object can be obtained by querying the ontology provider for this entry.
+         */
+        MATCH,
+
+        /**
+         * No such entry is registered as either a primary key or an alias in the ontology provider.
+         */
+        NO_MATCH,
+
+        /**
+         * The entry is registered and assigned a graph name, but the corresponding graph cannot be found.
+         */
+        ORPHAN,
+
+        /**
+         * The entry is registered but not assigned a graph.
+         */
+        UNCHARTED
+
+    }
+
+    /**
      * The key used to configure the prefix to be used for addressing ontologies stored by this provider.
      */
     public String GRAPH_PREFIX = "org.apache.stanbol.ontologymanager.ontonet.graphPrefix";
@@ -154,6 +184,8 @@ public interface OntologyProvider<S> {
      */
     Set<OWLOntologyID> getPublicKeys();
 
+    Status getStatus(OWLOntologyID publicKey);
+
     /**
      * Returns the storage system used by this ontology provider (e.g. a {@link TcProvider} or an
      * {@link OWLOntologyManager}).
@@ -271,6 +303,9 @@ public interface OntologyProvider<S> {
      * Implementations are typically faster than calling {@link #getStoredOntology(IRI, Class)} and checking
      * if the returned value is not null.
      * 
+     * @deprecated the notion of "having an ontology" has become ambiguous. Please use
+     *             {@link #getStatus(OWLOntologyID)} and verify its value.
+     * 
      * @param publicKey
      *            the ontology id. If there is both an ontology IRI and a version IRI, both must match the
      *            ontology provider's records in order to return true. Otherwise, it will return true iff

Modified: stanbol/trunk/ontologymanager/multiplexer/clerezza/src/license/THIRD-PARTY.properties
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/multiplexer/clerezza/src/license/THIRD-PARTY.properties?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/multiplexer/clerezza/src/license/THIRD-PARTY.properties (original)
+++ stanbol/trunk/ontologymanager/multiplexer/clerezza/src/license/THIRD-PARTY.properties Mon Nov 12 15:30:07 2012
@@ -1,26 +1,28 @@
 # Generated by org.codehaus.mojo.license.AddThirdPartyMojo
 #-------------------------------------------------------------------------------
 # Already used licenses in project :
-# - Apache 2
-# - Apache License
-# - BSD
-# - BSD-style license
-# - CDDL 1.1
-# - Common Development and Distribution License (CDDL) v1.0
-# - Common Public License Version 1.0
-# - GPL2 w/ CPE
+# - Apache Software License
+# - Apache Software License, Version 2.0
+# - BSD License
+# - Common Development And Distribution License (CDDL), Version 1.0
+# - Common Development And Distribution License (CDDL), Version 1.1
+# - Common Public License, Version 1.0
+# - Eclipse Public License, Version 1.0
+# - GNU General Public License (GPL), Version 2 with classpath exception
+# - GNU Lesser General Public License (LGPL)
+# - GNU Lesser General Public License (LGPL), Version 2.1
 # - ICU License
 # - MIT License
-# - The Apache Software License, Version 2.0
+# - Public Domain License
 #-------------------------------------------------------------------------------
 # Please fill the missing licenses for dependencies :
 #
 #
-#Wed Feb 15 19:05:02 CET 2012
+#Mon Nov 12 12:00:55 CET 2012
 asm--asm--3.1=BSD License
-javax.servlet--servlet-api--2.4=Common Development And Distribution License (CDDL), Version 1.0
+javax.servlet--servlet-api--2.5=Common Development And Distribution License (CDDL), Version 1.0
+net.sourceforge.owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 org.codehaus.jettison--jettison--1.3=The Apache Software License, Version 2.0
 org.osgi--org.osgi.compendium--4.1.0=The Apache Software License, Version 2.0
 org.osgi--org.osgi.core--4.1.0=The Apache Software License, Version 2.0
-owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 xerces--xercesImpl--2.7.1=The Apache Software License, Version 2.0

Modified: stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/ClerezzaOntologyProvider.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/ClerezzaOntologyProvider.java?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/ClerezzaOntologyProvider.java (original)
+++ stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/ClerezzaOntologyProvider.java Mon Nov 12 15:30:07 2012
@@ -534,7 +534,11 @@ public class ClerezzaOntologyProvider im
         log.info("Adding alias for ontology entry.");
         log.info(" ... Primary key : {}", primaryKey);
         log.info(" ... Alias : {}", alias);
-        // TODO check that they do not map to two different ontologies.
+        // Check that they do not map to two different ontologies.
+        OWLOntologyID already = checkAlias(primaryKey, alias);
+        /*if (already != null) throw new IllegalArgumentException*/log.warn(alias
+                                                                + " is already an alias for primary key "
+                                                                + already);
         // XXX a SPARQL query could come in handy.
         // Nothing to do but defer to the meta graph,
         new MetaGraphManager(tcManager, keymap.graph).updateAddAlias(primaryKey, alias);
@@ -542,10 +546,20 @@ public class ClerezzaOntologyProvider im
         return true;
     }
 
+    protected OWLOntologyID checkAlias(OWLOntologyID primaryKey, OWLOntologyID alias) {
+        for (OWLOntologyID primary : listPrimaryKeys())
+            if (listAliases(primary).contains(alias) && !alias.equals(primary)) return primary;
+        return null;
+    }
+
     @Override
     public OWLOntologyID createBlankOntologyEntry(OWLOntologyID publicKey) {
         log.info("Creating new orphan entry.");
         log.info(" ... Public key : {}", publicKey);
+
+        if (getStatus(publicKey) != Status.NO_MATCH) throw new IllegalArgumentException(
+                "Public key " + publicKey + "is already registered");
+
         /*
          * TODO keep this object from being created on every call once we get totally rid of the
          * OntologyToTcMapper class.
@@ -880,15 +894,19 @@ public class ClerezzaOntologyProvider im
 
     @Override
     public <O> O getStoredOntology(OWLOntologyID reference, Class<O> returnType, boolean merge) {
-
-        if (!hasOntology(reference)) throw new IllegalArgumentException("No ontology with public key "
-                                                                        + reference + " found.");
-        String key = /* getKey(reference); */
-        keymap.getMapping(reference).getUnicodeString();
-        if (key == null || key.isEmpty()) {
-            log.warn("No key found for IRI {}", reference);
-            return null;
-        } else return getStoredOntology(key, returnType, merge);
+        switch (getStatus(reference)) {
+            case NO_MATCH:
+                throw new IllegalArgumentException("No ontology with public key " + reference + " found.");
+            case UNCHARTED:
+                log.warn("No key found for IRI {}", reference);
+                return null;
+            case ORPHAN:
+                throw new OrphanOntologyKeyException(reference);
+            default:
+                String key = /* getKey(reference); */
+                keymap.getMapping(reference).getUnicodeString();
+                return getStoredOntology(key, returnType, merge);
+        }
     }
 
     @Override
@@ -952,7 +970,6 @@ public class ClerezzaOntologyProvider im
     }
 
     @Override
-    @Deprecated
     public boolean hasOntology(IRI ontologyIri) {
         // ontologyIri = URIUtils.sanitizeID(ontologyIri);
         return hasOntology(new OWLOntologyID(ontologyIri));
@@ -960,12 +977,20 @@ public class ClerezzaOntologyProvider im
 
     @Override
     public boolean hasOntology(OWLOntologyID id) {
-        if (id == null || id.isAnonymous()) throw new IllegalArgumentException(
+        Status stat = getStatus(id);
+        if (stat == Status.ORPHAN) throw new OrphanOntologyKeyException(id);
+        return getStatus(id) == Status.MATCH;
+    }
+
+    @Override
+    public Status getStatus(OWLOntologyID publicKey) {
+        if (publicKey == null || publicKey.isAnonymous()) throw new IllegalArgumentException(
                 "Cannot check for an anonymous ontology.");
-        UriRef graphName = keymap.getMapping(id);
-        if (graphName == null) return false;
-        if (!store.listTripleCollections().contains(graphName)) throw new OrphanOntologyKeyException(id);
-        return true;
+        if (!new MetaGraphManager(tcManager, keymap.graph).exists(publicKey)) return Status.NO_MATCH;
+        UriRef graphName = keymap.getMapping(publicKey);
+        if (graphName == null) return Status.UNCHARTED;
+        if (store.listTripleCollections().contains(graphName)) return Status.MATCH;
+        else return Status.ORPHAN;
     }
 
     /**
@@ -988,20 +1013,28 @@ public class ClerezzaOntologyProvider im
     public Set<OWLOntologyID> listAliases(OWLOntologyID publicKey) {
         if (publicKey == null || publicKey.isAnonymous()) throw new IllegalArgumentException(
                 "Cannot locate aliases for null or anonymous public keys.");
-        Set<OWLOntologyID> aliases = new HashSet<OWLOntologyID>();
+        final Set<OWLOntologyID> aliases = new HashSet<OWLOntologyID>();
+        computeAliasClosure(publicKey, aliases);
+        aliases.remove(publicKey);
+        return aliases;
+    }
+
+    protected void computeAliasClosure(OWLOntologyID publicKey, Set<OWLOntologyID> target) {
+        target.add(publicKey);
         TripleCollection meta = getMetaGraph(TripleCollection.class);
         UriRef ont = keymap.buildResource(publicKey);
+        Set<Resource> resources = new HashSet<Resource>();
         // Forwards
-        for (Iterator<Triple> it = meta.filter(ont, OWL.sameAs, null); it.hasNext();) {
-            Resource r = it.next().getObject();
-            if (r instanceof UriRef) aliases.add(keymap.buildPublicKey((UriRef) r));
-        }
+        for (Iterator<Triple> it = meta.filter(ont, OWL.sameAs, null); it.hasNext();)
+            resources.add(it.next().getObject());
         // Backwards
-        for (Iterator<Triple> it = meta.filter(null, OWL.sameAs, ont); it.hasNext();) {
-            Resource r = it.next().getSubject();
-            if (r instanceof UriRef) aliases.add(keymap.buildPublicKey((UriRef) r));
-        }
-        return aliases;
+        for (Iterator<Triple> it = meta.filter(null, OWL.sameAs, ont); it.hasNext();)
+            resources.add(it.next().getSubject());
+        for (Resource r : resources)
+            if (r instanceof UriRef) {
+                OWLOntologyID newKey = keymap.buildPublicKey((UriRef) r);
+                if (!target.contains(newKey)) computeAliasClosure(newKey, target);
+            }
     }
 
     @Override
@@ -1048,6 +1081,8 @@ public class ClerezzaOntologyProvider im
         if (data == null) throw new IllegalArgumentException("No data to load ontologies from.");
         if (formatIdentifier == null || formatIdentifier.trim().isEmpty()) throw new IllegalArgumentException(
                 "A non-null, non-blank format identifier is required for parsing the data stream.");
+        checkReplaceability(references);
+
         // This method only tries the supplied format once.
         log.debug("Trying to parse data stream with format {}", formatIdentifier);
         TripleCollection rdfData = parser.parse(data, formatIdentifier);
@@ -1062,6 +1097,7 @@ public class ClerezzaOntologyProvider im
                                      Origin<?>... references) throws IOException {
         log.debug("Loading {}", ontologyIri);
         if (ontologyIri == null) throw new IllegalArgumentException("Ontology IRI cannot be null.");
+        checkReplaceability(references);
 
         IRI location = null;
         if (force) location = null;
@@ -1124,6 +1160,7 @@ public class ClerezzaOntologyProvider im
     public OWLOntologyID loadInStore(Object ontology, final boolean force, Origin<?>... origins) {
 
         if (ontology == null) throw new IllegalArgumentException("No ontology supplied.");
+        checkReplaceability(origins);
         long before = System.currentTimeMillis();
 
         TripleCollection graph; // The final graph
@@ -1140,7 +1177,19 @@ public class ClerezzaOntologyProvider im
         // XXX Force is ignored for the content, but the imports?
 
         // TODO Profile this method. Are we getting rid of rdfData after adding its triples?
-        OWLOntologyID publicKey = OWLUtils.extractOntologyID(rdfData);
+        OWLOntologyID extractedId = OWLUtils.extractOntologyID(rdfData);
+
+        OWLOntologyID publicKey = null;
+
+        for (int i = 0; i < origins.length && publicKey == null; i++) {
+            if (origins[i] != null) {
+                Object ref = origins[i].getReference();
+                if (ref instanceof OWLOntologyID) publicKey = (OWLOntologyID) ref;
+            }
+        }
+
+        if (publicKey == null) publicKey = extractedId;
+
         if (publicKey == null) {
             IRI z;
             if (origins.length > 0 && origins[0] != null) {
@@ -1235,15 +1284,19 @@ public class ClerezzaOntologyProvider im
         for (Origin<?> origin : origins)
             if (origin != null) {
                 Object reff = origin.getReference();
-                if (reff instanceof IRI) {
-                    OWLOntologyID physical = new OWLOntologyID((IRI) reff);
-                    if (!physical.equals(publicKey)) {
-                        // keymap.setMapping(physical, uriref);
-                        new MetaGraphManager(tcManager, keymap.graph).updateAddAlias(publicKey, physical);
-                        mappedIds += " , " + physical;
-                    }
+                OWLOntologyID alias = null;
+                if (reff instanceof IRI) alias = new OWLOntologyID((IRI) reff);
+                else if (reff instanceof OWLOntologyID) alias = (OWLOntologyID) reff;
+                if (!alias.equals(publicKey)) {
+                    // keymap.setMapping(physical, uriref);
+                    addAlias(publicKey, alias);
+                    mappedIds += " , " + alias;
                 }
             }
+        if (extractedId != null && !extractedId.equals(publicKey)) {
+            addAlias(publicKey, extractedId);
+            mappedIds += " , " + extractedId;
+        }
 
         // Do this AFTER registering the ontology, otherwise import cycles will cause infinite loops.
         if (resolveImports) {
@@ -1340,6 +1393,15 @@ public class ClerezzaOntologyProvider im
         keymap.mapLocator(locator, new UriRef(key));
     }
 
+    protected void checkReplaceability(Origin<?>... origins) {
+        for (Origin<?> or : origins) {
+            if (or == null || !(or.getReference() instanceof OWLOntologyID)) continue;
+            OWLOntologyID key = (OWLOntologyID) or.getReference();
+            if (getStatus(key) == Status.MATCH) throw new IllegalStateException(
+                    "Public key " + key + " matches an existing non-orphan entry. Cannot replace.");
+        }
+    }
+
     /**
      * 
      * @param graphName

Modified: stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/MetaGraphManager.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/MetaGraphManager.java?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/MetaGraphManager.java (original)
+++ stanbol/trunk/ontologymanager/multiplexer/clerezza/src/main/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/MetaGraphManager.java Mon Nov 12 15:30:07 2012
@@ -49,10 +49,10 @@ class MetaGraphManager {
 
     private MGraph graph;
 
-    private TcManager tcManager;
-
     private Logger log = LoggerFactory.getLogger(getClass());
 
+    private TcManager tcManager;
+
     public MetaGraphManager(TcManager tcManager, MGraph graph) {
         this.tcManager = tcManager;
         this.graph = graph;
@@ -112,6 +112,13 @@ class MetaGraphManager {
 
     }
 
+    public boolean exists(final OWLOntologyID publicKey) {
+        UriRef publicKeyUriRef = new UriRef(OntologyUtils.encode(publicKey));
+        if (graph.filter(publicKeyUriRef, RDF.type, ENTRY_URIREF).hasNext()) return true;
+        if (graph.filter(publicKeyUriRef, OWL.sameAs, null).hasNext()) return true;
+        return false;
+    }
+
     public void updateAddAlias(OWLOntologyID subject, OWLOntologyID object) {
         // For now add both owl:sameAs statements
         UriRef suben = buildResource(subject), oben = buildResource(object);

Added: stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/TestAliasing.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/TestAliasing.java?rev=1408321&view=auto
==============================================================================
--- stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/TestAliasing.java (added)
+++ stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/java/org/apache/stanbol/ontologymanager/multiplexer/clerezza/ontology/TestAliasing.java Mon Nov 12 15:30:07 2012
@@ -0,0 +1,156 @@
+/*
+ * 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.multiplexer.clerezza.ontology;
+
+import static org.apache.stanbol.commons.web.base.format.KRFormat.RDF_XML;
+import static org.apache.stanbol.ontologymanager.multiplexer.clerezza.MockOsgiContext.ontologyProvider;
+import static org.apache.stanbol.ontologymanager.multiplexer.clerezza.MockOsgiContext.reset;
+import static org.apache.stanbol.ontologymanager.servicesapi.ontology.OntologyProvider.Status.MATCH;
+import static org.apache.stanbol.ontologymanager.servicesapi.ontology.OntologyProvider.Status.UNCHARTED;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.InputStream;
+
+import org.apache.stanbol.ontologymanager.servicesapi.io.Origin;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Test;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntologyID;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * This test suite checks the coherence of registered ontology entries and their relationship with stored
+ * graphs, if any. It also verifies that entries can be created at one time but will only become accessible
+ * when filled.
+ * 
+ * @author alexdma
+ * 
+ */
+public class TestAliasing {
+
+    @AfterClass
+    public static void cleanup() {
+        reset();
+    }
+
+    private Logger log = LoggerFactory.getLogger(getClass());
+
+    private String prefix = "http://stanbol.apache.org/ontologies/test/aliasing";
+
+    @Test
+    public void canCreateUnchartedOnce() throws Exception {
+        OWLOntologyID uncharted = new OWLOntologyID(IRI.create(prefix), IRI.create(getClass()
+                .getCanonicalName() + "#canCreateUnchartedOnce()"));
+        OWLOntologyID uncharted_copy = ontologyProvider.createBlankOntologyEntry(uncharted);
+        log.info("Created uncharted ontology entry.");
+        log.info(" ... key: {}", uncharted);
+        assertEquals(uncharted, uncharted_copy);
+        assertEquals(UNCHARTED, ontologyProvider.getStatus(uncharted));
+        int entries = ontologyProvider.listAllRegisteredEntries().size();
+        log.info("{} entries registered.", entries);
+
+        try {
+            log.info("Re-creating uncharted ontology entry...");
+            OWLOntologyID recreated = ontologyProvider.createBlankOntologyEntry(uncharted);
+            log.error(" ... Created same entry twice. This should not happen.");
+            log.error(" ... key: {}", recreated);
+            fail("Created same entry twice. This should not happen.");
+        } catch (Exception ex) {
+            log.info(" ... Creation failed. This is expected.");
+            assertEquals(UNCHARTED, ontologyProvider.getStatus(uncharted));
+            int newsize = ontologyProvider.listAllRegisteredEntries().size();
+            assertEquals(entries, newsize);
+            log.info("{} entries registered.", newsize);
+            assertTrue(ontologyProvider.listOrphans().contains(uncharted));
+            assertFalse(ontologyProvider.listPrimaryKeys().contains(uncharted));
+        }
+    }
+
+    @Test
+    public void canFillDeferred() throws Exception {
+        log.info("Creating uncharted ontology entry.");
+        OWLOntologyID key = new OWLOntologyID(IRI.create(prefix), IRI.create(getClass().getCanonicalName()
+                                                                             + "#canFillDeferred()"));
+        log.info(" ... key: {}", key);
+        OWLOntologyID key2 = ontologyProvider.createBlankOntologyEntry(key);
+        assertEquals(key, key2);
+        assertEquals(UNCHARTED, ontologyProvider.getStatus(key));
+
+        String location = "/ontologies/test1.owl";
+        log.info("Filling from data stream.");
+        log.info(" ... source: {}", getClass().getResource(location));
+        log.info(" ... target: {}", key);
+        InputStream in = getClass().getResourceAsStream(location);
+        key2 = ontologyProvider.loadInStore(in, RDF_XML, false, Origin.create(key));
+        assertEquals(key, key2);
+        log.info(" ... DONE. Primary keys match.");
+        assertEquals(MATCH, ontologyProvider.getStatus(key));
+    }
+
+    @Test
+    public void cannotReplaceExistingDataStream() throws Exception {
+
+        // Create a new full entry.
+        String location = "/ontologies/test1.owl";
+        InputStream in = getClass().getResourceAsStream(location);
+        OWLOntologyID key = ontologyProvider.loadInStore(in, RDF_XML, false);
+        log.info("Created and filled entry {}", key);
+        assertNotNull(key);
+        assertEquals(MATCH, ontologyProvider.getStatus(key));
+        assertEquals(1, ontologyProvider.listAllRegisteredEntries().size());
+
+        // Try to replace the data stream of a full entry (should fail).
+        location = "/ontologies/mockfoaf.rdf";
+        in = getClass().getResourceAsStream(location);
+        try {
+            OWLOntologyID wrongKey = ontologyProvider.loadInStore(in, RDF_XML, false, Origin.create(key));
+            log.error("Replaced existing data stream. This should not happen.");
+            log.error(" ... key: ", wrongKey);
+            fail("Replaced existing data stream without warning.");
+        } catch (Exception ex) {
+            log.info("Caught exception of type {}", ex.getClass().getCanonicalName());
+            assertEquals(MATCH, ontologyProvider.getStatus(key));
+            assertEquals(1, ontologyProvider.listAllRegisteredEntries().size());
+            assertEquals(1, ontologyProvider.listPrimaryKeys().size());
+        }
+
+        // Create a new uncharted entry and fill its data stream with the failed one.
+        OWLOntologyID uncharted = new OWLOntologyID(IRI.create(prefix), IRI.create(getClass()
+                .getCanonicalName() + "#cannotReplaceExistingDataStream()"));
+        ontologyProvider.createBlankOntologyEntry(uncharted);
+        assertEquals(UNCHARTED, ontologyProvider.getStatus(uncharted));
+        in = getClass().getResourceAsStream(location);
+        ontologyProvider.loadInStore(in, RDF_XML, false, Origin.create(uncharted));
+        assertEquals(MATCH, ontologyProvider.getStatus(uncharted));
+        assertEquals(2, ontologyProvider.listPrimaryKeys().size());
+
+    }
+
+    /*
+     * Nothing needs to be preserved across tests.
+     */
+    @Before
+    public void setup() {
+        reset();
+    }
+}

Modified: stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/abox.owl
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/abox.owl?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/abox.owl (original)
+++ stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/abox.owl Mon Nov 12 15:30:07 2012
@@ -1,3 +1,18 @@
+# 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.
+
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 @prefix owl: <http://www.w3.org/2002/07/owl#> .
 @prefix : <http://www.ontologydesignpatterns.org/ont/test/ontonet#> .

Modified: stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/tbox.owl
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/tbox.owl?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/tbox.owl (original)
+++ stanbol/trunk/ontologymanager/multiplexer/clerezza/src/test/resources/ontologies/imports-disconnected/tbox.owl Mon Nov 12 15:30:07 2012
@@ -1,3 +1,18 @@
+# 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.
+
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 @prefix owl: <http://www.w3.org/2002/07/owl#> .
 @prefix : <http://www.ontologydesignpatterns.org/ont/test/ontonet#> .

Modified: stanbol/trunk/ontologymanager/registry/src/license/THIRD-PARTY.properties
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/registry/src/license/THIRD-PARTY.properties?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/registry/src/license/THIRD-PARTY.properties (original)
+++ stanbol/trunk/ontologymanager/registry/src/license/THIRD-PARTY.properties Mon Nov 12 15:30:07 2012
@@ -1,26 +1,28 @@
 # Generated by org.codehaus.mojo.license.AddThirdPartyMojo
 #-------------------------------------------------------------------------------
 # Already used licenses in project :
-# - Apache 2
-# - Apache License
-# - BSD
-# - BSD-style license
-# - CDDL 1.1
-# - Common Development and Distribution License (CDDL) v1.0
-# - Common Public License Version 1.0
-# - GPL2 w/ CPE
+# - Apache Software License
+# - Apache Software License, Version 2.0
+# - BSD License
+# - Common Development And Distribution License (CDDL), Version 1.0
+# - Common Development And Distribution License (CDDL), Version 1.1
+# - Common Public License, Version 1.0
+# - Eclipse Public License, Version 1.0
+# - GNU General Public License (GPL), Version 2 with classpath exception
+# - GNU Lesser General Public License (LGPL)
+# - GNU Lesser General Public License (LGPL), Version 2.1
 # - ICU License
 # - MIT License
-# - The Apache Software License, Version 2.0
+# - Public Domain License
 #-------------------------------------------------------------------------------
 # Please fill the missing licenses for dependencies :
 #
 #
-#Wed Feb 15 19:05:11 CET 2012
+#Mon Nov 12 12:17:49 CET 2012
 asm--asm--3.1=BSD License
-javax.servlet--servlet-api--2.4=Common Development And Distribution License (CDDL), Version 1.0
+javax.servlet--servlet-api--2.5=Common Development And Distribution License (CDDL), Version 1.0
+net.sourceforge.owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 org.codehaus.jettison--jettison--1.3=The Apache Software License, Version 2.0
 org.osgi--org.osgi.compendium--4.1.0=The Apache Software License, Version 2.0
 org.osgi--org.osgi.core--4.1.0=The Apache Software License, Version 2.0
-owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 xerces--xercesImpl--2.7.1=The Apache Software License, Version 2.0

Modified: stanbol/trunk/ontologymanager/sources/clerezza/src/license/THIRD-PARTY.properties
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/sources/clerezza/src/license/THIRD-PARTY.properties?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/sources/clerezza/src/license/THIRD-PARTY.properties (original)
+++ stanbol/trunk/ontologymanager/sources/clerezza/src/license/THIRD-PARTY.properties Mon Nov 12 15:30:07 2012
@@ -1,26 +1,28 @@
 # Generated by org.codehaus.mojo.license.AddThirdPartyMojo
 #-------------------------------------------------------------------------------
 # Already used licenses in project :
-# - Apache 2
-# - Apache License
-# - BSD
-# - BSD-style license
-# - CDDL 1.1
-# - Common Development and Distribution License (CDDL) v1.0
-# - Common Public License Version 1.0
-# - GPL2 w/ CPE
+# - Apache Software License
+# - Apache Software License, Version 2.0
+# - BSD License
+# - Common Development And Distribution License (CDDL), Version 1.0
+# - Common Development And Distribution License (CDDL), Version 1.1
+# - Common Public License, Version 1.0
+# - Eclipse Public License, Version 1.0
+# - GNU General Public License (GPL), Version 2 with classpath exception
+# - GNU Lesser General Public License (LGPL)
+# - GNU Lesser General Public License (LGPL), Version 2.1
 # - ICU License
 # - MIT License
-# - The Apache Software License, Version 2.0
+# - Public Domain License
 #-------------------------------------------------------------------------------
 # Please fill the missing licenses for dependencies :
 #
 #
-#Wed Feb 15 19:05:02 CET 2012
+#Mon Nov 12 12:00:40 CET 2012
 asm--asm--3.1=BSD License
-javax.servlet--servlet-api--2.4=Common Development And Distribution License (CDDL), Version 1.0
+javax.servlet--servlet-api--2.5=Common Development And Distribution License (CDDL), Version 1.0
+net.sourceforge.owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 org.codehaus.jettison--jettison--1.3=The Apache Software License, Version 2.0
 org.osgi--org.osgi.compendium--4.1.0=The Apache Software License, Version 2.0
 org.osgi--org.osgi.core--4.1.0=The Apache Software License, Version 2.0
-owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 xerces--xercesImpl--2.7.1=The Apache Software License, Version 2.0

Modified: stanbol/trunk/ontologymanager/sources/owlapi/src/license/THIRD-PARTY.properties
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/sources/owlapi/src/license/THIRD-PARTY.properties?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/sources/owlapi/src/license/THIRD-PARTY.properties (original)
+++ stanbol/trunk/ontologymanager/sources/owlapi/src/license/THIRD-PARTY.properties Mon Nov 12 15:30:07 2012
@@ -1,26 +1,28 @@
 # Generated by org.codehaus.mojo.license.AddThirdPartyMojo
 #-------------------------------------------------------------------------------
 # Already used licenses in project :
-# - Apache 2
-# - Apache License
-# - BSD
-# - BSD-style license
-# - CDDL 1.1
-# - Common Development and Distribution License (CDDL) v1.0
-# - Common Public License Version 1.0
-# - GPL2 w/ CPE
+# - Apache Software License
+# - Apache Software License, Version 2.0
+# - BSD License
+# - Common Development And Distribution License (CDDL), Version 1.0
+# - Common Development And Distribution License (CDDL), Version 1.1
+# - Common Public License, Version 1.0
+# - Eclipse Public License, Version 1.0
+# - GNU General Public License (GPL), Version 2 with classpath exception
+# - GNU Lesser General Public License (LGPL)
+# - GNU Lesser General Public License (LGPL), Version 2.1
 # - ICU License
 # - MIT License
-# - The Apache Software License, Version 2.0
+# - Public Domain License
 #-------------------------------------------------------------------------------
 # Please fill the missing licenses for dependencies :
 #
 #
-#Wed Feb 15 19:05:02 CET 2012
+#Mon Nov 12 12:00:45 CET 2012
 asm--asm--3.1=BSD License
-javax.servlet--servlet-api--2.4=Common Development And Distribution License (CDDL), Version 1.0
+javax.servlet--servlet-api--2.5=Common Development And Distribution License (CDDL), Version 1.0
+net.sourceforge.owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 org.codehaus.jettison--jettison--1.3=The Apache Software License, Version 2.0
 org.osgi--org.osgi.compendium--4.1.0=The Apache Software License, Version 2.0
 org.osgi--org.osgi.core--4.1.0=The Apache Software License, Version 2.0
-owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 xerces--xercesImpl--2.7.1=The Apache Software License, Version 2.0

Modified: stanbol/trunk/ontologymanager/web/src/license/THIRD-PARTY.properties
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/web/src/license/THIRD-PARTY.properties?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/web/src/license/THIRD-PARTY.properties (original)
+++ stanbol/trunk/ontologymanager/web/src/license/THIRD-PARTY.properties Mon Nov 12 15:30:07 2012
@@ -1,34 +1,29 @@
 # Generated by org.codehaus.mojo.license.AddThirdPartyMojo
 #-------------------------------------------------------------------------------
 # Already used licenses in project :
-# - Apache 2
-# - Apache License
-# - Apache License Version 2.0
-# - Apache Software License - Version 2.0
-# - BSD
-# - BSD-style license
-# - CDDL 1.1
-# - CDDL License
-# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-# - Common Development and Distribution License (CDDL) v1.0
-# - Common Public License Version 1.0
-# - Eclipse Public License - Version 1.0
+# - Apache Software License
+# - Apache Software License, Version 2.0
+# - BSD License
+# - Common Development And Distribution License (CDDL), Version 1.0
+# - Common Development And Distribution License (CDDL), Version 1.1
+# - Common Public License, Version 1.0
+# - Dual license consisting of the CDDL v1.1 and GPL v2
+# - Eclipse Public License, Version 1.0
+# - GNU General Public License (GPL), Version 2 with classpath exception
+# - GNU Lesser General Public License (LGPL)
 # - GNU Lesser General Public License (LGPL), Version 2.1
-# - GPL2 w/ CPE
-# - GPLv2 with classpath exception
 # - ICU License
 # - MIT License
-# - The Apache Software License, Version 2.0
-# - The MIT License
+# - Public Domain License
 #-------------------------------------------------------------------------------
 # Please fill the missing licenses for dependencies :
 #
 #
-#Wed Feb 15 19:05:18 CET 2012
+#Mon Nov 12 12:18:45 CET 2012
 asm--asm--3.1=BSD License
-javax.servlet--servlet-api--2.4=Common Development And Distribution License (CDDL), Version 1.0
+javax.servlet--servlet-api--2.5=Common Development And Distribution License (CDDL), Version 1.0
+net.sourceforge.owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 org.codehaus.jettison--jettison--1.3=The Apache Software License, Version 2.0
 org.osgi--org.osgi.compendium--4.1.0=The Apache Software License, Version 2.0
 org.osgi--org.osgi.core--4.1.0=The Apache Software License, Version 2.0
-owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
 xerces--xercesImpl--2.7.1=The Apache Software License, Version 2.0

Modified: stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource.java?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource.java (original)
+++ stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource.java Mon Nov 12 15:30:07 2012
@@ -100,6 +100,7 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.registry.api.model.Library;
 import org.apache.stanbol.ontologymanager.servicesapi.collector.OntologyCollector;
 import org.apache.stanbol.ontologymanager.servicesapi.io.OntologyInputSource;
+import org.apache.stanbol.ontologymanager.servicesapi.io.Origin;
 import org.apache.stanbol.ontologymanager.servicesapi.ontology.Multiplexer;
 import org.apache.stanbol.ontologymanager.servicesapi.ontology.OntologyHandleException;
 import org.apache.stanbol.ontologymanager.servicesapi.ontology.OntologyLoadingException;
@@ -429,9 +430,13 @@ public class OntoNetRootResource extends
     @Path("/{ontologyId:.+}")
     @Produces(value = {APPLICATION_JSON, N3, N_TRIPLE, RDF_JSON})
     public Response getStandaloneGraph(@PathParam("ontologyId") String ontologyId,
+                                       @DefaultValue("false") @QueryParam("meta") boolean meta,
                                        @DefaultValue("false") @QueryParam("merge") boolean merged,
                                        @Context UriInfo uriInfo,
                                        @Context HttpHeaders headers) {
+
+        if (meta) return getMetadata(ontologyId, uriInfo, headers);
+
         ResponseBuilder rb;
         if (ontologyId == null || ontologyId.isEmpty()) rb = Response.status(BAD_REQUEST);
         OWLOntologyID key = OntologyUtils.decode(ontologyId);
@@ -475,29 +480,65 @@ public class OntoNetRootResource extends
         return rb.build();
     }
 
+    public Response getMetadata(@PathParam("ontologyId") String ontologyId,
+                                @Context UriInfo uriInfo,
+                                @Context HttpHeaders headers) {
+        ResponseBuilder rb;
+        UriRef me = new UriRef(getPublicBaseUri() + "ontonet/" + ontologyId);
+        MGraph mGraph = new SimpleMGraph();
+        for (String alias : getAliases(OntologyUtils.decode(ontologyId)))
+            mGraph.add(new TripleImpl(new UriRef(getPublicBaseUri() + "ontonet/" + alias), OWL.sameAs, me));
+        rb = Response.ok(mGraph);
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
+    }
+
     @POST
+    @Path("/{ontologyId:.+}")
     @Consumes({MULTIPART_FORM_DATA})
     @Produces({TEXT_HTML, TEXT_PLAIN, RDF_XML, TURTLE, X_TURTLE, N3})
-    public Response postOntology(FormDataMultiPart data, @Context HttpHeaders headers) {
+    public Response loadOntologyContent(@PathParam("ontologyId") String ontologyId,
+                                        FormDataMultiPart data,
+                                        @Context HttpHeaders headers) {
+        ResponseBuilder rb = performLoadOntology(data, headers,
+            Origin.create(OntologyUtils.decode(ontologyId)));
+        // rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML + "; charset=utf-8");
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
+    }
+
+    protected ResponseBuilder performLoadOntology(FormDataMultiPart data,
+                                                  HttpHeaders headers,
+                                                  Origin<?>... keys) {
         log.debug(" post(FormDataMultiPart data)");
         ResponseBuilder rb = null;
 
         IRI location = null;
         File file = null; // If found, it takes precedence over location.
         String format = null;
+        List<OWLOntologyID> aliases = new ArrayList<OWLOntologyID>();
         for (BodyPart bpart : data.getBodyParts()) {
             log.debug("is a {}", bpart.getClass());
             if (bpart instanceof FormDataBodyPart) {
                 FormDataBodyPart dbp = (FormDataBodyPart) bpart;
                 String name = dbp.getName();
                 if (name.equals("file")) file = bpart.getEntityAs(File.class);
-                else if (name.equals("format") && !dbp.getValue().equals("auto")) format = dbp.getValue();
-                else if (name.equals("url")) try {
-                    URI.create(dbp.getValue()); // To throw 400 if malformed.
-                    location = IRI.create(dbp.getValue());
-                } catch (Exception ex) {
-                    log.error("Malformed IRI for " + dbp.getValue(), ex);
-                    throw new WebApplicationException(ex, BAD_REQUEST);
+                else {
+                    String value = dbp.getValue();
+                    if (name.equals("format") && !value.equals("auto")) format = value;
+                    else if (name.equals("url")) try {
+                        URI.create(value); // To throw 400 if malformed.
+                        location = IRI.create(value);
+                    } catch (Exception ex) {
+                        log.error("Malformed IRI for " + value, ex);
+                        throw new WebApplicationException(ex, BAD_REQUEST);
+                    }
+                    else if (name.equals("alias") && !"null".equals(value)) try {
+                        aliases.add(OntologyUtils.decode(value));
+                    } catch (Exception ex) {
+                        log.error("Malformed public key for " + value, ex);
+                        throw new WebApplicationException(ex, BAD_REQUEST);
+                    }
                 }
             }
         }
@@ -525,7 +566,7 @@ public class OntoNetRootResource extends
                     InputStream content = new FileInputStream(file);
                     // ClerezzaOWLUtils.guessOntologyID(new FileInputStream(file), Parser.getInstance(), f);
                     OWLOntologyID guessed = OWLUtils.guessOntologyID(content, Parser.getInstance(), f);
-                    if (ontologyProvider.hasOntology(guessed)) {
+                    if (guessed != null && ontologyProvider.hasOntology(guessed)) {
                         rb = Response.status(Status.CONFLICT);
                         this.submitted = guessed;
                         if (headers.getAcceptableMediaTypes().contains(MediaType.TEXT_HTML_TYPE)) {
@@ -535,7 +576,7 @@ public class OntoNetRootResource extends
                         break;
                     } else {
                         content = new FileInputStream(file);
-                        key = ontologyProvider.loadInStore(content, f, true);
+                        key = ontologyProvider.loadInStore(content, f, true, keys);
                     }
                 } catch (UnsupportedFormatException e) {
                     log.warn(
@@ -557,31 +598,42 @@ public class OntoNetRootResource extends
             }
         } else if (location != null) {
             try { // Here we try every format supported by the Java API
-                key = ontologyProvider.loadInStore(location, null, true);
+                key = ontologyProvider.loadInStore(location, null, true, keys);
             } catch (Exception e) {
                 log.error("Failed to load ontology from " + location, e);
                 throw new WebApplicationException(e, BAD_REQUEST);
             }
-        } else {
-            log.error("Bad request");
-            log.error(" file is: {}", file);
-            throw new WebApplicationException(BAD_REQUEST);
-        }
+        } else if (!aliases.isEmpty()) // No content but there are aliases.
+        for (Origin<?> origin : keys)
+            if (origin.getReference() instanceof OWLOntologyID) {
+                OWLOntologyID primary = ((OWLOntologyID) origin.getReference());
+                if (ontologyProvider.getStatus(primary) != org.apache.stanbol.ontologymanager.servicesapi.ontology.OntologyProvider.Status.NO_MATCH) for (OWLOntologyID alias : aliases)
+                    try {
+                        if (ontologyProvider.addAlias(primary, alias) && key == null) key = alias;
+                    } catch (IllegalArgumentException ex) {
+                        log.warn("Cannot add alias");
+                        log.warn(" ... ontology key: {}", primary);
+                        log.warn(" ... alias: {}", alias);
+                        log.warn(" ... reason: ", ex);
+                        continue;
+                    }
+            } else {
+                log.error("Bad request");
+                log.error(" file is: {}", file);
+                throw new WebApplicationException(BAD_REQUEST);
+            }
 
         if (key != null && !key.isAnonymous()) {
             String uri = OntologyUtils.encode(key);
             if (uri != null && !uri.isEmpty()) {
-                rb = Response.created(URI.create("/" + uri));
+                rb = Response.ok();
                 if (headers.getAcceptableMediaTypes().contains(MediaType.TEXT_HTML_TYPE)) {
                     rb.entity(new Viewable("index", this));
                     rb.header(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_HTML + "; charset=utf-8");
                 }
             } else rb = Response.ok();
         } else if (rb == null) rb = Response.status(Status.INTERNAL_SERVER_ERROR);
-
-        // rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML + "; charset=utf-8");
-        addCORSOrigin(servletContext, rb, headers);
-        return rb.build();
+        return rb;
     }
 
     /**
@@ -611,13 +663,23 @@ public class OntoNetRootResource extends
         return Response.ok(new Viewable("ontology",
         // new OntologyPrettyPrintResource(servletContext,
         // uriInfo, out)
-                new OntologyStatsResource(servletContext, uriInfo, o, ontologyProvider.listAliases(key),
+                new OntologyStatsResource(servletContext, uriInfo, key, o, ontologyProvider.listAliases(key),
                         handles)));
         // } catch (OWLOntologyStorageException e) {
         // throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
         // }
     }
 
+    @POST
+    @Consumes({MULTIPART_FORM_DATA})
+    @Produces({TEXT_HTML, TEXT_PLAIN, RDF_XML, TURTLE, X_TURTLE, N3})
+    public Response postOntology(FormDataMultiPart data, @Context HttpHeaders headers) {
+        ResponseBuilder rb = performLoadOntology(data, headers);
+        // rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML + "; charset=utf-8");
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
+    }
+
     @GET
     @Path("/{ontologyId:.+}")
     @Produces(TEXT_HTML)

Modified: stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/util/OntologyStatsResource.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/util/OntologyStatsResource.java?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/util/OntologyStatsResource.java (original)
+++ stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/util/OntologyStatsResource.java Mon Nov 12 15:30:07 2012
@@ -23,11 +23,11 @@ import java.util.Set;
 import javax.servlet.ServletContext;
 import javax.ws.rs.core.UriInfo;
 
-import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
 import org.apache.stanbol.ontologymanager.servicesapi.collector.OntologyCollector;
 import org.apache.stanbol.ontologymanager.servicesapi.scope.OntologySpace;
 import org.apache.stanbol.ontologymanager.servicesapi.session.Session;
 import org.apache.stanbol.ontologymanager.servicesapi.util.OntologyUtils;
+import org.apache.stanbol.ontologymanager.web.resources.AbstractOntologyAccessResource;
 import org.semanticweb.owlapi.model.OWLOntology;
 import org.semanticweb.owlapi.model.OWLOntologyID;
 
@@ -37,7 +37,7 @@ import org.semanticweb.owlapi.model.OWLO
  * @author alexdma
  * 
  */
-public class OntologyStatsResource extends BaseStanbolResource {
+public class OntologyStatsResource extends AbstractOntologyAccessResource {
 
     private Set<OntologyCollector> handles;
 
@@ -47,11 +47,13 @@ public class OntologyStatsResource exten
 
     public OntologyStatsResource(ServletContext context,
                                  UriInfo uriInfo,
+                                 OWLOntologyID key,
                                  OWLOntology o,
                                  Set<OWLOntologyID> identifiers,
                                  Set<OntologyCollector> handles) {
         this.servletContext = context;
         this.uriInfo = uriInfo;
+        this.submitted = key;
         this.o = o;
         this.identifiers = identifiers;
         this.handles = handles;
@@ -60,7 +62,8 @@ public class OntologyStatsResource exten
     public Set<String> getAliases() {
         Set<String> aliases = new HashSet<String>();
         for (OWLOntologyID alias : identifiers)
-            if (!o.getOntologyID().equals(alias)) aliases.add(OntologyUtils.encode(alias));
+            // if (!o.getOntologyID().equals(alias))
+            aliases.add(OntologyUtils.encode(alias));
         return Collections.unmodifiableSet(aliases);
     }
 

Modified: stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource/ontology.ftl
URL: http://svn.apache.org/viewvc/stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource/ontology.ftl?rev=1408321&r1=1408320&r2=1408321&view=diff
==============================================================================
--- stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource/ontology.ftl (original)
+++ stanbol/trunk/ontologymanager/web/src/main/resources/org/apache/stanbol/ontologymanager/web/templates/org/apache/stanbol/ontologymanager/web/resources/OntoNetRootResource/ontology.ftl Mon Nov 12 15:30:07 2012
@@ -23,7 +23,7 @@
       Aliases:
       <ul>
       <#list it.aliases as alias>
-        <li>${alias}</li>
+        <li><a href=${it.publicBaseUri}ontonet/${alias}>${alias}</a></li>
       </#list>
       </ul>
         
@@ -41,6 +41,60 @@
     <pre>${it.result}</pre>
     -->
   </div>
+  
+  <ul class="downloadLinks">
+<li>
+  Output format:
+  <select onChange="javascript:setFormat();" id="selectFormat">
+    <option value="application/json">JSON-LD</option>
+    <option value="application/owl+xml">OWL/XML</option>
+    <option value="application/rdf+xml">RDF/XML</option>
+    <option value="application/rdf+json">RDF/JSON</option>
+    <option value="text/owl-functional">OWL Functional Syntax</option>
+    <option value="text/owl-manchester">Manchester OWL Syntax</option>
+    <option value="text/rdf+n3">N3</option>
+    <option value="text/rdf+nt">N-Triples</option>
+    <option value="text/turtle" selected>Turtle</option>
+  </select>
+  <a id="downloadOntology" href="${it.requestUri}?header_Accept=text%2Fturtle" class="downloadRDF" download="${it.stringForm(it.representedOntologyKey)}.rdf">Download raw ontology</a>
+</li>
+</ul>
 
 </...@common.page>
-</#escape>
\ No newline at end of file
+</#escape>
+
+<script>
+ function setFormat(){
+   var format = $("#selectFormat").val();
+   $("#downloadOntology").attr("href", "${it.requestUri}?header_Accept="+encodeURIComponent(format));
+   switch(format) {
+     case "application/json":
+       $("#downloadOntology").attr("download", "${it.stringForm(it.representedOntologyKey)}.json");
+       break;
+     case "application/owl+xml":
+       $("#downloadOntology").attr("download", "${it.stringForm(it.representedOntologyKey)}.owl");
+       break;
+     case "application/rdf+json":
+       $("#downloadOntology").attr("download", "${it.stringForm(it.representedOntologyKey)}.json");
+       break;
+     case "application/rdf+xml":
+       $("#downloadOntology").attr("download", "${it.stringForm(it.representedOntologyKey)}.rdf");
+       break;
+     case "text/owl-functional":
+       $("#downloadOntology").attr("download", "${it.stringForm(it.representedOntologyKey)}.owl");
+       break;
+     case "text/owl-manchester":
+       $("#downloadOntology").attr("download", "${it.stringForm(it.representedOntologyKey)}.owl");
+       break;
+     case "text/rdf+n3":
+       $("#downloadOntology").attr("download", "${it.stringForm(it.representedOntologyKey)}.n3");
+       break;
+     case "text/rdf+nt":
+       $("#downloadOntology").attr("download", "${it.stringForm(it.representedOntologyKey)}.nt");
+       break;
+     case "text/turtle":
+       $("#downloadOntology").attr("download", "${it.stringForm(it.representedOntologyKey)}.rdf");
+       break;
+}
+ }
+</script>
\ No newline at end of file