001 package org.nlp2rdf.ontology.impl;
002
003 import com.hp.hpl.jena.ontology.OntModel;
004 import com.hp.hpl.jena.ontology.OntModelSpec;
005 import com.hp.hpl.jena.rdf.model.ModelFactory;
006 import org.apache.log4j.Logger;
007 import org.nlp2rdf.ontology.OntologyLoader;
008
009 import java.util.HashSet;
010 import java.util.Set;
011
012 /**
013 * @author Sebastian Hellmann - http://bis.informatik.uni-leipzig.de/SebastianHellmann
014 */
015 public class SimpleLoader implements OntologyLoader {
016 private static final Logger log = Logger.getLogger(SimpleLoader.class);
017
018 @Override
019 public OntModel loadOntology(String ontologyUri) {
020 return loadOntology(ontologyUri, OntModelSpec.OWL_DL_MEM);
021 }
022
023 @Override
024 public OntModel loadOntology(String ontologyUri, OntModelSpec spec) {
025 OntModel model = ModelFactory.createOntologyModel(spec);
026 model.read(ontologyUri);
027 return model;
028 }
029
030 @Override
031 public void loadImports(OntModel m) {
032 Set<String> loaded = new HashSet<String>();
033 for (String one : m.listImportedOntologyURIs()) {
034 if (loaded.add(one) == false) {
035 log.debug("skipping " + one + " (already load)");
036 continue;
037 }
038 OntModel sm = loadOntology(one);
039 loadImports(sm);
040 m.addSubModel(sm);
041 }
042 }
043 }