Elves posess a new kind of computer interface which is faster, easier to learn and, potentially, more powerful than any interface so far applied to scientific computing. The advantage of a conversational user interface (CUI) is that you already know how to use it. Scientists communicate with a CUI in almost exactly the same way they do with each other: by exchanging sentences in English.
Consider the following English conversation:
Terry: Pat, I want you to process my data. Pat: Uhh, okay, Terry, where are these data? Terry: /data/pat/frames Pat: Does this go from frame_001.osc to frame_100.osc ? Terry: yeah. Pat: [indexes the first image] Is this P212121? Terry: no, actually, it's P21212. Pat: okay [starts integrating spots in P21212] Terry: 1 Angstrom Pat: This thing diffracts to 1 Angstrom? Terry: No, the x-ray wavelength was 1 Angstrom. Pat: Oh! [starts indexing again, with the right wavelength this time]
Believe it or not, CUIs actually make it possible to have a conversation like the one above with a computer program (where "Pat" is the computer). Like ordinary English conversations, CUIs are iterative. The conversation begins when the computer program is launched with some words on its command line. Now, the CUI in the launched program "knows" all of the parameters involved in the data processing procedure it was designed for, and also has some idea of how these parameters might be stated in English. Armed with this initial "knowlege", the CUI can use the user-provided words to make deductions, extrapolations, and even guesses as to what the user is trying to say to the program.
Once the CUI has interpreted the user's initial statement, it formulates a written response. This response is a brief, legible, and unambiguous English paragraph, describing to the user what the program intends to do next. It is then up to the user to either approve this procedure, or provide an amendment to it. This amendment is then passed back to the same English language interpreter, using the results of the last interpretation as "defaults". In this way, CUIs have stateful "memory" of the entire conversation.
The iterative nature of the CUI is vitally important. Even between human beings, meetings are always more productive than memos. The only way to be sure that someone (or something) has understood what you just said is to have them repeat it back to you, in their own words.
Conversational user interfaces are suprisingly easy to implement. This is because the language used by scientists in a given field to discuss their experiments is relatively limited in form and scope. Also, because CUIs check their interpretation of input with the user, the "English" interpreter may be extremely liberal in its interpretation of user input.
For example, there are only so many ways to say what the mosaic spread of a crystal is. In fact, it is dificult to come up with a sentence specifying the mosaicity that does not contain a word beginning with "mosaic", so the Elves CUI uses this rule to detect a statement "mentioning" the mosaicity. If a number between 0.1 and 5 appears near this word (in fact, it is almost always after it), then this number is very likely to be the crystal mosaicity. In this way, two simple rules can be used to assign the value of a variable from almost any conceivable user input. If, somehow, this interpretation is in error, the it is easy for the user to catch the mistake by reading the program's output English statement of "the mosaicity is x". It turns out that human beings are much more adept at finding problems with something that is presented to them than they are at generating error- and omission-free input.
By re-stating the computer's English sentence, a user is gaurenteed to be correctly understood. In this way, the conversation serves to educate the user about what kind of input the program prefers.
A more difficult situation can arise in cases of extreme values:
Terry: The mosaicity is 20 Pat: What did you say? I thought the mosaicity was 1 degree! Terry: 20 Pat: Okay! 20 degrees it is!
In this situation the number 20 was ignored as a possible value of the mosaicity, which reduces Terry's statement to "mosaicity": a declarative without a value. Pat must then ask Terry for clarification, because Terry did, after all, mention someting about the mosaicity, but didn't provide a sensible value for it.
In this way, a loose interpretation of English, coupled with iterative user feedback, allows a wide variety of experimental parameters to be sucessfully and correctly communicated to a computer program without the need for extensive user training. It is hoped that more widespread adoption of conversational interfaces in scientific computing will allow scientists to focus more on the problems they are trying to solve, and not so much on the input specifications of the programs they are using to solve them.
Back to the Elves Page.