Repository 'oppl'
hg clone https://toolshed.g2.bx.psu.edu/repos/mikel-egana-aranguren/oppl

Changeset 17:c9e01f86b07c (2012-08-20)
Previous changeset 16:6c25e717c896 (2012-08-02) Next changeset 18:d3616fac4ca5 (2012-09-20)
Commit message:
New tool added for merging imported ontologies (GalaxyOWLAPI and README changed and test ontologies added accordingly). Memory settings changed in all the tools XML files
modified:
OPPL/README
OPPL/inference.xml
OPPL/oppl.xml
OPPL/oppl_query.xml
OPPL/query.xml
OPPL/src/GalaxyOWLAPI.java
added:
OPPL/merge.jar
OPPL/merge.xml
OPPL/merge_lib/FaCTpp-OWLAPI-3.2-v1.5.2.jar
OPPL/merge_lib/HermiT.jar
OPPL/merge_lib/antlr-runtime-3.2.jar
OPPL/merge_lib/aterm-java-1.6.jar
OPPL/merge_lib/jgrapht-jdk1.5.jar
OPPL/merge_lib/org.coode.oppl-API.jar
OPPL/merge_lib/owlapi-bin.jar
OPPL/merge_lib/parsers.jar
OPPL/merge_lib/pellet-core.jar
OPPL/merge_lib/pellet-datatypes.jar
OPPL/merge_lib/pellet-el.jar
OPPL/merge_lib/pellet-owlapiv3.jar
OPPL/merge_lib/pellet-query.jar
OPPL/merge_lib/pellet-rules.jar
OPPL/src/MergeImportedOntologies.java
OPPL/test-data/ontology/imports/merge.owl
OPPL/test-data/ontology/imports/merge_test.owl
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/README
--- a/OPPL/README Thu Aug 02 09:22:57 2012 +0200
+++ b/OPPL/README Mon Aug 20 11:39:56 2012 +0200
b
@@ -6,24 +6,26 @@
 
 1.- Stop Galaxy.
 
-2.- Copy the following files and dirs to
+2.- Copy the following files and directories to
 /galaxy-dist/tool-data/shared/jars/:
 
 oppl_galaxy_tool.jar
 inference.jar
 query.jar
 oppl_query.jar
+merge.jar
 oppl_galaxy_lib/
 inference_lib/
 query_lib/
 oppl_query_lib/
+merge_lib/
 FaCT++-linux-v1.5.2/ 
 FaCT++-OSX-v1.5.2/
  
 3.- Create directory /galaxy-dist/tools/OPPL/
 
-4.- Copy oppl.xml, inference.xml and query.xml to
-/galaxy-dist/tools/OPPL/
+4.- Copy oppl.xml, inference.xml, query.xml, oppl_query.xml and 
+merge.xml to /galaxy-dist/tools/OPPL/
 
 5.- Add the following lines to /galaxy-dist/tool_conf.xml:
 
@@ -31,7 +33,8 @@
     <tool file="OPPL/oppl.xml"/>
     <tool file="OPPL/inference.xml"/>
     <tool file="OPPL/query.xml"/>
-    <tool file="OPPL/oppl_query.xml"/>   
+    <tool file="OPPL/oppl_query.xml"/>
+    <tool file="OPPL/merge.xml"/>
   </section>
 
 6.- Start Galaxy.
@@ -41,31 +44,21 @@
 FORESEEN FEATURES
 =================
 
-General (OPPL, Inference, Query, OPPL query):
-
 - Support for processing ontologies that import other ontologies loaded
-in galaxy.
+in galaxy (i.e. to resolve imports within galaxy).
 
 - Entities rendering definition (URI fragment, rdfs:label, QName, etc).
 
-- OWLLink and Racer support.
-
-
-OPPL:
+- OWLLink, Racer and ELK support.
 
 - Standalone OPPL assertions parsing (e.g. ADD phagocyte subClassOf
 cell).
 
 - Other output formats apart from RDF/XML.
 
