Mercurial > repos > mikel-egana-aranguren > oppl
annotate OPPL/Tool.java @ 4:4f60202c58d9
Added option to push inferred subsumption axioms into output ontology
author | Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu> |
---|---|
date | Wed, 14 Sep 2011 19:52:06 +0200 |
parents | 5255f1333cc4 |
children | 68935f90c2db |
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 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
20 import java.io.BufferedOutputStream; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
21 import java.io.BufferedWriter; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
22 import java.io.File; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
23 import java.io.FileNotFoundException; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
24 import java.io.FilterOutputStream; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
25 import java.io.OutputStream; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
26 import java.io.PipedOutputStream; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
27 import java.io.PrintStream; |
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
|
28 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
|
29 import java.util.List; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
30 import java.util.Scanner; |
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.Level; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
32 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
|
33 |
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.ChangeExtractor; |
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.OPPLParser; |
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.OPPLScript; |
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.ParserFactory; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
38 import org.coode.oppl.exceptions.QuickFailRuntimeExceptionHandler; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
39 import org.coode.oppl.log.Logging; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
40 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
|
41 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
|
42 import org.coode.parsers.LoggerErrorListener; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
43 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
|
44 import org.semanticweb.owlapi.io.OWLOntologyDocumentTarget; |
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.io.RDFXMLOntologyFormat; |
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.SystemOutDocumentTarget; |
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.model.IRI; |
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
|
48 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
|
49 import org.semanticweb.owlapi.model.OWLAxiomChange; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
50 import org.semanticweb.owlapi.model.OWLOntology; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
51 import org.semanticweb.owlapi.model.OWLOntologyCreationException; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
52 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
|
53 import org.semanticweb.owlapi.model.OWLOntologyStorageException; |
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
|
54 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
|
55 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
|
56 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
|
57 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
|
58 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
|
59 import org.semanticweb.owlapi.util.InferredSubClassAxiomGenerator; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
60 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
61 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
|
62 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
63 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
64 /** |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
65 * @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
|
66 * |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
67 */ |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
68 public class Tool { |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
69 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
70 /** |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
71 * @param OWL file |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
72 * @param OPPL script |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
73 * @throws FileNotFoundException |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
74 * @throws OWLOntologyCreationException |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
75 * @throws OWLOntologyStorageException |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
76 */ |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
77 public static void main(String[] args) throws FileNotFoundException, OWLOntologyCreationException, OWLOntologyStorageException { |
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 // 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
|
80 String OWLFilePath = args [0]; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
81 String OPPL_script_file = args [1]; |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
82 String Output_format = args [2]; |
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
|
83 String Add_inferred = args [3]; |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
84 String OPPL_script_source = ""; |
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 // Load the flat file with script in memory |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
87 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
|
88 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
|
89 while(input.hasNext()) { |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
90 String nextToken = input.next(); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
91 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
|
92 } |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
93 input.close(); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
94 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
95 // Load the OWL ontology |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
96 File owl_file = new File(OWLFilePath); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
97 OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
98 OWLOntology OWL_ontology = manager.loadOntologyFromOntologyDocument(owl_file); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
99 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
100 // Sync reasoner and check consistency |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
101 OWLReasonerFactory reasonerFactory = new PelletReasonerFactory(); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
102 OWLReasoner reasoner = reasonerFactory.createReasoner(OWL_ontology); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
103 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
104 // Parse the OPPL script |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
105 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
|
106 Logger logger = Logger.getLogger(Tool.class.getName()); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
107 Logging.getQueryLogger().setLevel(Level.OFF); // The normal messages are errors for galaxy |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
108 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
|
109 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
|
110 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
|
111 |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
112 // Execute the script |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
113 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
|
114 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
|
115 manager.applyChanges(changes); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
116 |
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
|
117 // Add the inferred axioms as asserted axioms to the original ontology |
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
|
118 if(Add_inferred.equals("Add_inferred")){ |
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
|
119 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
|
120 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
|
121 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
|
122 InferredOntologyGenerator iog = new InferredOntologyGenerator(reasoner, gens); |
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
|
123 iog.fillOntology(manager, OWL_ontology); |
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
|
124 } |
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
|
125 |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
126 // Print the ontology to the standard output so other galaxy tools can operate on the output |
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
|
127 OWLOntologyDocumentTarget documentTarget = new SystemOutDocumentTarget(); |
3
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
128 if(Output_format.equals("OBO")){ |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
129 manager.saveOntology(OWL_ontology, new OBOOntologyFormat(), new SystemOutDocumentTarget()); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
130 } |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
131 else{ |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
132 manager.saveOntology(OWL_ontology, new RDFXMLOntologyFormat(), new SystemOutDocumentTarget()); |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
133 } |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
134 } |
5255f1333cc4
Version 1.0.1
Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff
changeset
|
135 } |