Title:     Publications
Notice:    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.

*These publications **describe**, **extend** or **experiment** with Taverna. See also [references](/community/references) and [how to cite Taverna](/community/cite).*

*Please suggest an [edit](/community/edit) of the website to add or correct a publication listing.*

### 2018

Pinar Alper, Khalid Belhajjame, Vasa Curcin, Carole A. Goble (2018):
**LabelFlow Framework for Annotating Workflow Provenance**.
_Informatics_ **5**(1) 11. [https://doi.org/10.3390/informatics5010011](https://doi.org/10.3390/informatics5010011)

Ajinkya Prabhune, Aaron Zweig, Rainer Stotzka, Jürgen Hesser, Michael Gertz (2018): 
**P-PIF: a ProvONE provenance interoperability framework for analyzing heterogeneous workflow specifications and provenance traces**
In: _Distributed and Parallel Databases_ **36**(1) pp 219–264.
[https://doi.org/10.1007/s10619-017-7216-y](https://doi.org/10.1007/s10619-017-7216-y)
[[researchgate]](https://www.researchgate.net/publication/321737778_P-PIF_a_ProvONE_provenance_interoperability_framework_for_analyzing_heterogeneous_workflow_specifications_and_provenance_traces)
**No Open Access preprint available?**


### 2017

Alban Gaignard, Khalid Belhajjame, Hala Skaf-Molli (2017):
**SHARP: Harmonizing and Bridging Cross-Workflow Provenance**.
At: ESWC 2017: The Semantic Web: ESWC 2017 Satellite Events pp 219-234, 
LNCS **10577**.
[https://doi.org/10.1007/978-3-319-70407-4_35](https://doi.org/10.1007/978-3-319-70407-4_35)
[[preprint]](https://hal.archives-ouvertes.fr/hal-01768385)
[[pdf]](https://hal.archives-ouvertes.fr/hal-01768385/document)

Marek Kasztelnik, Ernesto Coto, Marian Bubak, Maciej Malawski, Piotr Nowakowski, Juan Arenas, Alfredo Saglimbeni, Debora Testi, Alejandro F. Frangi (2017):
**Support for Taverna workflows in the VPH-Share cloud platform**.
In: _Computer Methods and Programs in Biomedicine_ **146** July 2017, pages 37–46.
[https://doi.org/10.1016/j.cmpb.2017.05.006](https://doi.org/10.1016/j.cmpb.2017.05.006)
[[researchgate]](https://www.researchgate.net/publication/317142153_Support_for_Taverna_Workflows_in_the_VPH-Share_Cloud_Platform)
[[preprint]](http://www.icsr.agh.edu.pl/~malawski/VPH_Share_Taverna_CMPB_preprint.pdf)

Pinar Alper, Khalid Belhajjame, Carole A. Goble (2017):
**Static analysis of Taverna workflows to predict provenance patterns**.
_Future Generation Computer Systems_ (Available online 16 January 2017).
[https://doi.org/10.1016/j.future.2017.01.004](https://doi.org/10.1016/j.future.2017.01.004)

Tomasz Miksa, Andreas Rauber (2017):
**Using ontologies for verification and validation of workflow-based experiments**.
In: _Web Semantics: Science, Services and Agents on the World Wide Web_ **43** March 2017, pages 25–45.
[https://doi.org/10.1016/j.websem.2017.01.002](https://doi.org/10.1016/j.websem.2017.01.002)
[[preprint server]](http://www.websemanticsjournal.org/index.php/ps/article/view/488)
[[pdf]](http://www.websemanticsjournal.org/index.php/ps/article/view/488/504)
[[researchgate]](https://www.researchgate.net/publication/312869477_Using_ontologies_for_verification_and_validation_of_workflow-based_experiments)

Sarah Cohen-Boulakia, Khalid Belhajjame, Olivier Collin, Jérôme Chopard, Christine Froidevaux, Alban Gaignard, Konrad Hinsen, Pierre Larmande, Yvan Le Bras, Frédéric Lemoine, Fabien Mareuil, Hervé Ménager, Christophe Pradal, Christophe Blancheto (2017):
**Scientific workflows for computational reproducibility in the life sciences: Status, challenges and opportunities**
_Future Generation Computer Systems_ (Available online 6 January 2017).
[https://doi.org/10.1016/j.future.2017.01.012](https://doi.org/10.1016/j.future.2017.01.012)
[[preprint]](https://hal.archives-ouvertes.fr/hal-01516082)
[[pdf]](https://hal.archives-ouvertes.fr/hal-01516082/document)

Vishal Dwivedi, James D. Herbsleb, David Garlan (2017):
**What Ails End-User Composition: A Cross-Domain Qualitative Study**.
_End-User Development. IS-EUD 2017_, _Lecture Notes in Computer Science_ **10303**.
[https://doi.org/10.1007/978-3-319-58735-6_5](https://doi.org/10.1007/978-3-319-58735-6_5)
[[pdf]](http://www.cs.cmu.edu/~vdwivedi/papers/eud2017.pdf)



### 2016

David Luis Wiegandt, Johannes Starlinger, Ulf Leser (2016):
**Graph n-grams for Scientific Workflow Similarity Search**
At: [LWDA 2016](https://hpi.de/mueller/lwda-2016.html) Lernen, Wissen, Daten, Analysen 2016, Potsdam, Germany, September 12-14, 2016. 
In: _CEUR Workshop Proceedings_ **[1670](http://ceur-ws.org/Vol-1670/)**:50 pp 213-224.
[[pdf]](http://ceur-ws.org/Vol-1670/paper-50.pdf)

Enrico Daga, Mathieu d’Aquin, Aldo Gangemi, Enrico Motta (2016):
**An incremental learning method to support theannotation of workflows with data-to-data relations**
At: 20th International Conference on Knowledge Engineering and Knowledge Management ([EKAW 2016](http://ekaw2016.cs.unibo.it/))
Bologna, Italy.
In: _Lecture Notes in Computer Science_ **10024** pp 129-144.
[https://doi.org/10.1007/978-3-319-49004-5_9](https://doi.org/10.1007/978-3-319-49004-5_9)
[[preprint server]](http://oro.open.ac.uk/47829/)
[[pdf]](http://oro.open.ac.uk/47829/1/article-camera-ready.pdf)
[[slides]](https://www.slideshare.net/enricodaga/an-incremental-learning-method-to-support-the-annotation-of-workflows-with-datatodata-relations)


Alex R. Hardisty, Finn Bacall, Niall Beard, Maria-Paula Balcázar-Vargas, Bachir Balech, Zoltán Barcza, Sarah J. Bourlat, Renato De Giovanni, Yde de Jong, Francesca De Leo, Laura Dobor, Giacinto Donvito, Donal Fellows, Antonio Fernandez Guerra, Nuno Ferreira, Yuliya Fetyukova, Bruno Fosso, Jonathan Giddy, Carole Goble, Anton Güntsch, Robert Haines, Vera Hernández Ernst, Hannes Hettling, Dóra Hidy, Ferenc Horváth, Dóra Ittzés, Péter Ittzés, Andrew Jones, Renzo Kottmann, Robert Kulawik, Sonja Leidenberger, Päivi Lyytikäinen-Saarenmaa, Cherian Mathew, Norman Morrison, Aleksandra Nenadic, Abraham Nieva de la Hidalga, Matthias Obst, Gerard Oostermeijer, Elisabeth Paymal, Graziano Pesole, Salvatore Pinto, Axel Poigné, Francisco Quevedo Fernandez, Monica Santamaria, Hannu Saarenmaa, Gergely Sipos, Karl-Heinz Sylla, Marko Tähtinen, Saverio Vicario, Rutger Aldo Vos, Alan R. Williams, Pelin Yilmaz (2016):
**BioVeL: a virtual laboratory for data analysis and modelling in biodiversity science and ecology**.
_BMC Ecology_ **16**(49)
[https://doi.org/10.1186/s12898-016-0103-y](https://doi.org/10.1186/s12898-016-0103-y)
[PMID:27765035](http://www.ncbi.nlm.nih.gov/pubmed/27765035)

Arzu Tugce Guler, Cathelijn J.F. Waaijer, Yassene Mohammed, Magnus Palmblad (2016 August):
**Automating bibliometric analyses using Taverna scientific workflows: A tutorial on integrating Web Services**.
In: *Journal of Informetrics* **10**(3) 830&ndash;841.
[https://doi.org/10.1016/j.joi.2016.05.002](https://doi.org/10.1016/j.joi.2016.05.002)

Stian Soiland-Reyes, Pinar Alper, Carole Goble (2016):
**Tracking workflow execution with TavernaProv**.
At: [PROV: Three Years Later](http://provenanceweek.org/2016/p3yl/programme.html),
[Provenance Week 2016](http://www2.mitre.org/public/provenance2016/).
[https://doi.org/10.5281/zenodo.51314](https://doi.org/10.5281/zenodo.51314])
[[html]](https://cdn.rawgit.com/stain/2016-provweek-tavernaprov/submitted/2016-provweek-tavernaprov.xhtml)
[[pdf]](http://provenanceweek.org/2016/p3yl/papers/paper_86.pdf)
[[slide]](http://provenanceweek.org/2016/p3yl/slides/slide_86.pdf)
[[source]](https://github.com/stain/2016-provweek-tavernaprov/)

Pinar Alper (2016)
**Towards harnessing computational workflow provenance for experiment reporting**
PhD thesis.
[[pdf]](https://www.escholar.manchester.ac.uk/api/datastream?publicationPid=uk-ac-man-scw:300560&datastreamId=FULL-TEXT.PDF)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:300560)


### 2015

Rudolf Mayer, Andreas Rauber (2015):
**A Quantitative Study on the Re-executability of Publicly Shared Scientific Workflows**
At _2015 IEEE 11th International Conference on e-Science (e-Science)_.
[https://doi.org/10.1109/eScience.2015.58](https://doi.org/10.1109/eScience.2015.58)
[[pdf]](http://www.ifs.tuwien.ac.at/~mayer/publications/pdf/may_escience15_workflows.pdf)

### 2014
Sarah Cohen-Boulakia, Jiuqiang Chen, Paolo Missier, Carole A. Goble, Alan R. Williams, Christine Froidevaux. (2014).
**Distilling structure in Taverna scientific workflows: a refactoring approach.**
In: *BMC Bioinformatics*, 15(suppl 1).
[https://doi.org/10.1186/1471-2105-15-S1-S12](https://doi.org/10.1186/1471-2105-15-S1-S12)


Pinar Alper (2014):
**Re-thinking Workflow Provenance against Data-Oriented Investigation Lifecycle**
Technical report.
[[pdf]](https://www.escholar.manchester.ac.uk/api/datastream?publicationPid=uk-ac-man-scw:224895&datastreamId=FULL-TEXT.PDF)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:224895)

Judicaël Ribault, Gregory Zacharewicz (2014):
**Time-based orchestration of workflow, interoperability with G-Devs/Hla**
In: _Journal of Computational Science_ **10** 126-136.
[https://doi.org/10.1016/j.jocs.2014.07.002](https://doi.org/10.1016/j.jocs.2014.07.002)
[[researchgate]](https://www.researchgate.net/publication/264498536_Time-Based_Orchestration_Of_Workflow_Interoperability_With_G-DevsHla)
[[pdf]](https://www.researchgate.net/profile/Gregory_Zacharewicz/publication/264498536_Time-Based_Orchestration_Of_Workflow_Interoperability_With_G-DevsHla/links/54d1eecf0cf28959aa7bcf52.pdf?inViewer=0&pdfJsDownload=0&origin=publication_detail)

### 2013
Anja Le Blanc, John Brooke, Donal Fellows, Marco Soldati, David P&eacute;rez-Su&aacute;rez, Alessandro Marassi, Andrej Santin. (2013).
**Workflows for heliophysics.**
In: *Journal of Grid Computing*, 11(3): 481&ndash;503. [https://doi.org/10.1007/s10723-013-9256-5](https://doi.org/10.1007/s10723-013-9256-5)
[[researchgate]](https://www.researchgate.net/publication/236683534_Workflows_for_Heliophysics)

Katherine Wolstencroft, Robert Haines, Donal Fellows, Alan Williams, David Withers, Stuart Owen, Stian Soiland-Reyes, Ian Dunlop, Aleksandra Nenadic, Paul Fisher, Jiten Bhagat, Khalid Belhajjame, Finn Bacall, Alex Hardisty, Abraham Nieva de la Hidalga, Maria P. Balcazar Vargas, Shoaib Sufi, Carole Goble. (2013).
**The Taverna workflow suite: designing and executing workflows of Web Services on the desktop, web or in the cloud.**
In: *Nucleic Acids Research*, 41(W1): W557&ndash;W561.
[https://doi.org/10.1093/nar/gkt328](https://doi.org/10.1093/nar/gkt328)

Hyde Zhang, Stian Soiland-Reyes, Carole Goble. (2013).
**Taverna Mobile: Taverna workflows on Android.**
In: *EMBnet.journal*, 19(B).
[https://doi.org/10.14806/ej.19.B.727](https://doi.org/10.14806/ej.19.B.727) [[pdf]](http://journal.embnet.org/index.php/embnetjournal/article/view/727/1047)

Sonja Holl, Daniel Garijo, Khalid Belhajjame, Olav Zimmermann, Renato De Giovanni, Matthias Obst, Carole Goble (2013):
**On Specifying and Sharing Scientific Workflow Optimization Results Using Research Objects**.
In: _Proceedings of the 8th Workshop on Workflows in Support of Large-Scale Science (WORKS '13)_.
[https://doi.org/10.1145/2534248.2534251](https://doi.org/10.1145/2534248.2534251)
[[pdf]](http://dgarijo.com/papers/works13.pdf)


## 2012

Konstantinos Karasavvas, Katy Wolstencroft, Eleni Mina, Don Cruickshank, Alan Williams, David De Roure, Carole Goble, Marcos Roos. (2012).
**"Opening new gateways to workflows for life scientists,"**
in *Studies in Health Technology and Informatics (Series): Volume 175: HealthGrid Applications and Technologies Meet Science Gateways for Life Sciences (EBook).* IOS Press, p. 131&ndash;141.
[https://doi.org/10.3233/978-1-61499-054-3-131](https://doi.org/10.3233/978-1-61499-054-3-131)

Jun Zhao, Jose Manuel Gomez-Perez, Khalid Belhajjame, Graham Klyne, Esteban Garcia-Cuestay, Aleix Garridoy, Kristina Hettne, Marco Roos, David De Roure, Carole Goble. (2012).
**"Why workflows break &mdash; Understanding and combating decay in Taverna workflows,"**
in *E-Science (e-Science), 2012 IEEE 8th International Conference on*, 8-12 Oct 2012: 1&ndash;9.
[https://doi.org/10.1109/eScience.2012.6404482](http:dx.doi.org/10.1109/eScience.2012.6404482)
[[preprint]](http://users.ox.ac.uk/~oerc0033/preprints/why-decay.pdf)

## 2011

K. Belhajjame, C. Goble, S. Soiland-Reyes, D. De Roure. (2011).
**"Fostering Scientific Workflow Preservation through Discovery of Substitute Services,"**
in *E-Science (e-Science), 2011 IEEE 7th International Conference on*: 97&ndash;104.
[https://doi.org/10.1109/eScience.2011.22](https://doi.org/10.1109/eScience.2011.22)

Paolo Missier, Carole Goble. (2011).
**Workflows to open provenance graphs, round-trip.**
In: *Future Generation Computer Systems*, 27(6): 812&ndash;819. [https://doi.org/10.1016/j.future.2010.10.012](https://doi.org/10.1016/j.future.2010.10.012)

## 2010

Paolo Missier, Satya Sahoo, Jun Zhao, Carole Goble, Amit Sheth. (2010)
**"Janus: from Workflows to Semantic Provenance and Linked Open Data,"**
in *Provenance and Annotation of Data and Processes, Third International Provenance and Annotation Workshop, (IPAW'10)*, 15&ndash;16 Jun 2010. Springer, Berlin: 129&ndash;141.  [https://doi.org/10.1007/978-3-642-17819-1_16](https://doi.org/10.1007/978-3-642-17819-1_16)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:108342)

Paolo Missier, Stian Soiland-Reyes, Stuart Owen, Wei Tan, Alexandra Nenadic, Ian Dunlop, Alan Williams, Tom Oinn, Carole Goble. (2010), **"Taverna, reloaded,"**
in *Scientific and Statistical Database Management, 22nd International Conference (SSDBM 2010)*, 30 Jun&ndash;02 Jul 2010, Springer, Berlin: 471&ndash;481. [https://doi.org/10.1007/978-3-642-13818-8_33](https://doi.org/10.1007/978-3-642-13818-8_33)

S. Moeller, H. Krabbenhoeft, A. Tille, D. Paleino, A. Williams, K. Wolstencroft, C. Goble, C. Plessy. (2010).
 **"Community-driven computational biology with Debian and Taverna,"**
in *BOSC 2010*.

Wei Tan, Ravi Madduri, Alexandra Nenadic, Stian Soiland-Reyes, Dinanth Sulakhe, Ian Foster, Carole A. Goble. (2010).
**CaGrid Workflow Toolkit: A Taverna based workflow tool for cancer grid.**
In: *BMC Bioinformatics*, 11: 542.
[https://doi.org/10.1186/1471-2105-11-542](https://doi.org/10.1186/1471-2105-11-542)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:108292)

Wei Tan, Paolo Missier, Ian Foster, Ravi Madduri, David De Roure, Carole Goble. (2010).
**A comparison of using Taverna and BPEL in building scientific workflows: the case of caGrid.**
In: *Concurrency and Computation: Practice and Experience*. 22(9): 1098&ndash;1117.
[https://doi.org/10.1002/cpe.1547](https://doi.org/10.1002/cpe.1547)

## 2009

Andrew Gibson, Matthew Gamble, Katy Wolstencroft, Tom Oinn, Carole Goble, Kahlid Belhajjame, Paolo Missier. (2009).
**The data playground: An intuitive workflow specification environment.**
In: *Future Generation Computer Systems*. 25(4): 453&ndash;459.
[https://doi.org/10.1016/j.future.2008.09.009](https://doi.org/10.1016/j.future.2008.09.009)

Jacek Sroka, Jan Hidders, Paolo Missier, Carole Goble. (2009).
**A formal semantics for the Taverna 2 workflow model.**
In: *Journal of Computer and System Sciences*. 76(6): 490&ndash;508.
[https://doi.org/10.1016/j.jcss.2009.11.009](https://doi.org/10.1016/j.jcss.2009.11.009)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:108316)

## 2008

K. Belhajjame, K. Wolstencroft, O. Corcho, T. Oinn, F. Tanoh, A. Williams, C. Goble. (2008).
**"Metadata Management in the Taverna Workflow System,"**
in *Cluster Computing and the Grid, 8th IEEE International Symposium on (CCGRID'08)*, 19-22 May 2008: 651&ndash;656.
[https://doi.org/10.1109/CCGRID.2008.17](https://doi.org/10.1109/CCGRID.2008.17)

Anders Lanz&eacute;n, Tom Oinn. (2008).
**The Taverna Interaction Service: enabling manual interaction in workflows.**
In: *Bioinformatics*. 24(8): 1118&ndash;1120.
[https://doi.org/10.1093/bioinformatics/btn082](https://doi.org/10.1093/bioinformatics/btn082)
[[pdf]](http://bioinformatics.oxfordjournals.org/content/24/8/1118.full.pdf)

Peter Li, Juan I. Castrillo, Giles Velarde, Ingo Wassink, Stian Soiland-Reyes, Stuart Owen, David Withers, Tom Oinn, Matthew Pocock, Carole A. Goble, Stephen G. Oliver, Douglas B. Kell. (2008).
**Performing statistical analyses on quantitative data in Taverna workflows: an example using R and maxdBrowse to identify differentially-expressed genes from microarray data.**
In: *BMC Bioinformatics*. 9: 334.
[https://doi.org/10.1186/1471-2105-9-334](https://doi.org/10.1186/1471-2105-9-334)

K. Maheshwari, J. Montagnat, P. Missier. (2008).
**"Extending Taverna to exploit EGEE Grid resources,"**
in *E-science*.

Paolo Missier, Khalid Belhajjame, Jun Zhao, Carole Goble. (2008).
**"Data lineage model for Taverna workflows with lightweight annotation requirements,"**
in *Provenance and Annotation of Data and Processes, Second International Provenance and Annotation Workshop (IPAW'08)*, Springer, Berlin, 17&ndash;18 Jun 2008: 17&ndash;30.
[https://doi.org/10.1007/978-3-540-89965-5_4](http:dx.doi.org/10.1007/978-3-540-89965-5_4)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:2f37)

Jun Zhao, Carole Goble, Robert Stevens, Danielle Turi. (2008).
**Mining Taverna's semantic web of provenance.**
In: *Concurrency and Computation: Practice and Experience*. 20(5): 463&ndash;472.
[https://doi.org/10.1002/cpe.1231](https://doi.org/10.1002/cpe.1231)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:1f9)

## 2007

David De Roure, Carole Goble, Robert Stevens. (2007).
**"Designing the myExperiment Virtual Research Environment for the Social Sharing of Workflows,"**
in *e-Science and Grid Computing, IEEE International Conference on*, 10-13 December 2007: 603&ndash;610.
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:2h465)
[[eprints]](http://eprints.soton.ac.uk/265838/1/MyExptPart1v7.pdf)

Paul Fisher, Cornelia Hedeler, Kathernine Wolstencroft, Helen Hulme, Harry Noyes, Stephen Kemp, Robert Stevens, Andrew Brass. (2007).
**A systematic strategy for large-scale analysis of genotype phenotype correlations: identification of candidate genes involved in African trypanosomiasis.**
In: *Nucleic Acids Research*. 35(16): 5625&ndash;5633.
[https://doi.org/10.1093/nar/gkm623](https://doi.org/10.1093/nar/gkm623)

Andrew Gibson, Matthew Gamble, Katy Wolstencroft, Tom Oinn, Carole Goble. (2007).
**"The Data Playground: An Intuitive Workflow Specification Environment,"**
in *e-Science and Grid Computing, IEEE International Conference on*, 10&ndash;13 December 2007: 59&ndash;68.
[https://doi.org/10.1109/E-SCIENCE.2007.72](https://doi.org/10.1109/E-SCIENCE.2007.72)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:2f159)

Carole Goble, Katy Wolstencroft, Antoon Goderis, Dunan Hull, Jun Zhao, Pinar Alper, Phillip Lord, Chris Wroe, Khalid Belhajjame, Danielle Turi, Robert Stevens, Tom Oinn, David De Roure.  (2007).
**"Knowledge discovery for biology with Taverna,"**
in *Semantic Web: Revolutionizing Knowledge Discovery in the Life Sciences**, Springer-Verlag, New York: 355&ndash;395.
[https://doi.org/10.1007/978-0-387-48438-9_17](https://doi.org/10.1007/978-0-387-48438-9_17)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:237027)

Peter Li, Tom Oinn, Stian Soiland, Douglas B. Kell. (2007).
**Automated manipulation of systems biology models using libSBML within Taverna workflows.**
In: *Bioinformatics*, 24(2): 287&ndash;289.
[https://doi.org/10.1093/bioinformatics/btm578](https://doi.org/10.1093/bioinformatics/btm578)
[[pdf]](http://bioinformatics.oxfordjournals.org/content/24/2/287.full.pdf)

Daniele Turi, Paolo Missier, Carole Goble, David De Roure, Tom Oinn. (2007). **"Taverna workflows: syntax and semantics,"**
in *e-Science and Grid Computing, IEEE International Conference on*, 10-13 Dec 2007: 441&ndash;448.
[https://doi.org/10.1109/E-SCIENCE.2007.71](https://doi.org/10.1109/E-SCIENCE.2007.71)

Nicholas Walton, Dugan Witherick, Thomas Oinn, Kevin Benson. (2007).
**"Taverna and Workflows in the Virtual Observatory,"**
in *Astronomical Data Analysis Software & Systems {XVII}*.
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:238963)

K. Wolstencroft, P. Alper, D. Hull, C. Wroe, P. Lord, R. Stevens, C. Goble. (2007).
**The myGrid ontology: bioinformatics service discovery**.
In: *International Journal of Bioinformatics Research and Applications (IJBRA)*, 3(3): 303&ndash;325.
[https://doi.org/10.1504/IJBRA.2007.015005](https://doi.org/10.1504/IJBRA.2007.015005)

## 2006

Duncan Hull, Katy Wolstencroft, Robert Stevens, Carole Goble, Matthew R. Pocock, Peter Li, Tom Oinn. (2006).
**Taverna: a tool for building and running workflows of services.**
In: *Nucleic Acids Research*, 34(Web Server issue): 729&ndash;732.
[https://doi.org/10.1093/nar/gkl320](https://doi.org/10.1093/nar/gkl320)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:1h249)

Peter Li, Andrew Brass, John Pinney, Thomas Oinn, Douglas Kell, Carole Goble, C. (2006).
**"Taverna workflows for systems biology,"**
in *International Conference on Systems Biology*.
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:237056)

Tom Oinn, Mark Greenwood, Matthew Addis, M. Nedim Alpdemir, Justin Ferris, Kevin Glover, Carole Goble, Antoon Goderis, Duncan Hull, Darren Marvin, Peter Li, Phillip Lord, Matthew R. Pocock, Martin Senger, Robert Stevens, Anil Wipat, Chris Wroe. (2006).
**Taverna: lessons in creating a workflow environment for the life sciences**.
In: *Concurrency and Computation: Practice and Experience*, 18(10): 1067&ndash;1100.
[https://doi.org/10.1002/cpe.993](https://doi.org/10.1002/cpe.993)

Thomas Oinn, Peter Li, Douglas Kell, Carole Goble, Antoon Goderis, Mark Greenwood, Duncan Hull, Robert Stevens, Danielle Turi, Jun Zhao. (2006). **"Taverna/myGrid: Aligning a Workflow System with the Life Sciences Community"**
 in *Workflows for e-Science, Scientific Workflows for Grids*. Springer-Verlag, London.
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:237055)

## 2005
M. Nedim Alpdemir, Arijit Mukherjee, Norman W. Paton, Alvaro A. A. Fernandes, Paul Watson, Kevin Glover, Chris Greenhalgh, Tom Oinn, Hannah Tipney. (2005).
**"Contextualised Workflow Execution in MyGrid",**
in *Advances in Grid Computing - EGC 2005: European Grid Conference*, 14&ndash;16 Feb 2005: 444&ndash;453.
[https://doi.org/10.1007/11508380_46](https://doi.org/10.1007/11508380_46)
[[researchgate]](https://www.researchgate.net/publication/221335727_Contextualised_Workflow_Execution_in_MyGrid)

S. Egglestone, N. Alpdemir, C. Greenhalgh, A. Mukherjee, I. Roberts. (2005).
**"A portal interface to myGrid workflow technology,"**
in *All Hands Meeting*.

Antoon Goderis, Ulrike Sattler, Phillip Lord, Carole Goble. (2005).
**"Seven Bottlenecks to Workflow Reuse and Repurposing,"**
in *The Semantic Web&mdash;ISWC 2005: 4th International Semantic Web Conference (ISWC 2005)*, 6&ndash;10 Nov 2005; Springer, Berlin: 323&ndash;337.
[https://doi.org/10.1007/11574620_25](https://doi.org/10.1007/11574620_25)
[[escholar]](https://www.escholar.manchester.ac.uk/uk-ac-man-scw:2h480)

A. Lanzen, S. Grindhaug, T. Oinn, P. Pal. (2005).
**"An Automatic Genome Annotation Pipeline,"**
in *Network Tools and Applications in Biology*.

K. Wolstencroft, T. Oinn, C. Goble, J. Ferris, C. Wroe, P. Lord, K. Glover, R. Stevens. (2005).
**"Panoply of Utilities in Taverna,"**
in *e-Science and Grid Computing, 2005. First International Conference on*: 156&ndash;162.
[https://doi.org/10.1109/E-SCIENCE.2005.65](https://doi.org/10.1109/E-SCIENCE.2005.65)

## 2004
Tom Oinn, Matthew Addis, Justin Ferris, Darren Marvin, Martin Senger, Mark Greenwood, Tim Carver, Kevin Glover, Matthew R. Pocock, Anil Wipat, Peter Li. (2004).
**Taverna: a tool for the composition and enactment of bioinformatics workflows.**
In: *Bioinformatics*, 20(17): 3045&ndash;3054.
[https://doi.org/10.1093/bioinformatics/bth361](https://doi.org/10.1093/bioinformatics/bth361)

N. Sharman, N. Alpdemir, J. Ferris, M. Greenwood, P. Li, C. Wroe. (2004).
**"The myGrid Information Model,"**
in *All Hands Meeting*.

R.D. Stevens, H. J. Tipney, C. J. Wroe, T. M. Oinn, M. Senger, P. W. Lord, C. A. Goble, A. Brass, M. Tassabehji. (2004).
**Exploring Williams-Beuren syndrome using myGrid.**
In: *Bioinformatics*, 20(suppl 1): i303&ndash;310.
[https://doi.org/10.1093/bioinformatics/bth944](https://doi.org/10.1093/bioinformatics/bth944)
[[pdf]](http://bioinformatics.oxfordjournals.org/content/20/suppl_1/i303.full.pdf)

## 2003
Robert D. Stevens, Alan J. Robinson, Carole A. Goble. (2003). **myGrid: personalised bioinformatics on the information grid.**
In: *Bioinformatics*, 19(suppl 1): i302&ndash;304.
[https://doi.org/10.1093/bioinformatics/btg1041](https://doi.org/10.1093/bioinformatics/btg1041)
[[pdf]](http://bioinformatics.oxfordjournals.org/content/19/suppl_1/i302.full.pdf+html)

Jun Zhao, Carol Goble, Mark Greenwood, Chris Wroe, Robert Stevens. (2003).
**"Annotating, linking and browsing provenance logs for e-Science,"**
in *International Semantic Web Conference* 2003.
_CEUR Workshop Proceedings_ **83**
[[pdf]](http://ceur-ws.org/Vol-83/prov_2.pdf)
