Examples

Running sequential tasks

This is the simplest workflow one can think of, it simply consists in running process A and using its output to feed process B. To make the examples more concrete, let’s imagine a random_word process that takes as input n the number of random words to return, and returns text, a string joining all these words separated by a space. Our second process count_characters will return n the number of a given character (a, b, c) in input text. A workflow to generate 10 random words and count the number of e would then look like this:

{
     "name" : "count_e",
     "tasks": [
         {
             "name": "create_sentence",
             "url": "http://myserver.org:8090/wps",
             "identifier": "random_word",
             "inputs": {
                 "n": 10,
                 }

         },
         {
             "name": "count_letter_e",
             "url": "http://myserver.org:8090/wps",
             "identifier": "count_characters"
             "linked_inputs": {
                 "text": {
                     "task": "create_sentence",
                     "output": "text",
                     }
                 },
             "inputs": {
                 "char": "e"
                 }
         },
      ]
}

When the count_e workflow is launched, the first task is executed using n=10. Then the second task is executed using char=e, and the text value taken from the text output of the create_sentence task, defined in linked_inputs by an Input_description object.