> An inverse parser treats each command as a sequence of words obeying a grammar -- in other words, a sentence. The sentence is composed by the user by adding words in sequence until the sentence is complete. This has an important benefit: it uses a metaphor (the sentence) that the player already grasps, thereby collapsing the menu navigation problem into a construct that the player is comfortable with.
This essentially describes how the UI of Doug Engelbart's NLS system worked. Each command was describe in a DSL called the command meta language. These grammars where then compiled into a tree over which the command interpreter followed as the user entered in commands. At each step the UI would display feedback to the user about what input they had already entered.
I implemented such an interface in my first prototype of the system that I built in anyone wants to play around with such an interface.[1] I am currently working on a cleaner and more accessible version, but it is still in the design phase and not
usable yet.
Pretty much what I was thinking. The article is dated 1997 and I am pretty sure I didn't see an autocomplete for nearly to a decade after that (tab completion, yes).
I love autocompletes from both a user and developer viewpoint (they stop my users entering crap, and it's significantly easier for them as well).
In case anyone's wondering, "the Siboot project" refers to the game Trust & Betrayal: The Legacy of Siboot, which had the player negotiating with AI agents to gather information needed to win "mind combat" duels:
Several abandonware websites host the manual but I am not sure if legally, so I won't link to them here. While Chris Crawford used to distribute the "classic" Mac OS version of the game as freeware he has since removed the freeware downloads from his website.
This essentially describes how the UI of Doug Engelbart's NLS system worked. Each command was describe in a DSL called the command meta language. These grammars where then compiled into a tree over which the command interpreter followed as the user entered in commands. At each step the UI would display feedback to the user about what input they had already entered.
I implemented such an interface in my first prototype of the system that I built in anyone wants to play around with such an interface.[1] I am currently working on a cleaner and more accessible version, but it is still in the design phase and not usable yet.
[1] https://github.com/smarks159/hyperdocument-system-wiki