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    }