Agent: I don’t think it means, what you think it means.

Berkman Center Working Draft

This version:
Previous version:
Latest version:
see index.
Joseph Reagle, <>
Resident Fellow, Berkman Center for Internet and Society
Harvard Law School

Research Engineer, MIT Lab for Computer Science
World Wide Web Consortium

Status of this Document

This is the second public draft of this paper. I welcome comments from readers. Examples that refer to P3P are based on the W3C Working Draft 9-November-1998. This paper is being submitted to LawTech'99, the bibliographic entries are referenced by an author token, as well as the numerical token used in the LawTech submission.

Copyright 1999 Joseph M. Reagle Jr., All Rights Reserved. This document is best viewed with a W3C Stylesheet compliant application.


As the deployment of computer agents that act on behalf of users grow, so do questions regarding the legitimacy and legal standing of computer based agreements. I note the use of the terms "agents" and "proxy" in the technical discipline and argue that a more explicit understanding of these terms is necessary to properly address the convergence of technical and legal issues related to electronic commerce. Unfortunately, much of the legal literature on the question of computer agency is preoccupied with concepts of intelligence, consideration, and intention within a computer program; this is because these concepts are found in law. However, these concepts are premature in a technical context -- regardless of hand-waiving about artificial intelligence. I provide a simple technical explanation of computer agents and proxies, as well as a brief etymology of those terms in the technical context. I conclude by pointing out some problems of making automated agreements on the Web in hopes that this small contribution will permit legal analysis to focus on pressing issues of the day.

Table of Contents

  1. Introduction
  2. Introduction to Computer Networking, Gateways, Agents, and Proxies
    1. Vertical Abstraction: Layering and Services
    2. Lateral Abstraction: Proxies and Services
  3. The Etymology of "Agent" and "Proxy" in Computer Networking Discourse
  4. Present Day Problems of Proxy and Agency
    1. Privacy Example (P3P)
    2. Agents
    3. An Agent or a Service?
      1. Directory Service
      2. Certificate Server
      3. User Profile Server
      4. Web Privacy Agent
    4. Obligations of Network Proxies
  5. Conclusion

1 Introduction

Lawyers and protocol engineers commonly rely upon the terms agent and proxy within the discourse of their respective professions. To the man on the street, the lawyer and engineer are speaking similarly: some thing capable of taking substantive action, often on behalf of another. In a conversation between the lawyer and engineer, this commonality would likely lead to more confusion than clarity. Each professional uses the terms in a specific way. While the terms are obviously manifested in speech, the related context is not. Given the advancement of Internet technologies and commerce, lawyers and engineers are more likely to be speak to each other on the topic of "agents" than ever before.

In this paper, I provide a summary description of the technical concepts of agency and proxy. This examination permits me to point out where the lawyer and engineer are of the same mind. It also allows us to point out confusions, best described by a phrase from the movie The Princess Bride, "You keep using that word…I do not think it means, what you think it means."

My intended audience includes lawyers and engineers concerned with Internet policy. I delve into each discipline far enough to understand the interplay between each, but no more than necessary. My bias is to towards technology since I believe we are  better served by educating and focussing lawyers on the relatively simple concepts of computer networks, rather than explaining the concepts of agency law to engineers. This bias is actually a credit to engineers; to borrow another phrase, "Everything should be made as simple as possible, but not simpler."

2 Introduction to Computer Networking, Gateways, Agents, and Proxies

The central concept of computer networking is communication: one shares information with others. Common forms of computer networking can best be envisioned by a number of people sitting around a circular table. Each person receives a piece of paper with a listing of names, each with an associated message. To participate, one should examine the paper for messages to oneself, add messages for others around the table, and pass that piece of paper to the right and receive a new piece of paper on the left. You now have a paper-net!

papernet.gif (1184 bytes)

In this context, concepts of agency and proxy result from a vertical (layering) and lateral (scope) partitioning of a communications network.

2.1 Vertical Abstraction: Layering and Services

Imagine that Ned (a.k.a. "the network") is at the paper-net table, but he is rather dumb. However, he is good at passing messages.  It's actually Sam, the guy sitting behind Ned, who is using this paper-net to communicate with his friends. Sam doesn't understand the paper passing rules, he doesn't care to know them. All he knows is that Ned takes his messages, and delivers messages when they come in. In this context we have layering, a critical concept to computer networking. Ned is providing a low level network service to Sam. By using layering one can focus on the interface of the interaction (getting a message) while deferring details of the paper-net protocol to someone else's competency.

NIC.gif (1304 bytes)

Also consider Roger (a.k.a "the registry"), one of the other people -- at Sam's higher level -- involved in this paper-net. As a hobby, Roger keeps track of all the folks around the table and will send a list of the names when requested; he is providing a registry service. The difference between Ned and Roger, is that Ned is part of the network layer. He provides a service that Sam can take for granted in order to communicate. Roger isn't part of the network layer, rather he is a service out there on the network.

At this high level of abstraction I've touched on the idea of (1) layers and of (2) services.

protocol layer: ... A network connection may be thought of as a set of more or less independent protocols, each in a different layer or level. The lowest layer governs direct host-to-host communication between the hardware at different hosts; the highest consists of user application programs. ... The advantages of layered protocols is that the methods of passing information from one layer to another are specified clearly as part of the protocol suite, and changes within a protocol layer are prevented from affecting the other layers. This greatly simplifies the task of designing and maintaining communication systems. Examples of layered protocols are TCP/IP's five layer protocol stack and the OSI seven layer model. (1997-05-05)  [FOLDC]

While knowledge of the concept of layering is necessary, it is is not central to our discussion of agency/proxy. However, the idea of services is important.

service: Work performed (or offered) by a server. This may mean simply serving simple requests for data to be sent or stored (as with file servers, gopher or http servers, e-mail servers, finger servers, SQL servers, etc.); ... [FOLDC]

And of course, if there are services, there must be those that request and offer the services.

client-server: A common form of distributed system in which software is split between server tasks and client tasks. A client sends requests to a server, according to some protocol, asking for information or action, and the server responds. This is analogous to a customer (client) who sends an order (request) on an order form to a supplier (server) who dispatches the goods and an invoice (response). The order form and invoice are part of the "protocol" used to communicate in this case. [FOLDC]

To rise higher still into the vertical abstraction (away from the paper-net protocol towards thinking of the various entities on the network that one can communicate with) engineers often speak of agents. "Agent" is a useful word for encapsulating a set of abilities into one concept. The agent might do more than act as a client (issuing requests). It might offer a service to a user, issue consequent requests, analyze results, and report them back to the user.

agent: In the client-server model, the part of the system that performs information preparation and exchange on behalf of a client or server. Especially in the phrase "intelligent agent" it implies some kind of automatic process which can communicate with other agents to perform some collective task on behalf of one or more humans. (1995-04-09) [FOLDC]

2.2 Lateral Abstraction: Proxies and Services

I've explained how engineers try to address the problem of moving from the nitty-gritty details of bit twiddling on a wire towards the abstract concept of an agent. Now I will turn to how one thinks about the scope of a network, and how it might interoperate with other networks.

Let's return to our simple paper-net scenario and abstract away lower level layers (like Ned) for the moment. Folks are sitting around the table reading the paper for messages and writing new ones down before passing it to the right. Assume that there is another table with a similar paper-net but that they pass their messages to the left! Fortunately, one of the folks at your table, Gary (a.k.a. "the gateway"), also sits at their table.

gateway.gif (2161 bytes)

If you wish to reach Sue at the other table, you might address a message to Gary, that says, "Gary: Sue: how are you?" Gary intercepts the message, sees it is intended for someone on the other network and passes it on; he is acting as a gateway to that other network. Gary permits access to the other network because he knows how to translate between the "pass to the right" and "pass to the left" protocol.

gateway: 1. protocol converter. 2. This term was previously used for a router or other kind of internetworking device but this use is now deprecated. By this definition, a router is a layer 3 (network layer) gateway, and a mail gateway is a layer 7 (application layer) gateway. [FOLDC]

Finally, this brings us to proxies. While a gateway will translate one protocol into another in order to reach other networks, a proxy gateway acts as a go between at the service level -- I am now combining the concepts of lateral and vertical abstraction. For instance, Roger's brother Robert also offers the registry service on the other network.

proxy.gif (1948 bytes)

