view OPPL/oppl.xml @ 7:756f1f5798bf

Added (Properly) reasoner option (Pellet or HermiT)
author Mikel Egaña Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
date Sun, 18 Sep 2011 12:57:22 +0200
parents 3740505b579c
children 40adbcb2a7cc
line wrap: on
line source

<tool id="oppl" name="Execute an OPPL file against an ontology" version="1.0.4">
	<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 -->

	<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 > $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 > $output 2>/dev/null
		#end if
	</command>
		
	<!-- For big ontologies use something like java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar -->

	<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"/>
			<when value="imports_no"/>
			<!--<when value="imports_no">
				<param type="hidden" name="imports" value="NoImports"/>
	    		</when>-->
			<when value="imports_yes">
                		<param format="text" name="imports" type="data" label="OWL imports URI mapping file"/>
            		</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="Add_inferred" falsevalue="Gora_ni" label="Add inferred subsumption axioms to output ontology"/>
		<param name="reasoner" type="select" label="Choose reasoner">
			<option value="Pellet" selected="true">Pellet</option>
			<option value="HermiT">HermiT</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"/>
			<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 effort.  

**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 or HermiT. Sometimes, if an execution fails it can be fixed by using a different reasoner. 

**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/

**Contact**

  Please send any request or comment to mikel.egana.aranguren@gmail.com.

	</help>

</tool>