You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@taverna.apache.org by Majdi Haouech <ma...@gmail.com> on 2018/02/13 04:40:25 UTC

GSOC: Add Common Workflow Language support to Taverna

Hi,

I am a software engineering MS student at Telecom SudParis in France.
I am really interested by this GSOC project.
Here's what I understand about the project.
In this project we need to create a plugin that exports and imports CWL
workflows.
First, I need to be familiar with the CWL specification in order to be able
to convert YAML files to Taverna workflows.
Next, I'll need to do the opposite work by transforming a Taverna workflow
into YAML files following the CWL specification as well.
Finally, if there will be enough time, I can contribute to Taverna's Tool
Activity by completing the TAVERNA-878 issue.
I understand that the contribution will be to the Taverna Language API and
any other remarks are welcome.

I believe that I will be a great match for this project because for several
reasons.
I am used to work with different technologies and dealing with different
specifications.
I am also used to work with existing code and extending it.
Also, I am really motivated for contributing to an Apache project and this
opportunity is perfect for me to dive right in with the right support.

Please correct me if I misunderstood some point or if you need me to
elaborate more.
Thank you so much for your attention.

Best regards,
Majdi

Re: GSOC: Add Common Workflow Language support to Taverna

Posted by Majdi Haouech <ma...@gmail.com>.
Hi all,
I hope you're doing well.

Please find in the link below the not finished proposal.

https://docs.google.com/document/d/1nwq1A_BUiXX8lKxwWg8-n-IuI_1F4dX7ZrmGOliTrXs/edit?usp=sharing

I am not sure how the proposal needs to be in terms of length, details and
content.
I am sending you the proposal so far so you can have an idea and you can
correct me if I made mistakes or if I need to elaborate more on certain
parts.
Any remarks are welcome.

Thank you for your time.

Best regards,
Majdi

On Mon, Mar 5, 2018 at 10:21 AM, Majdi Haouech <ma...@gmail.com>
wrote:

