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 'focal' 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'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 'static inverse functional property', 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. '12-31'.</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 'male' or 'female').</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 '.plan' 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 -->
+