view OPPL/oppl.xml @ 15:622cde484f4c draft

Add new tool to perform OPPL queries
author Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
date Thu, 12 Jul 2012 17:12:00 +0200
parents 68c4ae500a13
children c9e01f86b07c
line wrap: on
line source

<tool id="oppl" name="Execute an OPPL file against an ontology" version="1.0.8">
	<description>It executes an OPPL script against the input ontology and generates a new ontology with the changes described in the OPPL script</description>

	<!-- 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 -->
	<!-- Testing with wrapper.sh but no success so far -->
	
	
	
	<!-- 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 -->

	<command>
		java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar ${__tool_data_path__}/shared/jars/oppl_galaxy.jar $input $reasoner $OPPL $format > $output 2>/dev/null
	</command>
	
	
	
	<!-- FACT++ -->
	
	<!-- If you are planning to use FaCT++ you have to uncomment bellow (And comment the default settings 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>
		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
	</commadn>-->

	
	
	
	<!-- DEBUGGING -->
	
	<!-- 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
	</command>-->
	
	
	

	<inputs>
		<param name="input" type="data" label="Input ontology file"/>
		<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>
		<param format="text" name="OPPL" type="data" label="OPPL file"/>
		<param name="format" type="select" label="Choose ontology output format">
			<option value="OWL" selected="true">OWL</option>
			<option value="OBO">OBO</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="format" value="OWL"/>
			<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 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, or redirect from another Galaxy tool.

  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, OPPL-Galaxy will try to resolve them. 

  The output ontology can be OBO or OWL (RDF/XML).
   
  The reasoner can be Pellet, HermiT FaCT++. Sometimes, if an execution fails it can be fixed by using a different reasoner. 

**More information**

  Galaxy public instances with OPPL-Galaxy pre-installed:
  
  http://sele.inf.um.es:8080/
  
  http://linkeddata2.dia.fi.upm.es:8080
  
  OPPL-Galaxy Examples: 
  
  http://miuras.inf.um.es/OPPL-Galaxy/
  
  OPPL examples:
  
  http://oppl2.sourceforge.net/taggedexamples/
  
  Links of interest:

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

  Mikel Egaña Aranguren, Jesualdo Tomás Fernández-Breis and Erick Antezana. OPPL-Galaxy: Enhancing ontology exploitation in Galaxy with OPPL. SWAT4LS 2011.

**Contact**

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

	</help>

</tool>