Author: alexdma
Date: Wed Nov 2 18:29:39 2011
New Revision: 1196744
URL: http://svn.apache.org/viewvc?rev=1196744&view=rev
Log:
STANBOL-178 :
- Added phony IRI mapper that fools OWL ontology managers into believing all
imports are resolved. This is used to avoid resolving imports during a
conversion process.
- Clerezza to OWLAPI converter now has a method that uses custom ontology
managers for reloading (including one with an attached PhonyIRIMapper).
Added:
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/PhonyIRIMapper.java
incubator/stanbol/trunk/owl/src/main/resources/ontologies/
incubator/stanbol/trunk/owl/src/main/resources/ontologies/blank.owl
Modified:
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/OWLOntologyManagerFactory.java
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/transformation/OWLAPIToClerezzaConverter.java
Modified:
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/OWLOntologyManagerFactory.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/OWLOntologyManagerFactory.java?rev=1196744&r1=1196743&r2=1196744&view=diff
==============================================================================
---
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/OWLOntologyManagerFactory.java
(original)
+++
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/OWLOntologyManagerFactory.java
Wed Nov 2 18:29:39 2011
@@ -42,7 +42,7 @@ public class OWLOntologyManagerFactory {
return mgr;
}
- private static List<OWLOntologyIRIMapper> getMappers(IRI[] dirs) {
+ public static List<OWLOntologyIRIMapper> getMappers(IRI[] dirs) {
List<OWLOntologyIRIMapper> mappers = new
ArrayList<OWLOntologyIRIMapper>();
if (dirs != null) {
for (IRI path : dirs) {
Added:
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/PhonyIRIMapper.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/PhonyIRIMapper.java?rev=1196744&view=auto
==============================================================================
---
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/PhonyIRIMapper.java
(added)
+++
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/PhonyIRIMapper.java
Wed Nov 2 18:29:39 2011
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.stanbol.owl;
+
+import java.net.URISyntaxException;
+import java.util.Set;
+
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntologyIRIMapper;
+
+public class PhonyIRIMapper implements OWLOntologyIRIMapper {
+
+ private Set<IRI> notMapped;
+
+ private IRI blankIri = null;
+
+ private String blankResourcePath = "/ontologies/blank.owl";
+
+ public PhonyIRIMapper(Set<IRI> notMapped) {
+ this.notMapped = notMapped;
+ try {
+ blankIri =
IRI.create(this.getClass().getResource(blankResourcePath));
+ } catch (URISyntaxException e) {
+ // How can it happen?
+ }
+ }
+
+ @Override
+ public IRI getDocumentIRI(IRI arg0) {
+ if (notMapped.contains(arg0)) return null;
+ else return blankIri;
+ }
+
+}
Modified:
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/transformation/OWLAPIToClerezzaConverter.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/transformation/OWLAPIToClerezzaConverter.java?rev=1196744&r1=1196743&r2=1196744&view=diff
==============================================================================
---
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/transformation/OWLAPIToClerezzaConverter.java
(original)
+++
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/transformation/OWLAPIToClerezzaConverter.java
Wed Nov 2 18:29:39 2011
@@ -19,6 +19,7 @@ package org.apache.stanbol.owl.transform
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Iterator;
import org.apache.clerezza.rdf.core.MGraph;
@@ -30,9 +31,12 @@ import org.apache.clerezza.rdf.core.seri
import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
import org.apache.clerezza.rdf.jena.parser.JenaParserProvider;
import org.apache.clerezza.rdf.jena.serializer.JenaSerializerProvider;
+import org.apache.stanbol.owl.PhonyIRIMapper;
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.io.RDFXMLOntologyFormat;
+import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLOntology;
+import org.semanticweb.owlapi.model.OWLOntologyAlreadyExistsException;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
import org.semanticweb.owlapi.model.OWLOntologyStorageException;
@@ -115,13 +119,23 @@ public class OWLAPIToClerezzaConverter {
* @return the equivalent OWL API {@link OWLOntology}.
*/
public static OWLOntology clerezzaGraphToOWLOntology(TripleCollection
graph) {
+ OWLOntologyManager mgr = OWLManager.createOWLOntologyManager();
+ // Never try to import
+ mgr.addIRIMapper(new PhonyIRIMapper(Collections.<IRI> emptySet()));
+ return clerezzaGraphToOWLOntology(graph, mgr);
+ }
+
+ public static OWLOntology clerezzaGraphToOWLOntology(TripleCollection
graph,
+ OWLOntologyManager
ontologyManager) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
SerializingProvider serializingProvider = new JenaSerializerProvider();
serializingProvider.serialize(out, graph, SupportedFormat.RDF_XML);
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
OWLOntology ontology = null;
try {
- ontology =
OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument(in);
+ ontology = ontologyManager.loadOntologyFromOntologyDocument(in);
+ } catch (OWLOntologyAlreadyExistsException e) {
+ ontology = ontologyManager.getOntology(e.getOntologyID());
} catch (OWLOntologyCreationException e) {
log.error("Failed to serialize OWL Ontology " + ontology + "for
conversion", e);
}
Added: incubator/stanbol/trunk/owl/src/main/resources/ontologies/blank.owl
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/main/resources/ontologies/blank.owl?rev=1196744&view=auto
==============================================================================
--- incubator/stanbol/trunk/owl/src/main/resources/ontologies/blank.owl (added)
+++ incubator/stanbol/trunk/owl/src/main/resources/ontologies/blank.owl Wed Nov
2 18:29:39 2011
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+
+<!DOCTYPE rdf:RDF [
+ <!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: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#">
+
+</rdf:RDF>
+
+
+
+<!-- Generated by the OWL API (version 3.2.3.22702)
http://owlapi.sourceforge.net -->
+