WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Voice interactive web-based agent system responsive to a user location for prioritizing and formatting information    

Get related patents on CD
United States Patent6446076   
Link to this pagehttp://www.wikipatents.com/6446076.html
Inventor(s)Burkey; Chad (Atherton, CA); Lopatin; Sergei (Mountain View, CA); Hughes; Lucian (Montara, CA)
AbstractA system, method and article of manufacture for facilitating a user in, or creating for a user, a web-based active knowledge management system to facilitate an intelligent agent coordinator. The architecture facilitates delivery of information whenever and where ever a user requires the information in an appropriate format based on characteristics of the user at that instant. Personalization of information is also afforded by taking into account the history of user interactions with various applications and current real time situations, such a time and place, in order to create a plurality of unique user profile. Each unique profile can then be associated with a unique address, as well as being given restriction exclusive to that profile. Associations, such as business rules or databases, can also be related to each such profile. A fast and scalable information prioritization subsystem is also utilized to incorporate intelligent agents coordinator opinion, user preferences, and history of user interactions. In addition, speech recognition and speech synthesis are combined with intelligent agent animated representation and tactile input.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Inventor     Burkey; Chad (Atherton, CA); Lopatin; Sergei (Mountain View, CA); Hughes; Lucian (Montara, CA)
Owner/Assignee     Accenture LLP. (Palo Alto, CA)
Patent assignment
All assignments
Company News
Publication Date     September 3, 2002
Application Number     09/196,482
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 19, 1998
US Classification     707/102 704/270 709/229
Int'l Classification     G06F 017/30
Examiner     Banks-Harold; Marsha D.
Assistant Examiner     Storm; Donald L.
Attorney/Law Firm     Brinks Hofer Gilson & Lione
Address
Parent Case     The present application claims the benefit of a provisional application entitled A SYSTEM, METHOD AND ARTICLE OF MANUFACTURE FOR A CLIENT CENTRIC NETWORKING EXPERIENCE filed Nov. 12, 1998, U.S. provisional application No. 60/115,515.
Priority Data    
USPTO Field of Search     704/275 704/270 709/218 709/229 709/219 713/201 345/335 707/501 707/2 707/513 707/102
Patent Tags     voice interactive web-based agent responsive user location for prioritizing formatting information
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
6199045
Giniger
705/1
Mar,2001

[0 after 0 votes]
6112186
Bergh

Aug,2000

[0 after 0 votes]
6092049
Chislenko

Jul,2000

[0 after 0 votes]
6049711
Ben-Yehezkel
455/414.3
Apr,2000

[0 after 0 votes]
6049777
Sheena
705/10
Apr,2000

[0 after 0 votes]
6047310
Kamakura

Apr,2000

[0 after 0 votes]
6047327
Tso

Apr,2000

[0 after 0 votes]
6029182
Nehab
715/523
Feb,2000

[0 after 0 votes]
5983190
Trower, II
704/276
Nov,1999

[0 after 0 votes]
5948061
Merriman
709/219
Sep,1999

[0 after 0 votes]
5915001
Uppaluru
379/88.22
Jun,1999

[0 after 0 votes]
5890152
Rapaport

Mar,1999

[0 after 0 votes]
5884262
Wise
704/270.1
Mar,1999

[0 after 0 votes]
5877759
Bauer
719/317
Mar,1999

[0 after 0 votes]
5872850
Klein
705/51
Feb,1999

[0 after 0 votes]
5848396
Gerace
705/10
Dec,1998

[0 after 0 votes]
5761644
Ueda
705/1
Jun,1998

[0 after 0 votes]
5745754
Lagarde
707/104.1
Apr,1998

[0 after 0 votes]
5701451
Rogers
707/1
Dec,1997

[0 after 0 votes]
5694459
Backaus
379/127.01
Dec,1997

[0 after 0 votes]
5493692
Theimer
455/26.1
Feb,1996

[0 after 0 votes]
5481255
Albert
340/7.21
Jan,1996

[0 after 0 votes]
5278943
Gasper
704/200
Jan,1994

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B

