WO2000038078A1 - Methods and systems for providing personalized services to users in a network environment - Google Patents

Methods and systems for providing personalized services to users in a network environment Download PDF

Info

Publication number
WO2000038078A1
WO2000038078A1 PCT/US1999/030580 US9930580W WO0038078A1 WO 2000038078 A1 WO2000038078 A1 WO 2000038078A1 US 9930580 W US9930580 W US 9930580W WO 0038078 A1 WO0038078 A1 WO 0038078A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
int
server
logic code
response
Prior art date
Application number
PCT/US1999/030580
Other languages
French (fr)
Other versions
WO2000038078A9 (en
Inventor
Jingjun Cao
Chien-Yi Chu
Original Assignee
Jj Mountain, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jj Mountain, Inc. filed Critical Jj Mountain, Inc.
Priority to AU23772/00A priority Critical patent/AU2377200A/en
Publication of WO2000038078A1 publication Critical patent/WO2000038078A1/en
Publication of WO2000038078A9 publication Critical patent/WO2000038078A9/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/252Processing of multiple end-users' preferences to derive collaborative data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Definitions

  • This invention relates to methods and systems for providing personalized services to users in a network environment.
  • 35 network also increases. Thus, it is desirable to provide users with personalized services and assistance to navigate and use information in the network.
  • Some existing systems on the Internet attempt to provide personalized services. For example, there are web sites on the Internet that allow a user to create a personal profile. In this type of systems, users are typically prompted to fill out a form. The form usually allows the user to specify personal information including preferences. Any entered information is .stored either locally or remotely. Typically, each time a user wants to access his personal profile, he needs to log-in to the server by typing in his usemame and/or password. Once within his profile, the user could obtain personalized services. Examples of this type of systems include "My Yahoo" at wwwNahoo.com. and "My Excite” at www.Excitc.com.
  • Another type of existing systems provides person ⁇ ized information to users after the users answer a series of questions. Answers provided by the users are used to prioritize and select the presentation of available information, which are maintained in server databases.
  • An example of this type of systems can be found at: www.personalogic.com.
  • a user first initiates the process by choosing an interested category. Next, the user is prompted to rank the importance of various characteristics in the interested category. Typically, the user ⁇ w s boxes identifying each characteristic as "less important,” “no opinion,” or “more important.” Based on the user's inputs, this system outputs a list of items in the interested category which should meet the user's overall preferences.
  • Yet another existing system attempts to personalize selections offered to a user by monitoring and compiling user information, such as the user's buying history or browsing habits. Using compiled information, this system can generate a list of recommended items. In some implementations, this type of systems can also take into 5 account statistics (i.e., age, gender, residence location, employment, etc.) gathered among different users. For example, this system may use demographic characteristics to deduce the type of items that would be of interest to a particular user. An example 0 of this type of systems can be found at: www.amazon.com.
  • One major drawback of this type of systems is that user information can only be used at the web site that monitors and compiles the information. In addition, although compilation of information is continuous while the user is visiting the web site, typically, compilation J activities cease when the user leaves the web site.
  • the user can query the animated figure and the animated
  • Another existing system provides so-called "screenmates" that appear on a user's computer screen and perform a limited number of multimedia tasks (e.g., animation or singing a song).
  • Example of this type of systems can be found at: www.messagcmates.com .and www.oska.com.
  • animated figures can be downloaded to perform animations and deliver preprogrammed messages from a server. The animated figures do not stay on the user's computer screen but disappear after they completed the animations and delivered the messages.
  • oska.com only one animated figure is downloadable. The oska animated figure does stay on the user's computer screen and randomly performs preprogrammed animations.
  • the screenmates at these web sites have limited capabilities and are not linked to a server to continuously improve their services to users. Furthermore, these screenmates usually have very limited or no customizable features.
  • Agent Sourcebook A Complete Guide to Desktop, Internet, and Intranet Agents, Colin Harrison and Alper Caglayan (1997); and U.S. Pat. Nos. 5,740,549; 5,890,152; 5,886,698; 5,864,343; 5,774,128; 5,724,567; and 5,263,167, the content of which is incorporated herein by reference.
  • This invention comprises methods, systems and software products for providing personalized services to users in a computer network environment.
  • personalized is used herein, this invention is not limited to personalizing services to individuals; this invention can also provide personalized services to groups, families, corporations, organizations, etc.
  • personalized is used interchangeably herein.
  • An exemplary method for providing personalized services to users in a computer network environment comprises the steps of collecting user information through at least one user interface, analyzing the collected user information, generating
  • the exemplary method also comprises the steps of sending the collected user information to a server for analysis, receiving a response from the server based on the server analysis, and
  • the processing step comprises saving the response in a local cache and implementing the response.
  • the processing step comprises ignoring at least a portion of the response.
  • the analyzing step comprises analyzing the
  • the at least one user interface is controlled by a software product executing on the user's computer.
  • ⁇ users comprises enhancing the user's connection at a web site.
  • the enhancing step comprises creating a separate window when the user visits the web site, the separate window enabling the user to communicate with other users visiting the web site.
  • the user can communicate with other users in real time.
  • providing at least one personalized service to users comprises creating a connection between a first user and a second user.
  • the creating step comprises the steps of (i) using at least one icon to carry a message from the first user to the second user; (ii) removing the message carrying icon from the first user's computer screen; (iii) generating a copy of the message carrying icon on the second user's computer screen; (iv) delivering the message to the second user; and (v) establishing a connection between the first user and the second 0 user.
  • the generating step in (iii) occurs substantially concurrently with the establishing step in (v).
  • the establishing step comprises connecting the first user and the second user through a server on the 5 network.
  • the establishing step comprises making a direct connection between the first user and the second user.
  • Another exemplary method for providing personalized services to users in a computer network environment comprises the steps of receiving user information " collected by a software product at a user computer, analyzing the collected user information, generating a response based on the analysis and enabling the software product to provide at least one personalized service to the user by sending the generated response to the software product.
  • the response 5 comprises logic rules, instructions, and/or executable programs.
  • user information is distributed among different computers for analysis.
  • both a software product on the user's Q computer and a server communicating with the software product perform the analysis.
  • Analysis performed includes analyzing the user's pattern of behavior.
  • analysis of user information and generation of rules based on the analysis are performed in a multi-layered manner.
  • the software product executes a high-level command received from the server by adjusting services provided to the user based on realtime interaction with the user.
  • Yet another exemplary method for providing personalized services to users in a computer network environment comprises the steps of collecting user information through at least one user interface, .sending the collected user information to a server for analysis, receiving a response based on the server analysis, and processing the received response to provide at least one personalized service to the user.
  • the processing step comprises saving the response in a local cache and implementing the response.
  • Another exemplary method for providing personalized services to users in a computer network environment comprises the steps of communicating with a user through at least one user interface and manipulating the at least one user interface.
  • the manipulating step comprises: (i) automatically initiating the manipulation, (ii) receiving, during the communication, user commands to manipulate the at least one user interface, and (iii) receiving directives from a server to manipulate the at least one user interface.
  • the manipulating step comprises enabling the at least one user interface to perform animation, enabling the at least one user interface to vary in size and/or enabling the at least one user interface to move from a first location to a second location on a display.
  • An exemplary computer readable medium for providing personalized services to users in a computer network environment comprises logic code for collecting user information through at least one user interface, logic code for analyzing the collected user information, logic code for generating at least one rule based on the analysis, and logic code for providing at least one personalized service to the user based on the generated at least one rule.
  • the computer readable medium also comprises logic code for sending the collected user information to at least one server for analysis, logic code for receiving a response from the at least one server based on the server analysis, and logic code for processing the received response.
  • logic code for providing at least one personalized service comprises logic code for providing entertainment to the user and prompting the user to input information.
  • user interfaces comprise visual characters.
  • the logic code for providing at least one personalized service to users comprises logic code for enhancing the user's connection at a web site.
  • the logic code for enhancing comprises creating a separate window when the user visits the a web site, the separate window enabling the user to communicate with other users visiting the web site.
  • the user communicates with other users in real time.
  • the logic code for providing at least one personalized service to users comprises logic code for creating a connection between a first user and a second user.
  • the logic code for creating comprises
  • logic code for using at least one icon to carry a message from the first user to the second user comprises (i) logic code for removing the message carrying icon from the first user's computer screen; (iii) logic code for generating a copy of the message carrying icon on the second user's computer screen; (iv) logic code for delivering the message to the second user; and (v) logic code for establishing a connection between the first user and the second user.
  • the logic code for generating in (iii) executes substantially concurrently with the logic code for establishing in (v).
  • the logic code for establishing comprises logic code for connecting the first user and the second user through a server on the network.
  • the logic code for establishing comprises logic code for making a direct connection between the first user and the second user.
  • Another exemplary computer readable medium for providing personalized services to users in a computer network environment comprises logic code for receiving user information collected by a software product at a user computer, logic code for analyzing the collected user information, logic code for generating a response based on the analysis, and logic code for enabling the software product to provide at least one personalized service to the user by sending the generated response to the software product.
  • the response comprises logic rules, instructions, and/or executable programs.
  • Another exemplary computer readable medium for providing personalized services to users in a computer network environment comprises logic code for logic code for collecting user information through at least one user interface, logic code for sending the collected user information to a server for analysis, logic code for receiving a response based on the server analysis, and logic code for processing the received response to provide at least one personalized service to the user.
  • Yet another exemplary computer readable medium for providing personalized services to users in a computer network environment comprises at least one user interface and a software product including logic code for controlling the at least one user interface.
  • the logic code for controlling comprises: (a) logic code for automatically manipulating the at least one user interface, (b) logic code for enabling a user to manipulate the at least one user interface, and (c) logic code for receiving directives from a server for manipulating the at least one user interface.
  • the logic code for controlling comprises logic code for enabling the at least one user interface to perform animation, logic code for enabling the at least one user interface to vary in size, and/or logic code for enabling the at least one user interface to move from a first location to a second location on a display.
  • An exemplary system for providing personalized services to users in a computer network environment comprises means for collecting user information through at least one user interface, means for analyzing the collected user information, means for generating at least one rule based on the analysis, and means for providing personalized services to the user based on the generated at least one rule.
  • the system also includes means for sending the collected user information to at least one server for analysis, means for receiving a response from the at least one server based on the server analysis, and means for processing the received response.
  • FIGURE 1 schematically illustrates an exemplary system in accordance with an embodiment of the present invention.
  • FIGURE 2 schematically illustrates an exemplary server used in a system in accordance with an embodiment of the present invention.
  • FIGURE 3A schematically illustrates an exemplary client in accordance with an embodiment of the present invention.
  • FIGURE 3B schematically illustrates a portion of an agent program in accordr ⁇ ce with an exemplary embodiment of the present invention.
  • FIGURE 4 is a process flow chart in accordance with an exemplary embodiment of the present invention.
  • FIGURE 5 is a process flow chart in accordance with another exemplary embodiment of present invention.
  • FIGURE 6 is a process flow chart in accordance with another exemplary embodiment of present invention.
  • FIGURE 7 is a process flow chart in accordance with another exemplary
  • Figure 1 schematically illustrates a distributed system 100 in accordance with
  • the system 100 includes a communications network 102, a server 104, a client 106, other servers 108, other clients 110 and other networks 112.
  • the client 106 includes an agent program 114 which is capable of communicating with the server 104 directly or through the network
  • the communications network 102 is the Internet. Users at
  • client computers i.e., client 106
  • servers i.e., server 104
  • a client computer may be connected to a server computer through an analog modem over a telephone line, a digital subscription line, a cable modem, a dedicated data copper wire connection, .an optic fibre connection, a wireless connection, a satellite connection, etc.
  • a packet switching network implementing TCP/IP protocols is preferred.
  • the methods, systems and software products of this invention can be implemented in a wireless network using wireless connection and wireless protocols.
  • FIG. 35 Figure 2 schematically illustrates an exemplary embodiment of the server 104.
  • the server 104 includes CPUs 202, a communication interface 204 for connecting to the network 102 (Fig. 1), and memory 206.
  • the memory 206 includes an operating system 208, server applications 210, communications applications 212, an objects database 214, an agent database 216, a user database 218, a user information analyzer 220, a statistics analyzer 222, a collaborative filter 224, a response generator 226, a logic rules database 228 an instructions database 230, a programs database 232, an advertisement database 234, and a recommendations database 236.
  • the server 104 performs server operations by using the server applications 210 and communicates with other systems on the network 102 by using the communication applications 212 through the cornmunicarion interface 204.
  • the server stores objects downloadable by clients through the network 102. These objects typically have at least one user interface with the users.
  • the server stores downloadable agent programs that maintain any downloaded objects and provide communication with the server 104.
  • a corresponding agent program is also downloaded simultaneously.
  • Each object is maintained by an associated agent program.
  • each agent program is, preferably, capable of maintaining multiple objects. Thus, if an agent program is able to maintain all of the download objects, only one copy of the agent program should be downloaded.
  • a downloaded agent program collects user information through at least one object, analyzes the collected user information, and implements any rules generated as a result of the analysis to provide better, more personalized, services to the user.
  • the agent program transfers at least a portion of the collected user information to the server 104 to be analyzed, receives any responses from the server 104 based on the server's analysis, and processes the received responses to provide more person ized services to the user.
  • the server 104 when the server 104 receives user information from an agent program, the server 104 stores the user information in the user database 218.
  • the server 104 analyzes the received user information using various tools including the user information analyzer 220, the statistics analyzer 222 and the collaborative filter 224.
  • the statistics analyzer 222 compares the user information to statistics gathered from other users to deduce personalized services which might interest the user.
  • the collaborative filter 224 can be used to synthesize common patterns Eind behaviors.
  • the collaborative filter may be a licensed software incorporated into the server 104. Based on the analysis, the server 104 may generate a response using the response generator 226.
  • the response generator 226 may generate the response by accessing the logic rules database 228, the instructions database 230, the programs database 232, the advertisement database 234 and/or the recommendations database.
  • the server 104 may send a response, which includes one or a combination of logic rules, instructions, executable programs, advertisements, and recommendations. For example, a list of web sites that might interest the user 106 can be retrieved from the recommendations database 236 and sent to the agent 316 to be presented to the user at client 106.
  • a person of skill in the art would recognize that the tasks described above can be performed by one server computer or by multiple server computers.
  • FIG. 3 A schematically illustrates an embodiment of the client 106 (as shown in Fig. 1).
  • Client 106 includes a CPU 302, a display device 304, an input device 306, a communication interface 308 and memory 310.
  • the memory 310 includes an operating system 312, a browser program 314 and an agent program ("agent") 316.
  • the client 106 communicates with other systems on the network 102 (see Fig. 1) through the communication interface 308.
  • the client can use the browser program 314 to more efficiently navigate across the network 102.
  • a client may be a personal computer, a workstation, a multiprocessor server, an intelligent appliance, a webTV, a handheld computer device, a cellular phone, or others.
  • the client is a cellular phone with an embedded system.
  • the cellular phone is capable of establishing a wireless Internet connection with a server.
  • the agent 316 is a softw ⁇ e program downloaded from the server 104 trtrough the network 102 (see Fig. 1). However, the agent 316 may also be pre-installed on a user computer.
  • the agent 316 includes an objects database 318, communication applications 324, a personality database 326, a logic rules database 328, a multimedia database 330, an instructions database 332, a user configuration preference file 334, a user profile database 336, a data analyzer 338, a brain object 340, an object controller 342, and a web browser connector (WBC) object 344.
  • the objects database 318 includes user interfaces 322.
  • the user interfaces include at least one visual interface 322A, at least one audio interface 322B, and at least one multimedia interface 322C.
  • the agent 316 maintains and controls any object in the objects database 318 by supplying each object with personality from the personality database 326, logic rules from the logic rules database 328, multimedia from the multimedia database 330, and instructions from the instructions database 332. Any user configuration preference is saved in the user configuration preference file 334. User information collected by the agent 316 is saved in a user profile database 336. In an exemplary embodiment, the agent 316 uses the data analyzer 338 to ar lyze any collected user information. In an exemplary embodiment, the user interfaces 322 as appeared on the user's display device 304 can be manipulated.
  • manipulation examples include performing animation, reducing in size, increasing in size, or moving from one location to another location on the user's display device 304.
  • the user interfaces 322 can be manipulated by one or more of the following: (1) the agent 316 may include internal logic code to automatically manipulate the user interfaces 322; (2) the agent 316 may implement user commands to manipulate the user interfaces 322; and (3) the agent 316 may receive directives (e.g., instructions, logic rules, executable programs, etc.) from the server 104 to manipulate the user interfaces 322.
  • directives e.g., instructions, logic rules, executable programs, etc.
  • the WBC object 344 provides the communication channel between the agent 16 and the browser program 314 on the client computer.
  • the WBC object 344 is created using Microsoft's Dynamic Data Exchange (DDE) standard.
  • the WBC object 344 is created using Microsoft's Component Object Model (COM) standard.
  • DDE Dynamic Data Exchange
  • COM Microsoft's Component Object Model
  • the agent 316 can communicate to the server 104 through the browser 314 using the WBC object 344 to coordinate the communication with the browser 314.
  • the agent 316 communicates with the server 104 through the network 102 using the communication applications 322.
  • the agent 316 can send any collected user information to the server 104 for analysis. If any user information is sent to the server 104, typically, the server 104 would send back a response which can include logic rules, instructions and/or programs, depending on the server's analysis of the user information.
  • the agent 316 receives the server response, the agent 316 processes the response by using the brain object 340.
  • the object controller 342 implements any brain object 340 process results.
  • the brain object 340 and object controller 342 are created using C++ language. These objects can also be created using other suitable computer languages.
  • Figure 3B schematically illustrates an exemplary embodiment of the relationship between a portion of the agent 316 and objects 350-354 retrieved from the objects database 318 and presented to the users through the user interfaces 322.
  • the agent 316 controls the objects 350, 352 and 354.
  • the agent 316 includes communication applications 324, brain object 340 and object controller 342.
  • user interfaces 322 include visual, audio and multimedia interfaces.
  • the agent 316 collects user information through the objects 350-354. In one embodiment, at least a portion of the collected user information is analyzed by the brain object 340. In another embodiment, a portion or all of the user information is sent to the server 104 to be analyzed.
  • the brain object 340 may generate or retrieve from databases a set of rules or instructions based on its analysis.
  • the brain object 340 implements the generated or retrieved set of rules and/or instructions on the objects 350-354 through the object controller 342.
  • the brain object 340 may instruct the communication applications 324 to send the collected user information to the server 104 through the network 102 (Fig. 1).
  • the communications application 324 may receive responses from the server 104, which could contain instructions, logic rules and/or executable programs.
  • the server response is sent to the brain object 340 through the object controller 342 for processing.
  • the brain object 340 processes the server response to reduce it to executable instructions and rules.
  • the brain object 340 sends the executable instructions and rules back to the object controller 342, which administers the --,-,-, paragraph
  • the brain object 340 stores any generated or received instructions and rules in appropriate databases (see Fig.3 A).
  • An example of the source code for the communication applications 324, the brain object 340, and the object controller 342 in C++ language is included in Appendix A.
  • Figure 4 is a process flow chart illustrating an exemplary process of the present invention.
  • a user downloads at least one object and an agent program through a client computer from a server.
  • the server can be the exemplary server 104 or any other servers on the network 102.
  • the agent program can be the exemplary agent 316 or other downloadable agent programs.
  • the object(s) downloaded is controlled by the agent program.
  • the agent program (“agent") communicates with the user through at least one user interface of the object(s) (block 402). During communication, the agent collects user information (block 404). For example, the user may be prompted by the object's visual interface on the computer screen to answer a specific question.
  • any input from the user is collected by the agent and saved in a user profile database (block 404A).
  • the agent analyzes the collected user information (block 406). Based on the analysis, the agent generates rules and/or instructions (block 408). The agent implements the generated rules and/or instructions on the object(s) to provide the user with improved personalized services (block 410). For example, if during the analysis, the agent learns that the user is interested in going to a specific amusement park, the agent may instruct the object(s) (through its visual, audio or multimedia interfaces) to provide vacation packages or other information regarding that amusement park.
  • FIG. 5 is a process flow chart illustrating an exemplary process of the present invention.
  • a user downloads at least one object and an agent through a client computer from a server.
  • the downloaded object(s) is controlled by the downloaded agent.
  • the agent can be the exemplary agent 316 or any other downloadable agents.
  • the agent communicates with the user through at least one user interface (visual, audio or multimedia interfaces) of the object(s) (block 502).
  • the agent collects user information (block 504).
  • any input from the user is collected by the agent and stored in a user profile database (block 504A).
  • the agent then substantially concurrently analyzes the collected user information (block 506) and sends the collected user information to a server, such as the exemplary server 104, for analysis (block 510).
  • the agent generates a set of rules and instructions based on its own analysis (block 508) and receives a response from the server based on the server's analysis (block 512).
  • the agent first implements the generated rules and/or instructions and then the server response to personalize services to the user.
  • the agent first implements the server response then the rules and instructions generated based on its own analysis.
  • the implementation sequences can be programmed by the server or service provider.
  • Figure 6 is a process flow chart illustrating an exemplary process of the present invention. A user downloads at least one object and an agent through a client computer from a server.
  • the server can be the exemplary server 104 or any other servers on the network 102.
  • the agent program can be the exemplary agent 316 or other downloadable agent programs.
  • the downloaded object(s) is controlled by the downloaded agent.
  • the agent communicates with the user through at least one user interface (visual, audio or multimedia interfaces) of the object(s) (block 602).
  • the agent collects user information (block 604).
  • Input from the user is collected by the agent and stored in a user profile database (block 604A).
  • the agent sends the collected user information to a server for analysis (block 606).
  • the agent receives a response from the server based on the server's analysis of the user information (block 608).
  • the agent processes and implements the response to personalize services provided to the user (block 610).
  • FIG. 7 is a process flow cr rt illustrating an exemplary process in accordance with another embodiment of die present invention.
  • a server receives user information from an agent, which was downloaded to the user's computer (block 702).
  • the server analyzes the received user information (block 704).
  • the server saves the received user information in a user database (block 704A).
  • the server Based on the analysis, the server generates a response which may include instructions, logic rules and/or executable programs (block 706).
  • the server sends the generated response to the agent 316 to be processed and implemented by the agent to personalize services provided to the user (block 708).
  • an object's user interface may appear to a user as an animated figure having multimedia capabilities. From the user's point of view, the user is getting a desktop companion, who is capable of realtime interaction and becomes more "intelligent" as it learns more about the user.
  • the animated figure may automatically appear on the user's computer screen each time the user starts the computer. While the user's computer is running, the animated figure remains on the desktop and can be commanded to sit at a comer, to roam around the screen, or to disappear.
  • the animated figure is maintained and controlled by an agent program. In one embodiment, as the animated figure collects user information (i.e., by prompting the user to answer questions), the collected user information is processed by the agent program at the user computer.
  • a portion or all of the collected user information can be sent to a server to be analyzed.
  • the information is used to improve personalized services to the user so that, in some embodiments, the animated figure appears to have gained "intelligence" over time.
  • the agent may enable the animated figure to prompt the user with personal questions to find out more about the user's interests. For instance, the animated figure may say to the user, '1 like baseball, do you?" If the user answers "yes”, the agent will provide more information about baseball. Likewise, if the user answers "no", the agent will not bring up baseball again.
  • the animated figure appears to the user as having the capability of gradually improving its
  • each animated figure has its own pre-assigned personalities and an initial repertoire of multimedia capabilities (e.g., sing, dance, speak, etc.). As the animated figure learns
  • the behavior of the animated figure at that user's computer can be personalized to that user's taste.
  • Examples of presentations by animated figures to users are included in Appendix B. 0
  • the animated figure may communicate with the user through audio, video, animation, or other multimedia interfaces. The user can control the animated figure by using voice commands or from a menu selection.
  • an agent program associated with the object is downloaded to the user computer. If the user already has an agent program that is capable of controlling the selected object, then the agent program associated with the selected object is not downloaded. However, a user's computer may have multiple agent programs. For 0 example, if the selected object requires a different agent program to maintain it, that agent program should be downloaded with the selected object even if the user already lias another agent program on his computer.
  • Visual interfaces of the objects are not limited to animated figures.
  • Visual interfaces may come in a variety of images, such as animals, fantasy cartoon figures, or other suitable images.
  • the images can also be custom created by each user.
  • a suitable pre-determined personality should be assigned depending on the image.
  • Embodiments of this invention provide a wide range of personalized services.
  • Examples of the types of personalized services include: entertainment related, communication related, electronic commerce related, education related services, and others.
  • entertainment related services include periodic delivery of games to a user who enjoys trying new games.
  • the objects may execute simple programs, such as singing a song, dancing a routine, telling a riddle or a story to the user.
  • An example of communication related services is carrying a user's bookmark from one computer on the network to another computer on the network.
  • Another example of communication related services is creating a separate window at a third party web site, which enables several users to communicate with each other real time.
  • a separate window created at the third party web site may enable each user visiting the web site to post comments about the web site.
  • each user having an agent program will be able to see the separate window when the user visits the third party web site.
  • Other communication related services include enhancing the connection between users on the network, such .as improving speed and reliability.
  • the connection between users on the network may allow realtime exchange of multimedia contents.
  • Another example of communication related services is establishing a connection between two users.
  • a first user sends a message to a second user on the network.
  • the agent receives the message from the first user through the object(s).
  • the agent removes a message carrying icon from the first user's computer screen and generates a copy of the removed icon on the second user's computer screen.
  • the agent delivers the message to the second user and establishes a connection between the first user and the second user.
  • the message transferred between users can include textual,
  • the agent can use the collected user information to automatically conduct an efficient search on the Internet using existing search engines. Because the agent has collected user information, it is able to conduct
  • the agent can create a separate window which the user can use as a note pad. For example, if a user is researching a certain subject matter on 20 the Internet, he is likely to move from web site to web site. At each web site, the user may wish to take notes in the created separate window. The notes written by the user can be collected by the agent and analyzed (by the agent and or a server) to further improve services provided to the user.
  • J An example of electronic commerce related services is providing a visual interface, which introduces the latest fashion to a user.
  • Businesses in the fashion industry may be interested in providing a desktop model, which maintains communication with the business's server .and continually changes clothing style to 0 promote the business's products.
  • the agent can continuously learn about the user's taste in fashion and personalize the presentation of the business's products.
  • This embodiment is, of course, not limited to only the fashion industry. Other businesses can also implement this embodiment to promote and sell their 5 products.
  • the agent through a user interface, can present product advertisement that might be of interest to a user and can direct the user to a commercial web site.
  • the agent provides a user interface to assist a user's educational needs.
  • the agent communicates with a server that maintains and updates educational subject matters (e.g., math problems and solutions).
  • educational subject matters e.g., math problems and solutions.
  • the agent can provide more services in that area.
  • the agent is part of a proprietary software program, the agent can provide personalized interactive technical support to a user, retrieve specific information for the user from a server, and automatically upgrades the program for the user.
  • the methods, systems and software products of this invention can be created in a C++ programming environment and implemented on a Windows 95/98/NT platform. Such programs can be automatically upgraded from time to time.
  • the methods, systems and software products of this invention can also be created using other programming environments, including: C, Java, Perl, Basic Fortran, COBOL, or other suitable computer languages. In a preferred embodiment, object-oriented programming languages are used.
  • software programs in accordance with embodiments of this invention are stored in a computer readable medium, such as a computer hard-drive, a CD-ROM, a magnetic tape, a flash memory, or other computer readable media.
  • the agent program should operate without consuming too much memory and CPU time on the user's computer. Coordinating with and transferring some tasks to the server prevent the agent program from overwhelming the user's resources.
  • the server is not limited to one computer, it may include as many cooperating servers as needed.
  • the servers can also be custom- designed and controlled by proprietary service providers. Task division among many servers provides more flexible server extensibility and scalability, among other benefits.
  • the server can be implemented on a Unix platform and may use a variety of tools, such as C++ and Perl languages, open-source Apache webserver, and relational database (e.g., free MSQL and Oracle).
  • the methods, systems and software products in accordance with the present invention should preferably be implemented using multi-threaded technology. Multi-threaded technology allows different programs to be executed independently of each other during a given time period.
  • the methods, systems and software products of this invention can be implemented in any network environment, and are preferably implemented in a distributed network environment (e.g., the internet).
  • the methods, systems and software products of this invention can be implemented in a wireless network environment (e.g., cellular technologies, handheld device technologies, etc.).
  • Wireless network environment may require computer programs in accordance with embodiments of this invention to be written in programming languages suitable for wireless platforms.
  • the methods, systems and software products in accordance with various embodiments of this invention provide m.any adv.antages for both users and service providers (servers). Users can obtain personalized services in a user friendly and intuitive environment. Service providers can efficiently provide personalized services without spending on excessive advertisement. For example, businesses may adopt the methods, systems and software products to more effectively sell their products. In addition, service-based businesses may profit from the various embodiments of this invention. For example, customized animated figures and their associated agent programs can be created according to embodiments of this invention and sold to target organizations or web sites. Service-based businesses then can profit by maintaining servers which provide continuous improvements to the agent programs and animated figures.
  • the methods, systems and software products in accordance with various embodiments of this invention overcome many disadvantages in existing systems.
  • Various embodiments of this invention dyn. mically improves personalized services provided to users.
  • the present methods, systems and software products with the user's permission, collect user information in a user friendly, intuitive, and continuously improved manner.
  • users always have the option to deny information collection.

Abstract

Methods, systems and software products for providing personalized services to users in a computer network environment comprise collecting user information through at least one user interface (504), analyzing the collected user information (506), generating at least one rule based on the analysis (508), and providing at least one personalized service to the user based on the generated at least one rule (514). In another exemplary embodiment, the methods, systems and software products also comprise sending the collected user information to a server for analysis (504 and 510), receiving a response from the server based on the server analysis (512), and processing the received response (514). In one embodiment, processing comprises (i) saving the response in a local cache, and (ii) implementing the response.

Description

METHODS AND SYSTEMS FOR PROVIDING PERSONALIZED SERVICES TO USERS IN A NETWORK ENVIRONMENT
5 This application claims priority of the provisional patent application entitled "A Distributed Intelligent Agent System", Serial Number 60/113,094, filed December 21, 1998, which is incorporated herein by reference for all purposes.
10 COPYRIGHT NOTICE: Portions of this application are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights
15 whatsoever.
Field of the Invention -,π This invention relates to methods and systems for providing personalized services to users in a network environment.
Background of the Invention 25 In a network, multiple computers, including server computers ("servers") and client computers ("clients"), are connected to each other. Servers on a network typically provide services which are requested by clients. Services provided by servers include transferring useful information (i.e., reference material), entertainment,
30 downloadable software programs, and more. In a wide area network, such as the Internet, users at client computers often need to spend a large amount of time searching for desired services. As the amount of information available on a network such .as the Internet continues to incr&ase, the users' s burden to efficiently use the
35 network also increases. Thus, it is desirable to provide users with personalized services and assistance to navigate and use information in the network.
Some existing systems on the Internet attempt to provide personalized services. For example, there are web sites on the Internet that allow a user to create a personal profile. In this type of systems, users are typically prompted to fill out a form. The form usually allows the user to specify personal information including preferences. Any entered information is .stored either locally or remotely. Typically, each time a user wants to access his personal profile, he needs to log-in to the server by typing in his usemame and/or password. Once within his profile, the user could obtain personalized services. Examples of this type of systems include "My Yahoo" at wwwNahoo.com. and "My Excite" at www.Excitc.com.
There are many disadvantages in this type of systems. For example, user information is not automatically collected and there is virtually no update of the information unless the user initiates by editing his profile. Another disadvantage is that the user information is generally only usable at the web site where the user filled out the form. In addition, a form crø only contain a limited number of questions and space for answers; thus, some personal information is necessarily not collectible.
Another type of existing systems provides person^ized information to users after the users answer a series of questions. Answers provided by the users are used to prioritize and select the presentation of available information, which are maintained in server databases. An example of this type of systems can be found at: www.personalogic.com. In this system, a user first initiates the process by choosing an interested category. Next, the user is prompted to rank the importance of various characteristics in the interested category. Typically, the user πw s boxes identifying each characteristic as "less important," "no opinion," or "more important." Based on the user's inputs, this system outputs a list of items in the interested category which should meet the user's overall preferences.
One problem with this system is that the user has to actively initiate and participate in the preference deduction process, which can be a time consuming task. Another problem with this system is that information entered into one web site is not usable at another web site. In addition, this system is static, namely, the answer to one question does not affect the presentation of other questions. 0
Yet another existing system attempts to personalize selections offered to a user by monitoring and compiling user information, such as the user's buying history or browsing habits. Using compiled information, this system can generate a list of recommended items. In some implementations, this type of systems can also take into 5 account statistics (i.e., age, gender, residence location, employment, etc.) gathered among different users. For example, this system may use demographic characteristics to deduce the type of items that would be of interest to a particular user. An example 0 of this type of systems can be found at: www.amazon.com. One major drawback of this type of systems is that user information can only be used at the web site that monitors and compiles the information. In addition, although compilation of information is continuous while the user is visiting the web site, typically, compilation J activities cease when the user leaves the web site.
Other existing systems attempt to provide more user-friendly services. For example, some proprietary software developers have included animated figures in their software packages to provide a more user friendly technical support environment. For 0 instance, instead of using a traditional window-styled help menu, some software products include an animated figure that helps users to find appropriate help texts.
When a user needs help, the user can query the animated figure and the animated
. figure can retrieve help text that should answer the user' s query . Examples of this type of systems .are Microsoft Word's animated figures "Bob" and "the Pin." One major drawback of this type of systems is that services provided are static and do not improve over time. Furthermore, services provided by this type of systems are generic and not personalized to each user.
Another existing system provides so-called "screenmates" that appear on a user's computer screen and perform a limited number of multimedia tasks (e.g., animation or singing a song). Example of this type of systems can be found at: www.messagcmates.com .and www.oska.com. At messagemate.com, animated figures can be downloaded to perform animations and deliver preprogrammed messages from a server. The animated figures do not stay on the user's computer screen but disappear after they completed the animations and delivered the messages. At oska.com, only one animated figure is downloadable. The oska animated figure does stay on the user's computer screen and randomly performs preprogrammed animations. The screenmates at these web sites have limited capabilities and are not linked to a server to continuously improve their services to users. Furthermore, these screenmates usually have very limited or no customizable features.
Additional prior art which provides relevant background information in the context of this invention can be found, for example, in Agent Sourcebook: A Complete Guide to Desktop, Internet, and Intranet Agents, Colin Harrison and Alper Caglayan (1997); and U.S. Pat. Nos. 5,740,549; 5,890,152; 5,886,698; 5,864,343; 5,774,128; 5,724,567; and 5,263,167, the content of which is incorporated herein by reference.
Thus, it is desirable to provide methods, systems, and software products that leverage the resources of the network (including resources on server computers and client computers) and emphasize intuitive interface .and humanized interactions with end users to continuously improve and adapt to end user's preferences, behavior and habits. Summary of the Invention This invention comprises methods, systems and software products for providing personalized services to users in a computer network environment. Although the word "personalized" is used herein, this invention is not limited to personalizing services to individuals; this invention can also provide personalized services to groups, families, corporations, organizations, etc. Furthermore, "personalize", "customize", and other similar words are used interchangeably herein.
10
An exemplary method for providing personalized services to users in a computer network environment comprises the steps of collecting user information through at least one user interface, analyzing the collected user information, generating
,r at least one rule based on the analysis, and providing at least one personalized service to the user based on the generated at least one rule. In one embodiment, the exemplary method also comprises the steps of sending the collected user information to a server for analysis, receiving a response from the server based on the server analysis, and
20 processing the received response. In an exemplary embodiment, the processing step comprises saving the response in a local cache and implementing the response. In another embodiment, the processing step comprises ignoring at least a portion of the response. In an exemplary embodiment, the analyzing step comprises analyzing the
25 user's pattern of behavior. In a preferred embodiment, the at least one user interface is controlled by a software product executing on the user's computer.
In an exemplary embodiment, providing at least one personalized service to
~~ users comprises enhancing the user's connection at a web site. The enhancing step comprises creating a separate window when the user visits the web site, the separate window enabling the user to communicate with other users visiting the web site. In one embodiment, the user can communicate with other users in real time. In another exemplary embodiment, providing at least one personalized service to users comprises creating a connection between a first user and a second user. In one embodiment, the creating step comprises the steps of (i) using at least one icon to carry a message from the first user to the second user; (ii) removing the message carrying icon from the first user's computer screen; (iii) generating a copy of the message carrying icon on the second user's computer screen; (iv) delivering the message to the second user; and (v) establishing a connection between the first user and the second 0 user. In one embodiment, the generating step in (iii) occurs substantially concurrently with the establishing step in (v). In an exemplary embodiment, the establishing step comprises connecting the first user and the second user through a server on the 5 network. In another exemplary embodiment, the establishing step comprises making a direct connection between the first user and the second user.
Another exemplary method for providing personalized services to users in a computer network environment comprises the steps of receiving user information " collected by a software product at a user computer, analyzing the collected user information, generating a response based on the analysis and enabling the software product to provide at least one personalized service to the user by sending the generated response to the software product. In one embodiment, the response 5 comprises logic rules, instructions, and/or executable programs.
In an exemplary embodiment, user information is distributed among different computers for analysis. In one embodiment, both a software product on the user's Q computer and a server communicating with the software product perform the analysis.
Analysis performed includes analyzing the user's pattern of behavior. In one embodiment, within the software product, analysis of user information and generation of rules based on the analysis are performed in a multi-layered manner. In another 5 embodiment, the software product executes a high-level command received from the server by adjusting services provided to the user based on realtime interaction with the user.
Yet another exemplary method for providing personalized services to users in a computer network environment comprises the steps of collecting user information through at least one user interface, .sending the collected user information to a server for analysis, receiving a response based on the server analysis, and processing the received response to provide at least one personalized service to the user. In one embodiment, the processing step comprises saving the response in a local cache and implementing the response. Another exemplary method for providing personalized services to users in a computer network environment comprises the steps of communicating with a user through at least one user interface and manipulating the at least one user interface. The manipulating step comprises: (i) automatically initiating the manipulation, (ii) receiving, during the communication, user commands to manipulate the at least one user interface, and (iii) receiving directives from a server to manipulate the at least one user interface. In one embodiment, the manipulating step comprises enabling the at least one user interface to perform animation, enabling the at least one user interface to vary in size and/or enabling the at least one user interface to move from a first location to a second location on a display.
An exemplary computer readable medium for providing personalized services to users in a computer network environment comprises logic code for collecting user information through at least one user interface, logic code for analyzing the collected user information, logic code for generating at least one rule based on the analysis, and logic code for providing at least one personalized service to the user based on the generated at least one rule. In one exemplary embodiment, the computer readable medium also comprises logic code for sending the collected user information to at least one server for analysis, logic code for receiving a response from the at least one server based on the server analysis, and logic code for processing the received response. In an exemplary embodiment, logic code for providing at least one personalized service comprises logic code for providing entertainment to the user and prompting the user to input information. In one embodiment, user interfaces comprise visual characters.
In an exemplary embodiment, the logic code for providing at least one personalized service to users comprises logic code for enhancing the user's connection at a web site. In one embodiment, the logic code for enhancing comprises creating a separate window when the user visits the a web site, the separate window enabling the user to communicate with other users visiting the web site. In an exemplary embodiment, the user communicates with other users in real time.
In another exemplary embodiment, the logic code for providing at least one personalized service to users comprises logic code for creating a connection between a first user and a second user. In one embodiment, the logic code for creating comprises
(i) logic code for using at least one icon to carry a message from the first user to the second user; (ϋ) logic code for removing the message carrying icon from the first user's computer screen; (iii) logic code for generating a copy of the message carrying icon on the second user's computer screen; (iv) logic code for delivering the message to the second user; and (v) logic code for establishing a connection between the first user and the second user. In an exemplary embodiment, the logic code for generating in (iii) executes substantially concurrently with the logic code for establishing in (v). In one embodiment, the logic code for establishing comprises logic code for connecting the first user and the second user through a server on the network. In another embodiment, the logic code for establishing comprises logic code for making a direct connection between the first user and the second user.
Another exemplary computer readable medium for providing personalized services to users in a computer network environment comprises logic code for receiving user information collected by a software product at a user computer, logic code for analyzing the collected user information, logic code for generating a response based on the analysis, and logic code for enabling the software product to provide at least one personalized service to the user by sending the generated response to the software product. In one embodiment, the response comprises logic rules, instructions, and/or executable programs. Another exemplary computer readable medium for providing personalized services to users in a computer network environment comprises logic code for logic code for collecting user information through at least one user interface, logic code for sending the collected user information to a server for analysis, logic code for receiving a response based on the server analysis, and logic code for processing the received response to provide at least one personalized service to the user.
Yet another exemplary computer readable medium for providing personalized services to users in a computer network environment comprises at least one user interface and a software product including logic code for controlling the at least one user interface. The logic code for controlling comprises: (a) logic code for automatically manipulating the at least one user interface, (b) logic code for enabling a user to manipulate the at least one user interface, and (c) logic code for receiving directives from a server for manipulating the at least one user interface. The logic code for controlling comprises logic code for enabling the at least one user interface to perform animation, logic code for enabling the at least one user interface to vary in size, and/or logic code for enabling the at least one user interface to move from a first location to a second location on a display.
An exemplary system for providing personalized services to users in a computer network environment comprises means for collecting user information through at least one user interface, means for analyzing the collected user information, means for generating at least one rule based on the analysis, and means for providing personalized services to the user based on the generated at least one rule. In another exemplary embodiment, the system also includes means for sending the collected user information to at least one server for analysis, means for receiving a response from the at least one server based on the server analysis, and means for processing the received response.
Brief Description of the Drawings
FIGURE 1 schematically illustrates an exemplary system in accordance with an embodiment of the present invention.
FIGURE 2 schematically illustrates an exemplary server used in a system in accordance with an embodiment of the present invention.
FIGURE 3A schematically illustrates an exemplary client in accordance with an embodiment of the present invention.
FIGURE 3B schematically illustrates a portion of an agent program in accordrøce with an exemplary embodiment of the present invention.
FIGURE 4 is a process flow chart in accordance with an exemplary embodiment of the present invention.
FIGURE 5 is a process flow chart in accordance with another exemplary embodiment of present invention. FIGURE 6 is a process flow chart in accordance with another exemplary embodiment of present invention.
FIGURE 7 is a process flow chart in accordance with another exemplary
5 embodiment of present invention.
Detailed Description of Exemplary Embodiments Figure 1 schematically illustrates a distributed system 100 in accordance with
10 an exemplary embodiment of the present invention. The system 100 includes a communications network 102, a server 104, a client 106, other servers 108, other clients 110 and other networks 112. The client 106 includes an agent program 114 which is capable of communicating with the server 104 directly or through the network
15 102. In a typical network environment, more than one client, server, and network are connected by a common network, such as the communications network 102. In an exemplary embodiment, the communications network 102 is the Internet. Users at
20 client computers (i.e., client 106) can access servers (i.e., server 104) on the network 102.
A person of skill in the art would appreciate that the methods, systems and software products of this invention can be implemented in any network environment
A and are not limited to a particular physical network architecture. For example, a client computer may be connected to a server computer through an analog modem over a telephone line, a digital subscription line, a cable modem, a dedicated data copper wire connection, .an optic fibre connection, a wireless connection, a satellite connection, etc.
30 In one embodiment, a packet switching network implementing TCP/IP protocols is preferred. In an exemplary embodiment, the methods, systems and software products of this invention can be implemented in a wireless network using wireless connection and wireless protocols.
35 Figure 2 schematically illustrates an exemplary embodiment of the server 104. The server 104 includes CPUs 202, a communication interface 204 for connecting to the network 102 (Fig. 1), and memory 206. In an exemplary embodiment, the memory 206 includes an operating system 208, server applications 210, communications applications 212, an objects database 214, an agent database 216, a user database 218, a user information analyzer 220, a statistics analyzer 222, a collaborative filter 224, a response generator 226, a logic rules database 228 an instructions database 230, a programs database 232, an advertisement database 234, and a recommendations database 236. The server 104 performs server operations by using the server applications 210 and communicates with other systems on the network 102 by using the communication applications 212 through the cornmunicarion interface 204.
In the objects database 214, the server stores objects downloadable by clients through the network 102. These objects typically have at least one user interface with the users. In the agent database 216, the server stores downloadable agent programs that maintain any downloaded objects and provide communication with the server 104. In an exemplary embodiment, when a user downloads an object through the client 106, a corresponding agent program is also downloaded simultaneously. Each object is maintained by an associated agent program. However, each agent program is, preferably, capable of maintaining multiple objects. Thus, if an agent program is able to maintain all of the download objects, only one copy of the agent program should be downloaded. In an exemplary embodiment, a downloaded agent program collects user information through at least one object, analyzes the collected user information, and implements any rules generated as a result of the analysis to provide better, more personalized, services to the user. In another exemplary embodiment, the agent program transfers at least a portion of the collected user information to the server 104 to be analyzed, receives any responses from the server 104 based on the server's analysis, and processes the received responses to provide more person ized services to the user.
Referring back to the server 104 in Figure 2, when the server 104 receives user information from an agent program, the server 104 stores the user information in the user database 218. In addition, the server 104 analyzes the received user information using various tools including the user information analyzer 220, the statistics analyzer 222 and the collaborative filter 224. In an exemplary embodiment, the statistics analyzer 222 compares the user information to statistics gathered from other users to deduce personalized services which might interest the user. The collaborative filter 224 can be used to synthesize common patterns Eind behaviors. In an exemplary embodiment, the collaborative filter may be a licensed software incorporated into the server 104. Based on the analysis, the server 104 may generate a response using the response generator 226. The response generator 226 may generate the response by accessing the logic rules database 228, the instructions database 230, the programs database 232, the advertisement database 234 and/or the recommendations database. In an exemplary embodiment, the server 104 may send a response, which includes one or a combination of logic rules, instructions, executable programs, advertisements, and recommendations. For example, a list of web sites that might interest the user 106 can be retrieved from the recommendations database 236 and sent to the agent 316 to be presented to the user at client 106. A person of skill in the art would recognize that the tasks described above can be performed by one server computer or by multiple server computers.
Figure 3 A schematically illustrates an embodiment of the client 106 (as shown in Fig. 1). Client 106 includes a CPU 302, a display device 304, an input device 306, a communication interface 308 and memory 310. The memory 310 includes an operating system 312, a browser program 314 and an agent program ("agent") 316. The client 106 communicates with other systems on the network 102 (see Fig. 1) through the communication interface 308. In an exemplary embodiment, the client can use the browser program 314 to more efficiently navigate across the network 102.
In various embodiments of this invention, a client may be a personal computer, a workstation, a multiprocessor server, an intelligent appliance, a webTV, a handheld computer device, a cellular phone, or others. In an exemplary embodiment, the client is a cellular phone with an embedded system. The cellular phone is capable of establishing a wireless Internet connection with a server.
In an exemplary embodiment, the agent 316 is a softw^e program downloaded from the server 104 trtrough the network 102 (see Fig. 1). However, the agent 316 may also be pre-installed on a user computer. The agent 316 includes an objects database 318, communication applications 324, a personality database 326, a logic rules database 328, a multimedia database 330, an instructions database 332, a user configuration preference file 334, a user profile database 336, a data analyzer 338, a brain object 340, an object controller 342, and a web browser connector (WBC) object 344. In an exemplary embodiment, the objects database 318 includes user interfaces 322. In one embodiment, the user interfaces include at least one visual interface 322A, at least one audio interface 322B, and at least one multimedia interface 322C. The agent 316 maintains and controls any object in the objects database 318 by supplying each object with personality from the personality database 326, logic rules from the logic rules database 328, multimedia from the multimedia database 330, and instructions from the instructions database 332. Any user configuration preference is saved in the user configuration preference file 334. User information collected by the agent 316 is saved in a user profile database 336. In an exemplary embodiment, the agent 316 uses the data analyzer 338 to ar lyze any collected user information. In an exemplary embodiment, the user interfaces 322 as appeared on the user's display device 304 can be manipulated. Examples of manipulation include performing animation, reducing in size, increasing in size, or moving from one location to another location on the user's display device 304. In an exemplary embodiment, the user interfaces 322 can be manipulated by one or more of the following: (1) the agent 316 may include internal logic code to automatically manipulate the user interfaces 322; (2) the agent 316 may implement user commands to manipulate the user interfaces 322; and (3) the agent 316 may receive directives (e.g., instructions, logic rules, executable programs, etc.) from the server 104 to manipulate the user interfaces 322.
When the client 106 maintains connection to the network 102 using the browser program 314, the WBC object 344 provides the communication channel between the agent 16 and the browser program 314 on the client computer. In an exemplary embodiment, the WBC object 344 is created using Microsoft's Dynamic Data Exchange (DDE) standard. In another embodiment, the WBC object 344 is created using Microsoft's Component Object Model (COM) standard. A person of skill in the art would appreciate that other suitable standards may also be used to create the WBC object 344. When the browser program 314 is used, the agent 316 can communicate to the server 104 through the browser 314 using the WBC object 344 to coordinate the communication with the browser 314. In addition, the agent 316 communicates with the server 104 through the network 102 using the communication applications 322. In an exemplary embodiment, the agent 316 can send any collected user information to the server 104 for analysis. If any user information is sent to the server 104, typically, the server 104 would send back a response which can include logic rules, instructions and/or programs, depending on the server's analysis of the user information. When the agent 316 receives the server response, the agent 316 processes the response by using the brain object 340. In an exemplary embodiment, the object controller 342 implements any brain object 340 process results. In an exemplary embodiment, the brain object 340 and object controller 342 are created using C++ language. These objects can also be created using other suitable computer languages.
Figure 3B schematically illustrates an exemplary embodiment of the relationship between a portion of the agent 316 and objects 350-354 retrieved from the objects database 318 and presented to the users through the user interfaces 322. The agent 316 controls the objects 350, 352 and 354. The agent 316 includes communication applications 324, brain object 340 and object controller 342. In an exemplary embodiment, user interfaces 322 include visual, audio and multimedia interfaces. The agent 316 collects user information through the objects 350-354. In one embodiment, at least a portion of the collected user information is analyzed by the brain object 340. In another embodiment, a portion or all of the user information is sent to the server 104 to be analyzed. If the brain object 340 analyzes at least a portion of the collected user information, the brain object 340 may generate or retrieve from databases a set of rules or instructions based on its analysis. In an exemplary embodiment, the brain object 340 implements the generated or retrieved set of rules and/or instructions on the objects 350-354 through the object controller 342.
In another exemplary embodiment, the brain object 340 may instruct the communication applications 324 to send the collected user information to the server 104 through the network 102 (Fig. 1). In this embodiment, the communications application 324 may receive responses from the server 104, which could contain instructions, logic rules and/or executable programs. The server response is sent to the brain object 340 through the object controller 342 for processing. In an exemplary embodiment, the brain object 340 processes the server response to reduce it to executable instructions and rules. The brain object 340 sends the executable instructions and rules back to the object controller 342, which administers the --,-,-,„
PCT/US99/30580
implementation of the instructions and rules on the objects 350-354. In an exemplary embodiment, the brain object 340 stores any generated or received instructions and rules in appropriate databases (see Fig.3 A). An example of the source code for the communication applications 324, the brain object 340, and the object controller 342 in C++ language is included in Appendix A.
Figure 4 is a process flow chart illustrating an exemplary process of the present invention. In this embodiment, a user downloads at least one object and an agent program through a client computer from a server. The server can be the exemplary server 104 or any other servers on the network 102. Likewise, the agent program can be the exemplary agent 316 or other downloadable agent programs. The object(s) downloaded is controlled by the agent program. The agent program ("agent") communicates with the user through at least one user interface of the object(s) (block 402). During communication, the agent collects user information (block 404). For example, the user may be prompted by the object's visual interface on the computer screen to answer a specific question. In a preferred embodiment, any input from the user is collected by the agent and saved in a user profile database (block 404A). In an exemplary embodiment, the agent analyzes the collected user information (block 406). Based on the analysis, the agent generates rules and/or instructions (block 408). The agent implements the generated rules and/or instructions on the object(s) to provide the user with improved personalized services (block 410). For example, if during the analysis, the agent learns that the user is interested in going to a specific amusement park, the agent may instruct the object(s) (through its visual, audio or multimedia interfaces) to provide vacation packages or other information regarding that amusement park.
Figure 5 is a process flow chart illustrating an exemplary process of the present invention. A user downloads at least one object and an agent through a client computer from a server. The downloaded object(s) is controlled by the downloaded agent. The agent can be the exemplary agent 316 or any other downloadable agents. The agent communicates with the user through at least one user interface (visual, audio or multimedia interfaces) of the object(s) (block 502). During communication, the agent collects user information (block 504). In an exemplary embodiment, any input from the user is collected by the agent and stored in a user profile database (block 504A). The agent then substantially concurrently analyzes the collected user information (block 506) and sends the collected user information to a server, such as the exemplary server 104, for analysis (block 510). The agent generates a set of rules and instructions based on its own analysis (block 508) and receives a response from the server based on the server's analysis (block 512). In one embodiment, the agent first implements the generated rules and/or instructions and then the server response to personalize services to the user. In another embodiment, the agent first implements the server response then the rules and instructions generated based on its own analysis. The implementation sequences can be programmed by the server or service provider. Figure 6 is a process flow chart illustrating an exemplary process of the present invention. A user downloads at least one object and an agent through a client computer from a server. The server can be the exemplary server 104 or any other servers on the network 102. Likewise, the agent program can be the exemplary agent 316 or other downloadable agent programs. The downloaded object(s) is controlled by the downloaded agent. The agent communicates with the user through at least one user interface (visual, audio or multimedia interfaces) of the object(s) (block 602). During communication, the agent collects user information (block 604). Input from the user is collected by the agent and stored in a user profile database (block 604A). The agent sends the collected user information to a server for analysis (block 606). The agent receives a response from the server based on the server's analysis of the user information (block 608). The agent processes and implements the response to personalize services provided to the user (block 610).
Figure 7 is a process flow cr rt illustrating an exemplary process in accordance with another embodiment of die present invention. A server receives user information from an agent, which was downloaded to the user's computer (block 702). The server analyzes the received user information (block 704). In an exemplary embodiment, the server saves the received user information in a user database (block 704A). Based on the analysis, the server generates a response which may include instructions, logic rules and/or executable programs (block 706). The server sends the generated response to the agent 316 to be processed and implemented by the agent to personalize services provided to the user (block 708).
General Operation In an exemplary embodiment, an object's user interface may appear to a user as an animated figure having multimedia capabilities. From the user's point of view, the user is getting a desktop companion, who is capable of realtime interaction and becomes more "intelligent" as it learns more about the user. In an exemplary embodiment, the animated figure may automatically appear on the user's computer screen each time the user starts the computer. While the user's computer is running, the animated figure remains on the desktop and can be commanded to sit at a comer, to roam around the screen, or to disappear. The animated figure is maintained and controlled by an agent program. In one embodiment, as the animated figure collects user information (i.e., by prompting the user to answer questions), the collected user information is processed by the agent program at the user computer. In another embodiment, a portion or all of the collected user information can be sent to a server to be analyzed. The information is used to improve personalized services to the user so that, in some embodiments, the animated figure appears to have gained "intelligence" over time. For example, from time to time, the agent may enable the animated figure to prompt the user with personal questions to find out more about the user's interests. For instance, the animated figure may say to the user, '1 like baseball, do you?" If the user answers "yes", the agent will provide more information about baseball. Likewise, if the user answers "no", the agent will not bring up baseball again. Thus, the animated figure appears to the user as having the capability of gradually improving its
10 "intelligence" because of the continuous analysis of collected user information, either by the agent program 316 or by the server 104. In an exemplary embodiment, each animated figure has its own pre-assigned personalities and an initial repertoire of multimedia capabilities (e.g., sing, dance, speak, etc.). As the animated figure learns
15 more about a user, the behavior of the animated figure at that user's computer can be personalized to that user's taste. Examples of presentations by animated figures to users are included in Appendix B. 0 In an exemplary embodiment, the animated figure may communicate with the user through audio, video, animation, or other multimedia interfaces. The user can control the animated figure by using voice commands or from a menu selection.
In an exemplary embodiment, when a user selects an object (e.g., an animated figure) to download, an agent program associated with the object is downloaded to the user computer. If the user already has an agent program that is capable of controlling the selected object, then the agent program associated with the selected object is not downloaded. However, a user's computer may have multiple agent programs. For 0 example, if the selected object requires a different agent program to maintain it, that agent program should be downloaded with the selected object even if the user already lias another agent program on his computer.
5 A person skilled in the art would recognize that the visual interfaces of the objects are not limited to animated figures. Visual interfaces may come in a variety of images, such as animals, fantasy cartoon figures, or other suitable images. The images can also be custom created by each user. In an exemplary embodiment, depending on the image, a suitable pre-determined personality should be assigned.
Embodiments of this invention provide a wide range of personalized services. Examples of the types of personalized services include: entertainment related, communication related, electronic commerce related, education related services, and others. One example of entertainment related services include periodic delivery of games to a user who enjoys trying new games. In another example, the objects may execute simple programs, such as singing a song, dancing a routine, telling a riddle or a story to the user.
An example of communication related services is carrying a user's bookmark from one computer on the network to another computer on the network. Another example of communication related services is creating a separate window at a third party web site, which enables several users to communicate with each other real time. In addition, a separate window created at the third party web site may enable each user visiting the web site to post comments about the web site. Thus, each user having an agent program will be able to see the separate window when the user visits the third party web site. Other communication related services include enhancing the connection between users on the network, such .as improving speed and reliability. In addition, the connection between users on the network may allow realtime exchange of multimedia contents.
Another example of communication related services is establishing a connection between two users. In this example, a first user sends a message to a second user on the network. The agent receives the message from the first user through the object(s). The agent removes a message carrying icon from the first user's computer screen and generates a copy of the removed icon on the second user's computer screen. As the icon is generated at the second user's computer screen, the agent delivers the message to the second user and establishes a connection between the first user and the second user. Thus, it may appear to the users that the connection between them was achieved by the icon when in reality, the connection may be performed by the server. The message transferred between users can include textual,
10 audio, video or other multimedia contents.
In another communication related service, the agent can use the collected user information to automatically conduct an efficient search on the Internet using existing search engines. Because the agent has collected user information, it is able to conduct
15 an efficient search for the user based on those collected information. In yet another communication related service, the agent can create a separate window which the user can use as a note pad. For example, if a user is researching a certain subject matter on 20 the Internet, he is likely to move from web site to web site. At each web site, the user may wish to take notes in the created separate window. The notes written by the user can be collected by the agent and analyzed (by the agent and or a server) to further improve services provided to the user.
If J An example of electronic commerce related services is providing a visual interface, which introduces the latest fashion to a user. Businesses in the fashion industry may be interested in providing a desktop model, which maintains communication with the business's server .and continually changes clothing style to 0 promote the business's products. In this example, the agent can continuously learn about the user's taste in fashion and personalize the presentation of the business's products. This embodiment is, of course, not limited to only the fashion industry. Other businesses can also implement this embodiment to promote and sell their 5 products. In another embodiment, the agent, through a user interface, can present product advertisement that might be of interest to a user and can direct the user to a commercial web site.
An example of education related services is using the agent as a tutor for a specific subject matter. In this embodiment, the agent provides a user interface to assist a user's educational needs. The agent communicates with a server that maintains and updates educational subject matters (e.g., math problems and solutions). As the agent continues to learn more about the user and the subject matter in which the user needs the most assistance, the agent can provide more services in that area. In another example, if the agent is part of a proprietary software program, the agent can provide personalized interactive technical support to a user, retrieve specific information for the user from a server, and automatically upgrades the program for the user.
In an exemplary embodiment, the methods, systems and software products of this invention can be created in a C++ programming environment and implemented on a Windows 95/98/NT platform. Such programs can be automatically upgraded from time to time. The methods, systems and software products of this invention can also be created using other programming environments, including: C, Java, Perl, Basic Fortran, COBOL, or other suitable computer languages. In a preferred embodiment, object-oriented programming languages are used. In addition, software programs in accordance with embodiments of this invention are stored in a computer readable medium, such as a computer hard-drive, a CD-ROM, a magnetic tape, a flash memory, or other computer readable media.
Preferably, the agent program should operate without consuming too much memory and CPU time on the user's computer. Coordinating with and transferring some tasks to the server prevent the agent program from overwhelming the user's resources. In an exemplary embodiment, the server is not limited to one computer, it may include as many cooperating servers as needed. The servers can also be custom- designed and controlled by proprietary service providers. Task division among many servers provides more flexible server extensibility and scalability, among other benefits. In an exemplary embodiment, the server can be implemented on a Unix platform and may use a variety of tools, such as C++ and Perl languages, open-source Apache webserver, and relational database (e.g., free MSQL and Oracle). In addition, the methods, systems and software products in accordance with the present invention should preferably be implemented using multi-threaded technology. Multi-threaded technology allows different programs to be executed independently of each other during a given time period.
The methods, systems and software products of this invention can be implemented in any network environment, and are preferably implemented in a distributed network environment (e.g., the internet). In an exemplary embodiment, the methods, systems and software products of this invention can be implemented in a wireless network environment (e.g., cellular technologies, handheld device technologies, etc.). Wireless network environment may require computer programs in accordance with embodiments of this invention to be written in programming languages suitable for wireless platforms.
The methods, systems and software products in accordance with various embodiments of this invention provide m.any adv.antages for both users and service providers (servers). Users can obtain personalized services in a user friendly and intuitive environment. Service providers can efficiently provide personalized services without spending on excessive advertisement. For example, businesses may adopt the methods, systems and software products to more effectively sell their products. In addition, service-based businesses may profit from the various embodiments of this invention. For example, customized animated figures and their associated agent programs can be created according to embodiments of this invention and sold to target organizations or web sites. Service-based businesses then can profit by maintaining servers which provide continuous improvements to the agent programs and animated figures.
The methods, systems and software products in accordance with various embodiments of this invention overcome many disadvantages in existing systems. Various embodiments of this invention dyn. mically improves personalized services provided to users. Unlike most existing systems, the present methods, systems and software products, with the user's permission, collect user information in a user friendly, intuitive, and continuously improved manner. Furthermore, in exemplary embodiments of this invention, users always have the option to deny information collection.
The foregoing examples illustrate certain exemplary embodiments of the invention from which other embodiments, variations, and modifications will be apparent to those skilled in the art. The invention should therefore not be limited to the particular embodiments discussed above, but rather is defined by the following claims.

Claims

WHAT IS CLAIMED IS:
1. A method for providing personalized services to users in a computer network
5 environment, comprising the steps of:
(a) collecting user information through at least one user interface;
(b) analyzing said collected user information;
(c) generating al least one rule based on said analysis; and
10
(d) providing at least one personalized service to said user based one said generated at least one rule.
1 2. The method of claim 1, further comprising the steps, performed after at least said step (b), of: (e) sending said collected user information to a server for analysis; (f) receiving a response from said server based on said server analysis; and (g) processing said received response.
20
3. The method of claim 2, wherein said step (g) comprises: (i) saving said response in a local cache; and (ii) implementing said response.
25
4. The method of claim 2, wherein said step (g) comprises ignoring at least a portion of said response.
on 5. The method of claim 1 , wherein at least one of said step (a) and said step (d) comprises providing entertainment to said user.
6. The method of claim 1 , wherein at least one of said step (a) and said step (d) comprises prompting said user to input information.
7. The method of claim 1, wherein said step (c) comprises analyzing said user's pattern of behavior.
8. The method of claim 1, wherein said step (d) is performed substantially concurrently with said collecting in said step (a).
9. The method of claim 1 , wherein said step (d) is performed subsequent to said 0 collecting in said step (a).
10. The method of claim 1 , wherein said step (d) comprises enhancing said user's 5 connection at a web site.
11. The method of claim 10, wherein said enhancing comprises creating a separate window when said user visits said web site, said sep,arate window enabling said user to " communicate with other users visiting said web site.
12. The method of cl m 11, wherein said user communicates with other users in real time. 5
13. The method of claim 1 , wherein said step (e) comprises creating a connection between said user rød a second user.
14. The method of claim 13, wherein said creating comprises:
(i) using at least one icon to carry a message from said user to said second user; (ϋ) removing said message carrying icon from said user's computer screen; (iii) generating a copy of said message carrying icon on said second user's computer screen; (iv) delivering said message to said second user; .and (v) establishing a connection between said user and said second user; wherein said generating in (iii) occurs substantially concurrently with said establishing in (v).
0
15. The method of claim 14, wherein said establishing in step (v) comprises connecting said user and said second user through a server on said network.
16. The method of claim 14, wherein said establishing in step (v) comprises rcraking a direct connection between said user and said second user.
17. A method for providing per.sonalized services to users in a computer network " environment, comprising the steps of:
(a) receiving user information collected by a software product at a user computer;
(b) analyzing said collected user information; 5
(c) generating a response based on said analysis; and
(d) enabling said software product to provide at least one personalized service to said user by sending said generated response to said software Q product.
18. The method of claim 17, wherein said response comprises logic rules.
19. T e method of claim 17, wherein said response comprise instructions.
20. The method of claim 17, wherein said response comprises executable programs.
21. A method for providing personalized services to users in a computer network environment, comprising the steps of:
(a) collecting user information through at least one user interface;
(b) sending said collected user information to a server for analysis; 0
(c) receiving a response based on said server analysis; and
(d) processing said received response to provide at least one personalized service to said user.
5
22. The method of claim 21 , wherein said step (d) comprises: (i) saving said response in a local cache; and (ii) implementing said response.
" 23. A computer readable medium for providing personalized services to users in a network environment, comprising:
(a) logic code for collecting user information through at least one user interface; 5
(b) logic code for analyzing said collected user information;
(c) logic code for generating at least one rule based on said analysis; and
(d) logic code for providing at least one personalized service to said user Q based on generated at least one rule.
24. The computer readable medium of claim 23, further comprising: (e) logic code for sending said collected uuser information to at least one server for analysis; (I) logic 5 code for receiving a response from said at least one server based on said server analysis; and (g) logic code for processing said received response.
25. The computer readable medium of claim 24, wherein said (g) comprises: (i) logic code for saving said response in a local cache; and (ii) logic code for implementing said response.
26. The computer readable medium of claim 24, wherein said (g) comprises logic code for ignoring at least a portion of said response.
27. The computer readable medium of claim 23, wherein at least one of said (a) and said (d) comprises logic code for providing entertainment to said user.
28. The computer readable medium of claim 23, wherein at least one of said (a) and said (d) comprises logic code for prompting said user to input information.
29. The computer readable medium of claim 23, wherein said (b) comprises analyzing said user's pattern of behavior.
30. The computer readable medium of claim 23, wherein said at least one user interface comprises visual characters.
31. The computer readable medium of claim 23, wherein said (d) comprises logic code for enhancing said user's connection at a web site.
32. The computer readable medium of claim 31 , wherein said logic code for enhancing comprises logic code for creating a separate window when said user visits said web site, said separate window enabling said user to communicate with other users visiting said web site.
33. The computer readable medium of claim 32, wherein said user communicates with other users in real time. 0
34. The computer readable medium of claim 23, wherein said (e) comprises logic code for creating a connection between said user and a second user. 5
35. The computer readable medium of claim 13, wherein said logic code for creating comprises:
(i) logic code for using at least one icon to carry a message from said user " to said second user;
(ii) logic code for removing said message carrying icon from said user's computer screen;
(iii) logic code for generating a copy of said message carrying icon on said 5 second user's computer screen;
(iv) logic code for delivering said message to said second user; and
(v) logic code for establishing a connection between said user and said ø second user; wherein said logic code for generating in (iii) executes substantially concurrently with said logic code for establishing in (v).
5
36. The computer readable medium of claim 35, wherein said logic code for establishing in (v) comprises logic code for connecting said user and said second user through a server on said network.
37. The computer readable medium of claim 35, wherein said logic code for establishing in (v) comprises logic code for making a direct connection between said user and said second user. 0
38. A computer readable medium for providing personalized services to users in a computer network environment, comprising: 5 (a) logic code for receiving user information collected by a software product at a user computer;
(b) logic code for analyzing said collected user information;
(c) logic code for generating a response based on said analysis; and 0 (<j) logic code for enabling said software product to provide at least one personalized service to said user by sending said generated response to said software product.
5
39. The computer readable medium of claim 38, wherein said response comprises logic rules.
Q 40. The computer readable medium of claim 38, wherein said response comprises instructions.
41. The computer readable medium of claim 38 , wherein said response comprises 5 executable programs.
42. A computer readable medium for providing personalized services to users in a computer network environment, comprising:
(a) logic code for collecting user information through at least one user interface;
(b) logic code for sending said collected user information to a server for analysis ; 0
(c) logic code for receiving a response based on said server analysis; and
(d) logic code for processing said received response to provide at least one personalized service to said user.
5
43. The computer readable medium of claim 42, wherein said (e) comprises: (i) logic code for saving said response in a local cache; and (ii) logic code for implementing said response. 0
44. A system for providing personalized services to users in a computer network environment, comprising:
(a) means for collecting user information through at least one user 5 interface;
(b) means for analyzing said collected user information;
(c) means for generating at least one rule based on said analysis; and Q (d) means for providing at least one personalized service to said user based on said generated at least one rule.
45. The system of claim 44, further comprising: (e) me.ans for sending said collected user information to at least one server for analysis; (f) means for receiving a response from said at least one server based on said server analysis; and (g) means for processing said received response.
46. A computer readable medium for providing personalized services to users in a computer network environment, comprising: at least one user interface; and a software product including logic code for controlling smd at least one user
10 interface; said logic code for controlling comprises:
(a) logic code for automatically manipulating said at least one user interface;
15
(b) logic code for enabling a user to manipulate said at least one user interface; and
(c) logic code for receiving directives from a server for manipulating said 20 at least one user interface.
47. The computer readable medium of claim 46, wherein said logic code for controlling comprises logic code for enabling said at least one user interface to perform animation.
48. The computer readable medium of claim 46, wherein said logic code for controlling comprises logic code for enabling said at least one user interface to vary in 30 size.
49. The computer readable medium of claim 46, wherein said logic code for
_ , controlling comprises logic code for enabling said at least one user interface to move from a first location to a second location on a display.
50. A method for providing personalized services to users in a computer network environment, comprising the steps of:
(a) communicating with a user through at least one user interface; and
(b) manipulating said at least one user interface; wherein said manipulating comprises: (i) automatically initiating said manipulation; (ii) receiving, during said communication, user commands to manipulate said at least one user interface; and (iii) receiving directives from a server to manipulate said at least one user interface.
51. The method of claim 50, wherein said manipulating in said (b) comprises enabling said at least one user interface to perform animation.
52. The method of claim 50, wherein said manipulating in said (b) comprises enabling said at least one user interface to vary in size.
53. The method of claim 50, wherein said manipulating in said (b) comprises enabling said at least one user interface to move from a first location to a second location on a display.
APPENDIX A
Paπial Source Code for Object Controller 342:
II Construction/Destruction
10 CQTCharController::CQTCharComroller(Csπing rool_dir)
{ hQTCommH WND=NULL;
clieiilRootDirroot_dir, 5 dataSubDir = clientRootDir + "dataW; animatiαnSubDir = dataSubDir + "aniraatiαnW;
for(im i=0; i<MAX_CHARACTER_COUNT; i++){ owπ_chars[iJ=NULL; _ _ guest_charsliJ=NULL; own_char_brains[i]=NULL; }
25
CQTChart:ontrollcr::~CQTCharControllcr()
{ foi iπt i=0; i<MAX_CHARACTER_COUNT; i++){
\f( own_chars[i] !=NULL) delete own_char-[i]; i guest_c ars[i] !=NULL) delete guest_chars[i]; if( own_char_brainsp] != NULL) delete owπ_chsr_brains[i];
} }
int CQTCharControUer: ;CreaieMainWindow() 5 {
WNDCLASS wc; { wc.lpszClassName « "QTCharControllcrClass''; wc.lpfnWndProc = QTCharControlWndProc; wcstyle = CS_OWNDC | CS /REDRAW | CS_HREDRAW; wchlnstaiice = GetModuleHand!e(NULL); wchlcon = LoadJcon( NULL, IDI_APPLICATIO ); wc.hCursor = LoadCursor( NULL, IDC_ARRO ); wchbrBackgTound - (HBRUSH)( COLOR_WINDOWFRAME ); wc.lpszMenuName -= NULL; wccbCIsExtra = 0; wc bWndExtra = 0;
RegisterClass( &wc );
}
//handle hThrcadHWND declared in CQTThread base class. hThreadHWND - CιeateWindowEx(WS_EX_TOPMOST,
"QTCharControllerClass", "QT". WS_POPUP, 300,300,20,20, NULL.NULL. GetModuleHandle(NULL), NUL ); Sho Window<hThreudHWND,SW_HlDE);
::PostMessagc(hThreadHWND,WM_USER + CHAR_CONTROL_INIT,0,0); t/tell this thread to initialize itself. // SetTimεr(this->hThreadHWND,CQT_COMM_TIMER,this->clockjnterval. NULL); return 1; }
int CQTCharController. :ProcessMessage(MSG » sg)
{ switch( msg- message){
case WM_USER + CHAR_CONTROL_INIT: this->Initiali2eO; //we put init here instead of the constructor, because we want the main thread to finish creating all the thread t/ASAP, instead of spending time initializing one particular thread while blocking
//the synchronization of all the threads.
/ if we need user to login, don't do anything here, the Command Center will take user input, // configure the logged in tisεrlD & charlD, and then post a message; //
//otherwise (also far first version), login default userlD & charlD: ::PostMcssage(this->hThreadHWND, \VM_USER + USER_COMMAND. USER_COMMAND_LOGIN,0); case WMjriMER: ift msg- wParam = WM_USER/+TlCK'»/){
//PBrain->Tick(); } break;
case WM_USER + USER_COMMAND: //commands from Command Control Center. if( msg->wParam = USER_C0MMAND_L0GIN)1
//load char forcharlD; load brain with charlD & userlD: //own_chars[0] = charServer->LoadCharacter(this->CurτentCharID); own_chars[0] = charServer->LoadCharacterCjc"); own_char_brains[0] = new CQTBrainO;
//connect brain & char, now brain will drive char's behavior. own_char_brains[0]->Initialize{this->CuιτentUscrfDt own_chars[0]);
} break; case WM_USER + 1001 ://debug test own_ch4VSι.01->Show(); own_churs[0]->Play("he!lo"); brwk; default: return 0;
} return I ; lltl called after the first message this object receives, sent from CreateMainWindow().
int CQTCharController::lnitializeO
5 {
//create CommandController, ask for login if so configured; try not to block here.
//create Character Server, ■, r, charServer = new CQTCharServer(this- aniπ ιtionSubDir);
//create Resource Server object, start its thread; return 1; }
15
20
5
0
5 Partial Source Code for Communication Applications Object 324:
II Construction/Destruction
CQTComm::CQTComm() { hQTCharConιrollerHWND=NULL; scrver_response_buf=(char*) malloc(INCOMING_BUF_SlZE+l); MountainServer("everest",80,DEFAULT_SERVER); clock_interval=CQT_COMM_TIMER_DEFAULT; in_buffer=πew CQTCommBufferO; out_buffer=new CQTCommBufferO;
hQTCharControllcrHWND = NULL; }
CQTComm::~CQTCommO { free(this->server_response_buf); if( in_buffer) delete in_buffer; if( out_buffer) delete out_buffer;
int
CQTComm::ProcessMessage(MSG* msg)
{ int IncomingBuffcrindex=-l; int OutgoingBufferIndex=-l ;
switch(msg->message){ case WM_TIMER: //sent from the clock
IncomingBufferlndex=ReportToServerO; //this line will fill an incoming buffer;
HandleServerCommand(lncomingBuffcrlndex); //this line will process and have it freed return I; //the Brain may ask comm to send data up: case (WMJJSER + COMM_SEND_DATA_TO_SERVER): OυtgoingBufferIndex=LOWORD(msg->wParam);
IncomingBuflerlndex=SendDataToServer(OutgoingBufferIndex)^/this line will find a free incominb buffer, and fill it. out_buffer->CleaπBuffer(OutgoiπgBufferIndex); //clean the outgoing buffer once it is sent. HandleServerCommand(Inco ingBufferlndex); //this line will process and have the incoming buffer freed return 1 ;
10 } return ϋ;
}
// this method is invoked in bass class CQTThread::StartThread, the thread will enter message loop right
// after this function call.
15 int CQTComm::CreateMainWiπdow()
{ WNDCLASS wc;
{ wαlpszClassNitme = "QTComraClass";
20 wclpihWndProc = QTComm WndProc; wcsiyle = CS_OWNDC | CS_VREDRA | CS_HREDRAW; wc.hlnstance = GetModuleHandle(NULL); wc.hlcon = LoadIcon( NULL, 1DI_APPLICATI0N ); wchCursor - LoadCursor( NULL, IDC_ARROW ); 25 wc.hbrBackground = (HBRUSHX COLOR VINDOWFRAME ); wc.lpszMenuName = NULL; wccbCIsExlra = 0; wccbWndExtra = 0;
JQ RcgisterClass( &wc );
}
//handle hThreadHWND declared in CQTThread base class. hThrεadHWND = CreateWindowEx(WS_EX_TOPMOST,
"QTCommClass", MC", WS_POPUP, 300,300-20-20, NULL.NULL,
35 GetModulcHandle(NULL), NUL ); ShowWindow(hThreadHWND,SW_HIDE); //tυ_do: add error checking here - if failed to create window, we'll report to server.
t/CQTComm Uiread needs to have a clock to periodically
//communicate with JJ Mountain Servers. SetTimer(thisc.hThreadHVVND,CQT_CON4lM riMER,this .clock ntervaI, NULL); return t; }
, Q LRESULT WINAPI QTCommWndProc( HWND h Wnd, UINT msg, WPARAM wParam, LPARAM IPara )
{ switch( msg ) { case WM_DESTROY: PostQuitMcssage{ 0 ); break;
15 default: return( DefWindowProc( hWnd, msg, wParam, IPara ));
> return 0;
} 0
int CQTComm-ReportToServerO
{ 5 int buf_index=out_buffcr- GetFrecBufl'er();
char buH1241; sprintfl[buf,"name=%s&friend=%s", "jι:","cc");
0 out_bufler^»AppendToBuffer(buf_index,buf^lrlen(buf)); return this->SendDataToServer{buf_index); }
int CQTComm::SendDataToServer(int out_buffer_index, int serverjndex) 5
{ intresult=-J; //find out which server to send to:
MountainSεrver* mserver==this->GetServer{seτver_index);
if( Imserver) { MessageBoxCNULL exception COMMOl- Pet Can't find server. Please email bug@ϋmountain.cαm\"COMM",MB_ K ); return I; }
CString 5trServerName=mserver->GetName(); INTERNET_PORT nPort=mserver->GetPort();
//connect to server:
CInlemetSe_:sion scssion("mysessionn);
CHttpConnection* pServer «= NULL;
CHttpFile* pFile = NULL; pServer = session.GeiHπpConnection(strServerName, nPort);
//Send to server: char bull 124];
LPCTSTR ss=o _buffer->GetBufferAddress(out_buffer_ind-x);
// char* s; sprintf(buf,7demo/jc.asp?%s",ss); ss=bιιf;
//pFile2- AddRequestHeaders(s2Headers); tιy{ pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET, ss,NULL, I ,NULL,NULL,INTERNET_FLAG_RELOAD); pFile->SendRequest(); }catch(ClntemetException e){
MessageBox(NULL,"exception","COMM",MB_OK ); delete pFile; delete pServer; scssion.CloscO; out_buffer->ClcanBuffer(out_buffer_iπdex); return -1;
) out_buffer->C!eanBuffer(out_buffer πdex);
D ORD dwRet; pFite- QuerylnfoStatusCode(dwRet);
int total_rcad=0; mcmset(server_resρonse_buf,0,2048); if (d wRet = HTTP_STATUS_OK) { UTNT nRead = pFile->Read(this->server_response_buf, 2048); lhis->server_response_bulTnRead] = W; total_read=nRead;
)else{ delete pFile; delete pServer; session.CIose(); return -1; //bad connection? disrupted stream? whatever.
//is there more to read? int coπtent_length=l28; //to_do: decode server_response_bιιf to find content-length;
iftl || total_read — content_length){ //OK, no more contents to read: int iπbuffer_indcx=in_buffer->GetFreeBuffer(); in_buffer->AppendToBuffer(inbuffer_index, this->servEr_response_buf, total_read);
//error checking? result=inbuffer_index; }else if{toιal_read < contentjength &.&. content ength < 2048){
//etτor: failed to read everything — can this actually happen?
result = -1; }else(//well. seems we nceda larger buffer: int inbuffer_index=in_buffer- GetFreeBuffer{ contentjength); in_buffer->AppendToBuffer(inbuffer_index, this^,server„response_buf; total_read); int nRcad=pFilc->Rcad(this->server_response_buf,I023); //read file-.. total read += nRead; while (nRead > 0) i inJ-uffer->AppendToBufferfinbufferjndex, this->server_respoπse_buf, nRead); nRead=pFiIe->Read(this->server_respoπse_butl023); //read file... total_rcad +™ nRead; }
, „ ifϊ total_read < contentjength) { //error: interrupted? in_buffer->CleanBuffer(inbufferjndex); result = -I; }else{ result =iπbuffer ndcx;
,5
delete pFile; delete pServer; session.CloseO;
20 return result;
5 int CQTComm::HandleServerCommand(int IncomingBufferlndex) t
if(inJ-uffer->Out01Bαund(lncomingBufferIndex)) retum 0; 0 LPCTSTR buf=in_buffer->GetBufferAddress(IncomingBufferIndex); if(lbuf) retum 0;
\%\ || lstremp<buf. "COMMCOMMAND")){ //process; CStriπg msg; 5 char stringJnrfβO]; spriπtf(string_buf, "buffer: %d", IncomingBufferlndex); msg=string_buf;
MessageBox(NULL,,'rcccivcd command." + msg,"COMM",MBJ3K ); inJ-uffer- CleanBuffcr(lncomingBufferIndex);
5 }else{
WPARAM wParsm=MAKEWPARAM(O.IncomingBufferIndex); if( this- hQTCharControllerHWND !=NULL) {
::PostMessage(this->hQTCharControllerHWND, WM_USER+WM_SERVER_COMMAND, wParam.O); , » //the receiving thread will take the responsibility of freeing the income buffer.
)else{ //sleep for 1 second, try again: Slecp(lOOO); if( this->hQTCharControllerHWND)
::PostMessage(this->hQTCharControllcrHWND. WM_USER+WM_SERVER_COMMAND, wParam,0);
15 else{
//if that still fails, report to the server, or ignore. ) } } 0 return 1;
)
5
int CQTComm::ThreadCleanUp() //implementation of virtual function defined in base class CQTThread;
{ ill this->hThrcadHWND) 0 KiHTimer(this->hThreadHWND,CQT_C0MM_TIMER); return 1; )
5 00/38078
Partial Source Code for Brain Object 340: // QTBrain.h: interface for the CQTBrain class. //
ldefιned(AFX_QTBRAIN_H_83213 ] 85_941 CJ 1 D2_9641 JW105A9E5870_INCLUDED J ^define AFX_QTBRAIN_H_83213185_941CJ 1D2_9641 JK)105A9E5870_INCLUDED_
r'if_MSC_VER> 1000 #pragma once #endif//_MSC_VER> 1000
//include "QTHostSystem.h" "QTScriptEngine.h"// Added by ClassView
/ include "QTBrainCommon.h"
^include "QTβrainlmageMap.h"
^include "QTCommand.h"
^include QTTicGame.h'*
class CQTCharacter; class CQTCharCoπtroller. class CQTDisplay; class CQTDisplayController; class CQTCommandMcsseπger; class CQTCommandChat; class CQTCommandEmaii;
ctess CQTKnockoutScorelward;
class CQTBrain : public CQTThread (
public:
int HServer£xecute(CString scriptName);
int HHandlcServerCommaπd(MSG* msg); int HUserShowGrecting(CString greetingjiame); int HUserPlayGame(CString gamc_name); int HUserSendE ailO; int HUserOpenEmailWindowO; int CatchMeGameO; int ActionlnitO; int CheckldleActivityO; int UserDraggedO; int UserClickMessage(MSG» msg.int petType); int UserTryMulιiInstance(); int AddShortcut(int addOrRemove);
CString dataDir; int SaveResourccToFile(int rcID, LPCTSTR rcType); int ChcckCarriedDataO; int PlayMJDKLPCTSTR fileName);
///////////////////////////////////////// ///////USER INPUT API: int UsciRightClickedO; int UscrLeftDoubleClickedO; int UscrRightBuπonMovcO;
//Internal Behavior Functions: int Tick(MSG* msg); //the clock ticks, brain needs to figure out what to do and do it;
//This function blocks - it doesn't return until it does whatever it is supposed to do.
// Brain uses a state machine to manage what to do next;
int PauseQ; //pause execution of scriptEngine int RcsumeO; void Allowlntemιpt(bool choice)} if(choice)this->allowInterrupt=l; else this->allowlntcrrupi=0;}
int StartDefaultBrowscrWith(HWND hWnd, LPCTSTR lpURL); //Internal State Functions: void SetState(DWORD state){brainState = brainState ) state;} void ResetState(DWORD state) {brainSt e = brainState & ~state;} bool lsState(DWORD state){retum ((brainState & state) — state);}
// INTERNAL FUNCTIONS: int CreateMainWindowO; int lnitialize(CQTCharacter* pChar, CQTCharController* pCon); //executed on calling thread;
//local thread initialization done in ActionlnitO int ThreadCleanUpO; int ProcessMessage(MSG* msg); int ProcessComic(MSG+ msg); int ProeessChatfMSG* msg); int PτoccssGame(MSG* msg); //should be challenging, with various levels; int ProccssMessenger(MSG* msg); //should be able to preview, should have a library of animations.
//CONSTRUCT DESTRUCT:
CQTBrainO; virtual -CQTBrainO;
//links to other objects: CQTCharController* pCliarController; CQTDisplayController* pQTDisplayController,
CQTCharacter* pCharacter; CQTHostSystem* system Jnfo;
//owner info: //int userlD;
//LPSTR userName;
//internal data: int clockjnterval; DWORD brainState; time_t lastUserActionTime; //used to determine what to do after certain idle time
//for comic pet
//server command handling: int serverCommand; //invocation method of server script
CString serverScript; //script text, loadedfro server
//imagemap handling: , Λ bool ImagcMapBufferFullO; int lmagcMapBufferSet(CString objcctNume, CString frameName);
CString imugeMapEventOpjectName; //these are the imagemap buffer, CString imageMapEventFrameName;
15
CQTBrainlmageMap* plmageMap; //this is the imagemap object;
CString imageMapNamc; //to speed up things, wc may prefer to first load the script into curτeπt_cxcc_sρace
//into current_cxcc_sρace, start executing, and put the 0 corresponding imageMap name into
//imβgeMapName, and send self (Brain) a message to load the map while executing the script.
5 //current script engine execution space:
CQTScripiEngiπc* pCurrentExecSpace; int pausePC; //when we pause execution of script, wc store the ProgramPointcr here, int allowluterrupt; //if this is set to 1, interrupt of script execution is allowed (when doing im^emapping) 0
//queued script engine space: //global script-engine-variable list: //global script-engine-object list: int petType; //options: comic, game, messenger (customize), assistant (chat/scavenger hunt), living (eat/sleep/grow) 5 CQTTicGame* pGa eObject; CQTKnockoutSeorebθ8rd* pKnockout&oreboard;
// Messenger Pet Interface:
CQTCommandMesseπger* pMessengerWindow; CQTCommandChat* pChatWiπdow; CQTCommaπdEmail* pEmailWindow;
};
#endif// ldefined(ΛFX_QTBRAIN_H_83213185_94lCJlD2_9641JX)105A9E5870_INCLUDEDJ
APPEHDIX B
Figure imgf000055_0001
53
Figure imgf000056_0001
54
Figure imgf000057_0001
PCT/US1999/030580 1998-12-21 1999-12-21 Methods and systems for providing personalized services to users in a network environment WO2000038078A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU23772/00A AU2377200A (en) 1998-12-21 1999-12-21 Methods and systems for providing personalized services to users in a network environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11309498P 1998-12-21 1998-12-21
US60/113,094 1998-12-21

Publications (2)

Publication Number Publication Date
WO2000038078A1 true WO2000038078A1 (en) 2000-06-29
WO2000038078A9 WO2000038078A9 (en) 2001-05-10

Family

ID=22347557

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/030580 WO2000038078A1 (en) 1998-12-21 1999-12-21 Methods and systems for providing personalized services to users in a network environment

Country Status (2)

Country Link
AU (1) AU2377200A (en)
WO (1) WO2000038078A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2823585A1 (en) * 2001-04-13 2002-10-18 Cantoche Production Three dimensional internet interactive person animation having graphical interface base with file real time calculated using 3D motor speech/written word automatically animated.
WO2003043334A2 (en) * 2001-11-16 2003-05-22 Koninklijke Philips Electronics N.V. Creating agents to be used for recommending media content
EP1388074A1 (en) * 2001-04-16 2004-02-11 Bea Systems, Inc. System and method for rules-based web scenarios and campaigns
EP1388071A1 (en) * 2001-04-16 2004-02-11 Bea Systems, Inc. System and method for web-based personalization and ecommerce management
WO2004034706A1 (en) * 2002-10-09 2004-04-22 Koninklijke Philips Electronics N.V. Building an interest profile on a media system with stored agents
US7653930B2 (en) 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US7774601B2 (en) 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US7992189B2 (en) 2003-02-14 2011-08-02 Oracle International Corporation System and method for hierarchical role-based entitlements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US5848396A (en) * 1996-04-26 1998-12-08 Freedom Of Information, Inc. Method and apparatus for determining behavioral profile of a computer user

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848396A (en) * 1996-04-26 1998-12-08 Freedom Of Information, Inc. Method and apparatus for determining behavioral profile of a computer user
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002084597A1 (en) * 2001-04-13 2002-10-24 La Cantoche Production Method and system for animating a figure in three dimensions
FR2823585A1 (en) * 2001-04-13 2002-10-18 Cantoche Production Three dimensional internet interactive person animation having graphical interface base with file real time calculated using 3D motor speech/written word automatically animated.
EP1388074A4 (en) * 2001-04-16 2006-07-05 Bea Systems Inc System and method for rules-based web scenarios and campaigns
EP1388071A4 (en) * 2001-04-16 2008-06-04 Bea Systems Inc System and method for web-based personalization and ecommerce management
EP1388074A1 (en) * 2001-04-16 2004-02-11 Bea Systems, Inc. System and method for rules-based web scenarios and campaigns
EP1388071A1 (en) * 2001-04-16 2004-02-11 Bea Systems, Inc. System and method for web-based personalization and ecommerce management
AU2002254635B2 (en) * 2001-04-16 2008-05-01 Oracle International Corporation System and method for rules-based web scenarios and campaigns
WO2003043334A3 (en) * 2001-11-16 2003-11-20 Koninkl Philips Electronics Nv Creating agents to be used for recommending media content
JP2005509965A (en) * 2001-11-16 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Creating an agent used to recommend media content
WO2003043334A2 (en) * 2001-11-16 2003-05-22 Koninklijke Philips Electronics N.V. Creating agents to be used for recommending media content
WO2004034706A1 (en) * 2002-10-09 2004-04-22 Koninklijke Philips Electronics N.V. Building an interest profile on a media system with stored agents
US7653930B2 (en) 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US7992189B2 (en) 2003-02-14 2011-08-02 Oracle International Corporation System and method for hierarchical role-based entitlements
US7774601B2 (en) 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration

Also Published As

Publication number Publication date
WO2000038078A9 (en) 2001-05-10
AU2377200A (en) 2000-07-12

Similar Documents

Publication Publication Date Title
US8219642B2 (en) System and method for adding targeted content in a web page
US7188143B2 (en) Messenger-controlled applications in an instant messaging environment
US11520455B2 (en) Dioramic user interface having a user customized experience
JP4227515B2 (en) Selecting content according to the communication environment
US20020070978A1 (en) Dynamically configurable graphical user environment
US6731314B1 (en) Network-based three-dimensional multiple-user shared environment apparatus and method
EP1901211B1 (en) Software robot apparatus
WO1998020434A2 (en) System and method for displaying information and monitoring communications over the internet
US20070033175A1 (en) Data sharing
WO1998020434A9 (en) System and method for displaying information and monitoring communications over the internet
US20020055968A1 (en) Distributed application interface and authentication process
US6125402A (en) Method and system for executing one of several forms of a multi-purpose program
US20080229233A1 (en) Pushed functionality
JP2001014282A (en) Device and method for information processing and medium
US7329188B2 (en) Contextually accurate dialogue modeling in an online environment
US20020080184A1 (en) Application container for a graphical user environment
US20040056878A1 (en) Digital assistants
WO2000038078A1 (en) Methods and systems for providing personalized services to users in a network environment
Andersen WWW as self-organizing system
KR100424145B1 (en) User-based agent, a chatting method using it and system thereof
US20230074240A1 (en) Methods, Systems and Computer Program Products for Fine Grained Cloud Gaming Session Control
US7908561B2 (en) Apparatus and method of providing web based personalized service
EP1901210A2 (en) Method for transmitting software robot message
Vernieri A web services approach to generating and using plans in configurable execution environments
Wynblatt et al. Multimedia meets the internet: present and future

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: C2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

COP Corrected version of pamphlet

Free format text: PAGES 1-25, DESCRIPTION, REPLACED BY NEW PAGES 1-20; PAGES 26-35, CLAIMS, REPLACED BY NEW PAGES 21-28; PAGES 36-55, APPENDIX, REPLACED BY NEW PAGES 29-45; PAGES 1/8-8/8 DRAWINGS, REPLACED BY NEW PAGES 1/8-8/8; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase