|
|  Get related patents on CD |
| United States Patent | 6446076 |
| Link to this page | http://www.wikipatents.com/6446076.html |
| Inventor(s) | Burkey; Chad (Atherton, CA);
Lopatin; Sergei (Mountain View, CA);
Hughes; Lucian (Montara, CA) |
| Abstract | A 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  |
|
|
|
|
|
|
| Publication Date |
September 3, 2002 |
|
|
|
|
|
| Filing Date |
November 19, 1998 |
|
|
|
|
|
|
|
|
|
|
|
| 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. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
Claims  |
|
|
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. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
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 | | |