[0 market size comments]
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 market share comments]
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 license availability comments]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A method for creating a user network interface which is accessible from a plurality of locations, comprising the steps of:

identifying a user;

identifying in a database a plurality of stored profiles corresponding to the user;

determining which of the identified plurality of stored profiles corresponds to a current location of the user;

identifying information of interest to the user based on the determined user profile;

prioritizing the information of interest to the user based on the determined user profile;

displaying the information of interest formatted on a web page in accordance with the determined user profile; and

updating the determined user profile in the database based on interaction with the displayed information by the user in accordance with the current location of the user.

2. A method for creating a user network interface as recited in claim 1, wherein each profile has a unique intention associated therewith.

3. A method for creating a user network interface as recited in claim 1, wherein each profile has a unique address associated therewith.

4. A method for creating a user network interface as recited in claim 1, wherein each profile has unique restrictions associated therewith.

5. A method for creating a user network interface as recited in claim 1, wherein each profile has unique business rules associated therewith.

6. A method for creating a user network interface as recited in claim 1, wherein the information conveyed to the user is identified in one or more databases selected from the group consisting of a content database, a calendar database, an electronic email database, a contact database, a task database, and a news database.

7. A method for creating a user network interface as recited in claim 1, including the step of monitoring a user's activities to develop and store in the user's profile a time-based probability pattern of the user's location, and when the location of the user is not identified, delivering the information of interest to at least the location having the highest probability the user will view the information.

8. A method for creating a user network interface as recited in claim 7, including the step of formatting information for delivery to the user based on characteristics of the user's current environment.

9. A method for creating a user network interface as recited in claim 1, including the step of automatically sensing a user proximate to a publicly accessible multimedia display device, identifying the user and displaying on the multimedia display device the information of interest to the identified user.

10. A method for creating a user network interface as recited in claim 1, wherein the information of interest has a plurality of categories, and the method includes the step of updating the determined user profile with a time delivery preference for each category of information of interest based on said interactions.

11. A method for creating a user network interface as recited in claim 10, wherein the information of interest is displayed in accordance with the time delivery preference in the determined user profile.

12. A method for creating a user network interface as recited in claim 1, wherein the information of interest is further based on a response to a query developed from a description of an upcoming event retrieved from a calendar application for the user.

13. An apparatus for creating a user network interface which is accessible from a plurality of locations, comprising:

a processor;

a memory that stores information under the control of the processor;

logic that identifies a user;

logic that identifies in a database a plurality of stored profiles corresponding to the user

logic that determines which of the identified plurality of stored profiles corresponds to a current location of the user;

logic that identifies information of interest to the user based on the determined user profile;

logic that prioritizes the information of interest to the user based on the determined user profile;

logic that displays the information of interest on a web page formatted in accordance with the determined user profile; and

logic that updates the determined user profile in the database based on interaction with the displayed information by the user in accordance with the current location of the user.

14. A computer-readable medium for storing program code that, when executed, creates a user network interface which is accessible from a plurality of locations, the stored program code providing execution of the method steps of:

identifying a user;

identifying in a database a plurality of stored profiles corresponding to the user;

determining which of the identified plurality of stored profiles corresponds to a current location of the user;

identifying information of interest to the user based on the determined user profile;

prioritizing the information of interest to the user based on the determined user profile;

displaying the information of interest formatted on a web page in accordance with the determined user profile; and

updating the determined user profile in the database based on interaction with the displayed information by the user in accordance with the current location of the user.

15. A computer-readable medium as recited in claim 14, wherein each profile has a unique intention associated therewith.

16. A computer-readable medium as recited in claim 14, wherein each profile has a unique address associated therewith.

17. A computer-readable medium as recited in claim 14, wherein each profile has unique restrictions associated therewith.

18. A computer-readable medium as recited in claim 14, wherein each profile has unique business rules associated herewith.

19. A computer-readable medium as recited in claim 14, wherein the information of interest to the user is identified in one or more databases selected from the group consisting of a content database, a calendar database, an electronic email database, a contact database, a task database, and a news database.

