INTELLIGENTLY AUGMENTABLE WEB PROXY SERVER WITH PER-USER CUSTOMIZATION CAPABILITY

Abstract: An intelligently augmentable web proxy server understands the purposeful activities of users (90) and groups which it serves and also enhances their web experience by altering information they receive and send in ways that make it more useful based on its understanding of them. The system includes the web proxy layer (110), an agent support layer (120) on top of the web proxy layer (110), and an agent application layer (130) on top of the agent support layer (120). The agent support layer (120) interfaces with the web proxy layer (110) and includes request agencies (140) which manage a group of personal agents (150) dedicated to analyzing and transforming the web stream of a particular user (90), and a common agent environment (170) through which agents in the agent application layer (130) can exchange information. In addition to the personal agents (150) managed by the request agency (140), the agent application layer (130) also includes universal agents (160) which operate autonomously of the activities of users (90) to peruse and understand sources of information on the web based on information gathered by the personal agents (150).

Description: INTELLIGENTLY AUGMENTABLE WEB PROXY SERVER WITH PER-USER CUSTOMIZATION CAPABILITY BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention is directed to distributed data communication systems and, more particularly, to intelligent proxies for conducting and enhancing communications between network users and network server hosts in a fashion which is customized for particular users or groups of users applying the technology. 2. Background of the Related Art Typically, a distributed computing network such as the Internet is formed of a number of geographically diverse hosts which are connected to one another, and a number of network users, each of which uses one of the hosts and communicates with other computers on the network through that host (an individual with a personal computer is an example of a single-user host). Although the hosts may be directly connected to the Internet at large so that any information sent to or from a user's host flows along an unimpeded path to its destination, it is normal and beneficial to interpose a firewall between the host or hosts of a user or group of users and the Internet at large. The firewall performs several functions. Most importantly, it controls the flow of information from the Internet at large to the host. By doing so, the firewall can prevent the introduction of viruses, hacker attacks and the like to the user's host. It can also provide similar benefits in regulating traffic in the opposite direction, i.e., from the user's host to the Internet. A firewall is a complex of functions implemented using a combination of hardware and software, operating to both protect an organization from outside information-related threats and to protect the organization from release of information. An "application-level proxy" is one component of a firewall which is designed to manage the transmission of information relevant to some application or protocol such as HTTP (World Wide Web) or SMTP (e-mail). The basic function of a web proxy is to forward user requests for web documents to their ultimate destinations at various servers on the web and to relay responses back to users. This enables central administration of a single point of transmission through an organization's firewall. The decentralized nature of the Internet means that the sources of all information relevant to web users are disparate. As shown in FIG. 1 , available information may include vendor-supplied commercial information 50, news 60, opinions 70, ratings 80 and the like. Most web users 90 probably would like to include more sources of information in their activities than they currently do, and would make use of these disparate sources if they were conveniently able to do so. The disparate nature of the needed information, inconvenience of using it, time and cost typically prevent this from happening. Thus, there is a need for the ability to observe, augment, reduce, or othewise alter general web content for the benefit of a user or group. Current tools available to users 90 for improving the web experience are inadequate in this respect. Search engines 20 attempt to locate germane documents by examining a large amount of mostly irrelevant information. This is because they are ignorant of user characteristics and hence imprecise. Portals 30 are precise collections of content; however, the available information is determined by the owner of the portal 30, positioning fees paid to the owner and the like. Thus, a user's choices in a portal 30 are controlled and restricted and may not be relevant. Finally, a branded community 40 is vendor-centric, designed to function only over vendor-enabled sites, and is designed to maximize customer "switching costs", thus possibly working against the user's best interests. SUMMARY OF THE INVENTION Although the above proxy concept serves its purpose well, it fails to exploit the fact that centralization of all communications through a single transmission point generates a tremendous potential source of information about the transactions conducted therethrough. In particular, the aggregate of the information passed through the proxy provides a great deal of information about the interests and needs of the proxy users. Also, centralization of the proxy- server communications provides a convenient point for intercepting, transforming or otherwise modifying the web stream. The present invention has been developed with the above limitations of the prior art in mind, and it is an object of the present invention to provide a web proxy server as a single network point through which all web data streams including proxy user requests and responses thereto flow which can analyze web proxy user requests and responses thereto and derive information about the interests and needs of the users therefrom. It is a further object of the present invention to provide a system which can use such derived information to transform the web streams passing through the proxy to make them more meaningful and useful for the web proxy user. It is a further object of the present invention to provide a system which can perform the above functions in a manner which is customized to each individual user or identified group, many of which may be utilizing the same proxy server. e a ove o ects are ac eve accor ng o an aspect o t e present nvent on y providing a system which implements an intelligently augmentable web proxy server which can understand the purposeful activities of users and groups which it serves and which also enhances their web experience by altering information they receive and send in ways that make it more useful based on its understanding of them, and which does so in a customized fashion per individual or group. The system includes the web proxy layer, an agent support layer on top of the web proxy layer and an agent application layer on top of the agent support layer. The agent support layer interfaces with the web proxy layer and includes request agencies which manage a group of personal agents dedicated to analyzing and transforming the web stream of a particular user, and a common agent environment through which agents in the agent application layer can exchange information. In addition to the personal agents managed by the request agency, the agent application layer also includes universal agents which operate autonomously of the activities of users to peruse and understand sources of information on the web based on information gathered by the personal agents. BRIEF DESCRIPTION OF THE DRAWINGS These and other objects, features, and advantages of the present invention are better understood by reading the following detailed description of the preferred embodiment, taken in conjunction with the accompanying drawings, in which: FIGURE 1 is a diagram of the operation of web hosts and users on the Internet according to the prior art; FIGURE 2 illustrates a deployment of a preferred embodiment of the present invention; FIGURE 3 is a diagram of the architecture layers in the preferred embodiment; FIGURE 4 is a diagram of execution threads between proxy users and groups and the Internet according to the preferred embodiment; and FIGURES 5-8 show the implementation of a back page mechanism according to the preferred embodiment. DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EXEMPLARY EMBODIMENT A deployment of the present invention in a web environment corresponding to prior art FIG. 1 is shown in FIG. 2, and a diagram of the architecture 100 of a preferred embodiment of the present invention is shown in FIG. 3. Here, a proxy layer 110 is resident on a proxy server (not shown) and communicates with users 90 connected to the server. When the proxy layer 110 receives a request from a user 90, e.g., a call for an HTML web page or the like, it passes this request to the agent support layer 120. The agent support layer 120 includes, as shown in FIG. 4, request agencies 140. The request agency 140 is implemented by a thread-safe software module created when a user 90 issues a request for a file from the Internet 10. The request agency 140 is itself a thread which dynamically invokes, manipulates and interconnects personal agents 150 (themselves implemented in the agent application layer 130) for processing a request from a user 90. The request agency 140 exists long enough to process the request, send it to the Internet 10, receive and process the requested file, and provide the processed file to the user 90. Preferably, the entire system is implemented on a digital computer or network of computers using an appropriate programming language such as, e.g., Java™ using the Java™ Servlet API. The Java™ Servlet API is a cross-platform mechanism for enhancing server applications. It is available as part of Sun's Java™ Servlet Development Kit. The system can be conveniently built using the Java™ Servlet API as its means of connection to the underlying proxy. For more information on the Java™ Servlet API see, e.g., Davidson et al., "Java™ Servlet API Specification Version 2.1a", Java™ Software Division, Sun Microsystems, Palo Alto, California (November 1998), incoφorated herein by reference. Multiple personal agents 150 are managed by a single request agency 140. When created, each personal agent 150 includes information identifying the user 90 which generated the request as a result of which that personal agent 150 was created. The user's information can be used to model and infer the interests and information needs of particular individuals and the groups of which the individuals are a part. Thus, the preferred embodiment provides support for the creation of agent applications to do these things. Each of the personal agents may have a separate function in processing requests from user 90 and the corresponding responses from the Internet 10. For example, a personal agent 150 may act as an information collecting agent which receives a copy of a web stream (an HTTP protocol data stream, either a request or a response, flowing between a user and a web server connected to the Internet), the original stream being passed onward, and produces no output stream. The information collecting agent 150 may, for example, parse the web stream and inspect it for some type of information depending on the application at hand. Alternatively, a personal agent 150 may be a filter such as a framing filter, a hidden- page filter ("backpage" filter), or a tagging filter. Generally speaking, a filter is an agent that consumes a web-stream and emits a possibly modified version of it. A framing filter is a filter which "surrounds" a user's web browsing by, e.g., enclosing the main browsing window in a frame which can provide additional controls for navigating, accessing enhanced information and the like. n s way, agen s an o er sys em unc ona y can n erac w e user us ng user n er ace mechanisms appearing in the filter frame. In the preferred embodiment, a framing filter establishes an initial HTML frameset user interface for a system application, e.g., an application which makes use of information derived or inferred from information on the user's web browsing to provide enhanced functionality on a personalized basis. Once a frameset is established for an application, the framing filter will maintain it by preventing any web response intended for a frame from forcing itself into another frame, such as the topmost HTML "_top" frame (which would thereby displace the filter frame itself and the user interface provided thereby). Some web pages attempt to force themselves into the top-level frame for various reasons by use of known HTML and/or Javascript-based mechanisms. The framing filter can defeat these by detecting such scripts and altering them by, e.g., replacing the frame ID "_top" with a pseudo ID that the filter maintains as the top level frame for the user's web browsing. A "back-page" (also known as a "hidden page" or "behind page") filter augments each web-page which is returned to the user with a small graphic to indicate the presence of enhanced web functionality (placed, e.g., in the upper left hand corner), and make this functionality available by arranging for the graphic to be a link to a control page for such functionality. Such control pages are generated by the proxy as required, and reflect information particular to each identified user when they access these control pages. Examples of the output of a back page filter are shown in FIGS. 5-8 in which FIG. 5 shows a typical web page being viewed with an access graphic 180, e.g., a graphic and associated hyperlink inserted by the back page filter into the received web page) to display a back page generated when the user 90 actuates the access graphic 180. The back page provides several options to further enhance the user's web experience, such as a chat page 200 for interactive communication with other users viewing the same web page as shown in FIG. 6 (the proxy can keep track of which of its users are viewing which pages), statistics 190 (shown in FIG. 7), and a browsing history 210 shown in FIG. 8 providing, e.g., alphabetical, chronological and inferential browsing histories. A tagging filter modifies all URLs in a web response by tagging them with information useful to an agent on a subsequent request. Tagging filters can be used for maintaining session information, group identity and frame identity. Preferably, an organization whose members are users of the system can define groups to suit its purposes using a mechanism similar to, e.g., Unix permission groups or Lotus Notes groups. Session information preferably includes, e.g., the length of a user's web browsing session to enable the system to determine when the user has terminated the session. Naturally, these modifications will not interfere with the subsequent use of the URLs, since they will be removed during the subsequent request by an agent before reaching their destinations on the web at large. If some agent requires the tagging information, it will have access to it via, e.g., the common agent environment 170. If an application requires persistent storage of the tagging information beyond the execution of that agent, the information could be stored in the common agent environment 170. Preferably, the common agent environment 170 is a Linda-style tuple space; however, other arrangements will be readily apparent to those skilled in the art. Also, it should be noted that although gathering, filtering framing, and tagging have been given as examples of the functionality of personal agents 150, the present invention is not so limited and other operations may be adopted as well. Further, the personal agents 150 may implement functionalities which are combinations of the above. Request agencies 140 are created with scripts which describe the dynamic invocation, manipulation, and interconnection of personal agents 150 that the request agency 140 supervises. The request agencies 140 are invoked, interconnected and manipulated according to the particular application for which they are needed. Operations expressed in the request agency 140 script are typically application-dependent operations of the sort: direct request- web-stream to a personal agent 150, feed web-stream from one personal agent 150 to another personal agent 150; do above conditionally, as is dictated by the particular application with which they are associated. When a request agency 140 is created, it is supplied with the user ID of the user 90 responsible for its creation and a request web-stream. At this point the request agency 140 would typically direct the web stream to an initial personal agent 150 generated as directed by the application with which they are associated. The request agency 140 will typically retrieve information from the common agent environment 170 for the user 90, and use this to determine the initial agent to execute as directed by the particular application. There is a default agent module for new/unknown users. All personal agents 150 take a stream as input. Filters also produce a possibly-modified stream in accordance with the particular application with which they are associated. Preferred interfaces for a request agency 140 are: public abstract class PerUData { public PerUData (InputStream is, OutputStream os); public boolean perfor Request ( ) ; public void performResponse ( ) ; } public abstract class PerUAgency { public abstract void go ( PerUData pd) ; The "go ( ) " method can create and manipulate agents that use PerUData pd. The implementation of this method will typically make use of the "perf ormRequest" and "performResponse" methods to forward a (possibly modified) request to a destination on the web and a (possibly modified) response to the user. A very simple request agency which does no processing of the web-stream and which instantiates no agents is given by: public class NoopAgency extends PerUAgency { public NoopAgency ( ) { } public void go (PerUData pd) { p . performRequest ( ) ; pd. connectToStreamToClient (pd. getStreamFrom eb ( ) ) ; pd . performResponse ( ) ; } } This corresponds in functionality to an un-enhanced proxy. In contrast to the personal agents 150 which are "user-facing" in that they have access to and operate upon the web-streams of particular users and come into existence during the request-response cycles of users 90 to perform their functions, universal agents 160 (also implemented in the agent application layer 130 using services in the agent support layer 120) are "web-facing" in that they operate autonomously of the activities of users 90, typically for the benefit of a group. Generally speaking, the purpose of the universal agents 160 is to search, analyze, collect and index sources of information on the web, guided by information obtained by personal agents 150. The common agent environment 170 provides persistence and intercommunication among agents. This is exploited by the personal agents 150 and universal agents 160. Java™ source-code useful for implementing the above embodiment is described in the Appendix attached hereto. For brevity, the source-code is not described in detail; however, relevant features thereof will be readily apparent to those skilled in the art after reviewing the Appendix. A variety of applicable artificial intelligence technologies for user interest modeling are available, and their application to the present invention will be readily apparent to those skilled in the art. Attribute-map induction is one such technology which is based on heuristic extraction of content-bearing phrases from sources of documents available to users, combined with a statistical algorithm. An exemplary application using attribute map induction is described in United States Provisional Patent Application Serial No. 60/123,528 file March 9, 1999, incorporated herein by reference. Using the above framework, myriad applications will become apparent to those skilled in the art. For example, the present invention may be used to implement an ontology- sensitive search for users and groups 90. An ontology is essentially a set of concepts through which a person or group understands the world. Taxonomies and glossaries are examples of things that carry ontological information. An ontology indicates what terms exist for a person or group and what the terms mean to those using them. An intrinsic limitation of web-search engines is that no matter how thorough they are at indexing the web and no matter how sophisticated or comprehensive their indexing mechanisms are, they are unable to make use of the ontological information of the individuals they seek to benefit. For example t e term on s may, n one part cular person s onto ogy, most often refer to the concept "municipal bonds", or perhaps instead "chemical bonds", "surety bonds", or even the baseball player "Barry Bonds". A web search for information about "bonds" will produce indiscriminate information containing that term. Of course, realizing this, an even modestly-astute individual is likely to attempt to specify more information in order to produce better results by typing, say, "municipal bonds" (though they may also be interested in corporate bonds), but the mere fact that they must do so makes the point clearly: search without regard to the searcher's ontology is inherently limited, and constructing more sophisticated queries manually is not a scalable approach for most users to use in order to produce search results of increased quality. This problem may be solved in a preferred embodiment of the present invention as follows. Web-pages of interest to a user or group 90 are observed based on their browsing activity. Various techniques can be used to determine pages of greater interest, such as heuristics for time spent browsing, or even by providing an active means for users 90 to register particular pages of interest to them if they so desire. As a corpus of web pages consumed by a user or group 90 grows, document- correlative terms can be extracted, for example using the TF-IDF metric — see, e.g., Salton et al., Introduction to Modern Information Retrieval (McGraw-Hill, New York, 1983). Once document- correlative terms are known, their mutual information can be computed (this is essentially a measure of how often terms occur together relative to how often they occur in general). Alternatively, an attribute-map can be computed for the terms regarded as binary attributes (present/not-present) (attribute-maps can be shown to be a refinement of the concept of mutual information). The end result of this process is that related terms are inferred which occur naturally in the corpus of a user or group 90, and term relations are a form of ontological information. For example, the process described above can determine that for a particular user, the term "bonds" is related to the terms "company", "buy", "business", "bank", "dow", "earning", "share", and "market". Now, when information is sought pertaining to "bonds", a search-engine query can be enhanced, or search results filtered, based on the known related terms. More specifically, in the preferred embodiment each web document retrieved by an individual or member of a group 90 is parsed by a personal agent 150 and stored in an inverted index kept in the common agent environment 170. As documents accumulate, universal agents 160 extract document-correlative terms and compute mutual information (or an attribute-map), thus incrementally creating term-relation information which is also stored in the common agent environment 170. When an individual or member of a group 90 accesses some queriable source of information on the web such as a search engine, a personal agent 150 inspects the outbound query for terms with known relations (based on the accumulated ontological information stored in the Common Agent Environment 170), and augments the query with related terms using Boolean and/or proximity operators. This inspection and augmentation process must obviously be enabled in a custom fashion per each source of web information, given that their query syntaxes and request formats are varied. A simple conjunctive enhancement of the query "bonds" using the term relations given above can improve the results of a search on a typical search engine on "bonds" from the top hits: - Do You Know Where Your Kids Are? " A fact : The Colorado teen killers were not genetically pre-programmed to hate, murder their classmates . That stuff is . . . - Amwest Insurance Group underwrites surety bonds and property & casualty insurance through its subsidiaries, Amwest Surety Insurance Company, ... - Home I Catalog | Auctions | The hobby | Links | AboutUs | Invest. Scripophily. The hobby of collecting stocks & bonds Online Catalog Specials Current... ~ Information on bonds and the bond market... - Chemical Bonds, Molecular Shapes, and Molecular Models. Description. This hypermedia-based tutorial - BONDs WORLD - The Ultimate Resource For all James Bond... - Discount Commissions, Personal Service on Stocks and Bonds, Personal Service, plus web pages for new and experienced... - Bonds Couriers, Couriers Sydney Australia, Sydney's Finest Courier Company, A Division of Bonds - Municipal bonds, corporate bonds, mutual funds, annuities, government securities, and 401K - American Directory of chemistry resources including commercial, academic, computers in chemistry, web chemistry, recruitment resources, software... o the rather more relevant: - Mutual Fund Investing on the Internet ] | [ MFII's FUNDLINKS ] | [ Contact indexfund.com ] Index Fund Investing 's Investing Basics. Note: Much of the... - Technical and fundamental analysis of gold mining as a sector group for... - SURVIVING ON YOUR STIPEND (and other things to know about grad finances) By JP BAIRD (entering class of 1992) (revised for public consumption and... - Services We Provide. Free Info From Fed. ABCs, Nuts and Bolts. Our Favorite Links. Suggested Reading. THE ABC's OF INVESTING. Ask - Price at which a... - Environmental News from Georgia Strait (British Columbia, Canada) and the... - Mutual Fund Glossary. A - D. E - H. I - L. M - P. Q - Z. A - D. American Depository Receipt. Asset. Asset Allocation. Asset Class. Average Maturity. Basis. - WestPan Futures Inc. Check out our newest CTA * * * * * Ansbacher Investment Management (AIM) * * * * * one of the best risk/reward ratios in the industry******... - ADR - American Depositary Receipt - a security issued by a U.S. bank in place of the foreign shares held in trust by that bank, thereby... - Exchange Rules and Regulations . PASSWORD CLASSROOM CARIBBEAN COMMODITY TRADING These superior results are obtainable using techniques for producing ontological information (TF-IDF and mutual information), whereas even more sophisticated results are possible by the application of more powerful techniques such as the extraction of concepts via content-bearing phrases using statistical, syntactic, or heuristic means, and ontological modeling via class hierarchies or attribute-maps. All such related approaches are enabled by the unique power of the network position enjoyed by the intelligently augmentable proxy system according to the preferred embodiment of the present invention. The services described in the embodiment above may be used to implement other applications such as the following: Associative browsing history and reminder ~ the entire history of a user's browsing can be maintained for them (if desired), with all acquired resources (i.e., pages, documents, product descriptions) being conceptually indexed. Conceptual indexing means indexing documents based on content-bearing phrases, rather than on words. The basic idea is to find the important concepts in the document if possible. There are a variety of approaches to this, from natural language parsing for identification of noun-phrases to heuristics which take advantage of layout semantics such as HTML formatting, to various statistical techniques. During browsing, new resources which are encountered are compared with the browsing history. Previously-acquired resources which are related to the current one are made easily available for comparison according to the conceptual indexing and retrieval technique being used. Guided browsing look-ahead by modifying links — links on pages which have been previously acquired by a group, or on pages from sources which may otherwise be of interest to a user, can be followed by universal, i.e., autonomous, agents 160 by extracting the URL of the link and reading the associated web document from the server at which it resides. The documents found are evaluated for significance according to the conceptual indexing and retrieval scheme. When the page containing the links is acquired by a user 90, the links are altered to highlight or emphasize those leading to more significant resources. Automatic reference annotation by adding links — terms and concepts of interest to a user 90 or group, when appearing in web resources being acquired, are altered to become links to reference sources. The same could be done for obscure vocabulary which may need defining. The term or vocabulary knowledge of a particular user could be learned based on which annotations they use, and resource enhancement adjusted accordingly. Group commentary — a user 90 within a group (such as a company) creates commentary for a resource they have found, which may appear anywhere on the web. When another user within the group retrieves the same resource, the commentary is provided automatically along with it (optionally, of course). An index of commented resources is available to users 90, arranged by group. Web-pages as chat rooms ~ every page on the web can become a chat room, allowing users viewing that page at any given time to talk with others who are there simultaneously. Common browsing patterns ~ web resources which are accessed in a regular pattern by a given user 90, such as daily scanning of news sources, can be enhanced with off-line loading and conceptual indexing. Correlated resources ~ resources on certain sites may be accessed in a correlated fashion by members of a group. This fact can be used during the browsing activity to pre-load resources which are likely to be accessed next, given recent accesses. Translation — the system could provide "Babelfish" functionality, translating web- pages on the fly. The present invention has been described above in connection with a preferred embodiment thereof; however, this has been done for purposes of illustration only, and the invention is not so limited. Indeed, variations of the invention will be readily apparent to those skilled in the art and also fall within the scope of the invention.

