Mercurial > repos > mikel-egana-aranguren > oppl
view OPPL/oppl.xml @ 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 |
line wrap: on
line source
<tool id="oppl" name="Execute an OPPL file against an ontology" version="1.0.5"> <description>It executes an OPPL script against the input ontology and generates a new ontology with the changes described in the OPPL script</description> <!-- The command execution of the conditional is tacky, I think, but it works! --> <!-- Galaxy is not happy with OPPL throwing info into stderr, and I have redirected stderr to /dev/null, which is a bad solution since OPPL galaxy does not inform properly when it fails --> <!-- More info on the stderr issue: http://wiki.g2.bx.psu.edu/Future/Job%20Failure%20When%20stderr --> <!-- For big ontologies I use -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 If that's too much for your machine simply delete or modify at will --> <command> #if $import_opts.imports_select==False #java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL $format $inferred NoImports $reasoner NoMerge > $output 2>/dev/null #else #java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL $format $inferred $imports $reasoner $merged > $output 2>/dev/null #end if </command> <!-- If you are planning to use FaCT++ you have to uncomment bellow (And comment the one above) and replace the -Djava.library.path with the appropiate JNI library path for your platform:FaCT++-linux-v1.5.2/64bit, FaCT++-linux-v1.5.2/32bit, FaCT++-OSX-v1.5.2/64bit, ...... --> <!-- 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> #if $import_opts.imports_select==False #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_tool.jar $input $OPPL $format $inferred NoImports $reasoner NoMerge > $output 2>/dev/null #else #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_tool.jar $input $OPPL $format $inferred $imports $reasoner $merged > $output 2>/dev/null #end if </command>--> <!-- For debugging simply remove 2>/dev/null Or uncomment bellow. It will fail always (Due to OPPL messages) but at least it will be informative --> <!--<command> #if $import_opts.imports_select==False #java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL $format $inferred NoImports $reasoner no_merge > $output #else #java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL $format $inferred $imports $reasoner $merged > $output #end if </command>--> <!-- EXPERIMENTS AND HOUSE KEEPING--> <!--<command>java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL $format $inferred $imports $reasoner $merged > $output 2>/dev/null</command> --> <!--<command> #if $import_opts.imports_select==False #java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL $format $inferred NoImports $reasoner NoMerge > $output 2>/dev/null #else #if $merge_opts.merge_select==False #java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL $format $inferred NoImports $reasoner NoMerge > $output 2>/dev/null #else #java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL $format $inferred $imports $reasoner $merged > $output 2>/dev/null #end if #end if </command>--> <inputs> <param format="text" name="input" type="data" label="Input ontology file"/> <param format="text" name="OPPL" type="data" label="OPPL file"/> <conditional name="import_opts"> <param name="imports_select" type="boolean" value="False" truevalue="imports_yes" falsevalue="imports_no" label="Tick the box if the loaded ontology includes OWL imports"/> <!-- EXPERIMENTS AND HOUSE KEEPING--> <!--<when value="imports_no"/> --> <!--<when value="imports_no"> <param type="hidden" name="merged" value="no_merge"/> </when>--> <when value="imports_yes"> <param format="text" name="imports" type="data" label="OWL imports URI mapping file"/> <!-- EXPERIMENTS AND HOUSE KEEPING--> <!--<conditional name="merge_opts"> <param name="merge_select" type="boolean" value="False" truevalue="merge_yes" falsevalue="merge_no" label="Tick the box to merge ontologies"/> <when value="merge_yes"> <param name="merged" type="text" size="100" value="http://oppl-galaxy/merged" label="Type an URI or use the default URI" /> </when> </conditional>--> <!--<param format="text" name="merged" type="data" label="OWL "/>--> </when> </conditional> <param name="format" type="select" label="Choose ontology output format"> <option value="OWL" selected="true">OWL</option> <option value="OBO">OBO</option> </param> <param name="inferred" type="boolean" value="False" truevalue="AddInferred" falsevalue="Gora_ni" label="Add inferred subsumption axioms to output ontology"/> <param name="merged" type="text" size="100" value="NoMerge" label="To merge the ontologies, type an URI for the new ontology (Leave NoMerge for not merging)" /> <param name="reasoner" type="select" label="Choose reasoner"> <option value="Pellet" selected="true">Pellet</option> <option value="HermiT">HermiT</option> <option value="FaCTPlusPlus">FaCT++</option> </param> </inputs> <outputs> <data format="text" name="output" /> </outputs> <tests> <test> <param name="input" value="test.owl"/> <param name="OPPL" value="test.oppl"/> <param name="imports" value="NoImports"/> <param name="format" value="OWL"/> <param name="inferred" value="False"/> <param name="reasoner" value="Pellet"/> <param name="merged" value="no_merge"/> <output name="out_file" file="test_new.owl"/> </test> </tests> <help> **About OPPL-Galaxy** OPPL-Galaxy can be used to execute an OPPL script against an ontology, generating a new ontology. OPPL (Ontology Pre Processor Language) is a high level scripting language, based in the Manchester OWL Syntax, to automate the manipulation of an ontology. An OPPL script (See test.oppl) defines a query to be performed against the ontology, and some actions (Adding or removing axioms) that affect the entities that will be retrieved. Those entities can be named or defined by a variable. OPPL is a powerful method for defining and executing modelling patterns that are repeated in an ontology, saving time and efforts. **Formats** OPPL-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 available output formats are OBO flat file and OWL (RDF/XML). **Usage** An ontology and an OPPL file are needed (test.owl and test.oppl can be used as samples, both available in the bundle). Load both with Get Data >> Upload File from your computer. Then execute the OPPL file against the OWL file with Ontology Pre Processor Language >> Execute an OPPL file against an OWL file. A new output ontology will be generated. In case the loaded ontology includes OWL imports, a file that maps the imported ontologies' URIs to actual physical URIs is needed. The file (See the file test_URI_mappings provided in the bundle) follows the convention URI-tab-physical URI: http://purl.obolibrary.org/obo/CHEBI_ONTOLOGY_chebi_ontology /home/pik/UPM/OPPL_galaxy/oppl/OPPL/chebi.owl http://purl.obolibrary.org/obo/UBERON_uberon /home/pik/UPM/OPPL_galaxy/oppl/OPPL/cell.owl The output ontology can be OBO or OWL (RDF/XML). The inferred subsumption axioms can be added to the output ontology as asserted axioms. The reasoner can be Pellet, HermiT FaCT++. Sometimes, if an execution fails it can be fixed by using a different reasoner. If OWL imports are used, all the ontologies (Main one and imported ones) can be merged in a single ontology for the output. **More information** http://oppl.sf.net/ http://owlapi.sourceforge.net/ http://www.w3.org/TR/owl2-manchester-syntax/ http://clarkparsia.com/pellet http://hermit-reasoner.com/ http://code.google.com/p/factplusplus/ http://code.google.com/p/oboformat/ **Contact** Please send any request or comment to mikel.egana.aranguren@gmail.com. </help> </tool>