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

svn commit: r1081894 [5/7] - in /incubator/stanbol/trunk/kres: ./ eu.iksproject.kres.jersey/ eu.iksproject.kres.jersey/KReSConf/ eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kres/jersey/ eu.iksproject.kres.jersey/src/main/java/eu/iksproject/kr...

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeEventListener.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeEventListener.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeEventListener.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeEventListener.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,55 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
+
+/**
+ * Objects that want to listen to the registration of ontology scopes should
+ * implement this interface and add themselves as listener to a scope registry.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface ScopeEventListener {
+
+	/**
+	 * Called <i>after</i> an ontology scope, assuming it is already registered
+	 * somewhere, is activated.
+	 * 
+	 * @param scope
+	 *            the activated ontology scope
+	 */
+	public void scopeActivated(OntologyScope scope);
+
+	/**
+	 * Called <i>after</i> a new ontology scope has been created.
+	 * 
+	 * @param scope
+	 *            the created ontology scope
+	 */
+	public void scopeCreated(OntologyScope scope);
+
+	/**
+	 * Called <i>after</i> an ontology scope, assuming it is already registered
+	 * somewhere, is deactivated. If the deactivation of a scope implies
+	 * deregistering of it, a separate event should be fired for deregistration.
+	 * 
+	 * @param scope
+	 *            the deactivated ontology scope
+	 */
+	public void scopeDeactivated(OntologyScope scope);
+
+	/**
+	 * Called <i>after</i> an ontology scope is removed from the scope registry.
+	 * 
+	 * @param scope
+	 *            the deregistered ontology scope
+	 */
+	public void scopeDeregistered(OntologyScope scope);
+
+	/**
+	 * Called <i>after</i> an ontology scope is added to the scope registry.
+	 * 
+	 * @param scope
+	 *            the registered ontology scope
+	 */
+	public void scopeRegistered(OntologyScope scope);
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeOntologyListenable.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeOntologyListenable.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeOntologyListenable.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeOntologyListenable.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,22 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
+
+import java.util.Collection;
+
+/**
+ * Implementations of this interface are able to fire events related to the
+ * modification of ontologies within an ontology scope.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface ScopeOntologyListenable {
+
+	public void addOntologyScopeListener(ScopeOntologyListener listener);
+
+	public void clearOntologyScopeListeners();
+
+	public Collection<ScopeOntologyListener> getOntologyScopeListeners();
+
+	public void removeOntologyScopeListener(ScopeOntologyListener listener);
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeOntologyListener.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeOntologyListener.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeOntologyListener.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeOntologyListener.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,11 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
+
+import org.semanticweb.owlapi.model.IRI;
+
+public interface ScopeOntologyListener {
+
+	public void onOntologyAdded(IRI scopeId, IRI addedOntology);
+
+	public void onOntologyRemoved(IRI scopeId, IRI removedOntology);
+	
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeRegistry.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeRegistry.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeRegistry.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ScopeRegistry.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,108 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
+
+import java.util.Set;
+
+import org.semanticweb.owlapi.model.IRI;
+
+/**
+ * A registry that keeps track of the active ontology scopes in a running KReS
+ * instance.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface ScopeRegistry {
+
+	/**
+	 * Adds a scope registration listener to this registry. If the listener was
+	 * already added, this should result in no effect.
+	 * 
+	 * @param listener
+	 *            the listener to be added
+	 */
+	public void addScopeRegistrationListener(ScopeEventListener listener);
+
+	/**
+	 * Removes all registered scope registration listeners.
+	 */
+	public void clearScopeRegistrationListeners();
+
+	/**
+	 * 
+	 * @param scopeID
+	 * @return true iff an ontology scope with ID <code>scopeID</code> is
+	 *         registered.
+	 */
+	public boolean containsScope(IRI scopeID);
+
+	/**
+	 * Removes an ontology scope from this registry, thus deactivating the scope
+	 * and all of its associated spaces. All attached listeners should hear this
+	 * deregistration on their <code>scopeDeregistered()</code> method.
+	 * 
+	 * @param scope
+	 *            the ontology scope to be removed
+	 */
+	public void deregisterScope(OntologyScope scope);
+
+	/**
+	 * Returns the set of registered ontology scopes.
+	 * 
+	 * @return the set of ontology scopes
+	 */
+	public Set<OntologyScope> getRegisteredScopes();
+
+	/**
+	 * Returns the unique ontology scope identified by the given ID.
+	 * 
+	 * @param scopeID
+	 *            the scope identifier
+	 * @return the ontology scope with that ID, or null if no scope with such ID
+	 *         is registered
+	 */
+	public OntologyScope getScope(IRI scopeID);
+
+	public void setScopeActive(IRI scopeID, boolean active);
+
+	public boolean isScopeActive(IRI scopeID);
+
+	public Set<OntologyScope> getActiveScopes();
+
+	/**
+	 * Returns the set of registered scope registration listeners, in no
+	 * particular order.
+	 * 
+	 * @return the set of scope registration listeners
+	 */
+	public Set<ScopeEventListener> getScopeRegistrationListeners();
+
+	/**
+	 * Equivalent to <code>registerScope(scope, false)</code>.
+	 * 
+	 * @param scope
+	 *            the ontology scope to be added
+	 */
+	public void registerScope(OntologyScope scope);
+
+	/**
+	 * Adds an ontology scope to this registry, thus activating the scope if
+	 * <code>activate</code> is set and (at a bare minumum) its core space. All
+	 * attached listeners should hear this registration on their
+	 * <code>scopeRegistered()</code> method.
+	 * 
+	 * @param scope
+	 *            the ontology scope to be added
+	 */
+	public void registerScope(OntologyScope scope, boolean activate);
+
+	/**
+	 * Removes a scope registration listener from this registry. If the listener
+	 * was not previously added, this should result in no effect.
+	 * 
+	 * @param listener
+	 *            the listener to be removed
+	 */
+	public void removeScopeRegistrationListener(
+			ScopeEventListener listener);
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SessionOntologySpace.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SessionOntologySpace.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SessionOntologySpace.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SessionOntologySpace.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,24 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
+
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+
+/**
+ * An ontology scope for application use. There exists exactly one scope for
+ * each live (active or halted) KReS session. <br>
+ * <br>
+ * This is the only type of ontology scope that allows public access to its OWL
+ * ontology manager.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface SessionOntologySpace extends OntologySpace {
+
+	/**
+	 * Returns the OWL ontology manager associated to this scope.
+	 * 
+	 * @return the associated ontology manager
+	 */
+	public OWLOntologyManager getOntologyManager();
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SpaceType.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SpaceType.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SpaceType.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SpaceType.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,17 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
+
+public enum SpaceType {
+
+	CORE("core"), CUSTOM("custom"), SESSION("session");
+
+	private SpaceType(String suffix) {
+		this.suffix = suffix;
+	}
+
+	private String suffix;
+
+	public String getIRISuffix() {
+		return suffix;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/UnmodifiableOntologySpaceException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/UnmodifiableOntologySpaceException.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/UnmodifiableOntologySpaceException.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/UnmodifiableOntologySpaceException.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,29 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
+
+/**
+ * Thrown whenever an attempt to modify the ontology network within a read-only
+ * ontology space (e.g. a core or custom space in a bootstrapped system) is
+ * detected and denied.
+ * 
+ * @author alessandro
+ * 
+ */
+public class UnmodifiableOntologySpaceException extends
+		OntologySpaceModificationException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 6747720213098173405L;
+
+	/**
+	 * Creates a new instance of UnmodifiableOntologySpaceException.
+	 * 
+	 * @param space
+	 *            the ontology space whose modification was attempted.
+	 */
+	public UnmodifiableOntologySpaceException(OntologySpace space) {
+		super(space);
+	}
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/KReSRegistryLoader.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/KReSRegistryLoader.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/KReSRegistryLoader.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/KReSRegistryLoader.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,44 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.registry;
+
+import java.util.Set;
+
+import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.Registry;
+import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.RegistryContentException;
+import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.RegistryItem;
+import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.RegistryLibrary;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntology;
+import org.semanticweb.owlapi.model.OWLOntologyCreationException;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+
+public interface KReSRegistryLoader {
+
+	
+	public Set<OWLOntology> gatherOntologies(RegistryItem registryItem,
+			OWLOntologyManager manager, boolean recurseRegistries)
+			throws OWLOntologyCreationException;
+			
+	public RegistryLibrary getLibrary(Registry reg, IRI libraryID);
+	
+	public Object getParent(Object child);
+
+	public boolean hasChildren(Object parent);
+
+	public boolean hasLibrary(Registry reg, IRI libraryID);
+
+//	public boolean isPrintingLoadedOntologies();
+
+	public void loadLocations() throws RegistryContentException;
+	
+	
+	/**
+	 * The ontology at <code>physicalIRI</code> may in turn include more than
+	 * one registry.
+	 * 
+	 * @param physicalIRI
+	 * @return
+	 */
+	public Set<Registry> loadRegistriesEager(IRI physicalIRI);
+
+//	public void setPrintLoadedOntologies(boolean doPrint);
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/io/IRIRegistrySource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/io/IRIRegistrySource.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/io/IRIRegistrySource.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/io/IRIRegistrySource.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,60 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.registry.io;
+
+import java.io.InputStream;
+import java.io.Reader;
+
+import org.semanticweb.owlapi.model.IRI;
+
+public class IRIRegistrySource implements XDRegistrySource {
+
+	protected IRI iri;
+
+	public IRIRegistrySource(IRI physicalIRI) {
+		if (physicalIRI == null)
+			throw new RuntimeException(
+					"Cannot instantiate IRI registry source on null IRI.");
+		this.iri = physicalIRI;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.stlab.xd.registry.io.XDRegistrySource#getInputStream()
+	 */
+	@Override
+	public InputStream getInputStream() {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.stlab.xd.registry.io.XDRegistrySource#getPhysicalIRI()
+	 */
+	@Override
+	public IRI getPhysicalIRI() {
+		return iri;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.stlab.xd.registry.io.XDRegistrySource#getReader()
+	 */
+	@Override
+	public Reader getReader() {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.stlab.xd.registry.io.XDRegistrySource#isInputStreamAvailable()
+	 */
+	@Override
+	public boolean isInputStreamAvailable() {
+		return false;
+	}
+
+	@Override
+	public boolean isReaderAvailable() {
+		return false;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/io/XDRegistrySource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/io/XDRegistrySource.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/io/XDRegistrySource.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/io/XDRegistrySource.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,29 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.registry.io;
+
+import java.io.InputStream;
+import java.io.Reader;
+
+import org.semanticweb.owlapi.model.IRI;
+
+public interface XDRegistrySource {
+	/**
+	 * Each invocation will return a new InputStream.
+	 * 
+	 * @return
+	 */
+	public InputStream getInputStream();
+
+	public IRI getPhysicalIRI();
+
+	/**
+	 * Each invocation will return a new Reader.
+	 * 
+	 * @return
+	 */
+	public Reader getReader();
+
+	public boolean isInputStreamAvailable();
+
+	public boolean isReaderAvailable();
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/AbstractRegistryItem.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/AbstractRegistryItem.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/AbstractRegistryItem.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/AbstractRegistryItem.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,81 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.registry.models;
+
+import java.net.URL;
+
+
+
+public abstract class AbstractRegistryItem implements RegistryItem {
+	private URL url;
+	private String name;
+	private RegistryLibrary parent;
+
+	public AbstractRegistryItem(String name) {
+		setName(name);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.stlab.xd.registry.models.RegistryItem#setURL(java.net.URL)
+	 */
+	public void setURL(URL url) {
+		this.url = url;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.stlab.xd.registry.models.RegistryItem#getName()
+	 */
+	public String getName() {
+		return this.name;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.stlab.xd.registry.models.RegistryItem#getURL()
+	 */
+	public URL getURL() {
+		return this.url;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.stlab.xd.registry.models.RegistryItem#setParent(org.stlab.xd.registry
+	 * .models.RegistryLibrary)
+	 */
+	public void setParent(RegistryLibrary parent) {
+		this.parent = parent;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.stlab.xd.registry.models.RegistryItem#getParent()
+	 */
+	public RegistryLibrary getParent() {
+		return parent;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.stlab.xd.registry.models.RegistryItem#toString()
+	 */
+	@Override
+	public String toString() {
+		return getName();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.stlab.xd.registry.models.RegistryItem#setName(java.lang.String)
+	 */
+	public void setName(String string) {
+		this.name = string;
+	}
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/Registry.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/Registry.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/Registry.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/Registry.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,31 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.registry.models;
+
+
+public class Registry extends RegistryLibrary {
+
+	private String message = "";
+
+	public Registry(String name) {
+		super(name);
+	}
+
+	public void setError(String message) {
+		this.message = message;
+	}
+
+	public String getName() {
+		return super.getName() + getError();
+	}
+
+	public String getError() {
+		return this.message;
+	}
+
+	public boolean isOK() {
+		return this.getError().equals("");
+	}
+
+	public boolean isError() {
+		return !isOK();
+	}
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryContentException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryContentException.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryContentException.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryContentException.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,13 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.registry.models;
+
+public class RegistryContentException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	public RegistryContentException(Throwable cause) {
+		initCause(cause);
+	}
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryItem.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryItem.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryItem.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryItem.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,25 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.registry.models;
+
+import java.net.URL;
+
+public interface RegistryItem {
+
+	public abstract String getName();
+
+	public abstract RegistryLibrary getParent();
+
+	public abstract URL getURL();
+
+	public abstract boolean isLibrary();
+
+	public abstract boolean isOntology();
+
+	public abstract void setName(String string);
+
+	public abstract void setParent(RegistryLibrary parent);
+
+	public abstract void setURL(URL url);
+
+	public abstract String toString();
+
+}
\ No newline at end of file

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryLibrary.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryLibrary.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryLibrary.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryLibrary.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,48 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.registry.models;
+
+
+import java.util.ArrayList;
+
+
+public class RegistryLibrary extends AbstractRegistryItem {
+	
+	private ArrayList<AbstractRegistryItem> children;
+
+	public RegistryLibrary(String name) {
+		super(name);
+		children = new ArrayList<AbstractRegistryItem>();
+	}
+
+	public void addChild(AbstractRegistryItem child) {
+		children.add(child);
+		child.setParent(this);
+	}
+
+	public void removeChild(RegistryItem child) {
+		children.remove(child);
+		child.setParent(null);
+	}
+
+	public void removeChildren(){
+		children = new ArrayList<AbstractRegistryItem>();
+	}
+	public RegistryItem[] getChildren() {
+		return children
+				.toArray(new AbstractRegistryItem[children.size()]);
+	}
+
+	public boolean hasChildren() {
+		return children.size() > 0;
+	}
+
+	@Override
+	public boolean isLibrary() {
+		return true;
+	}
+
+	@Override
+	public boolean isOntology() {
+		return false;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryOntology.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryOntology.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryOntology.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryOntology.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,20 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.registry.models;
+
+
+
+public class RegistryOntology extends AbstractRegistryItem {
+
+	public RegistryOntology(String name) {
+		super(name);
+	}
+
+	@Override
+	public boolean isLibrary() {
+		return false;
+	}
+
+	@Override
+	public boolean isOntology() {
+		return true;
+	}
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/DuplicateSessionIDException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/DuplicateSessionIDException.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/DuplicateSessionIDException.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/DuplicateSessionIDException.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,34 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.session;
+
+import org.apache.stanbol.ontologymanager.ontonet.api.DuplicateIDException;
+import org.semanticweb.owlapi.model.IRI;
+
+
+/**
+ * Thrown when attempting to create a KReSSession by forcing a session ID that
+ * is already registered, even if it used to be associated to a session that has
+ * been destroyed.
+ * 
+ * @author alessandro
+ * 
+ */
+public class DuplicateSessionIDException extends DuplicateIDException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 3548783975623103351L;
+
+	public DuplicateSessionIDException(IRI dupe) {
+		super(dupe);
+	}
+
+	public DuplicateSessionIDException(IRI dupe, String message) {
+		super(dupe, message);
+	}
+
+	public DuplicateSessionIDException(IRI dupe, Throwable cause) {
+		super(dupe, cause);
+	}
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSession.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSession.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSession.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSession.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,84 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.session;
+
+import org.semanticweb.owlapi.model.IRI;
+
+/**
+ * Note that KReS sessions are possibly disjoint with HTTP sessions or the like.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface KReSSession extends SessionListenable {
+
+	/**
+	 * The states a KReS session can be in: ACTIVE (for running sessions),
+	 * HALTED (for inactive sessions that may later be activated, e.g. when a
+	 * user logs in), ZOMBIE (inactive and bound for destruction, no longer
+	 * referenceable).
+	 * 
+	 * @author alessandro
+	 * 
+	 */
+	public enum State {
+		/**
+		 * Running session
+		 */
+		ACTIVE,
+		/**
+		 * inactive sessions that may later be activated
+		 */
+		HALTED,
+		/**
+		 * Inactive and bound for destruction, no longer referenceable
+		 */
+		ZOMBIE
+	}
+
+	/**
+	 * Closes this KReS Session irreversibly. Most likely includes setting the
+	 * state to ZOMBIE.
+	 */
+	public void close() throws NonReferenceableSessionException;
+
+	/**
+	 * Returns the unique Internationalized Resource Identifier (IRI) that
+	 * identifies this KReS session.<br>
+	 * <br>
+	 * NOTE: There is no set method for the session ID as it is assumed to be
+	 * set in its constructor once and for all.
+	 * 
+	 * @return the IRI that identifies this session
+	 */
+	public IRI getID();
+
+	/**
+	 * Returns the current state of this KReS session.
+	 * 
+	 * @return the state of this session
+	 */
+	public State getSessionState();
+
+	/**
+	 * Equivalent to <code>getState() == State.ACTIVE</code>.
+	 * 
+	 * @return true iff this session is in the ACTIVE state
+	 */
+	public boolean isActive();
+	
+	public void open() throws NonReferenceableSessionException;
+
+	/**
+	 * Sets the KReS session as ACTIVE if <code>active</code> is true, INACTIVE
+	 * otherwise. The state set is returned, which should match the input state
+	 * unless an error occurs.<br>
+	 * <br>
+	 * Should throw an exception if this session is in a ZOMBIE state.
+	 * 
+	 * @param active
+	 *            the desired activity state for this session
+	 * @return the resulting state of this KReS session
+	 */
+	public State setActive(boolean active)
+			throws NonReferenceableSessionException;
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSessionIDGenerator.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSessionIDGenerator.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSessionIDGenerator.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSessionIDGenerator.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,56 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.session;
+
+import java.util.Set;
+
+import org.semanticweb.owlapi.model.IRI;
+
+/**
+ * Implementations of this interface provide algorithms for generating valid
+ * identifiers for KReS sessions. These algorithms should take into account the
+ * need for excluding existing session IDs.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface KReSSessionIDGenerator {
+
+	/**
+	 * Generates a new context-free session ID. Whether this causes duplicate
+	 * IDs, it should be care of the object that invoked this method to check
+	 * it.
+	 * 
+	 * @return the newly generated session ID.
+	 */
+	public IRI createSessionID();
+
+	/**
+	 * Generates a new session ID that is different from any IRI in the
+	 * <code>exclude</code> set. Whether this causes duplicate IDs (supposing
+	 * the <code>exclude</code> set does not include all of them), it should be
+	 * care of the object that invoked this method to check it.
+	 * 
+	 * @param exclude
+	 *            the set of IRIs none of which the generate ID must be equal
+	 *            to.
+	 * @return the newly generated session ID.
+	 */
+	public IRI createSessionID(Set<IRI> exclude);
+
+	/**
+	 * Returns the base IRI for all generated IDs to start with. It should be
+	 * used by all <code>createSessionID()</code> methods, or ignore if null.
+	 * 
+	 * @param baseIRI
+	 *            the base IRI.
+	 */
+	public IRI getBaseIRI();
+
+	/**
+	 * Sets the base IRI for all generated IDs to start with. It should be used
+	 * by all <code>createSessionID()</code> methods, or ignore if null.
+	 * 
+	 * @param baseIRI
+	 *            the base IRI.
+	 */
+	public void setBaseIRI(IRI baseIRI);
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSessionManager.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSessionManager.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSessionManager.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/KReSSessionManager.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,88 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.session;
+
+import java.io.OutputStream;
+import java.util.Set;
+
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SessionOntologySpace;
+import org.semanticweb.owlapi.model.IRI;
+
+
+/**
+ * Manages KReS session objects via CRUD-like operations. A
+ * <code>SessionManager</code> maintains in-memory storage of KReS sessions,
+ * creates new ones and either destroys or stores existing ones persistently.
+ * All KReS sessions are managed via unique identifiers of the
+ * <code>org.semanticweb.owlapi.model.IRI</code> type.<br>
+ * <br>
+ * NOTE: implementations should be synchronized, or document whenever they are
+ * not.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface KReSSessionManager extends SessionListenable {
+
+	public Set<IRI> getRegisteredSessionIDs();
+
+	/**
+	 * Generates AND REGISTERS a new KReS session and assigns a unique session
+	 * ID generated internally.
+	 * 
+	 * @return the generated KReS session
+	 */
+	public KReSSession createSession();
+
+	/**
+	 * Generates AND REGISTERS a new KReS session and tries to assign it the
+	 * supplied session ID. If a session with that ID is already registered, the
+	 * new session is <i>not</i> created and a
+	 * <code>DuplicateSessionIDException</code> is thrown.
+	 * 
+	 * @param sessionID
+	 *            the IRI that uniquely identifies the session
+	 * @return the generated KReS session
+	 * @throws DuplicateSessionIDException
+	 *             if a KReS session with that sessionID is already registered
+	 */
+	public KReSSession createSession(IRI sessionID)
+			throws DuplicateSessionIDException;
+
+	/**
+	 * Deletes the KReS session identified by the supplied sessionID and
+	 * releases its resources.
+	 * 
+	 * @param sessionID
+	 *            the IRI that uniquely identifies the session
+	 */
+	public void destroySession(IRI sessionID);
+
+	/**
+	 * Retrieves the unique KReS session identified by <code>sessionID</code>.
+	 * 
+	 * @param sessionID
+	 *            the IRI that uniquely identifies the session
+	 * @return the unique KReS session identified by <code>sessionID</code>
+	 */
+	public KReSSession getSession(IRI sessionID);
+
+	/**
+	 * Returns the ontology space associated with this session.
+	 * 
+	 * @return the session space
+	 */
+	public Set<SessionOntologySpace> getSessionSpaces(IRI sessionID)
+			throws NonReferenceableSessionException;
+
+	/**
+	 * Stores the KReS session identified by <code>sessionID</code> using the
+	 * output stream <code>out</code>.
+	 * 
+	 * @param sessionID
+	 *            the IRI that uniquely identifies the session
+	 * @param out
+	 *            the output stream to store the session
+	 */
+	public void storeSession(IRI sessionID, OutputStream out)
+			throws NonReferenceableSessionException;
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/NonReferenceableSessionException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/NonReferenceableSessionException.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/NonReferenceableSessionException.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/NonReferenceableSessionException.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,29 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.session;
+
+/**
+ * Thrown whenever an attempt to access a KReS session that is bound for removal
+ * is detected.
+ * 
+ * @author alessandro
+ * 
+ */
+public class NonReferenceableSessionException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1642512088759774124L;
+
+	public NonReferenceableSessionException() {
+
+	}
+
+	public NonReferenceableSessionException(String message) {
+		super(message);
+	}
+
+	public NonReferenceableSessionException(Throwable cause) {
+		initCause(cause);
+	}
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionEvent.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionEvent.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionEvent.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionEvent.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,53 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.session;
+
+/**
+ * An event that encompasses a change in the state of a KReS session.
+ * 
+ * @author alessandro
+ * 
+ */
+public class SessionEvent {
+
+	public static enum OperationType {
+		ACTIVATE, CLOSE, CREATE, DEACTIVATE, KILL, STORE;
+	};
+
+	/**
+	 * The KReS session affected by this event.
+	 */
+	private KReSSession affectedSession;
+
+	private OperationType operationType;
+
+	public OperationType getOperationType() {
+		return operationType;
+	}
+
+	/**
+	 * Creates a new instance of SessionEvent.
+	 * 
+	 * @param session
+	 *            the KReS session affected by this event
+	 */
+	public SessionEvent(KReSSession session, OperationType operationType)
+			throws Exception {
+		if (operationType == null)
+			throw new Exception(
+					"No operation type specified for this session event.");
+		if (session == null)
+			throw new Exception(
+					"No KReS session specified for this session event.");
+		this.operationType = operationType;
+		this.affectedSession = session;
+	}
+
+	/**
+	 * Returns the KReS session affected by this event.
+	 * 
+	 * @return the affected KReS session
+	 */
+	public KReSSession getSession() {
+		return affectedSession;
+	}
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionListenable.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionListenable.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionListenable.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionListenable.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,38 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.session;
+
+import java.util.Collection;
+
+public interface SessionListenable {
+
+	/**
+	 * Adds the given SessionListener to the pool of registered listeners.
+	 * 
+	 * @param listener
+	 *            the session listener to be added
+	 */
+	public void addSessionListener(SessionListener listener);
+
+	/**
+	 * Clears the pool of registered session listeners.
+	 */
+	public void clearSessionListeners();
+
+	/**
+	 * Returns all the registered session listeners. It is up to developers to
+	 * decide whether implementations should return sets (unordered but without
+	 * redundancy), lists (e.g. in the order they wer registered but potentially
+	 * redundant) or other data structures that implement {@link Collection}.
+	 * 
+	 * @return a collection of registered session listeners.
+	 */
+	public Collection<SessionListener> getSessionListeners();
+
+	/**
+	 * Removes the given SessionListener from the pool of active listeners.
+	 * 
+	 * @param listener
+	 *            the session listener to be removed
+	 */
+	public void removeSessionListener(SessionListener listener);
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionListener.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionListener.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionListener.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionListener.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,20 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.session;
+
+/**
+ * Objects that want to listen to events affecting KReS sessions should
+ * implement this interface and add themselves as listener to a manager.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface SessionListener {
+
+	/**
+	 * Called whenever an event affecting a KReS session is fired.
+	 * 
+	 * @param event
+	 *            the session event.
+	 */
+	public void sessionChanged(SessionEvent event);
+
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionManager.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionManager.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionManager.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/session/SessionManager.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,117 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.session;
+
+import java.io.OutputStream;
+import java.util.Collection;
+import java.util.Set;
+
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SessionOntologySpace;
+import org.semanticweb.owlapi.model.IRI;
+
+
+/**
+ * Manages KReS session objects via CRUD-like operations. A
+ * <code>SessionManager</code> maintains in-memory storage of KReS sessions,
+ * creates new ones and either destroys or stores existing ones persistently.
+ * All KReS sessions are managed via unique identifiers of the
+ * <code>org.semanticweb.owlapi.model.IRI</code> type.<br>
+ * <br>
+ * NOTE: implementations should be synchronized, or document whenever they are
+ * not.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface SessionManager {
+
+	/**
+	 * Adds the given SessionListener to the pool of registered listeners.
+	 * 
+	 * @param listener
+	 *            the session listener to be added
+	 */
+	public void addSessionListener(SessionListener listener);
+
+	/**
+	 * Clears the pool of registered session listeners.
+	 */
+	public void clearSessionListeners();
+
+	/**
+	 * Generates a new KReS session and assigns a unique session ID generated
+	 * internally.
+	 * 
+	 * @return the generated KReS session
+	 */
+	public KReSSession createSession();
+
+	/**
+	 * Generates a new KReS session and tries to assign it the supplied session
+	 * ID. If a session with that ID is already registered, the new session is
+	 * <i>not</i> created and a <code>DuplicateSessionIDException</code> is
+	 * thrown.
+	 * 
+	 * @param sessionID
+	 *            the IRI that uniquely identifies the session
+	 * @return the generated KReS session
+	 * @throws DuplicateSessionIDException
+	 *             if a KReS session with that sessionID is already registered
+	 */
+	public KReSSession createSession(IRI sessionID)
+			throws DuplicateSessionIDException;
+
+	/**
+	 * Deletes the KReS session identified by the supplied sessionID and
+	 * releases its resources.
+	 * 
+	 * @param sessionID
+	 *            the IRI that uniquely identifies the session
+	 */
+	public void destroySession(IRI sessionID);
+
+	/**
+	 * Retrieves the unique KReS session identified by <code>sessionID</code>.
+	 * 
+	 * @param sessionID
+	 *            the IRI that uniquely identifies the session
+	 * @return the unique KReS session identified by <code>sessionID</code>
+	 */
+	public KReSSession getSession(IRI sessionID);
+
+	/**
+	 * Returns all the registered session listeners. It is up to developers to
+	 * decide whether implementations should return sets (unordered but without
+	 * redundancy), lists (e.g. in the order they wer registered but potentially
+	 * redundant) or other data structures that implement {@link Collection}.
+	 * 
+	 * @return a collection of registered session listeners.
+	 */
+	public Collection<SessionListener> getSessionListeners();
+
+	/**
+	 * Returns the ontology space associated with this session.
+	 * 
+	 * @return the session space
+	 */
+	public Set<SessionOntologySpace> getSessionSpaces(IRI sessionID)
+			throws NonReferenceableSessionException;
+
+	/**
+	 * Removes the given SessionListener from the pool of active listeners.
+	 * 
+	 * @param listener
+	 *            the session listener to be removed
+	 */
+	public void removeSessionListener(SessionListener listener);
+
+	/**
+	 * Stores the KReS session identified by <code>sessionID</code> using the
+	 * output stream <code>out</code>.
+	 * 
+	 * @param sessionID
+	 *            the IRI that uniquely identifies the session
+	 * @param out
+	 *            the output stream to store the session
+	 */
+	public void storeSession(IRI sessionID, OutputStream out);
+
+}

Propchange: incubator/stanbol/trunk/kres/ontologymanager/store/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Mar 15 18:37:12 2011
@@ -0,0 +1,2 @@
+.project
+target

Added: incubator/stanbol/trunk/kres/ontologymanager/store/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/store/pom.xml?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/store/pom.xml (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/store/pom.xml Tue Mar 15 18:37:12 2011
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>eu.iksproject</groupId>
+		<artifactId>eu.iksproject.kres.parent</artifactId>
+		<version>0.7</version>
+		<relativePath>../../eu.iksproject.kres.parent</relativePath>
+	</parent>
+
+	<groupId>org.apache.stanbol</groupId>
+	<artifactId>org.apache.stanbol.ontologymanager.store</artifactId>
+	<packaging>bundle</packaging>
+	<version>${stanbol-version}</version>
+
+	<name>Apache Stanbol Ontology Storage Manager</name>
+	<description>
+		Provides ontology storage interfaces with triple/quad 
+		stores and content repositories.
+	</description>
+
+	<inceptionYear>2010</inceptionYear>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+				<configuration>
+					<instructions>
+						<Bundle-ClassPath>
+							.,
+							OSGI-INF
+						</Bundle-ClassPath>
+						<Export-Package>
+							org.apache.stanbol.ontologymanager.store.*;version=${stanbol-version}
+						</Export-Package>
+						<Import-Package>
+							com.hp.hpl.jena.ontology,
+							com.hp.hpl.jena.util,
+							com.hp.hpl.jena.rdf.model,
+							javax.xml.namespace,
+							javax.xml.parsers,
+							javax.xml.xpath,
+							org.apache.clerezza.rdf.core.*,
+							org.osgi.service.component,
+							org.semanticweb.owlapi.*,
+							org.slf4j,
+							org.w3c.dom,
+							org.xml.sax,
+							*
+						</Import-Package>
+						<Private-Package />
+						<_nouses>true</_nouses>
+					</instructions>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-scr-plugin</artifactId>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+
+		<!-- KReS deps -->
+		<dependency>
+			<groupId>eu.iksproject</groupId>
+			<artifactId>eu.iksproject.kres.shared.transformation</artifactId>
+			<version>${kres-version}</version>
+		</dependency>
+		<dependency>
+			<groupId>owlapi</groupId>
+			<artifactId>owlapi</artifactId>
+			<version>3.0.0</version>
+		</dependency>
+
+		<!-- OSGi deps -->
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.core</artifactId>
+			<version>4.1.0</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.compendium</artifactId>
+			<version>4.1.0</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.scr.annotations</artifactId>
+			<version>1.2.0</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- Persistence deps -->
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>org.apache.clerezza.rdf.core</artifactId>
+			<version>0.12-incubating-SNAPSHOT</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- WebService deps -->
+		<dependency>
+			<groupId>com.sun.jersey</groupId>
+			<artifactId>jersey-client</artifactId>
+			<version>${jersey-version}</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- Testing deps -->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.4</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>1.5.2</version>
+			<type>jar</type>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-simple</artifactId>
+			<version>1.5.2</version>
+			<type>jar</type>
+			<scope>provided</scope>
+		</dependency>
+
+	</dependencies>
+
+	<repositories />
+
+</project>

Added: incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/NoSuchOntologyInStoreException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/NoSuchOntologyInStoreException.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/NoSuchOntologyInStoreException.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/NoSuchOntologyInStoreException.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,22 @@
+package org.apache.stanbol.ontologymanager.store.api;
+
+import org.semanticweb.owlapi.model.IRI;
+
+public class NoSuchOntologyInStoreException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	
+	private IRI ontologyIRI;
+	
+	public NoSuchOntologyInStoreException(IRI ontologyIRI) {
+		this.ontologyIRI = ontologyIRI;
+	}
+	
+	public IRI getOntologyIRI() {
+		return ontologyIRI;
+	}
+	
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/NoSuchStoreException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/NoSuchStoreException.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/NoSuchStoreException.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/NoSuchStoreException.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,15 @@
+package org.apache.stanbol.ontologymanager.store.api;
+
+public class NoSuchStoreException extends Exception {
+
+	private String message;
+	
+	public NoSuchStoreException(String message) {
+		this.message = message;
+	}
+	
+	@Override
+	public String getMessage() {
+		return message;
+	}
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/OntologyStorage.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/OntologyStorage.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/OntologyStorage.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/OntologyStorage.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,70 @@
+package org.apache.stanbol.ontologymanager.store.api;
+
+import java.util.Set;
+
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntology;
+
+/**
+ * An interface providing the basic, implementation-independent storage
+ * functions for OWL ontologies.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface OntologyStorage {
+
+	/**
+	 * Clears the ontology storage system of all it content.
+	 */
+	public void clear();
+
+	/**
+	 * Removes every occurrence of the ontology identified by {@code ontologyId}
+	 * from the storage system.
+	 * 
+	 * @param ontologyId
+	 *            the IRI that identifies the ontology to be deleted.
+	 */
+	public void delete(IRI ontologyId);
+
+	/**
+	 * Removes every occurrence of the ontologies identified by {@code
+	 * ontologyIds} from the storage system.
+	 * 
+	 * @param ontologyId
+	 *            the IRIs that identify the ontologies to be deleted.
+	 */
+	public void deleteAll(Set<IRI> ontologyIds);
+
+	/**
+	 * Obtains an {@code OWLOntology} representation of the ontology logically
+	 * identified by {@code ontologyId}. How the ontology is fetched is at the
+	 * discretion of implementations, which may arbitrarily try to physically
+	 * dereference the IRI or use it as an identifier to retrieve the ontlology
+	 * from a triplestore.
+	 * 
+	 * @param ontologyId
+	 *            the <i<logical</i> identifier of the ontology.
+	 * @return an {@code OWLOntology} representation of the ontology.
+	 */
+	public OWLOntology load(IRI ontologyId);
+
+	/**
+	 * Saves the {@code OWLOntology} object to a persistence space.
+	 * 
+	 * @param o
+	 *            the ontology to be stored.
+	 */
+	public void store(OWLOntology o);
+	
+	public void store(OWLOntology o, IRI ontologyID);
+	
+	public OWLOntology sparqlConstruct(String sparql, String datasetURI);
+	
+	public Set<IRI> listGraphs();
+	
+	public OWLOntology getGraph(IRI ontologyID) throws NoSuchStoreException;
+	
+	
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/OntologyStoreProvider.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/OntologyStoreProvider.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/OntologyStoreProvider.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/api/OntologyStoreProvider.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,23 @@
+package org.apache.stanbol.ontologymanager.store.api;
+
+import java.util.Collection;
+
+public interface OntologyStoreProvider {
+
+	
+	public void registerOntologyStorage(OntologyStorage ontologyStorage);
+	
+	public void unregisterOntologyStorage(Class<? extends OntologyStorage>  ontologyStorage);
+	
+	public void activateOntologyStorage(OntologyStorage ontologyStorage);
+	
+	public void deactivateOntologyStorage();
+	
+	public boolean isActiveOntologyStorage(OntologyStorage ontologyStorage);
+	
+	public OntologyStorage getActiveOntologyStorage();
+	
+	public Collection<OntologyStorage> listOntologyStorages();
+	
+	
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/impl/ClerezzaStorage.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/impl/ClerezzaStorage.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/impl/ClerezzaStorage.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/impl/ClerezzaStorage.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,224 @@
+package org.apache.stanbol.ontologymanager.store.impl;
+
+import java.util.Dictionary;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Set;
+
+import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.core.access.WeightedTcProvider;
+import org.apache.clerezza.rdf.core.impl.SimpleGraph;
+import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
+import org.apache.clerezza.rdf.core.sparql.ParseException;
+import org.apache.clerezza.rdf.core.sparql.QueryParser;
+import org.apache.clerezza.rdf.core.sparql.query.Query;
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.ontologymanager.store.api.NoSuchStoreException;
+import org.apache.stanbol.ontologymanager.store.api.OntologyStorage;
+import org.apache.stanbol.ontologymanager.store.api.OntologyStoreProvider;
+import org.osgi.service.component.ComponentContext;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntology;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.ontology.OntModelSpec;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.util.FileManager;
+
+import eu.iksproject.kres.shared.transformation.JenaToClerezzaConverter;
+import eu.iksproject.kres.shared.transformation.JenaToOwlConvert;
+
+@Component(immediate = true, metatype = true)
+@Service(OntologyStorage.class)
+public class ClerezzaStorage implements OntologyStorage {
+
+	private static Logger log = LoggerFactory.getLogger(ClerezzaStorage.class);
+
+	@Reference
+	OntologyStoreProvider ontologyStoreProvider;
+	
+	public static final String URI = "http://ontologydesignpatterns.org/ont/iks/oxml.owl";
+	
+	@Reference
+	TcManager tcManager;
+	
+	@Reference
+	WeightedTcProvider weightedTcProvider;
+	
+	/**
+	 * This default constructor is <b>only</b> intended to be used by the OSGI
+	 * environment with Service Component Runtime support.
+	 * <p>
+	 * DO NOT USE to manually create instances - the ClerezzaStorage instances
+	 * do need to be configured! YOU NEED TO USE
+	 * {@link #ClerezzaStorage(TcManager, WeightedTcProvider, OntologyStoreProvider)}
+	 * or its overloads, to parse the configuration and then initialise the rule
+	 * store if running outside a OSGI environment.
+	 */
+	public ClerezzaStorage() {
+
+	}
+	
+	/**
+	 * Basic constructor to be used if outside of an OSGi environment. Invokes
+	 * default constructor.
+	 * 
+	 * @param tcManager
+	 * @param wtcProvider
+	 * @param osProvider
+	 */
+	public ClerezzaStorage(TcManager tcManager, WeightedTcProvider wtcProvider,
+			OntologyStoreProvider osProvider) {
+		this();
+		this.tcManager = tcManager;
+		this.weightedTcProvider = wtcProvider;
+		this.ontologyStoreProvider = osProvider;
+		activate(new Hashtable<String, Object>());
+	}
+
+	@SuppressWarnings("unchecked")
+	@Activate
+	protected void activate(ComponentContext context) {
+		log.info("in " + ClerezzaStorage.class + " activate with context "
+				+ context);
+		if (context == null) {
+			throw new IllegalStateException("No valid" + ComponentContext.class
+					+ " parsed in activate!");
+		}
+		activate((Dictionary<String, Object>) context.getProperties());
+	}
+
+	protected void activate(Dictionary<String, Object> configuration) {
+		ontologyStoreProvider.registerOntologyStorage(this);
+	}
+
+	@Override
+	public void clear() {
+		// TODO Auto-generated method stub
+	}
+
+	@Deactivate
+	protected void deactivate(ComponentContext context) {
+		log.info("in " + ClerezzaStorage.class + " deactivate with context "
+				+ context);
+		ontologyStoreProvider.unregisterOntologyStorage(this.getClass());
+		tcManager = null;
+		weightedTcProvider = null;
+		ontologyStoreProvider = null;
+	}
+
+	@Override
+	public void delete(IRI ontologyId) {
+		// TODO Auto-generated method stub
+	}
+
+	@Override
+	public void deleteAll(Set<IRI> ontologyIds) {
+		// TODO Auto-generated method stub
+	}
+
+	@Override
+	public OWLOntology getGraph(IRI ontologyID) throws NoSuchStoreException {
+		OWLOntology ontology = null;
+
+		if (tcManager != null) {
+			MGraph mGraph = tcManager.getMGraph(new UriRef(ontologyID
+					.toString()));
+			JenaToOwlConvert jowl = new JenaToOwlConvert();
+			OntModel ontModel = ModelFactory.createOntologyModel(
+					OntModelSpec.OWL_DL_MEM, FileManager.get().loadModel(
+					    URI));
+			ontModel.add(JenaToClerezzaConverter
+					.clerezzaMGraphToJenaModel(mGraph));
+			ontology = jowl.ModelJenaToOwlConvert(ontModel, "RDF/XML");
+			// ontology =
+			// OWLAPIToClerezzaConverter.clerezzaMGraphToOWLOntology(mGraph);
+
+		} else {
+			throw new NoSuchStoreException(
+					"No store registered or activated in the environment.");
+		}
+		return ontology;
+	}
+
+	@Override
+	public Set<IRI> listGraphs() {
+
+		Set<IRI> iris = null;
+		Set<UriRef> uriRefs = tcManager.listTripleCollections();
+		if (uriRefs != null) {
+			iris = new HashSet<IRI>();
+			for (UriRef uriRef : uriRefs) {
+				iris.add(IRI.create(uriRef.toString()));
+			}
+		}
+		return iris;
+
+	}
+
+	@Override
+	public OWLOntology load(IRI ontologyId) {
+		MGraph triples = TcManager.getInstance().getMGraph(
+				new UriRef(ontologyId.toString()));
+		Model om = JenaToClerezzaConverter.clerezzaMGraphToJenaModel(triples);
+		JenaToOwlConvert converter = new JenaToOwlConvert();
+		return converter.ModelJenaToOwlConvert(om, "RDF/XML");
+	}
+	
+	@Override
+	public OWLOntology sparqlConstruct(String sparql, String datasetURI) {
+		
+		Query query;
+		
+		MGraph mGraph = new SimpleMGraph();
+		try {
+			query = QueryParser.getInstance().parse(sparql);
+			
+			UriRef datasetUriRef = new UriRef(datasetURI);
+			MGraph dataset = weightedTcProvider.getMGraph(datasetUriRef);
+			
+			mGraph.addAll((SimpleGraph) tcManager.executeSparqlQuery(query,
+					dataset));
+			
+		} catch (ParseException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		Model om = JenaToClerezzaConverter.clerezzaMGraphToJenaModel(mGraph);
+		JenaToOwlConvert converter = new JenaToOwlConvert();
+		return converter.ModelJenaToOwlConvert(om, "RDF/XML");
+	}
+
+	@Override
+	public void store(OWLOntology o) {
+		
+		JenaToOwlConvert converter = new JenaToOwlConvert();
+		OntModel om = converter.ModelOwlToJenaConvert(o, "RDF/XML");
+		MGraph mg = JenaToClerezzaConverter.jenaModelToClerezzaMGraph(om);
+		// MGraph mg = OWLAPIToClerezzaConverter.owlOntologyToClerezzaMGraph(o);
+		MGraph mg2 = tcManager.createMGraph(new UriRef(o.getOntologyID()
+				.getOntologyIRI().toString()));
+		mg2.addAll(mg);
+	}
+	
+	@Override
+	public void store(OWLOntology o, IRI ontologyID) {
+			
+		JenaToOwlConvert converter = new JenaToOwlConvert();
+		OntModel om = converter.ModelOwlToJenaConvert(o, "RDF/XML");
+		MGraph mg = JenaToClerezzaConverter.jenaModelToClerezzaMGraph(om);
+		// MGraph mg = OWLAPIToClerezzaConverter.owlOntologyToClerezzaMGraph(o);
+		MGraph mg2 = tcManager.createMGraph(new UriRef(ontologyID.toString()));
+		mg2.addAll(mg);
+	}
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/impl/OntologyStorageProviderImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/impl/OntologyStorageProviderImpl.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/impl/OntologyStorageProviderImpl.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/store/src/main/java/org/apache/stanbol/ontologymanager/store/impl/OntologyStorageProviderImpl.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,141 @@
+package org.apache.stanbol.ontologymanager.store.impl;
+
+import java.util.Collection;
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.ontologymanager.store.api.OntologyStorage;
+import org.apache.stanbol.ontologymanager.store.api.OntologyStoreProvider;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Component(immediate = true, metatype = true)
+@Service(OntologyStoreProvider.class)
+public class OntologyStorageProviderImpl implements OntologyStoreProvider {
+	
+	public static final String _ACTIVE_STORAGE_DEFAULT = "eu.iksproject.kres.storage.ClerezzaStorage";
+
+	@Property(value = _ACTIVE_STORAGE_DEFAULT)
+    public static final String ACTIVE_STORAGE = "activeStorage";
+
+	private static Logger log = LoggerFactory
+			.getLogger(OntologyStorageProviderImpl.class);
+
+	private OntologyStorage activeOntologyStorage;
+	/*
+	 * For safety in non-OSGi environments, we initially set this variable to
+	 * its default value.
+	 */
+	private String activeStorage = _ACTIVE_STORAGE_DEFAULT;
+	private Hashtable<String, OntologyStorage> registeredStorages;
+
+	/**
+	 * This default constructor is <b>only</b> intended to be used by the OSGI
+	 * environment with Service Component Runtime support.
+	 * <p>
+	 * DO NOT USE to manually create instances - the OntologyStorageProviderImpl
+	 * instances do need to be configured! YOU NEED TO USE
+	 * {@link #OntologyStorageProviderImpl(Dictionary)} or its overloads, to
+	 * parse the configuration and then initialise the rule store if running
+	 * outside a OSGI environment.
+	 */
+	public OntologyStorageProviderImpl() {
+	
+	}
+
+	/**
+	 * Basic constructor to be used if outside of an OSGi environment. Invokes
+	 * default constructor.
+	 * 
+	 * @param configuration
+	 */
+	public OntologyStorageProviderImpl(Dictionary<String, Object> configuration) {
+		this();
+		activate(configuration);
+	}
+
+	/**
+	 * Used to configure an instance within an OSGi container.
+	 */
+	@SuppressWarnings("unchecked")
+	@Activate
+	protected void activate(ComponentContext context) {
+		log.info("in " + OntologyStorageProviderImpl.class
+				+ " activate with context " + context);
+		if (context == null) {
+			throw new IllegalStateException("No valid" + ComponentContext.class
+					+ " parsed in activate!");
+		}
+		activate((Dictionary<String, Object>) context.getProperties());
+	}
+
+	/**
+	 * Internally used to configure an instance (within and without an OSGi
+	 * container.
+	 * 
+	 * @param configuration
+	 */
+	protected void activate(Dictionary<String, Object> configuration) {
+		String tStorage = (String) configuration.get(ACTIVE_STORAGE);
+		if (tStorage != null)
+			this.activeStorage = tStorage;
+		registeredStorages = new Hashtable<String, OntologyStorage>();
+	}
+	
+	@Override
+	public void activateOntologyStorage(OntologyStorage ontologyStorage) {
+		activeOntologyStorage = ontologyStorage;
+	}
+		
+	@Deactivate
+	protected void deactivate(ComponentContext context) {
+		registeredStorages = null;
+	}
+
+	@Override
+	public void deactivateOntologyStorage() {
+		activeOntologyStorage = null;
+	}
+
+	@Override
+	public OntologyStorage getActiveOntologyStorage() {
+		return activeOntologyStorage;
+	}
+
+	@Override
+	public boolean isActiveOntologyStorage(OntologyStorage ontologyStorage) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public Collection<OntologyStorage> listOntologyStorages() {
+		return registeredStorages.values();
+	}
+
+	@Override
+	public void registerOntologyStorage(OntologyStorage ontologyStorage) {
+		String storageClass = ontologyStorage.getClass().getCanonicalName();
+		registeredStorages.put(storageClass, ontologyStorage);
+		log.info("Registerd " + registeredStorages.size() + " storages -> "
+				+ storageClass);
+		log.info("Active storage class is " + activeStorage);
+		if (storageClass.equals(activeStorage)) {
+			activeOntologyStorage = ontologyStorage;
+			log.debug("Setted active storage");
+		}
+		
+	}
+
+	@Override
+	public void unregisterOntologyStorage(
+			Class<? extends OntologyStorage> ontologyStorage) {
+		registeredStorages.remove(ontologyStorage.getCanonicalName());
+	}
+}

Added: incubator/stanbol/trunk/kres/ontologymanager/store/src/test/java/org/apache/stanbol/ontologymanager/store/TestStorage.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/ontologymanager/store/src/test/java/org/apache/stanbol/ontologymanager/store/TestStorage.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/ontologymanager/store/src/test/java/org/apache/stanbol/ontologymanager/store/TestStorage.java (added)
+++ incubator/stanbol/trunk/kres/ontologymanager/store/src/test/java/org/apache/stanbol/ontologymanager/store/TestStorage.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,28 @@
+package org.apache.stanbol.ontologymanager.store;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntology;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+
+public class TestStorage {
+
+	@Test
+	public void testStoreLoad() throws Exception {
+//		OWLOntologyManager mgr = OWLManager.createOWLOntologyManager();
+//		OWLOntology o = mgr
+//				.loadOntologyFromOntologyDocument(IRI
+//						.create("http://www.ontologydesignpatterns.org/cp/owl/communities.owl"));
+//		new ClerezzaStorage().store(o);
+		assertTrue(true);
+	}
+	
+	@Test
+	public void testFiseStore() throws Exception {
+		assertTrue(true);
+	}
+
+}

Modified: incubator/stanbol/trunk/kres/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/pom.xml?rev=1081894&r1=1081893&r2=1081894&view=diff
==============================================================================
--- incubator/stanbol/trunk/kres/pom.xml (original)
+++ incubator/stanbol/trunk/kres/pom.xml Tue Mar 15 18:37:12 2011
@@ -56,14 +56,17 @@
     
 	
 	<!-- KReS APIs -->
+	<!--
 	<module>eu.iksproject.kres.api</module>
+	-->
 
 
 	<!-- KReS Reasoner -->
 	<module>eu.iksproject.kres.reasoners</module>
 
-	
+	<!--
 	<module>eu.iksproject.kres.storage.provider</module>
+	-->
 	
 	<!-- KReS manager -->
 	<module>eu.iksproject.kres.manager</module>
@@ -78,13 +81,22 @@
     <module>eu.iksproject.kres.semion.refactorer</module>
     
     <!-- Storage -->
+    <!--
     <module>eu.iksproject.kres.storage</module>
+    -->
     
     <!-- Jersey -->
     <module>eu.iksproject.kres.jersey</module>
     <!-- <module>eu.iksproject.kres.manager.jersey</module> -->
 
     <!-- Launcher -->
+    
+    <module>ontologymanager/ontonet</module>
+    <module>ontologymanager/store</module>
+    <module>reasoners/base</module>
+    <module>reengineer/base</module>
+    <module>rules/base</module>
+    <module>rules/refactor</module>
 
  </modules>
 </project>

Propchange: incubator/stanbol/trunk/kres/reasoners/base/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Mar 15 18:37:12 2011
@@ -0,0 +1 @@
+.project

Added: incubator/stanbol/trunk/kres/reasoners/base/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/reasoners/base/pom.xml?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/reasoners/base/pom.xml (added)
+++ incubator/stanbol/trunk/kres/reasoners/base/pom.xml Tue Mar 15 18:37:12 2011
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>eu.iksproject</groupId>
+		<artifactId>eu.iksproject.kres.parent</artifactId>
+		<version>0.7</version>
+		<relativePath>../../eu.iksproject.kres.parent</relativePath>
+	</parent>
+
+	<groupId>org.apache.stanbol</groupId>
+	<artifactId>org.apache.stanbol.reasoners.base</artifactId>
+	<packaging>bundle</packaging>
+	<version>${stanbol-version}</version>
+
+	<name>Apache Stanbol Reasoners</name>
+	<description>
+		The base module containing the essentials 
+		for reasoning service invocation.
+	</description>
+	
+	<inceptionYear>2010</inceptionYear>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+				<configuration>
+					<instructions>
+						<Export-Package>
+							org.apache.stanbol.reasoners.base.*;version=${stanbol-version}
+	          			</Export-Package>
+						<Import-Package>
+							org.slf4j.*;version=1.5.2,
+							*
+            			</Import-Package>
+						<_nouses>true</_nouses>
+					</instructions>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-scr-plugin</artifactId>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.scr.annotations</artifactId>
+			<version>1.2.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<!-- <version>1.5.6</version>-->
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.ibm.icu</groupId>
+			<artifactId>icu4j</artifactId>
+			<version>3.4.4</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.13</version>
+			<scope>provided</scope>
+		</dependency>
+		<!--
+		<dependency>
+			<groupId>com.hp.hpl.jena</groupId>
+			<artifactId>iri</artifactId>
+			<version>0.8</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.hp.hpl.jena</groupId>
+			<artifactId>jena</artifactId>
+			<version>2.6.2</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.hp.hpl.jena</groupId>
+			<artifactId>tdb</artifactId>
+			<version>0.8.5</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.hp.hpl.jena</groupId>
+			<artifactId>arq</artifactId>
+			<version>2.8.3</version>
+			<scope>provided</scope>
+		</dependency>
+		-->
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.4</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>xerces</groupId>
+			<artifactId>xercesImpl</artifactId>
+			<version>2.7.1</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.lucene</groupId>
+			<artifactId>lucene-core</artifactId>
+			<version>3.0.1</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>owlapi</groupId>
+			<artifactId>owlapi</artifactId>
+			<version>3.0.0</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!--
+		<dependency>
+			<groupId>eu.iksproject</groupId>
+			<artifactId>eu.iksproject.kres.shared.dependency.owlapi</artifactId>
+			<version>${kres-version}</version>
+			<type>bundle</type>
+			<scope>provided</scope>
+		</dependency>
+		-->
+		
+	</dependencies>
+
+	<repositories>
+		<repository>
+			<id>com.hp.hpl.jena</id>
+			<name>jena maven repository</name>
+			<releases>
+				<updatePolicy>interval:60</updatePolicy>
+				<checksumPolicy>warn</checksumPolicy>
+			</releases>
+			<url>http://openjena.org/repo</url>
+			<layout>default</layout>
+		</repository>
+		<!-- needed for jersey -->
+		<repository>
+			<id>maven2-repository.dev.java.net</id>
+			<name>Java.net Repository for Maven</name>
+			<url>http://download.java.net/maven/2/</url>
+		</repository>
+	</repositories>
+
+</project>

Added: incubator/stanbol/trunk/kres/reasoners/base/src/main/java/org/apache/stanbol/reasoners/base/api/InconcistencyException.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/reasoners/base/src/main/java/org/apache/stanbol/reasoners/base/api/InconcistencyException.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/reasoners/base/src/main/java/org/apache/stanbol/reasoners/base/api/InconcistencyException.java (added)
+++ incubator/stanbol/trunk/kres/reasoners/base/src/main/java/org/apache/stanbol/reasoners/base/api/InconcistencyException.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,23 @@
+package org.apache.stanbol.reasoners.base.api;
+
+/**
+ * 
+ * @author andrea.nuzzolese
+ *
+ */
+public class InconcistencyException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	public InconcistencyException(String message) {
+		super(message);
+	}
+	
+	public InconcistencyException(Throwable cause) {
+		initCause(cause);
+	}
+
+}

Added: incubator/stanbol/trunk/kres/reasoners/base/src/main/java/org/apache/stanbol/reasoners/base/api/KReSReasoner.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/kres/reasoners/base/src/main/java/org/apache/stanbol/reasoners/base/api/KReSReasoner.java?rev=1081894&view=auto
==============================================================================
--- incubator/stanbol/trunk/kres/reasoners/base/src/main/java/org/apache/stanbol/reasoners/base/api/KReSReasoner.java (added)
+++ incubator/stanbol/trunk/kres/reasoners/base/src/main/java/org/apache/stanbol/reasoners/base/api/KReSReasoner.java Tue Mar 15 18:37:12 2011
@@ -0,0 +1,41 @@
+package org.apache.stanbol.reasoners.base.api;
+
+import org.semanticweb.owlapi.model.OWLOntology;
+import org.semanticweb.owlapi.reasoner.OWLReasoner;
+
+
+/**
+ * The KReS Reasoner provides all the reasoning services to the KReS.
+ * 
+ * 
+ * @author andrea.nuzzolese
+ *
+ */
+public interface KReSReasoner {
+	
+	/**
+	 * Gets the reasoner.
+	 * 
+	 * @param ontology {@link OWLOntology}
+	 * @return the reasoner {@link OWLReasoner}.
+	 */
+	public OWLReasoner getReasoner(OWLOntology ontology);
+	
+	/**
+	 * Runs a consistency check on the ontology.
+	 * 
+	 * @param owlReasoner {@link OWLReasoner}
+	 * @return true if the ontology is consistent, false otherwise.
+	 */
+	public boolean consistencyCheck(OWLReasoner owlReasoner);
+	
+	
+	/**
+	 * Launch the reasoning on a set of rules applied to a gien ontology.
+	 * @param ontology
+	 * @param ruleOntology
+	 * @return the inferred ontology
+	 */
+	public OWLOntology runRules(OWLOntology ontology, OWLOntology ruleOntology);
+
+}

Propchange: incubator/stanbol/trunk/kres/reengineer/base/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Mar 15 18:37:12 2011
@@ -0,0 +1 @@
+.project