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/04/20 13:58:09 UTC

svn commit: r1095382 - in /incubator/stanbol/trunk/ontologymanager/ontonet/src: main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ main/resources/META-INF/conf/ test/java/org/apache/s...

Author: alexdma
Date: Wed Apr 20 11:58:08 2011
New Revision: 1095382

URL: http://svn.apache.org/viewvc?rev=1095382&view=rev
Log:
STANBOL-178 :
- Created new ParentPathInputSource implementation that tries to resolve all imports within the parent directory. Added unit test for it
- added test ontology resource in ontonet
- more javadoc for OntologyInputSource implementations

Added:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ParentPathInputSource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestOntologyInputSources.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/index.rdf
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/maincharacters.owl
Removed:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/resources/META-INF/conf/catalog.xml
Modified:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyInputSource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/BlankOntologySource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/RootOntologyIRISource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ScopeOntologySource.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/Constants.java

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyInputSource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyInputSource.java?rev=1095382&r1=1095381&r2=1095382&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyInputSource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/AbstractOntologyInputSource.java Wed Apr 20 11:58:08 2011
@@ -1,77 +1,87 @@
 package org.apache.stanbol.ontologymanager.ontonet.api.io;
 
+import java.util.Set;
+
 import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLOntology;
 
-
 /**
- * Abstract implementation of {@link OntologyInputSource} with the basic methods
- * for obtaining root ontologies and their physical IRIs where applicable.
+ * Abstract implementation of {@link OntologyInputSource} with the basic methods for obtaining root ontologies
+ * and their physical IRIs where applicable.
  * 
  * @author alessandro
  * 
  */
