Introduction to Scripting and Workflows
A workflow is simply a sequence of VO-related tasks, possibly including loops, which can be saved in some format and then re-run. An example might be querying a specific "SIAP" image service to find an image at a particular RA and Dec; sending the image found to an invokeable copy of SExtractor, putting in suitable parameters, and deriving an object catalogue; saving the resulting table to your VOSpace; and then also loading the catalog into Topcat. Before re-running the workflow, one can then change the parameters used, or otherwise alter some of the tasks; for exampling running against a different SIAP service, or using a different RA and Dec. There are two ways of building a workflow.
Graphical workflow editors
The first way is with an application that uses a graphical interface that puts together standard building blocks visually. The workflow is saved as a workflow document in a standard XML format; the application can also load such a workflow document and alter the visual flow diagram. This approach has become common in the world of Bio-informatics. A well known tool is Taverna, constructed by the MyGrid project. AstroGrid has been developing a version of Taverna with VO plugins; this will be made available in the next AstroGrid release.
Workflow with scripting
The second way to automate sequences of VO tasks is by writing a script that includes calls that correspond to VO tasks. An example (using AstroGrid Python) is
img = m.readfile('#sdss/image.fits')
which reads a file called "image.fits" from a folder in the user's VOSpace called "sdss" and puts it into an object called "img"
In principle one could invent a complete new "VO command language". However, our approach is rather to define a series of function calls within the context of an existing language, so that the user can embed VO tasks within the context of more general programming and processing. Python is an ideal choice, because of its growing popularity, the existence of other scientific and mathematical modules, and because it is built to make accessing the internet simple. If you follow the examples in the Reference Help section, you will soon be able to write quite powerful programs.
Note that for AstroGrid Python to work, you need to also start VO Desktop, as the VO calls are handled by the Astro Runtime background software.
- Further details: Installing and using Astrogrid Python
Future improvements
AstroGrid Taverna. As mentioned above, we expect to release a graphical workflow system in the next release of AstroGrid.
Other languages. We are working on bindings for other languages, so that quite soon it should be possible to write VO scripts for IDL, Perl, and even Fortran...
Long running workflows. Both AstroGrid Python and the Taverna engine run on the user's machine. An aim for a future release is to submit workflows to run on a remote server provided by AstroGrid. The advantage of this is that very demanding tasks can continue running while the user is disconnected, and report back later.
