Through the combined use of the three primary user interfaces you can automate a great deal.
1) Command Line Interface (CLI) - The first soft entry based User Interface also known as a command Shell, DOS prompt, command prompt, etc. More versatile then the GUI but more difficult to use. Required the User remember more in the way of details of commands, program names and options.
2) Graphical User Interface (GUI) - This came along as the second User Interface and was found to be easier to use but far more limited in versatility than the first. Still there is an element, though less effort, of the user recalling what an graphical icon does, though help systems have added to ease of recall.
3) Users Automation Interface (UAI) - There are many forms, mostly incomplete or
otherwise user limited/restricted, of this interface today. Hardly is it ever
recognized or presented as a User Level interface. Besides the lack of
consistency of this interfaces application in programs, OS's and other such
functionality (libraries, devices, etc.), there is a general lack of
understanding the value importance it is to the user base, upon it's proper
application as the third "primary" UI.
This third User Interface has different facets and goes by many different names
such as InterProcess Communication, Application Program Interface, Pipes and
even Plumber (in Plan9 OS), MS windows has their name for their application of
this IPC (as Gui4Cli makes use of), and
I'm sure there are many more names and variations. In general, there has been
identified three type of information that can be sent over such a third user
interface; Message, Signal, and Memory Address.
Perhaps one of the best user level presentation and application of this third
user interface is found in the Amiga Arexx "PORT". It's not the scripting
language but the "PORT" that is like a side door for accessing and using
functionality, even controlling an application not from the command line or from
the GUI, but from outside the application in a manner that allows the user to
automate and integrate the functionality of various packages of functionality,
such as OS, Libraries, devices, applications, plugins, etc. And this most
certainly includes automating and integrating applications of the first two User
Interfaces, where sending commands to a shell or GUI package such as Gui4cli,
etc..
With these three primary User Interfaces a great deal can be automated and made
easier even by the hands of the user. But then what is needed is a way to handle
all the different functionality vocabulary, and that is where the Virtual
Interaction Configuration comes in!