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/07/04 14:04:46 UTC

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

Author: alexdma
Date: Mon Jul  4 12:04:46 2011
New Revision: 1142637

URL: http://svn.apache.org/viewvc?rev=1142637&view=rev
Log:
STANBOL-249 :
- temp hacks for integritycheck demos: session space is automatically attached; classify writes and reads ontology back before classifying

Modified:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyScope.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SessionOntologySpace.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyScopeImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/session/ScopeSessionSynchronizer.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ONMScopeResource.java
    incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java
    incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/Classify.java
    incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyScope.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyScope.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyScope.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OntologyScope.java Mon Jul  4 12:04:46 2011
@@ -32,8 +32,9 @@ public interface OntologyScope extends S
 	 * 
 	 * @param sessionSpace
 	 *            the ontology space to be added.
+	 * @throws UnmodifiableOntologySpaceException 
 	 */
-    void addSessionSpace(OntologySpace sessionSpace, IRI sessionID);
+    void addSessionSpace(OntologySpace sessionSpace, IRI sessionID) throws UnmodifiableOntologySpaceException;
 
 	/**
 	 * Returns the core ontology space for this ontology scope. The core space

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SessionOntologySpace.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SessionOntologySpace.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SessionOntologySpace.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/SessionOntologySpace.java Mon Jul  4 12:04:46 2011
@@ -3,22 +3,23 @@ package org.apache.stanbol.ontologymanag
 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>
+ * 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.
+ * 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
-	 */
+    /**
+     * Returns the OWL ontology manager associated to this scope.
+     * 
+     * @return the associated ontology manager
+     */
     OWLOntologyManager getOntologyManager();
 
+    void attachSpace(OntologySpace space, boolean skipRoot) throws UnmodifiableOntologySpaceException;
+
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyScopeImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyScopeImpl.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyScopeImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyScopeImpl.java Mon Jul  4 12:04:46 2011
@@ -27,287 +27,276 @@ import org.slf4j.LoggerFactory;
  */
 public class OntologyScopeImpl implements OntologyScope, OntologySpaceListener {
 
-	/**
-	 * The core ontology space for this scope, always set as default.
-	 */
-	protected CoreOntologySpace coreSpace;
-
-	/**
-	 * The custom ontology space for this scope. This is optional, but cannot be
-	 * set after the scope has been setup.
-	 */
-	protected CustomOntologySpace customSpace;
-
-	/**
-	 * The unique identifier for this scope.
-	 */
-	protected IRI id = null;
-
-	private Set<ScopeOntologyListener> listeners = new HashSet<ScopeOntologyListener>();
-
-	/**
-	 * An ontology scope knows whether it's write-locked or not. Initially it is
-	 * not.
-	 */
-	protected boolean locked = false;
-
-	/**
-	 * Maps session IDs to ontology space. A single scope has at most one space
-	 * per session.
-	 */
-	protected Map<IRI, SessionOntologySpace> sessionSpaces;
-
-	public OntologyScopeImpl(IRI id, OntologySpaceFactory factory,OntologyInputSource coreRoot) {
-		this(id, factory, coreRoot,null);
-	}
-
-	public OntologyScopeImpl(IRI id,OntologySpaceFactory factory, OntologyInputSource coreRoot, 
-			OntologyInputSource customRoot) {
-		if (id == null)
-			throw new NullPointerException(
-					"Ontology scope must be identified by a non-null IRI.");
-
-		this.id = id;
-		this.coreSpace = factory.createCoreOntologySpace(id, coreRoot);
-		this.coreSpace.addOntologySpaceListener(this);
-		// let's just lock it. Once the core space is done it's done.
-		this.coreSpace.setUp();
-		// if (customRoot != null) {
-		try {
-			setCustomSpace(factory.createCustomOntologySpace(id, customRoot));
-		} catch (UnmodifiableOntologySpaceException e) {
-			// Can't happen unless the factory or space implementations are
-			// really naughty.
-			LoggerFactory
-					.getLogger(getClass())
-					.warn(
-							"KReS :: Ontology scope "
-									+ id
-									+ " was denied creation of its own custom space upon initialization! This should not happen.",
-							e);
-		}
-		this.customSpace.addOntologySpaceListener(this);
-		// }
-		sessionSpaces = new HashMap<IRI, SessionOntologySpace>();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeeu.iksproject.kres.api.manager.ontology.OntologyScope#
-	 * addOntologyScopeListener
-	 * (eu.iksproject.kres.api.manager.ontology.ScopeOntologyListener)
-	 */
-	@Override
-	public void addOntologyScopeListener(ScopeOntologyListener listener) {
-		listeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * eu.iksproject.kres.api.manager.ontology.OntologyScope#addSessionSpace
-	 * (eu.iksproject.kres.api.manager.ontology.OntologySpace,
-	 * org.semanticweb.owlapi.model.IRI)
-	 */
-	@Override
-	public synchronized void addSessionSpace(OntologySpace sessionSpace,
-			IRI sessionId) {
-		if (sessionSpace instanceof SessionOntologySpace) {
-			sessionSpaces.put(sessionId, (SessionOntologySpace) sessionSpace);
-			sessionSpace.addOntologySpaceListener(this);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeeu.iksproject.kres.api.manager.ontology.OntologyScope#
-	 * clearOntologyScopeListeners()
-	 */
-	@Override
-	public void clearOntologyScopeListeners() {
-		listeners.clear();
-	}
-
-	protected void fireOntologyAdded(IRI ontologyIri) {
-		for (ScopeOntologyListener listener : listeners)
-			listener.onOntologyAdded(this.getID(), ontologyIri);
-	}
-
-	protected void fireOntologyRemoved(IRI ontologyIri) {
-		for (ScopeOntologyListener listener : listeners)
-			listener.onOntologyRemoved(this.getID(), ontologyIri);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#getCoreSpace()
-	 */
-	@Override
-	public OntologySpace getCoreSpace() {
-		return coreSpace;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * eu.iksproject.kres.api.manager.ontology.OntologyScope#getCustomSpace()
-	 */
-	@Override
-	public OntologySpace getCustomSpace() {
-		return customSpace;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#getID()
-	 */
-	@Override
-	public IRI getID() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeeu.iksproject.kres.api.manager.ontology.OntologyScope#
-	 * getOntologyScopeListeners()
-	 */
-	@Override
-	public Collection<ScopeOntologyListener> getOntologyScopeListeners() {
-		return listeners;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * eu.iksproject.kres.api.manager.ontology.OntologyScope#getSessionSpace
-	 * (org.semanticweb.owlapi.model.IRI)
-	 */
-	@Override
-	public SessionOntologySpace getSessionSpace(IRI sessionID) {
-		return sessionSpaces.get(sessionID);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * eu.iksproject.kres.api.manager.ontology.OntologyScope#getSessionSpaces()
-	 */
-	@Override
-	public Set<OntologySpace> getSessionSpaces() {
-		return new HashSet<OntologySpace>(sessionSpaces.values());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * eu.iksproject.kres.api.manager.ontology.OntologySpaceListener#onOntologyAdded
-	 * (org.semanticweb.owlapi.model.IRI, org.semanticweb.owlapi.model.IRI)
-	 */
-	@Override
-	public void onOntologyAdded(IRI spaceId, IRI addedOntology) {
-		// Propagate events to scope listeners
-		fireOntologyAdded(addedOntology);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeeu.iksproject.kres.api.manager.ontology.OntologySpaceListener#
-	 * onOntologyRemoved(org.semanticweb.owlapi.model.IRI,
-	 * org.semanticweb.owlapi.model.IRI)
-	 */
-	@Override
-	public void onOntologyRemoved(IRI spaceId, IRI removedOntology) {
-		// Propagate events to scope listeners
-		fireOntologyRemoved(removedOntology);
-	}
-
-	@Override
-	public void removeOntologyScopeListener(ScopeOntologyListener listener) {
-		listeners.remove(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * eu.iksproject.kres.api.manager.ontology.OntologyScope#setCustomSpace(
-	 * eu.iksproject.kres.api.manager.ontology.OntologySpace)
-	 */
-	@Override
-	public synchronized void setCustomSpace(OntologySpace customSpace)
-			throws UnmodifiableOntologySpaceException {
-		if (this.customSpace != null && this.customSpace.isLocked())
-			throw new UnmodifiableOntologySpaceException(getCustomSpace());
-		else if (!(customSpace instanceof CustomOntologySpace))
-			throw new ClassCastException(
-					"supplied object is not a CustomOntologySpace instance.");
-		else {
-			this.customSpace = (CustomOntologySpace) customSpace;
-			this.customSpace.addOntologySpaceListener(this);
-			this.customSpace.attachCoreSpace(this.coreSpace, true);
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#setUp()
-	 */
-	@Override
-	public synchronized void setUp() {
-		if (locked || (customSpace != null && !customSpace.isLocked()))
-			return;
-		this.coreSpace.addOntologySpaceListener(this);
-		this.coreSpace.setUp();
-		if (this.customSpace != null) {
-			this.customSpace.addOntologySpaceListener(this);
-			this.customSpace.setUp();
-		}
-		locked = true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#tearDown()
-	 */
-	@Override
-	public synchronized void tearDown() {
-		// this.coreSpace.addOntologySpaceListener(this);
-		this.coreSpace.tearDown();
-		if (this.customSpace != null) {
-			// this.customSpace.addOntologySpaceListener(this);
-			this.customSpace.tearDown();
-		}
-		locked = false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	@Override
-	public String toString() {
-		return getID().toString();
-	}
-
-	@Override
-	public void synchronizeSpaces() {
-		// TODO Auto-generated method stub
+    /**
+     * The core ontology space for this scope, always set as default.
+     */
+    protected CoreOntologySpace coreSpace;
+
+    /**
+     * The custom ontology space for this scope. This is optional, but cannot be set after the scope has been
+     * setup.
+     */
+    protected CustomOntologySpace customSpace;
+
+    /**
+     * The unique identifier for this scope.
+     */
+    protected IRI id = null;
+
+    private Set<ScopeOntologyListener> listeners = new HashSet<ScopeOntologyListener>();
+
+    /**
+     * An ontology scope knows whether it's write-locked or not. Initially it is not.
+     */
+    protected boolean locked = false;
+
+    /**
+     * Maps session IDs to ontology space. A single scope has at most one space per session.
+     */
+    protected Map<IRI,SessionOntologySpace> sessionSpaces;
+
+    public OntologyScopeImpl(IRI id, OntologySpaceFactory factory, OntologyInputSource coreRoot) {
+        this(id, factory, coreRoot, null);
+    }
+
+    public OntologyScopeImpl(IRI id,
+                             OntologySpaceFactory factory,
+                             OntologyInputSource coreRoot,
+                             OntologyInputSource customRoot) {
+        if (id == null) throw new NullPointerException("Ontology scope must be identified by a non-null IRI.");
+
+        this.id = id;
+        this.coreSpace = factory.createCoreOntologySpace(id, coreRoot);
+        this.coreSpace.addOntologySpaceListener(this);
+        // let's just lock it. Once the core space is done it's done.
+        this.coreSpace.setUp();
+        // if (customRoot != null) {
+        try {
+            setCustomSpace(factory.createCustomOntologySpace(id, customRoot));
+        } catch (UnmodifiableOntologySpaceException e) {
+            // Can't happen unless the factory or space implementations are
+            // really naughty.
+            LoggerFactory
+                    .getLogger(getClass())
+                    .warn(
+                        "KReS :: Ontology scope "
+                                + id
+                                + " was denied creation of its own custom space upon initialization! This should not happen.",
+                        e);
+        }
+        this.customSpace.addOntologySpaceListener(this);
+        // }
+        sessionSpaces = new HashMap<IRI,SessionOntologySpace>();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @seeeu.iksproject.kres.api.manager.ontology.OntologyScope# addOntologyScopeListener
+     * (eu.iksproject.kres.api.manager.ontology.ScopeOntologyListener)
+     */
+    @Override
+    public void addOntologyScopeListener(ScopeOntologyListener listener) {
+        listeners.add(listener);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#addSessionSpace
+     * (eu.iksproject.kres.api.manager.ontology.OntologySpace, org.semanticweb.owlapi.model.IRI)
+     */
+    @Override
+    public synchronized void addSessionSpace(OntologySpace sessionSpace, IRI sessionId) throws UnmodifiableOntologySpaceException {
+        if (sessionSpace instanceof SessionOntologySpace) {
+            sessionSpaces.put(sessionId, (SessionOntologySpace) sessionSpace);
+            sessionSpace.addOntologySpaceListener(this);
+
+            if (this.getCustomSpace() != null)
+                ((SessionOntologySpace) sessionSpace).attachSpace(this.getCustomSpace(), true);
+            else
+                ((SessionOntologySpace) sessionSpace).attachSpace(this.getCoreSpace(), true);
+
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @seeeu.iksproject.kres.api.manager.ontology.OntologyScope# clearOntologyScopeListeners()
+     */
+    @Override
+    public void clearOntologyScopeListeners() {
+        listeners.clear();
+    }
+
+    protected void fireOntologyAdded(IRI ontologyIri) {
+        for (ScopeOntologyListener listener : listeners)
+            listener.onOntologyAdded(this.getID(), ontologyIri);
+    }
+
+    protected void fireOntologyRemoved(IRI ontologyIri) {
+        for (ScopeOntologyListener listener : listeners)
+            listener.onOntologyRemoved(this.getID(), ontologyIri);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#getCoreSpace()
+     */
+    @Override
+    public OntologySpace getCoreSpace() {
+        return coreSpace;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#getCustomSpace()
+     */
+    @Override
+    public OntologySpace getCustomSpace() {
+        return customSpace;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#getID()
+     */
+    @Override
+    public IRI getID() {
+        return id;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @seeeu.iksproject.kres.api.manager.ontology.OntologyScope# getOntologyScopeListeners()
+     */
+    @Override
+    public Collection<ScopeOntologyListener> getOntologyScopeListeners() {
+        return listeners;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#getSessionSpace
+     * (org.semanticweb.owlapi.model.IRI)
+     */
+    @Override
+    public SessionOntologySpace getSessionSpace(IRI sessionID) {
+        return sessionSpaces.get(sessionID);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#getSessionSpaces()
+     */
+    @Override
+    public Set<OntologySpace> getSessionSpaces() {
+        return new HashSet<OntologySpace>(sessionSpaces.values());
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologySpaceListener#onOntologyAdded
+     * (org.semanticweb.owlapi.model.IRI, org.semanticweb.owlapi.model.IRI)
+     */
+    @Override
+    public void onOntologyAdded(IRI spaceId, IRI addedOntology) {
+        // Propagate events to scope listeners
+        fireOntologyAdded(addedOntology);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @seeeu.iksproject.kres.api.manager.ontology.OntologySpaceListener#
+     * onOntologyRemoved(org.semanticweb.owlapi.model.IRI, org.semanticweb.owlapi.model.IRI)
+     */
+    @Override
+    public void onOntologyRemoved(IRI spaceId, IRI removedOntology) {
+        // Propagate events to scope listeners
+        fireOntologyRemoved(removedOntology);
+    }
+
+    @Override
+    public void removeOntologyScopeListener(ScopeOntologyListener listener) {
+        listeners.remove(listener);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#setCustomSpace(
+     * eu.iksproject.kres.api.manager.ontology.OntologySpace)
+     */
+    @Override
+    public synchronized void setCustomSpace(OntologySpace customSpace) throws UnmodifiableOntologySpaceException {
+        if (this.customSpace != null && this.customSpace.isLocked()) throw new UnmodifiableOntologySpaceException(
+                getCustomSpace());
+        else if (!(customSpace instanceof CustomOntologySpace)) throw new ClassCastException(
+                "supplied object is not a CustomOntologySpace instance.");
+        else {
+            this.customSpace = (CustomOntologySpace) customSpace;
+            this.customSpace.addOntologySpaceListener(this);
+            this.customSpace.attachCoreSpace(this.coreSpace, true);
+        }
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#setUp()
+     */
+    @Override
+    public synchronized void setUp() {
+        if (locked || (customSpace != null && !customSpace.isLocked())) return;
+        this.coreSpace.addOntologySpaceListener(this);
+        this.coreSpace.setUp();
+        if (this.customSpace != null) {
+            this.customSpace.addOntologySpaceListener(this);
+            this.customSpace.setUp();
+        }
+        locked = true;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyScope#tearDown()
+     */
+    @Override
+    public synchronized void tearDown() {
+        // this.coreSpace.addOntologySpaceListener(this);
+        this.coreSpace.tearDown();
+        if (this.customSpace != null) {
+            // this.customSpace.addOntologySpaceListener(this);
+            this.customSpace.tearDown();
+        }
+        locked = false;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        return getID().toString();
+    }
+
+    @Override
+    public void synchronizeSpaces() {
+        // TODO Auto-generated method stub
 
-	}
+    }
 
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/SessionOntologySpaceImpl.java Mon Jul  4 12:04:46 2011
@@ -3,12 +3,14 @@ package org.apache.stanbol.ontologymanag
 import java.util.Random;
 
 import org.apache.stanbol.ontologymanager.ontonet.api.io.RootOntologySource;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SessionOntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.SpaceType;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.UnmodifiableOntologySpaceException;
 import org.apache.stanbol.ontologymanager.ontonet.impl.io.ClerezzaOntologyStorage;
 import org.apache.stanbol.ontologymanager.ontonet.impl.util.StringUtils;
 import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntology;
 import org.semanticweb.owlapi.model.OWLOntologyCreationException;
 import org.semanticweb.owlapi.model.OWLOntologyManager;
 import org.slf4j.Logger;
@@ -98,4 +100,21 @@ public class SessionOntologySpaceImpl ex
 		// TODO Auto-generated method stub
 	}
 
+    @Override
+    public void attachSpace(OntologySpace space, boolean skipRoot) throws UnmodifiableOntologySpaceException {
+        if (!(space instanceof SessionOntologySpace)) {
+        OWLOntology o = space.getTopOntology();
+        // This does the append thingy
+        log.debug("Attaching " + o + " TO " + getTopOntology() + " ...");
+        try {
+            // It is in fact the addition of the core space top ontology to the
+            // custom space, with import statements and all.
+            addOntology(new RootOntologySource(o, null));
+            // log.debug("ok");
+        } catch (Exception ex) {
+            log.error("FAILED", ex);
+        }
+        }
+    }
+
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/session/ScopeSessionSynchronizer.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/session/ScopeSessionSynchronizer.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/session/ScopeSessionSynchronizer.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/session/ScopeSessionSynchronizer.java Mon Jul  4 12:04:46 2011
@@ -3,49 +3,53 @@ package org.apache.stanbol.ontologymanag
 import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyScope;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpaceFactory;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.UnmodifiableOntologySpaceException;
 import org.apache.stanbol.ontologymanager.ontonet.api.session.Session;
 import org.apache.stanbol.ontologymanager.ontonet.api.session.SessionEvent;
 import org.apache.stanbol.ontologymanager.ontonet.api.session.SessionListener;
 import org.semanticweb.owlapi.model.IRI;
+import org.slf4j.LoggerFactory;
 
 public class ScopeSessionSynchronizer implements SessionListener {
 
-	private ONManager manager;
+    private ONManager manager;
 
-	public ScopeSessionSynchronizer(ONManager manager) {
-		// WARN do not use ONManager here, as it will most probably be
-		// instantiated by it.
-		this.manager = manager;
-	}
-
-	private void addSessionSpaces(IRI sessionId) {
-		OntologySpaceFactory factory = manager
-				.getOntologySpaceFactory();
-		for (OntologyScope scope : manager.getScopeRegistry()
-				.getActiveScopes()) {
-			scope.addSessionSpace(factory.createSessionOntologySpace(scope
-					.getID()), sessionId);
-		}
-	}
-
-	@Override
-	public void sessionChanged(SessionEvent event) {
-		// System.err.println("Session " + event.getSession() + " has been "
-		// + event.getOperationType());
-		Session ses = event.getSession();
-		switch (event.getOperationType()) {
-		case CREATE:
-			ses.addSessionListener(this);
-			addSessionSpaces(ses.getID());
-			break;
-		case CLOSE:
-			break;
-		case KILL:
-			ses.removeSessionListener(this);
-			break;
-		default:
-			break;
-		}
-	}
+    public ScopeSessionSynchronizer(ONManager manager) {
+        // WARN do not use ONManager here, as it will most probably be
+        // instantiated by it.
+        this.manager = manager;
+    }
+
+    private void addSessionSpaces(IRI sessionId) {
+        OntologySpaceFactory factory = manager.getOntologySpaceFactory();
+        for (OntologyScope scope : manager.getScopeRegistry().getActiveScopes()) {
+            try {
+                scope.addSessionSpace(factory.createSessionOntologySpace(scope.getID()), sessionId);
+            } catch (UnmodifiableOntologySpaceException e) {
+                LoggerFactory.getLogger(getClass()).warn("Tried to add session to unmodifiable space ");
+                continue;
+            }
+        }
+    }
+
+    @Override
+    public void sessionChanged(SessionEvent event) {
+        // System.err.println("Session " + event.getSession() + " has been "
+        // + event.getOperationType());
+        Session ses = event.getSession();
+        switch (event.getOperationType()) {
+            case CREATE:
+                ses.addSessionListener(this);
+                addSessionSpaces(ses.getID());
+                break;
+            case CLOSE:
+                break;
+            case KILL:
+                ses.removeSessionListener(this);
+                break;
+            default:
+                break;
+        }
+    }
 
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/session/TestSessions.java Mon Jul  4 12:04:46 2011
@@ -68,7 +68,7 @@ public class TestSessions {
 	}
 
 	@Test
-	public void testCreateSessionSpaceManual() {
+	public void testCreateSessionSpaceManual() throws Exception {
 		OntologyScope scope = null;
 		try {
 			// we don't register it

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ONMScopeResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ONMScopeResource.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ONMScopeResource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/ONMScopeResource.java Mon Jul  4 12:04:46 2011
@@ -26,6 +26,7 @@ import org.apache.stanbol.commons.web.ba
 import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
 import org.apache.stanbol.ontologymanager.ontonet.api.DuplicateIDException;
 import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.BlankOntologySource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.RootOntologyIRISource;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyScope;
@@ -181,6 +182,10 @@ public class ONMScopeResource extends Ba
 		OntologyScope scope;
 		OntologyInputSource coreSrc = null, custSrc = null;
 
+		if (coreOntology==null && coreRegistry==null) {
+		    coreSrc = new BlankOntologySource();
+		}
+		
 		// First thing, check the core source.
 		try {
 			coreSrc = new OntologyRegistryIRISource(IRI.create(coreRegistry),

Modified: incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java Mon Jul  4 12:04:46 2011
@@ -17,6 +17,7 @@ import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
+import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
@@ -172,7 +173,11 @@ public class SessionResource extends Bas
          */
         OntologySpaceFactory ontologySpaceFactory = onm.getOntologySpaceFactory();
         SessionOntologySpace sessionOntologySpace = ontologySpaceFactory.createSessionOntologySpace(scopeIRI);
-        ontologyScope.addSessionSpace(sessionOntologySpace, ses.getID());
+        try {
+            ontologyScope.addSessionSpace(sessionOntologySpace, ses.getID());
+        } catch (UnmodifiableOntologySpaceException e) {
+throw new WebApplicationException(e);
+        }
 
         return Response.ok(SessionRenderer.getSessionMetadataRDFasOntology(ses)).build();
 

Modified: incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/Classify.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/Classify.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/Classify.java (original)
+++ incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/Classify.java Mon Jul  4 12:04:46 2011
@@ -7,7 +7,12 @@ package org.apache.stanbol.reasoners.web
 
 import static javax.ws.rs.core.MediaType.TEXT_HTML;
 
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -50,9 +55,14 @@ import org.apache.stanbol.rules.manager.
 import org.apache.stanbol.rules.manager.changes.RuleStoreImpl;
 import org.apache.stanbol.rules.manager.parse.RuleParserImpl;
 import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.io.FileDocumentTarget;
+import org.semanticweb.owlapi.io.StreamDocumentTarget;
+import org.semanticweb.owlapi.io.StringDocumentTarget;
 import org.semanticweb.owlapi.model.AddImport;
 import org.semanticweb.owlapi.model.AxiomType;
 import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLAnnotation;
+import org.semanticweb.owlapi.model.OWLAnnotationProperty;
 import org.semanticweb.owlapi.model.OWLAxiom;
 import org.semanticweb.owlapi.model.OWLClass;
 import org.semanticweb.owlapi.model.OWLClassAssertionAxiom;
@@ -278,7 +288,7 @@ public class Classify extends BaseStanbo
 			OWLDataFactory factory = inputowl.getOWLOntologyManager()
 					.getOWLDataFactory();
        List<OWLOntologyChange> additions = new LinkedList<OWLOntologyChange>();
-
+       
        boolean ok = false;
 
       //Load ontologies from scope, RDF input and recipe
@@ -401,6 +411,14 @@ public class Classify extends BaseStanbo
 						inputowl.getOWLOntologyManager().addAxioms(inputowl, swrlRules);
 						inputowl = inputowl.getOWLOntologyManager().getOntology(inputowl.getOntologyID());
        }
+       
+       StringDocumentTarget tgt = new StringDocumentTarget();;
+       
+       inputowl.getOWLOntologyManager().saveOntology(inputowl,tgt);
+       inputowl = OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(new ByteArrayInputStream(tgt.toString().getBytes()));
+//for (OWLAnnotationProperty ax : inputowl.getAnnotationPropertiesInSignature())      
+//    System.out.println(ax);
+
             //Create the reasoner for the classification
 					CreateReasoner newreasoner = new CreateReasoner(
 							inputowl);
@@ -417,6 +435,9 @@ public class Classify extends BaseStanbo
             int startax = output.getAxiomCount();
             //Run the classification
             output = reasoner.runClassifyInference(output);
+            
+//            output.getOWLOntologyManager().saveOntology(output,new FileDocumentTarget(new File("./dioschifoso.owl")));
+            
             //End output axioms count
             int endax = output.getAxiomCount();
 

Modified: incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java?rev=1142637&r1=1142636&r2=1142637&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java (original)
+++ incubator/stanbol/trunk/rules/refactor/src/main/java/org/apache/stanbol/rules/refactor/impl/RefactorerImpl.java Mon Jul  4 12:04:46 2011
@@ -24,6 +24,7 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyScopeFactory;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpaceFactory;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.ScopeRegistry;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.UnmodifiableOntologySpaceException;
 import org.apache.stanbol.ontologymanager.ontonet.api.session.DuplicateSessionIDException;
 import org.apache.stanbol.ontologymanager.ontonet.api.session.Session;
 import org.apache.stanbol.ontologymanager.ontonet.api.session.SessionManager;
@@ -228,8 +229,12 @@ public class RefactorerImpl implements R
             scope = onManager.getScopeRegistry().getScope(refactoringScopeIRI);
         }
 
-        scope.addSessionSpace(ontologySpaceFactory.createSessionOntologySpace(refactoringSpaceIRI),
-            kReSSession.getID());
+        try {
+            scope.addSessionSpace(ontologySpaceFactory.createSessionOntologySpace(refactoringSpaceIRI),
+                kReSSession.getID());
+        } catch (UnmodifiableOntologySpaceException e) {
+log.error("Failed to create session space",e);
+        }
 
         scopeRegistry.setScopeActive(refactoringScopeIRI, true);