next up previous contents
Next: Gwendia language Up: Workflow description languages Previous: Workflow description languages   Contents


M language

A DAG is described with an XML representation which is close to DIET profile representation. In addition to profile description (problem path and arguments), this description represents also the data dependencies between ports (source/sink), the node identifier (unique) and the precedences between nodes. This last information can be removed since it can be retrieved from the dependencies between ports, however it can be useful to define a temporal dependency without port linking.

The general structure of this description is:

<dag>
  <node id="..." path="...">
    <arg name="..." type="........" value=".."/>
    <in name="..." type="........" source="......."/>
    <out name="...." type="........" sink="......"/>
    <out name="...." type="........" sink="......"/>
  </node>
  ....

The name argument represents the identifier of the port. To use it to define a source or a sink value, it must be prefixed with the node id. For example if the source of the input port in3 is the port out2 of the node n1, than the element must be described as follow:

    <in name="in3" type="DIET_INT" source="n1#out2"/>

The link between input and output ports must be described either by a source value in the in element, or by a sink value in the out element. Specifying both does not cause an error but duplicates the information.

The example shown in Figure 13.1 can be represented by this XML description:

<dag>
  <node id="n1" path="succ">
    <arg name="in1" type="DIET_INT" value="56"/>
    <out name="out1" type="DIET_INT"/>
    <out name="out2" type="DIET_INT"/>
  </node>
  <node id="n2" path="double">
    <in name="in2" type="DIET_INT" source="n1#out1"/>
    <out name="out3" type="DIET_INT"/>
  </node>
  <node id="n3" path="double">
    <in name="in3" type="DIET_INT" source="n1#out2"/>
    <out name="out4" type="DIET_INT"/>
  </node>
  <node id="n4" path="sum">
    <in name="in4" type="DIET_INT" source="n2#out3"/>
    <in name="in5" type="DIET_INT" source="n3#out4"/>
    <out name="out4" type="DIET_INT"/>
  </node>
</dag>


next up previous contents
Next: Gwendia language Up: Workflow description languages Previous: Workflow description languages   Contents
The DIET Team - Ven 18 nov 2011 18:13:39 PST