OWL2Parser.java revision d25c69509848853b0b15b93e3cc180cab81047ac
d25c69509848853b0b15b93e3cc180cab81047acChristian Maederimport org.coode.owlapi.owlxml.renderer.OWLXMLRenderer;
d25c69509848853b0b15b93e3cc180cab81047acChristian Maederimport org.coode.owlapi.rdf.rdfxml.RDFXMLRenderer;
2578a6d217296401d347302c9104fee179bd0470Francisc Nicolae Bungiuimport org.semanticweb.owlapi.apibinding.OWLManager;
d25c69509848853b0b15b93e3cc180cab81047acChristian Maederimport org.semanticweb.owlapi.io.OWLRendererException;
2578a6d217296401d347302c9104fee179bd0470Francisc Nicolae Bungiuimport org.semanticweb.owlapi.model.OWLOntology;
2578a6d217296401d347302c9104fee179bd0470Francisc Nicolae Bungiuimport org.semanticweb.owlapi.model.OWLOntologyManager;
478b7abe044f6dcc5bb0db7cd9155ddc1730ed1bFrancisc Nicolae Bungiuimport org.semanticweb.owlapi.util.OWLOntologyMerger;
2578a6d217296401d347302c9104fee179bd0470Francisc Nicolae Bungiuimport uk.ac.manchester.cs.owl.owlapi.mansyntaxrenderer.ManchesterOWLSyntaxRenderer;
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static enum OPTION {OWL_XML, MANCHESTER, RDF_XML}
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static final List<OWLOntology> loadedImportsList = new ArrayList<OWLOntology>();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static final ArrayList<IRI> importsIRI = new ArrayList<IRI>();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static final Map<OWLOntology, List<OWLOntology>> m = new HashMap<OWLOntology, List<OWLOntology>>();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static final Set<OWLOntology> s = new HashSet<OWLOntology>();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static final Set<OWLOntology> expanded = new HashSet<OWLOntology>();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder System.out.println("Usage: processor <URI> [FILENAME] <OPTION>");
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // A simple example of how to load and save an ontology
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // args[0]: IRI
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // args[1]: name of output file
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // args[2]: type of output file: xml, rdf, or otherwise assume Manchester syntax
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder out = new BufferedWriter(new FileWriter(filename));
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // args[0]: IRI
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // args[1]: type of output (or output file for Manchester syntax)
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // xml (OWL XML),
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // or otherwise use argument as file name for Manchester syntax
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // for xml and rdf output goes to standard output, i.e. System.out
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder out = new BufferedWriter(new FileWriter(filename));
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder /* Load an ontology from a physical IRI */
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // System.out.println("IRI: " + physicalIRI + "\n");
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // Now do the loading
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder OWLOntology ontology = manager.loadOntologyFromOntologyDocument(physicalIRI);
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder if (importsIRI.contains(ontology.getOntologyID().getOntologyIRI())) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder importsIRI.remove(importsIRI.lastIndexOf(ontology.getOntologyID().getOntologyIRI()));
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder if (loadedImportsList.contains(ontology)) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder OWLOntologyMerger merger = new OWLOntologyMerger(manager);
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder String str = ontology.getOntologyID().getOntologyIRI().toQuotedString();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder notag = notag.replaceAll("Ontology\\(", "");
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder loadedImportsList.remove(loadedImportsList.indexOf(ontology));
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder Object aux[] = loadedImportsList.toArray();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // System.out.println("NAME: " + merged_name + "\n");
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder IRI mergedOntologyIRI = IRI.create(merged_name);
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder // System.out.println("MERGED_IRI " + mergedOntologyIRI + "\n");
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder OWLOntology merged = merger.createMergedOntology(manager, mergedOntologyIRI);
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder System.err.println("OWL parse error: " + ex.getMessage());
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static void getImportsList(OWLOntology ontology, OWLOntologyManager om) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder List<OWLOntology> empty = Collections.emptyList();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder List<OWLOntology> l = new ArrayList<OWLOntology>();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder ArrayList<OWLOntology> unSavedImports = new ArrayList<OWLOntology>();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder if (om.getDirectImports(ontology).isEmpty()) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder for (OWLOntology imported : om.getDirectImports(ontology)) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder if (!importsIRI.contains(imported.getOntologyID().getOntologyIRI())) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder importsIRI.add(imported.getOntologyID().getOntologyIRI());
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder System.err.println("Error getImportsList!");
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static void parseZeroImports(BufferedWriter out, OWLOntology ontology) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder parsing_option(ontos, out, ontos.getOWLOntologyManager());
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static void parseImports(BufferedWriter out, OWLOntology ontology) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder for (Map.Entry<OWLOntology, List<OWLOntology>> owlOntologyListEntry : m.entrySet()) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder Map.Entry pairs = (Map.Entry) owlOntologyListEntry;
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder OWLOntology onto = (OWLOntology) pairs.getKey();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder parsing_option(onto, out, onto.getOWLOntologyManager());
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder if (onto.getOntologyID().toString().equals(ontology.getOntologyID().toString()))
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder OWLOntology aux_ont = (OWLOntology) it.next();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static Boolean checkset(Collection it) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder Set<OWLOntology> aux = new HashSet<OWLOntology>();
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static Boolean equalcollections(Set<OWLOntology> l1, Set<OWLOntology> l2) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder for (Map.Entry<OWLOntology, List<OWLOntology>> owlOntologyListEntry : m.entrySet()) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder Map.Entry pairs = (Map.Entry) owlOntologyListEntry;
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder if (pairs.getValue().toString().equals("[]")) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static void parsing_option(OWLOntology onto, BufferedWriter out, OWLOntologyManager mng) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static void parse(OWLOntology onto, BufferedWriter out) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder ManchesterOWLSyntaxRenderer rendi = new ManchesterOWLSyntaxRenderer(onto.getOWLOntologyManager());
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder System.err.println("Error by ManchesterParser!");
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static void parse2xml(OWLOntology onto, BufferedWriter out, OWLOntologyManager mng) {
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder OWLXMLRenderer ren = new OWLXMLRenderer(mng);
d25c69509848853b0b15b93e3cc180cab81047acChristian Maeder private static void parse2rdf(OWLOntology onto, BufferedWriter out, OWLOntologyManager mng) {