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 -->
+


Reply via email to