Introduction
Workflow Definition Language (WDL) is a domain-specific language tailored for mobile robotics. Its semantics are based on the pi-calculus, introducing interesting features such as concurrent execution and synchronization channels. Moreover, it supports well-known concepts from other languages like JSON compatible values, global and local variables, functions, operators, and control structures like if-else statements and while loops.
In addition to its core functionality, WDL provides a comprehensive standard library. This library offers functions to perform physical actions like pickup and drop actions, accessing the web through HTTP calls, using regex for searching, finding, and replacing strings, and many more.
Example
The following is a simple example of how a station-to-station workflow in WDL would look:
global source = "mySource";
global destination = "myDestination";
actions {
action::pickup(
target: {
stations: [
source
]
},
events: {
no_station_left: order::cancel
}
);
action::drop(
target: {
stations: [
destination
]
}
);
}