throbber
1 Applications of Intelligent Agents
`
`N. R. Jennings and M. Wooldridge
`Queen Mary & Westfield College
`University of London
`
`1.1
`
`Introduction
`
`Intelligent agents are a new paradigm for developing software applications. More
`than this, agent-based computing has been hailed as ‘the next significant break-
`through in software development’ (Sargent, 1992), and ‘the new revolution in
`software’ (Ovum, 1994). Currently, agents are the focus of intense interest on the
`part of many sub-fields of computer science and artificial intelligence. Agents are
`being used in an increasingly wide variety of applications, ranging from com-
`paratively small systems such as email filters to large, open, complex, mission
`critical systems such as air traffic control. At first sight, it may appear that such
`extremely different types of system can have little in common. And yet this is not
`the case: in both, the key abstraction used is that of an agent. Our aim in this article
`is to help the reader to understand why agent technology is seen as a funda-
`mentally important new tool for building such a wide array of systems. More
`precisely, our aims are five-fold:
`•
`•
`
`to introduce the reader to the concept of an agent and agent-based systems,
`to help the reader to recognize the domain characteristics that indicate the
`appropriateness of an agent-based solution,
`to introduce the main application areas in which agent technology has been
`successfully deployed to date,
`to identify the main obstacles that lie in the way of the agent system developer,
`and finally
`to provide a guide to the remainder of this book.
`
`•
`
`•
`
`•
`
`We begin, in this section, by introducing some basic concepts (such as, perhaps
`most importantly, the notion of an agent). In Section 1.2, we give some general
`guidelines on the types of domain for which agent technology is appropriate. In
`Section 1.3, we survey the key application domains for intelligent agents. In
`Section 1.4, we discuss some issues in agent system development, and finally, in
`Section 1.5, we outline the structure of this book.
`
`Before we can discuss the development of agent-based systems in detail, we
`have to describe what we mean by such terms as ‘agent’ and ‘agent-based system’.
`Unfortunately, we immediately run into difficulties, as some key concepts in agent-
`based computing lack universally accepted definitions. In particular, there is no real
`agreement even on the core question of exactly what an agent is (see Franklin and
`Graesser (1996) for a discussion). However, we believe that most researchers
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 1
`
`

`

`4 Jennings and Wooldridge
`
`would find themselves in broad agreement with the following definitions
`(Wooldridge and Jennings, 1995).
`
`First, an agent is a computer system situated in some environment, and that is
`capable of autonomous action in this environment in order to meet its design
`objectives. Autonomy is a difficult concept to pin down precisely, but we mean it
`simply in the sense that the system should be able to act without the direct
`intervention of humans (or other agents), and should have control over its own
`actions and internal state. It may be helpful to draw an analogy between the notion
`of autonomy with respect to agents and encapsulation with respect to object-
`oriented systems. An object encapsulates some state, and has some control over this
`state in that it can only be accessed or modified via the methods that the object
`provides. Agents encapsulate state in just the same way. However, we also think of
`agents as encapsulating behavior, in addition to state. An object does not
`encapsulate behavior: it has no control over the execution of methods – if an object
`x invokes a method m on an object y, then y has no control over whether m is
`executed or not – it just is. In this sense, object y is not autonomous, as it has no
`control over its own actions. In contrast, we think of an agent as having exactly this
`kind of control over what actions it performs. Because of this distinction, we do not
`think of agents as invoking methods (actions) on agents – rather, we tend to think of
`them requesting actions to be performed. The decision about whether to act upon
`the request lies with the recipient.
`
`Of course, autonomous computer systems are not a new development. There are
`many examples of such systems in existence. Examples include:
`• any process control system, which must monitor a real-world environment and
`perform actions to modify it as conditions change (typically in real time) – such
`systems range from the very simple (for example, thermostats) to the extremely
`complex (for example, nuclear reactor control systems),
`• software daemons, which monitor a software environment and perform actions
`to modify the environment as conditions change – a simple example is the
`UNIX xbiff program, which monitors a user’s incoming email and obtains
`their attention by displaying an icon when new, incoming email is detected.
`
`It may seem strange that we choose to call such systems agents. But these are
`not intelligent agents. An intelligent agent is a computer system that is capable of
`flexible autonomous action in order to meet its design objectives. By flexible, we
`mean that the system must be:
`• responsive: agents should perceive their environment (which may be the phy-
`sical world, a user, a collection of agents, the Internet, etc.) and respond in a
`timely fashion to changes that occur in it,
`• proactive: agents should not simply act in response to their environment, they
`should be able to exhibit opportunistic, goal-directed behavior and take the
`initiative where appropriate, and
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 2
`
`

`

`Applications of Intelligent Agents 5
`
`• social: agents should be able to interact, when they deem appropriate, with
`other artificial agents and humans in order to complete their own problem
`solving and to help others with their activities.
`
`Hereafter, when we use the term ‘agent’, it should be understood that we are
`using it as an abbreviation for ‘intelligent agent’. Other researchers emphasize
`different aspects of agency (including, for example, mobility or adaptability).
`Naturally, some agents may have additional characteristics, and for certain types of
`applications, some attributes will be more important than others. However, we
`believe that it is the presence of all four attributes in a single software entity that
`provides the power of the agent paradigm and which distinguishes agent systems
`from related software paradigms – such as object-oriented systems, distributed sys-
`ems, and expert systems (see Wooldridge (1997) for a more detailed discussion).
`
`By an agent-based system, we mean one in which the key abstraction used is
`that of an agent. In principle, an agent-based system might be conceptualized in
`terms of agents, but implemented without any software structures corresponding to
`agents at all. We can again draw a parallel with object-oriented software, where it is
`entirely possible to design a system in terms of objects, but to implement it without
`the use of an object-oriented software environment. But this would at best be
`unusual, and at worst, counterproductive. A similar situation exists with agent
`technology; we therefore expect an agent-based system to be both designed and
`implemented in terms of agents. A number of software tools exist that allow a user
`to implement software systems as agents, and as societies of cooperating agents.
`
`Note that an agent-based system may contain any non-zero number of agents.
`The multi-agent case – where a system is designed and implemented as several
`interacting agents, is both more general and significantly more complex than the
`single-agent case. However, there are a number of situations where the single-agent
`case is appropriate. A good example, as we shall see later in this chapter, is the
`class of systems known as expert assistants, wherein an agent acts as an expert
`assistant to a user attempting to use a computer to carry out some task.
`
`1.2 Agent Application Domain Characteristics
`
`Now that we have a better understanding of what the terms ‘agent’ and ‘agent-
`based system’ mean, the obvious question to ask is: what do agents have to offer?
`For any new technology to be considered as useful in the computer marketplace, it
`must offer one of two things:
`•
`
`the ability to solve problems that have hitherto been beyond the scope of
`automation – either because no existing technology could be used to solve the
`problem, or because it was considered too expensive (difficult, time-consuming,
`risky) to develop solutions using existing technology; or
`the ability to solve problems that can already be solved in a significantly better
`(cheaper, more natural, easier, more efficient, or faster) way.
`
`•
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 3
`
`

`

`6 Jennings and Wooldridge
`
`1.2.1 Solving New Types of Problem
`
`Certain types of software system are inherently more difficult to correctly design
`and implement than others. The simplest general class of software systems are
`functional. Such systems work by taking some input, computing a function of it,
`and giving this result as output. Compilers are obvious examples of functional
`systems. In contrast, reactive systems, which maintain an ongoing interaction with
`some environment, are inherently much more difficult to design and correctly
`implement. Process control systems, computer operating systems, and computer
`network management systems are all well-known examples of reactive systems. In
`all of these examples, a computer system is required that can operate independ-
`ently, typically over long periods of time. It has long been recognized that reactive
`systems are among the most complex types of system to design and implement
`(Pnueli, 1986), and a good deal of effort has been devoted to developing software
`tools, programming languages, and methodologies for managing this complexity –
`with some limited success. However, for certain types of reactive system, even
`specialized software engineering techniques and tools fail – new techniques are
`required. We can broadly subdivide these systems into three classes:
`• open systems,
`• complex systems, and
`• ubiquitous computing systems.
`
`1.2.1.1 Open Systems
`
`An open system is one in which the structure of the system itself is capable of
`dynamically changing. The characteristics of such a system are that its components
`are not known in advance, can change over time, and may be highly heterogeneous
`(in that they are implemented by different people, at different times, using different
`software tools and techniques). Computing applications are increasingly demanded
`by users to operate in such domains. Perhaps the best-known example of a highly
`open software environment is the Internet – a loosely coupled computer network of
`ever expanding size and complexity. The design and construction of software tools
`to exploit the enormous potential of the Internet and its related technology is one of
`the most important challenges facing computer scientists in the 1990s, and for this
`reason, it is worth using it as a case study. The Internet can be viewed as a large,
`distributed information resource, with nodes on the network designed and
`implemented by different organizations and individuals with widely varying
`agendas. Any computer system that must operate on the Internet must be capable of
`dealing with these different organizations and agendas, without constant guidance
`from users (but within well-defined bounds). Such functionality is almost certain to
`require techniques based on negotiation or cooperation, which lie very firmly in the
`domain of multi-agent systems (Bond and Gasser, 1988).
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 4
`
`

`

`Applications of Intelligent Agents 7
`
`1.2.1.2 Complex Systems
`
`The most powerful tools for handling complexity in software development are
`modularity and abstraction. Agents represent a powerful tool for making systems
`modular. If a problem domain is particularly complex, large, or unpredictable, then
`it may be that the only way it can reasonably be addressed is to develop a number
`of (nearly) modular components that are specialized (in terms of their repre-
`sentation and problem solving paradigm) at solving a particular aspect of it. In such
`cases, when interdependent problems arise, the agents in the systems must
`cooperate with one another to ensure that interdependencies are properly managed.
`In such domains, an agent-based approach means that the overall problem can be
`partitioned into a number of smaller and simpler components, which are easier to
`develop and maintain, and which are specialized at solving the constituent sub-
`problems. This decomposition allows each agent to employ the most appropriate
`paradigm for solving its particular problem, rather than being forced to adopt a
`common uniform approach that represents a compromise for the entire system, but
`which is not optimal for any of its subparts. The notion of an autonomous agent
`also provides a useful abstraction in just the same way that procedures, abstract
`data types, and, most recently, objects provide abstractions. They allow a software
`developer to conceptualize a complex software system as a society of cooperating
`autonomous problem solvers. For many applications, this high-level view is simply
`more appropriate than the alternatives.
`
`1.2.1.3 Ubiquity
`
`Despite the many innovations in human-computer interface design over the past
`two decades, and the wide availability of powerful window-based user interfaces,
`computer-naïve users still find most software difficult to use. One reason for this is
`that the user of a software product typically has to describe each and every step that
`needs to be performed to solve a problem, down to the smallest level of detail. If
`the power of current software applications is ever to be fully utilized by such users,
`then a fundamental rethink is needed about the nature of the interaction between
`computer and user. It must become an equal partnership – the machine should not
`just act as a dumb receptor of task descriptions, but should cooperate with the user
`to achieve their goal. As Negroponte wrote, ‘the future of computing will be 100%
`driven by delegating to, rather than manipulating computers’ (Negroponte, 1995).
`To deliver such functionality, software applications must be:
`• autonomous: given a vague and imprecise specification, it must determine how
`the problem is best solved and then solve it, without constant guidance from the
`user,
`• proactive: it should not wait to be told what to do next, rather it should make
`suggestions to the user,
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 5
`
`

`

`8 Jennings and Wooldridge
`
`• responsive: it should take account of changing user needs and changes in the
`task environment, and
`• adaptive: it should come to know user’s preferences and tailor interactions to
`reflect these.
`
`In other words, it needs to behave as an intelligent agent. These considerations
`give rise to the idea of an agent acting as an ‘expert assistant’ with respect to some
`application, knowledgeable about both the application itself and the user, and
`capable of acting with the user in order to achieve the user’s goals. We discuss
`some prototypical expert assistants in Section 1.3.
`
`1.2.2 Improving the Efficiency of Software Development
`
`Agent technology gives us the tools with which to build applications that we were
`previously unable to build. But it can also provide a better means of concept-
`ualizing and/or implementing a given application. Here, three important domain
`characteristics are often cited as a rationale for adopting agent technology (cf. Bond
`and Gasser, 1988):
`• data, control, expertise, or resources are inherently distributed,
`•
`the system is naturally regarded as a society of autonomous cooperating com-
`ponents, or
`the system contains legacy components, which must be made to interact with
`other, possibly new software components.
`
`•
`
`1.2.2.1 Distribution of Data, Control, Expertise, or Resources
`
`When the domain involves a number of distinct problem solving entities (or data
`sources) that are physically or logically distributed (in terms of their data, control,
`expertise, or resources), and which need to interact with one another in order to
`solve problems, then agents can often provide an effective solution. For example, in
`a distributed health care setting, general practitioners, hospital specialists, nurses,
`and home care organizations have to work together to provide the appropriate care
`to a sick patient (Huang et al., 1995). In this domain, there is:
`• distribution of data: the general practitioner has data about the patient, which is
`very different from that of the hospital nurse – even though it concerns the same
`person,
`• distribution of control: each individual is responsible for performing a different
`set of tasks,
`• distribution of expertise: the specialist’s knowledge is very different from that
`of either the general practitioner or the nurse, and
`• distribution of resources: a specialist is responsible for the beds required by
`their patients, a general practitioner for paying hospital bills, etc.
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 6
`
`

`

`Applications of Intelligent Agents 9
`
`In cases like this, agents provide a natural way of modeling the problem: real-
`world entities and their interactions can be directly mapped into autonomous
`problem solving agents with their own resources and expertise, and which are able
`to interact with others in order to get tasks done. Also, in the case of distributed
`data sources, (as in sensor networks (Lesser and Corkill, 1983) and seismic
`monitoring (Mason, 1995)), the use of agents means that significant amounts of
`processing can be carried out at the data source, with only high-level information
`exchanged. This alleviates the need to send large amounts of raw data to a distant
`central processor, thus making more efficient use of communications bandwidth.
`
`1.2.2.2 Natural Metaphor
`
`The notion of an autonomous agent is often the most appropriate metaphor for
`presenting a given software functionality. For example:
`• a program that filters email can be presented to its user via the metaphor of a
`personal digital assistant (Maes, 1994), and
`• meeting scheduling software can naturally be presented as an empowered,
`autonomous, social agent that can interact with other similar agents on the
`user’s behalf.
`
`In such applications, the fact that these functions are implemented through a
`series of local agents also means that they can be personalized to reflect the
`preferences of their user. Finally, in computer games (Wavish and Graham, 1995)
`and virtual reality systems (Bates, 1994), characters can naturally be represented as
`agents.
`
`1.2.2.3 Legacy Systems
`
`Large organizations have many software applications (especially information sys-
`tems) that perform critical organizational functions. To keep pace with changing
`business needs, these systems must be periodically updated. However, modifying
`such legacy systems is in general very difficult: the system’s structure and internal
`operation will become corrupted with the passage of time, designs and docu-
`mentation are lost, and individuals with an understanding of the software move on.
`Completely rewriting such software tends to be prohibitively expensive, and is
`often simply impossible. Therefore, in the long term, the only way to keep such
`legacy systems useful is to incorporate them into a wider cooperating community,
`in which they can be exploited by other pieces of software. This can be done, for
`example, by building an ‘agent wrapper’ around the software to enable it to inter-
`operate with other systems (Genesereth and Ketchpel, 1994; Jennings et al., 1993).
`The process of transforming a software application such as a database into an agent
`is sometimes referred to as agentification (Shoham, 1993).
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 7
`
`

`

`10 Jennings and Wooldridge
`
`1.2.3 The Limitations of Agent Solutions
`
`Although agent technology has an important role to play in the development of
`leading-edge computing applications, it should not be oversold. Most applications
`that currently use agents could be built using non-agent techniques. Thus the mere
`fact that a particular problem domain has distributed data sources or involves
`legacy systems does not necessarily imply that an agent-based solution is the most
`appropriate one – or even that it is feasible. As with all system designs, the ultimate
`choice is dictated by many factors. This section has identified the types of situation
`in which an agent-based solution should be considered, as opposed to those in
`which it should be deployed. Moreover, it should be noted that the very nature of
`the agent paradigm leads to a number of problems, common to all agent- based
`applications:
`• No overall system controller. An agent-based solution may not be appropriate
`for domains in which global constraints have to be maintained, in domains
`where a real-time response must be guaranteed, or in domains in which dead-
`locks or livelocks must be avoided.
`• No global perspective. An agent’s actions are, by definition, determined by that
`agent’s local state. However, since in almost any realistic agent system,
`complete global knowledge is not a possibility, this may mean that agents make
`globally sub-optimal decisions. The issue of reconciling decision making based
`on local knowledge with the desire to achieve globally optimal performance is a
`basic issue in multi-agent systems research (Bond and Gasser, 1988).
`• Trust and delegation. For individuals to be comfortable with the idea of
`delegating tasks to agents, they must first trust them. Both individuals and
`organizations will thus need to become more accustomed and confident with the
`notion of autonomous software components, if they are to become widely used.
`Users have to gain confidence in the agents that work on their behalf, and this
`process can take time. During this period, the agent must strike a balance
`between continually seeking guidance (and needlessly distracting the user) and
`never seeking guidance (and exceeding its authority). Put crudely, an agent
`must know its limitations.
`
`1.3 Agent Application Domains
`
`Agents are the next major computing paradigm and will be pervasive in
`every market by the year 2000. (Janca, 1995)
`
`There are several orthogonal dimensions along which agent applications could be
`classified. They can be classified by the type of the agent, by the technology used to
`implement the agent, or by the application domain itself. We choose to use the
`domain type, since this view fits best with the objectives and structure of the rest of
`this chapter (see Nwana (1996) for an alternative typology). Our aim in producing
`this classification scheme is simply to give a feel for the breadth and variety of
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 8
`
`

`

`Applications of Intelligent Agents 11
`
`agent applications. More comprehensive descriptions of specific agent systems can
`be found in (AA97; Chaib-draa, 1995; Nwana, 1996; PAAM 1996; van Parunak,
`1996).
`
`1.3.1 Industrial Applications
`
`Industrial applications of agent technology were among the first to be developed: as
`early as 1987, Parunak reports experience with applying the contract net task
`allocation protocol in a manufacturing environment (see below). Today, agents are
`being applied in a wide range of industrial applications.
`
`1.3.1.1 Process Control
`
`Process control is a natural application for intelligent agents and multi-agent
`systems, since process controllers are themselves autonomous reactive systems. It is
`not surprising, therefore, that a number of agent-based process control appli-cations
`should have been developed. The best known of these is ARCHON, a soft-ware
`platform for building multi-agent systems, and an associated methodology for
`building applications with this platform (Jennings, 1995). ARCHON has been
`applied in several process control applications, including electricity transportation
`management (the application is in use in northern Spain), and particle accelerator
`control. ARCHON also has the distinction of being one of the earliest field-tested
`multi-agent systems in the world. Agents in ARCHON are fairly heavyweight
`computational systems, with four main components: a high-level communication
`module (HLCM), which manages inter-agent communication; a planning and
`coordination module (PCM), which is essentially responsible for deciding what the
`agent will do; an agent information management module (AIM), which is
`responsible for maintaining the agent’s model of the world, and finally, an
`underlying intelligent system (IS), which represents the agent’s domain expertise.
`The HLCM, PCM, and AIM together constitute a kind of ‘agent wrapper’, which
`can be used to encapsulate an existing intelligent system (or indeed any pre-existing
`software application) and turn it into an agent.
`
`1.3.1.2 Manufacturing
`
`Parunak (1987) describes the YAMS (Yet Another Manufacturing System), which
`applies the well-known Contract Net protocol (Smith, 1980) to manufacturing
`control. The basic problem can be described as follows. A manufacturing enterprise
`is modeled as a hierarchy of workcells. There will, for example, be workcells for
`milling, lathing, grinding, painting, and so on. These workcells will be further
`grouped into flexible manufacturing systems (FMS), each of which will provide a
`functionality such as assembly, paint spraying, buffering of products, and so on. A
`collection of such FMSs is grouped into a factory. A single company or
`organization may have many different factories, though these factories may
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 9
`
`

`

`12 Jennings and Wooldridge
`
`duplicate functionality and capabilities. The goal of YAMS is to efficiently manage
`the production process at these plants. This process is defined by some constantly
`changing parameters, such as the products to be manufactured, available resources,
`time constraints, and so on. In order to achieve this enormously complex task,
`YAMS adopts a multi-agent approach, where each factory and factory component
`is represented as an agent. Each agent has a collection of plans, representing its
`capabilities. The contract net protocol allows tasks (i.e., production orders) to be
`delegated to individual factories, and from individual factories down to FMSs, and
`then to individual workcells. The contract net is based on the idea of negotiation,
`and hence YAMS views the problem of deciding how best to process a company’s
`product manufacturing requirements as a negotiation problem. A some-what similar
`approach was developed in (Wooldridge et al., 1996), where the problem of
`determining an optimal production sequence for a factory was analyzed using the
`tools of game and negotiation theory.
`
`1.3.1.3 Air Traffic Control
`
`Kinny et al. (1996) describe a sophisticated agent-realized air traffic control system
`known as OASIS. In this system, which is undergoing field trials at Sydney airport
`in Australia, agents are used to represent both aircraft and the various air traffic
`control systems in operation. The agent metaphor thus provides a useful and natural
`way of modeling real-world autonomous components. As an aircraft enters Sydney
`airspace, an agent is allocated for it, and the agent is instantiated with the
`information and goals corresponding to the real-world aircraft. For example, an
`aircraft might have a goal to land on a certain runway at a certain time. Air traffic
`control agents are responsible for managing the system. OASIS is implemented
`using the AAII’s own dMARS system. This system allows an agent to be
`implemented using the belief-desire-intention model of agency – one of the most
`popular approaches to reasoning about agents in theoretical multi-agent systems.
`
`1.3.2 Commercial Applications
`
`1.3.2.1 Information Management
`
`As the richness and diversity of information available to us in our everyday lives
`has grown, so the need to manage this information has grown. The lack of effective
`information management tools has given rise to what is colloquially known as the
`information overload problem. Put simply, the sheer volume of information
`available to us via the Internet and World Wide Web (WWW) represents a very
`real problem. The potential of this resource is immediately apparent to anyone with
`more than the most superficial experience of using the WWW. But the reality is
`often disappointing. There are many reasons for this. Both human factors (such as
`users getting bored or distracted) and organizational factors (such as poorly
`organized pages with no semantic markup) conspire against users attempting to use
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 10
`
`

`

`Applications of Intelligent Agents 13
`
`the resource in a systematic way. We can characterize the information overload
`problem in two ways:
`•
`
`Information filtering. Every day, we are presented with enormous amounts of
`information (via email and newsnet news, for example), only a tiny proportion
`of which is relevant or important. We need to be able to sort the wheat from the
`chaff, and focus on information we need.
`Information gathering. The volume of information available prevents us from
`actually finding information to answer specific queries. We need to be able to
`obtain information that meets our requirements, even if this information can
`only be collected from a number of different sites.
`
`•
`
`One important contributing factor to information overload is almost certainly
`that an end user is required to constantly direct the management process. But there
`is in principle no reason why such searches should not be carried out by agents,
`acting autonomously to search the Web on behalf of some user. The idea is so
`compelling that many projects are directed at doing exactly this. Three such
`projects are described below:
`• Maxims: (Maes, 1994) describes an electronic mail filtering agent called
`Maxims. The program ‘learns to prioritize, delete, forward, sort, and archive
`mail messages on behalf of a user’ (p. 35). It works by ‘looking over the
`shoulder’ of a user as he or she works with their email reading program, and
`uses every action the user performs as a lesson. Maxims constantly makes
`internal predictions about what a user will do with a message. If these
`predictions turn out to be inaccurate, then Maxims keeps them to itself. But
`when it finds it is having a useful degree of success in its predictions, it starts to
`make suggestions to the user about what to do.
`• Newt: (Maes, 1994) also describes an example of an Internet news filtering
`program called Newt. This program, implemented in C++ on a UNIX plat-form,
`takes as input a stream of usenet news articles, and as output gives a subset of
`these articles that it is recommended the user reads. The Newt agent is
`‘programmed’ by means of training examples: the user gives Newt examples of
`articles that would and would not be read, and this feedback is used to modify
`an internal ‘model’ (we use the term very loosely) of the user’s interests. The
`user can, if desired, explicitly program Newt by giving it precise rules (e.g.,
`“give me all articles containing the word ‘agent’”). Newt retrieves words of
`interest from an article by performing a full-text analysis using the vector space
`model for documents.
`• The Zuno Digital Library: A digital library is an organized, managed collection
`of data, together with services to assist the user in making use of this data. The
`Zuno Digital Library (ZDL) system is a multi-agent system that enables a user
`to obtain a single, coherent view of incoherent, disorganized data sources such
`as the World Wide Web, a user’s own data, collections of articles on publishing
`house sites, and so on (Zuno, 1997). Agents in ZDL play one of three roles:
`
`Petitioner STMICROELECTRONICS, INC.,
`Ex. 1020, IPR2022-00681, Pg. 11
`
`

`

`14 Jennings and Wooldridge
`
`• consumer – representing end users of the system, who can be thought
`of as consuming information;
`• producer – representing ‘content providers’, who own the information
`that customers consume; and
`facilitator – mapping between consumers and producers.
`
`•
`
`Consumer agents in the system are responsible for representing the user’s
`interests. They maintain models of users, and use these models to assist them,
`by proactively providing information they require, and shielding them from
`infor

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket