Current moves to create a programming language that can be written by novices are coming closer to fruition, at least for fairly simple applications, but does this mean that our everyday language will have to become more uniform in order to meet rigorous computer standards of description and logic?
The increasing number of connected, i.e. programmed, objects out there means that man-machine communication may need to step up a gear. Researchers at the Karlsruhe Institute of Technology (KIT) are working to demonstrate the urgency of making it easier for ordinary people to work with computers. And this implies that for instance time-pressed company employees would be capable of giving orders to a machine without having to go through a learning phase. The 1980s saw the advent of personal computers that enabled you to use computer programmes without having to do the coding yourself. Now the KIT researchers and others argue that programming should be at the same level as execution, in other words that the general public should be able to do it.
Basically, the KIT team’s idea is to add an interface to each software programme. This will be a console which will be able to programme using natural language. In the longer term, ordinary users should be able to communicate – give orders, write scripts and gather data – using a simple SMS from a mobile device, similar to those used in everyday conversation between people. At the moment, some home automation applications are being trialled by user test groups. Although creating the algorithms will remain the preserve of specialised programmers, the KIT academics argue that it should be a priority to enable people to write scripts to automate tasks. This is already the approach taken by web applications based on IFTTT (‘If This, Then That’) programming, which allow users to programme a simple loop. The IFTTT web tool allows users to action commands in the same way as a computer script does: for every tweet mentioning a key word, the Twitter account can track it and send a personal message. IFTTT is now an integral part of dozens of applications, ranging from email to geolocation.
However, in order to extend this intuitive method of programming scripts to all software programmes, the main challenge has to do with managing the order in which commands are executed. Programming in natural language requires the ‘de-synchronisation’ of the way events flow one after another in a normal-language sentence. For example, the sentence “Before the car starts, the garage door opens” poses a problem because a console will normally execute commands in the exact order in which they are written. So in this case the console would start up the car before the garage door has opened and either the car would crash into the door or the programme be unable to execute the sequence, depending on the level of built-in safety. Moreover standard consoles do not have the ‘intelligence’ to correctly order simultaneous actions.
Efforts to ensure that natural language can be understood by a machine have already been made by semantic web proponents. In fact programming and web research are now coming up against indirect causal links, such as ‘he’ or ‘she’ to refer to the already-mentioned subject of a sentence, an aspect that no programming language has yet been able to manipulate. However, the KIT researchers stress that any attempts to force people to communicate in an unnatural way in order to make the machine understand would be doomed to failure or result in the impoverishment of human language. The problem must be approached the other way round. The team is working on enabling people for instance to use synonyms or pronouns to refer to the same person/place/thing in a sentence, a natural speech trait that no existing computer language is able to do today.