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