Roger will know to pass local requests about the members of Sue's network to Robert, through Gary. Three things are happening: (1) Gary is acting as a network gateway, he understands the low level paper-net protocol of both networks; (2) Roger is a registry service for the local network; and (3) Roger is also a proxy for the registry service of his brother on the other network. One can have different proxy services (lateral abstractions) at different layers (vertical abstractions)!

proxy gateway: A computer and associated software which will pass on a request for a URL from a World-Wide Web browser such as Mosaic to an outside server and return the results. This provides clients that are sealed off from the Internet a trusted agent that can access the Internet on their behalf. Once the client is properly configured, its user should not be aware of the proxy gateway. [FOLDC]

Unfortunately, this definition uses the terms gateway, agent, and client in a way that makes it a bit difficult to see the explicit difference, but if you look carefully it makes sense. An agent acts on your behalf, a gateway converts between protocols, and a proxy emulates a service provided by a server that is not contacted directly by the client itself. We will return to the the differences between a service and agent in 4.3 .

3 The Etymology of "Agent" and "Proxy" in Computer Networking Discourse

Given that the topic of this paper addresses computer agency, I believe an examination of the usage of the terms "agent" and "proxy" within the technical field is instructive -- and interesting! The technical use of the term agent can be characterized into three overlapping periods.

  1. AI period (1960+): the term was used by the artificial intelligence community, often in the grammatical sense.
  2. Network Design Period: (1975+): the community of Internet network designers used the term in a way similar to our own: a service that acted on the behalf of another.
  3. Autonomous Period (1990+): the decade of the agent: where the concept of potentially intelligent, autonomous computer programs that interact with each other within a networked community is -- nearly -- over-hyped. It was also during this latter period that the term proxy became widely used.

The technical concept of an agent was apparently first used in the artificial intelligence community in 1959 to describe the constituents (agents or demons) of a larger self-organizing behavior. [RR, Self] However, within AI its usage did not always relate to computer programs, but to linguistic analysis, particularly in Fillmore's case grammar [Fill]:

An agent is one who performs a particular action and this can be reflected in syntax. In English, in an active sentence, the agent is usually referred to by the subject.... A form used to indicate the agent is called 'agentive.' In case grammar, agentive or agent is one of the specified sets of cases. [Bear]

Agents were the subject of papers on intelligent information sharing systems and artificial intelligence throughout the 70 and 80s'. Occasionally, information technology related papers used the term as any other discipline would, such as "Computers as an Agent of Change." [Dieb]. Consequently, the use of the term to denote an initiator of action both within the AI/linguistic community and its typical English usage led the term to be used as a substitute of the term "program" when the connotation of autonomy and network interaction were required. To repeat the definition:

agent: In the client-server model, the part of the system that performs information preparation and exchange on behalf of a client or server. Especially in the phrase "intelligent agent" it implies some kind of automatic process which can communicate with other agents to perform some collective task on behalf of one or more humans. [FOLDC]

While computer agents were the subject of papers for nearly two decades, it was in the 1990's that the term became worthy of appearing in the title. Previously, the key words of related publications were information sharing, computer mediation, collaboration, and cooperation. [Wood] Starting in 1994, specific venues for agent research and discussion, [EWMA, CIKM] as well as a special issue of the Communications of the ACM placed the term prominently in popular discourse. [Comm]

One of the best sources of information on how the terms agents and proxies came to be used in the context of the Internet and Web is the IETF's Request for Comments (RFC) archive. While the first occurrence of agent in an RFC was administrative, [RFC95] its technical debut was instructive in its use with respect to qualifying an agent as a program that resides on and communicates with other programs on a network.

The above premise is that the program (or agent) is doing the communicating with an NCP and thus needs to be identified for message traffic routing from an NCP.  [RFC129]

During the 70's at the IETF the only other time agent was used in a technical sense was to refer to refer to the sender of an email. [RFC733] However, in 1980, with the arrival of the Transmission Control Protocol (TCP) [RFC761, RFC793] its usage was firmly established as a keyword in network protocol vernacular.

By 1987, the Internet TCP/IP protocol had matured sufficiently that the larger issue of network architecture and management became a focus of work at the IETF. The concept of a gateway was central to three seminal RFCs:

RFC1009 -- Requirements for Internet gateways.
RFC1027 -- Using ARP to implement transparent subnet gateways.
RFC1067 -- Simple Network Management Protocol.

Recall that gateways provide an interface between two networks -- each of which may use a different networking protocol. A proxy is often run on a gateway and acts as a go between, representing requests or services on behalf of one party in terms the second party can understand. (However, proxies can exist anywhere on the network.) The term proxy was seemingly first used in the network context by Shapiro [Shap] in 1986 to designate an object as a local representative of a remote object.  However, both of our terms, agent and proxy, received their fullest treatment in 1989 in RFC1095.

3.1. Architectural Overview

The basic concepts underlying OSI network management are quite simple. There reside application processes called "managers" on managing systems (or management stations). There reside application processes called "agents" on managed systems (or network elements being managed). Network management occurs when managers and agents conspire (via protocols and a shared conceptual schema) to exchange monitoring and control information useful to the management of a network and its components. The terms "manager" and "agent" are also used in a loose and popular sense to refer to the managing and managed system, respectively.... The terms "manager" and "agent" are used to denote the asymmetric relationship between management application processes in which the manager plays the superior role and the agent plays the subordinate.  [RFC1095]

Proxy is explicitly placed in a legal context.

4.3. Proxy Management

Proxy is a term that originated in the legal community to indicate an entity empowered to perform actions on behalf of another. In our context, a proxy is a manager empowered to perform actions on behalf of another manager. This may be necessary because the manager cannot communicate directly with the managed devices either for security or other administrative reasons or because of incompatible communication mechanisms or protocols. In either case, the proxy assumes the agent role with respect to the requesting manager and the manager role with respect to the managed device.  [RFC1095]

Subsequently, the terms agents and proxy have become integral to the nomenclature of networks and their applications, particularly email, ftp, HTTP, and firewalls. Professors [Maes, Mins, Negr] and students associated with the Agent Group at the MIT Media Lab have significantly contributed to the advancement of software agents in the popular scientific press. Others have begin to think about the social implications of autonomous network agents [Fried1-3, Niss].

4 Present Day Problems of Proxy and Agency

My purpose in this section is to introduce an actual experimental computer agent application and draw attention to a number of issues that are relevant to present day questions of legal agency and proxy on computer networks. I attempt to draw out concerns and questions I would like to see further thought given to.

4.1 Privacy Example (P3P)

My example application is the W3C's Platform for Privacy Preferences (P3P). [RC99] P3P addresses concerns related to users' privacy; P3P implementation will hopefully ensure that users and services come to an acceptable agreement about a site's privacy practices before any -- if any -- information is exchanged.

I see the P3P approach as an alternative to the Revised UCC 2b effort which also address how to communicate the terms of an agreement to a user of a software product or service. However, in my inexpert opinion, the revised UCC 2B draft primarily concerns itself with permitting services to exercise the necessary formalities to bind users to agreements that the users cannot possible understand. Instead, P3P captures the semantics of a privacy agreement in a machine readable and understandable data format. This technique is experimental and not without its problems. However, this approach means that user preferences can be captured (or borrowed from a trusted authority) and applied to proposals for agreement by the computer agent! [Rea99]

The best way to understand P3P is through a simple scenario. Alice, a user, configures her P3P agent with her general preferences about the type of information she is -- or is not -- willing to release to Web sites based on the Web site's encoded privacy practices. Both the user preference and site practice expression can be "understood" by the computer. This comprehension requires no intelligence, merely an ability to compare an expressed preference:

("data collection purpose must only be for {0, completing this transaction}")

to the stated practice:

("data collection purpose is for {4, direct marketing}").

If there is a match, both parties agree and an identifier is used throughout the protocol to represent that agreement unambiguously. If there is no match, the user might (1) be prompted by the agent to consider the proposal and make an exception to her general preferences for this site or (2) walk away from the interaction. For instance, usually Alice is not willing to release her zip code, but the movie listing service of this web site is quite compelling and she agrees.

Because the initial configuration of the agent might be difficult, agents can come preconfigured or come with the ability to accept recommended settings by trusted third parties. For instance, Alice could select the Better Business Bureau configuration as the general default, but she still reserves the right to adjust these settings, and to make specific agreements with sites she encounters in the future.

4.2 Agents

The law defines agency as follows:

(1) Agency is the fiduciary relation which results from the manifestation of consent by one person to another that the other shall act on his behalf and subject to his control and consent by the other so to act. [The Restatement of Agency (Second)(1958)("R2d")]

Unlike other authors, I do not concern myself with a computer agent's status as a person, its cognitive ability, nor its intent. A P3P agent is merely capturing the preferences of the user in an explicit manner and expressing those preferences over offers made by other parties. (The way in which semantics are captured and expressed in computer understandable data structures is addressed in [Rea99].)

In the previous question I stressed the importance of the users' ability to understand or have their preferences applied to proposals for agreement in contrast to strategies of legalistic formalism. Now I wish to to stress the importance of the likely modes of failure of the agent. User's are likely to be dissatisfied if (1) the user doesn't know what they want and are ambiguous in their preference expression, (2) if the user knows what they want but the preferences are not captured well, or (3) if the agent operated upon well expressed preferences with poor results.

This seems more important than analysis related to the trinity of agency: the principle (the one for whom action is to be taken), the agent (the one taking the action), and the third party (the one with whom one is interacting with). In fact, in the technical context, there is not necessarily any knowledge of a third party! The technical definition of a proxy gateway in 2.2 stated, "Once the client is properly configured, its user should not be aware of the proxy gateway." [there is a corresponding legal issue here.] With P3P, a Web service will not know whether the agreement resulted from either of the three events:

  1. A computer action based on active user consideration. For instance, the agent prompts the user explicitly, obtains agreement, and signals acceptance through the protocol.
  2. A computer action based on prior user configuration, without active user consideration. For instance, the user said that they find any proposal that does not collect identifiable data acceptable; the agent automatically signals acceptance through the protocol.
  3. A computer action based on non-user inputs. For instance, the user instructed the agent to accept the proposal that meets the recommended preferences expressed by Consumer Reports; the agent automatically signals acceptance through the protocol.

The P3P protocol essentially hides the exact nature of the party at the other end; it is assumed that whatever is there, is competent to make the agreement. (This might lead one to recommend that computer agreements should include information about the degree of human involvement used to reach the agreement.)

4.3 An Agent or a Service?

While an agent might offer a service to a user. Is it a service? The interesting part of the legal definition is how an agent shall, "act on his behalf and subject to his control." A P3P document defines an agent as such:

User Agent (P3P) A program whose purpose is to mediate P3P agreements and interactions with services on behalf of the user under the user's preferences. A user may have more than one user agent, and agents need not reside on the user's desktop, but any agent must be controlled by and act on behalf of only the user. The trust relationship between a user and her agent may be governed by constraints outside of P3P. For instance, an agent may be trusted as a part of the user's operating system or Web client, or as a part of the terms and conditions of a ISP or privacy proxy.

A fiduciary relationship is defined as, "a person having a duty, created by his undertaking, to act primarily for the benefit of another in matters connected with is undertaking." [34 N.E. 2d 68, 70] The P3P definition is more strict, requiring the control of the agent to be operated solely in the interest of the user. Why is this? To ensure that the service of offering privacy protection is not abused itself. For instance, consider the following potential criteria of what constitutes an agent

  1. The agent should act only on the user's behalf; no other parties interest should be considered in the determination of an agent's behavior.
  2. The agent should act for one person only; it should not serve more than one person. However, how is this relevant to acting in the user's interest? A single lawyer can partake of more than one fiduciary client relationship as long as there is no conflict of interest.
  3. The agent needs to be located on the user's computer. However, what does this mean when a user uses a "network-PC" -- a dumb terminal where the actual computation takes place elsewhere on the network?

How would these criteria apply to the following common Web scenarios?

4.3.1 Directory Service

This Web site places a user in a directory so that people can easily find their email address.

For example:

4.3.2 Certificate Server

This site collects directory and cryptographic certificate information from users and makes them available to third parties under the users' preferences. For instance, I (a user) am willing to release my business certificate to this site if they in turn ensure that those that solicit the information from them will not use it for unsolicited marketing purposes (e.g., take the email associated with my key and use it to spam me.) This site receives revenue from this operation by placing banners on its site that people log on to before querying the certificate data base (key ring).

For example:

4.3.3 User Profile Server

This organization collects anonymous, user behavior information over multiple sites and shares it with multiple sites in anonymous form.

For example:

4.3.4 Web Privacy Agent

A privacy agent is located on an external Web proxy that allows users to maintain multiple pseudonyms on that proxy under P3P control. The proxy also provides cookie control and anonymity -- since sites cannot track the individual's IP address.

Sometimes even technical people will make the mistake of calling this service a "privacy proxy." It is not a privacy proxy, but a Web proxy. A user makes all requests for external Web pages through this service, the service then fetches those pages and presents them to the user. It is acting as a local proxy for those other Web services. However, in addition to acting as a Web proxy, it is also acting as a privacy agent: looking for and acting upon privacy statements found with the Web pages it is proxying.

For example:

5 Obligations of Network Proxies

The second substantial problem I wish to point out with respect to the formation of agreements on networks by agents is the interference of proxies. Usually, when one thinks of an agreement, one thinks of two people. However, for any communication to happen on the Internet, numerous intermediaries must be traversed in order to enable a seemingly "end-to-end" communication. For instance, the goal of P3P is to enable an end-to-end agreement between a Web site and user about if/what information is collected and how it is used. However, every intermediary, such as a company Web proxy, is also privy to the user's action, but is not obligated to abide by the privacy agreement. As stated, a proxy's goal is to be transparent, the user should not even know it is there! However, one does want to know if such an intermediary is affecting one's privacy, agreements, or access to speech -- see [RW98] on guidelines regarding the transparency of speech filtration agents.

Web proxies are used to improve performance. A local Web proxy can keep its own copies (a cache) of frequently accessed Web pages on the external network, such that when users access commonly requested pages, the proxy will send the local copy. Web protocols do support the notion of expiration, content can be tagged requesting that proxies not keep information in cache, or that a newer version of the content be fetched at some point in the future. However, there is no strict obligation for proxies to follow such requests. This can have a significant effect on the ability to form agreements on-line. Proxies which do not expire old stock quotes, news stories, price lists, privacy proposals, and offers for digital contract can be detrimental to electronic commerce!

The proxy protocol design discussion relevant to this problem is beyond the scope of this paper, however one can state that there is a burden on the application designers and end users to ensure that no meaning or ambiguity is introduced into their communication. One should be careful about the assumptions one makes about network intermediaries. Perhaps in the future, smart proxies will be able to understand the meaning of computer agreements such that end-to-end users can require all intermediaries to abide by their agreement as well. How the law should address this problem, I leave as an open question. (Ironically, before I completed the second draft of this paper, the European Parliament provided me with an example of how law should not address this problem: by potentially making Web caching illegal!)


By removing ambiguity associated with the terms agent and proxy, I hope I pointed out other -- otherwise obscured -- questions related to computer mediated online agreements. To summarize my exposition, agents act on your behalf and proxies act on someone else's behalf in order to render a service. An understanding of how the words are used in a technical context (and an understanding of network layering and interoperation) may permit us to take the next step in asking the right questions.

Those questions will pertain to the responsibilities and roles of the providers of services anywhere within a network. Is a java aplet I download my agent? What legal responsibilities and obligations do network intermediaries that carry legally relevant protocol semantics have to the parties on either end of the agreement?

Regardless of the question, I believe the answers must focus on the users' ability to comprehend and exert control over agreements and how the failure of an agent is likely to affect the users.


[30, Effr97] W. Effross. The Legal Architecture of Virtual Stores: World Wide Web Sites and the Uniform Commercial Code, , Summer, 1997, 34 San Diego L. Rev. 1263.

[31, Fisc97] J. Fischer, Computers as Agents: A Proposed Approach to Revised U.C.C. Article 2, SYMPOSIUM: LAW AND CIVIL SOCIETY. Spring, 1997, 72 Ind. L.J. 545.

[32, LV98] Luiijf, and P. Verhaar, Software Agents and IPR/Copyright. IFLA'98 conference, Amsterdam, iMprimatur Workshop, 17-8-1998

[29, Rea99] J. Reagle, Eskimo Snow and Scottish Rain: Legal Considerations of Schema Design. Berkman Center Working Draft, Harvard Law School.  (md-policy-design-19990206.html)

[28, RC99] J. Reagle, and L. Cranor The Platform for Privacy Preferences. Communications of the ACM. Vol. 42, No. 2 (Feb. 1999), Pages 48-55

[33, RW98] J. Reagle, and D. Weitzner Statement on the Intent and Use of PICS: Using PICS Well. W3C NOTE (June 1998).

Etymological Bilbiography

[5, Bear] C. Beardon, (Editor) Artificial Intelligence Terminology : A Reference Guide (Ellis Horwood Series in Artificial Intelligence Foundations and Concepts)  (1989).

[9, CIKM] Third International Conference on Information and Knowledge Management (CIKM'94)

[10, Comm] Communications of the ACM. 37(7) July 1994.

[6, Dieb] J. Diebold, Man and the Computer; Technology as an Agent of Social Change. (New York: A. Praeger, 1969).

[8, EWMA] 7th European Workshop on Modeling Autonomous Agents in a Multi-Agent World (Netherlands 1996)

[4, Fill] Fillmore, "The Case for Case." Universals in Linguistic Theory. (New York: Holt, Rinehart, and Winston, 1968, 1-90).

[24, Fried1] B. Friedman, and L. Millett, "It's the computer's fault" -- Reasoning about computers as moral agents. Conference Companion of the conference on Human Factors in Computing Systems, CHI '95. (New York: Association for Computing Machinery, May 1995, 226- 227).

[25, Fried2] B. Friedman, and H. Nissenbaum, Bias in computer systems. ACM Trans. Inf. Syst. 14(3), Jul. 1996, 330 - 347.

[26 Fried3] B. Friedman, and H. Nissenbaum, Software agents and user autonomy. Autonomous agents. 1997, 466 - 469.

[1, FOLDC] D. Howe (ed.), The Free On-line Dictionary of Computing:

[27 Niss] H. Nissenbaum, Computing and accountability. Communications of the ACM. 37(1), Jan. 1994, 72-80.

[21, Maes] P. Maes, Agents that Reduce Work and Information Overload. Communications of the ACM.  37(7), July 1994, 31-40.

[22, Mins] M. Minsky, and D. Riecken. A Conversation with Marvin Minsky about Agents. Communications of the ACM Vol. 37(7) , July 1994, 22-29.

[23, Negr] N. Negroponte. Agents: From Direct Manipulation to Delegation. Software Agents. (Jeffrey M. Bradshaw ed.), Boston, MA: MIT Press, 1997).

[2, RR] B. Rome, and S. Rome,Leviathan: A Simulation of Behavioral Systems, to Operate Dynamically on  a Digital Computer, System Development Corporation. Report No. SP-50(6) (Nov. 1959), 15.

[11, RFC95] RFC95 -- Distribution of NWG/RFC's through the NIC. S.D. Crocker. Feb-04-1971.

[12, RFC129] RFC129 -- A Request For Comments On Socket Name Structure. E. Harslem, J.Heafner, and E. Meyer.

[13, RFC733] RFC733 -- Standard for the format of ARPA network text messages. D. Crocker, J. Vittal, K.T. Pogran, D.A. Henderson. Nov-21-1977.

[14, RFC761] RFC761 -- DOD Standard Transmission Control Protocol. ISI. January 1980.

[15,RFC793] RFC793 -- Transmission Control Protocol DARPA Internet Program Protocol Specification. ISI. September 1981.

[16, RFC1009] RFC1009 -- Requirements for Internet gateways. R.T. Braden, J. Postel. Jun-01-1987.

[17, RFC1027] RFC1027 -- Using ARP to implement transparent subnet gateways. S. Carl-Mitchell, J.S. Quarterman. Oct-01-1987.

[18, RFC1067] RFC1067 -- Simple Network Management Protocol. J.D. Case, M. Fedor, M.L. Schoffstall, J. Davin. Aug-01-1988.

[20, RFC1095] RFC1095 -- Common Management Information Services and Protocol over TCP/IP (CMOT). U.S. Warrier, L. Besaw. Apr-01-1989.

[3, Self] O. Selfridge, "Pandemonium: A Paradigm for Learning." Mechanisation of Thought Processes. (London: H. M. Stationery Off., 1959,511-527).

[19, Shap] M. Shapiro, Structure and encapsulation in distributed systems: The proxy principle. 6th International Conference on Distributed Computing Systems Proceedings (Cat. No. 86CH2293-9). (6th International Conference on Distributed Computing Systems Proceedings (Cat. No. 86CH2293-9), Cambridge, MA, USA, 19-23 May 1986). Washington, DC, USA: IEEE Comput. Soc. Press, 1986. pp. 198-204.

[7, Wood] A. Wood. Agent Information and References. Available at