-public abstract class AbstractOntologyInputSource implements
-		OntologyInputSource {
+public abstract class AbstractOntologyInputSource implements OntologyInputSource {
 
-	protected IRI physicalIri = null;
+    protected IRI physicalIri = null;
 
-	protected OWLOntology rootOntology = null;
+    protected OWLOntology rootOntology = null;
 
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	@Override
-	public boolean equals(Object obj) {
-		if (!(obj instanceof OntologyInputSource))
-			return false;
-		OntologyInputSource src = (OntologyInputSource) obj;
-		return this.physicalIri.equals(src.getPhysicalIRI())
-				&& this.rootOntology.equals(src.getRootOntology());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see eu.iksproject.kres.api.manager.ontology.OntologyInputSource#getPhysicalIRI()
-	 */
-	@Override
-	public IRI getPhysicalIRI() {
-		return physicalIri;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see eu.iksproject.kres.api.manager.ontology.OntologyInputSource#getRootOntology()
-	 */
-	@Override
-	public OWLOntology getRootOntology() {
-		return rootOntology;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see eu.iksproject.kres.api.manager.ontology.OntologyInputSource#hasPhysicalIRI()
-	 */
-	@Override
-	public boolean hasPhysicalIRI() {
-		return physicalIri != null;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see eu.iksproject.kres.api.manager.ontology.OntologyInputSource#hasRootOntology()
-	 */
-	@Override
-	public boolean hasRootOntology() {
-		return rootOntology != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	@Override
-	public abstract String toString();
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    @Override
+    public boolean equals(Object obj) {
+        if (!(obj instanceof OntologyInputSource)) return false;
+        OntologyInputSource src = (OntologyInputSource) obj;
+        return this.physicalIri.equals(src.getPhysicalIRI())
+               && this.rootOntology.equals(src.getRootOntology());
+    }
+
+    @Override
+    public Set<OWLOntology> getClosure() {
+        return rootOntology.getOWLOntologyManager().getImportsClosure(rootOntology);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyInputSource#getPhysicalIRI()
+     */
+    @Override
+    public IRI getPhysicalIRI() {
+        return physicalIri;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyInputSource#getRootOntology()
+     */
+    @Override
+    public OWLOntology getRootOntology() {
+        return rootOntology;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyInputSource#hasPhysicalIRI()
+     */
+    @Override
+    public boolean hasPhysicalIRI() {
+        return physicalIri != null;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.api.manager.ontology.OntologyInputSource#hasRootOntology()
+     */
+    @Override
+    public boolean hasRootOntology() {
+        return rootOntology != null;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public abstract String toString();
 
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/BlankOntologySource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/BlankOntologySource.java?rev=1095382&r1=1095381&r2=1095382&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/BlankOntologySource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/BlankOntologySource.java Wed Apr 20 11:58:08 2011
@@ -5,25 +5,27 @@ import org.semanticweb.owlapi.model.OWLO
 import org.semanticweb.owlapi.model.OWLOntologyManager;
 
 /**
- * A utility input source that contains an unnamed, empty ontology.
+ * A utility input source that contains an unnamed, empty ontology. An example usage of this class is to avoid
+ * a {@link NullPointerException} to be thrown when an {@link OntologyInputSource} is to be passed to a
+ * method, but we are not interested in the ontologh to pass.
  * 
  * @author alessandro
- *
+ * 
  */
 public class BlankOntologySource extends AbstractOntologyInputSource {
 
-	public BlankOntologySource() {
-		OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
-		try {
-			this.rootOntology = manager.createOntology();
-		} catch (OWLOntologyCreationException e) {
-			this.rootOntology = null;
-		}
-	}
+    public BlankOntologySource() {
+        OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
+        try {
+            this.rootOntology = manager.createOntology();
+        } catch (OWLOntologyCreationException e) {
+            this.rootOntology = null;
+        }
+    }
 
-	@Override
-	public String toString() {
-		return "";
-	}
+    @Override
+    public String toString() {
+        return "";
+    }
 
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java?rev=1095382&r1=1095381&r2=1095382&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/OntologyInputSource.java Wed Apr 20 11:58:08 2011
@@ -1,63 +1,67 @@
 package org.apache.stanbol.ontologymanager.ontonet.api.io;
 
+import java.util.Set;
+
 import org.semanticweb.owlapi.model.IRI;
 import org.semanticweb.owlapi.model.OWLOntology;
 
 /**
- * An ontology input source provides a point for loading an ontology. Currently
- * it provides two ways of obtaining an ontology document:
+ * An ontology input source provides a point for loading an ontology. Currently it provides two ways of
+ * obtaining an ontology document:
  * 
  * <ol>
  * <li>From an OWLOntology.
  * <li>By dereferencing an physical IRI.
  * </ol>
  * 
- * Consumers that use an ontology input source will attempt to obtain a concrete
- * representation of an ontology in the above order. Implementations of this
- * interface may try to dereference the IRI internally and just provide the
- * OWLOntology, or directly provide the physical IRI for other classes to
- * dereference. Implementations should allow multiple attempts at loading an
- * ontology.
+ * Consumers that use an ontology input source will attempt to obtain a concrete representation of an ontology
+ * in the above order. Implementations of this interface may try to dereference the IRI internally and just
+ * provide the OWLOntology, or directly provide the physical IRI for other classes to dereference.
+ * Implementations should allow multiple attempts at loading an ontology.
  * 
  * @author alessandro
  * 
  */
 public interface OntologyInputSource {
 
-	/**
-	 * Returns the IRI by dereferencing which it should be possible to obtain
-	 * the ontology. This method is supposed to return null if the ontology
-	 * lives in-memory and was not or is not going to be stored publicly.
-	 * 
-	 * @return the physical location for this ontology source, or null if
-	 *         unknown.
-	 */
+    /**
+     * Gets the ontology network resulting from the transitive closure of import statements on the root
+     * ontology. Useful for implementations with a custom management of ontology loading.
+     * 
+     * @return the import closure of the root ontology.
+     */
+    Set<OWLOntology> getClosure();
+
+    /**
+     * Returns the IRI by dereferencing which it should be possible to obtain the ontology. This method is
+     * supposed to return null if the ontology lives in-memory and was not or is not going to be stored
+     * publicly.
+     * 
+     * @return the physical location for this ontology source, or null if unknown.
+     */
     IRI getPhysicalIRI();
 
-	/**
-	 * Returns the OWL Ontology that imports the whole ontology network
-	 * addressed by this input source.
-	 * 
-	 * @return the ontology network root.
-	 */
+    /**
+     * Returns the OWL Ontology that imports the whole ontology network addressed by this input source.
+     * 
+     * @return the ontology network root.
+     */
     OWLOntology getRootOntology();
 
-	/**
-	 * Determines if a physical IRI is known for this ontology source. Note that
-	 * an anonymous ontology may have been fetched from a physical location,
-	 * just as a named ontology may have been stored in memory and have no
-	 * physical location.
-	 * 
-	 * @return true if a physical location is known for this ontology source.
-	 */
+    /**
+     * Determines if a physical IRI is known for this ontology source. Note that an anonymous ontology may
+     * have been fetched from a physical location, just as a named ontology may have been stored in memory and
+     * have no physical location.
+     * 
+     * @return true if a physical location is known for this ontology source.
+     */
     boolean hasPhysicalIRI();
 
-	/**
-	 * Determines if a root ontology that imports the entire network is
-	 * available.
-	 * 
-	 * @return true if a root ontology is available, false otherwise.
-	 */
+    /**
+     * Determines if a root ontology that imports the entire network is available.
+     * 
+     * @return true if a root ontology is available, false otherwise.
+     */
     boolean hasRootOntology();
 
 }

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ParentPathInputSource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ParentPathInputSource.java?rev=1095382&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ParentPathInputSource.java (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ParentPathInputSource.java Wed Apr 20 11:58:08 2011
@@ -0,0 +1,23 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.io;
+
+import java.io.File;
+
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.OWLOntologyCreationException;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+import org.semanticweb.owlapi.util.AutoIRIMapper;
+
+public class ParentPathInputSource extends AbstractOntologyInputSource {
+
+    public ParentPathInputSource(File rootFile) throws OWLOntologyCreationException {
+        OWLOntologyManager mgr = OWLManager.createOWLOntologyManager();
+        mgr.addIRIMapper(new AutoIRIMapper(rootFile.getParentFile(), true));
+        rootOntology = mgr.loadOntologyFromOntologyDocument(rootFile);
+    }
+
+    @Override
+    public String toString() {
+        return "ROOT_ONT_IRI<" + getPhysicalIRI() + ">";
+    }
+
+}

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/RootOntologyIRISource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/RootOntologyIRISource.java?rev=1095382&r1=1095381&r2=1095382&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/RootOntologyIRISource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/RootOntologyIRISource.java Wed Apr 20 11:58:08 2011
@@ -6,37 +6,33 @@ import org.semanticweb.owlapi.model.OWLO
 import org.semanticweb.owlapi.model.OWLOntologyManager;
 
 /**
- * An input source that provides the OWL Ontology loaded from the supplied
- * physical IRI, as well as the physical IRI itself for consumers that need to
- * load the ontology themselves.<br>
+ * An input source that provides the OWL Ontology loaded from the supplied physical IRI, as well as the
+ * physical IRI itself for consumers that need to load the ontology themselves.<br>
  * <br>
- * For convenience, an existing OWL ontology manager can be supplied for loading
- * the ontology.
+ * For convenience, an existing OWL ontology manager can be supplied for loading the ontology.
  * 
  * @author alessandro
  * 
  */
 public class RootOntologyIRISource extends AbstractOntologyInputSource {
 
-	public RootOntologyIRISource(IRI rootPhysicalIri)
-			throws OWLOntologyCreationException {
-		this(rootPhysicalIri, OWLManager.createOWLOntologyManager());
-	}
+    public RootOntologyIRISource(IRI rootPhysicalIri) throws OWLOntologyCreationException {
+        this(rootPhysicalIri, OWLManager.createOWLOntologyManager());
+    }
 
-	public RootOntologyIRISource(IRI rootPhysicalIri, OWLOntologyManager manager)
-			throws OWLOntologyCreationException {
-		physicalIri = rootPhysicalIri;
-		rootOntology = manager
-				.loadOntologyFromOntologyDocument(rootPhysicalIri);
-	}
+    public RootOntologyIRISource(IRI rootPhysicalIri, OWLOntologyManager manager) throws OWLOntologyCreationException {
+        physicalIri = rootPhysicalIri;
+        rootOntology = manager.loadOntologyFromOntologyDocument(rootPhysicalIri);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see eu.iksproject.kres.manager.io.AbstractOntologyInputSource#toString()
-	 */
-	@Override
-	public String toString() {
-		return "ROOT_ONT_IRI<" + getPhysicalIRI() + ">";
-	}
+    /*
+     * (non-Javadoc)
+     * 
+     * @see eu.iksproject.kres.manager.io.AbstractOntologyInputSource#toString()
+     */
+    @Override
+    public String toString() {
+        return "ROOT_ONT_IRI<" + getPhysicalIRI() + ">";
+    }
 
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ScopeOntologySource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ScopeOntologySource.java?rev=1095382&r1=1095381&r2=1095382&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ScopeOntologySource.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/io/ScopeOntologySource.java Wed Apr 20 11:58:08 2011
@@ -5,27 +5,26 @@ import org.semanticweb.owlapi.model.OWLO
 import org.slf4j.LoggerFactory;
 
 /**
- * An ontology source that rewrites the physical IRI by appending the logical
- * one to the scope ID. If the ontology is anonymous, the original physical IRI
- * is retained.
+ * An ontology source that rewrites the physical IRI by appending the logical one to the scope ID. If the
+ * ontology is anonymous, the original physical IRI is retained.
  * 
  * @author alessandro
  * 
  */
 public class ScopeOntologySource extends AbstractOntologyInputSource {
 
-	public ScopeOntologySource(IRI scopeIri, OWLOntology ontology, IRI origin) {
-		rootOntology = ontology;
-		LoggerFactory.getLogger(ScopeOntologySource.class).debug(
-				"[KReS] :: REWRITING " + origin + " TO " + scopeIri + "/"
-						+ ontology.getOntologyID().getOntologyIRI());
-		physicalIri = !ontology.isAnonymous() ? IRI.create(scopeIri + "/"
-				+ ontology.getOntologyID().getOntologyIRI()) : origin;
-	}
+    public ScopeOntologySource(IRI scopeIri, OWLOntology ontology, IRI origin) {
+        rootOntology = ontology;
+        LoggerFactory.getLogger(ScopeOntologySource.class).debug("Rewriting {} to {}/{}",
+            new IRI[] {origin, scopeIri, ontology.getOntologyID().getOntologyIRI()});
+        physicalIri = !ontology.isAnonymous() ? IRI.create(scopeIri + "/"
+                                                           + ontology.getOntologyID().getOntologyIRI())
+                : origin;
+    }
 
-	@Override
-	public String toString() {
-		return "SCOPE_ONT_IRI<" + getPhysicalIRI() + ">";
-	}
+    @Override
+    public String toString() {
+        return "SCOPE_ONT_IRI<" + getPhysicalIRI() + ">";
+    }
 
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java?rev=1095382&r1=1095381&r2=1095382&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java Wed Apr 20 11:58:08 2011
@@ -36,8 +36,8 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologySpaceFactoryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.ScopeRegistryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.registry.model.impl.RegistryLoaderImpl;
-import org.apache.stanbol.ontologymanager.ontonet.impl.session.SessionManagerImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.session.ScopeSessionSynchronizer;
+import org.apache.stanbol.ontologymanager.ontonet.impl.session.SessionManagerImpl;
 import org.osgi.service.component.ComponentContext;
 import org.semanticweb.owlapi.apibinding.OWLManager;
 import org.semanticweb.owlapi.io.FileDocumentSource;
@@ -534,45 +534,15 @@ public class ONManagerImpl implements ON
         }
 
         private OntologyInputSource createOntologyInputSource(final String uri) {
-            /*
-             * The scope factory needs an OntologyInputSource as input for the core ontology space. We want to
-             * use the dbpedia ontology as core ontology of our scope.
-             */
-            OntologyInputSource ois = new OntologyInputSource() {
-
-                @Override
-                public boolean hasRootOntology() {
-                    return true;
-                }
-
-                @Override
-                public boolean hasPhysicalIRI() {
-                    return false;
-                }
-
-                @Override
-                public OWLOntology getRootOntology() {
-
-                    try {
-
-                        OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
-                        return manager.loadOntologyFromOntologyDocument(IRI.create(uri));
-                    } catch (OWLOntologyCreationException e) {
-                        log.error("Cannot load the ontology " + uri, e);
-                    } catch (Exception e) {
-                        log.error("Cannot load the ontology " + uri, e);
-                    }
-                    /** If some errors occur **/
-                    return null;
-                }
-
-                @Override
-                public IRI getPhysicalIRI() {
-                    return null;
-                }
-            };
-
-            return ois;
+            try {
+            return new RootOntologyIRISource(IRI.create(uri));
+            } catch (OWLOntologyCreationException e) {
+                log.error("Cannot load the ontology {}", uri, e);
+                return null;
+            } catch (Exception e) {
+                log.error("Cannot load the ontology {}", uri, e);
+                return null;
+            }
         }
     }
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/Constants.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/Constants.java?rev=1095382&r1=1095381&r2=1095382&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/Constants.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/Constants.java Wed Apr 20 11:58:08 2011
@@ -2,9 +2,9 @@ package org.apache.stanbol.ontologymanag
 
 public class Constants {
 
-	public static final String base = "http://kres.iks-project.eu/ontology/peanuts/maincharacters.owl";
+	public static final String base = "http://stanbol.apache.org/ontologies/peanuts/maincharacters.owl";
 
-	public static final String base2 = "http://kres.iks-project.eu/ontology/minorcharacters.owl";
+	public static final String base2 = "http://stanbol.apache.org/ontologies/peanuts/minorcharacters.owl";
 
 	public static final String dog = "Dog";
 

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestOntologyInputSources.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestOntologyInputSources.java?rev=1095382&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestOntologyInputSources.java (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestOntologyInputSources.java Wed Apr 20 11:58:08 2011
@@ -0,0 +1,87 @@
+package org.apache.stanbol.ontologymanager.ontonet.io;
+
+import static org.junit.Assert.*;
+
+import java.io.File;
+import java.net.URL;
+import java.util.Hashtable;
+import java.util.Set;
+
+import org.apache.stanbol.ontologymanager.ontonet.Constants;
+import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.ParentPathInputSource;
+import org.apache.stanbol.ontologymanager.ontonet.api.io.RootOntologyIRISource;
+import org.apache.stanbol.ontologymanager.ontonet.impl.ONManagerImpl;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLClass;
+import org.semanticweb.owlapi.model.OWLDataFactory;
+import org.semanticweb.owlapi.model.OWLIndividual;
+import org.semanticweb.owlapi.model.OWLNamedIndividual;
+import org.semanticweb.owlapi.model.OWLOntology;
+
+public class TestOntologyInputSources {
+
+    private static ONManager onm;
+
+    private static OWLDataFactory df;
+
+    @BeforeClass
+    public static void setUp() {
+        onm = new ONManagerImpl(null, null, new Hashtable<String,Object>());
+        df = onm.getOwlFactory();
+    }
+
+    /**
+     * Loads a modified FOAF by resolving a URI from a resource directory.
+     * 
+     * @throws Exception
+     */
+    @Test
+    public void testOfflineSingleton() throws Exception {
+        URL url = getClass().getResource("/ontologies/index.rdf");
+        assertNotNull(url);
+        OntologyInputSource coreSource = new RootOntologyIRISource(IRI.create(url));
+        assertNotNull(df);
+        /*
+         * To check it fetched the correct ontology, we look for a declaration of the bogus class foaf:Perzon
+         * (added in the local FOAF)
+         */
+        OWLClass cPerzon = df.getOWLClass(IRI.create("http://xmlns.com/foaf/0.1/Perzon"));
+        assertTrue(coreSource.getRootOntology().getClassesInSignature().contains(cPerzon));
+    }
+
+    /**
+     * Uses a {@link ParentPathInputSource} to load an ontology importing a modified FOAF, both located in the
+     * same resource directory.
+     * 
+     * @throws Exception
+     */
+    @Test
+    public void testOfflineImport() throws Exception {
+        URL url = getClass().getResource("/ontologies/maincharacters.owl");
+        assertNotNull(url);
+        File f = new File(url.toURI());
+        assertNotNull(f);
+        OntologyInputSource coreSource = new ParentPathInputSource(f);
+
+        // Check that all the imports closure is made of local files
+        Set<OWLOntology> closure = coreSource.getClosure();
+        for (OWLOntology o : closure)
+            assertEquals("file", o.getOWLOntologyManager().getOntologyDocumentIRI(o).getScheme());
+
+        assertEquals(coreSource.getRootOntology().getOntologyID().getOntologyIRI(),
+            IRI.create(Constants.base));
+        // Linus is stated to be a foaf:Person
+        OWLNamedIndividual iLinus = df.getOWLNamedIndividual(IRI.create(Constants.base + "#Linus"));
+        // Lucy is stated to be a foaf:Perzon
+        OWLNamedIndividual iLucy = df.getOWLNamedIndividual(IRI.create(Constants.base + "#Lucy"));
+        OWLClass cPerzon = df.getOWLClass(IRI.create("http://xmlns.com/foaf/0.1/Perzon"));
+
+        Set<OWLIndividual> instances = cPerzon.getIndividuals(coreSource.getRootOntology());
+        assertTrue(!instances.contains(iLinus) && instances.contains(iLucy));
+    }
+
+}

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/index.rdf
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/index.rdf?rev=1095382&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/index.rdf (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/index.rdf Wed Apr 20 11:58:08 2011
@@ -0,0 +1,1207 @@
+<?xml version="1.0"?>
+
+
+<!DOCTYPE rdf:RDF [
+    <!ENTITY wot "http://xmlns.com/wot/0.1/" >
+    <!ENTITY terms "http://purl.org/dc/terms/" >
+    <!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
+    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
+    <!ENTITY dc "http://purl.org/dc/elements/1.1/" >
+    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
+    <!ENTITY skos "http://www.w3.org/2004/02/skos/core#" >
+    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
+    <!ENTITY wgs84_pos "http://www.w3.org/2003/01/geo/wgs84_pos#" >
+    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
+    <!ENTITY contact "http://www.w3.org/2000/10/swap/pim/contact#" >
+    <!ENTITY vs "http://www.w3.org/2003/06/sw-vocab-status/ns#" >
+]>
+
+
+<rdf:RDF xmlns="http://xmlns.com/foaf/0.1/"
+     xml:base="http://xmlns.com/foaf/0.1/"
+     xmlns:dc="http://purl.org/dc/elements/1.1/"
+     xmlns:wgs84_pos="http://www.w3.org/2003/01/geo/wgs84_pos#"
+     xmlns:foaf="http://xmlns.com/foaf/0.1/"
+     xmlns:terms="http://purl.org/dc/terms/"
+     xmlns:vs="http://www.w3.org/2003/06/sw-vocab-status/ns#"
+     xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#"
+     xmlns:wot="http://xmlns.com/wot/0.1/"
+     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+     xmlns:owl="http://www.w3.org/2002/07/owl#"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+     xmlns:skos="http://www.w3.org/2004/02/skos/core#">
+    <owl:Ontology rdf:about="http://xmlns.com/foaf/0.1/">
+        <dc:title>Friend of a Friend (FOAF) vocabulary</dc:title>
+        <dc:description>The Friend of a Friend (FOAF) RDF vocabulary, described using W3C RDF Schema and the Web Ontology Language.</dc:description>
+    </owl:Ontology>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Annotation properties
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    <owl:AnnotationProperty rdf:about="&wot;assurance"/>
+    <owl:AnnotationProperty rdf:about="&vs;term_status"/>
+    <owl:AnnotationProperty rdf:about="&foaf;membershipClass">
+        <rdfs:label>membershipClass</rdfs:label>
+        <vs:term_status>unstable</vs:term_status>
+        <rdfs:comment>Indicates the class of individuals that are a member of a Group</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:AnnotationProperty>
+    <owl:AnnotationProperty rdf:about="&wot;src_assurance"/>
+    <owl:AnnotationProperty rdf:about="&dc;date"/>
+    <owl:AnnotationProperty rdf:about="&foaf;name">
+        <rdfs:label>name</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A name for some thing.</rdfs:comment>
+        <rdfs:subPropertyOf rdf:resource="&rdfs;label"/>
+        <rdfs:domain rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:AnnotationProperty>
+    <owl:AnnotationProperty rdf:about="&dc;description"/>
+    <owl:AnnotationProperty rdf:about="&dc;title"/>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Datatypes
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Object Properties
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/account -->
+
+    <owl:ObjectProperty rdf:about="&foaf;account">
+        <rdfs:label>account</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>Indicates an account held by this agent.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+        <rdfs:range rdf:resource="&foaf;OnlineAccount"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/accountServiceHomepage -->
+
+    <owl:ObjectProperty rdf:about="&foaf;accountServiceHomepage">
+        <rdfs:label>account service homepage</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>Indicates a homepage of the service provide for this online account.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:domain rdf:resource="&foaf;OnlineAccount"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/aimChatID -->
+
+    <owl:ObjectProperty rdf:about="&foaf;aimChatID">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>AIM chat ID</rdfs:label>
+        <rdfs:comment>An AIM chat ID</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/based_near -->
+
+    <owl:ObjectProperty rdf:about="&foaf;based_near">
+        <rdfs:label>based near</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A location that something is based near, for some broadly human notion of near.</rdfs:comment>
+        <rdfs:domain rdf:resource="&wgs84_pos;SpatialThing"/>
+        <rdfs:range rdf:resource="&wgs84_pos;SpatialThing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/currentProject -->
+
+    <owl:ObjectProperty rdf:about="&foaf;currentProject">
+        <rdfs:label>current project</rdfs:label>
+        <rdfs:comment>A current project this person works on.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/depiction -->
+
+    <owl:ObjectProperty rdf:about="&foaf;depiction">
+        <rdfs:label>depiction</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A depiction of some thing.</rdfs:comment>
+        <rdfs:domain rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Image"/>
+        <owl:inverseOf rdf:resource="&foaf;depicts"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/depicts -->
+
+    <owl:ObjectProperty rdf:about="&foaf;depicts">
+        <rdfs:label>depicts</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A thing depicted in this representation.</rdfs:comment>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Image"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/focus -->
+
+    <owl:ObjectProperty rdf:about="&foaf;focus">
+        <rdfs:label>focus</rdfs:label>
+        <rdfs:comment>The underlying or &#39;focal&#39; entity associated with some SKOS-described concept.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:domain rdf:resource="&skos;Concept"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/fundedBy -->
+
+    <owl:ObjectProperty rdf:about="&foaf;fundedBy">
+        <rdfs:label>funded by</rdfs:label>
+        <vs:term_status>archaic</vs:term_status>
+        <rdfs:comment>An organization funding a project or person.</rdfs:comment>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:domain rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/holdsAccount -->
+
+    <owl:ObjectProperty rdf:about="&foaf;holdsAccount">
+        <rdfs:label>account</rdfs:label>
+        <rdfs:comment>Indicates an account held by this agent.</rdfs:comment>
+        <vs:term_status>archaic</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+        <rdfs:range rdf:resource="&foaf;OnlineAccount"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/homepage -->
+
+    <owl:ObjectProperty rdf:about="&foaf;homepage">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>homepage</rdfs:label>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:comment>A homepage for some thing.</rdfs:comment>
+        <rdfs:domain rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;isPrimaryTopicOf"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;page"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/icqChatID -->
+
+    <owl:ObjectProperty rdf:about="&foaf;icqChatID">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>ICQ chat ID</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>An ICQ chat ID</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/img -->
+
+    <owl:ObjectProperty rdf:about="&foaf;img">
+        <rdfs:label>image</rdfs:label>
+        <rdfs:comment>An image that can be used to represent some thing (ie. those depictions which are particularly representative of something, eg. one&#39;s photo on a homepage).</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Image"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;depiction"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/interest -->
+
+    <owl:ObjectProperty rdf:about="&foaf;interest">
+        <rdfs:label>interest</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A page about a topic of interest to this person.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/isPrimaryTopicOf -->
+
+    <owl:ObjectProperty rdf:about="&foaf;isPrimaryTopicOf">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>is primary topic of</rdfs:label>
+        <rdfs:comment>A document that this thing is the primary topic of.</rdfs:comment>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:domain rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;page"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/jabberID -->
+
+    <owl:ObjectProperty rdf:about="&foaf;jabberID">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>jabber ID</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A jabber ID for something.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/knows -->
+
+    <owl:ObjectProperty rdf:about="&foaf;knows">
+        <rdfs:label>knows</rdfs:label>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:comment>A person known by this person (indicating some level of reciprocated interaction between the parties).</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+        <rdfs:range rdf:resource="&foaf;Person"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/logo -->
+
+    <owl:ObjectProperty rdf:about="&foaf;logo">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>logo</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A logo representing some thing.</rdfs:comment>
+        <rdfs:domain rdf:resource="&owl;Thing"/>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/made -->
+
+    <owl:ObjectProperty rdf:about="&foaf;made">
+        <rdfs:label>made</rdfs:label>
+        <rdfs:comment>Something that was made by this agent.</rdfs:comment>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/maker -->
+
+    <owl:ObjectProperty rdf:about="&foaf;maker">
+        <rdfs:label>maker</rdfs:label>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:comment>An agent that  made this thing.</rdfs:comment>
+        <rdfs:domain rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Agent"/>
+        <owl:inverseOf rdf:resource="&foaf;made"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/mbox -->
+
+    <owl:ObjectProperty rdf:about="&foaf;mbox">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>personal mailbox</rdfs:label>
+        <rdfs:comment>A  personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox. This is a &#39;static inverse functional property&#39;, in that  there is (across time and change) at most one individual that ever has any particular value for foaf:mbox.</rdfs:comment>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/mbox_sha1sum -->
+
+    <owl:ObjectProperty rdf:about="&foaf;mbox_sha1sum">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>sha1sum of a personal mailbox URI name</rdfs:label>
+        <rdfs:comment>The sha1sum of the URI of an Internet mailbox associated with exactly one owner, the  first owner of the mailbox.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/member -->
+
+    <owl:ObjectProperty rdf:about="&foaf;member">
+        <rdfs:label>member</rdfs:label>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:comment>Indicates a member of a Group</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Agent"/>
+        <rdfs:domain rdf:resource="&foaf;Group"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/msnChatID -->
+
+    <owl:ObjectProperty rdf:about="&foaf;msnChatID">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>MSN chat ID</rdfs:label>
+        <rdfs:comment>An MSN chat ID</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/openid -->
+
+    <owl:ObjectProperty rdf:about="&foaf;openid">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>openid</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>An OpenID for an Agent.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;isPrimaryTopicOf"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/page -->
+
+    <owl:ObjectProperty rdf:about="&foaf;page">
+        <rdfs:label>page</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A page or document about this thing.</rdfs:comment>
+        <rdfs:domain rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <owl:inverseOf rdf:resource="&foaf;topic"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/pastProject -->
+
+    <owl:ObjectProperty rdf:about="&foaf;pastProject">
+        <rdfs:label>past project</rdfs:label>
+        <rdfs:comment>A project this person has previously worked on.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/phone -->
+
+    <owl:ObjectProperty rdf:about="&foaf;phone">
+        <rdfs:label>phone</rdfs:label>
+        <rdfs:comment>A phone,  specified using fully qualified tel: URI scheme (refs: http://www.w3.org/Addressing/schemes.html#tel).</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/primaryTopic -->
+
+    <owl:ObjectProperty rdf:about="&foaf;primaryTopic">
+        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
+        <rdfs:label>primary topic</rdfs:label>
+        <rdfs:comment>The primary topic of some page or document.</rdfs:comment>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Document"/>
+        <owl:inverseOf rdf:resource="&foaf;isPrimaryTopicOf"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/publications -->
+
+    <owl:ObjectProperty rdf:about="&foaf;publications">
+        <rdfs:label>publications</rdfs:label>
+        <rdfs:comment>A link to the publications of this person.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/schoolHomepage -->
+
+    <owl:ObjectProperty rdf:about="&foaf;schoolHomepage">
+        <rdfs:label>schoolHomepage</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A homepage of a school attended by the person.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/theme -->
+
+    <owl:ObjectProperty rdf:about="&foaf;theme">
+        <rdfs:label>theme</rdfs:label>
+        <vs:term_status>archaic</vs:term_status>
+        <rdfs:comment>A theme.</rdfs:comment>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:domain rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/thumbnail -->
+
+    <owl:ObjectProperty rdf:about="&foaf;thumbnail">
+        <rdfs:label>thumbnail</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A derived thumbnail image.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Image"/>
+        <rdfs:domain rdf:resource="&foaf;Image"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/tipjar -->
+
+    <owl:ObjectProperty rdf:about="&foaf;tipjar">
+        <rdfs:label>tipjar</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A tipjar document for this agent, describing means for payment and reward.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;page"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/topic -->
+
+    <owl:ObjectProperty rdf:about="&foaf;topic">
+        <rdfs:label>topic</rdfs:label>
+        <rdfs:comment>A topic of some page or document.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Document"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/topic_interest -->
+
+    <owl:ObjectProperty rdf:about="&foaf;topic_interest">
+        <rdfs:label>topic_interest</rdfs:label>
+        <rdfs:comment>A thing of interest to this person.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&owl;Thing"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/weblog -->
+
+    <owl:ObjectProperty rdf:about="&foaf;weblog">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>weblog</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A weblog of some thing (whether person, group, company etc.).</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;page"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/workInfoHomepage -->
+
+    <owl:ObjectProperty rdf:about="&foaf;workInfoHomepage">
+        <rdfs:label>work info homepage</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A work info homepage of some person; a page about their work for some organization.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/workplaceHomepage -->
+
+    <owl:ObjectProperty rdf:about="&foaf;workplaceHomepage">
+        <rdfs:label>workplace homepage</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A workplace homepage of some person; the homepage of an organization they work for.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:range rdf:resource="&foaf;Document"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/yahooChatID -->
+
+    <owl:ObjectProperty rdf:about="&foaf;yahooChatID">
+        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+        <rdfs:label>Yahoo chat ID</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A Yahoo chat ID</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:ObjectProperty>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Data properties
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/accountName -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;accountName">
+        <rdfs:label>account name</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>Indicates the name (identifier) associated with this online account.</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;OnlineAccount"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/age -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;age">
+        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
+        <rdfs:label>age</rdfs:label>
+        <vs:term_status>unstable</vs:term_status>
+        <rdfs:comment>The age in years of some agent.</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/aimChatID -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;aimChatID">
+        <rdfs:label>AIM chat ID</rdfs:label>
+        <rdfs:comment>An AIM chat ID</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;nick"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/birthday -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;birthday">
+        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
+        <rdfs:label>birthday</rdfs:label>
+        <vs:term_status>unstable</vs:term_status>
+        <rdfs:comment>The birthday of this Agent, represented in mm-dd string form, eg. &#39;12-31&#39;.</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/dnaChecksum -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;dnaChecksum">
+        <rdfs:label>DNA checksum</rdfs:label>
+        <rdfs:comment>A checksum for the DNA of some thing. Joke.</rdfs:comment>
+        <vs:term_status>archaic</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/familyName -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;familyName">
+        <rdfs:label>familyName</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>The family name of some person.</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/family_name -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;family_name">
+        <rdfs:label>family_name</rdfs:label>
+        <vs:term_status>archaic</vs:term_status>
+        <rdfs:comment>The family name of some person.</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/firstName -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;firstName">
+        <rdfs:label>firstName</rdfs:label>
+        <rdfs:comment>The first name of a person.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/geekcode -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;geekcode">
+        <rdfs:label>geekcode</rdfs:label>
+        <vs:term_status>archaic</vs:term_status>
+        <rdfs:comment>A textual geekcode for this person, see http://www.geekcode.com/geek.html</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/gender -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;gender">
+        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
+        <rdfs:label>gender</rdfs:label>
+        <rdfs:comment>The gender of this Agent (typically but not necessarily &#39;male&#39; or &#39;female&#39;).</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/givenName -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;givenName">
+        <rdfs:label>Given name</rdfs:label>
+        <rdfs:comment>The given name of some person.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/givenname -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;givenname">
+        <rdfs:label>Given name</rdfs:label>
+        <rdfs:comment>The given name of some person.</rdfs:comment>
+        <vs:term_status>archaic</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/icqChatID -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;icqChatID">
+        <rdfs:label>ICQ chat ID</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>An ICQ chat ID</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;nick"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/jabberID -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;jabberID">
+        <rdfs:label>jabber ID</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A jabber ID for something.</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/lastName -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;lastName">
+        <rdfs:label>lastName</rdfs:label>
+        <rdfs:comment>The last name of a person.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/mbox_sha1sum -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;mbox_sha1sum">
+        <rdfs:label>sha1sum of a personal mailbox URI name</rdfs:label>
+        <rdfs:comment>The sha1sum of the URI of an Internet mailbox associated with exactly one owner, the  first owner of the mailbox.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/msnChatID -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;msnChatID">
+        <rdfs:label>MSN chat ID</rdfs:label>
+        <rdfs:comment>An MSN chat ID</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;nick"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/myersBriggs -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;myersBriggs">
+        <rdfs:label>myersBriggs</rdfs:label>
+        <rdfs:comment>A Myers Briggs (MBTI) personality classification.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/name -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;name">
+        <rdfs:label>name</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A name for some thing.</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/nick -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;nick">
+        <rdfs:label>nickname</rdfs:label>
+        <rdfs:comment>A short informal nickname characterising an agent (includes login identifiers, IRC and other chat nicknames).</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/plan -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;plan">
+        <rdfs:label>plan</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A .plan comment, in the tradition of finger and &#39;.plan&#39; files.</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/sha1 -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;sha1">
+        <rdfs:label>sha1sum (hex)</rdfs:label>
+        <rdfs:comment>A sha1sum hash, in hex.</rdfs:comment>
+        <vs:term_status>unstable</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Document"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/skypeID -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;skypeID">
+        <rdfs:label>Skype ID</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A Skype ID</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;nick"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/status -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;status">
+        <rdfs:label>status</rdfs:label>
+        <rdfs:comment>A string expressing what the user is happy for the general public (normally) to know about their current activity.</rdfs:comment>
+        <vs:term_status>unstable</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Agent"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/surname -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;surname">
+        <rdfs:label>Surname</rdfs:label>
+        <rdfs:comment>The surname of some person.</rdfs:comment>
+        <vs:term_status>archaic</vs:term_status>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:domain rdf:resource="&foaf;Person"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/title -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;title">
+        <rdfs:label>title</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>Title (Mr, Mrs, Ms, Dr. etc)</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/yahooChatID -->
+
+    <owl:DatatypeProperty rdf:about="&foaf;yahooChatID">
+        <rdfs:label>Yahoo chat ID</rdfs:label>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A Yahoo chat ID</rdfs:comment>
+        <rdfs:range rdf:resource="&rdfs;Literal"/>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+        <rdfs:subPropertyOf rdf:resource="&foaf;nick"/>
+    </owl:DatatypeProperty>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Classes
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://purl.org/dc/terms/Agent -->
+
+    <owl:Class rdf:about="&terms;Agent">
+        <owl:equivalentClass rdf:resource="&foaf;Agent"/>
+    </owl:Class>
+    
+
+
+    <!-- http://www.w3.org/2000/01/rdf-schema#Class -->
+
+    <owl:Class rdf:about="&rdfs;Class"/>
+    
+
+
+    <!-- http://www.w3.org/2000/10/swap/pim/contact#Person -->
+
+    <owl:Class rdf:about="&contact;Person">
+        <rdfs:label>Person</rdfs:label>
+    </owl:Class>
+    
+
+
+    <!-- http://www.w3.org/2002/07/owl#Thing -->
+
+    <rdf:Description rdf:about="&owl;Thing">
+        <rdfs:label>Thing</rdfs:label>
+    </rdf:Description>
+    
+
+
+    <!-- http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing -->
+
+    <owl:Class rdf:about="&wgs84_pos;SpatialThing">
+        <rdfs:label>Spatial Thing</rdfs:label>
+    </owl:Class>
+    
+
+
+    <!-- http://www.w3.org/2004/02/skos/core#Concept -->
+
+    <rdf:Description rdf:about="&skos;Concept">
+        <rdfs:label>Concept</rdfs:label>
+    </rdf:Description>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/Agent -->
+
+    <owl:Class rdf:about="&foaf;Agent">
+        <rdfs:label>Agent</rdfs:label>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:comment>An agent (eg. person, group, software or physical artifact).</rdfs:comment>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/Document -->
+
+    <owl:Class rdf:about="&foaf;Document">
+        <rdfs:label>Document</rdfs:label>
+        <owl:disjointWith rdf:resource="&foaf;Organization"/>
+        <owl:disjointWith rdf:resource="&foaf;Project"/>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>A document.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/Group -->
+
+    <owl:Class rdf:about="&foaf;Group">
+        <rdfs:label>Group</rdfs:label>
+        <rdfs:subClassOf rdf:resource="&foaf;Agent"/>
+        <rdfs:comment>A class of Agents.</rdfs:comment>
+        <vs:term_status>stable</vs:term_status>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/Image -->
+
+    <owl:Class rdf:about="&foaf;Image">
+        <rdfs:label>Image</rdfs:label>
+        <rdfs:subClassOf rdf:resource="&foaf;Document"/>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>An image.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/LabelProperty -->
+
+    <owl:Class rdf:about="&foaf;LabelProperty">
+        <rdfs:label>Label Property</rdfs:label>
+        <vs:term_status>unstable</vs:term_status>
+        <rdfs:comment>A foaf:LabelProperty is any RDF property with texual values that serve as labels.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/OnlineAccount -->
+
+    <owl:Class rdf:about="&foaf;OnlineAccount">
+        <rdfs:label>Online Account</rdfs:label>
+        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:comment>An online account.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/OnlineChatAccount -->
+
+    <owl:Class rdf:about="&foaf;OnlineChatAccount">
+        <rdfs:label>Online Chat Account</rdfs:label>
+        <rdfs:subClassOf rdf:resource="&foaf;OnlineAccount"/>
+        <vs:term_status>unstable</vs:term_status>
+        <rdfs:comment>An online chat account.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/OnlineEcommerceAccount -->
+
+    <owl:Class rdf:about="&foaf;OnlineEcommerceAccount">
+        <rdfs:label>Online E-commerce Account</rdfs:label>
+        <rdfs:subClassOf rdf:resource="&foaf;OnlineAccount"/>
+        <vs:term_status>unstable</vs:term_status>
+        <rdfs:comment>An online e-commerce account.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/OnlineGamingAccount -->
+
+    <owl:Class rdf:about="&foaf;OnlineGamingAccount">
+        <rdfs:label>Online Gaming Account</rdfs:label>
+        <rdfs:subClassOf rdf:resource="&foaf;OnlineAccount"/>
+        <vs:term_status>unstable</vs:term_status>
+        <rdfs:comment>An online gaming account.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/Organization -->
+
+    <owl:Class rdf:about="&foaf;Organization">
+        <rdfs:label>Organization</rdfs:label>
+        <rdfs:subClassOf rdf:resource="&foaf;Agent"/>
+        <owl:disjointWith rdf:resource="&foaf;Person"/>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:comment>An organization.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/Person -->
+
+    <owl:Class rdf:about="&foaf;Person">
+        <rdfs:label>Person</rdfs:label>
+        <owl:equivalentClass rdf:resource="&foaf;Perzon"/>
+        <rdfs:subClassOf rdf:resource="&contact;Person"/>
+        <rdfs:subClassOf rdf:resource="&wgs84_pos;SpatialThing"/>
+        <rdfs:subClassOf rdf:resource="&foaf;Agent"/>
+        <owl:disjointWith rdf:resource="&foaf;Project"/>
+        <vs:term_status>stable</vs:term_status>
+        <rdfs:comment>A person.</rdfs:comment>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/PersonalProfileDocument -->
+
+    <owl:Class rdf:about="&foaf;PersonalProfileDocument">
+        <rdfs:label>PersonalProfileDocument</rdfs:label>
+        <rdfs:subClassOf rdf:resource="&foaf;Document"/>
+        <rdfs:comment>A personal profile RDF document.</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/Perzon -->
+
+    <owl:Class rdf:about="&foaf;Perzon">
+        <rdfs:label xml:lang="en">Perzon</rdfs:label>
+        <rdfs:subClassOf rdf:resource="&contact;Person"/>
+    </owl:Class>
+    
+
+
+    <!-- http://xmlns.com/foaf/0.1/Project -->
+
+    <owl:Class rdf:about="&foaf;Project">
+        <rdfs:label>Project</rdfs:label>
+        <rdfs:comment>A project (a collective endeavour of some kind).</rdfs:comment>
+        <vs:term_status>testing</vs:term_status>
+        <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Class>
+</rdf:RDF>
+
+
+
+<!-- Generated by the OWL API (version 3.2.2.1789) http://owlapi.sourceforge.net -->
+

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/maincharacters.owl
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/maincharacters.owl?rev=1095382&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/maincharacters.owl (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/resources/ontologies/maincharacters.owl Wed Apr 20 11:58:08 2011
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+
+
+<!DOCTYPE rdf:RDF [
+    <!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
+    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
+    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
+    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
+    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
+]>
+
+
+<rdf:RDF xmlns="http://stanbol.apache.org/ontologies/peanuts/maincharacters.owl#"
+     xml:base="http://stanbol.apache.org/ontologies/peanuts/maincharacters.owl"
+     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+     xmlns:foaf="http://xmlns.com/foaf/0.1/"
+     xmlns:owl="http://www.w3.org/2002/07/owl#"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+    <owl:Ontology rdf:about="http://stanbol.apache.org/ontologies/peanuts/maincharacters.owl">
+        <owl:imports rdf:resource="http://xmlns.com/foaf/0.1/"/>
+    </owl:Ontology>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Annotation properties
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Datatypes
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Individuals
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://stanbol.apache.org/ontologies/peanuts/maincharacters.owl#Linus -->
+
+    <foaf:Person rdf:about="http://stanbol.apache.org/ontologies/peanuts/maincharacters.owl#Linus">
+        <rdf:type rdf:resource="&owl;NamedIndividual"/>
+        <rdfs:label xml:lang="en">Linus</rdfs:label>
+    </foaf:Person>
+    
+
+
+    <!-- http://stanbol.apache.org/ontologies/peanuts/maincharacters.owl#Lucy -->
+
+    <foaf:Perzon rdf:about="http://stanbol.apache.org/ontologies/peanuts/maincharacters.owl#Lucy">
+        <rdf:type rdf:resource="&owl;NamedIndividual"/>
+        <rdfs:label xml:lang="en">Lucy</rdfs:label>
+    </foaf:Perzon>
+</rdf:RDF>
+
+
+
+<!-- Generated by the OWL API (version 3.2.2.1789) http://owlapi.sourceforge.net -->
+