Building a syntax standard for smart input text widgets
Since Twitter and other web applications came up with the idea of smart text input widgets, that allow users to control an entire web application just via text commands, i thought about building an unofficial list off commands, Web Application developers can implement to allow their users to navigate through their application via standardized text commands.
In example if you want to follow somebody on Twitter, you have to type follow username
or you can send a direct message via “d username directMessageText“. A list of all Twitter commands can be found here.
Google also uses this concept for a long time to customize your google search without referring to the advanced search, which always confuses me with its 50 input fields, check boxes, drop down menus etc. Friendfeed also support special syntax keywords. Google Mail, del.icio.us uses keywords to add Tags. But all of those web applications have one thing in common, they use a completely different syntax keywords.
Google recently also came up with a similar concept with Google Chrome´s URL Box, which they called an “Omnibox”. An Omnibox is at Browser Level and not at Application Level, like i.e. the Twitter commands, but it has a big difference to the text widgets, it is way smarter, because it also makes suggestions and lets a user use the search engine of a web application direct via the Omnibox. I think this is a very good approach, because it can free websites from the need of search boxes in the future and make them more accessibly for mobile clients.
So what are the requirements for a powerful solution?
- A symbioses, of the syntax concept Twitter uses and the Omnibox concept of Google Chrome.
- A command syntax close to human language needs.
- A command suggestion, because we cannot expect the users to know all commands of the standard, thus we must set up a recommendation engine that will suggest a set of command from the standard based commands library. This important especially for mobile applications with a limited screen size.
The requirements lead us to the question if such a keyword syntax standard, hence is an issue for the browser vendors, the IETF or W3C or the web application developers?
There is no doubt that the best solution would be an implementation of a set of commands, that users can type in the URL Box of a browser or directly in the smart input box of a web application, that are supported by all browser vendors and that are manifested in an official W3C, IETF document. But this will never happen and is a grossly naive view, because we know how long it takes the W3C to commit a new standard and more important, we know that the browser vendors would never accept another vendors recommendations by principle.
This kind of a top-down approach might not be an appropriate solution anyway, because it is the users that will use those URL Boxes and smart text widget commands. The bottom-up approach fits better in this context, just think about the recently emerged hash tags on Twitter, which are a great idea, that came from inventive users. What happened here was that the users had a need for a requirement which Twitter didn’t offer, so the users started to provide their own solution.
So wouldn’t it be nice, to signify tags anywhere through a command symbol like “#”. That would be easier, as to provide a further input field.
But how can we build such a syntax standard?
The starting point for such an initiative should be the web application developer community (including the browser vendors as well), because they can observe the user needs best. They should define and implement some standard interaction commands that are needed to interact with the application. In addition the developers should add some application specific functionality, i.e. like interacting with other users, browse the social graph, adding-, deleting connections between users etc. .
Once this is done the developers should observe which of the feature´s are commonly used by the users and which aren’t. Requirements for potential command patterns should be observed from their usage, this is called observed requirements. Martin Fowler wrote a nice article about this on his blog some weeks ago, where he coined the term observed requirements
. This also includes requirements, like Hash Tags, which can be derived from the users behavior.
The last step would be to collect all the observed requirements from each participator, trace the overlapping commands and implement them in the pseudo standard.
My final thoughts are, that the best solution would be at the browser level. The URL box can be used to search and interact with the web Application its tab shows, based on a standardized set of command, and also low-level application specific ones. What is important is that the commands where built bottom-up that, means extracted from the users needs.
There also has to be done a lot of genius in the field of the natural language processors
, NLP, for an appropriate understanding of user input, which allows to detect command patterns independently and make meaningful suggestions to the users.
But as this might not happen anytime soon, we the web developers should start working together on a solution that, if is accepted by the user, results in a syntax standard for smart input text widgets, that will enable users a new way of web application interaction. Therefore it should be a auxiliary feature for desktop users and a great pleasure especially for mobile user who can control and navigate through a web application properly on their small screens. Even some very creative scenarios are imaginable. It would be very easy to manage a web application by an instant messenger, e-mail or any other “text” terminal, simply by sending a single message with the appropriate commands.
These are just my initial thoughts I wanted to share and I haven´t done any research on that topic yet. I really like the vision behind the idea.
Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)Tags: google, pseudo standard, standard, twitter, W3C

When there is a large global need for such a standard, you will find that this vision or idea will become a reality. One of the basic solutions that a syntax standard (or any other standard) is to make it easy and duplicate-able for any situation. Business, schooling, gaming, programming, etc. Right now this kind of technology is still in its infancy and growing so there is no need for such a standard, yet. But rest assured, the time will come.