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/07/15 18:36:17 UTC
svn commit: r1147221 - in /incubator/stanbol/trunk/owl: ./
src/main/java/org/apache/stanbol/owl/util/
src/main/java/org/apache/stanbol/owlapi/trasformation/
src/test/java/org/apache/stanbol/owl/util/
src/test/java/org/apache/stanbol/owlapi/trasformatio...
Author: alexdma
Date: Fri Jul 15 16:36:16 2011
New Revision: 1147221
URL: http://svn.apache.org/viewvc?rev=1147221&view=rev
Log:
STANBOL-285 :
- Added URI util to stanbol/owl (TODO: centralise uri management utilities?)
Added:
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/AutoIRIMapper.java
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/URIUtils.java
incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/
incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestArchives.java
incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestUriUtils.java
incubator/stanbol/trunk/owl/src/test/resources/
incubator/stanbol/trunk/owl/src/test/resources/ontologies/
incubator/stanbol/trunk/owl/src/test/resources/ontologies/archivetest2.owl
incubator/stanbol/trunk/owl/src/test/resources/ontologies/ontoarchive.zip (with props)
Removed:
incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owlapi/trasformation/
incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owlapi/trasformation/
Modified:
incubator/stanbol/trunk/owl/pom.xml
Modified: incubator/stanbol/trunk/owl/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/pom.xml?rev=1147221&r1=1147220&r2=1147221&view=diff
==============================================================================
--- incubator/stanbol/trunk/owl/pom.xml (original)
+++ incubator/stanbol/trunk/owl/pom.xml Fri Jul 15 16:36:16 2011
@@ -135,7 +135,6 @@
<artifactId>jettison</artifactId>
</dependency>
-
<!-- OWL deps -->
<dependency>
<groupId>com.hp.hpl.jena</groupId>
@@ -183,6 +182,16 @@
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
+
+ <!-- Misc deps -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
<!-- Diagnostics deps -->
<dependency>
Added: incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/AutoIRIMapper.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/AutoIRIMapper.java?rev=1147221&view=auto
==============================================================================
--- incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/AutoIRIMapper.java (added)
+++ incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/AutoIRIMapper.java Fri Jul 15 16:36:16 2011
@@ -0,0 +1,363 @@
+package org.apache.stanbol.owl.util;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.zip.GZIPInputStream;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.apache.commons.compress.archivers.ArchiveEntry;
+import org.apache.commons.compress.archivers.ArchiveException;
+import org.apache.commons.compress.archivers.ArchiveInputStream;
+import org.apache.commons.compress.archivers.ArchiveStreamFactory;
+import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
+import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
+import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
+import org.apache.commons.io.FilenameUtils;
+import org.semanticweb.owlapi.model.IRI;
+import org.semanticweb.owlapi.model.OWLOntologyIRIMapper;
+import org.semanticweb.owlapi.model.OWLRuntimeException;
+import org.semanticweb.owlapi.vocab.Namespaces;
+import org.semanticweb.owlapi.vocab.OWLXMLVocabulary;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Author: Matthew Horridge<br>
+ * The University Of Manchester<br>
+ * Bio-Health Informatics Group<br>
+ * Date: 26-Apr-2007<br>
+ * <br>
+ * <p/>
+ * A mapper which given a root folder attempts to automatically discover and map files to ontologies. The
+ * mapper is only capable of mapping ontologies in RDF/XML and OWL/XML (other serialisations are not
+ * supported).
+ */
+public class AutoIRIMapper extends DefaultHandler implements OWLOntologyIRIMapper {
+
+ private Set<String> fileExtensions;
+
+ private File root;
+
+ private boolean mapped;
+
+ private boolean recursive;
+
+ private Map<String,OntologyRootElementHandler> handlerMap;
+
+ private File currentFile;
+
+ private Map<IRI,IRI> ontologyIRI2PhysicalURIMap;
+
+ private Map<String,IRI> oboFileMap;
+
+ private SAXParserFactory parserFactory;
+
+ private static final String[] DEFAULT_EXTENSIONS = new String[] {"owl", "xml", "rdf", "omn"};
+
+ public AutoIRIMapper(File rootDirectory, boolean recursive) {
+ this(rootDirectory, DEFAULT_EXTENSIONS, recursive);
+ }
+
+ /**
+ * Creates an auto-mapper which examines ontologies that reside in the specified root folder (and possibly
+ * sub-folders).
+ *
+ * @param rootDirectory
+ * The root directory which should be searched for ontologies.
+ * @param recursive
+ * Sub directories will be searched recursively if <code>true</code>.
+ */
+ public AutoIRIMapper(File rootDirectory, String[] fileExts, boolean recursive) {
+ this.root = rootDirectory;
+ this.recursive = recursive;
+ ontologyIRI2PhysicalURIMap = new HashMap<IRI,IRI>();
+ oboFileMap = new HashMap<String,IRI>();
+ fileExtensions = new HashSet<String>();
+ for (String ext : fileExts)
+ fileExtensions.add(ext);
+ mapped = false;
+ handlerMap = new HashMap<String,OntologyRootElementHandler>();
+ handlerMap.put(Namespaces.RDF + "RDF", new RDFXMLOntologyRootElementHandler());
+ handlerMap.put(OWLXMLVocabulary.ONTOLOGY.toString(), new OWLXMLOntologyRootElementHandler());
+ parserFactory = SAXParserFactory.newInstance();
+ parserFactory.setNamespaceAware(true);
+ }
+
+ /**
+ * The mapper only examines files that have specified file extensions. This method returns the file
+ * extensions that cause a file to be examined.
+ *
+ * @return A <code>Set</code> of file extensions.
+ */
+ public Set<String> getFileExtensions() {
+ return fileExtensions;
+ }
+
+ /**
+ * Sets the extensions of files that are to be examined for ontological content. (By default the
+ * extensions are, owl, xml and rdf). Only files that have the specified extensions will be examined to
+ * see if they contain ontologies.
+ */
+ public void setFileExtensions(Set<String> extensions) {
+ this.fileExtensions.clear();
+ this.fileExtensions.addAll(extensions);
+ }
+
+ /**
+ * Gets the set of ontology IRIs that this mapper has found
+ *
+ * @return A <code>Set</code> of ontology (logical) URIs
+ */
+ public Set<IRI> getOntologyIRIs() {
+ if (!mapped) {
+ mapFiles();
+ }
+ return new HashSet<IRI>(ontologyIRI2PhysicalURIMap.keySet());
+ }
+
+ public void update() {
+ mapFiles();
+ }
+
+ public IRI getDocumentIRI(IRI ontologyIRI) {
+ if (!mapped) {
+ mapFiles();
+ }
+ if (ontologyIRI.toString().endsWith(".obo")) {
+ String path = ontologyIRI.toURI().getPath();
+ if (path != null) {
+ int lastSepIndex = path.lastIndexOf('/');
+ String name = path.substring(lastSepIndex + 1, path.length());
+ IRI documentIRI = oboFileMap.get(name);
+ if (documentIRI != null) {
+ return documentIRI;
+ }
+ }
+ }
+ return ontologyIRI2PhysicalURIMap.get(ontologyIRI);
+ }
+
+ private void mapFiles() {
+ mapped = true;
+ ontologyIRI2PhysicalURIMap.clear();
+ processFile(root);
+ }
+
+ private void processFile(File f) {
+ if (f.isHidden()) {
+ return;
+ }
+ File[] files = null;
+
+ if (f.isDirectory())
+ files = f.listFiles();
+ else {
+
+ try {
+ ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(new BufferedInputStream(new FileInputStream(f)));
+
+ //getArchiveInputStream(f.getName(), new FileInputStream(f));
+ ArchiveEntry entry;
+ while ((entry = ais.getNextEntry())!=null) {
+
+
+ System.out.println(entry);
+
+
+ };
+
+
+
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ArchiveException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+
+ if (files != null) {
+ for (File file : files) {
+ if (file.isDirectory() && recursive) {
+ processFile(file);
+ } else {
+ // boolean parsedFile = false;
+ if (file.getName().endsWith(".obo")) {
+ oboFileMap.put(file.getName(), IRI.create(file));
+ } else if (file.getName().endsWith(".omn")) {
+ parseManchesterSyntaxFile(file);
+ } else {
+ for (String ext : fileExtensions) {
+ if (file.getName().endsWith(ext)) {
+ parseFile(file);
+ // parsedFile = true;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void parseFile(File file) {
+ try {
+ InputStream is = new BufferedInputStream(new FileInputStream(file));
+ try {
+ currentFile = file;
+ SAXParser parser = parserFactory.newSAXParser();
+ parser.parse(is, this);
+ } catch (ParserConfigurationException e) {
+ throw new OWLRuntimeException(e);
+ } catch (SAXException e) {
+ // We simply aren't interested in any parsing problems - if
+ // we can't parse a file, then we can't map it and we don't
+ // care!
+ } catch (IOException e) {
+ // Again - these kinds of exceptions are of no interest to us!
+ }
+ } catch (FileNotFoundException e) {
+ // Don't care?
+ }
+ }
+
+ private void parseManchesterSyntaxFile(File file) {
+ BufferedReader br = null;
+ try {
+ // Ontology: <URI>
+ br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
+ String line;
+ IRI ontologyIRI = null;
+ while ((line = br.readLine()) != null) {
+ StringTokenizer tokenizer = new StringTokenizer(line, " \r\n", false);
+ while (tokenizer.hasMoreTokens()) {
+ String tok = tokenizer.nextToken();
+ if (tok.startsWith("<") && tok.endsWith(">")) {
+ ontologyIRI = IRI.create(tok.substring(1, tok.length() - 1));
+ ontologyIRI2PhysicalURIMap.put(ontologyIRI, IRI.create(file));
+ break;
+ }
+ }
+ if (ontologyIRI != null) {
+ break;
+ }
+ }
+ } catch (IOException e) {
+ // Ignore - don't care
+ } finally {
+ try {
+ br.close();
+ } catch (IOException e2) {
+ // no operation
+ }
+ }
+ }
+
+ @Override
+ @SuppressWarnings("unused")
+ public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
+ OntologyRootElementHandler handler = handlerMap.get(uri + localName);
+ if (handler != null) {
+ IRI ontologyIRI = handler.handle(attributes);
+ if (ontologyIRI != null) {
+ ontologyIRI2PhysicalURIMap.put(ontologyIRI, IRI.create(currentFile));
+ }
+ throw new SAXException();
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("AutoURIMapper: (");
+ sb.append(ontologyIRI2PhysicalURIMap.size());
+ sb.append(" ontologies)\n");
+ for (IRI iri : ontologyIRI2PhysicalURIMap.keySet()) {
+ sb.append(" ");
+ sb.append(iri.toQuotedString());
+ sb.append(" -> ");
+ sb.append(ontologyIRI2PhysicalURIMap.get(iri));
+ sb.append("\n");
+ }
+ return sb.toString();
+ }
+
+ /**
+ * A simple interface which extracts an ontology URI from a set of element attributes.
+ */
+ private interface OntologyRootElementHandler {
+
+ /**
+ * Gets the ontology URI.
+ *
+ * @param attributes
+ * The attributes which will be examined for the ontology URI.
+ * @return The ontology URI or <code>null</code> if no ontology URI could be found.
+ */
+ IRI handle(Attributes attributes);
+ }
+
+ /**
+ * A handler to handle RDF/XML files. The xml:base (if present) is taken to be the ontology URI of the
+ * ontology document being parsed.
+ */
+ private static class RDFXMLOntologyRootElementHandler implements OntologyRootElementHandler {
+
+ public RDFXMLOntologyRootElementHandler() {
+
+ }
+
+ public IRI handle(Attributes attributes) {
+ String baseValue = attributes.getValue(Namespaces.XML.toString(), "base");
+ if (baseValue == null) {
+ return null;
+ }
+ return IRI.create(baseValue);
+ }
+ }
+
+ /**
+ * A handler that can handle OWL/XML files.
+ */
+ private static class OWLXMLOntologyRootElementHandler implements OntologyRootElementHandler {
+
+ public OWLXMLOntologyRootElementHandler() {
+
+ }
+
+ public IRI handle(Attributes attributes) {
+ String ontURI = attributes.getValue(Namespaces.OWL.toString(), "ontologyIRI");
+ if (ontURI == null) {
+ ontURI = attributes.getValue(Namespaces.OWL.toString(), "ontologyIRI");
+ }
+ if (ontURI == null) {
+ return null;
+ }
+ return IRI.create(ontURI);
+ }
+ }
+
+
+
+}
\ No newline at end of file
Added: incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/URIUtils.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/URIUtils.java?rev=1147221&view=auto
==============================================================================
--- incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/URIUtils.java (added)
+++ incubator/stanbol/trunk/owl/src/main/java/org/apache/stanbol/owl/util/URIUtils.java Fri Jul 15 16:36:16 2011
@@ -0,0 +1,66 @@
+/*
+ * 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.util;
+
+import java.net.URI;
+
+import org.semanticweb.owlapi.model.IRI;
+
+public class URIUtils {
+
+ public static IRI upOne(IRI iri) {
+ return upOne(iri.toURI());
+ }
+
+ /**
+ * Removes either the fragment, or query, or last path component from a URI, whatever it finds first.
+ *
+ * @param uri
+ * @return
+ */
+ public static IRI upOne(URI uri) {
+ int index = -1;
+ String tmpstr = uri.toString();
+ // Strip the fragment
+ String frag = uri.getFragment();
+ if (frag != null && !frag.isEmpty()) index = tmpstr.length() - frag.length() - 1;
+ else
+ // Strip the query
+ {
+ frag = uri.getQuery();
+ if (frag != null && !frag.isEmpty()) index = tmpstr.length() - frag.length() - 1;
+ else
+ // Strip the slash part
+ {
+ frag = uri.getPath();
+ if (frag != null && !frag.isEmpty()) {
+ int i = frag.lastIndexOf("/");
+ boolean trimslash = false;
+ // If it ends with a slash, remove that too
+ if (i == frag.length() - 1) {
+ trimslash = true;
+ frag = frag.substring(0, i);
+ }
+ index = tmpstr.length() - frag.length() + frag.lastIndexOf("/") + (trimslash ? -1 : 0);
+ }
+ }
+ }
+ if (index >= 0) return IRI.create(tmpstr.substring(0, index));
+ else return IRI.create(uri);
+ }
+
+}
Added: incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestArchives.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestArchives.java?rev=1147221&view=auto
==============================================================================
--- incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestArchives.java (added)
+++ incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestArchives.java Fri Jul 15 16:36:16 2011
@@ -0,0 +1,22 @@
+package org.apache.stanbol.owl.util;
+
+import java.io.File;
+import java.net.URI;
+
+import org.junit.Test;
+import org.semanticweb.owlapi.apibinding.OWLManager;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+
+public class TestArchives {
+
+ @Test
+ public void testIRIMapper() throws Exception {
+ URI uri = getClass().getResource("/ontologies/ontoarchive.zip").toURI();
+ File f = new File(uri);
+ OWLOntologyManager mgr = OWLManager.createOWLOntologyManager();
+ AutoIRIMapper mapp = new AutoIRIMapper(f, true);
+ mgr.addIRIMapper(mapp);
+ mapp.update();
+ }
+
+}
Added: incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestUriUtils.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestUriUtils.java?rev=1147221&view=auto
==============================================================================
--- incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestUriUtils.java (added)
+++ incubator/stanbol/trunk/owl/src/test/java/org/apache/stanbol/owl/util/TestUriUtils.java Fri Jul 15 16:36:16 2011
@@ -0,0 +1,52 @@
+/*
+ * 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.util;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.semanticweb.owlapi.model.IRI;
+
+public class TestUriUtils {
+
+ private String _BASE = "http://www.ontologydesignpatterns.org/registry/explanation";
+
+ private IRI iri_hash = IRI.create(_BASE + ".owl#ExplanationSchemaCatalog");
+
+ private IRI iri_slash = IRI.create(_BASE + "/ExplanationSchemaCatalog");
+
+ private IRI iri_slash_end = IRI.create(_BASE + "/ExplanationSchemaCatalog/");
+
+ private IRI iri_query = IRI.create(_BASE + "?arg1=value1&arg2=value2");
+
+ private IRI iri_slash_query = IRI.create(_BASE + "/?arg1=value1&arg2=value2");
+
+ /**
+ * Test that every IRI configuration is stripped as expected.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testUpOne() throws Exception {
+ assertEquals(_BASE + ".owl", URIUtils.upOne(iri_hash).toString());
+ assertEquals(_BASE, URIUtils.upOne(iri_slash).toString());
+ assertEquals(_BASE, URIUtils.upOne(iri_slash_end).toString());
+ assertEquals(_BASE, URIUtils.upOne(iri_query).toString());
+ assertEquals(_BASE + "/", URIUtils.upOne(iri_slash_query).toString());
+ }
+
+}
Added: incubator/stanbol/trunk/owl/src/test/resources/ontologies/archivetest2.owl
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/test/resources/ontologies/archivetest2.owl?rev=1147221&view=auto
==============================================================================
--- incubator/stanbol/trunk/owl/src/test/resources/ontologies/archivetest2.owl (added)
+++ incubator/stanbol/trunk/owl/src/test/resources/ontologies/archivetest2.owl Fri Jul 15 16:36:16 2011
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+
+
+<!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="http://www.semanticweb.org/ontologies/archivetest2.owl#"
+ xml:base="http://www.semanticweb.org/ontologies/archivetest2.owl"
+ 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#">
+ <owl:Ontology rdf:about="http://www.semanticweb.org/ontologies/archivetest2.owl"/>
+</rdf:RDF>
+
+
+
+<!-- Generated by the OWL API (version 3.2.3.22702) http://owlapi.sourceforge.net -->
+
Added: incubator/stanbol/trunk/owl/src/test/resources/ontologies/ontoarchive.zip
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/owl/src/test/resources/ontologies/ontoarchive.zip?rev=1147221&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/stanbol/trunk/owl/src/test/resources/ontologies/ontoarchive.zip
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream