Robin's Nest

Writers The South Website Articles Links Software/Book Reviews Friends Home

Scriptable Intelligent Agents Weave Their Way into Main Stream, Redefine the Web Experience

by Robin Nobles, contributing editor

Published on October 31, 1997, in Web-Vantage.

We all know what an agent is -- someone who represents us and takes action on our behalf. But what is an "agent" in the computer sense of the word? At one level, agents are just programs. But these programs can act without the user having to give them explicit instructions. Agents have social ability and the ability to interact with other agents in an autonomous manner. Also, agents possess some fundamental intelligence or knowledge about their environment, where they live, and what operations are available to them. You can add whatever degree of intelligence you would like in terms of reasoning ability or decision making. These agents are scriptable with Java script, simply opening up to another level things you already do with Java script. Anything that is valid Java script syntax can be incorporated into these agents. In fact, the lowest level definition of an agent is simply any Java script object.

But what role will agents, scriptable agents in particular, play in the future of the Internet? That was the question Laurence Rozier, president of SIAWare, addressed during the CNET Web Builders Conference held earlier this month in New Orleans, La.

Rozier sees agent technology becoming part of our application environment just like graphics and databases. New technologies will develop and eventually weave their way into the main stream.

"Everything you use as a developer, whether the markup language is XML, dynamic HTML, or RDF, is going to be assimilated by agent objects over the next 18 months. It's not a question of whether or not you want to participate in this innovation. You will be participating," Rozier emphasized during his presentation.

Two Years to Impact

To put the advent of agents into perspective, let's back up and look at a time line for the Web. We've gone from a command line, to a graphic user interface, and now to a dynamic user interface. The web browser environment, particularly with dynamic HTML, is much different than a static graphic user interface. It has several streams of time frames; applets that are ticker tapes which are bringing in new information; timers set with a Java script application; or any number of different activities going on at the same time in that interface, and it's constantly changing.

What is beginning to emerge now, particularly with things like VRML 2.0, is what is called a participatory user interface, where there are not only human participants but also collaborative workspaces. For example, if you log onto the web and go to a chat room or work group collaborative environment, you're in an interface where numerous people are dynamically impacting the content of what you see on your screen. In addition to the people, there are also agents.

Rozier predicts that two years from now, participatory user interfaces will become commonplace, making what developers are doing today seem radically different.

These interfaces are already driving how software is developed. The information industry traditionally hasn't dealt with that aspect of user interface. But now developers are creating environments where they need to be dealing with how to create experiences for people. So, agents are used to convey the plots and the types of triggers that give people the experiences that they get in other media.

"The patterns of information which agents propagate over the web are going to transform not only the computer industry but also the society at large," Rozier explained.

From Objects to Agents

Let's look at the key elements of how we get from objects in the web environment to agents. The pathway through that process goes from object to component to agent. In visual Java, we get a sense of what components mean beyond the idea of simply having objects in the environment. The idea that we can package these objects and have them available on a pallet that can be dragged and reused in our applications is the next step to having agents that can act autonomously. In Java script, there is a function or method available to all objects called tostring, which is one way in which we are able to deal with the idea of objects.

The next step in going from objects to components is to save it as a string, then to save the string as a file, and then to be able to retrieve that file. So, we've gone from object to component in fairly simple steps. Once you've got a component, in order to get that component to function as an agent, you have to make it autonomous and mobile. So we need to be able to transport an agent from one location to another using the transport command. An object could have methods attached to it, we could invoke those methods, and it could then move itself to another page.

When the technology is available, Rozier says we'll be able to use a number of mechanisms, like email or TCPIP connections through Java or other Java-based technologies, that will allow us to transport an object from a local machine to another machine. If we send it by email, there has to be some email filtering and an intercept program on the receiving end that would open a web page with the object that is a string, and it would then materialize in the new environment.

The World Wide Web Consortium is working on something called the Document Object Model that allows every element in HTML and everything that exists on a page to become an object that can be manipulated by some scripting language.

But I Want It Now

But for developers chomping at the bit and unwilling to wait for W3C to complete to DOM specification and the next generation of browser to support it, there is the current Java script method that will, Rozier contends, basically do a large amount of what we'll be able to do in the DOM plus some things that the DOM hasn't put forth in their specifications yet.

According to Rozier, an agent is similar in many ways to any regular Java script. So developers are not required to do something different to Java script or the things they are already manipulating. The bottom line is, you can take any Java script object and transport that object to another location. An agent will know what kinds of configurations you have on your system. So when you open up your web browser, that agent goes and configures it according to the environment that you have. When you go to a particular website, if that website has agents embedded in it, there may be a dialogue between the website's agents and your agent to determine which images to send you, which plugins may be necessary, or what other things you want to see.

If you have given your agent instructions to request just headlines of every website, then that's the information you'll get. In the area of agencies in the user interface, you may have an agent that notices that every time you go to CNN, you also go to the New York Times to find similar stories. So the agent asks if you want it to automatically look for corresponding stories between those two sources of media, and you could give it a list of instructions about your preferences in that case.

You can have an agent that sits and watches activities on your file directory, for example, and every time a new attachment to a mail file comes in, the agent might have a list of instructions of what to do.

The real key, Rozier explained, is the idea of agents being scriptable and having intelligence. Once you are able to add a script to an agent, give it some variations, then give it the intelligence of knowing how to move about the web environment, you have a much more powerful entity. If that entity could be emailed or email itself to an associate, the agent could then be transported to another client machine, saved, and begin to execute.

"No doubt about it, we'll see some significant changes in our perception of what the web is and how we relate to it," Rozier concluded.

Reference URLs

Speaker Bio of Laurence Rozier

CNET Web Builders Conference

The Day When It Changed: SIAs Are Born (essay on Scriptable Intelligent Agents)

The Pattern (examples of SIA)

Intelligent Software Agents on the Internet

W3C's Document Object Model (DOM)

Robin Nobles is a freelance writer who covers a variety of subjects including web design and development. Reader comments are welcome.