Wave

What is Wave

Wave is an application framework that ties together a set of algorithms, written in any programming language, to a scriptable, datacentric GUI application.

Data lineage management

The centerpiece of Wave is data lineage management. From every piece of data it is known what it was computed from, by which algorithm and with which parameters. This enables full accountability for the final result. It also enables automatic minimal recomputation, should any of the parameters or pieces of data change. Multiple, interconnected versions of data can be retained to allow comparative evaluation and parameter optimization.

GUI aspect

Wave's GUI offers an explorer-like view on engineering data. Relations between data are shown, and the underlying processes and their parameters can be accessed by clicking on the data. Data can be hierarchically stored, typed and grouped. It can be selectively shown according to any combination of these hierarchies.

Script aspect

As the user is working interactively with the data, an equivalent Python script is built up. Editing the script to add some loops, allows exploration of a large number of alternatives without manual intervention. As data lineage management is fully functional when running the script, inspection afterwards, via the GUI, will reveal the underlying parameters to each result.

Some experiences

Wave is a new implementation of principles that are some twenty years old now. Although Wave itself is still under construction, the experience gained by a previous introduction of datalineage management in an engineering firm, many years ago, is probably typical. Some early adopters immediately saw the advantages and used it from the first day. Others were hesitant, since to them it meant an unfamiliar way of working. When contact with that firm was renewed some five years later, the system was used pervasively. On the question, wether operation was perceived as complex, the answer was negative: It just seemed natural to the users. This threshold effect has been observed in comparable situations.

What is the status of Wave

Some ninety-eight percent of the required functionality is ready. And the code should be refactored to benefit from Eden's Module concept, that was added after the fact. What this means in practice is that Wave (as opposed to Eden) is not ready for prime time yet.

What are the system requirements to develop and run Wave applications

Wave-0.1-alpha-4 works best with Eden-0.1-beta-1, IronPython 1.0, Python 2.5, DotNet 2.0 and Windows XP.