20. A computer-readable medium as recited in claim 14, including a code segment embodied on a computer-readable medium that monitors a user's activities, a code segment that stores in the user's profile a time-based probability pattern of the user's location based in the user's monitored activities, and when the location of the user is not identified, a code segment that delivers the information of interest to at least the location having the highest probability the user will view the information.

21. A computer-readable medium as recited in claim 14, including a code segment embodied on a computer-readable medium that formats information for delivery to the user based on characteristics of the user's current environment.

22. A computer-readable medium as recited in claim 14 including a code segment embodied on a computer-readable medium that automatically senses a user proximate to a publicly accessible multimedia display device, a code segment that identifies the user and a code segment that displays on the multimedia display device the information of interest to the identified user.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The present invention relates to agent based systems and more particularly to an interactive web based agent system which responds to a particular user with information pertinent to the user's requirements.

Agent based technology has become increasingly important for use with applications designed to interact with a user for performing various computer based tasks in foreground and background modes. Agent software comprises computer programs that are set on behalf of users to perform routine, tedious and time-consuming tasks. To be useful to an individual user, an agent must be personalized to the individual user's goals, habits and preferences. Thus, there exists a substantial requirement for the agent to efficiently and effectively acquire user-specific knowledge from the user and utilize it to perform tasks on behalf of the user.

The concept of agency, or the user of agents, is well established. An agent is a person authorized by another person, typically referred to as a principal, to act on behalf of the principal. In this manner the principal empowers the agent to perform any of the tasks that the principal is unwilling or unable to perform. For example, an insurance agent may handle all of the insurance requirements for a principal, or a talent agent may act on behalf of a performer to arrange concert dates.

With the advent of the computer, a new domain for employing agents has arrived. Significant advances in the realm of expert systems enable computer programs to act on behalf of computer users to perform routine, tedious and other time-consuming tasks. These computer programs are referred to as "software agents."

Moreover, there has been a recent proliferation of computer and communication networks. These networks permit a user to access vast amounts of information and services without, essentially, any geographical boundaries. Thus, a software agent has a rich environment to perform a large number of tasks on behalf of a user. For example, it is now possible for an agent to make an airline reservation, purchase the ticket, and have the ticket delivered directly to a user. Similarly, an agent could scan the Internet and obtain information ranging from the latest sports or news to a particular graduate thesis in applied physics. Current solutions fail to apply agent technology to existing calendar technology to provide targeted acquisition of background information for a user's upcoming events.

SUMMARY OF THE INVENTION

According to a broad aspect of a preferred embodiment of the invention, an active knowledge management system is utilized to facilitate an intelligent agent coordinator. Support for several channels of information delivery, all of which utilize a common back-end is provided. For instance, if a user is in front of a Magic Wall, the information will be presented in a multimedia-rich form. If the system determines that the user is mobile, the information will be sent to an awareness machine in standard text. The architecture facilitates delivery of information whenever and wherever a user requires the information in an appropriate format based on characteristics of the user at that instant. Personalization of information is also afforded by taking into account the history of user interactions with various applications and current real-time situations including "who is the current user, where the user is currently, and when the user is logged onto the system." A fast and scalable information prioritization subsystem is also utilized to incorporate intelligent agents coordinator opinion, user preferences, and history of user interactions. This processing removes much of the normal processing from an agent which allows the agents to be much more sophisticated and precise without compromising the system scalability. In addition, speech recognition and speech synthesis in combination with intelligent agent animated representation and tactile input provides for efficient, intuitive, and emotionally rewarding interaction with the system.

DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, aspects and advantages are better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, in which:

FIG. 1 is a block diagram of a representative hardware environment in accordance with a preferred embodiment;

FIG. 2 is a flowchart of the system in accordance with a preferred embodiment;

FIG. 3 is a flowchart of a parsing unit of the system in accordance with a preferred embodiment;

FIG. 4 is a flowchart for pattern matching in accordance with a preferred embodiment;

FIG. 5 is a flowchart for a search unit in accordance with a preferred embodiment;

FIG. 6 is a flowchart for overall system processing in accordance with a preferred embodiment;

FIG. 7 is a flowchart of topic processing in accordance with a preferred embodiment;

FIG. 8 is a flowchart of meeting record processing in accordance with a preferred embodiment;

FIG. 9 is a block diagram of process flow of a pocket bargain finder in accordance with a preferred embodiment;

FIGS. 10A and 10B are a block diagram and flowchart depicting the logic associated with creating a customized content web page in accordance with a preferred embodiment;

FIG. 11 is a flowchart depicting the detailed logic associated with retrieving user-centric content in accordance with a preferred embodiment;

FIG. 12 is a data model of a user profile in accordance with a preferred embodiment;

FIG. 13 is a persona data model in accordance with a preferred embodiment;

FIG. 14 is an intention data model in accordance with a preferred embodiment;

FIG. 15 is a flowchart of the processing for generating an agent's current statistics in accordance with a preferred embodiment;

FIG. 16 is a flowchart of the logic that determines the personalized product rating for a user in accordance with a preferred embodiment;

FIG. 17 is a flowchart of the logic for accessing the centrally stored profile in accordance with a preferred embodiment;

FIG. 18 is a flowchart of the interaction logic between a user and the integrator for a particular supplier in accordance with a preferred embodiment;

FIG. 19 is a flowchart of the agent processing for generating a verbal summary in accordance with a preferred embodiment;

FIG. 20 illustrates a display login in accordance with a preferred embodiment;

FIG. 21 illustrates a managing daily logistics display in accordance with a preferred embodiment;

FIG. 22 illustrates a user main display in accordance with a preferred embodiment;

FIG. 23 illustrates an agent interaction display in accordance with a preferred embodiment;

FIG. 24 is a block diagram of an active knowledge management system in accordance with a preferred embodiment;

FIG. 25 is a block diagram of a back end server in accordance with a preferred embodiment; and

FIG. 26 is a block diagram of a magic wall in accordance with a preferred embodiment.

DETAILED DESCRIPTION

A preferred embodiment of a system in accordance with the present invention is preferably practiced in the context of a personal computer such as an IBM compatible personal computer, Apple Macintosh computer or UNIX based workstation. A representative hardware environment is depicted in FIG. 1, which illustrates a typical hardware configuration of a workstation in accordance with a preferred embodiment having a central processing unit 110, such as a microprocessor, and a number of other units interconnected via a system bus 112. The workstation shown in FIG. 1 includes a Random Access Memory (RAM) 114, Read Only Memory (ROM) 116, an I/O adapter 118 for connecting peripheral devices such as disk storage units 120 to the bus 112, a user interface adapter 122 for connecting a keyboard 124, a mouse 126, a speaker 128, a microphone 132, and/or other user interface devices such as a touch screen (not shown) to the bus 112, communication adapter 134 for connecting the workstation to a communication network (e.g., a data processing network) and a display adapter 136 for connecting the bus 112 to a display device 138. The workstation typically has resident thereon an operating system such as the Microsoft Windows NT or Windows/95 Operating System (OS), the IBM OS/2 operating system, the MAC OS, or UNIX operating system. Those skilled in the art will appreciate that the present invention may also be implemented on platforms and operating systems other than those mentioned.

A preferred embodiment is written using JAVA, C, and the C++ language and utilizes object oriented programming methodology. Object oriented programming (OOP) has become increasingly used to develop complex applications. As OOP moves toward the mainstream of software design and development, various software solutions require adaptation to make use of the benefits of OOP. A need exists for these principles of OOP to be applied to a messaging interface of an electronic messaging system such that a set of OOP classes and objects for the messaging interface can be provided.

OOP is a process of developing computer software using objects, including the steps of analyzing the problem, designing the system, and constructing the program. An object is a software package that contains both data and a collection of related structures and procedures. Since it contains both data and a collection of structures and procedures, it can be visualized as a self-sufficient component that does not require other additional structures, procedures or data to perform its specific task. OOP, therefore, views a computer program as a collection of largely autonomous components, called objects, each of which is responsible for a specific task. This concept of packaging data, structures, and procedures together in one component or module is called encapsulation.

In general, OOP components are reusable software modules which present an interface that conforms to an object model and which are accessed at run-time through a component integration architecture. A component integration architecture is a set of architecture mechanisms which allow software modules in different process spaces to utilize each others capabilities or functions. This is generally done by assuming a common component object model on which to build the architecture.

It is worthwhile to differentiate between an object and a class of objects at this point. An object is a single instance of the class of objects, which is often just called a class. A class of objects can be viewed as a blueprint, from which many objects can be formed.

OOP allows the programmer to create an object that is a part of another object. For example, the object representing a piston engine is said to have a composition-relationship with the object representing a piston. In reality, a piston engine comprises a piston, valves and many other components; the fact that a piston is an element of a piston engine can be logically and semantically represented in OOP by two objects.

OOP also allows creation of an object that "depends from" another object. If there are two objects, one representing a piston engine and the other representing a piston engine wherein the piston is made of ceramic, then the relationship between the two objects is not that of composition. A ceramic piston engine does not make up a piston engine. Rather it is merely one kind of piston engine that has one more limitation than the piston engine; its piston is made of ceramic. In this case, the object representing the ceramic piston engine is called a derived object, and it inherits all of the aspects of the object representing the piston engine and adds further limitation or detail to it. The object representing the ceramic piston engine "depends from" the object representing the piston engine. The relationship between these objects is called inheritance.

When the object or class representing the ceramic piston engine inherits all of the aspects of the objects representing the piston engine, it inherits the thermal characteristics of a standard piston defined in the piston engine class. However, the ceramic piston engine object overrides these ceramic specific thermal characteristics, which are typically different from those associated with a metal piston. It skips over the original and uses new functions related to ceramic pistons. Different kinds of piston engines have different characteristics, but may have the same underlying functions associated with it (e.g., how many pistons in the engine, ignition sequences, lubrication, etc.). To access each of these functions in any piston engine object, a programmer would call the same functions with the same names, but each type of piston engine may have different/overriding implementations of functions behind the same name. This ability to hide different implementations of a function behind the same name is called polymorphism and it greatly simplifies communication among objects.

With the concepts of composition-relationship, encapsulation, inheritance and polymorphism, an object can represent just about anything in the real world. In fact, our logical perception of the reality is the only limit on determining the kinds of things that can become objects in object-oriented software. Some typical categories are as follows:

Objects can represent physical objects, such as automobiles in a traffic-flow simulation, electrical components in a circuit-design program, countries in an economics model, or aircraft in an air-traffic-control system.

Objects can represent elements of the computer-user environment such as windows, menus or graphics objects.

An object can represent an inventory, such as a personnel file or a table of the latitudes and longitudes of cities.

An object can represent user-defined data types such as time, angles, and complex numbers, or points on the plane.

With this enormous capability of an object to represent just about any logically separable matters, OOP allows the software developer to design and implement a computer program that is a model of some aspects of reality, whether that reality is a physical entity, a process, a system, or a composition of matter. Since the object can represent anything, the software developer can create an object which can be used as a component in a larger software project in the future.

If 90% of a new OOP software program consists of proven, existing components made from preexisting reusable objects, then only the remaining 10% of the new software project has to be written and tested from scratch. Since 90% already came from an inventory of extensively tested reusable objects, the potential domain from which an error could originate is 10% of the program. As a result, OOP enables software developers to build objects out of other, previously built, objects.

This process closely resembles complex machinery being built out of assemblies and sub-assemblies. OOP technology, therefore, makes software engineering more like hardware engineering in that software is built from existing components, which are available to the developer as objects. All this adds up to an improved quality of the software as well as an increased speed of its development.

Programming languages are beginning to fully support the OOP principles, such as encapsulation, inheritance, polymorphism, and composition-relationship. With the advent of the C++ language, many commercial software developers have embraced OOP. C++ is an OOP language that offers a fas