User support apparatus and system using agents
Claim Score by NHIP
Abstract
A user support function is realized in a user terminal. The function may be implemented in the user terminal or sent from a server. The function helps the user using characters activated by agent programs. Each character has a specific area to cover as an expert. When the user needs restaurant information, a "gourmet" character appears on the screen to respond to the user request. The character analyzes the user request through text search.

Term
Term ended
Projected expiry passed 30 March 2021, 5.5 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
39 claims: 12 independent, 27 dependent
- 1A user support apparatus comprising:an agent storage which stores data of a first agent being dedicated to a user serving based on information of the user and data of a second agent being an expert of a specific area;and an agent output comp which outputs the first and second agents derived from said data;wherein the first agent, when the second agent selects information necessary to serve the user, presents a selection guide to the second agent based on the user information in a manner that the user can recognize the presentation of the guide.
- 5A user support apparatus comprising:a front processor which works at a user interface level;and a middle processor which handles and stores data to be presented to the user via the front processor;wherein the front processor comprises an agent storage which stores data of a first agent being dedicated to the user serving based on information of the user and data of a second agent being an expert of a specific area, and wherein the first and second agents are designed in said data so that the first agent, when the second agent requests the middle processor provide information necessary to serve the user, presents a selection guide to the second agent based on the user information in a manner that the user can recognize the presentation of the guide.
- 6A user support apparatus comprising:a front processor which works at a user interface level;and a back processor which acquires data to be presented to the user from outside;wherein the front processor comprises an agent storage which stores data of a first agent being dedicated to the user serving based on information of the user and data of a second agent being an expert of a specific area, and wherein the first and second agents are designed in said data so that the first agent, when the second agent requests the back processor provide information necessary to serve the user, presents a selection guide to the second agent based on the user information in a manner that the user can recognize the presentation of the guide.
- 7A user support apparatus comprising memory, program modules loaded on the memory and a CPU to execute the modules, wherein the modules include functions of executing a first agent and a second agent, the first agent being represented as a character to bridge the user and the apparatus and to serve the user in a user-dependent manner based on information of the user, and the second agent being presented as a character to bridge the user and the apparatus and to serve the user for a specific area as an expert thereof, and wherein the first agent, when the second agent selects information necessary to serve the user, presents a selection guide to the second agent based on the user information in a manner that the user can recognize the presentation of the guide.
- 8A user support apparatus comprising:an agent storage which stores data of a first agent and a second agent which bridge a user and the apparatus;and an agent output unit which outputs the first and second agents derived from said data;wherein the first and second agents are so configured to collaborate while having conversation recognizable from the user when the user requests a given service.
- 10Broadest claimClaim Score 82, broad(NHIP)A user support apparatus comprising:an agent controller which provides an agent to support a user;an request analyzer which analyzes a request input from the user;a response controller which presents to the agent controller necessary information for the requested service when the service has been judged processible and otherwise records the requested service as an unattained service.
- 12A user support apparatus comprising:an agent controller which provides an agent to support a user;a conversation data storage which stores conversation to be held between the user and the agent;an request analyzer which analyzes a request input from the user;a response controller which determines a response to the request based on result of the analysis;and a log storage which stores log of the conversation actually held between the user and the agent;wherein the response controller which presents to the agent controller necessary information, read from the conversation data storage, for the requested service when the service has been judged processible and otherwise records in the log storage the requested service as an unattained service.
- 13A user support apparatus using a character comprising:a first processor which conducts an agent level control and a second processor which conducts a character level control, the first processor comprising: a total system manager which provides a field for a plurality of agents to interact and manages the plurality of agents;and a plurality of agent controllers each of which, through a character, acquires and interprets a user request so as to realize substantial functions of a respective agent;and the second processor comprising: a character manager which provides basic functions to visually represent interaction between the plurality of agents at the character level;and a plurality of character controllers, each of which corresponds to one of the plurality of agent controllers and provides a series of character actions to the corresponding agent controller for use therein;wherein interface between a horizontal function between the plurality of agents which is provided by the total manager and the character manager, and an individual function provided by the agent controller and the character controller, is predetermined for the plurality of agent controllers and the plurality of character controllers.
- 22A client-server system using a character to support a user, wherein the client comprises a first processor which conducts an agent level control and a second processor which conducts a character level control, the first processor comprising:a total system manager which manages a plurality of agents to achieve interaction therebetween;and a plurality of agent controllers each of which, through a character, acquires and interprets a user request so as to realize substantial functions of a respective agent;and the second processor comprising: a character manager which represents the interaction between the plurality of agents at the character level;and a plurality of character controllers, each of which corresponds to one of the plurality of agent controllers and provides a series of character actions to the corresponding agent controller for use therein;wherein the server, collaborating with the client, interprets the user request and presents to the client information necessary to respond the request.
- 25An user support method using a character, comprising:conducting agent level control and conducting character level control, wherein the agent level control provides a total management process to manage a plurality of agents to achieve interaction therebetween and a plurality of agent control processes, each of which responds to a user request via a respective character;and wherein the character level control provides a character control process to represent the interaction between the agents at the character level and a plurality of character control processes, each of which corresponds to one of the agent control processes and provides a series of character actions to the corresponding agent control process;and wherein interface between a horizontal function between the plurality of agents and a function individual to each agent is predetermined for the plurality of characters.
- 26A user support apparatus comprising:a user utterance identification block which comprises an electronic user utterance list holding expected utterance and identifies user utterance when it is inputted;a plurality of response blocks, each of which makes one of agents, the agents being designed to have respective specific areas to work, respond to the inputted utterance when the utterance is included in a specific area assigned to the agent;and a registration unit which stores in a storage region provided for each specific area a network address of an web site according to a request of the user.
- 31A user support apparatus comprising:a user utterance identification block which comprises an electronic user utterance list holding expected utterance and identifies utterance of the user when it is inputted;and a response block which has an electronic agent action library to respond to the utterance and which makes an agent respond to the utterance;a search item holder which acquires and holds in advance items of information the user wishes to search;and a search unit which conducts search for the items;wherein the utterance identification block further comprises an additional utterance list containing utterance for which the search unit is assumed to start the search, and wherein the search unit starts the search when the utterance of the user is detected contained in the additional utterance list.
Independent claims12
378 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
[0001] 1. Field of the Invention
[0002] The present invention relates to a technique for supporting users in an electronic manner. This invention particularly relates to an apparatus and a system for supporting users by providing information necessary for the users employing agents.
[0003] 2. Description of the Related Art
[0004] Since the Internet access at home has been common recently, WWW (World Wide Web) users are growing rapidly. As it is convenient for the users at home to access to a huge amount of information from all over the world, the number of users is further increasing.
[0005] Now users can believe that almost all the necessary information exists somewhere in the huge number of web sites. The number of web sites or pages, however, has become too large for users to reach the information they need although they know that the information exists somewhere in the web sites.
[0006] Portal sites with search engines who are aware of the above situation have been trying hard to sophisticate search methods by, for example, making information hierarchical with the help of the portal sites, users can efficiently find necessary information out of the flood of information using search conditions or formulas including logical OR and logical AND in each topic area predefined by the portal sites.
[0007] It becomes, however, extremely difficult for general users to use highly complicated and logical search formulas in today's environment where most of the web population is beginners. The problem is becoming to be more difficult as the hierarchy of information becomes deeper, and the classification of information is complicated to be instantly understood. The amount of information will spoil the utilization of information as the number of sites is still increasing, and more and more beginners are coming in the web world.
[0008] It is therefore an object of the present invention to help users reach information they need in a friendly virtual environment. It is another object of the present invention to provide a technique for supporting users to smoothly conduct operations in computers and other devices.
SUMMARY OF THE INVENTION
[0009] According to one aspect of the present invention, a user support apparatus is provided. The apparatus comprises an agent storage and an agent output unit. The agent storage stores data of a first agent being dedicated to a user serving based on information of the user and data of a second agent being an expert of a specific area, whereas the agent output unit outputs the first and second agents derived from said data visually or audibly to the user.
[0010] In this configuration, the first agent gives a selection guide to the second agent when the second agent selects information necessary for providing the service. The process of giving the guide is conducted visibly from the user.
[0011] The first agent therefore reduces user operation as it acts on the second agent for the user. Another advantage is that the user can understand that the direction of the job being done by the second agent.
[0012] The process of giving the guide is realized just for showing it to the user. It is therefore not necessary for the first agent to actually give the guide to the second agent inside the apparatus. System designers can easily understand it more convenient to provide or design an agent manager to manage the first and second agents collectively instead of designing the two agents independently. In this sense, the agent manager controls the first agent and second agent as “puppets” inside the apparatus and the guide given from the first agent to the second agent is controlled by the agent manager outputting images and/or audio data to the user. Even such a case is, however, described as “the first agent gives a guide to the second agent” in this specification.
[0013] The apparatus may further comprise an interface through which the user inputs an instruction. The second agent may select the information putting higher priority on the inputted instruction than the given or presented guide from the first agent. In this configuration, the user can modify, cancel or change the guide given by the first agent, as he/she wants. The interface may comprise a user interface by which the user can input necessary instructions and a request inputting unit provided in the agent manager for accepting requests from the user.
[0014] According to another aspect of the present invention, a user support apparatus is provided. The apparatus comprises a front processor which works at a user interface level and a middle processor which handles and stores data to be presented to the user via the front processor. The front processor comprises an agent storage which stores the data of a first agent being dedicated to the user serving based on information of the user and data of a second agent being an expert of a specific area. The first and second agents are designed in such a manner that the first agent, when the second agent requests the middle processor provide information necessary to serve the user, presents a selection guide to the second agent based on the user information in the manner that the user can recognize the presentation of the guide.
[0015] The front processor may have a functional block to make the user interact with the apparatus, realized by software, hardware or any combinations of the two. In this configuration, the middle processor serves for the user as an information accumulator and manager, and can provide information necessary for the user more efficiently in general. “The middle processor” does not necessary assume the existence of a back processor or any other processors.
[0016] According to still another aspect of the present invention, a user support apparatus is provided. The apparatus comprises a front processor which works at user interface level and a back processor which acquires data to be presented to the user from outside. The back processor may comprise an agent providing unit which sends said data to the agent storage. In this configuration, also the first and second agents collaborate in an aforementioned manner. The back processor may acquire the latest agent data and information necessary for the user from, for example, arbitrary web sites connected to the Internet. Here, the “back processor” does not necessary assume the existence of the middle processor or any other processors.
[0017] The back processor may function as a server for serving the agent data to the front processor via the Internet or any other networks. The server can be configured in various manners such that the main functions remain at a server side like CGI or Common Gateway Interface, the main functions are transferred to the client side like a Java (trademark) applet or Active X (trademark), and an API or Application Program Interface type where the main functions are provided at both the server and client sides like a Java application.
[0018] In this configuration, the agent storage may store a local agent which has existed in the front processor without provided from the back processor and a remote agent which has come to exist provided from the back processor. The local agent is convenient in that it is generally easily customized in each apparatus and is available even when the apparatus is in an off-line state. The remote agent on the other hand is convenient in that it can be sent from the user to a plurality of apparatuses and is generally easily updated or registered at the server end. The local agent and remote agent may be provided to the user in such a manner that the user cannot distinguish them so that a seamless environment may be provided.
[0019] According to still another aspect of the present invention, a user support apparatus is provided. The apparatus comprises memory, program modules loaded on the memory and a CPU to execute the modules which may include functions of executing a first agent and a second agent, the first agent being represented as a character to bridge the user and the apparatus and to serve the user in a user-dependent manner based on information of the user, and the second agent being represented as a character to bridge the user and the apparatus and to serve the user for a specific area as an expert thereof. In this configuration, the first agent, when the second agent selects information necessary to serve the user, presents a selection guide to the second agent based on the user information whereby the user can recognize the presentation of the guide.
[0020] According to still another aspect of the present invention, a user support apparatus is provided. The apparatus comprises an agent storage which stores data of a first agent and a second agent which bridge a user and the apparatus and an agent outputs unit which outputs the first and second agents derived from said data. The first and second agents are so designed to collaborate while having conversion or dialog recognizable from the user when the user requests a given or arbitrary service. The conversation may show the process to optimize the service for the user. The user can understand the process from the conversation.
[0021] According to any one of the aforementioned aspects, a user-friendly agent can let the user know the processes conducted in the apparatus so that the user can judge the processes are correctly performed for him/her.
[0022] The middle processor may comprise a meta information generator which generates meta information by analyzing a page which is a collective of data necessary for the user and which is provided from the back processor, and a write controller which stores the page and the meta information in a local memory device by associating them. “Meta information” corresponds to the information with regard to the page after “meta data” meaning “data with regard to data”.
[0023] In this configuration, the page and meta information are combined, one being embedded in another or the two being linked to be associated with. The combination is then stored in a local memory device. The user can roughly understand or search the content or subject of the page using the meta information. The page can be retrieved from the local memory generally faster than a global search as long as the page exists in the local memory or a cache memory.
[0024] The meta information generator may further comprise a keyword detector to detect keywords in the page, a subject analyzer to analyze the subject intention, purpose or theme of the page, and a meta information extractor to extract meta information from the page based on the theme analyzed. The extracted meta information is stored in the memory device associated with the page.
[0025] The meta information generator may further comprise a pre-check unit to judge whether the page is a desired page based on the detected keywords. When the page is not a desired page, the page may not be stored in the memory device. Contrarily, the page may be stored in the memory device when the page is judged to be the desired one.
[0026] The middle processor may comprise a cache search unit. The cache search unit may judge whether the desired page already exists in the local memory device by matching the keywords with the meta information stored in the memory device. The cache search unit may instruct to read the page from the memory device when the page is judged to exist in the memory and may instruct to retry search for the page when it is not judged to exist in the memory. A page found by the retry search may be inputted to the meta information generator and the meta information generated may be associated with the page and is stored in the memory.
[0027] The middle processor may further comprise a search pre-processor to support the search conducted by the back processor by manipulating the keyword reflecting the intention of the user in a predetermined manner. The search pre-processor may comprise a condition adding unit to add a keyword which is made objective based on the intention of the user assumed from the keyword reflecting the intention of the user and search condition setting unit to set a search condition or formula including, for example, a logical OR in accordance with the original keyword and the added keyword. The added condition may be reflected in the guide given from the first agent.
[0028] The middle processor may further comprise a pre-search controller to predefine information the user may inquire, based on the personal information of the user. In this configuration, the middle processor may instruct the back processor to search, while the apparatus is not used by the user, for the assumed or anticipated information without an expressed instruction from the user. Pages thus acquired may be stored in the memory device together with the meta information so that the response to the user's future request is improved.
[0029] In one aspect of the present invention, the middle processor is implemented in a home server and the front processor is implemented in a device controlled by the home server. The front processor may present the operational information of the device, for example, control or status information of the device to the user and the middle processor may manipulate or improve the operational information and send it to the front processor.
[0030] In another aspect of the present invention, the back processor may be implemented in a server on a network for example in a web server. And the front processor may be implemented in a device, for example, a PC, a mobile terminal such as a mobile phone, which can access to the server. The front processor may accept a request for indicating information from the user and the back processor may acquire the requested information from an arbitrary information source on the network and send it to the front processor.
[0031] According to still another aspect of the present invention, a user support apparatus is provided. The apparatus comprises an agent controller which provides an agent to support a user, a request analyzer which analyzes a request input from the user, and a response controller which presents to the agent controller necessary information for the requested service when the service has been judged processible and otherwise records the requested service as an unattained service. The apparatus may further comprise a communication unit which electronically reports the recorded unattained service to the administrator of the apparatus.
[0032] The “request” may have a specific purpose such as “Teach me how to operate a PC” or may be a chat just like “Hello” to have a dialog with an agent. In this sense, “necessary information” may relate to the operation of a PC or to utterance data corresponding to each scene. “Utterance” in this specification refers not only to actually uttered words but also inputted text-based requests/responses to/from the agents and the like.
[0033] There are at least two cases where the service is judged not processible. In the first case, the request could not be analyzed or interpreted, whereas in the second case, information to respond to the request could not be found even though the request itself was properly interpreted. There are at least two cases where the information could not be found. In the first case, the information could not be found inside the apparatus, whereas in the second case, the information could not be found even after the search was conducted outside the apparatus. Contrarily the service is judged processible when the request is understood or interpreted and necessary information to cope with the request exists. A series of processes to handle the request is performed in an electronic manner and the term “understand” or “interpreted” is not necessarily used in the sense that a human can understand the request.
[0034] There are at least two meanings of “recording the requested service as an unattained service”. In the first meaning, the unattained service is recorded with an identifier while storing all the request in a log file. In the second meaning, only the unattained service is recorded when it is detected.
[0035] According to still another aspect of the present invention, a user support apparatus is provided. The apparatus comprises an agent controller which provides an agent to support a user, a conversation or dialog data storage which stores conversation to be held between the user and the agent, an request analyzer which analyzes a request input from the user, a response controller which determines a response to the request based on result of the analysis, and a log storage which stores the log of conversation actually held between the user and the agent. The response controller presents to the agent controller necessary information, read from the conversation data storage, for the requested service when the service has been judged processible and otherwise records in the log storage the requested service as an unattained service.
[0036] The “response” can be made regardless of whether the service is judged processible or not. An agent can “apologize” the user when the service is judged not processible. In this case, a front end process works to apologize the user and a back end process works to record the unattained service so that the system improvement on conversation data, an algorithm for analyzing the request and the sophistication of information search necessary for the service become possible.
[0037] According still another aspect of the present invention, a user support apparatus is provided. The apparatus comprises a first processor which conducts an agent level control and a second processor which conducts a character level control. The first processor comprises a total system manager which provides a field for a plurality of agents to interact and manages the agents, and a plurality of agent controllers each of which, through a character, acquires and interprets a user request so as to realize substantial functions of a respective agent. The second processor comprises a character manager which provides basic functions to visually represent interaction between the plurality of agents at the character level, and a plurality of character controllers, each of which corresponds to one of the agent controllers and provides a series of character actions to the corresponding agent controller for use therein. Interface between a “horizontal” function between the plurality of agents which is provided by the total manager and the character manager, and a “vertical” or an individual function provided by agent controller and the character controller, is predetermined for the plurality of agent controllers and the plurality of character controllers.
[0038] In this apparatus, the total support manager and the character manager have a function which works on a plurality of agents simultaneously. These managers therefore have a horizontal function to explicitly or implicitly work on a plurality of characters. On the other hand, the gent controller and the character controller have a vertical function which works on a specific agent. The interface between the horizontal and the vertical functions is standardized, which makes it possible to add a vertical function or an agent-dependent function later according to the interface. The interface allows to design new agent-dependent functions so that agent system is easily improved.
[0039] Characters can interact, for example, appear on the same screen and talk with each other as the interface absorbs the difference of the input/output formats of the characters. Conventionally, agents developed in different companies usually cannot communicate with each other. The present apparatus, however, realizes the communication by implementing agents obeying the interface. Based on this feature, a new type agent system is provided.
[0040] According to still another aspect of the present invention, a client-server system using a character to support a user is provided. In this system, the client comprises a first processor which conducts an agent level control and a second processor which conducts a character level control. The first processor comprises a total system manager which manages a plurality of agents to achieve interaction therebetween, and a plurality of agent controllers each of which, through a character, acquires and interprets a user request so as to realize substantial functions of a respective agent. The second processor comprises a character manager which represents the interaction between the plurality of agents at the character level, and a plurality of character controllers, each of which corresponds to one of the agent controllers and provides a series of character actions to the corresponding agent controller for use therein. In this system, the server, collaborating with the client, interprets the user request and presents to the client information necessary to respond the request.
[0041] The server may further comprise a control window manager which provides functions of the total manager and the character manager to the client. The server here may be any element, component, module, unit, device and the like which can provide a service to the client. The server may comprise a plurality of expert or specialized servers, each of which, for service in specific area, provides functions of the agent controller and the character controller to the client.
[0042] According still another aspect of the present invention, a user support method using a character is provided. The method conducts agent level control and character level control. The agent level control provides a total management process to manage a plurality of agents to achieve interaction therebetween and a plurality of agent control processes, each of which responds to a user request via a respective character. The character level control provides a character control process to represent the interaction between the agents at the character level and a plurality of character control processes, each of which corresponds to one of the agent control processes and provides a series of character actions to the corresponding agent control process. The interface between a horizontal function among the plurality of agents and a function individual to each agent is predetermined for the plurality of characters.
[0043] According to still another aspect of the present invention, a user support apparatus is provided. The apparatus comprises a user utterance identification block which comprises an electronic user utterance list holding assumed or anticipated utterances and identifies a user utterance when it is inputted, a plurality of response blocks, each of which makes one of agents being designed to have a respective specific area, respond to the inputted utterance when the utterance is included in the specific area assigned to the agent, and a registration unit which stores in a storage region provided for each specific area a network address of an web site according to a request of the user.
[0044] The “action” of an agent may be an imitated utterance, an image, a behavior and any other activities to be performed to support the user. In this sense, the action may relate to any process element or process flow. The e “storage region” relates to a conceptually single physical entity to classify the network addresses of web sites as bookmark information. The region, however, is not necessarily a single physically continuous area. The storage region works as a folder to classify files. A single folder may have subfolders in it so that the bookmark information may be layered.
[0045] The response block may comprise a search unit which searches a web site having information desired by the user therein. The registration unit stores the network address of the searched web site to a storage region assigned to the response block having the search unit which conducted the search.
[0046] The apparatus may further comprise a display unit which presents registered web sites classified to the storage regions.
[0047] According to still another aspect of the present invention, a user support system is provided. In this system, a plurality of user support apparatuses are connected to the network as independent nodes. Each apparatus has its own specific area. Each apparatus stores a respective response block while having the utterance identification block commonly with other apparatuses. The identification block is stored in one of the apparatuses. In this configuration, the apparatus containing the identification block in it may act as an entrance or portal server which can specify all the user utterances processible in the system. Based on the specified utterance, a suitable apparatus may be selected. The system efficiency can be improved as the system load is distributed by assigning the identification of the user utterance and the response from an agent to a plurality of nodes.
[0048] In this system, the user utterance collection may be provided by a library providing unit to any developers who wish to use the collection. The library providing unit may transmit the collection in an off-line or on-line manner. Off-line distribution may be realized with a normal mail. For on-line distribution, a server managing the user utterance collection therein may be provided. The use right of the library site is then licensed. In the user utterance collection, a general utterance library recording general utterances of users in a library described in natural languages may be licensed. According to this license scheme, a third party can develop its own user utterance collection and an agent action collection independently to realize its own user support apparatus, which eventually improves the functionality of the entire user support system.
[0049] According to still another aspect of the present invention, a user support apparatus is provided. The apparatus comprises a user utterance identification block which comprises an electronic user utterance list holding assumed or anticipated utterance and identifies a user utterance when it is inputted, and a response block which has an electronic agent action library to respond to the utterance and which makes an agent respond to the utterance, a search item holder which acquires and holds in advance items of information the user wishes to search, and a search unit which conducts search for the items. The utterance identification block further comprises an additional utterance list containing utterances for which the search unit is planed or programmed to start the search. The search unit starts the search when the user utterance is detected contained in the additional utterance list.
[0050] The content of the additional utterance collection may be included in the user utterance collection so that the user utterance collection may have the content of both of additional utterances and user utterances in this apparatus. In this configuration, a user utterance can be searched in the user utterance collection and the additional utterance collection simultaneously.
[0051] The search unit may start the search spontaneously without an instruction from the user. In this configuration, a quick response can be realized when the user requests a certain information as the search for information has been conducted beforehand. The searched information may be presented to the user without a user request. The search may be performed periodically or in hours when the network is not busy.
[0052] In this apparatus, each field of information may be associated with a character. The apparatus may further comprise a character display unit which presents to the user result of the search in the form of an utterance of a character which is associated with a field to which the search result is classified. In this configuration, the character appears to search for the information spontaneously so that a friendlier environment can be provided.
[0053] In this apparatus, the search item holder may further comprise a bookmark holder which stores the network address of a web site. The search unit acquires update information of the web site. The character display unit presents the user the update information in the form of an utterance of a character when a web site which is classified to a field with which the character is associated.
[0054] The present invention has been summarized according to several aspects thereof. These aspects are, however, only examples and arbitrary combinations of the above aspects or the elements therein are also effective.
BRIEF DESCRIPTION OF THE DRAWINGS
[0055]FIG. 1 is a block diagram of the user support apparatus according to Embodiment 1.
[0056]FIG. 2 is another block diagram of the user support apparatus according to Embodiment 1.
[0057]FIG. 3 is still another diagram of the user support apparatus according to Embodiment 1.
[0058]FIG. 4 is still another diagram of the user support apparatus according to Embodiment 1.
[0059]FIG. 5 illustrates the configuration of the apparatus shown in FIG. 1.
[0060]FIG. 6 shows the internal structure of the agent storage in the front processor.
[0061]FIG. 7 shows the internal structure of the agent manager in the agent storage.
[0062]FIG. 8 is an information table generated as a subset of the personal information database to be referred to when a recipe is presented to the user.
[0063]FIG. 9 is a block diagram of the meta information generator in the middle processor.
[0064]FIG. 10 illustrates a meta information file generated in the middle processor.
[0065]FIG. 11 shows a collection of the meta information file and page data.
[0066]FIG. 12 shows the meta information file and page data associated with each other using link information.
[0067]FIG. 13 illustrates the structure of a search pre-processor in the middle processor.
[0068]FIG. 14 is a reference table provided in the search pre-processor of the middle processor.
[0069]FIG. 15 is a flowchart showing the process to read a target page from the cache memory or to store the page in the cache memory.
[0070]FIG. 16 is a flowchart to acquire beforehand a page which the user may need.
[0071]FIG. 17 illustrates a screen which first appears when the user uses an agent.
[0072]FIG. 18 illustrates a screen on which a recipe agent is called by a user-dedicated agent.
[0073]FIG. 19 shows the result of the initial search by the recipe agent.
[0074]FIG. 20 shows the result of the secondary search by the recipe agent.
[0075]FIG. 21 is a flowchart for a service to be performed when the user issues a request.
[0076]FIG. 22 illustrates the configuration of an apparatus according to Embodiment 2.
[0077]FIG. 23 is a flowchart showing the process to initiate an agent in Embodiment 2.
[0078]FIG. 24 illustrates the interaction between the user and the agent in Embodiment 2.
[0079]FIG. 25 illustrates the interaction between the user and the agent in Embodiment 2.
[0080]FIG. 26 illustrates the interaction between the user and the agent in Embodiment 2.
[0081]FIG. 27 illustrates the interaction between the user and the agent in Embodiment 2.
[0082]FIG. 28 illustrates the interaction between the user and the agent in Embodiment 2.
[0083]FIG. 29 illustrates the interaction between the user and the agent in Embodiment 2.
[0084]FIG. 30 is the internal block diagram of the log storage.
[0085]FIG. 31 shows an unattained request list.
[0086]FIG. 32 show s the configuration of a client-server system according to Embodiment 3.
[0087]FIG. 33 shows the structure of a control window management site according to Embodiment 3.
[0088]FIG. 34 shows the structure of a chat server according to Embodiment 3.
[0089]FIG. 35 shows the structure of an index file contained in the chat server.
[0090]FIG. 36 shows the structure of an assumed utterance collection contained in the chat server.
[0091]FIG. 37 shows the structure of an access information file contained in the chat server.
[0092]FIG. 38 shows the structure of an action file contained in the chat server.
[0093]FIG. 39 shows the structure of a user terminal which is a client machine.
[0094]FIG. 40 illustrates a chat agent which appears when the user terminal is initiated.
[0095]FIG. 41 illustrates a recipe agent which appears together with the chat agent when the user asks about recipe.
[0096]FIG. 42 illustrates the dialog held between the chat agent and the recipe agent.
[0097]FIG. 43 illustrates a scene where the recipe agent presents the search result to the user.
[0098]FIG. 44 shows a scene where a third agent or a travel agent appears to respond to the user.
[0099]FIG. 45 shows the entire structure of a network system including a user support system according to Embodiment 4.
[0100]FIG. 46 shows the structure of an originating server included in the user support system.
[0101]FIG. 47 shows the structure of the user utterance collection contained in the originating server.
[0102]FIG. 48 shows the structure of an access information file contained in the originating server.
[0103]FIG. 49 shows the structure of a bookmark file contained in the originating server.
[0104]FIG. 50 shows the structure of a gourmet server contained in the user support system.
[0105]FIG. 51 shows the structure of a user terminal used in the user support system.
[0106]FIG. 52 illustrates a local agent which appears when the user terminal is initiated.
[0107]FIG. 53 illustrates a chat agent which appears when the user speaks.
[0108]FIG. 54 illustrates a gourmet agent which appears when the user asks a question regarding a Peking ravioli restaurant.
[0109]FIG. 55 illustrates a screen where the gourmet agent presents the search result to the user.
[0110]FIG. 56 illustrates a screen where a registered bookmark information is presented to the user.
[0111]FIG. 57 shows the internal structure of the originating server.
[0112]FIG. 58 shows the internal structure of an additional index file.
[0113]FIG. 59 shows the internal structure of an additional user utterance collection.
[0114]FIG. 60 shows the internal structure of the gourmet server.
[0115]FIG. 61 shows the internal structure of the favorite data.
[0116]FIG. 62 shows the structure of a page stored in the agent action library.
[0117]FIG. 63 shows the screen displayed based on the page.
[0118]FIG. 64 shows the screen in which the favorite register accepts the registration of a bookmark from the user.
[0119]FIG. 65 shows the screen in which a favorite character registered by the user is displayed.
[0120]FIG. 66 shows the screen in which Gourmet Agent presents the search result.
DETAILED DESCRIPTION OF THE INVENTION
[0121] The invention will now be described based on the preferred embodiments, which do not intend to limit the scope of the present invention, but exemplify the invention. All of the features and the combinations thereof described in the embodiments are not necessarily essential to the invention.
[0122] Embodiment 1
[0123] A user support apparatus according to embodiment 1 supports a user employing two types of agents. The first agent or a user-dedicated agent provides services to the user in one-to-one relation with the user to be friendly to the user. The second agent or an expert agent has its own specific area such as information search and so on responsive to the user's request.
[0124] The first agent generally has more opportunities to contact the user and accumulates the personal information of the user such as purchase record, food, hobby, health condition and so on. The first agent presents a guide to the expert agent for the user when the expert agent acts for the user.
[0125] When the user, for example, requests the movie expert agent to recommend new arrivals, the first agent, knowing the user's preference as “horror” and “love comedy”, may utter on the screen, “Let us know very horrible ones” or “Try to find lovely and funny ones”. Then the second agent may respond, “Trust me. Wait for a moment.”
[0126] From the conversation between the agents, the user can understand the search process is conducted properly. The more precisely the first agent can convey the feeling of the user, the more the user feels convenient with the first agent. The user may feel intimacy with the first agent as a virtual pet. The more intimately the user feels with the first agent, the more easily the first agent can collect the personal information of the user as a general tendency. The image or any other appearance of the first agent may be selected by the user or may be designed by the user.
[0127] The purpose of the present embodiment is almost achieved if the conversation between the agents is funny. In conventional search methods, for example, “Now searching. Please wait for a moment” or the like may be displayed but the user is not saved. According to the present embodiment, the agents can give a relaxation to the user while the user is waiting for the search result, by playing a comic chat.
[0128] The agents are mainly described in FIGS. <b>6</b> to <b>8</b> and FIG. 17 and later.
[0129] FIGS. <b>1</b> to <b>4</b> illustrate various types of user support apparatuses according to the present embodiment. In any case, the apparatus comprises an arbitrary combination of a front processor <b>12</b>, a middle processor <b>14</b> and a back processor <b>20</b>, which are the three major processing units. The front processor <b>12</b> interacts with the user. The middle processor <b>14</b> supports the front processor <b>12</b> behind it and acquires and stores necessary information in the format the user needs. The back processor <b>20</b> collects necessary information from the Internet and provides it to the middle processor <b>14</b>. The back processor <b>20</b> further, as a server, provides expert agents described later to more efficiently support the front processor <b>12</b>.
[0130] In FIG. 1, the user support apparatus comprises the front processor <b>12</b> and the middle processor <b>14</b> implemented in a PC <b>10</b>. The apparatus may include the back processor <b>20</b>. It should be noted that the degree of freedom to combine the processors is high. The middle processor <b>14</b> communicates with the back processor <b>20</b> implemented in a web server <b>18</b> via the Internet <b>16</b>.
[0131] In FIG. 2, the front processor <b>12</b> is implemented in a home electric appliance <b>30</b> and the middle processor <b>14</b> is implemented in a home server <b>32</b>. The middle processor <b>14</b> communicates with the back processor <b>20</b> implemented in the web server <b>18</b> via the Internet <b>16</b>. The home appliance <b>30</b> may be an audio-visual appliance such as a digital television set, a VCR and a digital camera. The home appliance <b>30</b> may be a traditional appliance such as a refrigerator and a washer, or may be any other appliances including a home security appliance having sensors. In any case, the home appliance <b>30</b> is managed by the home server <b>32</b>. The front processor <b>12</b>, for example, manages information displayed on a LCD panel provided on a refrigerator, obtains user's instruction with regard to the icebox and informs the user of the condition of the icebox. The middle processor <b>14</b> on the other hand may display “today's recipe” and other information which is beyond the normal operational information of the refrigerator.
[0132] In FIG. 3, the front processor <b>12</b> is implemented in a mobile terminal <b>40</b> such as a cellular phone and the middle processor <b>14</b> and the back processor <b>20</b> are both implemented in the web server <b>18</b> where the mobile terminal <b>40</b> and the web server <b>18</b> communicate via the Internet <b>16</b>. In this configuration, the middle processor <b>14</b> is also implemented in the web server <b>18</b> and the mobile terminal <b>40</b> is comparably easily realized in a small body of the terminal.
[0133] In FIG. 4 the configuration is almost the same as FIG. , but only the back processor <b>20</b> is implemented in the web server <b>18</b>. The middle processor <b>14</b> is skipped to provide a simplified service.
[0134]FIG. 5 is a block diagram of the user support apparatus according to the configuration shown in FIG. 1. The PC <b>10</b> may be a normal computer and comprises a PCU, memory and program modules to support users loaded on the memory. The blocks here are drawn in terms of functions characteristic to the present embodiment and the skilled in the art can understand the blocks can be realized with hardware only, software only or any other combinations of the two.
[0135] The front processor <b>12</b> and the middle processor <b>14</b> are implemented in the PC <b>10</b>. The back processor <b>20</b> is implemented in the web server <b>18</b>. The PC <b>10</b> and the web server <b>18</b> communicate via the network. In FIG. 5, the middle processor <b>14</b> and the back processor <b>20</b> are drawn closely, but in reality the Internet <b>16</b> exists between the two.
[0136] The front processor <b>12</b> has a user interface or UI <b>100</b> to input the user's instructions and to conduct any other user-related matters. The UI <b>100</b> may comprise an input device such as a keyboard and a mouse, a display device to display information to the user, and GUI and other programs.
[0137] An agent storage <b>104</b> has object data describing agents to support users. The object data may be hereinafter simply referred to as “the data” or “the agent data”. An agent output unit <b>102</b> outputs the agents to the user including the first and the second agents.
[0138] The first agent is user-dedicated and is provided by an agent providing unit <b>134</b> for each user in order to obtain the personal information of the user. The personal information is used for customizing services conducted by the second agent. The user-dedicated agent has a function to chat with the user to acquire the personal information. The function is made active when the agent has been frequently used by the user. For example the agent is switched to a “friend” internally when the number of contacts between the user and the agent reaches a predetermined value.
[0139] The second type agents are experts for each specific area such as cooking, movie, travel, PC, new products and shopping. The second agents conduct information search and provide desired information to the user.
[0140] From a different criterion, the agents are classified to “local agents” and “remote agents”. The local agents are originally held by the front processor <b>12</b> in a local environment and provide guidance information concerning the PC <b>10</b> to the user. The local agents may be realized with the functions of the OS of the PC <b>10</b>, with the functions of application programs implemented in the PC <b>10</b>, or with other functions. The local agents and the remote agents may be designed in such a manner that the user cannot distinguish them.
[0141] The remote agents are provided by the agent providing unit <b>134</b>. The remote agents may stay in the agent storage <b>104</b> after downloaded to the agent storage <b>104</b> or may be deleted from the agent storage <b>104</b> after the session between the PC <b>10</b> and the web server <b>18</b> is finished. The user may select whether the remote agents should stay or should be deleted. Here, the remote agents are mainly described although the user-dedicated agents and the expert agents may be local.
[0142] An agent processor <b>106</b> conducts necessary processes when the user issues an instruction to any one of the agents via the UI <b>100</b>. The agent storage <b>104</b> and the agent output unit <b>102</b> work as a mechanism to output the agent to be shown to the user, whereas the agent processor <b>106</b> works as a mechanism to input user instructions to the agent and to send the instructions to the middle processor <b>14</b>.
[0143] When the user asks an expert agent to provide information, the agent inquires the necessary information to the middle processor <b>14</b> reflecting a guide given from the user-dedicated agent. The middle processor <b>14</b> reads necessary information from a cache memory <b>120</b> when it is stored in the memory <b>120</b> and sends it to the expert agent. When the necessary information is not stored in the memory <b>120</b>, the middle processor <b>14</b> instructs the back processor <b>20</b> to acquire the necessary information from an arbitrary site on the Internet <b>16</b> and to send it to the middle processor <b>14</b>. Information thus obtained via the Internet <b>16</b> is hereinafter referred to as a “page” after the file format of HTML. The middle processor <b>14</b> modifies the page sent from the back processor <b>20</b> to store in the cache memory <b>120</b> for future use, while providing it to the user.
[0144] A search unit <b>130</b> of the back processor <b>20</b> searches for the page requested from the middle processor <b>14</b> via a communication unit <b>132</b>. The search unit <b>130</b> may be a meta search engine which can conduct search simultaneously using multiple search engines existing outside the apparatus. In that case, the search process is generally more efficient and reasonable.
[0145] An agent controller <b>140</b> of the agent providing unit <b>134</b> generates and manages remote agents and provides them as object data to the front processor <b>12</b>. The object data includes image data, chat data and other attribute data to provide characters to the remote agents. When the user gives a task to an agent in the front processor <b>12</b>, the task is obtained at the agent controller <b>140</b> and necessary action such as search is fulfilled.
[0146] A user information DB <b>150</b> stores the personal information of the user obtained through questionnaires, chat with agents and other routes in order to provide information to fit to the user preference and to more efficiently customize the functions of the user-dedicated agents.
[0147]FIG. 6 illustrates the object data developed inside the agent storage <b>104</b>. An agent manager <b>500</b> manages expert agents <b>504</b> including the user-dedicated agent <b>502</b> and a recipe agent <b>506</b>. The user-dedicated agent <b>502</b> is a “chat agent” whose main function is to chat with the user. Now the recipe agent <b>506</b> is described as an expert agent. The agent manager <b>500</b> controls the actions and conversation of the agents by selecting necessary chat data and the like from a dialog data storage <b>508</b> and by sending the data to the agent.
[0148]FIG. 7 illustrates the internal structure of the agent manager <b>500</b>. A request input unit <b>510</b> acquires a user request via the UI <b>100</b>. The acquired request <b>518</b> is sent to a keyword extractor <b>108</b>, which extracts keywords in a manner described later.
[0149] The extracted keyword <b>522</b> is sent back to a guide presenting unit <b>512</b> of the agent manager <b>500</b>. The unit <b>512</b> obtains user information from a personal information DB <b>118</b> and generates a guide which should be given from the user-dedicated agent <b>502</b> to the recipe agent <b>506</b>.
[0150] The generated guide <b>524</b> is sent to a search pre-processor <b>110</b> and a dialog processor <b>514</b>. The search pre-processor <b>110</b> sets a search condition or formula taking the guide <b>524</b> into consideration. The dialog processor <b>514</b> extracts from a dialog data storage <b>508</b> based on the guide <b>524</b>, conversation data which the user-dedicated agent <b>502</b> should utter and another conversation data which the recipe agent <b>506</b> should utter to respond to the user-dedicated agent <b>502</b>, and sends the data to the user-dedicated agent <b>502</b> and recipe agent <b>506</b>, respectively. The agents utter the conversation data.
[0151] The user may enhance, modify or deny the guide <b>524</b> and input another instruction when the user-dedicated agent <b>502</b> shows the guide <b>524</b> to the expert agent in manner recognizable from the user, for example, by displaying on the screen or by voice. The instruction from the user is also obtained by the request input unit <b>510</b> and is transmitted to the guide presenting unit <b>512</b> indicating that the instruction, which is hereinafter referred to as a “priority instruction <b>520</b>”, has higher priority than the guide <b>524</b>. The guide presenting unit <b>512</b> generates another guide <b>524</b> in accordance with the priority instruction <b>520</b> and transmits it to the search pre-processor <b>110</b> and the dialog processor <b>514</b>. In this manner, the service by the agents is modified.
[0152] An agent introduction unit <b>516</b> functions to make the user-dedicated agent <b>502</b> introduce expert agents such as the recipe agent <b>506</b> to the user. This function is initiated when the user-dedicated agent <b>502</b> calls an expert agent suitable for the request of the user. The dialog processor <b>514</b> retrieves, from the dialog data storage <b>508</b>, conversation data necessary to introduce the expert agent. The retrieved data is transmitted to the user-dedicated agent <b>502</b>. The user-dedicated agent <b>502</b> introduces the functions and roles of each expert agent to the user.
[0153]FIG. 8 illustrates a subset <b>118</b><i>a </i>which is extracted from a personal information DB <b>118</b> to recommend a recipe to the user under the collaboration of the user-dedicated agent <b>502</b> and the recipe agent <b>506</b>. The subset <b>118</b><i>a </i>comprises a preference column <b>530</b>, a column of recent meals <b>532</b>, a health condition column <b>534</b>, a column indicating user's unfavorite foodstuff <b>536</b>, a budget ‘A’ column indicating the acceptable budget for ordinary meals <b>538</b> and a budget ‘B’ column indicating the acceptable budget for special dinner <b>540</b>. According to FIG. 8, the user likes Chinese food. The user recently had Chinese (C), Chinese, Japanese (J), Chinese, Italian (I), Japanese, Japanese . . . as his/her meal. The health condition of the user is generally good but the blood pressure is a little high. The user dislikes shellfish and onion. The budget A is <b>800</b> yen and the budget B is <b>2000</b> yen.
[0154] In this circumstance, when the user inputs a request “Recommend a recipe”, the request is acquired by the request input unit <b>510</b> although the user believes that the request is accepted by the user-dedicated agent <b>502</b>. The keyword extractor <b>108</b> extracts keywords such as “recipe”, “recommend”, which are returned to the guide presenting unit <b>512</b>. The guide presenting unit <b>512</b> generates a guide <b>524</b> such as “not salty” referring to the health condition described in the subset <b>118</b><i>a</i>. The guide <b>524</b> is transmitted to the search pre-processor <b>110</b> and is ANDed to the keywords described later to limit the number of candidates to recommend.
[0155] The guide <b>524</b> is also transmitted to the dialog processor <b>514</b>. The user-dedicated agent <b>502</b>, under the control of the dialog processor <b>514</b>, talks to the recipe agent <b>506</b> “Don't choose salty ones”. By this time, the search pre-processor <b>110</b>, knowing the guide <b>524</b>, has prepared the actual search, which is executed by the search unit <b>130</b>. The user-dedicated agent <b>502</b> shows the process to the user by the conversation with the recipe agent <b>506</b>. The response of the recipe agent <b>506</b> may be simply as “Wait for a moment”. The response may be prepared such that it is independent from the guide given by the user-dedicated agent <b>502</b>.
[0156] The guide presenting unit <b>512</b> may detect, referring to the history column <b>532</b>, that the user has recently had so many Chinese meals and may make the user-dedicated agent <b>502</b> utter “Don't recommend Chinese food”, “Recommend Japanese or Italian food”. In the same manner, the guide presenting unit <b>512</b> may make the user-dedicated agent <b>502</b> utter, referring to the unfavorite stuff column <b>536</b>, “Avoid shellfish ” and “Below 800 yen” referring to the budget A column <b>538</b>.
[0157] The guide <b>524</b> from the guide presenting unit <b>512</b> may be considered when the search pre-processor <b>110</b> generates the search condition. Otherwise the guide <b>524</b> may be introduced when the search result by the search unit <b>130</b> has too many hits or when the search result contains too many pieces of information the user do not desire. The guide presenting unit <b>512</b> therefore may issue the guide <b>524</b> at several different timings checking the search process or result.
[0158] The guide presenting unit <b>512</b> for example makes the user-dedicated agent <b>502</b> utter “You recommended the same recipe yesterday”, “Don't exceed the budget”, “Avoid onion” when the search result is revealed without giving the guide <b>524</b>. In a background process, the guide presenting unit <b>512</b> may generate the guide <b>524</b> in the form of keywords such as “budget below 800 yen”, “NOT onion” to exclude “onion” in the search and sends the guide <b>524</b> to the search pre-processor <b>110</b>. Receiving the guide <b>524</b>, the search pre-processor <b>110</b> creates a new search condition and sends it to the search unit <b>130</b>, which retries search to find recipe information more suitable for the user.
[0159] The guide presenting unit <b>512</b> may generate many guides <b>524</b> referring to the subset <b>118</b><i>a </i>to limit the candidates when the search result includes too many information items. The guide presenting unit <b>512</b> may ask the user “We found too many items. Do you have any specific preference?” to acquire more keywords when the search result includes too many items even after the injection of many guides <b>524</b>.
[0160] The user, on the other hand, may input “I like Chinese food” when the user-dedicated agent <b>502</b> says “Don't recommend Chinese food” to the recipe agent <b>506</b>. The utterance of the user is handled as a priority instruction <b>520</b> and is provided to the guide presenting unit <b>512</b>, which initiates search over Chinese recipe.
[0161] The user-dedicated agent <b>502</b> may ask questions to the user when the request inputted from the user is unclear. The user-dedicated agent <b>502</b> may first ask “Which food do you prefer 1.Chinese 2.Japanese 3.Italian . . . ?”. The user-dedicated agent <b>502</b> may then ask “Which foodstuff do you like 1.pork 2. meat 3.chiken 4.fish 5.vegetable . . . ?” when the user shows “1.Chinese” to the first question.
[0162] The search by the recipe agent <b>506</b>, which is in reality conducted referring to the preference column <b>530</b>, may take time. The user-dedicated agent <b>502</b> may have conversation with the recipe agent <b>506</b> to give a relaxation to the user. The user-dedicated agent <b>502</b> may start conversation with the recipe agent <b>506</b> when the duration of the search exceeds a predetermined value. The duration may be measured by a timer which is provided in the user-dedicated agent <b>502</b> or in any other part of the apparatus. The user-dedicated agent <b>502</b> (simply referred to as “<b>502</b>” in the following conversation) may complain to the recipe agent <b>506</b> (simply referred to as “<b>506</b>”) for the user as follows.
[0163] (<b>502</b>) “Are you still searching! Are you really professional?
[0164] (<b>506</b>) “It's you who should help me if you have time to complain.”
[0165] (<b>502</b>) “You always say ‘Don't touch my job. I'm professional.’ Was it a lie?”
[0166] (<b>506</b>) “I don't tell a lie except to my wife. That's why we can live happily.”
[0167] (<b>502</b>) “It is persuasive.”
[0168] Many dialog templates can be prepared beforehand, as scenes where the agents should give a relaxation to the user are limited to a few cases.
[0169] In FIG. 5, the front processor <b>12</b> can provide agent services to the user with the help of the back processor <b>20</b>. In that sense, the middle processor <b>14</b> is not indispensable for the collaboration of the front processor <b>12</b> and the back processor <b>20</b>. The middle processor <b>14</b>, however, plays an important role to more efficiently support the user by managing pages requested by the front processor <b>12</b>. The middle processor <b>14</b> is now described.
[0170] An agent processor <b>106</b> acquires a request inputted via the recipe agent <b>506</b>. The request generally takes a form of a natural sentence as “Let me know a good recipe on meat”. The user naturally may input the request with independent keywords from the beginning. It is assumed here that the user inputs a request with a natural sentence.
[0171] The keyword extractor <b>108</b>, receiving the request, decomposes it to minimum units or words and extracts keywords, such as “meat”, “food” and “recipe”, to reflect the intention of the user. The obtained keywords are hereinafter referred to as “initial keywords” to be distinguished from keywords given by the search pre-processor <b>110</b> described later.
[0172] The initial keywords are transmitted to the search pre-processor <b>110</b>. The search pre-processor <b>110</b> deletes unnecessary keywords and generates more objective and suitable keywords, which are hereinafter referred to as “objective keywords”, as the initial keywords have not necessarily been selected to be most suitable for the search. Keywords not having been deleted, which hereinafter referred to as “selected initial keywords”, are then logically ANDed or multiplied with the objective keywords. The result by the AND operation is then logically ANDed with the guide <b>524</b> endowed by the guide presenting unit <b>512</b> of the agent manager <b>500</b>, and the final result is transmitted to the search unit <b>130</b> of the back processor <b>20</b> as a search condition in the form of a formula.
[0173] The search unit <b>130</b> conducts search over web sites and pages using the search condition via the communication unit <b>132</b> and the hit information items, which hereinafter referred to as “target pages” are obtained and sent to the agent controller <b>140</b> or directly to the agent processor <b>106</b>.
[0174] The target pages are also sent to a meta information generator <b>116</b>, which generates necessary meta information and stores the information with the target pages in the cache memory <b>120</b>. The information stored in the cache memory <b>120</b> then becomes ready for the user's future search. The cache memory <b>120</b> may be a disk type, semiconductor type and any other types of memory.
[0175] The initial keywords extracted by the keyword extractor <b>108</b> are also sent to a cache search unit <b>112</b>. The cache search unit <b>112</b> searches in the cache memory <b>120</b> using the keywords such as “meat” and reads a desired page, which is already stored therein while instructing the search pre-processor <b>110</b> or the search unit <b>130</b> to stop the global search to the Internet. The page thus obtained is displayed to the user via the recipe agent <b>506</b>. When the desired page, on the other hand, does not exist in the cache memory <b>120</b>, the global search through the search pre-processor <b>110</b> and/or the search unit <b>130</b> is executed.
[0176] The personal information DB <b>118</b> stores various information regarding the user including eternal information such as the preference of meals and hobbies, and temporal information such as the recent meals the user had. The personal information is generally acquired through the agent processor <b>106</b> while the user is interacting with the user-dedicated agent <b>502</b>. In another embodiment, the apparatus may comprise a schedule management function as a PIM or personal information manager, a health management function to calculate the calorie of the meals, and an accounting function to record the prices of goods the user purchased. The personal information may be obtained through such functions.
[0177] A preliminary search controller <b>114</b> specifies information in which the user may be interested based on the personal information stored in the personal information DB <b>118</b> and sends keywords concerning the specified information to the search pre-processor <b>110</b>. The search pre-processor <b>110</b>, triggered by the keywords sent from the preliminary search controller <b>114</b>, generates the objective keywords and the search condition, by which the search unit <b>130</b> starts the search. The search process initiated by the preliminary search controller <b>114</b> may be preferably handled in a background manner, for example, during nighttime when the user does not use the apparatus or during the daytime when the user does not input any instructions for a predetermined period. The process may be conducted when a mail program, not shown, establishes the connection with the Internet to download new e-mails. In any case, as long as the search process is handled in a background manner, the meta information generator <b>116</b> can have sufficient time for the processing.
[0178]FIG. 9 shows the internal structure of the meta information generator <b>116</b>. The target page sent from the search unit <b>130</b> is inputted to a keyword detector <b>350</b>. The detector <b>350</b> detects keywords from the target page analyzing the sentences and phrases contained in the target page. The detected keywords, which are hereinafter referred to as “keywords for checking”, are transmitted to a pre-check unit <b>352</b>.
[0179] The pre-check unit <b>352</b> judges whether the target page is really a page the user desires, based on the data stored in a check data storage <b>362</b>. The storage <b>362</b> stores frequent or important keywords for each segmented subject. Similar to a portal site, the subject may be first roughly classified into “news”, “computer”, “travel”, “gourmet”, “auction”, “money”, “sports”, “entertainment”, “music” and “job”. The “gourmet” may be subdivided to “restaurants”, “events”, “pro's recipe” “ethnic dish”, “cooking programs”, “nutrition” and “special information”. The check data storage <b>362</b> obtains keywords by, for example, checking the pages of the sites registered in the portal site according to each subdivided subject.
[0180] The pre-check unit <b>352</b> judges whether each of the checking keywords belongs to the above-mentioned subjects or subdivided subjects by matching the keywords for checking and keywords stored in the check data storage <b>362</b>. The target page is judged to meet the user's purpose when many keywords for checking belong to the subject “gourmet” and the initial keywords “meat”, “dish” and “recipe” which reflect the user's intention belong to the same subject “gourmet”. Instead of the subject “gourmet”, the subdivided subject “pro's recipe” may be used. In that case, the target page may be judged to be appropriate when <b>20</b>% of the keyword for checking belong to “pro's recipe”. The major function of the pre-check unit <b>352</b> is not to conduct a rigid check, but to delete pages which are apparently away from the user's intention. In this sense, the judgment may be relaxed. The process result is sent to a meta information write controller <b>360</b>.
[0181] A subject analyzer <b>354</b>, which is almost the same as the pre-check unit <b>352</b>, acquires the keywords for checking from the keyword detector <b>350</b>. The subject analyzer <b>354</b>, however, does not concern about the initial keywords and specifies a subject or a subdivided subject to which most of the keywords for checking belong. When “pro's recipe” is for example specified, the subject analyzer <b>354</b> judges the theme of the target page is “dish”, especially “recipe”, which is conveyed to a meta information extractor <b>356</b> and a meta information presumption unit <b>358</b>.
[0182] The meta information extractor <b>356</b> searches information concerning “recipe” in the target page and generates a file which is a collection of meta data, which is hereinafter referred to as “meta information file”. FIG. 10 illustrates an example of the meta information file <b>370</b>. In this file, a template comprising items such as “classification” and “name of dish”, in which necessary information pieces detected in the target page are embedded.
[0183] The meta information presumption unit <b>358</b> presumes meta information for the items in the meta information file <b>370</b> for which suitable information has not been detected in the target page. For example, when “calorie” in FIG. 10 is left unfilled, the presumption unit <b>358</b> may calculate the calorie roughly referring to the items “material”, “list of stuff” and “component”. The equation to calculate the calorie may be recorded in the presumption unit <b>358</b> together with the template. Besides the template for cooking, a template for travel may be provided with the items “travel time”, “travel fees” and “the sights to see”. Meta information may be picked up from digital maps, train schedule, travel guide of the area and so on which have been investigated beforehand when the information in the template for traveling is not found in the target page. When the user is interested in traveling, the preliminary search controller <b>114</b> may obtain information to presume meta information using maps and other various information available on the Internet. The pages containing the above-mentioned map information and so on may be stored in the cache memory <b>120</b> beforehand for future use from the user.
[0184] The meta information file <b>370</b> generated by the meta information extractor <b>356</b> and reinforced by the meta information presumption unit <b>358</b> is sent to the meta information write controller <b>360</b>. The controller <b>360</b>, after the approval by the pre-check unit <b>352</b>, stores the meta information file <b>370</b> and the target page together in the cache memory <b>120</b>.
[0185]FIG. 11 illustrates the association of the meta information file <b>370</b> and a page data <b>372</b> of the target page. The content of the meta information file <b>370</b> is embedded in the header or any other portion of the page data <b>372</b>. The meta information file <b>370</b> and the page data <b>372</b> may be combined in a text file written in XML (Extensible Markup Language) as follows.
[0186] <recipe mata information>
[0187] <URL>www.recipe.com</URL>
[0188] <classification>Chinese</classification>
[0189] </recipe meta information>.
[0190]FIG. 12 illustrates another combination of the meta information file <b>370</b> and the page data <b>372</b>. The meta information file <b>370</b> and the page data <b>372</b> are generated independently and a link information <b>374</b> is recorded. In this configuration, the cache search unit <b>112</b> conducts search on the meta information file <b>370</b> and desired data is read from the cache memory <b>120</b> referring to the link information <b>374</b>.
[0191]FIG. 13 illustrates the internal structure of the search pre-processor <b>110</b>. The initial keywords extracted by the keyword extractor <b>108</b> are sent to a condition relaxing unit <b>400</b>. The condition relaxing unit <b>400</b> determines which words to be deleted, referring to a reference table <b>404</b>. The reference table <b>404</b> records keywords which are too strict or which reduce the number of hits too drastically. Such words can be identified based on the past search record. Such deleted keywords are hereinafter referred to as “invalid keywords”. The condition relaxing unit <b>400</b> sends to a condition adding unit <b>402</b> and a search formula setting unit <b>406</b> the remaining keywords or selected initial keywords. The invalid keywords are informed to the condition adding unit <b>402</b>.
[0192] The condition adding unit <b>402</b> identifies the objective keywords referring to the reference table <b>404</b> using the selected initial keywords and/or the invalid keywords and sends the objective keywords to the search formula setting unit <b>406</b>. The selected initial keywords are logically ANDed with the objective keywords and the result is then ANDed with the guide <b>524</b> sent from the guide presenting unit <b>512</b> in the search formula setting unit <b>406</b> to obtain the search condition which is sent to the search unit <b>130</b>.
[0193]FIG. 14 illustrates the internal data of the reference table <b>404</b>. The reference table <b>404</b> comprises a keyword column <b>440</b>, a deletion column <b>442</b> and an objective keyword column <b>444</b>. The keyword column <b>440</b> records the initial keywords. The deletion column <b>442</b> shows the invalid keywords with a flag bit being “1”. The selected keywords are shown with the flag being “0”. The objective keyword column <b>444</b> shows objective keywords corresponding to the initial keywords which are identified from the past search history or by an operator.
[0194]FIG. 15 shows the process flow of the middle processor <b>14</b>. The user first inputs a search request “Let me know a recipe on meat” to the recipe agent <b>506</b>. The request is acquired by the agent processor <b>106</b> (S<b>10</b>) and the initial keywords “meat”, “dish” and “recipe” are extracted (S<b>12</b>). The initial keywords extracted are sent to the cache search unit <b>112</b>, which conducts search over the cache memory <b>120</b> (S<b>14</b>) and reads the desired page when it is cached (S<b>14</b>Y). The page is read and displayed (S<b>16</b>).
[0195] When the desired page is not cached (S<b>14</b>N), the search pre-processor <b>110</b> conducts the preprocess (S<b>18</b>) through identifying the invalid keywords, endowing the objective keywords and setting the search condition reflecting the guide <b>524</b> sent from the guide presenting unit <b>512</b>. The search unit <b>130</b> searches the page on the Internet (S<b>20</b>).
[0196] The page found by the search or the target page is displayed as if it were found by the recipe agent <b>506</b> obeying the guide <b>524</b> from the user-dedicated agent <b>502</b> (S<b>22</b>). The target page is sent to the meta information generator <b>116</b>, which conducts the pre-check, the analysis of the subject, the extraction and presumption of the meta information. The meta information is then generated as a file shown in FIG. 10 (S<b>24</b>). The meta information is associated with the target page in the manner shown in FIG. 11 or <b>12</b> and is stored in the cache memory <b>120</b> (S<b>26</b>).
[0197] According to the process flow, information necessary to the user is generally promptly provided based on a search request which is inputted by the user and which may be subjective to some degree while the search process is being shown to the user. The desired page can be appropriately searched when it is in the cache memory <b>120</b> as the meta information is added and cached. It is more probable, according to the present embodiment, that the page read from the cache memory <b>120</b> meets the user's intention. Caching efficiency is generally high as the meta information generator <b>116</b> pre-checks data to be cached.
[0198]FIG. 16 illustrates the flow of the pre-search conducted by the preliminary search controller <b>114</b> as a background process. The user records his/her daily meals in the history column <b>532</b>. The user likes Chinese food (S<b>30</b>). The preliminary search controller <b>114</b> expects an inquiry from the user concerning the Chinese recipe when it detects that the user has not had Chinese food for one week, and generates keywords such as “Chinese”, “dish” and “recipe” (S<b>32</b>).
[0199] The preliminary search controller <b>114</b> judges the timing for the background search has come when it becomes midnight or the like (S<b>34</b>Y) and sends the generated keywords to the search pre-processor <b>110</b>. The process shifts to FIG. 15 via the route “A”. According to this embodiment, the apparatus can be a highly customized agent machine to quickly respond to the user.
[0200] The front processor <b>12</b>, the middle processor <b>14</b> and the back processor <b>20</b> have been described. Now the service actually provided by the user-dedicated agent <b>502</b> and the recipe agent <b>506</b> is described.
[0201]FIG. 17 illustrates the initial screen <b>600</b> on the PC <b>10</b> for the agent service. The user-dedicated agent <b>502</b> appears on the screen <b>600</b> and says, “Hello, let's chat!”. The user may input an instruction via voice. In FIG. 17, however, an input region <b>602</b> appears on the screen <b>600</b>. The user inputs “Recommend a recipe” in the input region <b>602</b>. The request is obtained by the request input unit <b>510</b> and is processed in the aforementioned manner.
[0202] A new scene is created by the agent introduction unit <b>516</b> where the user-dedicated agent <b>502</b> introduces the recipe agent <b>506</b> to the user. FIG. 18 shows the scene. The user-dedicated agent <b>502</b> says “OK, I call Recipe Agent”. The recipe agent <b>506</b> appears and says “Trust me”. The user-dedicated agent <b>502</b> then utters a guide <b>524</b> special to the user referring to the acquired request <b>518</b>. In this example, the user is suffering from anemia and the user-dedicated agent <b>502</b> says “Recommend a recipe good for anemia”.
[0203]FIG. 19 illustrates the screen <b>600</b> when the recipe agent <b>506</b> got the search result based on the guide <b>524</b>. The recipe agent <b>506</b> says “I found” and several titles of the recommended recipes are displayed in a search result region <b>604</b> as “today's recipe”. The user-dedicated agent <b>502</b>, detecting that the user has had Chinese food consecutively, gives a new guide <b>524</b> saying “Avoid Chinese recipe today”. By this time, the middle processor <b>14</b> or the back processor <b>20</b> may have started a background process for the search avoiding Chinese food. In this case, however, the user inputs in the input region <b>602</b> “I prefer Chinese”.
[0204]FIG. 20 illustrates the screen <b>600</b> after the secondary search based on the guide <b>524</b> is finished. The instruction inputted by the user has higher priority than the guide <b>524</b> from the user-dedicated agent <b>502</b> and the search is limited for the Chinese food. In this secondary search, the condition regarding the anemia and other conditions may be reflected. After the secondary search, the recipe agent <b>506</b> says “Here is a Chinese recommendation”. The recommendation is displayed on the search result region <b>604</b>. The user-dedicated agent <b>502</b> says “Click here for more information”. The user can click the titles of the recipes to directly access to the related sites.
[0205] In this example, the user requests a Chinese recipe even after he/she has had Chinese dishes consecutively recently. After a series of search process is finished, the user-dedicated agent <b>502</b> may ask the user “You have had Chinese food for three days. Are you really OK?”. If the user answers “Yes”, the search condition concerning the frequency of the same kind of food may be relaxed for the user.
[0206]FIG. 21 illustrates the flow of the service provided by the agents. The user initiates the initial screen shown in FIG. 17 (S<b>50</b>). When the user inputs a request for service in the input area <b>602</b> via a keyboard or voice (S<b>52</b>Y), the user-dedicated agent <b>502</b> calls and introduces an expert agent suitable for the service (S<b>54</b>). The expert agent conducts the initial search based on the request (S<b>56</b>) and displays the search result. The guide <b>524</b> is injected to the search (S<b>58</b>) and the secondary search is initiated (S<b>60</b>) to more properly find suitable information, which is displayed. The user can input an instruction at any time during the above steps to modify the service. The guide <b>524</b> may be injected when the initial search (S<b>56</b>) is started, to conduct the secondary search (S<b>60</b>) from the beginning. If there are still too many hits in the secondary search, a new guide <b>524</b> may be inputted or the user-dedicated agent <b>502</b> may ask a few more questions to the user to finally reach the necessary information.
[0207] The number of times the user initiated the agent screen may be recorded in the user information DB <b>150</b> of the back processor <b>20</b>. The user-dedicated agent <b>502</b> is programmed to passively listen to the user's request until the number reaches a predetermined value. The user-dedicated agent <b>502</b> may ask questions more actively on the personal information of the user after the number reaches the predetermined value on the assumption that the user may allow such questions. The user-dedicated agent <b>502</b> may, for example, ask “Where do you like to go?”, “How old are you?” and the like and the answers to the questions may be stored in the user information DB <b>150</b> of the back processor <b>20</b> or the personal information DB <b>118</b> of the middle processor <b>14</b>.
[0208] Although Embodiment 1 has been explained with examples, it should be understood that many changes and substitutions may be made by those skilled in the art within the spirit and the scope of the present Embodiment. A few such changes are now described.
[0209] The apparatus according Embodiment 1 may be provided with functions for amusement. For example, the user can get points when he/she makes access to the user-dedicated agent <b>502</b> or other expert agents. The managing entity of the web server <b>18</b> may award a prize to the user when the point reaches a certain value so that the user is encouraged to use the web site, which may become more valuable in terms of advertisement.
[0210] “A premium agent” or a special expert agent may be secretly implemented in the apparatus to encourage the user to find the premium agent for amusement or for a present awarded by the site manager.
[0211] Expert agents may be local agents. A FAQ expert agent or a mail expert agent may be implemented in the apparatus to help the user operate the apparatus. Local agents are advantageous in that they can work in an off-line environment.
[0212] Each expert agent may have a function to record the dialog it had with each user in the user information DB <b>150</b> and a function to classify the user to which it is now serving to a specific user type referring to the dialog recorded in the user information DB <b>150</b>. Expert agents generally can more properly respond to the user after the user is classified into a specific user type.
[0213] In another embodiment, the user-dedicated agent <b>502</b> may have a function to record user requests in the user information DB <b>150</b> and the back processor <b>20</b> may have a function to search other users who have similar preference, behavior, life style and the like with the present user based on the past requests stored in the user information DB <b>150</b>. The search unit <b>130</b> may push the same page to the meta information generator <b>116</b> of such users.
[0214] Embodiment 2
[0215] Designing virtual agents is difficult although users do not know the effort of agent designers. Users expect the agents to understand their request properly and to act immediately. It is however difficult to presume all the various user requests and is still more difficult to predict how the users express their request in words, phrases and sentences. Analysis of the request is a hard task.
[0216] The present embodiment aims to realize agents which can flexibly respond to various requests from the users. Another purpose of the present embodiment is to provide a user support apparatus to more precisely understand the request of the users. Still another purpose of the present embodiment is to provide a user support apparatus which can improve the preciseness of the understanding of the user requests.
[0217]FIG. 22 is a block diagram of a user support system <b>1010</b> according to the present embodiment.
[0218] The entire configuration can be realized as a stand alone apparatus. In another embodiment, a back end server may comprise arbitrary portions of the apparatus such as an agent controller <b>1012</b>, a request analyzer <b>1014</b>, a response controller <b>1016</b>, a dialog data storage <b>1018</b>, a log storage <b>1020</b>, a search unit <b>1024</b> and an agent data storage <b>1034</b>. When the server is provided with a few functional blocks, the remaining functional blocks are implemented in the user apparatus which is a client machine. It is noted that there are many variations how to assign the functional blocks between the server and the client. Now the user support system <b>1010</b> is described assuming that it has all the functional blocks shown in FIG. 1 so that it can operate as a basic agent machine even in an off-line environment.
[0219] The agent controller <b>1012</b> comprises an agent output unit <b>1030</b> to display agents to a user and a request input unit <b>1032</b> to obtain the requests given from the user to the agents. An agent data storage <b>1034</b> holds image data to display agents.
[0220] The request analyzer <b>1014</b> performs voice recognition on the request uttered by the user and transforms the voice into the corresponding sentence. The request analyzer <b>1014</b> then divides the sentence into independent words. For example, when the user utters “Good morning”, the request analyzer <b>1014</b> divides the sentence into “Good” and “morning”.
[0221] The words thus obtained are sent to a response controller <b>1016</b>, which determines the response of an agent referring the keywords “Good” and “morning” to a dialog data storage <b>1018</b>. The dialog data storage <b>1018</b> stores conversation data the agent should utter for each major keyword. The response controller <b>1016</b>, for example, selects “Good morning. How are you?” as the response from the dialog data storage <b>1018</b> to answer. The response is sent to an agent output unit <b>1030</b>, which conveys “Good morning. How are you?“by the action, voice of the agent or by a sentence.
[0222] When the user request such as “Tell me the weather tomorrow” makes it necessary to search for a specific information, the response controller <b>1016</b> transfers the keywords such as “tomorrow” and “weather” to a search unit <b>1024</b>, which acquires weather forecast via the Internet <b>1040</b>. At the same time a fixed sentence “It will be . . . tomorrow”, is read from the dialog data storage <b>1018</b>, which is sent to the i<b>15</b> agent output unit <b>1030</b> together with the information obtained via the Internet <b>1040</b>. The agent output unit <b>1030</b> may utter “It will be cloudy tomorrow” to the user.
[0223] The response controller <b>1016</b> cannot always understand the user request. The response controller <b>1016</b> may not be able to find a suitable conversation data in the dialog data storage <b>1018</b> when the user inputted an unexpected request. In such a case, the response controller <b>1016</b> records the request as an unattained request in a log storage <b>1020</b> and reads a formatted apology “I'm sorry, I cannot understand well” from the dialog data storage <b>1018</b> to thereby send it to the agent output unit <b>1030</b> as an error handling process. The agent output unit <b>1030</b> utters the apology to the user. The minimum information the log storage <b>1020</b> should record is the unattained request. In FIGS. 9 and 10 described later, all the interaction between the user and the apparatus is recorded in the log storage <b>1020</b> as the history of the interaction is sometimes useful in reality.
[0224] A communication unit <b>1022</b> reads the unattained requests from the log storage <b>1020</b> and sends them to an arbitrary manager, not shown, via the Internet using an electric mail periodically or when an unattained request occurs or when the number of the unattained requests reaches a predetermined value. The system manager may reside within the same site as the user support system <b>1010</b>. The manager registers each unattained request and its corresponding response to the dialog data storage <b>1018</b> to thereby improve the function or performance of the agents.
[0225]FIG. 23 illustrates the flow of service performed by an agent in the user support system <b>1010</b>. When the user support system <b>1010</b> is powered on, the agent output unit <b>1030</b> outputs an agent to the user (S<b>1010</b>). The request input unit <b>1032</b> waits for a user request (S<b>1012</b>). When a request is inputted (S<b>1012</b>Y), the request analyzer <b>1014</b> decomposes the request into words (S<b>1014</b>). The words are transmitted to the response controller <b>1016</b>, which judges whether the service is possible or not (S<b>1016</b>). The service is judged to be possible when a suitable conversation data is found in the dialog data storage <b>1018</b> (S<b>1016</b>Y). Necessary information for the service is acquired from the dialog data storage <b>1018</b> and, if necessary, by the search unit <b>1024</b> (S<b>1018</b>). The service is performed via the agent output unit <b>1030</b> (S<b>1020</b>).
[0226] On the other hand, when the response controller <b>1016</b> judges the service not to be possible or when it cannot understand the user's request (S<b>1016</b>Y), it reads a formatted apology from the dialog data storage <b>1018</b> to make the agent output unit <b>1030</b> utter the apology (S<b>1022</b>) and records the request as an unattained request to the log storage <b>1020</b> (S<b>1024</b>). The communication unit <b>1022</b> transmits the unattained requests to the system manager (S<b>1026</b>).
[0227] FIGS. <b>24</b> to <b>29</b> show an example of the interruption between the user and an agent. In FIG. 24, Electricity Agent <b>1062</b> which is in charge of services regarding electricity related matters appears on the screen <b>1060</b> and accepts user questions as to electric appliances. The user inputs a request such as a question in an area <b>1064</b>. The user inputs “Something's wrong with my mobile phone”.
[0228] Electricity Agent <b>1062</b> answers “OK, tell me concretely” as shown in FIG. 25. The user inputs “Battery is not charged”. The first check point for this problem is read from the dialog data storage <b>1018</b> and Electricity Agent <b>1062</b> asks “Is the battery pack correctly attached?“as shown in FIG. 26. The user answers “Yes” to this question. Then the next check point is confirmed. In this example therefore the function of Electricity Agent <b>1062</b> is an embodiment of so-called FAQ for electric appliances.
[0229]FIG. 27 shows the response of Electricity Agent <b>1062</b> when it could not understand the request. In this case, the user wants to know his/her electric devices can operate in Africa before the trip and asks “Let me know the standard voltage in Africa”. Electricity Agent <b>1062</b> is, however, not designed to cope with such a question and cannot find a suitable answer in the dialog data storage <b>1018</b>. The user request is recorded as an unattained request in the log storage <b>1020</b>. Electricity Agent <b>1062</b> answers ”. . . I am very sorry! Please contact our staff at 03-xxxx-xxxx” to hand over the question to a human operator. The system manager, viewing the unattained request, can implement the voltage information in each country in the dialog data storage <b>1018</b> to thereby continuously improve the FAQ.
[0230]FIG. 28 shows a scene for information search. Cooking Agent <b>1066</b> for providing information regarding cooking especially recipe to the user appears on the screen. The user inputs a request “Recommend a Chinese recipe”. Cooking Agent <b>1066</b> searches for recommendation through the search unit <b>1024</b> and displays the recommended items in a search result area <b>1068</b>. The user can click the items displayed in the area <b>1068</b> to acquire more information via the Internet <b>1040</b>. In this situation, if the user inputs a question “Let me know a typical recipe in the ancient Rome”, this request will probably be recorded as an unattained request. The manager can review the information regarding recipe from various views and can improve the content of the dialog data storage <b>1018</b>.
[0231]FIG. 30 shows the internal structure of the log storage <b>1020</b>. The log storage <b>1020</b> records all the conversation session <b>1080</b> between the user and the agent. In FIG. 30, conversation sessions <b>1080</b> for “userABC” and “userDEF” are shown. When the user support system <b>1010</b> is a standalone type, it can create a history of multiple users by admitting login of the users. When the log storage <b>1020</b> is implemented in the back end web server, it can record a history of multiple users of multiple user support systems <b>1010</b>.
[0232] The conversation session <b>1080</b> further comprises a dialog record column <b>1090</b> and an unattained flag column <b>1092</b>. In the former column, “u” and “a” stand for the utterance of the user and the agent, respectively. In the latter column, the flag is set to one when the request is an unattained and is set zero otherwise.
[0233]FIG. 31 illustrates an unattained request list <b>1100</b> generated by the communication unit <b>1022</b>. The list <b>1100</b> comprises a user column <b>1102</b> to record the names of users who inputted unattained requests, a mail address column <b>1104</b>, a date and time column <b>1106</b> to record when the unattained request occurred, and a full sentence column <b>1108</b> to store the entire sentences of the unattained requests. The system manager, after checking the unattained requests, may answer to the users with electronic mails.
[0234] Embodiment 2 is described. Embodiment 2 also has various modifications.
[0235] In one embodiment, the response controller <b>1016</b> may check the full sentence of the user's request directly against the dialog data storage <b>1018</b>. In this case, unattained requests may be registered as a whole sentence such as “Let me know the standard voltage in Africa” together with the suitable response for the request.
[0236] Embodiment 3
[0237] Embodiment 3 aims to provide a technique to realize interaction among a plurality of agents or characters from a different technical view. According to Embodiment 3, characters which have been created entirely independently can have interaction. This embodiment also provides a technique to efficiently develop such agent functions.
[0238]FIG. 32 shows the entire configuration of the user support system <b>2010</b> according to Embodiment 3. A user terminal <b>2012</b>, a control window management site <b>2016</b>, a chat server <b>2018</b> and a recipe server <b>2020</b> are connected via the Internet <b>2014</b>. The control window management site <b>2016</b>, the chat server <b>2018</b> and the recipe server <b>2020</b> are servers in a broad sense of the word.
[0239] The chat server <b>2018</b> and the recipe server <b>2020</b> are in charge of respective specialized areas so that they interpret user utterance and process the actions of agents. The chat server <b>2018</b>, for example, processes greetings such as “Hello”, whereas the recipe server <b>2020</b> processes utterance concerning recipe such as “Let me know a good recipe”. By assigning specialized functions to each specialized server, the whole process can be divided and distributed so that the maintenance of each agent becomes easier.
[0240] The chat server <b>2018</b>, the recipe server <b>2020</b> and the like are collectively referred to as “specialized” servers or “expert” servers and the agents put in the specialized servers are referred to as “expert” agents. The control window management site <b>2016</b>, the chat server <b>2018</b> and the recipe server <b>2020</b> may be realized in different nodes on the network. Alternately, the control window management site <b>2016</b> may be implemented in the chat server <b>2018</b>, which may be designed as the originating server to handle the interaction with the user terminal <b>2012</b>. The example below is described on the latter assumption.
[0241] The basic process in FIG. 32 is as follows. The user terminal <b>2012</b> first connects to the control window management site <b>2016</b>. The site <b>2016</b> comprises a total management function to manage a plurality of agents, and a character management function to manage a plurality of characters simultaneously. These functions are referred to as “horizontal functions” hereinafter. The horizontal functions, which are characteristic of the present embodiment, work as a bridge to allow different agents to interact having conversation. The site <b>2016</b> transmits a program to realize the horizontal functions to the user terminal <b>2012</b>, which then enjoys the horizontal function even in an off-line environment.
[0242] The user terminal <b>2012</b> then connects to the chat server <b>2018</b> to receive a specific service. The chat server <b>2018</b> is specialized for chat and comprises an agent control function to realize the chat service and a character control function to work for the same purpose. These specialized functions are referred to as “expert functions” or “specific purpose functions”. The specific purpose functions are designed to and implemented in each expert server. The recipe server <b>2020</b> has the specific purpose functions regarding recipe. Specialized servers may be provided for a travel agent, a PC agent and the like in which users may be interested.
[0243] The user first talks to the chat agent to request an arbitrary service. The chat agent acquires and interprets the user utterance. When the utterance relates to recipe, the chat agent calls the total management function to make the recipe agent appear on the screen. The total management function divides the screen of the user terminal <b>2012</b> into two frames in which the chat agent and the recipe agent are put separately. The two agents have interaction including greetings and the like. For this purpose, the horizontal function is called. The interface between the horizontal function and specific functions is predefined. It becomes possible for each agent to talk to another agent as log as the agent is designed on the interface. The interaction with another agent is not possible without the horizontal function. The agent must respond to another agent when it is talked to. To this end, functions according to the interface must be implemented in the agent so as to take actions responsive to the total management function. The agents can be put in windows instead of the frames throughout this specification.
[0244] Various functions so far described are realized in the form of program functions. For this purpose, the main developer of the entire user support system <b>2010</b> or the “leading developer” first implements the horizontal function in the control window management site <b>2016</b> as the basic framework of the entire system, and informs designers of expert agents or “general developers” of the horizontal function. The general developers can know the horizontal function which they can use, and the format and content of each function. The leading developer, on the other hand, decides the content of program functions to realize specific functions of each agent so that the horizontal function can issue instructions to each agent. The general functions must implement the program functions informed by the leading developer. The “interface” may be regarded as the whole specification regarding the program functions described above.
[0245]FIG. 33 illustrates the internal structure of the control window management site <b>2016</b>. The control window management site <b>2016</b> comprises a total system manager <b>2022</b>, a character manager <b>2024</b>, and a user dialog processor <b>2026</b>, each of which communicates with the user terminal <b>2012</b> via a communication unit <b>2028</b> and the Internet <b>2014</b>. The total system manager <b>2022</b> realizes the horizontal function at the agent level. Similarly, the character manager <b>2024</b> realizes the horizontal function at the character level. The user dialog processor <b>2026</b> displays a user input prompt on the screen of the user terminal <b>2012</b> and acquires letters inputted by the user. The functions of the control window management site <b>2016</b> may be downloaded to the user terminal <b>2012</b> beforehand and may work inside the user terminal <b>2012</b>.
[0246] The total system manager <b>2022</b> provides a field to realize the interaction among a plurality of agents and manages the agents totally. The substance of the total system manager <b>2022</b> in this embodiment is an HTML file, in which program functions described in a script language include the following ones.
[0247] AddAgent( ): add a new character to the field,
[0248] Bcast( ): inform all the characters displayed of an information item,
[0249] Tell( ): inform one agent of an information item,
[0250] ReqUI( ): request the chat agent to acquire user information,
[0251] ReqPr( ): request the user input prompt to be displayed.
[0252] In these functions, attributes such as target information and target agent may be described. These functions are provided as standard functions, which the general developers can use when designing an agent. The total system manager <b>2022</b> also manages Cookies to be set in the browser of the user terminal <b>2012</b>.
[0253] The character manager <b>2024</b> provides a basic function to visually express the interaction among the agents at the character level. The character manager <b>2024</b> is also an HTML file in which functions are written in a script language. Some examples of the functions are as follows.
[0254] WalkClose( ): move to a specified character,
[0255] PointWin( ): point at a specified window,
[0256] Talk( ): talk to a specified character.
[0257] These functions are also provided as standard functions. To realize these functions, the character manager <b>2024</b> has a function to detect the positions of all the characters.
[0258]FIG. 34 shows the internal structure of the chat server <b>2018</b>. In this figure, “H”, “I”, “F” and X” stand for utterance data, index search for utterance, a file name containing the URL of the page of the expert server which should respond to a specified user utterance, and unidentified utterance, respectively.
[0259] An agent controller <b>2066</b> obtains and interprets a user request via a character so that the substantial function of an agent is realized. A character controller <b>2068</b> provides a series of basic functions of a character used by the agent controller <b>2066</b>. At least one set of the agent controller <b>2066</b> and character controller <b>2068</b> is implemented in each specialized server to conduct a specialized service. A communication unit <b>2030</b> enables communication between the agent controller <b>2066</b> and the character controller <b>2068</b> with the user terminal <b>2012</b> via the Internet <b>2014</b>.
[0260] The agent controller <b>2066</b> has a series of functions to respond to the utterance of the user or other agents, which are hereinafter referred to simply as “target utterance”. A main controller <b>2060</b> controls a series of processes mainly conducted by an utterance acquiring unit <b>2032</b> and the character controller <b>2068</b>. The essential function of the main controller <b>2060</b> is to specify a page which should respond to each target utterance and moves to the page. The utterance acquiring unit <b>2032</b> acquires the target utterance from the user terminal <b>2012</b> and sends it to an utterance search unit <b>2034</b>. The utterance search unit <b>2034</b> first conducts an index search by verifying the first letter or word of the target utterance in an index file <b>2036</b>. After the index search, the utterance search unit <b>2034</b> specifies the target utterance by conducting a phrase search considering the entire target utterance. In the phrase search, not only the words but also the order of the words are considered. When the target utterance cannot be found by the phrase search, the utterance may be divided into words and keyword search may be conducted.
[0261] The index file <b>2036</b> contains in an alphabetic order assumed or anticipated utterances which are stored in an assumed utterance collection <b>2038</b> to specify the target utterance. It is generally possible to conduct a fast search by referring the first letter or word to the index file <b>2036</b> even when the assumed utterance collection <b>2038</b> is large. As described later, in this embodiment, the assumed utterance collection <b>2038</b> is easily expanded and the fast search realized by the index search is beneficial.
[0262] When the target utterance is specified in the index file <b>2036</b>, a file containing the URL and the like of the specialized server to respond to the target utterance is specified in the index file <b>2036</b>. The file stored in the assumed utterance collection <b>2038</b> is then opened and the URL is acquired. Each target utterance has one file in the assumed utterance collection <b>2038</b>.
[0263] When the URL is within the chat server <b>2018</b> itself, the URL is transmitted to the main controller <b>2060</b>, which sends the URL to the browser of the user terminal <b>2012</b> via the communication unit <b>2030</b>.
[0264] When the URL is within another specialized server, the URL is set to the browser of the user terminal <b>2012</b> and the user terminal <b>2012</b> accesses the specialized server. To be more precise, the URL points not the home page of the specialized server but a specific independent page to directly respond to the target utterance. Each utterance has at least one corresponding page in this embodiment.
[0265] It is naturally desirable that the target utterance has its complete copy in the assumed utterance collection <b>2038</b>. During the improving process of the assumed utterance collection <b>2038</b>, however, the target utterance does not necessarily have its perfect copy in the assumed utterance collection <b>2038</b>. In that case, the utterance search unit <b>2034</b> seeks the most probable utterance in the assumed utterance collection <b>2038</b> decomposing the utterance into words and retrying search inputting logical AND of the words especially nouns. The target utterance which could not be found or which was found only in the retry search is recorded in an unidentified utterance file <b>2040</b> as an unidentified utterance, which is transmitted to the system manager by an e-mail via the reporting unit <b>2042</b>.
[0266] The system manager requests the manager of the specialized server which should have responded to the unidentified utterance to improve the response process conducted by the expert agent. The manager of the specialized server registers the unidentified utterance and the URL of a page of the specialized server which should respond to the unidentified utterance, in the assumed utterance collection <b>2038</b> within the specialized server, registers the index of the utterance in the index file <b>2036</b>, and designs the process including the action of the expert agent realized with the page. In this maintenance, an unidentified utterance can be easily added in the assumed utterance collection <b>2038</b> and it is generally easy to improve the content of the assumed utterance collection <b>2038</b>.
[0267] The main controller <b>2060</b> also manages a personal information file <b>2048</b>. The personal information file <b>2048</b> may be managed only by the chat server <b>2018</b> among a plurarity of specialized servers as the chat server <b>2018</b> frequently has conversation with the user and is suitable to acquire the personal information of the user. The main controller <b>2060</b>, for example, may be implemented with a program function to periodically ask the user information, such as the age of the user and other attributes and the preference on foodstuff and the like. Answers from the user may be recorded in the personal information file <b>2048</b>. Other agents can request to acquire the personal information using the aforementioned program function ReqUI( ). The personal information may be used when specialized servers perform services to the user. In this embodiment, the chat agent may issue an instruction instead of the user when another agent conducts a service to the user. Agents interact during the process.
[0268] The main controller <b>2060</b> may be implemented with the program functions below.
[0269] Respond( ): is called when a character is clicked and describes a proper process to the click,
[0270] Listen( ): acquires information when transmitted from another agent.
[0271] Implementation of these functions is entrusted to the general developer of the chat server <b>2018</b>. These functions are called from the total system manager <b>2022</b>, the character manager <b>2024</b> and the like.
[0272] A character controller <b>2068</b> comprises an action file <b>2062</b> to describe the actions of a character to respond to each target utterance, and a character data <b>2064</b> to store the image data and voice data of the character. The character data <b>2064</b> is first downloaded to the user terminal <b>2012</b> and can work within the user terminal <b>2012</b>.
[0273] The character controller <b>2068</b> is, for example, implemented with the below program functions.
[0274] ComeOut( ): makes characters appear on the screen,
[0275] Act( ): makes a character play a designated action,
[0276] Spk( ): displays a designated text in a window and outputs voice data according to the text,
[0277] Goout( ): makes a character disappear on the screen,
[0278] Halt( ): Freezes all the characters.
[0279] The basic action of a character is realized with the above functions. The development of these functions is also entrusted to the general developers. These functions are also called from the total system manager <b>2022</b> and the character manager <b>2024</b>.
[0280] An access recorder <b>2044</b> records the access history of each user to the specialized servers in an access information file <b>2046</b>. By this configuration, a response to the same user utterance may be made different to each user. For example, when a user first visits the chat server <b>2018</b> and says “Hello”, the chat agent answers “Hello. Nice to meet you”. When the user revisits the chat server <b>2018</b>, the chat agent may answer “Hello, how are you getting along?” to act more properly according to the situation. The access recorder <b>2044</b> informs the utterance search unit <b>2034</b> of the access history of the user. The utterance search unit <b>2034</b> selects a page suitable for the present situation and sends the URL to the browser of the user terminal <b>2012</b> when it found a plurality of pages of a specialized server to respond to the target utterance in the assumed utterance collection <b>2038</b> just like the above example.
[0281]FIG. 35 shows the internal structure of the index file <b>2036</b>. FIG. 36 shows the internal structure of the assumed utterance collection <b>2038</b>. The index file <b>2036</b> comprises an alphabetic column <b>2100</b>, a target utterance column <b>2102</b> and a file name column <b>2104</b>. The target utterances are sorted in the alphabetic order noting the first letter of the utterance.
[0282] The assumed utterance collection <b>2038</b> comprises a file name column <b>2104</b>, a target utterance column <b>2102</b> and a page column <b>2120</b> to indicate the page of the specialized server to respond to the target utterance. For example, when the user utterance is “Hi”, the page of the specialized server is “43”. The combination of “Hi” and “URLa43” composes the file f044. The target utterances are classified to each specialized server. A user utterance collection <b>2110</b> of which the chat server <b>2018</b> should take care and a user utterance collection <b>2112</b> of which the recipe server <b>2020</b> should take care, for example, are generated independently. The index file <b>2036</b> and the assumed utterance collection <b>2038</b> are linked together with file names. “Hello” corresponds to the file f045 in the index file <b>2036</b>, which in turn corresponds to the file f045 of the assumed utterance collection <b>2038</b>.
[0283] As shown in the index file <b>2036</b>, ” Hello” has two corresponding pages URLa1 and URLa2. The URLa1 is sent to users who first visit the chat server <b>2018</b> and URLa2 is sent to users who revisit the chat server <b>2018</b>.
[0284]FIG. 37 shows the access information file <b>2046</b>. “User 1” has visited “chat”, “recipe” and “auction” servers. “User 2” has visited “travel” and “PC” servers. In this situation, when the user 2 visits the chat server <b>2018</b>, the chat agent selects an utterance for the first visitor, and when user 1 visits the chat server <b>2018</b>, the chat agent selects an utterance for a revisitor.
[0285]FIG. 38 shows the internal structure of the action file <b>2062</b>. URL specified in the utterance search unit <b>2034</b>, such as the URLa1 or URLa2 in case of “Hello” shown in FIG. 36, is inputted to the action file <b>2062</b> via the main controller <b>2060</b>. In the action file <b>2062</b>, each URL specified at the utterance search unit <b>2034</b> is corresponded to each page, for example, URLa1 to page 70, URLa2 to page 72 and URLan to page 74 so that multiple pages are bundled. Each page is a Web page and is provided for each target utterance to achieve system flexibility.
[0286] The content of a page contained in the action file <b>2062</b> is now described. The name of a page is “AC.html” and has a function to load and display a standard character provided by a certain OS under the name of “AChara”. The character speaks when the function Spk is called from outside. <tables id="TABLE-US-00001" num="1"><table frame="none" colsep="0" rowsep="0" pgwide="1"><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="14PT" align="left" /><colspec colname="1" colwidth="238PT" align="left" /><thead><row><entry /><entry /></row><row><entry /><entry namest="OFFSET" nameend="1" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /><entry><html></entry></row><row><entry /><entry><head></entry></row><row><entry /><entry><title>TEST</title></entry></row><row><entry /><entry><meta http-equiv=“Content-Type” content=“text/html;</entry></row><row><entry /><entry>charset=Shift_JIS”></entry></row><row><entry /><entry></head></entry></row><row><entry /><entry><body bgcolor=“#FFFFFF”></entry></row><row><entry /><entry><!--declaration and load of Agent of company x--></entry></row><row><entry /><entry><OBJECT ID=“AgentControl” CLASSID=“xxx” CODEBASE=“#VERSION=</entry></row><row><entry /><entry>2,0,0,0”></entry></row><row><entry /><entry></OBJECT></entry></row><row><entry /><entry><SCRIPT language=Javascript></entry></row><row><entry /><entry>var AChara;</entry></row><row><entry /><entry>Agent.Characters.Load(“AChara”,</entry></row><row><entry /><entry>“C:¥¥XXX¥¥Xagent¥¥CHARS¥¥AChara.acs”);</entry></row><row><entry /><entry>AChara=Agent.Characters.Character(“AChara”);</entry></row><row><entry /><entry>AChara.ComeOut( );</entry></row><row><entry /><entry></SCRIPT></entry></row><row><entry /><entry><SCRIPT language=JavaScript SRC=“AC.js”></SCRIPT></entry></row><row><entry /><entry></body></entry></row><row><entry /><entry></html></entry></row><row><entry /><entry namest="OFFSET" nameend="1" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
[0287] A script file is used. The character speaks using the function, which collectively stands for HTML files and functions written in script languages. The script file is as follows. <tables id="TABLE-US-00002" num="2"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="56PT" align="left" /><colspec colname="1" colwidth="161PT" align="left" /><thead><row><entry /><entry /></row><row><entry /><entry namest="OFFSET" nameend="1" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /><entry>function SPK(spText) {</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="OFFSET" colwidth="70PT" align="left" /><colspec colname="1" colwidth="147PT" align="left" /><tbody valign="top"><row><entry /><entry>AChara.Speach(spText);</entry></row><row><entry /><entry>}</entry></row><row><entry /><entry namest="OFFSET" nameend="1" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
[0288] When the name of a frame in which AC.html is displayed is “aFrame”, it becomes possible to make AChara speak from outside by writing as follows.
[0289] aFrame.Spk(“Good-bye”);
[0290]FIG. 39.illustrates the internal blocks of the user terminal <b>2012</b>. Each function of the user terminal <b>2012</b> may be provided from the control window management site <b>2016</b>, the chat server <b>2018</b>, the recipe server <b>2020</b> and other expert servers, may be pre-installed in the user terminal <b>2012</b> or may be downloaded from the control window management site <b>2016</b> when the user terminal <b>2012</b> is first connected to the site <b>2016</b> and is held locally. In other words, when the user support system <b>2010</b> is realized with the user terminal <b>2012</b>, the site <b>2016</b> and other servers, each function for process may be installed in the client or in the server or in any other locations. As a general rule, functions which should be less frequently updated or which need no updating may be pre-installed in the client.
[0291] A communication unit <b>2114</b> communicates with the control window management site <b>2016</b> and the like via the Internet <b>2014</b>. A control window <b>2080</b> comprises a first processor <b>2082</b>, a second processor <b>2084</b> and a user dialog processor <b>2086</b>. The first processor <b>2082</b> comprises a total system manager <b>2090</b>, which manages a chat agent controller <b>2092</b> and a recipe agent controller <b>2094</b>. The total system manager <b>2090</b>, the chat agent controller <b>2092</b> and the recipe agent controller <b>2094</b> correspond to the total system manager <b>2022</b> of the control window management site <b>2016</b>, the agent controller <b>2066</b> of the chat server <b>2018</b> and an agent controller (not shown) of the recipe server <b>2020</b>, respectively. The chat agent controller <b>2092</b> and the recipe agent controller <b>2094</b> manage a chat region generator <b>2106</b> and a recipe region generator <b>2108</b> to display the result of services, respectively. The second processor <b>2084</b> comprises a character manager <b>2096</b>, which manages a chat character controller <b>2098</b> and a recipe character controller <b>2116</b>. The character manager <b>2096</b>, the chat character controller <b>2098</b> and the recipe character controller <b>2116</b> correspond to the character manager <b>2024</b> of the control window management site <b>2016</b>, the character controller <b>2068</b> of the chat server <b>2018</b> and a character controller (not shown) of the recipe server <b>2020</b>, respectively. The user dialog processor <b>2086</b> corresponds to the user dialog processor <b>2026</b> of the control window management site <b>2016</b>. The first processor <b>2082</b> and the second processor <b>2084</b> refer to the information inputted in the user dialog processor <b>2086</b>.
[0292] The above functions, which have been described with regard to FIGS. 33 and 34, can be viewed from the user. The chat region generator <b>2106</b> and the recipe region generator <b>2108</b> display information to the user and accept instructions and other operations from the user. The second processor <b>2084</b> provides information in a visible or audible manner and accepts user operations such as clicks. The user dialog processor <b>2086</b> displays a user input prompt and accepts character input.
[0293] Now the interaction between the user and agents and among agents is described. FIG. 40 illustrates a screen <b>2150</b> displayed when the user initiates the user terminal <b>2012</b>. A character <b>2156</b> of the chat agent, which is hereinafter referred to as “Chat Agent” <b>2156</b>, appears and speaks “Hello! I am Chat Agent Pea-ko”. The user inputs “Let me know a recipe” in an input region <b>2154</b> and clicks a SEND button. The input area <b>2154</b> may appear when the user clicks Chat Agent <b>2156</b>. Chat Agent <b>2156</b> may talk to itself or ask a question to the user to encourage the user request until the user clicks it.
[0294] Inputted “Hello” is acquired by the user dialog processor <b>2086</b> and is analyzed by the chat agent controller <b>2092</b>. The chat agent controller <b>2092</b> has inside a copy of the function of the agent controller <b>2066</b> in the chat server <b>2018</b> and specifies a page in the action file <b>2062</b> of the character controller <b>2068</b> to respond to the user. The page may be identified in the action file <b>2062</b> of the character controller <b>2068</b> or in the chat character controller <b>2098</b> of the user terminal <b>2012</b>. In this example, the target utterance relates to recipe and a process “Call a recipe agent on the screen” is described in the specified page for the response. More concretely, a program function ADDAgent( ) prepared by the total system manager <b>2022</b> is written in the HTML file beforehand. That is, a horizontal function at the agent level is used to bridge different agents when the process executed by an agent relates to another agent.
[0295]FIG. 41 shows a screen <b>2150</b> appearing after the above process. The total system manager <b>2090</b> divides the screen <b>2150</b> into a first frame <b>2150</b><i>a </i>and a second frame <b>2150</b><i>b</i>. Chat Agent <b>2156</b> is placed in the former and Recipe Agent <b>2160</b> is placed in the latter. Before Recipe Agent <b>2160</b> is called, Chat Agent <b>2156</b> says “Now, let's call Recipe Agent . . . ” to the user. Recipe Agent <b>2160</b> on the other hand asks “I am Recipe Agent. What is your preference?“to the user when it is called. The utterance of Chat Agent <b>2160</b> is realized by the recipe agent controller <b>2094</b> and the recipe character controller <b>2116</b> using a program function such as Spk( ) to make a character speak written in a page (not shown) to respond to the user. The user then inputs “Chinese” in the input region <b>2154</b> and sends it to the server.
[0296]FIG. 42 shows the screen <b>2150</b> after the above process. Chat Agent <b>2156</b> interprets that the utterance of Recipe Agent <b>2160</b> relates to the introduction of a dish. The chat character controller <b>2098</b> specifies a page to respond to the utterance. In the page, the note “Advise the agent presently speaking not to recommend hot dishes” is described. Chat Agent <b>2156</b> comes closer to Recipe Agent <b>2160</b> and talks “Do not teach very hot ones” as a request. For this purpose, aforementioned WalkClose( )and Talk( ) are written in the page of Chat Agent <b>2156</b>. Recipe Agent <b>2160</b> on the other hand accepts the advice as “utterance of another agent”, interprets the utterance and specifies a page to respond. In the page, for example, the note “Obey the request. Search for a recipe without chili sauce” is written. In this case also, the function Talko is used to make Recipe Agent <b>2160</b> and Chat Agent <b>2156</b> face each other. In the background process, the chat agent controller <b>2092</b> executes search using a search condition or a firmula such as
[0297] (“recipe” OR “menu”) AND “Chinese” AND “recommendation” AND /“chili sauce”,
[0298] where “/” is a NOT operator. The preference of the user is recorded beforehand in the personal information file <b>2048</b>.
[0299]FIG. 43 shows the screen <b>2150</b> containing the search result by Recipe Agent <b>2160</b>. Recipe Agent <b>2160</b> says “Today's recommendation”. The search result is displayed in a recipe window <b>2166</b> generated by the recipe region generator <b>2108</b>. The search result is displayed with titles which are linked to details. Sites containing Chinese recipe found by the search are displayed in a search result area <b>2172</b> by the recipe agent controller <b>2094</b> for the reference. Chat Agent is asleep as it has not been talked to. Pages may be designed to respond not only to the content of the target utterance but also to the interval or other states of the utterance.
[0300] In FIG. 43, the user further inputs a question “Tell me good places for autumn hiking”. FIG. 44 shows the screen <b>2150</b> appearing after the question is inputted. In the screen, a third frame <b>2150</b><i>c </i>is created and Travel Agent <b>2170</b> appears in the frame. Chat Agent <b>2156</b> talks to Travel Agent <b>2170</b> “Hello. Long time no see you.” and Travel Agent <b>2170</b> answers “Hi”. The interaction between different agents here is also realized by the aforementioned program functions or the like.
[0301] The effect of the present embodiment is as follows.
[0302] Different agents provided from different companies or creators can have interaction by standardizing the interface at a program function level. Agents which have completely different output formats such as a 3D polygonal character written in VRML (Virtual Reality Modeling Language), a 2D character in JPEG (Joint Photographic Expert Group) and an arbitrary bit map character the user created with a digital camera can have conversation on the same screen and thereby can provide an exquisite agent apparatus.
[0303] By adopting a standardized interface, the leading developer can effectively collaborate with general developers or the third parties. The leading developer develops the control window management site <b>2016</b> and the general developers develop expert agents. The number of expert agents can be increased relatively easily in accordance with the user request by designing each agent in a modular manner.
[0304] A few modifications are now described. The user terminal <b>2012</b> may be pre-installed with a plurality of expert agents which are frequently used. The user terminal <b>2012</b> may download such agents beforehand. In that case, if an agent which should be called after the interpretation of the utterance by Chat Agent <b>2156</b> exists inside the user terminal <b>2012</b> from the beginning, the process by Chat Agent <b>2156</b> is made unnecessary and the expert agent may appear immediately on the screen <b>2150</b> without the help of Chat Agent <b>2156</b>. Such expert agents may be hidden in the user terminal <b>2012</b> even when they exist therein.
[0305] The control window <b>2080</b> may be a conceptual framework provided by the control window management site <b>2016</b>. In actual implementation, however, the control window <b>2080</b> may be provided visibly or invisibly, linked with an arbitrary object or a region on the screen <b>2150</b>. The control window <b>2080</b> may be set on the entire screen <b>2150</b> in an invisible manner so that Chat Agent <b>2156</b> appears when the user clicks on an arbitrary portion of the screen <b>2150</b>.
[0306] The target utterance may be acquired via voice recognition. Users may feel it more natural to input their request via voice.
[0307] An unidentified utterance is described as an utterance which could not be specified in the assumed utterance collection <b>2038</b>. The unidentified utterance, however, may be one which could be specified in the assumed utterance collection <b>2038</b> but to which the expert agent could not properly respond. For example, when the target utterance is “Let me know a recipe”, the search result may contain to many information items. In this case, the user eventually cannot find desired information. Such a target utterance may be sent to an expert agent manager so that the expert agent is improved.
[0308] Utterance from an expert agent has been selected based on the access history of the user to each expert server. The utterance may be further selected based on the attribute information of the user. The expert agent may select a more gentle expression when the user is a female. The agent may select a more formal or polite expression when the user is relatively old.
[0309] It is not always necessary for expert agents to interpret the user utterance using the full sentence search. A “beef” expert agent may be designed such that it always responds to the word “beef” or “meat” regardless of the whole sentence. Each expert agent may be implemented with a different method for interpreting the user utterance. A single expert agent may have more than one method to interpret the user utterance.
[0310] The character manager <b>2096</b> of the second processor <b>2084</b> may be combined with the total system manager <b>2090</b> of the first processor <b>2082</b>. There may be various modifications to achieve the same functions. Combining or dividing the functional blocks depends on the design guide and the actual operation.
[0311] An action of a character such as “Speak” was described to be sent from a server to each character controller. The action, however, may be received by each agent controller, which sends it to each character controller via the total system manager <b>2090</b>. In this method, the total system manager <b>2090</b> can detect all the situations occurring in the system. The total system manager <b>2090</b> can more easily realize an action of a character to “Speak” to all the other characters and make a character recognize the action of another character as the total system manager <b>2090</b> knows the frame names in which each character controller resides, the number of expert agents or characters and the positions of characters.
[0312] Embodiment 4
[0313] If a user wants to revisit in future a specific web site, he/she usually puts a bookmark on the URL of the web site. The number of bookmarks thus stored is easily increased as the user browses web sites. According to Embodiment 4, agents or characters help user find a desired web site easily.
[0314]FIG. 45 shows the entire configuration of a network system <b>3010</b> including a user support system <b>3016</b> according to Embodiment 4. A user terminal <b>3012</b> and a user support system <b>3016</b> are connected via the Internet <b>3014</b>.
[0315] The user support system <b>3016</b> comprises an originating server <b>3020</b>, a chat server <b>3024</b> and a gourmet server <b>3026</b>, which are connected to the Internet <b>3014</b>. The originating server <b>3020</b> comprises an electronic user utterance collection created anticipating or assuming user utterance and an utterance identification block to specify the user utterance when it is inputted. The user utterance identification block is commonly referred to from other servers in the system, for example, the chat server <b>3024</b> and the gourmet server <b>3026</b>. The chat server <b>3024</b> and the gourmet server <b>3026</b> comprise an electronic agent action collection created assuming the action of an agent to respond to the user utterance and a response block to make the agent respond to the user utterance, respectively. The servers have the response blocks independently within their nodes.
[0316] The originating server <b>3020</b>, the chat server <b>3024</b> and the gourmet server <b>3026</b> are different network nodes so that the process to specify user utterance and the process to make an agent respond to the utterance can be conducted simultaneously in different nodes. Agents can be made into different nodes and the maintenance for each agent becomes easier. The system <b>3016</b> may be composed as a single unit to be implemented in a portal site. The servers, however, are included in different nodes. The originating server <b>3020</b> behaves as a portal server for the user terminal <b>3012</b>.
[0317] A user utterance is first transmitted to the originating server <b>3020</b>, which specifies the utterance referring to the user utterance collection. An agent which should respond to the utterance is specified and the response block executes a process for response. For example, an agent in the chat server <b>3024</b> responds to general greetings such as “Hello”. An agent in the gourmet server <b>3026</b> responds to meals, foodstuff and so on. Each expert agent supports to find information needed for the user out of huge amount of information by obtaining the needs of the user specified during the conversation with the user.
[0318] According to the present embodiment, when the user puts a bookmark on a web site he/she likes, the bookmark information is automatically classified into one of the folders prepared for specialized areas. For example, when the user puts a bookmark on a web site searched and presented to the user by the gourmet agent, the URL of the site is stored in a folder related to gourmet or a gourmet folder. The bookmark information is presented or displayed to the user such that it is classified in each folder.
[0319] The process in FIG. 45 is summarized as follows. A local agent implemented within the user terminal <b>3012</b> appears when the user initiates the user terminal <b>3012</b>. The local agent waits for the first or initial utterance of the user. The initial utterance is sent to the originating server <b>3020</b> via the Internet <b>3014</b>. The www browser in the user terminal <b>3012</b> displays a page in the originating server <b>3020</b>.
[0320] The originating server <b>3020</b> is installed with a user utterance collection which holds expected user utterances. The initial utterance is searched in the user utterance collection so as to be identified. An expert agent suitable for the initial utterance is specified and the URL, which is shown as “URLa/URLb” in FIG. 45, of the specified specialized server is sent to the browser of the user terminal <b>3012</b>. The user terminal <b>3012</b> displays the image corresponding to the page of the specialized server. The expert agent appears on the screen. Each specialized server includes an agent action collection for a respective expert agent and responds to the initial utterance and further utterance of the user, which is hereinafter referred to as a “general utterance”. The action of an agent is exemplified with an utterance hereinafter. The action, however, may include a gesture and other behavior, colors in the screen image, the change in texture, the search operation of the agent and other program processes to respond to the user.
[0321] When the user gives a new utterance or a general utterance to the expert agent, the utterance is sent to the originating server <b>3020</b>. The originating server <b>3020</b> again specifies an expert agent suitable for the utterance and sends the URL of the specialized server to the user terminal <b>3012</b>. A series of steps below is repeated.
[0322] 1. specify the user utterance by the originating server <b>3020</b>;
[0323] 2. specify a specialized server to cope with the specified utterance;
[0324] 3. respond to the user by the expert agent implemented in the specialized server;
[0325] 4. encourage the user to input a new utterance.
[0326] In each cycle of the above process, the initial step is always conducted by the originating server <b>3020</b>.
[0327] In the above process, the expert agent, by searching over the Internet, presents the user information needed by the user. When the user requests to register a bookmark on the web site having the presented information, a bookmark register provided in the originating server <b>3020</b> stores the URL of the web site in a folder corresponding to the specialized area of the agent.
[0328]FIG. 46 shows the internal structure of the originating server <b>3020</b>. Only the difference between FIG. 46 and FIG. 34 is now described.
[0329] The bookmark register <b>3050</b> stores in a bookmark file <b>3054</b> the URL of the web site upon request for the registration from the user. The bookmark information is classified and stored in one of the folders which is provided for the specialized area. A bookmark display unit <b>3052</b> displays the bookmark information stored in the bookmark file <b>3054</b> classified in the folders.
[0330] An index file <b>3036</b> is shown in FIG. 35 in Embodiment 3. A user utterance collection <b>3038</b> shown in FIG. 47 is almost the same as the one shown in FIG. 36 in Embodiment 3. In FIG. 47, however, files f<b>267</b> and f<b>306</b> relate to a restaurant or gourmet.
[0331]FIG. 48 illustrates the internal description of an access information file <b>3046</b>. The access information file <b>3046</b> is almost the same as the one shown in FIG. 37. In FIG. 48, however, “recipe” is replaced by “gourmet”.
[0332]FIG. 49 shows the internal structure of the bookmark file <b>3054</b>. The bookmark information registered by “user1” is classified and stored in “gourmet folder”, “chat folder” and so on. Each folder stores a plurality of bookmarks. “Gourmet folder”, for example, stores the URL “http://OO.com” of the web site “Chinese restaurant B” as bookmark 1 information and the URL “http://XX.com” of the web site “restaurant C” as bookmark 2 information.
[0333]FIG. 50 shows the internal structure of the gourmet server <b>3026</b> as an example of specialized servers. A communication unit <b>3060</b> communicates with the user terminal <b>3012</b>, the originating server <b>3020</b> and the like via the Internet <b>3014</b>. The URL specified by the utterance search unit <b>3034</b> of the originating server <b>3020</b> is input to an agent action library <b>3062</b> via the communication unit <b>3060</b>. The agent action library <b>3062</b> includes agent data <b>3072</b> which describes the expert agent utterance, image and behavior. Each URL specified by the utterance search unit <b>3034</b> has a page corresponding thereto.
[0334] In FIG. 50, the page 64 corresponding to the URLa1 is illustrated. The page 64 includes an agent output unit <b>3070</b>, a user utterance acquiring unit <b>3074</b> and a specific process execution unit <b>3076</b>. The agent output unit <b>3070</b> responds to the user utterance with the gourmet agent based on the agent data <b>3072</b>. The specific process execution unit <b>3076</b> conducts processes other than response by utterance. The specific process or purpose execution unit <b>3076</b> may execute various programs. A search unit <b>3078</b> searches information requested by the user via the Internet <b>3014</b>. For example, the utterance which leads the user to the page is “Teach me good restaurants in New York”, the gourmet agent searches for restaurant information via the Internet <b>3014</b> and presents the information to the user. The user utterance acquiring unit <b>3074</b> acquires general utterances of the user and transmits them to the originating server <b>3020</b>, which specifies a specialized server again.
[0335]FIG. 51 shows the internal structure of the user terminal <b>3012</b>. A communication unit <b>3130</b> communicates with the originating server <b>3020</b>, the chat server <b>3024</b>, the gourmet server <b>3026</b> and the like via the Internet <b>3014</b>. A UI <b>3138</b> may be a keyboard, a mouse, a display apparatus and various data interface formats. A local agent output unit <b>3132</b> provides local agent data <b>3134</b> to the user via the UI <b>3138</b>. The initial utterance and general utterances of the user are acquired by a user utterance input unit <b>3136</b> via the UI <b>3138</b>. The acquired utterance is sent to the originating server <b>3020</b> via the communication unit <b>3130</b> and the Internet <b>3014</b>.
[0336]FIG. 52 illustrates a screen <b>3150</b> displayed when the user terminal <b>3012</b> is initiated. A local agent <b>3152</b> appears and says “Welcome! Let's chat”. The user inputs “Hello” in an input area <b>3154</b> and sends it. The input “Hello” is sent to the originating server <b>3020</b> as the initial utterance, from which the chat server <b>3024</b> as a specialized server is specified. The user terminal <b>3012</b> accesses a page in the chat server <b>3024</b>.
[0337]FIG. 53 illustrates the screen <b>3150</b> displayed after the above process. Chat Agent <b>3156</b> is displayed. In the present embodiment, the local agent <b>3152</b> is the same as Chat Agent <b>3156</b> by appearance so that a seamless conversation continues. A bookmark button <b>3190</b> is displayed by the bookmark file <b>3054</b> on the screen. When the user pushes the bookmark button <b>3190</b>, the bookmark information stored is displayed with the folders. Chat Agent <b>3156</b> speaks “Hello! I am Chat Agent Pea-ko . . . ”. The user inputs in the input area <b>3154</b> ” Let me know a restaurant serving good Peking ravioli”. The utterance is acquired by the originating server <b>3020</b> which identifies a page in the gourmet server <b>3026</b>. The URL of the identified page is sent to the user terminal <b>3012</b>, which accesses to the page.
[0338]FIG. 54 illustrates the screen <b>3150</b> displayed after the above process. Gourmet Agent <b>3160</b> appears and speaks “All right! Trust me. I am Gourmet Agent.” The search unit <b>3078</b> searches over the web pages using a keyword “Peking ravioli”. The agent speaks “Wait for a moment. I will come back soon.” not to be silent and to let the user know the search process is in progress. When the search is finished, a page to display the search result is displayed.
[0339]FIG. 55 illustrates the screen <b>3150</b> displaying the page for the search result. The titles <b>3170</b> of the web pages obtained by the search unit <b>3078</b> are displayed. Each title <b>3170</b> is linked to the web page so that the user can easily access thereto. When the user clicks a register button <b>3180</b>, the corresponding URL of the web site is stored in the gourmet folder contained in the bookmark file <b>3054</b>.
[0340]FIG. 56 illustrates the screen <b>3150</b> displaying the registered bookmark information. When the user clicks a bookmark button <b>3190</b>, a folder list <b>3192</b> is displayed by the bookmark display unit <b>3052</b>. When the user puts a cursor on the gourmet folder, the titles <b>3194</b> of the web sites stored in the gourmet folder appear. The user can access to the URL of the web site when the user clicks a title.
[0341] A few modifications of the present embodiment are as follows.
[0342] In the present embodiment, the utterance identification block is installed in the originating server <b>3020</b> and is commonly used by a plurality of servers. Each specialized server, however, may have its own independent utterance identification block and response block. In this configuration, each server can manage its own user utterance collection and agent action collection so that the management and maintenance of the agent become easier within the server. A core server to process all the utterances may be provided even in this configuration.
[0343] In the present embodiment, the images of the local agent <b>3152</b> and Chat Agent <b>3156</b> are made identical. Naturally, it is not necessary to match them. The local agent <b>3152</b> may not be installed in the user terminal <b>3012</b>. Instead, an “opening agent” or the like which appears when the user terminal <b>3012</b> is initiated may be implemented in the originating server <b>3020</b>.
[0344] In the present embodiment, the bookmark register <b>3050</b>, the bookmark display unit <b>3052</b> and the bookmark file <b>3054</b> are provided in the originating server <b>3020</b>. These units naturally may be implemented in other specialized servers or in the user terminal <b>3012</b>.
[0345] In the present embodiment, each folder in the bookmark file <b>3054</b> corresponds to each specialized area of a specialized server. Naturally, folders may be classified on an arbitrary criterion. For example, the system may request the user to designate a plurality of folders and to suggest which folder to be associated with which kind of web sites. When a web site is requested by the user to be registered, the type of the web site may be analyzed referring to the user utterance collection to specify a specialized area. A bookmark is then put on the web site and is stored in the folder associated with the specified specialized area. According to this method, the bookmark information already stored in the user terminal <b>3012</b> may be reclassified.
[0346] The folders in the bookmark file <b>3054</b> may be prepared beforehand or may be generated or modified by adding new folders requested from the user or any expert agents. The bookmark information may be classified when it is stored upon request from the user or may be classified later as mentioned. As long as the bookmark information can be classified and stored to help the user revisit the web site he/she likes, many modifications for creating folders are available.
[0347] Embodiment 5
[0348] The whole network system including a user support system according to Embodiment 5 is the same as FIG. 45 of Embodiment 4.
[0349] The user support system according to Embodiment 5 requests the user to register the items of information he/she is interested in and therefore searches frequently. By this registration, search process can be immediately initiated when the user utterance relates to the information items. In this system, the search is also conducted even without the user utterance so that the search result can be presented immediately. User utterances to be a trigger to start the search or to display the search result are predefined to present the information timely to the user.
[0350] A character imitating a human or an animal is used to present the information to the user in such a manner that the character seems to perform the search spontaneously. By employing the character, even beginners of PCs or the like can feel relaxed. Each character is corresponded to each specialized area of information and the user can easily understand to which area the information now being processed belongs watching the character. Characters which are in charge of the areas the user is interested in and conducts frequent search often appear to chat with the user. The user intimately interacts with the characters.
[0351] Such characters may be registered as “favorite characters” so that the user can call them instantly. Favorite characters are so configured that the user can register the URLs of web sites he/she likes in areas related to the characters, which present renewal information of the web sites to the user. Each character stores the URLs of the web sites which fall within the specialized area the character is associated with. In this configuration, bookmarks can be classified according to specialized areas as the characters virtually work as folders for the bookmarks. The user does not need to confirm whether information is updated or not in the web sites as the character informs the user of the situation. The character may inform the situation periodically spontaneously or when the user utterance relates to the web sites.
[0352] The favorite characters may be raised by the user. A “character house” may be displayed on the screen in which the characters live. The attributes of the characters may change based on the attitude or behavior of the user on the characters. The characters may behave differently according to the attributes. The attributes may include “cheer”, which becomes larger when the user handles the character gently and becomes smaller when the user mishandles the character. A character with the “cheer” attribute being large may frequently conduct the search, whereas a character with small “cheer” attribute may stop working until the attribute is recovered. Such design of characters gives amusement to the user.
[0353] The major process flow of Embodiment 5 is almost the same as Embodiment 4 and the difference is described. The user utterance collection includes an additional utterance collection which contains expected utterances to trigger the search by expert agents.
[0354] When the initial utterance of the user is detected in the additional utterance collection, the process jumps to a page to conduct search and displays the search result. In the page, a process flow is written such that the search is performed based on the data the user registered beforehand and that the search result is presented to the user via the character. In another example, the situation whether the web site registered is updated or not is acquired and presented to the user via the character. In these examples, the process itself jumps to the page for the search. Alternately, an instruction to start search is sent to an expert agent so that the search process is performed as a background process. When the background process is performed, the conversation between the character and the user may be continued.
[0355] With regard to general utterances which follow the initial utterance, the process is almost the same as Embodiment 4. A series of process, however, is slightly different as follows.
[0356] 1.specify the user utterance by the originating server <b>4020</b>;
[0357] 2.specify a specialized server to cope with the specified utterance;
[0358] 3. respond to the user by the expert agent implemented in the specialized server;
[0359] 4. perform information search and display the search result;
[0360] 5. encourage the user to input a new utterance.
[0361]FIG. 57 shows the internal structure of the originating server <b>4020</b>. Now only the difference from FIG. 46 is described.
[0362] Each utterance has one corresponding file within the user utterance collection <b>4038</b>. The URL of a page to respond to the user utterance is described in each file. The content of the additional user utterance collection <b>4039</b> is included in the user utterance collection <b>4038</b> although they are separately shown in FIG. 57 for the convenience of understanding.
[0363] The URL detected in the user utterance collection <b>4038</b> or in the additional user utterance collection <b>4039</b> is transmitted to the browser of the user terminal <b>4012</b> via the communication unit <b>4030</b>. The browser then connects to the designated specialized server containing the page.
[0364] The internal structure of the index file <b>4036</b> is the same as FIG. 35. The internal structure of the user utterance collection <b>4038</b> is the same as FIG. 47. The internal description of the access information file <b>4046</b> is the same as FIG. 48.
[0365]FIGS. 58 and 59 show the internal structure of an additional index file <b>4037</b> and the additional user utterance collection <b>4039</b>, respectively. These components are included in the index file <b>4036</b> and the user utterance collection <b>4038</b>, respectively, but they are shown as independent components. The additional index file <b>4037</b> comprises an alphabet column <b>4200</b>, a user utterance column <b>4202</b> and a file name column <b>4204</b>. User utterance is sorted in an alphabetic manner.
[0366] The additional user utterance collection <b>4039</b> comprises a file name column <b>4204</b>, a user utterance column <b>4202</b> and a page column <b>4220</b> to indicate a specialized server to respond to the user. When the user utterance is “renewal”, the page of the responsible specialized server is “URLa203” and the combination of “renewal” and “URLa203” composes the file f804. The additional index file <b>4037</b> and the additional user utterance collection <b>4039</b> are linked through file names. For example, the utterance “new arrival” is contained in the file f805 in the additional index file <b>4037</b>, which is in turn associated with the file f805 in the additional user utterance collection <b>4039</b>.
[0367]FIG. 60 shows the internal structure of the gourmet server <b>4026</b>. Now only the difference from FIG. 50 is described.
[0368] The specific-purpose processor <b>4076</b> in the page 64 of URLa1 performs information search in addition to the counterpart in FIG. 50.
[0369] A favorite register <b>4080</b> registers the gourmet agent as a favorite data <b>4082</b> upon request from the user. The favorite register <b>4080</b> also registers the content of information the user wishes to search and the URLs of the web sites as the favorite data <b>4082</b> upon request. A character manager <b>4084</b> manages the attributes of characters and changes the values in accordance with the treatment of the characters by the user. The attributes are also stored as the favorite data <b>4082</b>.
[0370]FIG. 61 shows the internal structure of the favorite data <b>4082</b>. The favorite data <b>4082</b> is partitioned to a user name column <b>4300</b>, a search object column <b>4302</b>, a character attribute column <b>4304</b> and bookmark columns <b>4312</b>, <b>4318</b>. The search object column <b>4302</b> stores the content of information the user wishes to search. The character attribute column <b>4304</b> comprises an age column <b>4306</b>, a cheer column <b>4308</b> and an intelligence column <b>4310</b>, which are managed by the character manager <b>4084</b>. These attributes are referred to when the characters are displayed on the screen. The bookmark columns store the bookmarks user puts on web sites. Each bookmark column contains a URL column <b>4314</b> and a last view column <b>4316</b> which indicates when the user made the last view on the URL.
[0371]FIG. 62 shows the structure of a page stored in the agent action library <b>4062</b>. The page is used for information search. A specific-purpose processor <b>4076</b> of the URLa2 page 66 contains an information search unit <b>4077</b> to search information requested by the user via the Internet <b>4014</b> and a spontaneous search unit <b>4078</b> to start the search process spontaneously. The information search unit <b>4077</b> and the spontaneous search unit <b>4078</b> acquires URL information and the content object stored in the favorite data <b>4082</b> when they start the search. The spontaneous search unit <b>4078</b> decides the search frequency referring to the attributes of a character stored in the favorite data <b>4082</b>. The search result is presented to the user in the form of a character utterance by a character displaying unit <b>4071</b> in an agent output unit <b>4070</b>.
[0372] The internal structure of the <b>4012</b> is the same as FIG. 51. The initial screen of the <b>4012</b> is the same as FIG. 52. The process shown in FIGS. 53 and 54 is also performed in this embodiment. In the process, it is assumed that the user inputs “Teach me a good restaurant famous for Peking ravioli”. The gourmet agent responds to the request and conducts the search. When the search is finished, the process jumps to a page to display the search result.
[0373]FIG. 63 shows the screen <b>4150</b> displayed based on the page. On the screen, the titles <b>4170</b> of the web pages acquired by the information search unit <b>4077</b> are displayed. The favorite register <b>4080</b> registers the gourmet agent as a favorite character when the user clicks a register button <b>4180</b>.
[0374]FIG. 64 shows the screen <b>4150</b> in which the favorite register <b>4080</b> accepts the registration of a bookmark from the user. A bookmark is registered in the favorite data <b>4082</b> when the user fills the URL of a web site he/she likes in a URL column <b>4192</b> and clicks a register button <b>4190</b>. A bookmark may be registered when the user clicks a bookmark register button (not shown) while he/she views the web site.
[0375]FIG. 65 shows the screen <b>4150</b> in which a favorite character registered by the user is displayed. A character house <b>4194</b> in which the favorite character lives is displayed. A search process is initiated when the user inputs “Do you have any arrivals?” as the user utterance is contained in the additional utterance collection.
[0376]FIG. 66 shows the screen in which Gourmet Agent <b>4160</b> presents the search result. Gourmet Agent <b>4160</b> tells that two sites among those the user have registered have been renewed. The last view column <b>4316</b> in FIG. 61 is referred to in order to select sites which were renewed after the last view. Whether the registered web sites have been renewed or not may be checked when the user utterance relates to at least one of the web sites. Alternately, the registered web sites may be monitored periodically and renewed sites may be informed to the user when a user utterance is made.
[0377] In the present embodiment, the favorite register <b>4080</b>, the favorite data <b>4082</b> and the character manager <b>4084</b> are implemented in a specialized server. These units, however, may be implemented in the originating server <b>4020</b> to be centrally managed thereby. The favorite data <b>4082</b> may be stored in the user terminal <b>4012</b>. In this case, favorite characters may be designed as local agents to serve for the user in the user terminal <b>4012</b>.
[0378] Although the present invention has been described by way of exemplary embodiments, it should be understood that many changes and substitutions may be made by those skilled in the art without departing from the spirit and the scope of the present invention which is defined only by the appended claims.
Contents4
57 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42 Sheet 43 Sheet 44 Sheet 45 Sheet 46 Sheet 47 Sheet 48 Sheet 49 Sheet 50 Sheet 51 Sheet 52 Sheet 53 Sheet 54 Sheet 55 Sheet 56 Sheet 57
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2009077624A1 | Cited by | United States of America | Pre-grant |
| US11424980B2 | Cited by | United States of America | Applicant |
| US10691295B2 | Cited by | United States of America | Applicant |
| US11405463B2 | Cited by | United States of America | Applicant |
| US12063220B2 | Cited by | United States of America | Applicant |
| US11378922B2 | Cited by | United States of America | Applicant |
| US2014149121A1 | Cited by | United States of America | Pre-grant |
| US9886432B2 | Cited by | United States of America | Applicant |
| US11284331B2 | Cited by | United States of America | Applicant |
| US9628440B2 | Cited by | United States of America | Applicant |
| US10810274B2 | Cited by | United States of America | Applicant |
| US10186254B2 | Cited by | United States of America | Applicant |
| US11632308B2 | Cited by | United States of America | Applicant |
| US10410637B2 | Cited by | United States of America | Applicant |
| US11152002B2 | Cited by | United States of America | Applicant |
| US10127801B2 | Cited by | United States of America | Applicant |
| US8812559B2 | Cited by | United States of America | Search report |
| US10169329B2 | Cited by | United States of America | Applicant |
| US10318871B2 | Cited by | United States of America | Applicant |
| US11010550B2 | Cited by | United States of America | Applicant |
| US10185542B2 | Cited by | United States of America | Applicant |
| US10657961B2 | Cited by | United States of America | Applicant |
| US2020286479A1 | Cited by | United States of America | Search report |
| US11641391B2 | Cited by | United States of America | Applicant |
| US2009287682A1 | Cited by | United States of America | Pre-grant |
| US11816323B2 | Cited by | United States of America | Applicant |
| US10117191B2 | Cited by | United States of America | Applicant |
| EP1677218A3 | Cited by | European Patent Office (EPO) | Search report |
| US10747498B2 | Cited by | United States of America | Applicant |
| US7373375B2 | Cited by | United States of America | Search report |
| US9986419B2 | Cited by | United States of America | Applicant |
| US2009132361A1 | Cited by | United States of America | Pre-grant |
| US11500672B2 | Cited by | United States of America | Applicant |
| US10904178B1 | Cited by | United States of America | Applicant |
| US10332363B2 | Cited by | United States of America | Applicant |
| US10176167B2 | Cited by | United States of America | Applicant |
| US11113950B2 | Cited by | United States of America | Applicant |
| US9668024B2 | Cited by | United States of America | Applicant |
| US9621408B2 | Cited by | United States of America | Applicant |
| US2003115254A1 | Cited by | United States of America | Pre-grant |
| US11153266B2 | Cited by | United States of America | Applicant |
| US2004172248A1 | Cited by | United States of America | Pre-grant |
| US10275999B2 | Cited by | United States of America | Applicant |
| US10237806B2 | Cited by | United States of America | Applicant |
| US9633674B2 | Cited by | United States of America | Applicant |
| US9966068B2 | Cited by | United States of America | Applicant |
| US11432055B2 | Cited by | United States of America | Applicant |
| WO2016122534A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10283110B2 | Cited by | United States of America | Applicant |
| US2007261060A1 | Cited by | United States of America | Pre-grant |
| JP2015035090A | Cited by | Japan | Search report |
| US10674428B2 | Cited by | United States of America | Applicant |
| US11615697B2 | Cited by | United States of America | Applicant |
| US11700142B2 | Cited by | United States of America | Applicant |
| US10755703B2 | Cited by | United States of America | Applicant |
| US12127095B2 | Cited by | United States of America | Applicant |
| US11037433B2 | Cited by | United States of America | Applicant |
| US11244545B2 | Cited by | United States of America | Applicant |
| US8600779B2 | Cited by | United States of America | Applicant |
| US10049675B2 | Cited by | United States of America | Applicant |
| US9646609B2 | Cited by | United States of America | Applicant |
| US9953088B2 | Cited by | United States of America | Applicant |
| US10382452B1 | Cited by | United States of America | Applicant |
| US7805732B2 | Cited by | United States of America | Search report |
| US11025565B2 | Cited by | United States of America | Applicant |
| US10339791B2 | Cited by | United States of America | Applicant |
| EP1677218A2 | Cited by | European Patent Office (EPO) | Search report |
| US10366158B2 | Cited by | United States of America | Applicant |
| US10049668B2 | Cited by | United States of America | Applicant |
| US10791176B2 | Cited by | United States of America | Applicant |
| US10515086B2 | Cited by | United States of America | Applicant |
| US11405466B2 | Cited by | United States of America | Applicant |
| US10083688B2 | Cited by | United States of America | Applicant |
| US2016274759A1 | Cited by | United States of America | Applicant |
| US9130803B2 | Cited by | United States of America | Applicant |
| US9818400B2 | Cited by | United States of America | Applicant |
| US10237237B2 | Cited by | United States of America | Applicant |
| US10593346B2 | Cited by | United States of America | Applicant |
| US11223998B2 | Cited by | United States of America | Applicant |
| US11080012B2 | Cited by | United States of America | Applicant |
| US10754304B2 | Cited by | United States of America | Applicant |
| US7809706B2 | Cited by | United States of America | Search report |
| US10348575B2 | Cited by | United States of America | Applicant |
| US10133790B1 | Cited by | United States of America | Search report |
| US9633660B2 | Cited by | United States of America | Applicant |
| US8606634B2 | Cited by | United States of America | Applicant |
| US10444964B2 | Cited by | United States of America | Applicant |
| US11184322B2 | Cited by | United States of America | Applicant |
| US10079839B1 | Cited by | United States of America | Applicant |
| US10127802B2 | Cited by | United States of America | Applicant |
| US10930136B2 | Cited by | United States of America | Applicant |
| US10659179B2 | Cited by | United States of America | Applicant |
| US11893874B2 | Cited by | United States of America | Applicant |
| WO2007001331A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10574060B2 | Cited by | United States of America | Applicant |
| US11537186B2 | Cited by | United States of America | Applicant |
| US9928975B1 | Cited by | United States of America | Applicant |
| US11368327B2 | Cited by | United States of America | Applicant |
| US10091014B2 | Cited by | United States of America | Applicant |
| US11368429B2 | Cited by | United States of America | Applicant |
6 members in 2 offices
Priority claims20
| Document | Office | Kind | Date |
|---|---|---|---|
| 2000270845 | Japan | A | |
| 2000270845 | Japan | A | |
| 2000287615 | Japan | A | |
| 2000287615 | Japan | A | |
| 2000362400 | Japan | A | |
| 2000362400 | Japan | A | |
| 2000369116 | Japan | A | |
| 2000369116 | Japan | A | |
| 2000389638 | Japan | A | |
| 2000389638 | Japan | A | |
| A2000270845 | – | – | – |
| A2000287615 | – | – | – |
| A2000362400 | – | – | – |
| A2000369116 | – | – | – |
| A2000389638 | – | – | – |
| JP20000270845 | – | – | – |
| JP20000287615 | – | – | – |
| JP20000362400 | – | – | – |
| JP20000369116 | – | – | – |
| JP20000389638 | – | – | – |
Members6
| Document | Office | Kind | |
|---|---|---|---|
| JP2002082748A | Japan | A | |
| JP2002099416A | Japan | A | |
| US2002052913A1 | United States of America | A1 | |
| JP2002163054A | Japan | A | |
| JP2002169818A | Japan | A | |
| JP2002189732A | Japan | A |
30 transactions on the USPTO file
Abandoned after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | |
|---|---|
| Mail Abandonment for Failure to Respond to Office ActionAbandoned | |
| Aband. for Failure to Respond to O. A. | |
| Interview Summary Record | |
| Mail Non-Final RejectionNon-final rejection | |
| Non-Final RejectionNon-final rejection | |
| Date Forwarded to Examiner | |
| Response to Election / Restriction Filed | |
| Workflow incoming amendment IFW | |
| Mail Restriction Requirement | |
| Restriction/Election Requirement | |
| IFW TSS Processing by Tech Center Complete | |
| Miscellaneous Incoming Letter | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Miscellaneous Incoming Letter | |
| Change in Power of Attorney (May Include Associate POA) | |
| Correspondence Address Change | |
| Substitute Specification Filed | |
| Case Docketed to Examiner in GAU | |
| Miscellaneous Incoming Letter | |
| Application Dispatched from OIPE | |
| Application Is Now Complete | |
| Miscellaneous Incoming Letter | |
| Miscellaneous Incoming Letter | |
| Notice Mailed--Application Incomplete--Filing Date Assigned | |
| Correspondence Address Change | |
| IFW Scan & PACR Auto Security Review | |
| Request for Foreign Priority (Priority Papers May Be Included) | |
| Initial Exam Team nn |
5 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: application discontinuationABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTIONSTCB | STCB | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 2002052913
- Publication, EPODOC
- US2002052913
- Application
- 9822798
- Application, DOCDB
- 82279801
- Application, EPODOC
- US20010822798
Titles
- English
- User support apparatus and system using agents
Classification
- CPC, 2
- G06F16/9535
- G06F16/9538
- IPC, 1
- G06F17 30
- USPC, 2
- 709202000
- 707E17109