Claims: WHAT IS CLAIMED IS: 1. A web proxy comprising: receiving means for receiving a web query from a user; modifying means for modifying the query, based on characteristics of previous transactions of the user; and sending means for sending the modified query to a communications network. 2. The proxy of claim 1 , wherein: the receiving means and sending means are a proxy layer; the modifying means is a request agency; and the proxy further comprises support means for receiving the web query from the proxy layer, supplying the query to the request agency, and controlling the request agency to modify the query. 3. The proxy of claim 1, wherein: the modifying means is a request agency; and the request agency includes a plurality of personal agents, each being for receiving a version of the web query and processing it. 4. The proxy of claim 3 wherein at least one of the plurality of personal agents is for analyzing the web query and generating characteristics thereof for subsequent use by the modifying means. 5. The proxy of claim 3 wherein at least one of the plurality of personal agents is for modifying the web query based on the characteristics of previous transactions by the user. 6. The proxy of claim 5 wherein the at least one agent is for framing results of a user's web query with controls having functionality determined by the characteristics of previous user transactions. 7. The proxy of claim 3 wherein at least one of the plurality of personal agents is for modifying the web query based on the characteristics of previous web transactions by the user. 8. The proxy of claim 7 wherein at least one agent is for appending information characteristic of one of information on a session during which the query was generated, an identity of a user making the query, a group identity of the user making the query and an identity of a frame in which the query was made. 9. The proxy of claim 3 wherein the request agency controls the plurality of personal agents by at least one of directing web queries to a personal agent, feeding a web query from one personal agent to another and conditionally feeding a web query from one personal agent to another. 10. The proxy of claim 3 wherein the request agency controls the plurality of personal agents by accessing a common environment to determine an initial personal agent to which to send the web query. 11. The proxy of claim 1 , further comprising a user agent for querying the communications network and processing responses thereto for subsequent use by the personal agents. 12. The proxy of claim 1, further comprising: response receiving means for receiving a response to a web query sent by the sending means from the communications network; modifying means for modifying the response based on characteristics of previous transactions of the user; and response sending means for sending the modified response to the user. 13. The proxy of claim 12, wherein the modifying means comprises means for providing user access to suplemental web information. 14. The proxy of claim 13, wherein the means for providing user access is a hyperlink included in the response. 15. The proxy of claim 13, wherein the supplemental web information includes web usage statistics. 16. The proxy of claim 13, wherein the supplemental web information includes discussion with other users viewing a particular web page. 17. The proxy of claim 13, wherein the supplemental web information includes a history of the user's web viewing. 18. A web proxy comprising: receiving means for receiving a response to a web query from a communications network; modifying means for modifying the response based on characteristics of previous transactions of a user responsible for a query associated with the response; and sending means for sending the modified response to the user. 19. The proxy of claim 18, wherein: the receiving means and sending means are a proxy layer; the modifying means is a request agency; and the proxy further comprises support means for receiving the response from the proxy layer, supplying the response to the request agency, and controlling the request agency to modify the response. 20. The proxy of claim 18, wherein: the modifying means is a request agency; and the request agency includes a plurality of personal agents, each being for receiving a version of the response and processing it. 21. The proxy of claim 20 wherein at least one of the plurality of personal agents is for analyzing the response and generating characteristics thereof for subsequent use by the modifying means. 22. The proxy of claim 20 wherein at least one of the plurality of personal agents is for modifying the response based on the characteristics of previous transactions by the user. 23. The proxy of claim 22 wherein the at least one agent is for framing the response with controls having functionality determined by the characteristics of previous user transactions. 24. The proxy of claim 20 wherein at least one of the plurality of personal agents is for modifying the response based on the characteristics of previous transactions by the user. 25. The proxy of claim 24 wherein the at least one agent is for appending information characteristic of one of information on a session during which the response was generated, an identity of a user making the response, a group identity of the user making the response and an identity of a frame in which the response was made. 26. The proxy of claim 20 wherein the request agency controls the plurality of personal agents by at least one of directing a response to a personal agent, feeding a response from one personal agent to another and conditionally feeding a response from one personal agent to another. 27. The proxy of claim 20 wherein the request agency controls the plurality of personal agents by accessing a common environment to determine an initial personal agent to which to send the response. 28. The proxy of claim 18, further comprising a user agent for querying the communications network and processing responses thereto for subsequent use by the personal agents. 29. The proxy of claim 18, wherein the modifying means comprises means for providing user access to suplemental web information. 30. The proxy of claim 29, wherein the means for providing user access is a hyperlink included in the response. 31. The proxy of claim 29, wherein the supplemental web information includes web usage statistics. 32. The proxy of claim 29, wherein the supplemental web information includes discussion with other users viewing a particular web page. 33. The proxy of claim 29, wherein the supplemental web information includes a history of the user's web viewing.

Inventors: DOWNS HEATHER L, FITZWILSON ROBERT C, MAKARIOS SELENE K, DOWNS, HEATHER, L., FITZWILSON, ROBERT, C., MAKARIOS, SELENE, K.
Applicants: PORTOLA GROUP INC, THE PORTOLA GROUP, INC.
Application year: 2000
Main classification: H04L
IPC codes: G06F17, G06Q30, H04L29