4.17 Technologies and explicit knowledge continued
4.17.1 Software agents
A software agent is a program that displays a certain minimum level of autonomy – it acts as a surrogate for a human user. An agent does something for the user automatically, when given instructions. The more sophisticated the agent is, the fewer instructions it needs, and the more capable it is of making decisions on its own – the more ‘agent-like’ it is. An agent can be run on a client (the user's machine) or on a server (for example, a web server). It can also be anchored (stationary on a machine) or mobile (moving itself from one machine to another), depending on the underlying technology.
Software agents can be defined as: ‘a software entity which functions continuously and autonomously in a particular environment, often inhabited by other agents and processes’ (Shoham, 1997, p. 7). Agents are sometimes, perhaps contentiously, called ‘intelligent agents’. This reflects capabilities such as:
learning algorithms, enabling agents to adapt themselves to user routines and preferences
planning algorithms, enabling agents to construct a sequence of steps to accomplish a goal
negotiating protocols, which make it possible for agents to reach agreements on sharing resources, for instance on buying and selling.
The following quotation explores the characteristics we might expect from an intelligent agent:
The requirement for continuity and autonomy derives from our desire that an agent be able to carry out activities in a flexible and intelligent manner that is responsive to changes in the environment without requiring constant human guidance or intervention. Ideally, an agent that functions continuously in an environment over a long period of time would be able to learn from its experience. In addition, we expect an agent that inhabits an environment with other agents and processes to be able to communicate and cooperate with them, and perhaps move from place to place in doing so.
Agent research is a rapidly growing field, spawning many new software companies, and agents are finding extensive application in the Web as aids to finding material of interest in the ocean of information. In a knowledge management context, agents are proving themselves in different ways, some of which are summarised below.
Seeking out information which the agent thinks will be of interest: for example, InfoFinder learns a user's interests by analysing sets of messages and other online documents that the user classifies (Krulwich and Burkey, 1997). Another example is the Remembrance Agent (Rhodes and Starner, 1996), which displays a list of documents that might be relevant to the user's current context. Recreational agent systems are available to help internet users find friends and music which the agent thinks they will like, but the underlying technologies are applicable for knowledge management problems such as locating experts (for example, MIT Media Lab, agents.).
Acting as a ‘virtual participant’ in a discussion: for example, the Virtual Participant agent (Masterton, 1997) which ‘listens in’ on FirstClass electronic conferences, builds summaries of them and tries to retrieve relevant past discussions in response to questions.
Managing the low-level communication and formatting of data from multiple databases when a user issues a search: for example, a network of online information resources which may vary widely in format and organisation. The end-user only cares about finding relevant material. A set of cooperating agents can be used to handle the complexity of the underlying infrastructure, requiring only one user interface, as if querying a single, static database whose terms and relations reflect the user's perspective of the knowledge domain.
Very basic agents are already being embedded in products – for example, the Wizards in Microsoft's Office suite – to provide contextualised help and hints. Possible future developments in the field include easier ways for the user to program and fine-tune their instructions, agents with deeper knowledge of specific areas and agents that can cooperate in more sophisticated ways.
Ontology-based software agents
Ontology-based software agents use ontologies to provide a lingua franca for agents to communicate within a given field. The analogy here recalls our earlier discussions about the importance of shared background knowledge in interpretation – without some common level of familiarity with a field, it is very hard to discuss it. Similarly, if computers need to query or share their knowledge, they need some common terminology. This is precisely the purpose of an ontology, providing a basis for defining concepts and their relationships. Returning to our email example, another computer in the organisation that wishes to find staff trained in Course X will be able to find Sue if its ontology shares these concepts.
Software agents are being acclaimed in some quarters as providing the basis for electronic commerce over the internet (for example, Ontology.Org, www.ontology.org). If agents shared sufficient ontological knowledge, it is possible to imagine them being commissioned to locate and negotiate with other agents.
We now consider techniques which seek to identify patterns in databases without requiring the prior structuring of categories that ontologies assume.