Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java?rev=1373449&r1=1373448&r2=1373449&view=diff ============================================================================== --- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java (original) +++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/ClerezzaOntologyProvider.java Wed Aug 15 15:08:48 2012 @@ -1068,7 +1068,7 @@ public class ClerezzaOntologyProvider im // XXX Force is ignored for the content, but the imports? // TODO Profile this method. Are we getting rid of rdfData after adding its triples? - OWLOntologyID publicKey = OWLUtils.guessOntologyIdentifier(rdfData); + OWLOntologyID publicKey = OWLUtils.extractOntologyID(rdfData); if (publicKey == null) { IRI z; if (origins.length > 0 && origins[0] != null) { @@ -1095,8 +1095,8 @@ public class ClerezzaOntologyProvider im * ontology source. XXX note that anonymous ontologies should be considered a match... or * should they not? */ - OWLOntologyID idFromSrc = OWLUtils.guessOntologyIdentifier(rdfData); - OWLOntologyID idFromStore = OWLUtils.guessOntologyIdentifier(store.getTriples(ref)); + OWLOntologyID idFromSrc = OWLUtils.extractOntologyID(rdfData); + OWLOntologyID idFromStore = OWLUtils.extractOntologyID(store.getTriples(ref)); condition &= (idFromSrc == null && idFromStore == null) || idFromSrc.equals(idFromStore); // Finally, a size check
Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/util/OntologyUtils.java URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/util/OntologyUtils.java?rev=1373449&r1=1373448&r2=1373449&view=diff ============================================================================== --- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/util/OntologyUtils.java (original) +++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/util/OntologyUtils.java Wed Aug 15 15:08:48 2012 @@ -59,7 +59,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * A set of static utility methods for managing ontologies in KReS. + * A set of static utility methods for managing ontologies. * * @author alexdma * @@ -71,87 +71,9 @@ public class OntologyUtils { private static String[] preferredFormats = {RDF_XML, TURTLE, X_TURTLE, RDF_JSON, N3, N_TRIPLE, MANCHESTER_OWL, FUNCTIONAL_OWL, OWL_XML}; - @Deprecated - public static OWLOntology appendOntology(OntologyInputSource<OWLOntology> parentSrc, - OntologyInputSource<OWLOntology> childSrc) { - return appendOntology(parentSrc, childSrc, null, null); - } - - @Deprecated - public static OWLOntology appendOntology(OntologyInputSource<OWLOntology> parentSrc, - OntologyInputSource<OWLOntology> childSrc, - IRI rewritePrefix) { - return appendOntology(parentSrc, childSrc, null, rewritePrefix); - } - - @Deprecated - public static OWLOntology appendOntology(OntologyInputSource<OWLOntology> parentSrc, - OntologyInputSource<OWLOntology> childSrc, - OWLOntologyManager ontologyManager) { - return appendOntology(parentSrc, childSrc, ontologyManager, null); - } - - /** - * This method appends one ontology (the child) to another (the parent) by proceeding as follows. If a - * physical URI can be obtained from the child source, an import statement using that physical URI will be - * added to the parent ontology, otherwise all the axioms from the child ontology will be copied to the - * parent. <br> - * Note: the ontology manager will not load additional ontologies. - * - * @deprecated - * @param parentSrc - * must exist! - * @param childSrc - * @param ontologyManager - * can be null (e.g. when one does not want changes to be immediately reflected in their - * ontology manager), in which case a temporary ontology manager will be used. - * @param rewritePrefix - * . if not null, import statements will be generated in the form - * <tt>rewritePrefix/child_ontology_logical_IRI</tt>. It can be used for relocating the - * ontology document file elsewhere. - * @return the parent with the appended child - */ - public static OWLOntology appendOntology(OntologyInputSource<OWLOntology> parentSrc, - OntologyInputSource<OWLOntology> childSrc, - OWLOntologyManager ontologyManager, - IRI rewritePrefix) { - - if (ontologyManager == null) ontologyManager = OWLManager.createOWLOntologyManager(); - OWLDataFactory factory = ontologyManager.getOWLDataFactory(); - OWLOntology oParent = parentSrc.getRootOntology(); - OWLOntology oChild = childSrc.getRootOntology(); - - // Named ontology with a provided absolute prefix. Use name and prefix - // for creating an new import statement. - if (!oChild.isAnonymous() && rewritePrefix != null - /* && rewritePrefix.isAbsolute() */) { - IRI impIri = IRI.create(rewritePrefix + "/" + oChild.getOntologyID().getOntologyIRI()); - OWLImportsDeclaration imp = factory.getOWLImportsDeclaration(impIri); - ontologyManager.applyChange(new AddImport(oParent, imp)); - } - // Anonymous, with physicalIRI. A plain import statement is added. - else if (childSrc.hasOrigin() && childSrc.getOrigin().getReference() instanceof IRI) { - OWLImportsDeclaration imp = factory.getOWLImportsDeclaration((IRI) (childSrc.getOrigin() - .getReference())); - ontologyManager.applyChange(new AddImport(oParent, imp)); - } - - // Anonymous and no physical IRI (e.g. in memory). Copy all axioms and - // import statements. - else { - ontologyManager.addAxioms(oParent, oChild.getAxioms()); - for (OWLImportsDeclaration imp : oChild.getImportsDeclarations()) - ontologyManager.applyChange(new AddImport(oParent, factory.getOWLImportsDeclaration(imp - .getIRI()))); - } - return oParent; - } - public static OWLOntology buildImportTree(OntologyInputSource<OWLOntology> rootSrc, Set<OWLOntology> subtrees) { - return buildImportTree(rootSrc.getRootOntology(), subtrees, OWLManager.createOWLOntologyManager()); - } /** @@ -194,59 +116,7 @@ public class OntologyUtils { * @return the same input ontology as defined in <code>root</code>, but with the added import statements. */ public static OWLOntology buildImportTree(OWLOntology root, Set<OWLOntology> subtrees) { - return buildImportTree(root, subtrees, OWLManager.createOWLOntologyManager()); - - } - - /** - * Provides a standardized string format for an OWL Ontology ID. The string returned is of type - * <tt>ontologyIRI[:::versionIRI]</tt>. Any substring <tt>":::"</tt> present in <tt>ontologyIRI</tt> or - * <tt>versionIRI</tt> will be URL-encoded (i.e. converted to <tt>"%3A%3A%3A"</tt>).<br/> - * <br/> - * Also note that both <tt>ontologyIRI</tt> and <tt>versionIRI</tt> are sanitized in the process. No other - * URL encoding occurs. - * - * @param id - * the OWL ontology ID to encode - * @return the string form of this ID. - * @see URIUtils#sanitize(IRI) - */ - public static String encode(OWLOntologyID id) { - if (id == null) throw new IllegalArgumentException("Cannot encode a null OWLOntologyID."); - if (id.getOntologyIRI() == null) throw new IllegalArgumentException( - "Cannot encode an OWLOntologyID that is missing an ontologyIRI."); - String s = ""; - s += URIUtils.sanitize(id.getOntologyIRI()).toString().replace(":::", "%3A%3A%3A"); - if (id.getVersionIRI() != null) s += (":::") - + URIUtils.sanitize(id.getVersionIRI()).toString() - .replace(":::", "%3A%3A%3A"); - return s; - } - - /** - * Extracts an OWL Ontology ID from its standard string form. The string must be of type - * <tt>ontologyIRI[:::versionIRI]</tt>. Any substring <tt>"%3A%3A%3A"</tt> present in <tt>ontologyIRI</tt> - * or <tt>versionIRI</tt> will be URL-decoded (i.e. converted to <tt>":::"</tt>).<br/> - * <br/> - * Also note that both <tt>ontologyIRI</tt> and <tt>versionIRI</tt> are desanitized in the process. - * - * @param stringForm - * the string to decode - * @return the string form of this ID. - * @see URIUtils#desanitize(IRI) - */ - public static OWLOntologyID decode(String stringForm) { - if (stringForm == null || stringForm.isEmpty()) throw new IllegalArgumentException( - "Supplied string form must be non-null and non-empty."); - IRI oiri, viri; - String[] split = stringForm.split(":::"); - if (split.length >= 1) { - oiri = URIUtils.desanitize(IRI.create(split[0].replace("%3A%3A%3A", ":::"))); - viri = (split.length > 1) ? URIUtils.desanitize(IRI.create(split[1].replace("%3A%3A%3A", ":::"))) - : null; - return (viri != null) ? new OWLOntologyID(oiri, viri) : new OWLOntologyID(oiri); - } else return null; // Anonymous but versioned ontologies are not acceptable. } /** @@ -337,31 +207,77 @@ public class OntologyUtils { } public static OWLOntology buildImportTree(Set<OWLOntology> subtrees) throws OWLOntologyCreationException { - return buildImportTree(subtrees, OWLManager.createOWLOntologyManager()); - } public static OWLOntology buildImportTree(Set<OWLOntology> subtrees, OWLOntologyManager mgr) throws OWLOntologyCreationException { - return buildImportTree(new RootOntologySource(mgr.createOntology()), subtrees, mgr); + } + /** + * Extracts an OWL Ontology ID from its standard string form. The string must be of type + * <tt>ontologyIRI[:::versionIRI]</tt>. Any substring <tt>"%3A%3A%3A"</tt> present in <tt>ontologyIRI</tt> + * or <tt>versionIRI</tt> will be URL-decoded (i.e. converted to <tt>":::"</tt>).<br/> + * <br/> + * Also note that both <tt>ontologyIRI</tt> and <tt>versionIRI</tt> are desanitized in the process. + * + * @param stringForm + * the string to decode + * @return the string form of this ID. + * @see URIUtils#desanitize(IRI) + */ + public static OWLOntologyID decode(String stringForm) { + if (stringForm == null || stringForm.isEmpty()) throw new IllegalArgumentException( + "Supplied string form must be non-null and non-empty."); + IRI oiri, viri; + String[] split = stringForm.split(":::"); + if (split.length >= 1) { + oiri = URIUtils.desanitize(IRI.create(split[0].replace("%3A%3A%3A", ":::"))); + viri = (split.length > 1) ? URIUtils.desanitize(IRI.create(split[1].replace("%3A%3A%3A", ":::"))) + : null; + return (viri != null) ? new OWLOntologyID(oiri, viri) : new OWLOntologyID(oiri); + } else return null; // Anonymous but versioned ontologies are not acceptable. } - public static List<String> getPreferredSupportedFormats(Collection<String> supported) { + /** + * Provides a standardized string format for an OWL Ontology ID. The string returned is of type + * <tt>ontologyIRI[:::versionIRI]</tt>. Any substring <tt>":::"</tt> present in <tt>ontologyIRI</tt> or + * <tt>versionIRI</tt> will be URL-encoded (i.e. converted to <tt>"%3A%3A%3A"</tt>).<br/> + * <br/> + * Also note that both <tt>ontologyIRI</tt> and <tt>versionIRI</tt> are sanitized in the process. No other + * URL encoding occurs. + * + * @param id + * the OWL ontology ID to encode + * @return the string form of this ID. + * @see URIUtils#sanitize(IRI) + */ + public static String encode(OWLOntologyID id) { + if (id == null) throw new IllegalArgumentException("Cannot encode a null OWLOntologyID."); + if (id.getOntologyIRI() == null) throw new IllegalArgumentException( + "Cannot encode an OWLOntologyID that is missing an ontologyIRI."); + String s = ""; + s += URIUtils.sanitize(id.getOntologyIRI()).toString().replace(":::", "%3A%3A%3A"); + if (id.getVersionIRI() != null) s += (":::") + + URIUtils.sanitize(id.getVersionIRI()).toString() + .replace(":::", "%3A%3A%3A"); + return s; + } + + public static List<String> getPreferredFormats() { List<String> result = new ArrayList<String>(); for (String f : preferredFormats) - if (supported.contains(f)) result.add(f); - // The non-preferred supported formats on the tail in any order - for (String f : supported) - if (!result.contains(f)) result.add(f); + result.add(f); return result; } - public static List<String> getPreferredFormats() { + public static List<String> getPreferredSupportedFormats(Collection<String> supported) { List<String> result = new ArrayList<String>(); for (String f : preferredFormats) - result.add(f); + if (supported.contains(f)) result.add(f); + // The non-preferred supported formats on the tail in any order + for (String f : supported) + if (!result.contains(f)) result.add(f); return result; } Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/TestClerezzaProvider.java URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/TestClerezzaProvider.java?rev=1373449&r1=1373448&r2=1373449&view=diff ============================================================================== --- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/TestClerezzaProvider.java (original) +++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/impl/clerezza/TestClerezzaProvider.java Wed Aug 15 15:08:48 2012 @@ -64,8 +64,6 @@ public class TestClerezzaProvider { private String fn1 = "/ontologies/versiontest_v1.owl", fn2 = "/ontologies/versiontest_v2.owl"; - private String oiri = "http://stanbol.apache.org/ontologies/versiontest"; - private OntologyProvider<TcProvider> ontologyProvider; private OfflineConfiguration offline = new OfflineConfigurationImpl(new Hashtable<String,Object>()); @@ -98,7 +96,7 @@ public class TestClerezzaProvider { // Must be 2 different graphs assertFalse(key1.equals(key2)); - assertEquals(2, ontologyProvider.getPublicKeys().size()); + assertEquals(2, ontologyProvider.listOntologies().size()); // Ontologies must not be tainting each other // Don't use keys any more here. They're not the real public keys! Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestStorage.java URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestStorage.java?rev=1373449&r1=1373448&r2=1373449&view=diff ============================================================================== --- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestStorage.java (original) +++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/io/TestStorage.java Wed Aug 15 15:08:48 2012 @@ -42,6 +42,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.semanticweb.owlapi.model.IRI; import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -96,7 +97,7 @@ public class TestStorage { String ephemeralScopeId = "CaducousScope"; OntologyInputSource<OWLOntology> ois = new RootOntologyIRISource(IRI.create(getClass().getResource( "/ontologies/nonexistentcharacters.owl"))); - IRI ontologyId = ois.getRootOntology().getOntologyID().getOntologyIRI(); + OWLOntologyID ontologyId = ois.getRootOntology().getOntologyID(); OntologyScope scope = onManager.createOntologyScope(ephemeralScopeId); // Initially, the ontology is not there assertFalse(ontologyProvider.hasOntology(ontologyId)); Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestClerezzaSpaces.java URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestClerezzaSpaces.java?rev=1373449&r1=1373448&r2=1373449&view=diff ============================================================================== --- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestClerezzaSpaces.java (original) +++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestClerezzaSpaces.java Wed Aug 15 15:08:48 2012 @@ -28,14 +28,11 @@ import static org.junit.Assert.fail; import java.io.File; import java.io.InputStream; -import java.net.URISyntaxException; -import java.net.URL; import java.util.Hashtable; import org.apache.clerezza.rdf.core.MGraph; import org.apache.clerezza.rdf.core.TripleCollection; import org.apache.clerezza.rdf.core.serializedform.SupportedFormat; -import org.apache.stanbol.commons.owl.OWLOntologyManagerFactory; import org.apache.stanbol.commons.owl.util.OWLUtils; import org.apache.stanbol.ontologymanager.ontonet.Constants; import org.apache.stanbol.ontologymanager.ontonet.api.OfflineConfiguration; @@ -64,8 +61,7 @@ import org.semanticweb.owlapi.model.OWLC import org.semanticweb.owlapi.model.OWLDataFactory; import org.semanticweb.owlapi.model.OWLIndividual; import org.semanticweb.owlapi.model.OWLOntology; -import org.semanticweb.owlapi.model.OWLOntologyCreationException; -import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.semanticweb.owlapi.model.OWLOntologyID; public class TestClerezzaSpaces { @@ -87,15 +83,6 @@ public class TestClerezzaSpaces { return new GraphSource(parser.parse(is, SupportedFormat.RDF_XML)); } - private static OntologyInputSource<?> getLocalSource(String resourcePath, OWLOntologyManager mgr) throws OWLOntologyCreationException, - URISyntaxException { - URL url = TestOntologySpaces.class.getResource(resourcePath); - File f = new File(url.toURI()); - return new ParentPathInputSource(f, mgr != null ? mgr - : OWLOntologyManagerFactory.createOWLOntologyManager(offline.getOntologySourceLocations() - .toArray(new IRI[0]))); - } - @BeforeClass public static void setup() throws Exception { offline = new OfflineConfigurationImpl(new Hashtable<String,Object>()); @@ -130,7 +117,7 @@ public class TestClerezzaSpaces { public void testAddOntology() throws Exception { CustomOntologySpace space = null; - IRI logicalId = OWLUtils.guessOntologyIdentifier(nonexSrc.getRootOntology()).getOntologyIRI(); + OWLOntologyID logicalId = OWLUtils.extractOntologyID(nonexSrc.getRootOntology()); assertNotNull(logicalId); space = factory.createCustomOntologySpace(scopeId, dropSrc, minorSrc); @@ -138,7 +125,7 @@ public class TestClerezzaSpaces { space.addOntology(nonexSrc); assertTrue(space.hasOntology(logicalId)); - logicalId = OWLUtils.guessOntologyIdentifier(dropSrc.getRootOntology()).getOntologyIRI(); + logicalId = OWLUtils.extractOntologyID(dropSrc.getRootOntology()); assertNotNull(logicalId); assertTrue(space.hasOntology(logicalId)); } @@ -158,12 +145,10 @@ public class TestClerezzaSpaces { @Test public void testCreateSpace() throws Exception { CustomOntologySpace space = factory.createCustomOntologySpace(scopeId, dropSrc); - IRI logicalId = null; + OWLOntologyID logicalId = null; Object o = dropSrc.getRootOntology(); - if (o instanceof TripleCollection) logicalId = OWLUtils.guessOntologyIdentifier((TripleCollection) o) - .getOntologyIRI(); - else if (o instanceof OWLOntology) logicalId = OWLUtils.guessOntologyIdentifier((OWLOntology) o) - .getOntologyIRI(); + if (o instanceof TripleCollection) logicalId = OWLUtils.extractOntologyID((TripleCollection) o); + else if (o instanceof OWLOntology) logicalId = OWLUtils.extractOntologyID((OWLOntology) o); assertNotNull(logicalId); assertTrue(space.hasOntology(logicalId)); } @@ -259,8 +244,8 @@ public class TestClerezzaSpaces { public void testRemoveCustomOntology() throws Exception { CustomOntologySpace space = null; space = factory.createCustomOntologySpace(scopeId, dropSrc); - IRI dropId = OWLUtils.guessOntologyIdentifier(dropSrc.getRootOntology()).getOntologyIRI(); - IRI nonexId = OWLUtils.guessOntologyIdentifier(nonexSrc.getRootOntology()).getOntologyIRI(); + OWLOntologyID dropId = OWLUtils.extractOntologyID(dropSrc.getRootOntology()); + OWLOntologyID nonexId = OWLUtils.extractOntologyID(nonexSrc.getRootOntology()); space.addOntology(inMemorySrc); space.addOntology(nonexSrc);