> Hi Stian,
>
> Thank you so much for your reply.
> I am really sorry for my late reply.
>
> Thank you for the information you provided. I strongly agree with what you
> said.
>
> I am seeing the tutorials and reading the doc. Soon I will start preparing
> the proposal and I will keep you in touch.
> Thank you once again for your message.
>
> Best regards,
> Majdi
>
> On Wed, Feb 21, 2018 at 12:57 PM, Stian Soiland-Reyes <st...@apache.org>
> wrote:
>
>> Hi, Majdi, thank you for your intest in GSOC and Apache Taverna!
>> Apologies for late reply.
>>
>> On Thu, 15 Feb 2018 05:08:55 +0100, Majdi Haouech <
>> majdi.haouach@gmail.com> wrote:
>> > I have worked with different languages and technologies, to name a few:
>> > Java, C, C++, Python, JS, Git, OWL, JavaEE, RabbitMQ, Maven.
>> > I am also contributing to a Mozilla open source project which required
>> > working with existing code and delivering a full working and completely
>> > tested contribution.
>>
>> This is a strong background!  It's good you have experience with both
>> OWL, Python and Java.   As you might have noticed the cwltool reference
>> implementation is written in Python, while Taverna is (largely) in Java.
>>
>>
>> > > First, I need to be familiar with the CWL specification in order to
>> be able
>> > > to convert YAML files to Taverna workflows.
>> > > Next, I'll need to do the opposite work by transforming a Taverna
>> workflow
>> > > into YAML files following the CWL specification as well.
>> > > Finally, if there will be enough time, I can contribute to Taverna's
>> Tool
>> > > Activity by completing the TAVERNA-878 issue.
>> > > I understand that the contribution will be to the Taverna Language
>> API and
>> > > any other remarks are welcome.
>>
>> Yes, this can be a good way to start.  I am a bit worried about going
>> for both CWL import and export at the same time - although trying to
>> have some kind of round-trip support would be wonderful!
>>
>> I think what you are proposing is to keep the translation structural at
>> first, that is Taverna can import the CWL workflow and get the
>> correct boxes/arrows connected, but would not know
>> how to execute the CWL tools (pending TAVERNA-878).
>>
>> So this could for instance be that you import CWL tools into the dummy
>> CWL activity we already have
>> https://github.com/apache/incubator-taverna-common-activitie
>> s/tree/cwl-browse/taverna-cwl-activity
>> where it would just keep a JSON tree of the CWL Tool configuration
>> without knowing how to execute it.  That should make it easier to do a
>> round-trip save out again.
>>
>> TAVERNA-878 could easily also be the most time-consuming part of the
>> effort, so it might be good to not risk all on that.  You may have a go
>> at doing just simple CWL command line tools (e.g. just arguments and
>> stdin/out without files) which should be easier to map to the existing
>> Tool activity.
>>
>>
>> Export of Taverna Workflows to CWL can seem challenging because in
>> Taverna we have many types of activities which are not supported by
>> other CWL engines:
>> https://taverna.incubator.apache.org/javadoc/taverna-common-activities/
>>
>> So again it could be a structural export where the CWL side just has
>> "TavernaActivity" and includes the Taverna Activity JSON for opposite
>> round-trip, but would not be executable on other CWL engines.
>>
>> (They should however work on http://view.commonwl.org/)
>>
>> If you then towards the end want to move beyond structural/skeleton
>> export of Taverna workflows into CWL  you can progress to export the
>> Taverna's Command Tool activity as CWL command line tools. Again there
>> might be features in the Taverna side that don't match exactly to CWL,
>> which you can say is not supported.
>>
>>
>> > > I am used to work with different technologies and dealing with
>> different
>> > > specifications.
>>
>> Great, yes, that is perhaps also the greatest challenge of this
>> particular GSOC project, in that you will be integrating between several
>> existing technologies and specifications!
>>
>>
>> > > I am also used to work with existing code and extending it.
>> > > Also, I am really motivated for contributing to an Apache project and
>> this
>> > > opportunity is perfect for me to dive right in with the right support.
>>
>> Thank you, we very much welcome your effort!
>>
>> What I think you could do next is to have a go with the different
>> technologies, see the tutorials - and then start building a proposal
>> (Google Docs?) where you list the background material and
>> start listing your task breakdown.
>>
>> Taverna Language has some (but not much) doc at
>> https://github.com/apache/incubator-taverna-language/
>> and
>> https://taverna.incubator.apache.org/javadoc/taverna-languag
>> e/org/apache/taverna/scufl2/api/package-summary.html
>>
>> The GOSC proposal is due mid March so there is time to develop it now -
>> but it's good if you keep in touch with us at dev@taverna so we can
>> review it before the deadline; we want GSOC to be successful as well!
>>
>>
>> --
>> Stian Soiland-Reyes
>> The University of Manchester
>> http://www.esciencelab.org.uk/
>> http://orcid.org/0000-0001-9842-9718
>>
>>
>> --
>> Stian Soiland-Reyes
>> http://orcid.org/0000-0001-9842-9718
>>
>>
>

Re: GSOC: Add Common Workflow Language support to Taverna

Posted by Majdi Haouech <ma...@gmail.com>.
Hi Stian,

Thank you so much for your reply.
I am really sorry for my late reply.

Thank you for the information you provided. I strongly agree with what you
said.

I am seeing the tutorials and reading the doc. Soon I will start preparing
the proposal and I will keep you in touch.
Thank you once again for your message.

Best regards,
Majdi

On Wed, Feb 21, 2018 at 12:57 PM, Stian Soiland-Reyes <st...@apache.org>
wrote:

> Hi, Majdi, thank you for your intest in GSOC and Apache Taverna!
> Apologies for late reply.
>
> On Thu, 15 Feb 2018 05:08:55 +0100, Majdi Haouech <ma...@gmail.com>
> wrote:
> > I have worked with different languages and technologies, to name a few:
> > Java, C, C++, Python, JS, Git, OWL, JavaEE, RabbitMQ, Maven.
> > I am also contributing to a Mozilla open source project which required
> > working with existing code and delivering a full working and completely
> > tested contribution.
>
> This is a strong background!  It's good you have experience with both
> OWL, Python and Java.   As you might have noticed the cwltool reference
> implementation is written in Python, while Taverna is (largely) in Java.
>
>
> > > First, I need to be familiar with the CWL specification in order to be
> able
> > > to convert YAML files to Taverna workflows.
> > > Next, I'll need to do the opposite work by transforming a Taverna
> workflow
> > > into YAML files following the CWL specification as well.
> > > Finally, if there will be enough time, I can contribute to Taverna's
> Tool
> > > Activity by completing the TAVERNA-878 issue.
> > > I understand that the contribution will be to the Taverna Language API
> and
> > > any other remarks are welcome.
>
> Yes, this can be a good way to start.  I am a bit worried about going
> for both CWL import and export at the same time - although trying to
> have some kind of round-trip support would be wonderful!
>
> I think what you are proposing is to keep the translation structural at
> first, that is Taverna can import the CWL workflow and get the
> correct boxes/arrows connected, but would not know
> how to execute the CWL tools (pending TAVERNA-878).
>
> So this could for instance be that you import CWL tools into the dummy
> CWL activity we already have
> https://github.com/apache/incubator-taverna-common-
> activities/tree/cwl-browse/taverna-cwl-activity
> where it would just keep a JSON tree of the CWL Tool configuration
> without knowing how to execute it.  That should make it easier to do a
> round-trip save out again.
>
> TAVERNA-878 could easily also be the most time-consuming part of the
> effort, so it might be good to not risk all on that.  You may have a go
> at doing just simple CWL command line tools (e.g. just arguments and
> stdin/out without files) which should be easier to map to the existing
> Tool activity.
>
>
> Export of Taverna Workflows to CWL can seem challenging because in
> Taverna we have many types of activities which are not supported by
> other CWL engines:
> https://taverna.incubator.apache.org/javadoc/taverna-common-activities/
>
> So again it could be a structural export where the CWL side just has
> "TavernaActivity" and includes the Taverna Activity JSON for opposite
> round-trip, but would not be executable on other CWL engines.
>
> (They should however work on http://view.commonwl.org/)
>
> If you then towards the end want to move beyond structural/skeleton
> export of Taverna workflows into CWL  you can progress to export the
> Taverna's Command Tool activity as CWL command line tools. Again there
> might be features in the Taverna side that don't match exactly to CWL,
> which you can say is not supported.
>
>
> > > I am used to work with different technologies and dealing with
> different
> > > specifications.
>
> Great, yes, that is perhaps also the greatest challenge of this
> particular GSOC project, in that you will be integrating between several
> existing technologies and specifications!
>
>
> > > I am also used to work with existing code and extending it.
> > > Also, I am really motivated for contributing to an Apache project and
> this
> > > opportunity is perfect for me to dive right in with the right support.
>
> Thank you, we very much welcome your effort!
>
> What I think you could do next is to have a go with the different
> technologies, see the tutorials - and then start building a proposal
> (Google Docs?) where you list the background material and
> start listing your task breakdown.
>
> Taverna Language has some (but not much) doc at
> https://github.com/apache/incubator-taverna-language/
> and
> https://taverna.incubator.apache.org/javadoc/taverna-
> language/org/apache/taverna/scufl2/api/package-summary.html
>
> The GOSC proposal is due mid March so there is time to develop it now -
> but it's good if you keep in touch with us at dev@taverna so we can
> review it before the deadline; we want GSOC to be successful as well!
>
>
> --
> Stian Soiland-Reyes
> The University of Manchester
> http://www.esciencelab.org.uk/
> http://orcid.org/0000-0001-9842-9718
>
>
> --
> Stian Soiland-Reyes
> http://orcid.org/0000-0001-9842-9718
>
>

Re: GSOC: Add Common Workflow Language support to Taverna

Posted by Stian Soiland-Reyes <st...@apache.org>.
Hi, Majdi, thank you for your intest in GSOC and Apache Taverna!
Apologies for late reply.

On Thu, 15 Feb 2018 05:08:55 +0100, Majdi Haouech <ma...@gmail.com> wrote:
> I have worked with different languages and technologies, to name a few:
> Java, C, C++, Python, JS, Git, OWL, JavaEE, RabbitMQ, Maven.
> I am also contributing to a Mozilla open source project which required
> working with existing code and delivering a full working and completely
> tested contribution.

This is a strong background!  It's good you have experience with both
OWL, Python and Java.   As you might have noticed the cwltool reference
implementation is written in Python, while Taverna is (largely) in Java.


> > First, I need to be familiar with the CWL specification in order to be able
> > to convert YAML files to Taverna workflows.
> > Next, I'll need to do the opposite work by transforming a Taverna workflow
> > into YAML files following the CWL specification as well.
> > Finally, if there will be enough time, I can contribute to Taverna's Tool
> > Activity by completing the TAVERNA-878 issue.
> > I understand that the contribution will be to the Taverna Language API and
> > any other remarks are welcome.

Yes, this can be a good way to start.  I am a bit worried about going
for both CWL import and export at the same time - although trying to
have some kind of round-trip support would be wonderful!

I think what you are proposing is to keep the translation structural at
first, that is Taverna can import the CWL workflow and get the 
correct boxes/arrows connected, but would not know
how to execute the CWL tools (pending TAVERNA-878).   

So this could for instance be that you import CWL tools into the dummy
CWL activity we already have 
https://github.com/apache/incubator-taverna-common-activities/tree/cwl-browse/taverna-cwl-activity
where it would just keep a JSON tree of the CWL Tool configuration
without knowing how to execute it.  That should make it easier to do a
round-trip save out again.

TAVERNA-878 could easily also be the most time-consuming part of the
effort, so it might be good to not risk all on that.  You may have a go
at doing just simple CWL command line tools (e.g. just arguments and
stdin/out without files) which should be easier to map to the existing
Tool activity.


Export of Taverna Workflows to CWL can seem challenging because in
Taverna we have many types of activities which are not supported by
other CWL engines:
https://taverna.incubator.apache.org/javadoc/taverna-common-activities/

So again it could be a structural export where the CWL side just has
"TavernaActivity" and includes the Taverna Activity JSON for opposite
round-trip, but would not be executable on other CWL engines.

(They should however work on http://view.commonwl.org/)

If you then towards the end want to move beyond structural/skeleton
export of Taverna workflows into CWL  you can progress to export the
Taverna's Command Tool activity as CWL command line tools. Again there
might be features in the Taverna side that don't match exactly to CWL,
which you can say is not supported.


> > I am used to work with different technologies and dealing with different
> > specifications.

Great, yes, that is perhaps also the greatest challenge of this
particular GSOC project, in that you will be integrating between several
existing technologies and specifications!


> > I am also used to work with existing code and extending it.
> > Also, I am really motivated for contributing to an Apache project and this
> > opportunity is perfect for me to dive right in with the right support.

Thank you, we very much welcome your effort! 

What I think you could do next is to have a go with the different
technologies, see the tutorials - and then start building a proposal
(Google Docs?) where you list the background material and 
start listing your task breakdown.

Taverna Language has some (but not much) doc at 
https://github.com/apache/incubator-taverna-language/
and 
https://taverna.incubator.apache.org/javadoc/taverna-language/org/apache/taverna/scufl2/api/package-summary.html

The GOSC proposal is due mid March so there is time to develop it now -
but it's good if you keep in touch with us at dev@taverna so we can 
review it before the deadline; we want GSOC to be successful as well!


-- 
Stian Soiland-Reyes
The University of Manchester
http://www.esciencelab.org.uk/
http://orcid.org/0000-0001-9842-9718


-- 
Stian Soiland-Reyes
http://orcid.org/0000-0001-9842-9718


Re: GSOC: Add Common Workflow Language support to Taverna

Posted by Majdi Haouech <ma...@gmail.com>.
Hello Michael,

Thank you so much for your reply.
I am a final year MS student and I have worked on several projects in
school and during my two internships at IBM.
I have worked with different languages and technologies, to name a few:
Java, C, C++, Python, JS, Git, OWL, JavaEE, RabbitMQ, Maven.
I am also contributing to a Mozilla open source project which required
working with existing code and delivering a full working and completely
tested contribution.

I hope I have answered your questions.
I am at your disposal for any further information.

Best regards,
Majdi


On Tue, Feb 13, 2018 at 10:19 AM, Michael Crusoe <mi...@gmail.com>
wrote:

> Hello Majdi,
>
> Thank you for your interest and enthusiasm! Taverna internals are not my
> expertise, but I can assist with CWL and general workflow questions.
>
> Could you expand on:
>
> > I am used to work with different technologies and dealing with different
> specifications.
> > I am also used to work with existing code and extending it.
>
> Which specific technologies and specifications do you have experience with?
>
>
> On Feb 13, 2018 05:40, "Majdi Haouech" <ma...@gmail.com> wrote:
>
> Hi,
>
> I am a software engineering MS student at Telecom SudParis in France.
> I am really interested by this GSOC project.
> Here's what I understand about the project.
> In this project we need to create a plugin that exports and imports CWL
> workflows.
> First, I need to be familiar with the CWL specification in order to be able
> to convert YAML files to Taverna workflows.
> Next, I'll need to do the opposite work by transforming a Taverna workflow
> into YAML files following the CWL specification as well.
> Finally, if there will be enough time, I can contribute to Taverna's Tool
> Activity by completing the TAVERNA-878 issue.
> I understand that the contribution will be to the Taverna Language API and
> any other remarks are welcome.
>
> I believe that I will be a great match for this project because for several
> reasons.
> I am used to work with different technologies and dealing with different
> specifications.
> I am also used to work with existing code and extending it.
> Also, I am really motivated for contributing to an Apache project and this
> opportunity is perfect for me to dive right in with the right support.
>
> Please correct me if I misunderstood some point or if you need me to
> elaborate more.
> Thank you so much for your attention.
>
> Best regards,
> Majdi
>

Re: GSOC: Add Common Workflow Language support to Taverna

Posted by Michael Crusoe <mi...@gmail.com>.
Hello Majdi,

Thank you for your interest and enthusiasm! Taverna internals are not my
expertise, but I can assist with CWL and general workflow questions.

Could you expand on:

> I am used to work with different technologies and dealing with different
specifications.
> I am also used to work with existing code and extending it.

Which specific technologies and specifications do you have experience with?


On Feb 13, 2018 05:40, "Majdi Haouech" <ma...@gmail.com> wrote:

Hi,

I am a software engineering MS student at Telecom SudParis in France.
I am really interested by this GSOC project.
Here's what I understand about the project.
In this project we need to create a plugin that exports and imports CWL
workflows.
First, I need to be familiar with the CWL specification in order to be able
to convert YAML files to Taverna workflows.
Next, I'll need to do the opposite work by transforming a Taverna workflow
into YAML files following the CWL specification as well.
Finally, if there will be enough time, I can contribute to Taverna's Tool
Activity by completing the TAVERNA-878 issue.
I understand that the contribution will be to the Taverna Language API and
any other remarks are welcome.

I believe that I will be a great match for this project because for several
reasons.
I am used to work with different technologies and dealing with different
specifications.
I am also used to work with existing code and extending it.
Also, I am really motivated for contributing to an Apache project and this
opportunity is perfect for me to dive right in with the right support.

Please correct me if I misunderstood some point or if you need me to
elaborate more.
Thank you so much for your attention.

Best regards,
Majdi