Mercurial > repos > mikel-egana-aranguren > oppl
changeset 0:46b9d13a44fc
First commit (1.0.0)
author | mikel-egana-aranguren |
---|---|
date | Tue, 06 Sep 2011 14:53:59 -0400 |
parents | |
children | 036c6ec459b9 |
files | OPPL/README OPPL/oppl.sh OPPL/oppl.xml OPPL/oppl_galaxy_tool.jar OPPL/oppl_galaxy_tool_lib/antlr-runtime-3.2.jar OPPL/oppl_galaxy_tool_lib/aterm-java-1.6.jar OPPL/oppl_galaxy_tool_lib/jgrapht-jdk1.5.jar OPPL/oppl_galaxy_tool_lib/org.coode.oppl-API.jar OPPL/oppl_galaxy_tool_lib/owlapi-bin.jar OPPL/oppl_galaxy_tool_lib/parsers.jar OPPL/oppl_galaxy_tool_lib/pellet-core.jar OPPL/oppl_galaxy_tool_lib/pellet-datatypes.jar OPPL/oppl_galaxy_tool_lib/pellet-el.jar OPPL/oppl_galaxy_tool_lib/pellet-owlapiv3.jar OPPL/oppl_galaxy_tool_lib/pellet-query.jar OPPL/oppl_galaxy_tool_lib/pellet-rules.jar OPPL/test.oppl OPPL/test.owl OPPL/test_new.owl |
diffstat | 19 files changed, 337 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OPPL/README Tue Sep 06 14:53:59 2011 -0400 @@ -0,0 +1,113 @@ + + + + =========== + OPPL-GALAXY + =========== + + + +INSTALLATION +============ + +1.- Stop galaxy. + +2.- Copy oppl_galaxy_tool.jar and oppl_galaxy_tool_lib/ to +/galaxy-dist/tool-data/shared/jars/. + +3.- Create directory /galaxy-dist/tools/OPPL/. + +4.- Copy oppl.xml to /galaxy-dist/tools/OPPL/. + +5.- Add the following lines to /galaxy-dist/tool_conf.xml: + + <section name="Ontology Pre Processor Language" id="oppl"> + <tool file="OPPL/oppl.xml"/> + </section> + +6.- Start galaxy. + +Note that if you want you can use any java parameter by editing oppl.xml +, eg: <command>java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 +-jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL +> $output </command> + + + +USAGE +===== + +An ontology and an OPPL file are needed (test.owl and test.oppl can be +used as samples). Load both: + +Get Data + >> Upload File from your computer + +Then execute the OPPL file against the OWL file: + +Ontology Pre Processor Language + >> Execute an OPPL file against an OWL file + + + +TESTS +===== + +To run the functional test, first complete installation and then: + +1.- Copy test.owl and test.oppl to /galaxy-dist/test-data/ + +2.- Add the following lines to /galaxy-dist/tool_conf.xml.sample + + <section name="Ontology Pre Processor Language" id="oppl"> + <tool file="OPPL/oppl.xml"/> + </section> + +3.- Execute /galaxy-dist/run_functional_tests.sh -id oppl + + + +CONTACT +======= + +Please send any request or comment to mikel.egana.aranguren@gmail.com. + + + +ACKNOWLEDGEMENTS +================ + +This work is funded by the Marie Curie Cofund program of the EU, FP7. + + + +COPYRIGHT AND LICENSE +===================== + +Copyright (c) 2011 Mikel EgaƱa Aranguren. + +OPPL-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 option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. + +OPPL, OWL API and Pellet have their own licenses. + +Galaxy is distributed as open source under the conditions of the +Academic Free License (http://www.opensource.org/licenses/academic.php). + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OPPL/oppl.sh Tue Sep 06 14:53:59 2011 -0400 @@ -0,0 +1,5 @@ +#!/bin/sh + +java -Xmx7000M -Xms250M -DentityExpansionLimit=1000000000 -jar oppl_galaxy_tool.jar test.owl test.oppl > test_new.owl + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OPPL/oppl.xml Tue Sep 06 14:53:59 2011 -0400 @@ -0,0 +1,70 @@ +<tool id="oppl" name="Execute an OPPL file against an OWL file" version="1.0.0"> + <description>It executes an OPPL script against the input ontology and generates a new ontology with the changes described in the OPPL script</description> + <command>java -jar ${__tool_data_path__}/shared/jars/oppl_galaxy_tool.jar $input $OPPL > $output </command> + <inputs> + <param format="text" name="input" type="data" label="Source OWL file"/> + <param format="text" name="OPPL" type="data" label="OPPL file"/> + </inputs> + <outputs> + <data format="text" name="output" /> + </outputs> + + <tests> + <test> + <param name="input" value="test.owl"/> + <param name="OPPL" value="test.oppl"/> + <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 (OWL) 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 (Adding or removing axioms). An OPPL script (See bellow or test.oppl) defines a query to be performed against the ontology, and some actions 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 a given ontology, saving time and effort. + +**Formats** + + OPPL-Galaxy uses the OWL API, and therefore can work with any ontology format that such API is able to load. That includes: OBO flat file, OWL (RDF/XML, OWL/XML, Functional, Manchester), turtle, and KRSS. + +**Usage** + + An ontology and an OPPL file are needed (test.owl and test.oppl can be used as samples). 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. + + This is the OPPL script provided in the bundle, test.oppl. Variables start with ?: + + ?whole:CLASS, + ?part:CLASS + SELECT + ?part SubClassOf part_of some ?whole WHERE ?part != Nothing + BEGIN + ADD ?part SubClassOf part_of only ?whole + END; + +**More information** + + http://oppl2.sourceforge.net/ + + http://owlapi.sourceforge.net/ + + http://www.w3.org/TR/owl2-manchester-syntax/ + + http://clarkparsia.com/pellet + +**Features that will be implemented soon** + + OWL import closure + + Choose output format (Right now only OWL RDF/XML is available) + + Choose reasoner (Right now only Pellet is available) + +**Contact** + + Please send any request or comment to mikel.egana.aranguren@gmail.com. + + </help> + +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OPPL/test.oppl Tue Sep 06 14:53:59 2011 -0400 @@ -0,0 +1,8 @@ +?whole:CLASS, +?part:CLASS +SELECT +?part SubClassOf part_of some ?whole WHERE ?part != Nothing +BEGIN +ADD ?part SubClassOf part_of only ?whole +END; +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OPPL/test.owl Tue Sep 06 14:53:59 2011 -0400 @@ -0,0 +1,73 @@ +<?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#" > + <!ENTITY Ontology1314715036188 "http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/" > +]> + + +<rdf:RDF xmlns="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl#" + xml:base="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:Ontology1314715036188="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/" + 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.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl"/> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Object Properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/part_of --> + + <owl:ObjectProperty rdf:about="&Ontology1314715036188;part_of"/> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Classes + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/part --> + + <owl:Class rdf:about="&Ontology1314715036188;part"> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="&Ontology1314715036188;part_of"/> + <owl:someValuesFrom rdf:resource="&Ontology1314715036188;whole"/> + </owl:Restriction> + </rdfs:subClassOf> + </owl:Class> + + + + <!-- http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/whole --> + + <owl:Class rdf:about="&Ontology1314715036188;whole"/> +</rdf:RDF> + + + +<!-- Generated by the OWL API (version 3.2.2.1782) http://owlapi.sourceforge.net --> +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OPPL/test_new.owl Tue Sep 06 14:53:59 2011 -0400 @@ -0,0 +1,68 @@ +<?xml version="1.0"?> +<rdf:RDF xmlns="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl#" + xml:base="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:Ontology1314715036188="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/" + 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.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl"/> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Object Properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/part_of --> + + <owl:ObjectProperty rdf:about="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/part_of"/> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Classes + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/part --> + + <owl:Class rdf:about="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/part"> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/part_of"/> + <owl:someValuesFrom rdf:resource="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/whole"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/part_of"/> + <owl:allValuesFrom rdf:resource="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/whole"/> + </owl:Restriction> + </rdfs:subClassOf> + </owl:Class> + + + + <!-- http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/whole --> + + <owl:Class rdf:about="http://www.semanticweb.org/ontologies/2011/7/Ontology1314715036188.owl/whole"/> +</rdf:RDF> + + + +<!-- Generated by the OWL API (version 3.2.4.1806) http://owlapi.sourceforge.net --> +