You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@taverna.apache.org by Stian Soiland-Reyes <st...@apache.org> on 2015/02/27 08:29:28 UTC

Re: incubator-taverna-language git commit: README updated (somewhat) for Apache Taverna Language

So I've updates the readmes in taverna-language, but there might still be
some uk.org.taverna-isms around (or claims about LGPL license).

Could someone have a second look?

https://github.com/apache/incubator-taverna-language/blob/master/README.md

Also - how much of this should also be on the website? It is trickier to
link to source code from the site (but I guess you could still link to
GitHub browsings).
 On 26 Feb 2015 23:14, <st...@apache.org> wrote:

> Repository: incubator-taverna-language
> Updated Branches:
>   refs/heads/master bdf5bd306 -> 8904075ea
>
>
> README updated (somewhat) for Apache Taverna Language
>
> .. and the new module structure
>
>
> Project:
> http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
> Commit:
> http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/8904075e
> Tree:
> http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/8904075e
> Diff:
> http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/8904075e
>
> Branch: refs/heads/master
> Commit: 8904075eaf465243e1cab1272230090ddae73303
> Parents: bdf5bd3
> Author: Stian Soiland-Reyes <st...@apache.org>
> Authored: Thu Feb 26 23:13:22 2015 +0000
> Committer: Stian Soiland-Reyes <st...@apache.org>
> Committed: Thu Feb 26 23:13:22 2015 +0000
>
> ----------------------------------------------------------------------
>  README.md                    | 281 +++++++++++++++-----------------------
>  taverna-scufl2-api/README.md | 145 ++++++++++++++++++++
>  2 files changed, 258 insertions(+), 168 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/8904075e/README.md
> ----------------------------------------------------------------------
> diff --git a/README.md b/README.md
> index 4c543f7..841ec94 100644
> --- a/README.md
> +++ b/README.md
> @@ -1,4 +1,4 @@
> -<!---
> +<!--
>     Licensed to the Apache Software Foundation (ASF) under one or more
>     contributor license agreements.  See the NOTICE file distributed with
>     this work for additional information regarding copyright ownership.
> @@ -13,218 +13,163 @@
>     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
>     See the License for the specific language governing permissions and
>     limitations under the License.
> ---->
> +-->
>  # Apache Taverna Language
>
> -[![Build Status](
> https://travis-ci.org/taverna-incubator/incubator-taverna-language.svg)](https://travis-ci.org/taverna-incubator/incubator-taverna-language
> )
> -[![doi:10.5281/zenodo.10651](
> https://zenodo.org/badge/doi/10.5281/zenodo.10651.png)](http://dx.doi.org/10.5281/zenodo.10651
> )
> +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](http://taverna.incubator.apache.org/) 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.
>
> -## SCUFL2
> +## License
>
> +(c) 2015 Apache Software Foundation
>
> -See also the [SCUFL2 wiki][1]
> +This product includes software developed at The [Apache Software
> +Foundation](http://www.apache.org/).
>
> -(c) 2009-2014 University of Manchester, UK
> +Licensed under the [Apache License
> +2.0](https://www.apache.org/licenses/LICENSE-2.0), see the file
> +[LICENSE](LICENSE) for details.
>
> -Licensed under the [GNU Lesser General Public License (LGPL) 2.1][6].
> -See LICENSE.txt for the full terms of LGPL 2.1.
> +The file [NOTICE](NOTICE) contain any additional attributions and
> +details about embedded third-party libraries and source code.
>
> -This is the [API][9], model and format of [SCUFL2][1], which replaces
> -[Taverna][5]'s workflow format .t2flow. This API allows
> -JVM applications to inspect, generate and modify Taverna workflow
> -definitions without depending on the Taverna runtime.
>
> -A new format, called [Scufl2 Workflow Bundle][7] is defined alongside this
> -API. This format can be inspected, generated and modified independently
> -of this API.
> +## Modules
>
> -Note that the ability for Scufl2 API to read a workflow bundle (using
> -the `scufl2-rdfxml` module) does not guarantee it is valid or
> -structurally sound. The experimental modules `scufl2-validation-*` will
> -in the future be able to provide such verification.
> -
> -For more information, see the [SCUFL2 API][9] pages, the
> -[Javadoc][10] and the [SCUFL2 examples][8].
> -
> -Requisites
> -----------
> -
> -* Java 1.6 or newer (tested with Java 1.7)
> -* Maven 2.2.2 or newer (for building, tested with Maven 3.0.5)
> -
> -
> -Building
> ---------
> -
> -* `mvn clean install`
> -
> -This will build each module and run their tests, producing JARs like
> -`scufl2-api/target/scufl2-api-0.14.0.jar`.
> +Official modules:
>
> -First time you build Scufl2 this might download dependencies needed for
> -compliation. These have separate open source licenses, but should be
> -compatible with LGPL. None of the dependencies are neccessary for
> -using the compiled SCUFL2 API.
> +* [taverna-robundle](taverna-robundle/) [Research Object bundles](
> https://w3id.org/bundle), a ZIP-based container format
> +* [taverna-databundle](taverna-databundle/) DataBundle - load/save RO
> bundle
> +  with workflow inputs/outputs/provenance of Taverna workflow runs
> +* [taverna-scufl2-api](taverna-scufl2-api/) Inspect and build SCUFL2
> workflow
> +  definitions that can be executed and edited in Apache Taverna 3
> +* [taverna-scufl2-wfbundle](taverna-scufl2-wfbundle/) load/save Apache
> Taverna 3 `.wfbundle` workflows
> +* [taverna-scufl2-t2flow](taverna-scufl2-t2flow/) load Taverna 2
> `.t2flow` workflows
> +* [taverna-scufl2-schemas](taverna-scufl2-schemas) SCUFL2 XML Schemas and
> OWL ontologies
> +* [taverna-scufl2-wfdesc](taverna-scufl2-wfdesc/) save [wfdesc](
> https://w3id.org/ro#wfdesc) workflow structure as RDF Turtle
> +* [taverna-scufl2-examples](taverna-scufl2-examples) Example usage of the
> SCUFL2 APIs
>
> -Some of the experimental modules are not built automatically, to build
> -them separately, run the same command from within their folder.
> +Experimental modules:
>
> +* [taverna-scufl2-scufl](taverna-scufl2-scufl/) Load Taverna 1 `.xml`
> workflows (SCUFL 1)
> +* [taverna-scufl2-annotation](taverna-scufl2-annotation/) Annotation
> utillity functions
> +* [taverna-baclava-language](taverna-baclava-language) Load Taverna 2
> data documents (wokrkflow inputs/outputs)
>
> +Deprecated modules:
> +* *taverna-scufl2-ucfpackage*: API for [Adobe
> +  UCF](
> https://wikidocs.adobe.com/wiki/display/PDFNAV/Universal+Container+Format)
> +  ZIP files - superseeded by *taverna-robundle*
>
> -Usage
> ------
>
> -Scufl2 is built as a Maven project, and the easiest way to use it is
> -from other Maven projects.
> +For more details, see the READMEs of:
>
> -Typical users of the Scufl2 API will depend on the three modules
> -*scufl2-api*, *scufl2-t2flow* and *scufl2-rdfxml*. In your Maven
> -project's POM file, add this to your `<dependencies>` section:
> +* [taverna-robundle](taverna-robundle/)
> +* [taverna-databundle](taverna-databundle/)
> +* [taverna-scufl2-api](taverna-scufl2-api/)
>
> -               <dependency>
> -                       <groupId>uk.org.taverna.scufl2</groupId>
> -                       <artifactId>scufl2-api</artifactId>
> -                       <version>0.14.0</version>
> -               </dependency>
> -               <dependency>
> -                       <groupId>uk.org.taverna.scufl2</groupId>
> -                       <artifactId>scufl2-rdfxml</artifactId>
> -                       <version>0.14.0</version>
> -               </dependency>
> -               <dependency>
> -                       <groupId>uk.org.taverna.scufl2</groupId>
> -                       <artifactId>scufl2-t2flow</artifactId>
> -                       <version>0.14.0</version>
> -               </dependency>
>
> -All Scufl2 modules are also valid OSGi bundles, see the OSGi section
> -below.
> +## Requisites
>
> -You can alternatively copy and add the JARs from these modules to your
> -classpath:
> +* Java 1.7 or newer (tested with OpenJDK 1.8)
> +* [Apache Maven](https://maven.apache.org/download.html) 3.2.5 or newer
> (older
> +  versions probably also work)
>
> -* scufl2-api/target/scufl2-api-0.14.0.jar
> -* scufl2-rdfxml/target/scufl2-rdfxml-0.14.0.jar
> -* scufl2-t2flow/target/scufl2-t2flow-0.14.0.jar
>
> -See the [SCUFL2 Javadoc](http://mygrid.github.io/scufl2/api/0.14/) for
> -documentation of classes and methods of SCUFL2. The package
> -[uk.o.rg.taverna.scufl2.api](
> http://mygrid.github.io/scufl2/api/0.14/uk/org/taverna/scufl2/api/package-summary.html
> )
> -is a good starting point.
> +# Building
>
> -See the *scufl2-validation* folder for examples of
> -usage. The best classes to start exploring would be
> -`uk.org.taverna.scufl2.api.io.WorkflowBundleIO` and
> -`uk.org.taverna.scufl2.api.container.WorkflowBundle`.
> +To build Apache Taverna Language, use:
>
> -Example of converting .t2flow to .wfbundle:
> +    mvn clean install
>
> -    import uk.org.taverna.scufl2.api.container.WorkflowBundle;
> -    import uk.org.taverna.scufl2.api.io.ReaderException;
> -    import uk.org.taverna.scufl2.api.io.WorkflowBundleIO;
> -    import uk.org.taverna.scufl2.api.io.WriterException;
> +This will build each module and run their tests, producing JARs like
> +`taverna-scufl2-api/target/scufl2-api-0.14.0.jar`.
> +Some of the experimental modules are not built automatically, to build
> +them separately, run the same command from within their folder.
>
> -    // ..
> -
> -    WorkflowBundleIO io = new WorkflowBundleIO();
> -    File t2File = new File("workflow.t2flow");
> -    File scufl2File = new File("workflow.wfbundle");
> -    WorkflowBundle wfBundle = io.readBundle(t2File,
> "application/vnd.taverna.t2flow+xml");
> -    io.writeBundle(wfBundle, scufl2File,
> "application/vnd.taverna.scufl2.workflow-bundle");
> +## Skipping tests
>
> -Check out the GitHub project scufl2-examples[8] for examples of using
> Scufl2,
> -including the above code.
> +To skip the tests (these can be timeconsuming), use:
>
> -Supported file formats with WorkflowBundleIO and their required modules:
> +    mvn clean install -DskipTests
>
> -<table>
> -    <tr><th>Media type</th>  <th>Support</th> <th>JAR</th>
> <th>Description</th> </tr>
> -
> <tr><td>application/vnd.taverna.t2flow+xml</td><td>read</td><td>scufl2-t2flow</td><td>Taverna
> 2 t2flow</td></tr>
> -
> <tr><td>application/vnd.taverna.scufl2.workflow-bundle</td><td>read/write</td><td>scufl2-rdfxml</td><td>Taverna
> 3 workflow bundle</td></tr>
> -
> <tr><td>application/vnd.taverna.scufl+xml</td><td>read</td><td>scufl2-scufl</td><td>Taverna
> 1 SCUFL (experimental)</td></tr>
> -
> <tr><td>text/vnd.taverna.scufl2.structure</td><td>read/write</td><td>scufl2-api</td><td>Textual
> format for testing/debugging</td></tr>
> -    <tr><td>text/vnd.wf4ever.wfdesc+turtle</td><td>write</td><td><a href="
> https://github.com/wf4ever/scufl2-wfdesc">scufl2-wfdesc</a></td><td>Abstract
> workflow structure in <a href="http://www.w3.org/TR/turtle/">RDF
> Turtle</a> according to the <a href="http://purl.org/wf4ever/model#wfdesc">Wf4Ever
> wfdesc ontology</a></td></tr>
> -    <tr><td>text/vnd.mgrast.awe.awf+json</td><td>read</td><td><a href="
> https://github.com/stain/scufl2-awf">scufl2-awf</a></td> <td>Workflow
> definition of the MG-RAST <a href="https://github.com/MG-RAST/AWE">AWE</a>
> workflow engine. (experimental)</td></tr>
> -    <tr><td>application/vnd.shiwa.iwir+xml</td><td>read/write</td> <td><a
> href="https://github.com/stain/scufl2-iwir/">scufl2-iwir</a></td> <td><a
> href="http://www.shiwa-workflow.eu/">SHIWA</a>'s <a href="
> https://www.shiwa-workflow.eu/documents/10753/55350/IWIR+v1.1+Specification">IWIR</a>
> interoperabile workflow language (experimental)</td></tr>
> -    <tr><td>application/json</td> <td>write</td> <td><a href="
> https://github.com/myGrid/scufl2-examples">scufl2-examples</a></td>
> <td>Abstract workflow as JSON (experimental)</td></tr>
> -</table>
>
> +If you are modifying this source code independent of the
> +Apache Taverna project, you may not want to run the
> +[Rat Maven plugin](https://creadur.apache.org/rat/apache-rat-plugin/)
> +that enforces Apache headers in every source file - to disable it, try:
>
> -OSGi services
> --------------
> -To use SCUFL2 from OSGi, use the following OSGi Services. Example, from
> -META-INF/spring/run-context.osgi.xml:
> +    mvn clean install -Drat.skip=true
>
> -    <?xml version="1.0" encoding="UTF-8"?>
> -    <beans:beans xmlns="http://www.springframework.org/schema/osgi"
> -                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> -                xmlns:beans="http://www.springframework.org/schema/beans"
> -                xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> -
> http://www.springframework.org/schema/beans/spring-beans.xsd
> -
> http://www.springframework.org/schema/osgi
> -
> http://www.springframework.org/schema/osgi/spring-osgi.xsd">
>
> -        <service ref="myService" interface="com.example.MyService"/>
>
> -        <reference id="workflowBundleIO"
> interface="uk.org.taverna.scufl2.api.io.WorkflowBundleIO" />
> +Usage
> +-----
>
> -    </beans:beans>
> +Apache Taverna Language is a Maven project, and the easiest way to use it
> is
> +from other Maven projects.
>
> -And in run-context.xml:
> +Released binaries of Apache Taverna Language are published in [Maven
> +Central](http://search.maven.org/).
>
> -    <?xml version="1.0" encoding="UTF-8"?>
> -    <beans xmlns="http://www.springframework.org/schema/beans"
> -        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> -        xsi:schemaLocation="http://www.springframework.org/schema/beans
> -
> http://www.springframework.org/schema/beans/spring-beans.xsd">
> +Typical users of this API will depend on these modules:
>
> -        <bean id="myService" class="com.example.impl.MyServiceImpl" >
> -                <property name="workflowBundleIO" ref="workflowBundleIO"/>
> -        </bean>
> +               <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>
>
> -    </beans>
> +To find the latest `<version>` to use above (this README might
> +not have been updated), see the the [Apache Taverna Language download
> +page](http://taverna.incubator.apache.org/download/language/)
>
> -This will provide a WorkflowBundleIO instance with its readers and
> -writers loaded through OSGi, which when the bundles for scufl2-t2flow
> -and scufl2-rdfxml are loaded, would include support for the Taverna 2
> -t2flow format and the Taverna 3 wfbundle format.
>
> -Note that you do not need to use OSGi services to instantiate
> -Scufl2Tools or URITools, but may do so if you wish.
> +All Scufl2 modules are also valid OSGi bundles, see the OSGi section
> +below.
>
> +You can alternatively copy and add these JARs from the build to add
> +to your classpath:
>
> -Modules
> --------
> +* 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
>
> -Official modules:
> +## Javadoc
>
> -* *scufl2-api* Java Beans for working with SCUFL2
> -* *scufl2-t2flow* .t2flow import from Taverna 2
> -* *scufl2-rdfxml* .wfbundle import/export (RDF/XML)
> +See the [Taverna Language
> +Javadoc](http://taverna.incubator.apache.org/javadoc/taverna-language/)
> for
> +documentation of classes and methods of Taverna Language.  Good starting
> +points:
> + * [org.apache.taverna.scufl2.api](
> http://taverna.incubator.apache.org/javadoc/taverna-language/org/apache/taverna/scufl2/api/package-summary.html
> )
> + * [org.apache.taverna.robundle](
> http://taverna.incubator.apache.org/javadoc/taverna-language/org/apache/taverna/robundle/package-summary.html
> )
> + * [org.apache.taverna.databundle](
> http://taverna.incubator.apache.org/javadoc/taverna-language/org/apache/taverna/databundle/package-summary.html
> )
>
> -Experimental modules:
>
> -* *scufl2-usecases* Example code covering [SCUFL2 use cases][4] (out of
> date)
> -* *scufl2-rdf* Pure RDF export/import (out of date)
> -* *scufl2-scufl* SCUFL 1 .xml import from Taverna 1
> -* *scufl2-validation* API for validating a Scufl2 workflow bundle
> -* *scufl2-validation-correctness*
> -  Validate correctness of Scufl2 workflow definition
> -* *scufl2-validation-structural*
> -  Validate that a Scufl2 workflow definition is structurally sound
> -* *scufl2-validation-integration*
> -  Integration tests for scufl2-validation modules
> -
> -
> -
> -[1]: http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2
> -[2]: http://www.mygrid.org.uk/
> -[3]:
> http://www.mygrid.org.uk/dev/wiki/display/story/Dataflow+serialization
> -[4]: http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2+use+cases
> -[5]: http://www.taverna.org.uk/
> -[6]: http://www.gnu.org/licenses/lgpl-2.1.html
> -[7]:
> http://www.mygrid.org.uk/dev/wiki/display/developer/Taverna+Workflow+Bundle
> -[8]: https://github.com/mygrid/scufl2-examples
> -[9]: http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2+API
> -[10]: http://mygrid.github.io/scufl2/api/0.14/
>
>
> http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/8904075e/taverna-scufl2-api/README.md
> ----------------------------------------------------------------------
> diff --git a/taverna-scufl2-api/README.md b/taverna-scufl2-api/README.md
> new file mode 100644
> index 0000000..24618cf
> --- /dev/null
> +++ b/taverna-scufl2-api/README.md
> @@ -0,0 +1,145 @@
> +<!--
> +   Licensed to the Apache Software Foundation (ASF) under one or more
> +   contributor license agreements.  See the NOTICE file distributed with
> +   this work for additional information regarding copyright ownership.
> +   The ASF licenses this file to You under the Apache License, Version 2.0
> +   (the "License"); you may not use this file except in compliance with
> +   the License.  You may obtain a copy of the License at
> +
> +       http://www.apache.org/licenses/LICENSE-2.0
> +
> +   Unless required by applicable law or agreed to in writing, software
> +   distributed under the License is distributed on an "AS IS" BASIS,
> +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> +   See the License for the specific language governing permissions and
> +   limitations under the License.
> +-->
> +# SCUFL2
> +
> +SCUFL2 API is part of [Apache Taverna Language]().
> +
> +
> +This is the [API][9], model and format of [SCUFL2][1], which is the
> +workflow format of [Apache Taverna](http://taverna.incubator.apache.org/
> ).
> +SCUFL2 replaces the `.t2flow` format of Taverna 2.
> +This API allows JVM applications to inspect, generate and modify
> +Apache Taverna workflow definitions without depending on the Apache
> Taverna
> +runtime.
> +
> +The format [Scufl2 Workflow Bundle][7] is defined alongside this
> +API. This format can be inspected, generated and modified independently
> +of this API.
> +
> +Note that the ability for Scufl2 API to read a workflow bundle (using
> +the `scufl2-wfbundle` module) does not guarantee it is valid or
> +structurally sound. The
> +
> +For more information, see the [SCUFL2 API][9] pages, the
> +[Javadoc][10] and the [SCUFL2 examples][8].
> +
> +
> +
> +
> +
> +Usage
> +-----
> +
> +See the [Apache Taverna Language](../) README for details on building and
> +using Apache Taverna Language using Maven.  You will typically want to
> also use
> +at least [taverna-scufl2-wfbundle](../taverna-scufl2-wfbundle) to support
> +loading and saving of SCUFL2 workflows in the `.wfbundle` format.
> +
> +All Scufl2 modules are also valid OSGi bundles, see the [OSGi
> +section](#OSGI_services) below.
> +
> +See the [Taverna Language Javadoc][10] for documentation of classes and
> methods
> +of SCUFL2. The package
> +[org.apache.taverna.scufl2.api](
> http://taverna.incubator.apache.org/javadoc/taverna-language/org/apache/taverna/scufl2/api/package-summary.html
> )
> +is a good starting point.
> +
> +See the folder [taverna-scufl2-examples](../taverna-scufl2-examples/)
> +for examples of usage. The best classes to start using would be
> +`org.apache.taverna.scufl2.api.io.WorkflowBundleIO` and
> +`org.apache.taverna.scufl2.api.container.WorkflowBundle`.
> +
> +Example of converting `.t2flow` to `.wfbundle`:
> +
> +    import org.apache.taverna.scufl2.api.container.WorkflowBundle;
> +    import org.apache.taverna.scufl2.api.io.ReaderException;
> +    import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
> +    import org.apache.taverna.scufl2.api.io.WriterException;
> +
> +    // ..
> +
> +    WorkflowBundleIO io = new WorkflowBundleIO();
> +    File t2File = new File("workflow.t2flow");
> +    File scufl2File = new File("workflow.wfbundle");
> +    WorkflowBundle wfBundle = io.readBundle(t2File,
> "application/vnd.taverna.t2flow+xml");
> +    io.writeBundle(wfBundle, scufl2File,
> "application/vnd.taverna.scufl2.workflow-bundle");
> +
> +Supported file formats with `WorkflowBundleIO` and their required modules:
> +
> +<table>
> +    <tr><th>Media type</th>  <th>Support</th> <th>JAR</th>
> <th>Description</th> </tr>
> +
> <tr><td>application/vnd.taverna.t2flow+xml</td><td>read</td><td>taverna-scufl2-t2flow</td><td>Taverna
> 2 t2flow</td></tr>
> +
> <tr><td>application/vnd.taverna.scufl2.workflow-bundle</td><td>read/write</td><td>taverna-scufl2-wfbundle</td><td>Taverna
> 3 workflow bundle</td></tr>
> +
> <tr><td>application/vnd.taverna.scufl+xml</td><td>read</td><td>taverna-scufl2-scufl</td><td>Taverna
> 1 SCUFL (experimental)</td></tr>
> +
> <tr><td>text/vnd.taverna.scufl2.structure</td><td>read/write</td><td>taverna-scufl2-api</td><td>Textual
> format for testing/debugging</td></tr>
> +    <tr><td>text/vnd.wf4ever.wfdesc+turtle</td><td>write</td><td><a href="
> https://github.com/wf4ever/scufl2-wfdesc">taverna-scufl2-wfdesc</a></td><td>Abstract
> workflow structure in <a href="http://www.w3.org/TR/turtle/">RDF
> Turtle</a> according to the <a href="http://purl.org/wf4ever/model#wfdesc">Wf4Ever
> wfdesc ontology</a></td></tr>
> +    <tr><td>text/vnd.mgrast.awe.awf+json</td><td>read</td><td><a href="
> https://github.com/stain/scufl2-awf">scufl2-awf</a></td> <td>Workflow
> definition of the MG-RAST <a href="https://github.com/MG-RAST/AWE">AWE</a>
> workflow engine. (experimental)</td></tr>
> +    <tr><td>application/vnd.shiwa.iwir+xml</td><td>read/write</td> <td><a
> href="https://github.com/stain/scufl2-iwir/">scufl2-iwir</a></td> <td><a
> href="http://www.shiwa-workflow.eu/">SHIWA</a>'s <a href="
> https://www.shiwa-workflow.eu/documents/10753/55350/IWIR+v1.1+Specification">IWIR</a>
> interoperabile workflow language (experimental)</td></tr>
> +    <tr><td>application/json</td> <td>write</td> <td><a href="
> https://github.com/myGrid/scufl2-examples">scufl2-examples</a></td>
> <td>Abstract workflow as JSON (experimental)</td></tr>
> +</table>
> +
> +
> +OSGi services
> +-------------
> +To use SCUFL2 from OSGi with Spring, use the following OSGi Services.
> Example,
> +from `META-INF/spring/run-context.osgi.xml`:
> +
> +    <?xml version="1.0" encoding="UTF-8"?>
> +    <beans:beans xmlns="http://www.springframework.org/schema/osgi"
> +                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> +                xmlns:beans="http://www.springframework.org/schema/beans"
> +                xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> +
> http://www.springframework.org/schema/beans/spring-beans.xsd
> +
> http://www.springframework.org/schema/osgi
> +
> http://www.springframework.org/schema/osgi/spring-osgi.xsd">
> +
> +        <service ref="myService" interface="com.example.MyService"/>
> +
> +        <reference id="workflowBundleIO"
> interface="org.apache.taverna.scufl2.api.io.WorkflowBundleIO" />
> +
> +    </beans:beans>
> +
> +And in `META-INF/spring/run-context.xml`:
> +
> +    <?xml version="1.0" encoding="UTF-8"?>
> +    <beans xmlns="http://www.springframework.org/schema/beans"
> +        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> +        xsi:schemaLocation="http://www.springframework.org/schema/beans
> +
> http://www.springframework.org/schema/beans/spring-beans.xsd">
> +
> +        <bean id="myService" class="com.example.impl.MyServiceImpl" >
> +                <property name="workflowBundleIO" ref="workflowBundleIO"/>
> +        </bean>
> +
> +    </beans>
> +
> +This will provide a `WorkflowBundleIO` instance with its readers and
> +writers loaded through OSGi, which when the bundles for
> `taverna-scufl2-t2flow`
> +and `taverna-scufl2-wfbundle` are also loaded, would include support for
> the
> +Taverna 2 t2flow format and the Taverna 3 wfbundle format.
> +
> +Note that you do not need to use OSGi services to instantiate
> +`Scufl2Tools` or `URITools`, but may do so if you wish.
> +
> +
> +
> +
> +[1]: http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2
> +[3]:
> http://www.mygrid.org.uk/dev/wiki/display/story/Dataflow+serialization
> +[4]: http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2+use+cases
> +[7]:
> http://www.mygrid.org.uk/dev/wiki/display/developer/Taverna+Workflow+Bundle
> +[9]: http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2+API
> +[10]: http://taverna.incubator.apache.org/javadoc/taverna-language/
>
>