diff --git a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/LocalOntology.java b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/LocalOntology.java index f106594..5800760 100644 --- a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/LocalOntology.java +++ b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/LocalOntology.java @@ -62,10 +62,8 @@ public LocalOntology() { //only initialize all the static variables //if first time called to this ontology constructor if (ontology == null) { - if (LOG.isInfoEnabled()) { - LOG.info("Creating new ontology"); - } - parser = new OwlParser(); + LOG.info("Creating new ontology client and parser implementation."); + parser = new OntologyParserImpl(); ontology = this; } if (ontologyModel == null) @@ -87,24 +85,25 @@ public Ontology getInstance() { } /** - * Load the default sweetAll.owl ontology - * from - * https://raw.githubusercontent.com/ESIPFed/sweet/master/2.4/sweetAll.owl + * Load the default sweetAll.ttl ontology + * from + * http://sweetontology.net/sweetAll.ttl */ @Override public void load() { URL ontURL = null; try { - ontURL = new URL("https://raw.githubusercontent.com/ESIPFed/sweet/master/2.4/sweetAll.owl"); - //ontURL = new URL("https://raw.githubusercontent.com/ESIPFed/sweet/master/2.4/reprDataProduct.owl"); + ontURL = new URL("http://sweetontology.net/sweetAll.ttl"); } catch (MalformedURLException e) { LOG.error("Error when attempting to create URL resource: ", e); } ontArrayList = new ArrayList<>(); - try { - ontArrayList.add(ontURL.toURI().toString()); - } catch (URISyntaxException e) { - LOG.error("Error in URL syntax, please check your Ontology resource: ", e); + if (ontURL != null) { + try { + ontArrayList.add(ontURL.toURI().toString()); + } catch (URISyntaxException e) { + LOG.error("Error in URL syntax, please check your Ontology resource: ", e); + } } if (!ontArrayList.isEmpty()) { load(ontArrayList.stream().toArray(String[]::new)); @@ -126,8 +125,21 @@ public void load(String[] urls) { } private void load(Object m, String url) { + String lang = null; try { - ((OntModel) m).read(url, null, null); + switch (url.substring(url.lastIndexOf('.') + 1)) { + case "ttl": + lang = "TURTLE"; + break; + //null represents the default language, "RDF/XML". + //"RDF/XML-ABBREV" is a synonym for "RDF/XML". + case "rdf": + case "owl": { + lang = "RDF/XML"; + break; + } + } + ((OntModel) m).read(url, null, lang); LOG.info("Successfully processed {}", url); } catch (Exception e) { LOG.error("Failed whilst attempting to read ontology {}: Error: ", url, e); @@ -141,7 +153,7 @@ private void load(Object m, String url) { */ public OntologyParser getParser() { if (parser == null) { - parser = new OwlParser(); + parser = new OntologyParserImpl(); } return parser; } @@ -229,6 +241,7 @@ public Iterator subclasses(String entitySearchTerm) { * @return an {@link java.util.Iterator} containing synonyms string tokens * or an empty if no synonyms exist for the given queryKeyPhrase. */ + @SuppressWarnings("unchecked") @Override public Iterator synonyms(String queryKeyPhrase) { diff --git a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OwlParser.java b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyParserImpl.java similarity index 97% rename from core/src/main/java/org/apache/sdap/mudrod/ontology/process/OwlParser.java rename to core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyParserImpl.java index 3f12cd6..6376f28 100644 --- a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OwlParser.java +++ b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyParserImpl.java @@ -32,12 +32,12 @@ * implementation for W3C OWL * files. */ -public class OwlParser implements OntologyParser { +public class OntologyParserImpl implements OntologyParser { private Ontology ont; private List roots = new ArrayList<>(); - public OwlParser() { + public OntologyParserImpl() { //default constructor } @@ -122,7 +122,7 @@ public Iterator rootClasses(OntModel m) { //assume ontology has root classes processSingle(m); } else { - //check for presence of aggregate/collection ontologies such as sweetAll.owl + //check for presence of aggregate/collection ontologies such as sweetAll.ttl processCollection(m); } diff --git a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/NormalizeFeatures.java b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/NormalizeFeatures.java index 458ccbb..7e51933 100644 --- a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/NormalizeFeatures.java +++ b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/NormalizeFeatures.java @@ -35,7 +35,6 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; -import java.util.regex.Pattern; public class NormalizeFeatures extends DiscoveryStepAbstract { diff --git a/core/src/test/java/org/apache/sdap/mudrod/ontology/process/TestLocalOntology.java b/core/src/test/java/org/apache/sdap/mudrod/ontology/process/TestLocalOntology.java index 192a29b..587a9ed 100644 --- a/core/src/test/java/org/apache/sdap/mudrod/ontology/process/TestLocalOntology.java +++ b/core/src/test/java/org/apache/sdap/mudrod/ontology/process/TestLocalOntology.java @@ -13,7 +13,10 @@ */ package org.apache.sdap.mudrod.ontology.process; -import static org.junit.Assert.*; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import java.io.IOException; diff --git a/pom.xml b/pom.xml index 6d1414d..706e30d 100644 --- a/pom.xml +++ b/pom.xml @@ -129,7 +129,7 @@ 3.0.4 1.0.1 0.8.0 - 3.3.0 + 3.6.0 UTF-8 5.2.0 @@ -494,6 +494,12 @@ ${jena.version} compile + + org.apache.jena + apache-jena-libs + pom + ${jena.version} +