22 October 2007


Navigate with commands

Since a couple of weeks the SUMit Shift Roster Software has a revolutionary new navigation design. The user types just a few characters to navigate to another screen.

mp jbr
Employees > John Brown

How does this work?

step example
The user types an abbreviation.
The computer finds the best match for the typed abbreviation. A match is perfect if all characters of the abbreviation are part of a choice and in the right sequence as well.
  1. The computer creates a sorted array in memory with all possible choices, shorted first. Short choices have preference when the user types only a few characters. Sometimes the user will have to type a few extra characters to get to the longer choices.
  2. The computer computes the Levenshtein distance between typed abbreviation and available choices.
  3. An abbreviation may contain less characters than the original. After all, having less characters is what defines an abbreviation. So length differences do not count.

    The number of deviating characters is the Levenshtein difference minus the length difference.

    • 0 means a perfect match. All characters from the abbreviation are meaningful, occur in the choice.
    • 1 means 1 typed character that does not match
    • 2 means 2 characters that do not match.
    • etc.
  4. The best match is the shortest choice with the lowest deviation.
choice Levenshtein length difference deviation
day 0 0 0
2007 0 0 0
week 0 0 0
month 0 0 0
employees 0 0 0
newsletter 0 0 0
shift times 0 0 0
minimum strength 0 0 0
work-rest cycles 0 0 0


Leonard Verhoef has inspired me with his thesis thesis, why designers can't understand their users and his Dutch books on design theory. Chapter 26 of his Dutch books, "Indelen van informatie en navigatie" describes exactly which navigation is easy for people..

Verhoef prefers typed commands. It took me almost a year of puzzling to transfer his advice into a design. Verhoef's books are a time bombs. They are haikus, condensed design mantras, who sometimes take months until they dawn upon me.

The Humane Interface With Jef Raskin's GOM method it is possible to compute exactly how much faster it is to type rather than to point.

See chapter "4-2-1 Interface Timings" in the book The Humane Interface

death of the desktop Asa Raskin that commands are very efficient in a practical demo of Enso, navigation with language.

A disadvantage of Enso is that the user must make up commands and memorise them.

Dasher There is no need to make up and remember commands. In a demonstration of Dasher, select words by navigating through a language tree the computer works harder than the user. Selecting the first couple of characters often suffices in getting at the right word.

The computer shows the list of valid words. The user just needs to navigate through them. I like that: Recognition in stead of recollection. It takes away the need to make up and remember commands.

Dasher is very sensitive to errors. Select one wrong character and the computer heads to a wrong trail.

Levenshtein Andrew Hedges has a Javascript version of the Levenshtein algorithm. This algorithm computes the difference between two strings.

Andrew's demo inspires me to the formula

deviation = Levenshtein - length difference
It takes a pencil and several pages of computations to test my formula. The test results are encouraging. This should work, start programming!
The SUMit navigation is now a combination of Of course you are welcome for a demo of SUMit's on line shift roster software, with efficient navigation. Let the SUMit helpdesk contact you to schedule an appointment.

Till next nut,