Stian Soiland-Reyes created TAVERNA-900:
-------------------------------------------

             Summary: Add Common Workflow Language support to Taverna
                 Key: TAVERNA-900
                 URL: https://issues.apache.org/jira/browse/TAVERNA-900
             Project: Apache Taverna
          Issue Type: Story
          Components: Taverna Language, Taverna Workbench Common Activities
            Reporter: Stian Soiland-Reyes


h2. GSOC: Add CWL support to Taverna

The proposed GSOC task is to add support for CWL within Taverna. 


The Apache Taverna community believe CWL support can be added to Taverna in a 
progressive fashion, and therefore the GSOC student can achieve success in 
multiple ways - and depending on her/his interests and existing skills can 
choose to pursue *one or two of these tasks* in detail, and if time permits can 
"top up" by exploring some of the remaining tasks more briefly as prototypes.
 
See the underlying [Jira 
issues|https://issues.apache.org/jira/issues/?jql=project%20%3D%20TAVERNA%20AND%20labels%20%3D%20cwl]
 for further ideas.

* Save Taverna workflows as CWL (TAVERNA-881) - basically generate YAML by 
inspecting workflows using the Taverna Language API and follow the [CWL 
specifications|https://w3id.org/cwl/].
* Read CWL workflows (TAVERNA-877) - Add a plugin to [Taverna Language 
API|https://github.com/apache/incubator-taverna-language/] to parse CWL's YAML
* Execute CWL tool descriptions (TAVERNA-878) - modify Taverna's [Tool 
activity|https://github.com/apache/incubator-taverna-common-activities/tree/master/taverna-external-tool-activity]
* Browse and use CWL tool descriptions from the workbench (TAVERNA-880) - 
modify GUI plugin to select from a collection or registry of tool descriptions
* Create a Docker tool for executing Taverna activities (TAVERNA-879) - this 
allows any Taverna steps to be used by other CWL engines

Other Taverna or CWL-related tasks can of course also be proposed by the 
students.


h2. CWL

The [Common Workflow Language|http://commonwl.org/] (CWL) is a pragmatic 
approach to a standardized workflow language for executing  command line tools 
on the cloud and on local servers.  

CWL is a *YAML*-based dataflow format, describing how command line tools can be 
wired together in a pipeline. An example workflow: 
https://github.com/common-workflow-language/workflows/blob/master/workflows/FestivalDemo/filtercount.cwl.yaml

CWL has a [vibrant 
community|https://gitter.im/common-workflow-language/common-workflow-language] 
and multiple implementations, including _Rabix_, _Galaxy_ and a Python-based 
reference implementation _cwltool_.

h2. Taverna

[Apache Taverna|http://taverna.incubator.apache.org/] (incubating) is a 
Java-based workflow system with a graphical design interface. Taverna workflows 
can combine many different service types, including REST and WSDL services, 
command line tools, scripts (e.g. BeanShell, R) and custom plugins (e.g. 
BioMart).

Taverna workflows can be executed on the desktop, on the command line, or on a 
Taverna server installation, which can be controlled from a web portal, a 
mobile app, or integrated into third-party applications.

Taverna is used in a [wide range of 
sciences|http://taverna.incubator.apache.org/introduction/taverna-in-use/] for 
data analysis and processing, including bioinformatics, cheminformatics, 
biodiversity and musicology. Workflow engine features include provenance 
tracking, implicit parallelism/iterations, retry/failover and looping. 

Taverna workflows are commonly shared on 
[myExperiment|http://www.myexperiment.org], and can either be created 
graphically in the [Taverna 
workbench|http://taverna.incubator.apache.org/download/workbench/], 
programmatically using the [Taverna Language 
API|http://taverna.incubator.apache.org/download/language/] or by generating 
workflow definitions in the 
[SCUFL2|http://taverna.incubator.apache.org/documentation/scufl2/]  format.


h2. Community engagement

Interested GSOC students are requested to engage early with the 
[dev@taverna|http://taverna.incubator.apache.org/community/lists#devtaverna] 
mailing list to describe their ideas for approaching this project, to clarify 
the tasks and for any questions and issues.

As a first step, the prospective applicant should leave a comment on this Jira 
issue to indicate their interest, and the GSOC mentors would be happy to assist 
on any questions. 

As the project starts we are expecting the student to become part of the 
dev@taverna community to regularly discuss their progress. 

We are also hoping the student would engage with the [CWL 
community|http://common-workflow-language.github.io/#Community_and_Contributing]
 - particularly for questions on interpreting the CWL specifications and 
possibly even improving them. This engagement might include participating in 
development of the [CWL Java 
SDK|https://github.com/common-workflow-language/cwljava/] - although for GSOC 
evaluation purposes we will concentrate on your direct contributions to Apache 
Taverna.

h2. Mentors

An important part of GSOC is the personal mentoring from existing  members of 
the open source community. Our job is not just to teach you how to successfully 
get through the GSOC programme, but also to motivate you and make sure you 
progress. We will show you how to contribute to open source, debug, improve, 
document, test and release your code as part of Apache Taverna. 

The GSOC mentors for Apache Taverna have experience from guiding multiple 
earlier GSOC students and local students, and can be contacted privately for 
day-to-day interaction and trouble-shooting. 

Mentors for this GSOC project:

* Stian Soiland-Reyes




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to