Mercurial > repos > mikel-egana-aranguren > oppl
annotate OPPL/Tool.java @ 8:40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
author | Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu> |
---|---|
date | Tue, 11 Oct 2011 11:09:52 +0200 |
parents | 756f1f5798bf |
children | 14bfd77f8520 |
rev | line source |
---|---|
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
1 /** |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
2 * Copyright (C) 2011, Mikel EgaƱa Aranguren |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
3 * |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
4 * This program is free software: you can redistribute it and/or modify |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
6 * the Free Software Foundation, either version 3 of the License, or |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
7 * (at your option) any later version. |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
8 * |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
9 * This program is distributed in the hope that it will be useful, |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
12 * GNU General Public License for more details. |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
13 * |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
14 * You should have received a copy of the GNU General Public License |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
15 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
16 */ |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
17 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
18 package es.upm.fi.dia.oeg.oppl.galaxy; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
19 |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
20 import java.io.BufferedWriter; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
21 import java.io.File; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
22 //import java.io.PrintWriter; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
23 //import java.io.FileNotFoundException; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
24 import java.io.IOException; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
25 import java.io.OutputStreamWriter; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
26 import java.net.URISyntaxException; |
4
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
27 import java.util.ArrayList; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
28 import java.util.List; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
29 import java.util.Scanner; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
30 //import java.util.logging.Level; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
31 import java.util.logging.Logger; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
32 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
33 import org.coode.oppl.ChangeExtractor; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
34 import org.coode.oppl.OPPLParser; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
35 import org.coode.oppl.OPPLScript; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
36 import org.coode.oppl.ParserFactory; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
37 import org.coode.oppl.exceptions.QuickFailRuntimeExceptionHandler; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
38 //import org.coode.oppl.log.Logging; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
39 import org.coode.owlapi.obo.parser.OBOOntologyFormat; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
40 import org.coode.parsers.ErrorListener; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
41 import org.coode.parsers.LoggerErrorListener; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
42 //import org.obolibrary.obo2owl.Owl2Obo; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
43 //import org.obolibrary.oboformat.model.OBODoc; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
44 //import org.obolibrary.oboformat.writer.OBOFormatWriter; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
45 import org.semanticweb.owlapi.apibinding.OWLManager; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
46 import org.semanticweb.owlapi.io.RDFXMLOntologyFormat; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
47 import org.semanticweb.owlapi.io.SystemOutDocumentTarget; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
48 import org.semanticweb.owlapi.model.AddAxiom; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
49 import org.semanticweb.owlapi.model.IRI; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
50 import org.semanticweb.owlapi.model.OWLAnnotation; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
51 import org.semanticweb.owlapi.model.OWLAnnotationProperty; |
4
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
52 import org.semanticweb.owlapi.model.OWLAxiom; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
53 import org.semanticweb.owlapi.model.OWLAxiomChange; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
54 import org.semanticweb.owlapi.model.OWLClass; |
5
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
55 import org.semanticweb.owlapi.model.OWLDataFactory; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
56 import org.semanticweb.owlapi.model.OWLLiteral; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
57 //import org.semanticweb.owlapi.model.OWLObjectProperty; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
58 import org.semanticweb.owlapi.model.OWLOntology; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
59 import org.semanticweb.owlapi.model.OWLOntologyChange; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
60 import org.semanticweb.owlapi.model.OWLOntologyCreationException; |
5
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
61 import org.semanticweb.owlapi.model.OWLOntologyIRIMapper; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
62 import org.semanticweb.owlapi.model.OWLOntologyManager; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
63 import org.semanticweb.owlapi.model.OWLOntologyStorageException; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
64 //import org.semanticweb.owlapi.owllink.OWLlinkHTTPXMLReasonerFactory; |
4
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
65 import org.semanticweb.owlapi.reasoner.InferenceType; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
66 import org.semanticweb.owlapi.reasoner.OWLReasoner; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
67 import org.semanticweb.owlapi.reasoner.OWLReasonerFactory; |
4
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
68 import org.semanticweb.owlapi.util.InferredAxiomGenerator; |
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
69 import org.semanticweb.owlapi.util.InferredOntologyGenerator; |
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
70 import org.semanticweb.owlapi.util.InferredSubClassAxiomGenerator; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
71 import org.semanticweb.owlapi.util.OWLEntityRenamer; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
72 import org.semanticweb.owlapi.util.OWLOntologyMerger; |
5
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
73 import org.semanticweb.owlapi.util.SimpleIRIMapper; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
74 import org.semanticweb.owlapi.vocab.OWL2Datatype; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
75 import org.semanticweb.owlapi.vocab.OWLRDFVocabulary; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
76 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
77 import uk.ac.manchester.cs.factplusplus.owlapiv3.FaCTPlusPlusReasonerFactory; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
78 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
79 import com.clarkparsia.pellet.owlapiv3.PelletReasonerFactory; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
80 |
6
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
81 import org.semanticweb.HermiT.Reasoner; |
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
82 |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
83 /** |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
84 * @author Mikel EgaƱa Aranguren |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
85 */ |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
86 public class Tool { |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
87 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
88 /** |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
89 * @throws OWLOntologyCreationException |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
90 * @throws OWLOntologyStorageException |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
91 * @throws IOException |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
92 * @throws URISyntaxException |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
93 */ |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
94 public static void main(String[] args) throws OWLOntologyCreationException, OWLOntologyStorageException, IOException, URISyntaxException { |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
95 // Get the arguments from command-line |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
96 String OWLFilePath = args [0]; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
97 String OPPL_script_file = args [1]; |
5
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
98 String Output_format = args [2]; // OWL|OBO |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
99 String Add_inferred = args [3]; // AddInferred|Whatever |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
100 String imports_file_path = args [4]; // NoImports|Flat tab delimited file: URI Document URI |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
101 String reasoner_type = args [5]; // Pellet|FaCTPlusPlus|HermiT |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
102 String merge_URI = args [6]; // NoMerge|URI for merged ontology |
5
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
103 |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
104 // Load the main ontology |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
105 File owl_file = new File(OWLFilePath); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
106 OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
107 |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
108 // Load the imports if any |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
109 if(!imports_file_path.equals("NoImports")){ |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
110 File imports_file = new File(imports_file_path); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
111 Scanner imports_input = new Scanner(imports_file); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
112 while(imports_input.hasNext()){ |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
113 String nextLine = imports_input.nextLine(); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
114 if(!nextLine.startsWith("#")){ |
6
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
115 String [] URI_documentURI = nextLine.split("\t"); |
5
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
116 IRI ontology_IRI = IRI.create(URI_documentURI[0]); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
117 IRI document_IRI = IRI.create("file://" + URI_documentURI[1]); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
118 OWLOntologyIRIMapper iriMapper = new SimpleIRIMapper(ontology_IRI,document_IRI); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
119 manager.addIRIMapper(iriMapper); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
120 } |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
121 } |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
122 imports_input.close(); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
123 } |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
124 OWLOntology OWL_ontology = manager.loadOntologyFromOntologyDocument(owl_file); |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
125 |
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
126 // Reasoner |
6
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
127 OWLReasonerFactory reasonerFactory = null; |
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
128 OWLReasoner reasoner = null; |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
129 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
130 // Pellet |
6
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
131 if(reasoner_type.equals("Pellet")){ |
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
132 reasonerFactory = new PelletReasonerFactory(); |
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
133 reasoner = reasonerFactory.createReasoner(OWL_ontology); |
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
134 } |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
135 // FaCTPlusPlus |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
136 else if (reasoner_type.equals("FaCTPlusPlus")){ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
137 reasonerFactory = new FaCTPlusPlusReasonerFactory(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
138 reasoner = reasonerFactory.createReasoner(OWL_ontology); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
139 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
140 // HermiT |
6
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
141 else{ |
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
142 reasonerFactory = new Reasoner.ReasonerFactory(); |
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
143 reasoner = reasonerFactory.createReasoner(OWL_ontology); |
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
144 } |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
145 |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
146 // OWLLink: The problem is that Racer, for example, listens in 8080, the same port as Galaxy |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
147 // I have to change Racer settings and OWLLink settings |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
148 // OWLlinkHTTPXMLReasonerFactory factory = new OWLlinkHTTPXMLReasonerFactory(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
149 // reasoner = factory.createReasoner(OWL_ontology); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
150 |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
151 // Load the flat file with script in memory |
5
68935f90c2db
Added OWL imports closure
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
4
diff
changeset
|
152 String OPPL_script_source = ""; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
153 File file = new File(OPPL_script_file); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
154 Scanner input = new Scanner(file); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
155 while(input.hasNext()) { |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
156 String nextToken = input.next(); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
157 OPPL_script_source = OPPL_script_source + " " + nextToken; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
158 } |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
159 input.close(); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
160 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
161 // Parse the OPPL script |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
162 ParserFactory parserFactory = new ParserFactory(manager, OWL_ontology, reasoner); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
163 Logger logger = Logger.getLogger(Tool.class.getName()); |
7
756f1f5798bf
Added (Properly) reasoner option (Pellet or HermiT)
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
6
diff
changeset
|
164 // Logging.getQueryLogger().setLevel(Level.OFF); // The normal messages are errors for galaxy (Fixed in Galaxy by 2 > /dev/null) |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
165 ErrorListener errorListener = (ErrorListener)new LoggerErrorListener(logger); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
166 OPPLParser opplparser = parserFactory.build(errorListener); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
167 OPPLScript OPPLscript = opplparser.parse(OPPL_script_source); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
168 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
169 // Execute the script |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
170 ChangeExtractor extractor = new ChangeExtractor(new QuickFailRuntimeExceptionHandler(), true); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
171 List<OWLAxiomChange> changes = extractor.visit(OPPLscript); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
172 manager.applyChanges(changes); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
173 |
4
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
174 // Add the inferred axioms as asserted axioms to the original ontology |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
175 if(Add_inferred.equals("AddInferred")){ |
4
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
176 reasoner.precomputeInferences(InferenceType.CLASS_HIERARCHY); |
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
177 List<InferredAxiomGenerator<? extends OWLAxiom>> gens = new ArrayList<InferredAxiomGenerator<? extends OWLAxiom>>(); |
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
178 gens.add(new InferredSubClassAxiomGenerator()); |
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
179 InferredOntologyGenerator iog = new InferredOntologyGenerator(reasoner, gens); |
6
3740505b579c
Added reasoner option: Pellet or HermiT
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
5
diff
changeset
|
180 iog.fillOntology(manager, OWL_ontology); |
4
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
181 } |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
182 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
183 // Print the ontology to the standard output so other galaxy tools can operate on it |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
184 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
185 // Do not merge ontologies |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
186 if(merge_URI.equals("NoMerge")){ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
187 saveOntology(manager, OWL_ontology, Output_format); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
188 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
189 // Merge ontologies |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
190 else{ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
191 OWLOntologyMerger merger = new OWLOntologyMerger(manager); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
192 IRI mergedOntologyIRI = IRI.create(merge_URI); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
193 OWLOntology merged = merger.createMergedOntology(manager, mergedOntologyIRI); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
194 saveOntology(manager, merged, Output_format); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
195 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
196 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
197 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
198 private static void saveOntology (OWLOntologyManager manager, OWLOntology ontology, String Format) throws OWLOntologyStorageException, IOException, URISyntaxException { |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
199 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
200 // OBO format |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
201 if(Format.equals("OBO")){ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
202 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
203 // OWL API generates bad OBO but OBOformat doesn't work either so I correct the OWL API problems (More predictable) in a temporary file |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
204 // Very inefficient but no time for another solution |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
205 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
206 OWLDataFactory factory = manager.getOWLDataFactory(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
207 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
208 OWLEntityRenamer renamer = new OWLEntityRenamer (manager, manager.getOntologies()); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
209 OWLAnnotationProperty label = factory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_LABEL.getIRI()); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
210 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
211 for(OWLClass cls : ontology.getClassesInSignature()){ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
212 // Remove annotations (OWL API generates bad OBO annotations) |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
213 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
214 // Keep rdfs:label |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
215 String class_name = null; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
216 for (OWLAnnotation annotation : cls.getAnnotations(ontology, label)) { |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
217 if (annotation.getValue() instanceof OWLLiteral) { |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
218 OWLLiteral val = (OWLLiteral) annotation.getValue(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
219 class_name = val.getLiteral(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
220 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
221 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
222 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
223 // I have to remove all the annotations cause I don't know which ones are rendered properly |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
224 manager.removeAxioms(ontology,ontology.getAnnotationAssertionAxioms(cls.getIRI())); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
225 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
226 // Add rdfs:label again |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
227 OWLAnnotation labelAnno = factory.getOWLAnnotation(factory.getOWLAnnotationProperty( |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
228 OWLRDFVocabulary.RDFS_LABEL.getIRI()),factory.getOWLLiteral(class_name,OWL2Datatype.XSD_STRING)); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
229 OWLAxiom ax = factory.getOWLAnnotationAssertionAxiom(cls.getIRI(), labelAnno); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
230 manager.applyChange(new AddAxiom(ontology, ax)); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
231 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
232 // Rename entities |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
233 String cls_IRI = cls.getIRI().toString(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
234 String cls_proper_IRI = cls_IRI.replace("_", ":"); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
235 List<OWLOntologyChange> changes = renamer.changeIRI(cls, IRI.create(cls_proper_IRI)); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
236 manager.applyChanges(changes); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
237 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
238 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
239 File file = new File("tmp.obo"); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
240 manager.saveOntology(ontology, new OBOOntologyFormat(), IRI.create(file.toURI())); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
241 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
242 Scanner input = new Scanner(file); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
243 String buffer = ""; |
4
4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
3
diff
changeset
|
244 |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
245 while(input.hasNext()){ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
246 String nextLine = input.nextLine(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
247 if(nextLine.contains("[Term]") || nextLine.contains("[Typedef]")){ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
248 if(buffer.isEmpty()){ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
249 bw.write(buffer); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
250 bw.newLine(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
251 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
252 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
253 if(!nextLine.contains("is_a: Thing") && !nextLine.contains("auto-generated-by:") && !nextLine.contains("id_space:") && !nextLine.contains("! ----")){ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
254 if(!nextLine.isEmpty() && !buffer.contains("relationship:")){ |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
255 bw.write(nextLine); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
256 bw.newLine(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
257 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
258 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
259 buffer = nextLine; |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
260 } |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
261 input.close(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
262 bw.close(); |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
263 file.delete(); |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
264 } |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
265 |
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
266 //OWL format |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
267 else{ |
8
40adbcb2a7cc
Added merge function and FaCT++ support. Improved OBO render
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
7
diff
changeset
|
268 manager.saveOntology(ontology, new RDFXMLOntologyFormat(), new SystemOutDocumentTarget()); |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
269 } |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
270 } |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
271 } |