-
-Inference:
-
 - Support for DataPropertyAssertion, DataPropertyHierarchy,
 DifferentIndividuals, ...
 
-OPPL query:
-
 
 
 KNOWN BUGS AND ISSUES
@@ -100,7 +93,7 @@
 
 Copyright (c) 2011 Mikel Egaña Aranguren. 
 
-(OPPL|Inference|Query)-Galaxy 
+(OPPL|Inference|Query|OPPL-Query|Merge)-Galaxy 
 is free software: you can redistribute it and/or modify it under the
 terms of the GNU General Public License as published by the Free
 Software Foundation, either version 3 of the License, or (at your
@@ -117,9 +110,3 @@
 OPPL API, OWL API, Pellet, HermiT, and FaCT++ have their own licenses.
 
 
-
-
-
-
-
-
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/inference.xml
--- a/OPPL/inference.xml Thu Aug 02 09:22:57 2012 +0200
+++ b/OPPL/inference.xml Mon Aug 20 11:39:56 2012 +0200
b
@@ -1,10 +1,10 @@
 <tool id="inference" name="Perform inference in an OWL ontology" version="1.0.1">
  <description>It performs inference in an OWL ontology and it generates a new ontology with the inferred axioms as asserted axioms</description>
 
- <!-- For big ontologies I use -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will, but since Galaxy is usually used in a server setting it makes sense to use a big chunk of memory -->
+ <!-- For big ontologies I use -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will, but since Galaxy is usually used in a server setting it makes sense to use a big chunk of memory -->
 
  <command>
- java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/inference.jar $input $reasoner $axioms > $output
+ java -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/inference.jar $input $reasoner $axioms > $output
  </command>
 
  <inputs>
@@ -25,14 +25,14 @@
  <outputs>
  <data format="text" name="output" />
  </outputs>
- <tests>
+ <!--<tests>
  <test>
  <param name="input" value="test.owl"/>
  <param name="reasoner" value="Pellet"/>
  <param name="axioms" value="CLASS_ASSERTIONS,CLASS_HIERARCHY,OBJECT_PROPERTY_HIERARCHY"/>
  <output name="out_file" file="test_new.owl"/>
  </test>
- </tests>
+ </tests>-->
  <help>
 
 **About Inference-Galaxy**
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge.jar
b
Binary file OPPL/merge.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/OPPL/merge.xml Mon Aug 20 11:39:56 2012 +0200
b
@@ -0,0 +1,42 @@
+<tool id="merge" name="Merge the imported ontologies" version="1.0.1">
+ <description>If an ontology with import axioms is provided, it will merge the imported ontologies into the main ontology</description>
+
+ <!-- DEFAULT SETTINGS -->
+
+ <!-- For big ontologies I use -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will, but since Galaxy is usually used in a server setting it makes sense to use a big chunk of memory -->
+
+ <command>
+ java -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/merge.jar $ontology "$uri" > $output 
+ </command>
+
+ <inputs>
+ <param name="ontology" type="data" label="Input ontology file"/>
+ <param name="uri" type="text" size="100" value="" label="IRI for the new ontology" />
+ </inputs>
+ <outputs>
+ <data type="data" format="text" name="output" />
+ </outputs>
+ <!--<tests>
+ <test>
+ <param name="ontology" value="merge_test.owl"/>
+ <param name="uri" value="http://cbgp.upm.es/BiologicalInformatics/OPPLGalaxy/merged.owl"/>
+ <output name="out_file" file="merge.owl"/>
+ </test>
+ </tests>-->
+ <help>
+
+**About Merge-Galaxy**
+
+  Merge-Galaxy can be used to merge any imported ontologies into the main ontology, creating a new ontology.
+
+**Formats**
+
+  Merge-Galaxy uses the OWL API, and therefore it can load any ontology format that such API is able to load, provided that imports are correctly represented: OBO flat file, OWL (RDF/XML, OWL/XML, Functional, Manchester), turtle, and KRSS. The output is an OWL ontology in RDF/XML format.
+
+**Contact**
+
+  Please send any request or comment to mikel.egana.aranguren@gmail.com.
+
+ </help>
+
+</tool>
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/FaCTpp-OWLAPI-3.2-v1.5.2.jar
b
Binary file OPPL/merge_lib/FaCTpp-OWLAPI-3.2-v1.5.2.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/HermiT.jar
b
Binary file OPPL/merge_lib/HermiT.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/antlr-runtime-3.2.jar
b
Binary file OPPL/merge_lib/antlr-runtime-3.2.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/aterm-java-1.6.jar
b
Binary file OPPL/merge_lib/aterm-java-1.6.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/jgrapht-jdk1.5.jar
b
Binary file OPPL/merge_lib/jgrapht-jdk1.5.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/org.coode.oppl-API.jar
b
Binary file OPPL/merge_lib/org.coode.oppl-API.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/owlapi-bin.jar
b
Binary file OPPL/merge_lib/owlapi-bin.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/parsers.jar
b
Binary file OPPL/merge_lib/parsers.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/pellet-core.jar
b
Binary file OPPL/merge_lib/pellet-core.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/pellet-datatypes.jar
b
Binary file OPPL/merge_lib/pellet-datatypes.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/pellet-el.jar
b
Binary file OPPL/merge_lib/pellet-el.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/pellet-owlapiv3.jar
b
Binary file OPPL/merge_lib/pellet-owlapiv3.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/pellet-query.jar
b
Binary file OPPL/merge_lib/pellet-query.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/merge_lib/pellet-rules.jar
b
Binary file OPPL/merge_lib/pellet-rules.jar has changed
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/oppl.xml
--- a/OPPL/oppl.xml Thu Aug 02 09:22:57 2012 +0200
+++ b/OPPL/oppl.xml Mon Aug 20 11:39:56 2012 +0200
b
@@ -9,10 +9,10 @@
 
  <!-- DEFAULT SETTINGS -->
 
- <!-- For big ontologies I use -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will, but since Galaxy is usually used in a server setting it makes sense to use a big chunk of memory -->
+ <!-- For big ontologies I use -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will, but since Galaxy is usually used in a server setting it makes sense to use a big chunk of memory -->
 
  <command>
- java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy.jar $input $reasoner $OPPL $format > $output 2>/dev/null
+ java -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy.jar $input $reasoner $OPPL $format > $output 2>/dev/null
  </command>
 
 
@@ -23,7 +23,7 @@
  <!-- Using this setting doesn't upset the rest of the reasoners so you may as well leave it on if you plan to switch between FaCT++, Pellet and HermiT -->
 
  <!--<command>
- java -Djava.library.path=${__tool_data_path__}/shared/jars/FaCT++-linux-v1.5.2/64bit -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy.jar $input $reasoner $OPPL $format > $output 2>/dev/null
+ java -Djava.library.path=${__tool_data_path__}/shared/jars/FaCT++-linux-v1.5.2/64bit -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy.jar $input $reasoner $OPPL $format > $output 2>/dev/null
  </commadn>-->
 
 
@@ -34,7 +34,7 @@
  <!-- For debugging simply remove 2>/dev/null Or uncomment bellow (And comment the default settings above). It will fail always (Due to OPPL messages) but at least it will be informative -->
 
  <!--<command>
- java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy.jar $input $reasoner $OPPL $format > $output
+ java -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy.jar $input $reasoner $OPPL $format > $output
  </command>-->
 
 
@@ -56,7 +56,7 @@
  <outputs>
  <data format="text" name="output" />
  </outputs>
- <tests>
+ <!--<tests>
  <test>
  <param name="input" value="test.owl"/>
  <param name="OPPL" value="test.oppl"/>
@@ -64,7 +64,7 @@
  <param name="reasoner" value="Pellet"/>
  <output name="out_file" file="test_new.owl"/>
  </test>
- </tests>
+ </tests>-->
  <help>
 
 **About OPPL-Galaxy**
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/oppl_query.xml
--- a/OPPL/oppl_query.xml Thu Aug 02 09:22:57 2012 +0200
+++ b/OPPL/oppl_query.xml Mon Aug 20 11:39:56 2012 +0200
b
@@ -7,10 +7,10 @@
 
  <!-- DEFAULT SETTINGS -->
 
- <!-- For big ontologies I use -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will, but since Galaxy is usually used in a server setting it makes sense to use a big chunk of memory -->
+ <!-- For big ontologies I use -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will, but since Galaxy is usually used in a server setting it makes sense to use a big chunk of memory -->
 
  <command>
- java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_query.jar $ontology $reasoner $answer_format "$query" > $output 2>/dev/null
+ java -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_query.jar $ontology $reasoner $answer_format "$query" > $output 2>/dev/null
  </command>
 
  <!-- FACT++ -->
@@ -19,7 +19,7 @@
  <!-- Using this setting doesn't upset the rest of the reasoners so you may as well leave it on if you plan to switch between FaCT++, Pellet and HermiT -->
 
  <!--<command>
- java -Djava.library.path=${__tool_data_path__}/shared/jars/FaCT++-linux-v1.5.2/64bit -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_query.jar $ontology $reasoner $answer_format "$query" > $output 2>/dev/null
+ java -Djava.library.path=${__tool_data_path__}/shared/jars/FaCT++-linux-v1.5.2/64bit -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_query.jar $ontology $reasoner $answer_format "$query" > $output 2>/dev/null
  </commadn>-->
 
 
@@ -40,7 +40,7 @@
  <outputs>
  <data type="data" format="text" name="output" />
  </outputs>
- <tests>
+ <!--<tests>
  <test>
  <param name="input" value="test.owl"/>
  <param name="query" value="?p:OBJECTPROPERTY SELECT Transitive ?p "/>
@@ -48,7 +48,7 @@
  <param name="answer_format" value="URIfragment"/>
  <output name="out_file" file="query_result"/>
  </test>
- </tests>
+ </tests>-->
  <help>
 
 **About OPPL-Query-Galaxy**
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/query.xml
--- a/OPPL/query.xml Thu Aug 02 09:22:57 2012 +0200
+++ b/OPPL/query.xml Mon Aug 20 11:39:56 2012 +0200
b
@@ -3,10 +3,10 @@
 
  <!-- DEFAULT SETTINGS -->
 
- <!-- For big ontologies I use -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will, but since Galaxy is usually used in a server setting it makes sense to use a big chunk of memory -->
+ <!-- For big ontologies I use -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will, but since Galaxy is usually used in a server setting it makes sense to use a big chunk of memory -->
 
  <command>
- java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/query.jar $ontology $reasoner $answer_type $answer_format "$query" > $output 
+ java -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/query.jar $ontology $reasoner $answer_type $answer_format "$query" > $output 
  </command>
 
  <!-- FACT++ -->
@@ -15,7 +15,7 @@
  <!-- Using this setting doesn't upset the rest of the reasoners so you may as well leave it on if you plan to switch between FaCT++, Pellet and HermiT -->
 
  <!--<command>
- java -Djava.library.path=${__tool_data_path__}/shared/jars/FaCT++-linux-v1.5.2/64bit -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/query.jar $ontology $reasoner $answer_type $answer_format "$query" > $output 
+ java -Djava.library.path=${__tool_data_path__}/shared/jars/FaCT++-linux-v1.5.2/64bit -Xmx3000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/query.jar $ontology $reasoner $answer_type $answer_format "$query" > $output 
  </commadn>-->
 
 
@@ -44,7 +44,7 @@
  <outputs>
  <data type="data" format="text" name="output" />
  </outputs>
- <tests>
+ <!--<tests>
  <test>
  <param name="input" value="OWLQueryGalaxyTest.owl"/>
  <param name="query" value="p some d"/>
@@ -53,7 +53,7 @@
  <param name="answer_format" value="URIfragment"/>
  <output name="out_file" file="query_result"/>
  </test>
- </tests>
+ </tests>-->
  <help>
 
 **About Query-Galaxy**
@@ -62,7 +62,7 @@
 
 **Formats**
 
-  Inference-Galaxy uses the OWL API, and therefore it can load any ontology format that such API is able to load: OBO flat file, OWL (RDF/XML, OWL/XML, Functional, Manchester), turtle, and KRSS. The output is a list of terms.
+  Query-Galaxy uses the OWL API, and therefore it can load any ontology format that such API is able to load: OBO flat file, OWL (RDF/XML, OWL/XML, Functional, Manchester), turtle, and KRSS. The output is a list of terms.
 
 **Contact**
 
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/src/GalaxyOWLAPI.java
--- a/OPPL/src/GalaxyOWLAPI.java Thu Aug 02 09:22:57 2012 +0200
+++ b/OPPL/src/GalaxyOWLAPI.java Mon Aug 20 11:39:56 2012 +0200
b
@@ -49,6 +49,7 @@
 import org.semanticweb.owlapi.util.InferredSubDataPropertyAxiomGenerator;
 import org.semanticweb.owlapi.util.InferredSubObjectPropertyAxiomGenerator;
 import org.semanticweb.owlapi.util.OWLEntityRenamer;
+import org.semanticweb.owlapi.util.OWLOntologyImportsClosureSetProvider;
 import org.semanticweb.owlapi.util.OWLOntologyMerger;
 import org.semanticweb.owlapi.util.SimpleShortFormProvider;
 import org.semanticweb.owlapi.vocab.OWL2Datatype;
@@ -62,7 +63,7 @@
 /**
  * A wrapper of the OWL API 
  * 
- * @author Mikel Ega��a Aranguren
+ * @author Mikel Egana Aranguren
  */
 public class GalaxyOWLAPI {
  private OWLOntologyManager manager;
@@ -109,10 +110,13 @@
  reasonerFactory = new Reasoner.ReasonerFactory();
  reasoner = reasonerFactory.createReasoner(ontology);
  }
- public void merge () throws OWLOntologyCreationException{
+ public void merge (String ontologyIRI) throws OWLOntologyCreationException, OWLOntologyStorageException{
  OWLOntologyMerger merger = new OWLOntologyMerger(manager);
- IRI mergedOntologyIRI = IRI.create("http://oeg-upm.net/oppl_galaxy/merged.owl");
+// OWLOntologyMerger merger = new OWLOntologyMerger(new OWLOntologyImportsClosureSetProvider(manager, ontology));
+ IRI mergedOntologyIRI = IRI.create(ontologyIRI);
+// OWLOntology merged_ontology = merger.createMergedOntology(manager, mergedOntologyIRI);
  ontology = merger.createMergedOntology(manager, mergedOntologyIRI);
+// manager.saveOntology(ontology, new RDFXMLOntologyFormat(), new SystemOutDocumentTarget());
  }
 
  public OWLClassExpression parseMOSClassExpression (String expr) throws ParserException{
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/src/MergeImportedOntologies.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/OPPL/src/MergeImportedOntologies.java Mon Aug 20 11:39:56 2012 +0200
[
@@ -0,0 +1,39 @@
+package es.upm.cbgp.opplquery.oppl.galaxy;
+
+import java.io.IOException;
+
+import org.semanticweb.owlapi.model.OWLOntologyCreationException;
+import org.semanticweb.owlapi.model.OWLOntologyStorageException;
+
+import es.upm.fi.dia.oeg.oppl.galaxy.GalaxyOWLAPI;
+
+public class MergeImportedOntologies {
+
+ /**
+  * @param args
+  * @throws OWLOntologyCreationException 
+  * @throws IOException 
+  * @throws OWLOntologyStorageException 
+  */
+ public static void main(String[] args) throws OWLOntologyCreationException, OWLOntologyStorageException, IOException {
+ String OWLFilePath = args [0]; 
+ String MergedOntologyNewURI = args [1]; 
+// String OWLFilePath = "/home/mikel/UPM/OPPL_galaxy/OPPL/OPPL/test-data/ontology/imports/merge_test.owl";
+// String MergedOntologyNewURI = "http://cbgp.upm.es/merged.owl"; 
+
+ // Create the manager
+ GalaxyOWLAPI galaxyowlapi = new GalaxyOWLAPI();
+
+ // Load the main ontology and hope for the imported URIs to be resolvable
+ galaxyowlapi.loadMainOntology(OWLFilePath);
+
+ // Merge and save
+
+ if(MergedOntologyNewURI.isEmpty()){
+ MergedOntologyNewURI = "http://cbgp.upm.es/BiologicalInformatics/OPPLGalaxy/merged.owl";
+ }
+
+ galaxyowlapi.merge(MergedOntologyNewURI);
+ galaxyowlapi.saveOntology(true);
+ }
+}
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/test-data/ontology/imports/merge.owl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/OPPL/test-data/ontology/imports/merge.owl Mon Aug 20 11:39:56 2012 +0200
b
b'@@ -0,0 +1,8824 @@\n+<?xml version="1.0"?>\n+<rdf:RDF xmlns="http://cbgp.upm.es/merged.owl#"\n+     xml:base="http://cbgp.upm.es/merged.owl"\n+     xmlns:wine="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#"\n+     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"\n+     xmlns:food="http://www.w3.org/TR/2003/PR-owl-guide-20031209/food#"\n+     xmlns:pizza="http://www.co-ode.org/ontologies/pizza/pizza.owl#"\n+     xmlns:owl="http://www.w3.org/2002/07/owl#"\n+     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"\n+     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\n+     xmlns:merge_test="http://www.cbgp.upm.es/merge_test.owl#">\n+    <owl:Ontology rdf:about="http://cbgp.upm.es/merged.owl"/>\n+    \n+\n+\n+    <!-- \n+    ///////////////////////////////////////////////////////////////////////////////////////\n+    //\n+    // Annotation properties\n+    //\n+    ///////////////////////////////////////////////////////////////////////////////////////\n+     -->\n+\n+    \n+\n+\n+    <!-- \n+    ///////////////////////////////////////////////////////////////////////////////////////\n+    //\n+    // Datatypes\n+    //\n+    ///////////////////////////////////////////////////////////////////////////////////////\n+     -->\n+\n+    \n+\n+\n+    <!-- \n+    ///////////////////////////////////////////////////////////////////////////////////////\n+    //\n+    // Object Properties\n+    //\n+    ///////////////////////////////////////////////////////////////////////////////////////\n+     -->\n+\n+    \n+\n+\n+    <!-- http://www.cbgp.upm.es/merge_test.owl#p -->\n+\n+    <owl:ObjectProperty rdf:about="http://www.cbgp.upm.es/merge_test.owl#p"/>\n+    \n+\n+\n+    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#hasBase -->\n+\n+    <owl:ObjectProperty rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#hasBase">\n+        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>\n+        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>\n+        <rdfs:domain rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#Pizza"/>\n+        <rdfs:range rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#PizzaBase"/>\n+        <rdfs:subPropertyOf rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#hasIngredient"/>\n+        <owl:inverseOf rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#isBaseOf"/>\n+    </owl:ObjectProperty>\n+    \n+\n+\n+    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#hasCountryOfOrigin -->\n+\n+    <owl:ObjectProperty rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#hasCountryOfOrigin"/>\n+    \n+\n+\n+    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#hasIngredient -->\n+\n+    <owl:ObjectProperty rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#hasIngredient">\n+        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>\n+        <rdfs:comment xml:lang="en">NB Transitive - the ingredients of ingredients are ingredients of the whole</rdfs:comment>\n+        <rdfs:domain rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#Food"/>\n+        <rdfs:range rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#Food"/>\n+        <owl:inverseOf rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#isIngredientOf"/>\n+    </owl:ObjectProperty>\n+    \n+\n+\n+    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#hasSpiciness -->\n+\n+    <owl:ObjectProperty rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#hasSpiciness">\n+        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>\n+        <rdfs:comment xml:lang="en">A property created to be used with the ValuePartition - Spiciness.</rdfs:comment>\n+        <rdfs:range rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#Spiciness"/>\n+    </owl:ObjectProperty>\n+    \n+\n+\n+    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#hasTopping -->\n+\n+    <owl:ObjectProperty rdf:about="http://www.co-ode.org/ontologies/'..b'//www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Foxen"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#GaryFarrell"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#KalinCellars"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#KathrynKennedy"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#LaneTanner"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Longridge"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Marietta"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#McGuinnesso"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#MountEdenVineyard"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Mountadam"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#PageMillWinery"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#PeterMccoy"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#PulignyMontrachet"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#SantaCruzMountainVineyard"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#SaucelitoCanyon"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#SchlossRothermel"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#SchlossVolrad"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#SeanThackrey"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Selaks"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#SevreEtMaine"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#StGenevieve"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Stonleigh"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Taylor"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Ventana"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#WhitehallLane"/>\n+        </owl:distinctMembers>\n+    </rdf:Description>\n+    <rdf:Description>\n+        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AllDifferent"/>\n+        <owl:distinctMembers rdf:parseType="Collection">\n+            <rdf:Description rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#America"/>\n+            <rdf:Description rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#England"/>\n+            <rdf:Description rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#France"/>\n+            <rdf:Description rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#Germany"/>\n+            <rdf:Description rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#Italy"/>\n+        </owl:distinctMembers>\n+    </rdf:Description>\n+    <rdf:Description>\n+        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AllDifferent"/>\n+        <owl:distinctMembers rdf:parseType="Collection">\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#OffDry"/>\n+            <rdf:Description rdf:about="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#Sweet"/>\n+        </owl:distinctMembers>\n+    </rdf:Description>\n+</rdf:RDF>\n+\n+\n+\n+<!-- Generated by the OWL API (version 3.2.4.1806) http://owlapi.sourceforge.net -->\n+\n'
b
diff -r 6c25e717c896 -r c9e01f86b07c OPPL/test-data/ontology/imports/merge_test.owl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/OPPL/test-data/ontology/imports/merge_test.owl Mon Aug 20 11:39:56 2012 +0200
[
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+
+
+<!DOCTYPE rdf:RDF [
+    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
+    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
+    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
+    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
+]>
+
+
+<rdf:RDF xmlns="http://www.cbgp.upm.es/merge_test.owl#"
+     xml:base="http://www.cbgp.upm.es/merge_test.owl"
+     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+     xmlns:owl="http://www.w3.org/2002/07/owl#"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+    <owl:Ontology rdf:about="http://www.cbgp.upm.es/merge_test.owl">
+        <owl:imports rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl"/>
+        <owl:imports rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine"/>
+    </owl:Ontology>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Object Properties
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://www.cbgp.upm.es/merge_test.owl#p -->
+
+    <owl:ObjectProperty rdf:about="http://www.cbgp.upm.es/merge_test.owl#p"/>
+    
+
+
+    <!-- 
+    ///////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Classes
+    //
+    ///////////////////////////////////////////////////////////////////////////////////////
+     -->
+
+    
+
+
+    <!-- http://www.cbgp.upm.es/merge_test.owl#A -->
+
+    <owl:Class rdf:about="http://www.cbgp.upm.es/merge_test.owl#A">
+        <rdfs:subClassOf>
+            <owl:Restriction>
+                <owl:onProperty rdf:resource="http://www.cbgp.upm.es/merge_test.owl#p"/>
+                <owl:someValuesFrom rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#ValuePartition"/>
+            </owl:Restriction>
+        </rdfs:subClassOf>
+        <rdfs:subClassOf>
+            <owl:Restriction>
+                <owl:onProperty rdf:resource="http://www.cbgp.upm.es/merge_test.owl#p"/>
+                <owl:someValuesFrom rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031209/food#Wine"/>
+            </owl:Restriction>
+        </rdfs:subClassOf>
+    </owl:Class>
+</rdf:RDF>
+
+
+
+<!-- Generated by the OWL API (version 3.3.1957) http://owlapi.sourceforge.net -->
+