There are many mixed-initiative execution methods: systems in which humans and computers work together, in two variants. Computer-led is something like a wizard in which a computer gives suggestions and waits for the user to enter something, like booking a flight:
Here, the computer is in charge, for example you cannot go from 1 to 4.
On the other hand of the spectrum there are human-led variants, like Scratch. The computer here only provides constraints within which the human can operate.
In the middle between these two are, for example, iPython of Jupiter notebooks, where the human and computer really work together.
The interesting part of this is that parts of a notebook are written for the computer and some are meant for human readers. We know how to build these a little bit, but there is much still to do, says Keeley. In order to learn more, Keeley explored programs that people write for each other, in particular: lab protocols. These protocols present a linear, idealized process despite the complex contingencies of the lab work they describe. While they are standardized and rigid, people often don’t follow them precisely or tamper with them.
Keeley studied 20 lab protocols: randomly chosen recent free protocols from CSHP’s website where ten were from the Bioinformatics category, five from the Neuroscience category, and five from the Laboratory Organisms category.
Each protocol was spilt into about 50 coding instances (by the authors) in various different dimensions. For example, into a kind:
- physical (78%)
- virtual (5%)
The coding instances were coded by precision too:
- direct instructions (93%): “Take 5ml of this”
- goal-directed (4%): “Calculate a percentage (but no method given)”
- task-directed (3%): “Examine the ruffled morphology”
While the processes were mostly linear, som exhibited some branching or loops. Some even had higher order functions, explaining 1 method to be performed over multiple sample.
How did the protocols refer to others?
- Before (38%) “Do this before starting this step”
- Parallel (25%) “Imaging can also be performed simultaneously with…”
- Splice (15%) “Combine PCR products of replicate samples and purify”
Again, the idea here was to mine the protocols for ideas about what the human side of a human-computer program should look like.
What Keeley found was a variety of ways to specify tasks, that take advantage of human capabilities:
- Ways of communicating both limits and liberties from the central activity sequence
- A simplified, linear structure, perhaps aimed at lowering the perceived risk of adoption, and cost of tailoring
- Simple statements of expected intermediate results in lieu of elaborate error-handling mechanisms
According to Keeley, these methods seem immediately applicable to the design of workflow tools that help end-user programmers learn a complex task while adapting it to a real application.