Apache Taverna Language is a set of APIs for workflow definitions (SCUFL2) and workflow inputs/outputs/run (DataBundle), as consumed and produced by the Apache Taverna (incubating) workflow system.
The API includes support for the legacy formats from Taverna 2 and Taverna 1, and therefore can be also used independently of Apache Taverna 3.
- (c) 2010-2014 University of Manchester
- (c) 2014-2016 Apache Software Foundation
This product includes software developed at The Apache Software Foundation.
Licensed under the Apache License 2.0, see the file LICENSE for details.
The file NOTICE contains any additional attributions and details about embedded third-party libraries and source code.
Please subscribe to and contact the [dev@taverna](http://taverna.incubator.apache.org/community/lists#dev mailing list) for any questions, suggestions and discussions about Apache Taverna.
Bugs and feature plannings are tracked in the Jira
Issue tracker
under the TAVERNA
component Taverna Language. Feel free
to add an issue!
To suggest changes to this source code, feel free to raise a GitHub pull request. Any contributions received are assumed to be covered by the Apache License 2.0. We might ask you to sign a Contributor License Agreement before accepting a larger contribution.
Apache Taverna is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.
Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.
While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
Official modules:
- taverna-robundle load/save/manage Research Object bundles, (ZIP-based container)
- taverna-databundle load/save RO bundle with workflow inputs/outputs/workflow run provenance
- taverna-scufl2-api Inspect and build SCUFL2 workflow definitions
- taverna-scufl2-wfbundle load/save Apache Taverna 3
.wfbundle
workflows - taverna-scufl2-t2flow load Taverna 2
.t2flow
workflows - taverna-scufl2-schemas SCUFL2 XML Schemas and OWL ontologies
- taverna-scufl2-wfdesc save wfdesc workflow structure as RDF Turtle
- taverna-scufl2-examples Example usage of the SCUFL2 APIs
- taverna-tavlang-tool Taverna Language tool
tavlang
Experimental modules:
- taverna-scufl2-scufl Load Taverna 1
.xml
workflows (SCUFL 1) - taverna-scufl2-annotation Annotation utillity functions
- taverna-baclava-language Load Taverna 2 data documents (workflow inputs/outputs)
Deprecated modules:
- taverna-scufl2-ucfpackage: API for Adobe
UCF
ZIP files - superseeded by
taverna-robundle
For more details, see the READMEs of:
- Java 1.8 or newer (tested with OpenJDK 1.8)
- Apache Maven 3.2.5 or newer (older versions probably also work)
To build Apache Taverna Language, use:
mvn clean install
This will build each module and run their tests, producing JARs like
taverna-scufl2-api/target/taverna-scufl2-api-0.15.0-incubating.jar
.
Some of the experimental modules are not built automatically, to build
them separately, run the same command from within their folder.
To skip the tests (these can be timeconsuming), use:
mvn clean install -DskipTests
If you are modifying this source code independent of the Apache Taverna project, you may not want to run the Rat Maven plugin that enforces Apache headers in every source file - to disable it, try:
mvn clean install -Drat.skip=true
Apache Taverna Language is a Maven project, and the easiest way to use it is from other Maven projects.
Released binaries of Apache Taverna Language are published in Maven Central.
Typical users of this API will depend on these modules:
<dependency>
<groupId>org.apache.taverna.language</groupId>
<artifactId>taverna-robundle</artifactId>
<version>0.15.0-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.taverna.language</groupId>
<artifactId>taverna-databundle</artifactId>
<version>0.15.0-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.taverna.language</groupId>
<artifactId>taverna-scufl2-api</artifactId>
<version>0.15.0-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.taverna.language</groupId>
<artifactId>taverna-scufl2-wfbundle</artifactId>
<version>0.15.0-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.taverna.language</groupId>
<artifactId>taverna-scufl2-t2flow</artifactId>
<version>0.15.0-incubating</version>
</dependency>
To find the latest <version>
to use above (this README might
not have been updated), see the [Apache Taverna Language downloads]
(http://taverna.incubator.apache.org/download/language/).
All Scufl2 modules are also valid OSGi bundles, providing OSGi services.
You can alternatively copy and add these JARs from the build to add to your classpath:
taverna-robundle/target/taverna-scufl2-robundle-0.15.0-incubating.jar
taverna-databundle/target/taverna-scufl2-databundle-0.15.0-incubating.jar
taverna-scufl2-api/target/taverna-scufl2-api-0.15.0-incubating.jar
taverna-scufl2-wfbundle/target/taverna-scufl2-wfbundle-0.15.0-incubating.jar
taverna-scufl2-ucfpackage/target/taverna-scufl2-ucfpackage-0.15.0-incubating.jar
taverna-scufl2-t2flow/target/taverna-scufl2-t2flow-0.15.0-incubating.jar
See the Taverna Language Javadoc for documentation of classes and methods of Taverna Language. Good starting points: