MIT Project Oxygen Automation

Vision
Machine-to-machine transactions automate mundane information functions, as well as control of our physical environment, to suit our wishes. Following our scripted instructions, software agents handle our appointments by fielding requests as the arrive by mail, by phone, or over the network, then consulting our schedules and deciding whether to accept the requests, decline them, or gather additional information and defer the decision to us. Other agents control environmental systems as we enter a room to match our accustomed comfort level. We squint less in front of e-mail, browser screens, and remote controls, because machines both listen to what we say and do more themselves. We do the interesting tasks and offload the rest on our machines, using intuitive ways to program devices and systems to do the things we want.

Approach
The automation subsystem provides technologies for encapsulating objects, both physical and virtual, so that their actions can be automated. It also provides scripting technologies that automate new processes in response to direct commands, or by observing, imitating, and fine-tuning established processes.

Basic automation objects
Basic automation objects are "black boxes" of low-level actions that can be managed by higher-level automation processes. The objects can be either physical or virtual. A basic physical object senses or actuates a physical entity—it may sense the temperature or whether an office door is open, and it may crank up the heat or send an image to a display. A basic virtual object collects, generates, or transforms information—it may extract designated items from incoming electronic forms, operate on them in a designated manner, and send the results to a particular device.

A common intelligent interface connects basic physical objects to the network. The interface consists of a chip containing a microprocessor, a network adapter, main memory, and non-volatile storage. It makes different sensors, actuators, and appliances more powerful, provides device status information, reduces the bandwidth they require, and downloads commands and new low-level software.

Any software object can be a basic virtual object. Electronic forms are particularly common basic virtual objects, because they serve as convenient "interfaces" for exchanging information among people and organizations.

Control over combined objects
The automation architecture provides mechanisms for composing modular components, such speech, vision, and appliances, and for controlling their behavior based on user scripts. The architecture allows distributed objects (or agents) to refer to one another by function and capability, without respect to their location. Objects communicate using a universal streaming data "bus" standard. They can move around, be re-connected dynamically, and seamlessly resume previously established connections with one another. The scripting language enables users to specify easily and rapidly the tasks they wish to automate.

The automation subsystem uses a top-level watch-reason-automate "loop" to monitor and filter information of interest to the automation process, to select appropriate automation regimes for given tasks, and to implement those regimes. The scripting language enables users to customize automation regimes in response to context changes and other factors too complicated to handle automatically, either in the original script or in the watch-reason-automate loop.

Oxygen Today  

GOALS guides the automatic construction of component-based systems by searching for one or more techniques, each of which constitutes a recipe for resolving a class of goals. Goals are resolved by a negotiation between a system object (called a context) and a set of applicable technique objects. Typically, the context creates and explores a goal tree, heuristically choosing the most satisfactory branch to implement. The goal tree persists as a record of the logic by which the implementation was chosen, so that it can be reevaluated as network connections break or new resources become available. (Chris Terman, Steve Ward, Computer Architecture Group)

Presentation manager (Larry Rudolph, Oxygen Research Group, LCS)