WO2000060435A2 - System and method for accessing personal information - Google Patents

System and method for accessing personal information Download PDF

Info

Publication number
WO2000060435A2
WO2000060435A2 PCT/US2000/009265 US0009265W WO0060435A2 WO 2000060435 A2 WO2000060435 A2 WO 2000060435A2 US 0009265 W US0009265 W US 0009265W WO 0060435 A2 WO0060435 A2 WO 0060435A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
information
personal
entity
user
Prior art date
Application number
PCT/US2000/009265
Other languages
French (fr)
Other versions
WO2000060435A3 (en
Inventor
Cheng Hsu
Gregory N. Hughes
Boleslaw Szymanski
Original Assignee
Rensselaer Polytechnic Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rensselaer Polytechnic Institute filed Critical Rensselaer Polytechnic Institute
Publication of WO2000060435A2 publication Critical patent/WO2000060435A2/en
Publication of WO2000060435A3 publication Critical patent/WO2000060435A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0014Coin-freed apparatus for hiring articles; Coin-freed facilities or services for vending, access and use of specific services not covered anywhere else in G07F17/00

Definitions

  • the present invention relates generally, to computer transaction systems, and more specifically, to systems for accessing and storing personal information.
  • e-commerce transactions may be performed between any entities, whether they are individuals or companies.
  • company will be used synonymously with “provider” or “individual” providing goods or services; the company, provider or individual may be any entity providing goods or services.
  • provider or individual
  • person will also be used interchangeably as an entity that receives goods or services.
  • a provider system such as an e-commerce Internet site may store transaction information, such as an item type purchased by a consumer, and display items that are related to the item type to entice the consumer to perform a subsequent purchase. Or, the provider system may sell this transaction information to other companies so that these other companies may more effectively market their goods and services.
  • Personal information may also be provided to companies by externally-generated programs referred to as "cookies.”
  • a cookie is typically stored on a person's computer such as a personal computer (PC), and the cookie transmits information regarding the person's behavior or other information to the company.
  • the cookie may also store information to facilitate a transaction, such as a username and password associated with the consumer.
  • a user does not want a cookie to transmit personal information
  • the person can, at their PC, disable the acceptance of cookies. This disabling is usually performed by adjusting a setting of an Internet browser program, as cookies are generally downloaded to a person ' s PC while browsing the Internet or performing e-commerce transactions.
  • useful information such as usernames and passwords are not available to the user. Because this information is not available, a transaction such as an e-commerce transaction or a browsing of a Web page requires this information to be entered each time the transaction is performed, and thus the user is inconvenienced.
  • Amazon.com ranks books according to sales volume, and includes the capability of displaying feedback from other consumers.
  • Amazon.com provides a facility for consumers to submit reviews of books for the benefit of other consumers.
  • Amazon.com maintains information regarding cross-sales ⁇ Amazon.com maintains and distributes information regarding other related books that other consumers have bought from the site.
  • this information is only available to the company that operates the site, and if the company permits it, consumers of the site. Further, as described above, this information is used by companies such as Amazon.com for their commercial benefit, by determining, for example, banner advertisements displayed to a user or by targeting their own products and services specifically to that user.
  • a new business model is provided wherein a consumer such as a person is in control of their own personal information.
  • a consumer such as a person is in control of their own personal information.
  • the paradigm is changed to a person-centered approach wherein the data of the person is owned and controlled by the person.
  • Personal data may be controlled, for example, by a single personal system, or a plurality of systems acting together in the interest of the person.
  • a device receives and stores personal information of the user that is configured to communicate with a system to perform transactions.
  • the device may be, for example, an electronic chip or card which controls and stores personal databases, knowledge, and decision tools pertaining to a particular aspect of life (such as finance, medical or education) or to some integration of these aspects.
  • the device may be portable, such that a user may carry their personal information with them to assist them in their daily lives.
  • the personal information could include medical records, and the user may share his or her medical records with one or more medical establishments that the user visits.
  • the personal device may store personal phone numbers, networks, and other information of interest to the user.
  • the device may store information to assist in other life activities including food preparation, health care, acquiring and maintaining housing or clothing, paying bills, acquiring information, seeking advice or enjoying recreation.
  • personal data is stored with the user which allows the user to more easily perform transactions.
  • the device includes an interface that transmits the personal information to a plurality of general -purpose computer systems, where the information is processed.
  • the system includes an agent that is configured to contact one or more provider systems to meet the personal needs of the users. The user does not need to know the location and identity of the provider systems; the agent contacts the provider systems transparently to the user.
  • a standard transaction protocol is provided that allows companies to develop applications that use and interpret the personal information.
  • the applications may include shared databases, knowledge and intelligence that interpret data stored on the personal device to perform transactions.
  • a user may use the personal device to assist him or her in choosing products and services.
  • the personal device may store, for example, personal information that does not need to be replicated at each of the business systems.
  • the system includes a personal information management system which allows the user to review or modify their personal information on the device or to perform transactions.
  • a method for performing a transaction involving data provided by a first entity to a second entity over a distributed communications network comprising steps of maintaining the data, wherein the data is associated with the first entity, and controlling distribution of the data to the second entity by the first entity.
  • the first entity is a person.
  • the first entity is a company.
  • the second entity is a computer system controlled by at least one of the group comprising a person; an association of people; a business; and a group of businesses.
  • the first entity controls access information sufficient to perform a transaction.
  • the method includes a step of controlling ownership, by the first entity, to the associated data.
  • the data associated with the first entity includes at least one preference of the first entity.
  • the at least one preference is determined by a transaction conducted by the first entity.
  • the method further comprises a step of collecting, by the first entity, a history of one or more transactions performed by the first entity, and determining at least one preference of the first entity based on the history of one or more transactions.
  • the method further comprises creating, as a result of a transaction, data owned by at least one of the group including the first entity, the second entity, and both the first and second entity.
  • the method further comprises maintaining ownership information indicating ownership of the data.
  • the data is owned by both the first and second entity, and the ownership information indicates only joint ownership information.
  • the data includes at least one preference derived from data associated with the first entity.
  • the at least one preference is derived from data associated with other entities.
  • the other entities are other users in a user community, and wherein the data associated with other entities includes behavior and preference data associated with the other users.
  • a method for performing transactions over a distributed communications network involving at least one person.
  • the method comprises maintaining, by the at least one person, data owned by the at least one person; and controlling, by the at least one person, distribution of data at least one entity over the distributed network.
  • the method further comprises a step of providing a subset of the data sufficient to perform a transaction.
  • the method further comprises a step of controlling ownership of the data by the at least one person.
  • the method further comprises a step of creating, as a result of executing a transaction, data owned by at least one of the group of the person; the at least one entity; and both the person and the at least one entity.
  • a method for maintaining ownership and control of data.
  • the method comprises steps of operating a computer system having a plurality of processes, and wherein at least one of the processes executes as a user process; indicating, for data accessed by the at least one process, ownership of the accessed data; and indicating, for the data accessed by the at least one process, control of the accessed data wherein indication of ownership and indication of control are independent.
  • an indication of ownership includes at least one of a group including: a first person, wherein the data is personal data of the first person; a first group, wherein the first person is a member of the first group and the first person accesses the data through the computer system; automatic transfer of ownership of data, wherein a receiver of data including at least one of the first person or first group attains automatic ownership of the data; and wherein an indication of control includes at least one of a group including: the first person; a second person, wherein the second person accesses the data using a computer system; the first group; a second group wherein the second person is a member of the second group and accesses the data through the computer system; and a system.
  • the indication of ownership further comprises indicating that the data has no owner.
  • at least one of the second person or the second group upon receiving the data, attains ownership of the data.
  • at least one of the second person or second group attains ownership of the data based upon a predetermined relationship between an owner of the data and the at least one of the second person or the second group.
  • the predetermined relationship is an employer-employee relationship, wherein the owner is an employee, and the at least one of the second person or the second group is an employer.
  • the predetermined relationship is a legal relationship that obligates the owner of the data to relinquish ownership of the data to the at least one of the second person or the second group.
  • a method for maintaining ownership and control of data.
  • the method comprises steps of (a) operating, by a person, a computer system, wherein the computer system is configured to operate upon the data; (b) indicating ownership of the data; and (c) indicating, independently from (b) an indication of control of the data.
  • the steps (b) and (c) both include indicating, in the data, ownership and control of the data.
  • the method further comprises transferring the data between first and second entities, and, as a result of a processing of the data, creating second data having an ownership by at least one of the group including the first entity; the second entity; and both the first and second entity.
  • the method further comprises transferring the data between first and second entities, and providing control of the data by at least one of the group including the first entity; the second entity; and both the first and second entity.
  • the method further comprises transferring the data between first and second entities, and wherein steps (b) and (c) both include indicating, in the data, ownership and control of the data.
  • a portable device is provided for storing personal information of a user and conducting transactions using the personal information.
  • the device comprises a database of personal information, and an interface that transmits the personal information to an external entity to facilitate a transaction, wherein the interface controls what personal information is transmitted.
  • the personal information is personal preferences in goods and services
  • the device interprets the personal information to determine marketing information to be presented to the user.
  • the interface further comprises a shell that permits or denies personal data to be distributed to an external entity.
  • the interface further comprises a shell that filters unwanted data from being received by the device.
  • a minimum amount of personal data is distributed to conduct a transaction with the external entity.
  • the shell is a software program executing on the portable device.
  • the shell is a software program executing on the portable device.
  • the device further comprises a database of information relating to the use of the personal information.
  • the device further comprises subsystems distributed in at least one of: (a) one or more personal computers; (b) one or more network servers; and both (a) and (b).
  • the database of information relates to the use of the personal information and includes at least one rule governing at least one of use access, and management of the personal information.
  • the database of information relates to the use of the personal information and further comprises rules governing distribution of the personal information to external entities.
  • the device further comprises a plurality of agents configured to support conducting transactions between a user of the device, wherein the plurality of agents control distribution of the personal information to the external entities.
  • the personal device cooperatively distributes the personal information among one or more trusted systems.
  • a method for accessing personal information of a user on a personal device.
  • the method comprises steps of establishing a communication link between the device and an external system; transferring the personal information to the external system to facilitate a transaction; storing information related to the transaction on the personal device.
  • the personal data includes medical records, and the information related to the transaction is medical treatment information.
  • the personal data includes financial records, and the information related to the transaction is financial transaction information.
  • the step of transferring includes transferring a minimum amount of personal data sufficient to conduct the transaction with the external system.
  • the method further comprises a step of selecting personal data to be transferred by the step of transferring based on a minimum set of information needed to conduct the transaction.
  • the method further comprises a step of storing, on a second external system, overflow personal information.
  • the method further comprises steps of transferring the personal information to an intermediate system and generating an agent that performs the transaction on behalf of the user.
  • a method for managing personal data.
  • the method comprises storing, on a portable device, personal data owned by a user; and controlling, by the user, distribution of the data to other entities over a communications network, wherein the personal data is distributed among the portable device and a plurality of general -purpose computers, the general-purpose computers being used to store overflow information.
  • at least one of the plurality of general-purpose computers is a personal computer operated by the user.
  • the method further comprises filtering unwanted data from being received by the device.
  • the " method further comprises allowing personal data to be communicated to another entity, the communicated personal data being sufficient to support a transaction.
  • the communicated personal data is a minimum amount of data sufficient to support the transaction.
  • the method further comprises denying, communication of information unnecessary for performing the transaction.
  • the step of controlling is performed cooperatively between the portable device and general-purpose computer.
  • the method further comprises communicating the personal data with a server system, and generating, by the server system, an agent configured to control and transmit the personal data to the other entities.
  • the method further comprises storing, on at least one of the plurality of general-purpose computers, personal data related to a community of which the user is associated.
  • the method further comprises providing .an interoperating distributed software system, the system being distributed among the portable device and plurality of general-purpose computers.
  • the method further comprises providing, among the portable device and plurality of general-purpose computers, a common interface to the user.
  • the method further comprises providing, among the portable device and plurality of general-purpose computers, a common interface to application software programs.
  • the method further comprises storing, managing, and processing rules and agents to facilitate transaction conducted by the portable device and plurality of general-purpose computers.
  • a method is provided for managing personal data.
  • the method comprises steps of storing, on a first system, personal data owned by a user; receiving and executing, at the first system, an externally-generated program configured to transfer information to second system; and controlling, by the user, distribution of the personal data to the second system.
  • the externally-generated program is a software cookie.
  • the personal data owned by a user includes behavior information of the user.
  • the step of controlling further comprises allowing access, to the externally- generated program, to a minimum amount of personal data.
  • the step of controlling includes allowing a user to benefit from the externally-generated program while limiting an amount of personal data accessed by the program.
  • a method for performing a transaction in a distributed network comprising generating, by a computer system coupled to a communications network, a software agent configured to exchange data to support a transaction; and exchanging the data with one or more other systems coupled to the communications network, wherein the agent provides a minimum amount of data to support the transaction.
  • the software agent is comprised of a plurality of base agents and the step of generating comprises generating the plurality of base agents that comprise the software agent.
  • the method further comprises maintaining identification of each of the plurality of base agents and managing the identifications in a database.
  • the method further comprises managing creation and deletion of agents.
  • the method further comprises re-using existing agents to form new agents.
  • the computer system includes at least three devices functioning as a single manager of data including a portable device; a system configured to connect to the portable device and store overflow information; and a server system configured to dispatch the software agent to the one or more other systems coupled to the communication network.
  • a method for interfacing a portable device to a user.
  • the method comprises providing a natural language query input to the user; performing, based on the input, a search of one or more language-based databases; and providing, through an interface of the portable device, a result of the search.
  • the method further comprises a step of identifying, for the one or more language-based databases, a finite number of database objects, and determining a plurality of combinations of the finite number of database objects.
  • the method further comprises a step of mapping the natural language query to the plurality of combinations.
  • the step of mapping comprises steps of identifying keywords in the natural language query; and relating the key words to the plurality of combinations.
  • the method further comprises a step of determining a reference dictionary comprising case information; keywords; information models; and database values.
  • the step of mapping further comprises resolving ambiguity between the keywords and the plurality of combinations.
  • the step of resolving includes determining an optimal interpretation of the natural language query using at least one of a group comprising rules and heuristics.
  • Fig. 1 is a block diagram of a personal system in accordance with one embodiment of the invention.
  • Fig. 2 is a block diagram showing a personal system being distributed among a plurality of systems
  • Fig. 3 is a block diagram of a general-purpose computer system upon which one embodiment of the invention may be implemented;
  • Fig. 4 is a block diagram of a computer system using agents
  • Fig. 5 is a block diagram showing agent communication in accordance with one embodiment of the invention.
  • Fig. 6 is a flow diagram of a process for performing agent communication
  • Fig. 7 is a block diagram showing an agent transmission process
  • Fig. 8 is a block diagram showing an example metadatabase system
  • Fig. 9 is a block diagram of a personal data format in accordance with one embodiment of the invention.
  • Fig. 10 is a flow diagram of a method of processing data in accordance with one embodiment of the invention
  • Fig. 11 is a block diagram of an example graphical user interface according to one embodiment of the invention
  • Fig. 12 is a block diagram of another example graphical user interface according to one embodiment of the invention.
  • Fig. 13 is a block diagram of a natural language query processor according to one embodiment of the invention.
  • Fig. 14 is a block diagram showing an example structure of a reference dictionary.
  • a new business model wherein a consumer such as a person is in control of their own personal information.
  • a consumer such as a person is in control of their own personal information.
  • the conventional e-commerce paradigm is changed to a person-centered approach wherein the data of the person is owned and controlled by the person.
  • Personal data may be controlled, for example, by a single personal system, or a plurality of systems acting together in the interest of the person.
  • a method for differentiating between ownership and control of data.
  • the producer of the data has the ability to specify a level of ownership and level of control of data to allow increased functionality in handling the data.
  • control and distribution of data is more flexible.
  • ownership and control information of the data may indicate a single entity, such as a person, as being the sole owner and controller of the data.
  • it may be beneficial to provide total ownership and control of data such as name, address, Social Security Number, etc. to the person.
  • a joint ownership of data wherein the group of owners collectively owns and controls the data.
  • many entities own the data, and many entities control the data.
  • a person who is a member of an organization may choose to relinquish personal data to the organization, creating community data owned and controlled by the organization.
  • the organization collectively may choose to relinquish the community data to a larger organization, of which it is or is not a part.
  • a fraternity chapter having a collection of members, may collectively choose to relinquish fraternity chapter data to a national fraternal organization.
  • the fraternity chapter may collectively choose to relinquish chapter data to an unrelated organization.
  • an automatic transfer of ownership of data could be triggered by a request by an entity that has a predetermined relationship with the entity that owns the data.
  • the owning data may be an employee, and the employer may have a superior ownership right to all data produced by the employee.
  • the employer has a legal right to the data, and the employee is obligated to relinquish the data.
  • a device for storing, managing and controlling personal data.
  • a personal system stores, manages and controls person-owned data and information.
  • a shell is provided that maintains privacy, security and control of person-owned data stored in the device. Also, the shell filters out unwanted information from other individuals and companies.
  • a distributed system architecture is provided including a portable device and a plurality of general-purpose computer systems. One or more of the general -purpose computer systems may be used to backup data and store overflow data from the portable device. In conventional systems such as PDAs coupled to PCs, information is merely replicated from the PDA to the PC, and vice-versa.
  • overflow data such as data that is not currently being used
  • the personal data is actively managed based on use of the data.
  • the distributed system may operate collectively as a single unit, to manage and control personal data.
  • the system may employ agents that are created by the system that pass through the shell and return with the desired information or complete a transaction to serve the persons interests while keeping the personal data within the ownership and control of the person.
  • a manager is provided that manages a plurality of agents. For example, the manager may facilitate re-use of existing agents to create new agents.
  • a metadata database is used to manage the agents.
  • the portable device includes a Natural Language User Interface (NLUI) to enhance the ease of use.
  • NLUI Natural Language User Interface
  • the portable device uses a natural language query processor that minimizes the amount of storage and processing required on the portable device.
  • Fig. 1 shows a block diagram of a personal system 101 in which personal data 104 may be managed and accessed by a user.
  • System 101 may include, for example, a portable device on which the personal information 104 is stored.
  • the personal information 104 may be, for example, data stored in a database 105, such as identification, security, medical records, financial information, or the like.
  • personal information 104 may also include a knowledge database 106, which is a collection of knowledge accrued by the user of the personal system 101.
  • Knowledge base 106 may be, for example, a collection of facts, a collection of logic to be applied to facts, or both. For example, if a person is taking a first prescription drug (a fact), the fact that another prescription drug causes an interaction with the first is a logic relation.
  • Personal system 101 may also include decision tools 107 which allow the user to facilitate transactions.
  • decision tools 107 may assist the user in selecting one product over another.
  • Decision tools 107 may include common or generic knowledge regarding providers of goods and services, or specific personal information particular to an individual user, such as medical history, background, allergies, product or brand preferences, etc.
  • the personal system 101 may be portable or include some portion thereof which is portable and is associated with a user.
  • the user may carry system 101 or a portion thereof, which may be for example, a card, an electronic chip, or other device used to store personal information.
  • the personal system may be attached to the user, such as being embedded in the body of the user.
  • System 101 may or may not be accessible through a user interface located on the device.
  • the device does not provide an interface on the device itself; the device is accessed by an external reading device such as a card reader.
  • a graphical user interface is provided, through which the user provides input and receives output (user I/O 112). Other methods of accessing personal data 104 may be used.
  • Smart cards function as usage keys for users to gain access to services.
  • a smart card includes only identification and security information used to authenticate a user.
  • personal system 101 maintains and controls information associated with the owner of the information.
  • personal system 101 is distributed among a portable device 201 and a number of general-purpose computer systems 202, 203.
  • the portable device 201 includes storage media used to store the personal data or information 104A.
  • Storage media may be, for example, magnetic or optical storage media, or electronically programmable media such as an EEPROM or Compact flash device. It should be understood that any media type may be used.
  • the storage media is compact and portable by a user and is energy efficient, to reduce power requirements for system 101.
  • System 101 enables secure identification of the user and includes identity and password information on system 101.
  • System 101 may include a processor, operating system, and memory and storage devices (not shown) used to store, retrieve and process personal data 104.
  • system 101 provides access to goods and services provided by provider systems 103 A, 103B.
  • Personal system 101 communicates with systems to exchange the personal information to facilitate transactions with one or more provider systems 103 A, 103B.
  • the personal information is generally transmitted over links 109-111 to provider systems 103 A. 103B such as Internet sites, personal computers, or other systems capable of performing transactions.
  • Links 109-111 may be optical, electromagnetic or electrical links as is known in the art.
  • links may be wireless communication links.
  • the communication links 109-111 may be network links over copper or optical media. Other link types are possible.
  • Personal system may communicate information to provider systems directly, or may communicate information in conjunction with one or more general-purpose computers 202, 203.
  • Computers 202, 203 may be located, for example, in a medical office or store, or at the location of a provider of goods and services.
  • computers 202, 203 may be a personal computer of a user.
  • computer system 202 may be a personal computer that can be used to store user data that is too large to be stored at device 101.
  • computer system 203 is maintained by a trusted provider and provides service to one or more users. Unlike conventional service providers that accepts advertising revenue to target consumers and otherwise do not act entirely within the best interests of the consumer, computer system 203 can be operated by the trusted provider to serve the needs of consumers.
  • computer system 203 limits the access of other entities to personal data 104. Also, computer system 203 stores community data 212 to be shared among users, and used for the benefit of the users. This contrasts to current practices such as Amazon.com, wherein the company Amazon.com maintains personal and collective knowledge of transactions to further their business objectives.
  • Portable device 201 and computer systems 202, 203 may include a distributed management process 108 A, 108B, 108C (collectively, item 108) that manages personal data 104.
  • Data 104 may be, for example, identification information, medical records, medical treatments, previous transactions, financial information, or other personal information used by the business to perform a transaction.
  • Computer system 203 communicates through network 102 with one or more provider systems 103 A, 103B (collectively, item 103) to allow the user to access goods and services.
  • Provider systems 103 A, 103B may in turn access other providers, such as Citigroup or other institution for financial services, an HMO for health services, etc.
  • Computer system 203 may provide the interfaces necessary to communicate with provider systems, such that reprogramming of the provider systems is unnecessary.
  • Computer system 203 may communicate with other systems using a communication protocol such as TCP/IP. It should be understood that other protocols may be used.
  • Computer system 203 may include one or more agents used to interpret personal information, and communicate with one or more provider systems 103. Agents, discussed in more detail below with reference to Figures 4-7, are well-known in the art of Internet programming.
  • Computer system 203 may include an agent library 213, which includes a number of agents configured to perform specific tasks. As different tasks need to be performed, additional agents may be added to the library 213.
  • Portable device 201 generally includes a personal information management system 108A which allows the user to view, change and interpret his or her own personal information 104 stored on personal system 101.
  • Portable device 201 may also be a general purpose computer system 301 as shown in Fig. 3.
  • Portable device 201 may also be a personal digital assistant (PDA) such as those available from Palm Computing, or a PDA that executes the WinCE operating system, available from a variety of vendors.
  • Device 201 may also by a cellular phone capable of communicating data over the Internet (termed a "Web phone"). Other portable devices may be used.
  • Portable device 201 may also include one or more application software systems 207 that execute on device 201 and operate on personal data 104. For example, a calendar management application that provides management of appointments and dates may execute on device 201. Other application systems 207 that use personal data 104 may be used.
  • portable device 201 includes a graphical user interface (GUI) through which a user provides input and receives output. That is, the user provides and receives user input/output (I/O) 112 to GUIs 204, 208 as shown on Figure 2.
  • GUI graphical user interface
  • I/O user input/output
  • the GUI is a natural language user interface (NLI) that accepts natural language inputs from the user.
  • Computer systems 202, 203 may also be general purpose computer systems 301 such as that shown in Fig. 3.
  • the computer system 301 may include a processor 302 connected to one or more storage devices 303, such as a disk drive through a communication device such as bus 307.
  • the computer system also includes one or more output devices 304, such as a monitor or graphic display, or printing device.
  • the computer system 301 typically includes a memory 305 for storing programs and data during operation of the computer system 301.
  • the computer system may contain one or more communication devices that connect the computer system to a communication network 306.
  • Computer system 301 may be a general purpose computer system that is programmable using a high level computer programming language.
  • the computer system may also be implemented using specially programmed, special purpose hardware.
  • the processor 302 is typically a commercially available processor, such as the PENTIUM, PENTIUM II, PENTIUM III, or StrongARM microprocessor from the Intel Corporation, PowerPC microprocessor, SPARC processor available from Sun Microsystems, or 68000 series microprocessor available from Motorola. Many other processors are available. Such a processor usually executes an operating system which may be, for example, DOS, WINDOWS 95, WINDOWS NT, WINDOWS 2000, or WinCE available from the Microsoft Corporation, MAC OS SYSTEM 7 available from Apple Computer, SOLARIS available from Sun
  • the communication network 102 may be an ETHERNET network or other type of local or wide area network (LAN or WAN), a point-to-point network provided by telephone services, or other type of communication network.
  • Information consumers and providers also referred to in the art as client and server systems, respectively, communicate through the network 102 to exchange information.
  • Fig. 4 shows a detailed block diagram of one embodiment of the invention.
  • computer system 401 may be similar in function to computer system 203, having an agent library 213, and operating on personal data 104 and community data 212.
  • System 401 includes a management system 108 used for creating, tracking, encrypting and performing various other tasks with respect to personal data 104. Further, system 108 may be responsible for managing the library 213 of software agents that handle personal data 104. Information regarding states of these agents may, for example, be stored in an agent database 405.
  • the agent database is a metadatabase capable of storing thousands of agents.
  • system 401 includes a communication protocol, and processes that perform application functions including authentication, accessing and storing personal information at system 401.
  • a communication protocol may include, for example, network layer and data link layer protocols as is known in the art for communicating information between systems.
  • An example of a network layer protocol is TCP/IP.
  • An example of a data link protocol is Ethernet. It should be understood that any protocols may be used to communicate information between system 401 and 402 through communication link 406.
  • System 401 includes storage media which may be, as discussed above with reference to Fig. 3, any media used to store personal information 104. A process of system 401 may access the media to store and retrieve personal information 104.
  • Agent library 213 may include a number of software agents, which, in the context of various aspects of the invention, are software programs that generally have several features in common.
  • An agent is generally described as one that acts or has the power or authority to act or represent another.
  • a software agent is generally a program that carries out activities in a flexible and intelligent manner that is responsive to changes in an environment in which the agent exists without requiring constant human guidance or intervention.
  • a software agent may have the following attributes as described in the book entitled Software Agents edited by Jeffrey M. Bradshaw, American Association for Artificial Intelligence, MIT Press 1997, Cambridge, MA.: Reactivity: The ability to selectively sense and act.
  • Autonomy The agent has goals, and the agent is self-directed and proactive in achieving the goals.
  • Collaborative behavior The agent can work in concert with other agents to achieve a common goal.
  • Temporal continuity The agent has a persistence of identity and state over long periods of time.
  • Adaptivity The agent is able to learn and improve with experience.
  • Mobility The agent is capable of migrating in a self-directed way from one host platform to another.
  • agents having varying degrees of these attributes may be used, and still satisfy the spirit of various embodiments of the invention. Further, there may be other methods of characterizing and implementing agents which is still within the scope and spirit of the invention.
  • agents may be implemented in a variety of computer languages, some being general -purpose languages like the Java, Javascript, C, C++, ActiveX, and the Tel programming languages, others have been specially adapted for agent programming.
  • Aglets available from IBM, General Magic's Telescript are agent libraries that provide standard functions for creating agents.
  • Other agent programming languages are available. It should be understood that any programming language may be used, including scripting or compiled programming languages that are executed, interpreted, or both.
  • agent code is used herein to describe agent programs written in any programming language.
  • Agents are particularly suited for certain tasks that require mobility, are time consuming, are repetitive, and/or require a large degree of connectivity between a system and provider. For example, searching and retrieving Internet information is a task that is well-suited for an agent.
  • the agent while being executed on a provider system, may reduce the amount of processing required at the requesting system and may reduce the amount of information transferred over the Internet. Further, multiple agents may be dispatched that perform transactions in parallel, thus increasing performance of the requesting computer system. Other applications of agents are possible, especially when a program is needed that meets one or more of the agent attributes described above.
  • agents may be mobile in that they may "travel" or be transmitted from place to place, such as between computer systems.
  • system 401 may include an agent library 213 including a plurality of agents 403A-403ZZ that may be transmitted to a provider system 402. These agents may operate on data 104, 212, and/or transfer this data to the provider system 402.
  • Agent library 213 may include, for example, a database used to track and store agents created by system 401.
  • Agent library 213 may also include a managing agent 404 which is executed on computer system 401, and monitors a state of a query or transaction.
  • Provider system 402 may include an agent processor 408 that executes code of the agent, or otherwise creates an environment in which an agent may operate.
  • This agent processor may include, for example, an interpreter or processor that executes code statements of the agent.
  • agent processor 408 may include a Java Virtual Machine that interprets agent code.
  • agent processor 408 may itself be a program that interprets agents transmitted to system 402.
  • Provider system 402 also includes agent storage 409 wherein the code associated with the agent is stored, and wherein the agent stores data created from transactions, queries, and other operations performed by the agent.
  • FIG. 5 shows a system for communicating agents in accordance with one embodiment of the invention.
  • Computer system 401 creates a managing agent called an initiating agent 501 that controls access to personal 104 and community 212 data, and issues agents to provider system 402 to perform one or more transactions.
  • any initiation of interaction between the personal device and one or more provider systems 402 triggers the creation a pair of mobile agents which will perform the interaction.
  • One of the agents in this pair is the initiating agent 501 for the interaction.
  • the other agent is a mirror agent 502 that remains at the initial server and monitors the state of the initiating agent 501.
  • the initiating agent 501 retrieves a location of the personal data 104 and issues one or more agents to establish a connection between the memory location and the provider system 402 designated for the initiated interaction.
  • the memory location for personal data 104 may be, for example, located on computer system 401 or distributed among one or more trusted computer systems.
  • This provider system 402 to which agents are issued is selected by the initiating agent 501 based on the locations of personal data 104 and location of portable device 201 requesting the transaction.
  • the initiating agent 501 travels to the designated provider system 402 and is responsible for performing transactions on behalf of the user. For example, the user may issue a request, such as a query, through an interface 206 of the portable device 201 , and system 203 issues agents to service the request.
  • the agent 501 is transmitted to system 402, where it is stored in agent storage 409 as agent 506. According to one embodiment, the agent 501 and its information is encrypted prior to transmission over untrusted networks.
  • Initiating agent 506 generates query 507 and transaction 508 agents in response to the user requests and interacts with memory agents 509 located on the provider or other system to obtain data from the designated provider system 402. By indicating as their source, the selected server and not the user site, as well as by carefully limiting the user information revealed in processing, query 507 and transaction agents 508 protect the user from revealing any information to visited web-sites and other providers 402 that is not necessary for performing an intended transaction.
  • the initiating agent 501 process and transform results generated from query 507 and transaction 508 agents to a form suitable for the computer system 401 to process and communicate the results to the user as a part of the portable device 201 and initiating agent dialog.
  • initiating agent 506 will reissue this agent one or more times to attempt to process the relevant transaction or query.
  • the reissued transaction may include processing to avoid potential double execution of the transaction (by a lost or delayed agent and by the reissued agent).
  • the reissued agent is not identical to the original agent; conventional systems typically reissue a new agent that is identical to the first agent.
  • the initiating agent 501 propagates any changes in the user memory of system 401 to all relevant locations by issuing update memory agents 503, and reissuing them if necessary, until all memory agents report a successful completion of the changes.
  • Temporary agent storage 409 on the designated provider system 402 is cleared and traces of the performed transactions are removed from the system 402, if possible, to minimize the amount of personal data residing at the provider system 402.
  • Initiating agent 506 kills all agents it generated and issues a final report to its mirror agent 502.
  • the mirror agent 503 kills initiating agent 501 and finally, itself.
  • initiating agent 506 periodically (with, for instance, a frequency defined by the system), report its status to the mirror agent 502. If the mirror agent 502 does not receive this report within a predefined time, mirror agent 502 issues a kill command to the initiating agent 506 and creates a reissued initiating agent 504 that restarts processing at the last report time.
  • a principle difference between the reissued 504 and original 501 initiating agent is that the reissued agent 504 will generate all transactions initially as reissued to avoid duplicating transaction execution.
  • all of the agents generated, except the mirror agent 502 are temporary, meaning that each agent ceases to exist at a predefined time to avoid double processing. This may be accomplished, for example, by associating, with each agent a "certificate of life" that specifies a preset time of existence for the agent.
  • a managing agent such as a mirror agent 502 can extend this certificate of life by an additional time in certain situations (long transfer delays, long processing queues, etc.).
  • the mirror agent 502 may be configured to adjust the certificate of life of all other agents, and the initiation agent 501 may be capable of adjusting certificates for all other agents except itself.
  • agents perform their own "cleanup" processing, e.g. they do not cause a loss of working memory, while still being able to perform processing in a variety of environmental situations provided by the network, provider 402 or computer system 401.
  • computer system 203 may include a storage area (not shown) for incoming agents or cookies.
  • the storage area protects the system 101 from unauthorized access to personal 104 and community 212 data, while allowing the user to have the benefit of using cookies.
  • the conventional system may be configured to block accepting cookies.
  • cookies may include useful information such as usernames and passwords to be used at the provider systems with which they are associated. To solve this problem, system 101 allows the acceptance of cookies, but does not allow a cookie unrestricted access to the user's personal 104 and community 212 data.
  • data 104, 212 may be stored on another system. such as device 201 or computer system 202, and transferred to system 203 in a secure manner only when needed.
  • the user operates device 201 which transmits a request (such as a query or other transaction) to system 203, wherein system 203 performs the transaction on behalf of the user. Because the svstem 203 has access to the cookie, the system is capable of providing the benefit of the cookie to the user, while not divulging data 104, 212.
  • the system provides privacy, security, fault tolerance and efficiency of transaction processing in the distributed collection of the secure servers and the distributed memory consistency for the user memory.
  • the query 507 and transaction 508 agents provide user privacy by disassociating the user from transactions.
  • Memory agents 503, initiating agent 501 and query 507 and transaction agents 508 provide communication security by carrying only encrypted data over untrusted networks and by decrypting them only at the point of processing. Because processing of data is performed on secure servers owned by the system owner, security is maximized.
  • a protective "shell" is created at system 401, wherein personal data 104 is allowed to leave the shell by the will of the user. Personal data, when it leaves the shell, is accompanied by an agent configured to manage and protect the data.
  • system 101 and data 104, 212 are protected from external programs such as cookies.
  • the initiating agent 501 supports processing mobility and efficiency by selecting the designated provider system 402 in accordance with the current network traffic and load on the systems.
  • mirror agent 502 provides fault tolerance by taking over the initiating agent 501 in case the initiating agent 501 fails or an unacceptable delay is experienced.
  • the initiating agent 501 reissues query 507 or transaction agent 508 that fails to return results in the predetermined time, thereby increasing fault tolerance of the entire system. Memory consistency is ensured by delaying any operations that result from attaching more than one memory agent 503 to any memory part.
  • the agents are temporary agents that kill themselves after the predefined time, thus conserving distributed memory resources and minimizing the amount of management required at systems 401 , 402.
  • Figure 6 shows one embodiment of a process for performing agent communication in the system shown in Figure 5.
  • process 600 begins.
  • computer system 401 creates initiating agent 501 and mirror agent 502.
  • Initiation agent 501 retrieves a location of data 104 at block 603, and, at block 604, initialization agent 501 issues an agent 506 to provider 402.
  • the issued agent 506 creates, at provider 402, transaction 508 and query 507 agents.
  • the agents 507. 508, at block 606, perform a transaction on behalf of the user.
  • initialization agent 501 determines whether the query 507 and transaction 508 agents respond within predetermined time limits. If so, the initialization agent communicated the changes to a memory of system 401 via memory agents 503.
  • initialization agent 501 If agents 507, 508 have not replied within the predetermined time limits, initialization agent 501 generates a reissue agent at block 610.
  • the reissue agent issues an agent to system 402.
  • the reissue agent is preferably not identical to the initialization agent 501, as the reissue agent completes the transaction at block 613 from a point last reported by the initialization agent 501. That report may be an interim report provided by initiating agent 501 to mirror agent 502.
  • the reissue agent sent to system 402 also generates query and transaction agents at block 612. These agents also re-execute the transaction, at the point last reported.
  • Figure 7 shows a block diagram depicting an agent transmission process.
  • an agent 701 can be mobile, and can be transmitted to a provider system 402 to perform one or more transactions.
  • Agent 701 obtains personal data 104 needed to perform a transaction, and the agent along with data 104 is encrypted prior to being transmitted 704 over a network 102.
  • network 102 may be an untrusted network such as the Internet. Encryption may include, for example, private or public key encryption, a combination thereof, or any encryption method suitable for protecting data.
  • Transmission 704 may entail, as is known in the art, transmitting the encrypted data in one or more messages according to a data transmission protocol, such as TCP/IP.
  • TCP/IP packets may be transmitted over any number of media types such as fiber or copper cabling, or wireless communication media, or any media suitable for transferring information.
  • Decryption 705 is performed at the provider system 402, wherein the agent is executed 706.
  • a provider process 215 services the transaction, wherein data is transferred to and from the provider process 215.
  • the agent and/or its data Prior to transmission over network 102, the agent and/or its data is encrypted at block 707.
  • the data is transmitted at block 708 back to the originating computer system 401, or is passed on to another provider system 402A, depending on the transaction type. That is, some transactions may require an agent to traverse more that one provider system.
  • the agent and its data are decrypted at block 709, wherein the agent is executed 710.
  • system 401 may track agents using an agent library 213 having a database.
  • the database is metadatabase, which is well-known in the art of data and knowledge management tools. Metadatabase theory is described in more detail in a number of books and publications, including the book entitled Ente ⁇ rise Integration and Modeling: The Metadatabase Approach, by Cheng Hsu, Kluwer Academic Publishers, Amsterdam, Holland and Boston, Massachusetts, 1996. Also, metadatabase theory is described in the journal article by Hsu, C, et al.
  • Metadatabase Approach to Integrating and Managing Manufacturing Information Systems Journal of Intelligent Manufacturing, 1994, pp. 333-349.
  • metadatabase theory has traditionally been applied to manufacturing problems.
  • a metadatabase contains information about ente ⁇ rise data combined with knowledge of how the data is used.
  • the metadatabase uses this .knowledge to integrate data and support applications.
  • the metadatabase model as shown in Figure 8 uses a structure that shows how a metadatabase system 802 provides an ente ⁇ rise information model describing data resources of globally-distributed provider systems applications 407 and their control strategy in the form of rules. These globally-distributed systems applications 407 may be executed, for example, at one or more provider systems 402 discussed above.
  • the information model also includes knowledge regarding dynamics of information transfer such as "what and how" information is shared among local systems and under what circumstances it is used.
  • the information model may be in the form of a metadatabase 801 having data items 804, models 805, rules 806, software resources 807 and application and user information 808.
  • the information model describes the global requirements of the agent system, such as core rules 806 of the interface languages and particular rules for their interoperation. For example, there may be specific rules that determine how a particular provider handles input and output from an HTML interface. The provider may also use some other type of interface, such as a command or scripting interface to exchange data. These rules can be represented in the metadatabase using its rulebase model.
  • the model is detailed in several publications, including the journal article entitled A Rulebase Model for Data and Knowledge Integration in Multiple Systems Environments, International Journal of Artificial Intelligence Tools, Vol. 2, No. 4, 1993, pp. 485-509.
  • the metadatabase 801 may also include metadata about software resources 807 such as common software routines or methods shared by agents.
  • the metadatabase catalogs availability and functions of reusable software resources and tracks their use in one or more agents. In this way, changes made to software resources 807 may be promulgated to other agents that use these resources. New agents can also be created from groups of these software resources stored in the metadatabase.
  • the metadatabase contains metadata about applications and users 808 of the agent system.
  • These metadata may, for example, include provider type information such as web site types of the application service providers, to assist the system in creating and managing agents that interface with the providers.
  • the metadata may also include references to personal data, such as personal preferences and requirements, stored in one or more devices of system 101. Runtime agents can retrieve personal data 104 and use them, for example, parameters to set priority of information retrieval or transactions.
  • the application and user portion 808 of the metadatabase 801 may specify how personal preferences and requirements of the user are inco ⁇ orated into building runtime agents for specific applications.
  • the metadatabase links these various classes of metadata by using a metadata representation that is known and described in the book entitled Ente ⁇ rise Integration and Modeling: The Metadatabase Approach cited above.
  • various data objects and routines of persistent agents are interrelated in the context of applications and users.
  • the metadatabase matches the type of application with those of the persistent agents and their software resources in data objects.
  • the metadatabase identifies pertinent elements that the new agent can use or reuse, and determines personalized parameters to include with the agent.
  • a structured method to manage agent resources and match them to users and provider applications is provided.
  • the metadatabase 801 describes how various database objects and routines of agents are interrelated and how they can be reused to build new agents.
  • the metadatabase may be used to track the state of agents that obtain information from a large number of distributed databases over the Internet. Because the metadatabase system design scales well to a large system of distributed databases, the metadatabase may be used to track the creation, deletion, status of agents. In particular, the metadatabase may store status of Internet applications that use these agents, and use this status to facilitate creating and managing agents. Each of these applications has an associated entry in the metadatabase, which stores metadata about the application's type and its use of agents. When one or more applications are changed, the metadatabase can update a relationship between agents and applications, including deleting agents created expressly for these applications.
  • the metadatabase maintains relationships and cross references to facilitate this management of agents.
  • the capability of flexibly managing and maintaining agents is critical to systems that need to manage and use large numbers of agents, especially agents whose relations to provider applications changes frequently.
  • the metadatabase is a repository of information about the structure and functions of applications with which agents operate and tasks that agents perform.
  • the metadatabase may include, for instance, functional and informational models, databases and interface requirements of the Internet applications.
  • the MDBMS is the user interface to the metadatabase and the database processor managing the metadatabase. The MDBMS makes it possible to develop, maintain and utilize information in the metadatabase to create runtime agents and manage persistent agents. Further details of the metadatabase system are described in the book entitled Ente ⁇ rise Integration and Modeling: The Metadatabase Approach, by Cheng Hsu, Kluwer Academic Publishers, Amsterdam, Holland and Boston, Massachusetts, 1996.
  • Figure 9 shows a data format according to one aspect of the invention.
  • a data format is provided that allows a user to differentiate between ownership and control of data. That is, the producer of the data has the ability to specify a level of ownership and level of control of data to allow increased functionality in handling the data.
  • control distribution of data is more flexible.
  • data A (item 901) may have associated with it ownership information A (item 902) and control information A (item 903).
  • Ownership information A may specify one or more owners of information A, and ownership information A is transmitted with the data A portion 901.
  • conventional systems associate a single username to a file by locating the file in a directory structure having certain ownership attributes. Once the file is transmitted, this ownership information is lost.
  • control information A 903 which indicates who is allowed control of the data. It is beneficial to provide a separate indication of control, because a provider system 402 may be allowed temporary control of the data for a transaction, but the provider is not the owner of the data (unless otherwise determined by the transaction type) and the provide system 402 should not be indicated as the owner.
  • a credit report provided by a user to obtain a mortgage may be tracked by the user to prohibit use of the report inconsistent with the user's wishes.
  • the data may be destroyed.
  • an automatic transfer could be triggered by a request by an entity that has a predetermined relationship with the entity that owns the data.
  • the owning data may be an employee, and the employer may have a superior ownership right to all data produced by the employee.
  • the employer has a legal right to the data, and the employee is obligated to relinquish the data.
  • this separate indication of control and ownership may have other uses.
  • data B (item 904) may have associated with it, separate ownership B (item 905) and control B (item 906) information.
  • FIG. 10 shows a process 1000 for of processing data in accordance with one embodiment of the invention.
  • process 1000 begins.
  • system 401 transfers data owned by a user A (data A, item 901) along with its ownership 902 and control 903 information to provider system 402.
  • an agent interfaces with a process of the provider system, and performs a transaction using user data A at block 1003.
  • transaction data is produced at block 1004, the transaction data having its own ownership and control information generated at block 1005.
  • Transaction data may indicate, for example, that both a user and the provider that generated the transaction data own the data.
  • the ownership data may indicate that either the user or provider owns the transaction data.
  • the transaction data is either stored at system 402, transferred back to system 401 , or both.
  • process 1000 ends.
  • system 101 may include a natural language user interface (NLUI or simply NLI), through which a user requests information and performs other transactions.
  • NLUI natural language user interface
  • the user may provide input and receive output from graphical user interfaces 1101, 1201 such as that shown in Figures 11 and 12.
  • the interface 1101 may prompt a user with a series of questions 1102, 1104, to which the user may respond.
  • the questions may be multiple choice question format, of which a single selection of the choices is an appropriate response.
  • the system 101 may present a general query interface on graphical user interface 1201, through which the user may pose natural language queries or responses to questions.
  • system 101 prompts the user to "Please enter a search (natural language or keyword)."
  • the user provides a natural language response, asking system 101 "Where is the Houston Field House at RPI located?"
  • the natural language interface may have, associated with it, a natural language analyzer which determines the meaning of the input provided.
  • the natural language analysis system is the system shown in Figure 13 discussed in more detail below.
  • the natural language analysis system finds the meaning of the request and determines the correct source of the information requested.
  • system 101 may issue one or more agents to perform the request.
  • the agents may filter and format the result 1204, and return the result 1204 to system 101.
  • a natural language analyzer that analyzes queries may be part of computer system 101.
  • This query processor may perform one or more analyzing steps on a received query, which is generally a string of characters, numbers, or other items.
  • a long-standing goal in the field of information technology is to allow humans to communicate with computer systems in the natural languages of humans.
  • queries are difficult for a computer system to inte ⁇ ret precisely.
  • the first four approaches ( 1 ) - (4) require users to articulate only in the natural language forms that the system provides ⁇ or at least they assume that the user's articulation is consistent with these underlying forms. When this basic requirement or assumption does not hold in practice, the system would fail to function properly (e.g., with poor performance and low accuracy), or even fail altogether.
  • These forms typically feature some generic, linguistic prototype consisting of only one single sentence per query. Thus, their advantage is that the resultant NLI is easily portable from one database system to another.
  • the disadvantage is the restriction on naturalness of the input from the user.
  • the last approach (5) essentially embraces a different priority, placing naturalness ahead of portability (i.e.. coupling a particular NLI design with a particular domain of application, but allowing free-format text as input). If the first four approaches are top-down in their relying on the computer ' s direct understanding of the user's articulation, the last one could be considered as the computer's exhausting of all possible inte ⁇ retations from the bottom up.
  • the basic strategy of system (1) - (5) is to provide a semantic model or a dictionary as the roadmap for generating possible inte ⁇ retations.
  • These systems assume that the users always query databases known to the system, thus the NLI could be tuned according to this known information.
  • users are bound to refer, either directly or indirectly, to these known database objects (types or semantic models, instances or values, and operators) in their natural queries. If they do not use directly these database objects, they have to articulate their query in terms of other significant words and phrases (hereinafter referred to as "keywords”) that correspond to these objects.
  • keywords significant words and phrases
  • FIG. 13 shows a natural language query processor 1301 according to one embodiment of the invention.
  • Processor 1301 receives a natural language query 1302 and a plurality of database objects 1304A, and produces a query result 1303.
  • the natural language query may be, for example, a paragraph, a sentence, sentence fragment, or a plurality of keywords.
  • the query result may be any information that is relevant to the combination of database objects 1304A and query 1302.
  • the natural language query 1302 is mapped to the plurality of database objects 1304A using a reference dictionary 1308 comprising keywords 1309, case information 1310, information models 1311, and database object values 1304B.
  • An advantage of this mapping is that less-capable processing hardware is needed to perform the mapping than traditional natural language processing algorithms such as those cited above, because the number of keywords that needs to be recognized and searched by the system is reduced.
  • This advantage enables, for example, use of such an NLI on portable device 201 as shown in Fig. 2.
  • the system 201 may be allocated to a single user, and processor 1301 is capable of learning using case-based learning, processor 1301 may become more accurate for the particular user.
  • natural language query processors may be used.
  • natural language processors are well-known, and functions they perform are described in more detail in the book entitled Natural Language Understanding, by James Allen, Benjamin/Cummings Publishing Company, Inc., Redwood City, CA, 1994, herein inco ⁇ orated by reference.
  • Other natural language query processors are discussed in the journal articles and books cited above.
  • query processor 1301 includes a reference dictionary object identifier 1305 that parses query 1302 and generates one or more objects recognized in the reference dictionary 1308.
  • Reference dictionary object identifier 1305 also identifies words that are meaningful in the reference dictionary 1308 and eliminates useless or unmeaningful words.
  • Processor 1301 also accepts and processes a number of database objects 1304 A.
  • processor 1301 may have an associated reference dictionary 1308 that includes keywords 1309, case information 1310, information models 1311 and one or more database objects 1304B.
  • Keywords 1309 may be, for example, a set of keywords and their combinations generated from the plurality of database objects 1304A, which includes one or more objects 1314A-1314ZZ. Keywords 1309 may also be "learned" from a user through performing queries, or may be provided through a separate keyword administrator interface associated with query processor 1301.
  • Query processor 1301 also includes an inte ⁇ reter and dictionary processor 1307 that receives objects identified by the reference dictionary object identifier 1305 and determines an optimal inte ⁇ retation of the received objects. More specifically, processor 1307 determines optimal inte ⁇ retations of the received objects, resolves ambiguities, updates information models 1311, and interacts with users to facilitate learning. Processor 1307 utilizes rules 1312 and heuristics 1313 to resolve ambiguities in determining the optimal inte ⁇ retation of query 1302. Rules 1312 and heuristics 1313 may relate to information models 1311, which are in turn related to keywords 1309, cases 1310, and database objects 1304B in a semantic manner. When there are ambiguities in the inte ⁇ retation of objects, e.g.
  • Mapping processor 1306 performs a mapping between incoming objects and database objects 1304A.
  • processor 1306 may generate database queries from the objects and the inte ⁇ retations provided by identifier 1305 and processor 1307, respectively.
  • Processor 1306, may, for example, generate SQL queries used to locate database objects 1304A. These queries may be executed by an SQL search engine, and processor 1301 may provide query result 1303 to user through, for example, a graphical user interface.
  • a keyword 1309 points to the semantic subject(s) it refers to, which points in turn to entities, relationships, and items pertaining to the subject(s), and ultimately to database object values 1304B.
  • the keywords 1309 also connect to cases 1310 involving them.
  • the core of the reference dictionary (information model, initial keywords, and database structure) maybe, for example, a design-time product, developed by the analysts, designers, and users. Cases and additional keywords, metadata (e.g., changes to the information model) and database values may be added during operation of the system, and thus the system ages and evolves.
  • a learning mechanism allows richer keywords and cases to provide more accurate performance.
  • the reference dictionary enables a computer system to recognize a feasible region of inte ⁇ retations of the input query 1302 and evaluate them.
  • the reference dictionary 1308 also serves as the basis for interaction with the user (identifying needs and generating meaningful reference points) and acquisition of lessons (determining additional keywords and cases) - i.e. the reference dictionary may be used to assist the user in learning.
  • Reference dictionary has four fundamental attributes, as compared to conventional systems: it generates search-ready graphics-based representation of all four layers of resources; it supports learning; it simplifies keywords, and it assures complete inte ⁇ retations of natural queries.
  • the inclusion of information models 1311 and case information 1310 reduces the volume of keywords 1309 needed to reduce the first two sources of ambiguity. For example, consider a natural articulation in the form of a short essay. If the essay consists of n words of which m are database objects or other recognized dictionary entries, there could be n/m words associated with each known term. These n/m words become the candidate keywords for the term. When including phrases (grouping of words), there could be, in theory, up to m*(n/m)! new keywords implied from the short essay. It is desired to increase the number m (hits) because the bigger m becomes, the fewer (exponentially) the possible groupings of words becomes, thus resulting in fewer new keywords to consider or to add to the dictionary.
  • Properly-developed information models 1311 having rich semantics provide a large m for the initial design of keywords, and increase the chance of subsequent "hits" (their use in queries) in practice resulting in less ambiguity, less possible inte ⁇ retations to search, and less new keywords needed.
  • Case information 1310 do not directly change m, but do help in resolving some ambiguity and hence still helps reducing the need for new keywords.
  • Information models 1311 and cases 1310 represent a tightly structured, efficient kernel of meaning with which the users are familiar and tend to use more frequently in their articulation with respect to the particular databases.
  • information models 1311 and case information 1310 also contribute to resolving another type of ambiguity. In particular, they identify the possible missing information for incomplete input, by examining the graphics of the reference dictionary. Therefore, a reference dictionary determines more accurately and quickly than conventional systems a complete set of possible inte ⁇ retations for queries articulated in a natural language format.
  • Step 1 Identify all words and phrases in the input natural language query 1302 that also belong to R. Denote this set of elements I (including possibly elements from K, M or
  • Step 2 Determine all possible, complete paths implied by I that span all input elements and query 1302 and belong to the overall graphics of R. These paths might include additional elements inferred from the reference dictionary in order to complete the paths.
  • a complete path includes elements (original or inferred) in M and D. Each path corresponds to a particular inte ⁇ retation of the original query.
  • Step 3 Search for the best inte ⁇ retation by using some rules and heuristics of search. If multiple possible solutions exist, then use the elements in C that are associated with elements of I to resolve the ambiguity.
  • Step 4 Map the result to the database query language. Obtain the results of query and confirm them with the user.
  • Reference dictionary 1308 may also be based on the metadatabase model described in the aforementioned metadatabase references.
  • a reference dictionary having a model that integrates four different types of ente ⁇ rise metadata may be used. These metadata types include: database structure, semantic model, application, and software resource.
  • the model may be used to form a core of the reference dictionary, and this core may be extended to include other three layers: keywords, cases and database values, and hence form the integrative (connected) structure of the reference dictionary.
  • the other benefits of using this model includes its capability to inco ⁇ orate rules and to support global query processing across multiple databases.
  • a modeling system helps the development and creation of the metadatabase.
  • FIG. 14 A structure of an example reference dictionary 1401 is shown in Figure 14.
  • Each object in the figure represents either a table of metadata (in the case of square icon and diamond icon), or a particular type of integrity control rules (in the case of double diamond and broken diamond).
  • These metadata include subjects and views, entity- relationship models, contextual knowledge in the form of rules, application and user definitions, database definitions and values, keywords, and cases.
  • Keywords are the natural words and phrases users use to refer to database objects and information model elements in natural articulation. They could represent instances, operators, items (attributes), entities, relationships, subjects, and applications.
  • a keyword according to one embodiment of the invention is defined as an ordered pair of (class, object). Classes include Application. Subject. EntRel (entity- relationship), Item, Value, and Operator; all of which are metadata tables shown in Figure 14. Objects are instances (contents) of these classes. Because a hierarchy of objects in the core structure of the reference dictionary is Item-EntRel-Subject- Application, an object can be identified by an ordered quadruple (Item name, EntRel name, Subject name, Application name).
  • each object has a unique identifier, thus the ordered quadruple is not needed to uniquely identify each object.
  • a case in case-based reasoning paradigm typically includes three components: problem definition, solution, and its outcome. New problems would use the problem definition to find the (best) matching cases and apply the associated solutions to them. The third component is useful when the domain knowledge is incomplete or unpredictable.
  • the reference dictionary contains complete domain knowledge needed, thus, we expand the problem definition but drop outcome. The system uses cases to resolve ambiguity in the recognition of meaningful terms (i.e., user's natural terms that are included in the reference dictionary) in the input and to help determine the solution among multiple possible inte ⁇ retations.
  • the case structure includes case-id, case-type, choices, context, and solution.
  • a set of known terms describes the context (for problem definition). User's selection among possible choices of the meaningful term defines the solution.
  • inte ⁇ retation ambiguities type a set of known elements of the information model describes the context, possible paths in the information model define the choices, and user's selection solution.
  • the resources (entries) of the reference model are connected in two ways. Recall that the structure shown in Figure 14 is a meta-schema representing the types and organization of all ente ⁇ rise metadata.
  • the elements of information models are metadata instances stored in some of the meta-entities (squares) and meta-relationships (diamonds) of the structure. These model elements are themselves connected internally in terms of their entity-relationship semantics. They are also connected externally to other types of resources including database values, keywords, and cases through the meta-schema. Keywords and cases are connected to information models and database values through particular meta-relationships. In other words, elements of information models (subjects, entities, relationships, and items) and keywords are linked to the * database objects they represent. Therefore, the reference dictionary contains sufficient knowledge to determine the database objects involved and required for all queries defined sufficiently in information model elements or keywords.
  • Each sufficient statement corresponds to a complete and unique path (connection) of these elements and their corresponding database objects.
  • An SQL-like style database called MSQL may determine the shortest path when alternative paths exist. MSQL is discussed further in the journal entitled The Model-Assisted Global Query System for Multiple Databases in Distributed Ente ⁇ rises, ACM Trans. Information Systems, 14:4, October 1996, pp. 421-470.
  • These complete paths represent the system's inte ⁇ retations of users' queries. Ambiguity exists when a statement is insufficient such that there are conflicting inte ⁇ retations - multiple paths leading to different database objects - for the query.
  • These multiple paths could be the result either from providing incomplete elements or from providing conflicting elements implied in the input, or both. Such are the cases easily taking place with truly natural articulation of database queries.
  • the system employs a rich information model to maximize the chance with which the users would naturally choose its elements in their articulation.
  • the system uses keywords to capture the words in the natural articulation that the information model misses.
  • the information model is the roadmap (together with database values) for developing keywords at design time. These keywords represent multiple natural equivalents of terms used in the information model (and database values).
  • a rich information model not only lessens the burden of "scoring hit” on the keywords, it also greatly reduces the complexity of adding new keywords at the run time.
  • it accumulates cases of usage from actual operation and applies them to resolve remaining ambiguity when both information model and keywords are insufficient for a query. Interaction with the users is the last measure to sufficiently close the loop and finish the job.
  • the NLI systematically involves users to provide the final resolution of ambiguity and confirmation of the result if needed. This learning also generates new cases and keywords and enhances the old cases.
  • Search includes the identification of all possible paths-inte ⁇ retations (when ambiguity exists) and the evaluation of them.
  • a search algorithm could follow a branch- and-bound strategy to minimize the space of search (limiting the number of possible paths to search).
  • bounds and branching rules would require a way to evaluate a given path with respect to the original natural query.
  • a method for eliminating paths may also be used; that is, the system could infer contradiction based on the information model and perhaps operational rules (contextual knowledge) the reference dictionary contains.
  • a method of optimization - inferring goodness of fit for the user - could be performed. Information about user's profile, concerned applications, and past cases are among the metadata that could be used form a basis to identify the most probable inte ⁇ retations. Elimination is more conservative, but robust, than optimization because elimination places safety (correctness) first.
  • the system develops the most efficient way to enumerate all possible inte ⁇ retations for a natural query (i.e., design a powerful reference dictionary).
  • Third, the system also proactively suggests the best inte ⁇ retation for the user (i.e., develop case-based reasoning and other heuristics). Learning methods may accompany these search strategies at all levels.
  • the above ideas are illustrated below with a brief example.
  • a text scanning and information retrieval algorithm may generate the result shown in Table 1.
  • the information model would be sufficient to sort out the ambiguity and suggest a unique, optimal inte ⁇ retation for these terms, and hence for the natural query. Still, cases could also be used either to confirm or to assist the resolution of ambiguity.
  • there may be another kind of ambiguity in the input the user indicated "around" 20th of last December in the original natural query. Because of this ambiguity, the user may find the final answer less than satisfactory.
  • the system generally would have no method for inte ⁇ reting correctly this piece of input since the user herself was ambivalent about it. There may be, in this instance, no proper solution other than to leaving the inte ⁇ retation to the user.
  • the final answer (based on 12/20/1999) may represent the best point estimation for the user's fuzzy interval of possibilities.
  • cases - i.e., matching a query with a case - is based on the vector space model as is known in the art.
  • Two binary vectors represent a case (C) and a query (Q); and their COSINE measure indicates the goodness of fit.
  • COSINE measure indicates the goodness of fit.
  • mapping would perform processing in order to determine the GET lists and some conditions (such as AND/OR). However, at this point, the reference model would have all information needed to perform the query.

Abstract

A business model is provided wherein a consumer is in control of their own information. Consumer data may be controlled, for example, by a single personal system or by a plurality of systems acting in the interest of the person. A method is provided for differentiating between ownership and control of data, allowing more flexibility in distributing and controlling data. Further, a distributed system architecture is provided to distribute consumer data among a portable device and a plurality of general-purpose computer systems. The system may employ agents that perform transactions on behalf and in the best interests of the user while keeping personal data within the ownership and control of the person. A manager is provided to manage agents created by the system. In one aspect, a metadatabase is used to manage these agents. The portable device may also include a natural language user interface (NLUI or NLI) to enhance the ease of use. The portable device may use, for instance, a natural language query processor that minimized storage and processing required on the portable device.

Description

SYSTEM AND METHOD FOR ACCESSING PERSONAL INFORMATION
RELATED APPLICATIONS This application claims the benefit under Title 35 U.S.C. §119(e) of co-pending U.S. Provisional Application Serial No. 60/128,219, filed April 7, 1999, entitled "SYSTEM AND METHOD FOR ACCESSING PERSONAL INFORMATION" by Cheng Hsu, Gregory Hughes, and Boleslaw Szymanski, the contents of which are incorporated herein by reference.
BACKGROUND OF THE INVENTION
Field of the Invention
The present invention relates generally, to computer transaction systems, and more specifically, to systems for accessing and storing personal information.
Background of the Invention People referred to as consumers currently conduct transactions over networks such as the Internet. These transactions are commonly referred to as electronic commerce tønsactions, also known as "e-business" or "e-commerce transactions." Individual entities such as companies commonly use the Internet to conduct regular business transactions including advertising their products to customers and processing transactions. Transaction information is generally stored at the company location or on the company system. If the person chooses to conduct business with another company, that person is generally required to register his or her information with that company.
It should be understood that e-commerce transactions may be performed between any entities, whether they are individuals or companies. The term "company" will be used synonymously with "provider" or "individual" providing goods or services; the company, provider or individual may be any entity providing goods or services. The terms "customer," "consumer," and "person" will also be used interchangeably as an entity that receives goods or services.
These companies also maintain information regarding consumer's behavior, and use that information to target marketing ads to specific consumers. Companies also use this information to determine what services and products should be offered electronically, and to develop services and products. Further, these companies may also sell information regarding the consumer and their behavior to other companies.
For example, on the Internet, consumers such as people perform transactions, wherein personal information such as phone numbers, credit cards, home addresses are transferred to a provider system. The details of the transaction itself may be monitored and stored by the provider system. This provider system may use or sell this information for the benefit of itself or another company. For example, a provider system such as an e-commerce Internet site may store transaction information, such as an item type purchased by a consumer, and display items that are related to the item type to entice the consumer to perform a subsequent purchase. Or, the provider system may sell this transaction information to other companies so that these other companies may more effectively market their goods and services.
Personal information may also be provided to companies by externally-generated programs referred to as "cookies." A cookie is typically stored on a person's computer such as a personal computer (PC), and the cookie transmits information regarding the person's behavior or other information to the company. The cookie may also store information to facilitate a transaction, such as a username and password associated with the consumer.
If a user does not want a cookie to transmit personal information, the person can, at their PC, disable the acceptance of cookies. This disabling is usually performed by adjusting a setting of an Internet browser program, as cookies are generally downloaded to a person's PC while browsing the Internet or performing e-commerce transactions. When cookies are rejected, however, useful information such as usernames and passwords are not available to the user. Because this information is not available, a transaction such as an e-commerce transaction or a browsing of a Web page requires this information to be entered each time the transaction is performed, and thus the user is inconvenienced.
Some e-commerce Internet sites, such as eBay (http://www.ebay.com) and Amazon.com (http://www.amazon.com) maintain information regarding other consumer's transactions. For example, Amazon.com ranks books according to sales volume, and includes the capability of displaying feedback from other consumers. Specifically, Amazon.com provides a facility for consumers to submit reviews of books for the benefit of other consumers. Also, Amazon.com maintains information regarding cross-sales ~ Amazon.com maintains and distributes information regarding other related books that other consumers have bought from the site. However, this information is only available to the company that operates the site, and if the company permits it, consumers of the site. Further, as described above, this information is used by companies such as Amazon.com for their commercial benefit, by determining, for example, banner advertisements displayed to a user or by targeting their own products and services specifically to that user.
SUMMARY OF THE INVENTION According to one aspect of the invention, a new business model is provided wherein a consumer such as a person is in control of their own personal information. As opposed to a business-centered e-commerce approach, wherein data is stored at the company site and is used to further advance the company's financial objectives, the paradigm is changed to a person-centered approach wherein the data of the person is owned and controlled by the person. Personal data may be controlled, for example, by a single personal system, or a plurality of systems acting together in the interest of the person.
According to another aspect of the invention, a device is provided that receives and stores personal information of the user that is configured to communicate with a system to perform transactions. The device may be, for example, an electronic chip or card which controls and stores personal databases, knowledge, and decision tools pertaining to a particular aspect of life (such as finance, medical or education) or to some integration of these aspects. The device may be portable, such that a user may carry their personal information with them to assist them in their daily lives. For example, the personal information could include medical records, and the user may share his or her medical records with one or more medical establishments that the user visits. In addition, the personal device may store personal phone numbers, networks, and other information of interest to the user. The device may store information to assist in other life activities including food preparation, health care, acquiring and maintaining housing or clothing, paying bills, acquiring information, seeking advice or enjoying recreation. In contrast with conventional commerce systems, personal data is stored with the user which allows the user to more easily perform transactions. In one aspect, the device includes an interface that transmits the personal information to a plurality of general -purpose computer systems, where the information is processed. In another aspect, the system includes an agent that is configured to contact one or more provider systems to meet the personal needs of the users. The user does not need to know the location and identity of the provider systems; the agent contacts the provider systems transparently to the user. In another aspect, a standard transaction protocol is provided that allows companies to develop applications that use and interpret the personal information. The applications may include shared databases, knowledge and intelligence that interpret data stored on the personal device to perform transactions. In another aspect, a user may use the personal device to assist him or her in choosing products and services. The personal device may store, for example, personal information that does not need to be replicated at each of the business systems. In another aspect, the system includes a personal information management system which allows the user to review or modify their personal information on the device or to perform transactions.
These and other advantages are provided by:
A method for performing a transaction involving data provided by a first entity to a second entity over a distributed communications network, the method comprising steps of maintaining the data, wherein the data is associated with the first entity, and controlling distribution of the data to the second entity by the first entity. In one embodiment, the first entity is a person. In another embodiment, the first entity is a company. In another aspect of the invention, the second entity is a computer system controlled by at least one of the group comprising a person; an association of people; a business; and a group of businesses. According to another aspect, the first entity controls access information sufficient to perform a transaction. In another embodiment, the method includes a step of controlling ownership, by the first entity, to the associated data. In another embodiment, the data associated with the first entity includes at least one preference of the first entity. In another embodiment, the at least one preference is determined by a transaction conducted by the first entity. In another embodiment, the method further comprises a step of collecting, by the first entity, a history of one or more transactions performed by the first entity, and determining at least one preference of the first entity based on the history of one or more transactions. In another embodiment, the method further comprises creating, as a result of a transaction, data owned by at least one of the group including the first entity, the second entity, and both the first and second entity. In another embodiment, the method further comprises maintaining ownership information indicating ownership of the data. In another embodiment of the invention, the data is owned by both the first and second entity, and the ownership information indicates only joint ownership information. In another embodiment of the invention, the data includes at least one preference derived from data associated with the first entity. In yet another embodiment of the invention, the at least one preference is derived from data associated with other entities. In a further embodiment of the invention, the other entities are other users in a user community, and wherein the data associated with other entities includes behavior and preference data associated with the other users.
According to another aspect of the invention, a method is provided for performing transactions over a distributed communications network involving at least one person. The method comprises maintaining, by the at least one person, data owned by the at least one person; and controlling, by the at least one person, distribution of data at least one entity over the distributed network. In another embodiment, the method further comprises a step of providing a subset of the data sufficient to perform a transaction. In another embodiment, the method further comprises a step of controlling ownership of the data by the at least one person. In another embodiment, the method further comprises a step of creating, as a result of executing a transaction, data owned by at least one of the group of the person; the at least one entity; and both the person and the at least one entity. According to another aspect of the invention, a method is provided for maintaining ownership and control of data. The method comprises steps of operating a computer system having a plurality of processes, and wherein at least one of the processes executes as a user process; indicating, for data accessed by the at least one process, ownership of the accessed data; and indicating, for the data accessed by the at least one process, control of the accessed data wherein indication of ownership and indication of control are independent. According to one embodiment of the invention, an indication of ownership includes at least one of a group including: a first person, wherein the data is personal data of the first person; a first group, wherein the first person is a member of the first group and the first person accesses the data through the computer system; automatic transfer of ownership of data, wherein a receiver of data including at least one of the first person or first group attains automatic ownership of the data; and wherein an indication of control includes at least one of a group including: the first person; a second person, wherein the second person accesses the data using a computer system; the first group; a second group wherein the second person is a member of the second group and accesses the data through the computer system; and a system. According to another embodiment of the invention, the indication of ownership further comprises indicating that the data has no owner. According to another embodiment of the invention, at least one of the second person or the second group, upon receiving the data, attains ownership of the data. According to another embodiment of the invention, at least one of the second person or second group attains ownership of the data based upon a predetermined relationship between an owner of the data and the at least one of the second person or the second group. According to another embodiment of the invention, the predetermined relationship is an employer-employee relationship, wherein the owner is an employee, and the at least one of the second person or the second group is an employer. According to yet another embodiment of the invention, the predetermined relationship is a legal relationship that obligates the owner of the data to relinquish ownership of the data to the at least one of the second person or the second group.
According to another aspect of the invention, a method is provided for maintaining ownership and control of data. The method comprises steps of (a) operating, by a person, a computer system, wherein the computer system is configured to operate upon the data; (b) indicating ownership of the data; and (c) indicating, independently from (b) an indication of control of the data. According to another embodiment of the invention, the steps (b) and (c) both include indicating, in the data, ownership and control of the data. According to another embodiment of the invention, the method further comprises transferring the data between first and second entities, and, as a result of a processing of the data, creating second data having an ownership by at least one of the group including the first entity; the second entity; and both the first and second entity. According to another embodiment of the invention, the method further comprises transferring the data between first and second entities, and providing control of the data by at least one of the group including the first entity; the second entity; and both the first and second entity. According to another embodiment of the invention, the method further comprises transferring the data between first and second entities, and wherein steps (b) and (c) both include indicating, in the data, ownership and control of the data. According to another aspect of the invention, a portable device is provided for storing personal information of a user and conducting transactions using the personal information. The device comprises a database of personal information, and an interface that transmits the personal information to an external entity to facilitate a transaction, wherein the interface controls what personal information is transmitted. According to another embodiment of the invention, the personal information is personal preferences in goods and services, and the device interprets the personal information to determine marketing information to be presented to the user. According to another embodiment of the invention, the interface further comprises a shell that permits or denies personal data to be distributed to an external entity. According to another embodiment of the invention, the interface further comprises a shell that filters unwanted data from being received by the device. According to another embodiment of the invention, a minimum amount of personal data is distributed to conduct a transaction with the external entity. According to yet another embodiment of the invention, the shell is a software program executing on the portable device. According to another aspect, the shell is a software program executing on the portable device. According to another embodiment of the invention, the device further comprises a database of information relating to the use of the personal information. According to another embodiment of the invention, the device further comprises subsystems distributed in at least one of: (a) one or more personal computers; (b) one or more network servers; and both (a) and (b). According to another embodiment of the invention, the database of information relates to the use of the personal information and includes at least one rule governing at least one of use access, and management of the personal information. According to another embodiment of the invention, the database of information relates to the use of the personal information and further comprises rules governing distribution of the personal information to external entities. According to another embodiment of the invention, the device further comprises a plurality of agents configured to support conducting transactions between a user of the device, wherein the plurality of agents control distribution of the personal information to the external entities. According to another embodiment of the invention, the personal device cooperatively distributes the personal information among one or more trusted systems.
According to another aspect of the invention, a method is provided for accessing personal information of a user on a personal device. The method comprises steps of establishing a communication link between the device and an external system; transferring the personal information to the external system to facilitate a transaction; storing information related to the transaction on the personal device. According to another embodiment of the invention, the personal data includes medical records, and the information related to the transaction is medical treatment information. According to another embodiment of the invention, the personal data includes financial records, and the information related to the transaction is financial transaction information. According to another embodiment of the invention, the step of transferring includes transferring a minimum amount of personal data sufficient to conduct the transaction with the external system. According to another embodiment of the invention, the method further comprises a step of selecting personal data to be transferred by the step of transferring based on a minimum set of information needed to conduct the transaction. According to another embodiment of the invention, the method further comprises a step of storing, on a second external system, overflow personal information. According to yet another embodiment of the invention, the method further comprises steps of transferring the personal information to an intermediate system and generating an agent that performs the transaction on behalf of the user.
According to another aspect of the invention, a method is provided for managing personal data. The method comprises storing, on a portable device, personal data owned by a user; and controlling, by the user, distribution of the data to other entities over a communications network, wherein the personal data is distributed among the portable device and a plurality of general -purpose computers, the general-purpose computers being used to store overflow information. According to another embodiment of the invention, at least one of the plurality of general-purpose computers is a personal computer operated by the user. According to another embodiment of the invention, the method further comprises filtering unwanted data from being received by the device. According to another embodiment of the invention, the "method further comprises allowing personal data to be communicated to another entity, the communicated personal data being sufficient to support a transaction. According to another embodiment of the invention. the communicated personal data is a minimum amount of data sufficient to support the transaction. According to another embodiment of the invention, the method further comprises denying, communication of information unnecessary for performing the transaction. According to another embodiment of the invention, the step of controlling is performed cooperatively between the portable device and general-purpose computer. According to another embodiment of the invention, the method further comprises communicating the personal data with a server system, and generating, by the server system, an agent configured to control and transmit the personal data to the other entities. According to another embodiment of the invention, the method further comprises storing, on at least one of the plurality of general-purpose computers, personal data related to a community of which the user is associated. According to another embodiment of the invention, the method further comprises providing .an interoperating distributed software system, the system being distributed among the portable device and plurality of general-purpose computers. According to another embodiment of the invention, the method further comprises providing, among the portable device and plurality of general-purpose computers, a common interface to the user. According to another embodiment of the invention, the method further comprises providing, among the portable device and plurality of general-purpose computers, a common interface to application software programs. According to another embodiment of the invention, the method further comprises storing, managing, and processing rules and agents to facilitate transaction conducted by the portable device and plurality of general-purpose computers. According to another aspect if the invention, a method is provided for managing personal data. The method comprises steps of storing, on a first system, personal data owned by a user; receiving and executing, at the first system, an externally-generated program configured to transfer information to second system; and controlling, by the user, distribution of the personal data to the second system. According to another embodiment of the invention, the externally-generated program is a software cookie. According to another embodiment of the invention, the personal data owned by a user includes behavior information of the user. According to another embodiment of the invention, the step of controlling further comprises allowing access, to the externally- generated program, to a minimum amount of personal data. According to another embodiment of the invention, the step of controlling includes allowing a user to benefit from the externally-generated program while limiting an amount of personal data accessed by the program.
According to another aspect of the invention, a method is provided for performing a transaction in a distributed network comprising generating, by a computer system coupled to a communications network, a software agent configured to exchange data to support a transaction; and exchanging the data with one or more other systems coupled to the communications network, wherein the agent provides a minimum amount of data to support the transaction. According to another embodiment of the invention, the software agent is comprised of a plurality of base agents and the step of generating comprises generating the plurality of base agents that comprise the software agent.
According to another embodiment of the invention, at least one of the plurality of base agents is generated by another base agent. According to another embodiment of the invention, the method further comprises maintaining identification of each of the plurality of base agents and managing the identifications in a database. According to another embodiment of the invention, the method further comprises managing creation and deletion of agents. According to another embodiment of the invention, the method further comprises re-using existing agents to form new agents. According to yet another embodiment of the invention, the computer system includes at least three devices functioning as a single manager of data including a portable device; a system configured to connect to the portable device and store overflow information; and a server system configured to dispatch the software agent to the one or more other systems coupled to the communication network.
According to another aspect of the invention, a method is provided for interfacing a portable device to a user. The method comprises providing a natural language query input to the user; performing, based on the input, a search of one or more language-based databases; and providing, through an interface of the portable device, a result of the search. According to another embodiment of the invention, the method further comprises a step of identifying, for the one or more language-based databases, a finite number of database objects, and determining a plurality of combinations of the finite number of database objects. According to another embodiment of the invention, the method further comprises a step of mapping the natural language query to the plurality of combinations. According to another embodiment of the invention, the step of mapping comprises steps of identifying keywords in the natural language query; and relating the key words to the plurality of combinations. According to another embodiment of the invention, the method further comprises a step of determining a reference dictionary comprising case information; keywords; information models; and database values. According to another embodiment of the invention, the step of mapping further comprises resolving ambiguity between the keywords and the plurality of combinations. According to another embodiment of the invention, the step of resolving includes determining an optimal interpretation of the natural language query using at least one of a group comprising rules and heuristics.
Further features and advantages of the present invention as well as the structure and operation of various embodiments of the present invention are described in detail below with reference to the accompanying drawings. In the drawings, like reference numerals indicate like or functionally similar elements. Additionally, the left-most one or two digits of a reference numeral identifies the drawing in which the reference numeral first appears.
BRIEF DESCRIPTION OF THE DRAWINGS
This invention is pointed out with particularity in the appended claims. The above and further advantages of this invention may be better understood by referring to the following description when taken in conjunction with the accompanying drawings in which similar reference numbers indicate the same or similar elements.
In the drawings,
Fig. 1 is a block diagram of a personal system in accordance with one embodiment of the invention;
Fig. 2 is a block diagram showing a personal system being distributed among a plurality of systems;
Fig. 3 is a block diagram of a general-purpose computer system upon which one embodiment of the invention may be implemented;
Fig. 4 is a block diagram of a computer system using agents;
Fig. 5 is a block diagram showing agent communication in accordance with one embodiment of the invention; and
Fig. 6 is a flow diagram of a process for performing agent communication;
Fig. 7 is a block diagram showing an agent transmission process;
Fig. 8 is a block diagram showing an example metadatabase system; Fig. 9 is a block diagram of a personal data format in accordance with one embodiment of the invention;
Fig. 10 is a flow diagram of a method of processing data in accordance with one embodiment of the invention; Fig. 11 is a block diagram of an example graphical user interface according to one embodiment of the invention;
Fig. 12 is a block diagram of another example graphical user interface according to one embodiment of the invention;
Fig. 13 is a block diagram of a natural language query processor according to one embodiment of the invention; and
Fig. 14 is a block diagram showing an example structure of a reference dictionary.
DETAILED DESCRIPTION The present invention will be more completely understood through the following detailed description which should be read in conjunction with the attached drawings in which similar reference numbers indicate similar structures. All references cited herein are hereby expressly incorporated by reference.
According to one aspect of the invention, a new business model is provided wherein a consumer such as a person is in control of their own personal information. In contrast to a business-centered e-commerce approach, wherein data is stored at the company site and is used to further advance the company's financial objectives, the conventional e-commerce paradigm is changed to a person-centered approach wherein the data of the person is owned and controlled by the person. Personal data may be controlled, for example, by a single personal system, or a plurality of systems acting together in the interest of the person.
According to one aspect of the invention, a method is provided for differentiating between ownership and control of data. In particular, the producer of the data has the ability to specify a level of ownership and level of control of data to allow increased functionality in handling the data. By providing separate indications of control and ownership, control and distribution of data is more flexible. For example, ownership and control information of the data may indicate a single entity, such as a person, as being the sole owner and controller of the data. For example, it may be beneficial to provide total ownership and control of data such as name, address, Social Security Number, etc. to the person.
Alternatively, it may be beneficial to specify a joint ownership of data, wherein the group of owners collectively owns and controls the data. Here, many entities own the data, and many entities control the data. For example, a person who is a member of an organization may choose to relinquish personal data to the organization, creating community data owned and controlled by the organization. Further, the organization collectively may choose to relinquish the community data to a larger organization, of which it is or is not a part. For example, a fraternity chapter, having a collection of members, may collectively choose to relinquish fraternity chapter data to a national fraternal organization. Alternatively, the fraternity chapter may collectively choose to relinquish chapter data to an unrelated organization.
Further, it may be beneficial to provide access to data without changing ownership of the data. More specifically, it may be beneficial to loan data to another individual or company for the purpose of providing goods or services. For example, medical data owned by an individual may be loaned to a medical professional or organization for the purposes of rendering medical care. It may be useful to track the original owner of the data, as any use of the data not in an interaction with the original owner could be tracked and reported to the owner. For example, a credit report provided by a user to obtain a mortgage may be tracked by the user to prohibit use of the report inconsistent with the user's wishes. Alternatively, after the data is used for its intended purpose, such as being used in a transaction, the data may be destroyed.
Also, it may also be beneficial to provide an automatic transfer of ownership of data. For instance, an automatic transfer could be triggered by a request by an entity that has a predetermined relationship with the entity that owns the data. For example, the owning data may be an employee, and the employer may have a superior ownership right to all data produced by the employee. Thus, the employer has a legal right to the data, and the employee is obligated to relinquish the data.
According to another aspect of the invention, a device is provided for storing, managing and controlling personal data. For example, a personal system stores, manages and controls person-owned data and information. In one aspect, a shell is provided that maintains privacy, security and control of person-owned data stored in the device. Also, the shell filters out unwanted information from other individuals and companies. According to another aspect of the invention, a distributed system architecture is provided including a portable device and a plurality of general-purpose computer systems. One or more of the general -purpose computer systems may be used to backup data and store overflow data from the portable device. In conventional systems such as PDAs coupled to PCs, information is merely replicated from the PDA to the PC, and vice-versa. According to one embodiment, overflow data, such as data that is not currently being used, is stored on at least one of the general-purpose computer systems, which generally offer more storage capabilities than the portable device. Thus, the personal data is actively managed based on use of the data. Also, the distributed system may operate collectively as a single unit, to manage and control personal data.
According to a further aspect of the invention, the system may employ agents that are created by the system that pass through the shell and return with the desired information or complete a transaction to serve the persons interests while keeping the personal data within the ownership and control of the person. According to another aspect, a manager is provided that manages a plurality of agents. For example, the manager may facilitate re-use of existing agents to create new agents. In one embodiment, a metadata database is used to manage the agents.
In yet another aspect, the portable device includes a Natural Language User Interface (NLUI) to enhance the ease of use. In one embodiment, the portable device uses a natural language query processor that minimizes the amount of storage and processing required on the portable device.
Fig. 1 shows a block diagram of a personal system 101 in which personal data 104 may be managed and accessed by a user. System 101 may include, for example, a portable device on which the personal information 104 is stored. The personal information 104 may be, for example, data stored in a database 105, such as identification, security, medical records, financial information, or the like. Personal information 104 may also include a knowledge database 106, which is a collection of knowledge accrued by the user of the personal system 101. Knowledge base 106 may be, for example, a collection of facts, a collection of logic to be applied to facts, or both. For example, if a person is taking a first prescription drug (a fact), the fact that another prescription drug causes an interaction with the first is a logic relation. These relations may be stored in system 101 and may also be used by provider systems 103 A, 103B to facilitate transactions. Personal system 101 may also include decision tools 107 which allow the user to facilitate transactions. For example, decision tools 107 may assist the user in selecting one product over another. Decision tools 107 may include common or generic knowledge regarding providers of goods and services, or specific personal information particular to an individual user, such as medical history, background, allergies, product or brand preferences, etc.
The personal system 101 may be portable or include some portion thereof which is portable and is associated with a user. The user may carry system 101 or a portion thereof, which may be for example, a card, an electronic chip, or other device used to store personal information. In one aspect, the personal system may be attached to the user, such as being embedded in the body of the user. System 101 may or may not be accessible through a user interface located on the device. In one aspect, the device does not provide an interface on the device itself; the device is accessed by an external reading device such as a card reader. According to one aspect, a graphical user interface is provided, through which the user provides input and receives output (user I/O 112). Other methods of accessing personal data 104 may be used.
Traditional business transactions, such ATM (automatic teller machine) transactions involve the use of traditional credit cards or what is referred to in the art as "smart cards." Smart cards function as usage keys for users to gain access to services. Generally, a smart card includes only identification and security information used to authenticate a user. By contrast, personal system 101 maintains and controls information associated with the owner of the information.
According to one aspect of the invention shown in Fig. 2, personal system 101 is distributed among a portable device 201 and a number of general-purpose computer systems 202, 203. The portable device 201 includes storage media used to store the personal data or information 104A. Storage media may be, for example, magnetic or optical storage media, or electronically programmable media such as an EEPROM or Compact flash device. It should be understood that any media type may be used. Preferably, the storage media is compact and portable by a user and is energy efficient, to reduce power requirements for system 101. System 101 enables secure identification of the user and includes identity and password information on system 101. System 101 may include a processor, operating system, and memory and storage devices (not shown) used to store, retrieve and process personal data 104. In one aspect, system 101 provides access to goods and services provided by provider systems 103 A, 103B. Personal system 101 communicates with systems to exchange the personal information to facilitate transactions with one or more provider systems 103 A, 103B. The personal information is generally transmitted over links 109-111 to provider systems 103 A. 103B such as Internet sites, personal computers, or other systems capable of performing transactions. Links 109-111 may be optical, electromagnetic or electrical links as is known in the art. For example, links may be wireless communication links. In another aspect, the communication links 109-111 may be network links over copper or optical media. Other link types are possible.
Personal system may communicate information to provider systems directly, or may communicate information in conjunction with one or more general-purpose computers 202, 203. Computers 202, 203 may be located, for example, in a medical office or store, or at the location of a provider of goods and services. Alternatively, computers 202, 203 may be a personal computer of a user. According to one embodiment of the invention, computer system 202 may be a personal computer that can be used to store user data that is too large to be stored at device 101. In another embodiment, computer system 203 is maintained by a trusted provider and provides service to one or more users. Unlike conventional service providers that accepts advertising revenue to target consumers and otherwise do not act entirely within the best interests of the consumer, computer system 203 can be operated by the trusted provider to serve the needs of consumers. In one aspect, computer system 203 limits the access of other entities to personal data 104. Also, computer system 203 stores community data 212 to be shared among users, and used for the benefit of the users. This contrasts to current practices such as Amazon.com, wherein the company Amazon.com maintains personal and collective knowledge of transactions to further their business objectives. Portable device 201 and computer systems 202, 203 may include a distributed management process 108 A, 108B, 108C (collectively, item 108) that manages personal data 104. Data 104 may be, for example, identification information, medical records, medical treatments, previous transactions, financial information, or other personal information used by the business to perform a transaction. Computer system 203 communicates through network 102 with one or more provider systems 103 A, 103B (collectively, item 103) to allow the user to access goods and services. Provider systems 103 A, 103B may in turn access other providers, such as Citigroup or other institution for financial services, an HMO for health services, etc. Computer system 203 may provide the interfaces necessary to communicate with provider systems, such that reprogramming of the provider systems is unnecessary. Computer system 203 may communicate with other systems using a communication protocol such as TCP/IP. It should be understood that other protocols may be used. Computer system 203 may include one or more agents used to interpret personal information, and communicate with one or more provider systems 103. Agents, discussed in more detail below with reference to Figures 4-7, are well-known in the art of Internet programming. Computer system 203 may include an agent library 213, which includes a number of agents configured to perform specific tasks. As different tasks need to be performed, additional agents may be added to the library 213.
Portable device 201 generally includes a personal information management system 108A which allows the user to view, change and interpret his or her own personal information 104 stored on personal system 101. Portable device 201 may also be a general purpose computer system 301 as shown in Fig. 3. Portable device 201 may also be a personal digital assistant (PDA) such as those available from Palm Computing, or a PDA that executes the WinCE operating system, available from a variety of vendors. Device 201 may also by a cellular phone capable of communicating data over the Internet (termed a "Web phone"). Other portable devices may be used. Portable device 201 may also include one or more application software systems 207 that execute on device 201 and operate on personal data 104. For example, a calendar management application that provides management of appointments and dates may execute on device 201. Other application systems 207 that use personal data 104 may be used.
According to another embodiment of the invention, portable device 201 includes a graphical user interface (GUI) through which a user provides input and receives output. That is, the user provides and receives user input/output (I/O) 112 to GUIs 204, 208 as shown on Figure 2. In one embodiment of the invention, discussed below with reference to Figures 10-1 1, the GUI is a natural language user interface (NLI) that accepts natural language inputs from the user.
Computer systems 202, 203 may also be general purpose computer systems 301 such as that shown in Fig. 3. The computer system 301 may include a processor 302 connected to one or more storage devices 303, such as a disk drive through a communication device such as bus 307. The computer system also includes one or more output devices 304, such as a monitor or graphic display, or printing device. The computer system 301 typically includes a memory 305 for storing programs and data during operation of the computer system 301. In addition, the computer system may contain one or more communication devices that connect the computer system to a communication network 306. Computer system 301 may be a general purpose computer system that is programmable using a high level computer programming language. The computer system may also be implemented using specially programmed, special purpose hardware. In the computer system 301, the processor 302 is typically a commercially available processor, such as the PENTIUM, PENTIUM II, PENTIUM III, or StrongARM microprocessor from the Intel Corporation, PowerPC microprocessor, SPARC processor available from Sun Microsystems, or 68000 series microprocessor available from Motorola. Many other processors are available. Such a processor usually executes an operating system which may be, for example, DOS, WINDOWS 95, WINDOWS NT, WINDOWS 2000, or WinCE available from the Microsoft Corporation, MAC OS SYSTEM 7 available from Apple Computer, SOLARIS available from Sun
Microsystems, NetWare available from Novell Incorporated, PalmOS available from the 3COM corporation, or UNIX available from various sources. Many other operating systems may be used.
The communication network 102 may be an ETHERNET network or other type of local or wide area network (LAN or WAN), a point-to-point network provided by telephone services, or other type of communication network. Information consumers and providers, also referred to in the art as client and server systems, respectively, communicate through the network 102 to exchange information.
It should be understood that the invention is not limited to a particular computer system platform, processor, operating system, or network. Also, it should be apparent to those skilled in the art that the present invention is not limited to a specific programming language or computer system and that other appropriate programming languages and other appropriate computer systems could also be used.
Fig. 4 shows a detailed block diagram of one embodiment of the invention. In one aspect, computer system 401 may be similar in function to computer system 203, having an agent library 213, and operating on personal data 104 and community data 212. System 401 includes a management system 108 used for creating, tracking, encrypting and performing various other tasks with respect to personal data 104. Further, system 108 may be responsible for managing the library 213 of software agents that handle personal data 104. Information regarding states of these agents may, for example, be stored in an agent database 405. In one embodiment, the agent database is a metadatabase capable of storing thousands of agents. Generally, system 401 includes a communication protocol, and processes that perform application functions including authentication, accessing and storing personal information at system 401. A communication protocol may include, for example, network layer and data link layer protocols as is known in the art for communicating information between systems. An example of a network layer protocol is TCP/IP. An example of a data link protocol is Ethernet. It should be understood that any protocols may be used to communicate information between system 401 and 402 through communication link 406. System 401 includes storage media which may be, as discussed above with reference to Fig. 3, any media used to store personal information 104. A process of system 401 may access the media to store and retrieve personal information 104.
Agent library 213 may include a number of software agents, which, in the context of various aspects of the invention, are software programs that generally have several features in common. An agent is generally described as one that acts or has the power or authority to act or represent another. A software agent is generally a program that carries out activities in a flexible and intelligent manner that is responsive to changes in an environment in which the agent exists without requiring constant human guidance or intervention. A software agent may have the following attributes as described in the book entitled Software Agents edited by Jeffrey M. Bradshaw, American Association for Artificial Intelligence, MIT Press 1997, Cambridge, MA.: Reactivity: The ability to selectively sense and act.
Autonomy: The agent has goals, and the agent is self-directed and proactive in achieving the goals.
Collaborative behavior: The agent can work in concert with other agents to achieve a common goal. Temporal continuity: The agent has a persistence of identity and state over long periods of time.
Adaptivity: The agent is able to learn and improve with experience. Mobility: The agent is capable of migrating in a self-directed way from one host platform to another.
It should be understood that agents having varying degrees of these attributes may be used, and still satisfy the spirit of various embodiments of the invention. Further, there may be other methods of characterizing and implementing agents which is still within the scope and spirit of the invention. For example, agents may be implemented in a variety of computer languages, some being general -purpose languages like the Java, Javascript, C, C++, ActiveX, and the Tel programming languages, others have been specially adapted for agent programming. Aglets available from IBM, General Magic's Telescript, are agent libraries that provide standard functions for creating agents. Other agent programming languages are available. It should be understood that any programming language may be used, including scripting or compiled programming languages that are executed, interpreted, or both. The term agent code is used herein to describe agent programs written in any programming language. Agents are particularly suited for certain tasks that require mobility, are time consuming, are repetitive, and/or require a large degree of connectivity between a system and provider. For example, searching and retrieving Internet information is a task that is well-suited for an agent. The agent, while being executed on a provider system, may reduce the amount of processing required at the requesting system and may reduce the amount of information transferred over the Internet. Further, multiple agents may be dispatched that perform transactions in parallel, thus increasing performance of the requesting computer system. Other applications of agents are possible, especially when a program is needed that meets one or more of the agent attributes described above.
As discussed, agents may be mobile in that they may "travel" or be transmitted from place to place, such as between computer systems. For example, system 401 may include an agent library 213 including a plurality of agents 403A-403ZZ that may be transmitted to a provider system 402. These agents may operate on data 104, 212, and/or transfer this data to the provider system 402. Agent library 213 may include, for example, a database used to track and store agents created by system 401. Agent library 213 may also include a managing agent 404 which is executed on computer system 401, and monitors a state of a query or transaction.
Provider system 402 may include an agent processor 408 that executes code of the agent, or otherwise creates an environment in which an agent may operate. This agent processor may include, for example, an interpreter or processor that executes code statements of the agent. Using the Java programming language, agent processor 408 may include a Java Virtual Machine that interprets agent code. Also, agent processor 408 may itself be a program that interprets agents transmitted to system 402. Provider system 402 also includes agent storage 409 wherein the code associated with the agent is stored, and wherein the agent stores data created from transactions, queries, and other operations performed by the agent.
In one embodiment of an agent system, mobile intelligent agents are used. Figure 5 shows a system for communicating agents in accordance with one embodiment of the invention. Computer system 401 creates a managing agent called an initiating agent 501 that controls access to personal 104 and community 212 data, and issues agents to provider system 402 to perform one or more transactions. In one embodiment of the invention, any initiation of interaction between the personal device and one or more provider systems 402 triggers the creation a pair of mobile agents which will perform the interaction. One of the agents in this pair is the initiating agent 501 for the interaction. The other agent is a mirror agent 502 that remains at the initial server and monitors the state of the initiating agent 501. The initiating agent 501 retrieves a location of the personal data 104 and issues one or more agents to establish a connection between the memory location and the provider system 402 designated for the initiated interaction. The memory location for personal data 104 may be, for example, located on computer system 401 or distributed among one or more trusted computer systems. This provider system 402 to which agents are issued is selected by the initiating agent 501 based on the locations of personal data 104 and location of portable device 201 requesting the transaction. The initiating agent 501 travels to the designated provider system 402 and is responsible for performing transactions on behalf of the user. For example, the user may issue a request, such as a query, through an interface 206 of the portable device 201 , and system 203 issues agents to service the request. The agent 501 is transmitted to system 402, where it is stored in agent storage 409 as agent 506. According to one embodiment, the agent 501 and its information is encrypted prior to transmission over untrusted networks.
Initiating agent 506 generates query 507 and transaction 508 agents in response to the user requests and interacts with memory agents 509 located on the provider or other system to obtain data from the designated provider system 402. By indicating as their source, the selected server and not the user site, as well as by carefully limiting the user information revealed in processing, query 507 and transaction agents 508 protect the user from revealing any information to visited web-sites and other providers 402 that is not necessary for performing an intended transaction. The initiating agent 501 process and transform results generated from query 507 and transaction 508 agents to a form suitable for the computer system 401 to process and communicate the results to the user as a part of the portable device 201 and initiating agent dialog. If initiating agent 506 does not receive response from one of the query 507 or transaction 508 agents in a pre- defined time limit, initiating agent 506 will reissue this agent one or more times to attempt to process the relevant transaction or query. The reissued transaction may include processing to avoid potential double execution of the transaction (by a lost or delayed agent and by the reissued agent). In one aspect, the reissued agent is not identical to the original agent; conventional systems typically reissue a new agent that is identical to the first agent.
The initiating agent 501 propagates any changes in the user memory of system 401 to all relevant locations by issuing update memory agents 503, and reissuing them if necessary, until all memory agents report a successful completion of the changes. Temporary agent storage 409 on the designated provider system 402 is cleared and traces of the performed transactions are removed from the system 402, if possible, to minimize the amount of personal data residing at the provider system 402. Initiating agent 506 kills all agents it generated and issues a final report to its mirror agent 502. The mirror agent 503 kills initiating agent 501 and finally, itself.
During its existence, initiating agent 506 periodically (with, for instance, a frequency defined by the system), report its status to the mirror agent 502. If the mirror agent 502 does not receive this report within a predefined time, mirror agent 502 issues a kill command to the initiating agent 506 and creates a reissued initiating agent 504 that restarts processing at the last report time. A principle difference between the reissued 504 and original 501 initiating agent is that the reissued agent 504 will generate all transactions initially as reissued to avoid duplicating transaction execution.
Because two different subsets of memory parts can be used for two different user- system interactions, processing of one of this interactions is blocked. If such situation happens, both transactions determine the lowest numbered user memory part shared between them and determines which transaction docked a memory agent 503 at this part first. The transaction that docked the lowest-numbered shared memory part is allowed to proceed, whereas the other transaction is blocked until the consistent memory status will be achieved by the proceeding transaction. According to one embodiment of the invention, all of the agents generated, except the mirror agent 502, are temporary, meaning that each agent ceases to exist at a predefined time to avoid double processing. This may be accomplished, for example, by associating, with each agent a "certificate of life" that specifies a preset time of existence for the agent. A managing agent such as a mirror agent 502 can extend this certificate of life by an additional time in certain situations (long transfer delays, long processing queues, etc.). For example, the mirror agent 502 may be configured to adjust the certificate of life of all other agents, and the initiation agent 501 may be capable of adjusting certificates for all other agents except itself. In this manner, agents perform their own "cleanup" processing, e.g. they do not cause a loss of working memory, while still being able to perform processing in a variety of environmental situations provided by the network, provider 402 or computer system 401.
Programs, such as cookies, can also be transferred back to computer system 401. According to one embodiment of the invention as shown in Figure 2, computer system 203 may include a storage area (not shown) for incoming agents or cookies. The storage area protects the system 101 from unauthorized access to personal 104 and community 212 data, while allowing the user to have the benefit of using cookies. In conventional systems, if a user desires a higher level of security, the conventional system may be configured to block accepting cookies. However, cookies may include useful information such as usernames and passwords to be used at the provider systems with which they are associated. To solve this problem, system 101 allows the acceptance of cookies, but does not allow a cookie unrestricted access to the user's personal 104 and community 212 data. This may be accomplished, for instance, by executing the cookie as a restricted user, wherein data 104, 212 is stored in a protected storage area not accessible to the cookie. Alternatively, data 104, 212 may be stored on another system. such as device 201 or computer system 202, and transferred to system 203 in a secure manner only when needed. The user operates device 201 which transmits a request (such as a query or other transaction) to system 203, wherein system 203 performs the transaction on behalf of the user. Because the svstem 203 has access to the cookie, the system is capable of providing the benefit of the cookie to the user, while not divulging data 104, 212.
Collectively, the system provides privacy, security, fault tolerance and efficiency of transaction processing in the distributed collection of the secure servers and the distributed memory consistency for the user memory. The query 507 and transaction 508 agents provide user privacy by disassociating the user from transactions. Memory agents 503, initiating agent 501 and query 507 and transaction agents 508 provide communication security by carrying only encrypted data over untrusted networks and by decrypting them only at the point of processing. Because processing of data is performed on secure servers owned by the system owner, security is maximized. Thus, a protective "shell" is created at system 401, wherein personal data 104 is allowed to leave the shell by the will of the user. Personal data, when it leaves the shell, is accompanied by an agent configured to manage and protect the data. Also, system 101 and data 104, 212 are protected from external programs such as cookies. In one embodiment, the initiating agent 501 supports processing mobility and efficiency by selecting the designated provider system 402 in accordance with the current network traffic and load on the systems. Also, mirror agent 502 provides fault tolerance by taking over the initiating agent 501 in case the initiating agent 501 fails or an unacceptable delay is experienced. Similarly, the initiating agent 501 reissues query 507 or transaction agent 508 that fails to return results in the predetermined time, thereby increasing fault tolerance of the entire system. Memory consistency is ensured by delaying any operations that result from attaching more than one memory agent 503 to any memory part. Also, the agents are temporary agents that kill themselves after the predefined time, thus conserving distributed memory resources and minimizing the amount of management required at systems 401 , 402.
Figure 6 shows one embodiment of a process for performing agent communication in the system shown in Figure 5. At block 601 , process 600 begins. At block 602, computer system 401 creates initiating agent 501 and mirror agent 502. Initiation agent 501 retrieves a location of data 104 at block 603, and, at block 604, initialization agent 501 issues an agent 506 to provider 402. At block 605, the issued agent 506 creates, at provider 402, transaction 508 and query 507 agents. The agents 507. 508, at block 606, perform a transaction on behalf of the user. At block 607, initialization agent 501 determines whether the query 507 and transaction 508 agents respond within predetermined time limits. If so, the initialization agent communicated the changes to a memory of system 401 via memory agents 503. If agents 507, 508 have not replied within the predetermined time limits, initialization agent 501 generates a reissue agent at block 610. At block 611 , the reissue agent issues an agent to system 402. As discussed above, the reissue agent is preferably not identical to the initialization agent 501, as the reissue agent completes the transaction at block 613 from a point last reported by the initialization agent 501. That report may be an interim report provided by initiating agent 501 to mirror agent 502. The reissue agent sent to system 402 also generates query and transaction agents at block 612. These agents also re-execute the transaction, at the point last reported.
Figure 7 shows a block diagram depicting an agent transmission process. As discussed above, an agent 701 can be mobile, and can be transmitted to a provider system 402 to perform one or more transactions. Agent 701 obtains personal data 104 needed to perform a transaction, and the agent along with data 104 is encrypted prior to being transmitted 704 over a network 102. As discussed, network 102 may be an untrusted network such as the Internet. Encryption may include, for example, private or public key encryption, a combination thereof, or any encryption method suitable for protecting data. Transmission 704 may entail, as is known in the art, transmitting the encrypted data in one or more messages according to a data transmission protocol, such as TCP/IP. Also, TCP/IP packets may be transmitted over any number of media types such as fiber or copper cabling, or wireless communication media, or any media suitable for transferring information. Decryption 705 is performed at the provider system 402, wherein the agent is executed 706. A provider process 215 services the transaction, wherein data is transferred to and from the provider process 215. Prior to transmission over network 102, the agent and/or its data is encrypted at block 707. The data is transmitted at block 708 back to the originating computer system 401, or is passed on to another provider system 402A, depending on the transaction type. That is, some transactions may require an agent to traverse more that one provider system. The agent and its data are decrypted at block 709, wherein the agent is executed 710. The agent is either terminated at block 711 if the transaction is completed, or is further encrypted at block 712 if the agent is transmitted over network 102 to a further provider system or back to computer system 401. As discussed above with reference to Figure 4, system 401 may track agents using an agent library 213 having a database. According to one embodiment of the invention, the database is metadatabase, which is well-known in the art of data and knowledge management tools. Metadatabase theory is described in more detail in a number of books and publications, including the book entitled Enteφrise Integration and Modeling: The Metadatabase Approach, by Cheng Hsu, Kluwer Academic Publishers, Amsterdam, Holland and Boston, Massachusetts, 1996. Also, metadatabase theory is described in the journal article by Hsu, C, et al. entitled The Metadatabase Approach to Integrating and Managing Manufacturing Information Systems, Journal of Intelligent Manufacturing, 1994, pp. 333-349. In conventional systems, metadatabase theory has traditionally been applied to manufacturing problems. A metadatabase contains information about enteφrise data combined with knowledge of how the data is used. The metadatabase uses this .knowledge to integrate data and support applications.
The metadatabase model as shown in Figure 8, uses a structure that shows how a metadatabase system 802 provides an enteφrise information model describing data resources of globally-distributed provider systems applications 407 and their control strategy in the form of rules. These globally-distributed systems applications 407 may be executed, for example, at one or more provider systems 402 discussed above. The information model also includes knowledge regarding dynamics of information transfer such as "what and how" information is shared among local systems and under what circumstances it is used. The information model may be in the form of a metadatabase 801 having data items 804, models 805, rules 806, software resources 807 and application and user information 808.
As applied to a system for managing personal information using agents, the information model describes the global requirements of the agent system, such as core rules 806 of the interface languages and particular rules for their interoperation. For example, there may be specific rules that determine how a particular provider handles input and output from an HTML interface. The provider may also use some other type of interface, such as a command or scripting interface to exchange data. These rules can be represented in the metadatabase using its rulebase model. The model is detailed in several publications, including the journal article entitled A Rulebase Model for Data and Knowledge Integration in Multiple Systems Environments, International Journal of Artificial Intelligence Tools, Vol. 2, No. 4, 1993, pp. 485-509. The metadatabase 801 may also include metadata about software resources 807 such as common software routines or methods shared by agents. That is, the metadatabase catalogs availability and functions of reusable software resources and tracks their use in one or more agents. In this way, changes made to software resources 807 may be promulgated to other agents that use these resources. New agents can also be created from groups of these software resources stored in the metadatabase.
In addition, the metadatabase contains metadata about applications and users 808 of the agent system. These metadata may, for example, include provider type information such as web site types of the application service providers, to assist the system in creating and managing agents that interface with the providers. The metadata may also include references to personal data, such as personal preferences and requirements, stored in one or more devices of system 101. Runtime agents can retrieve personal data 104 and use them, for example, parameters to set priority of information retrieval or transactions. The application and user portion 808 of the metadatabase 801 may specify how personal preferences and requirements of the user are incoφorated into building runtime agents for specific applications.
The metadatabase links these various classes of metadata by using a metadata representation that is known and described in the book entitled Enteφrise Integration and Modeling: The Metadatabase Approach cited above. Thus, various data objects and routines of persistent agents are interrelated in the context of applications and users. When a new agent is needed, the metadatabase matches the type of application with those of the persistent agents and their software resources in data objects. The metadatabase then identifies pertinent elements that the new agent can use or reuse, and determines personalized parameters to include with the agent. Thus, a structured method to manage agent resources and match them to users and provider applications is provided. In summary, the metadatabase 801 describes how various database objects and routines of agents are interrelated and how they can be reused to build new agents. Also, as applied to a system of managing personal information using agents, the metadatabase may be used to track the state of agents that obtain information from a large number of distributed databases over the Internet. Because the metadatabase system design scales well to a large system of distributed databases, the metadatabase may be used to track the creation, deletion, status of agents. In particular, the metadatabase may store status of Internet applications that use these agents, and use this status to facilitate creating and managing agents. Each of these applications has an associated entry in the metadatabase, which stores metadata about the application's type and its use of agents. When one or more applications are changed, the metadatabase can update a relationship between agents and applications, including deleting agents created expressly for these applications. However, the common software resources in data objects used to build the agents do not have to be deleted; only their interface configuration into some particular agents needs to be deleted. The metadatabase maintains relationships and cross references to facilitate this management of agents. The capability of flexibly managing and maintaining agents is critical to systems that need to manage and use large numbers of agents, especially agents whose relations to provider applications changes frequently.
The metadatabase is a repository of information about the structure and functions of applications with which agents operate and tasks that agents perform. The metadatabase may include, for instance, functional and informational models, databases and interface requirements of the Internet applications. The MDBMS is the user interface to the metadatabase and the database processor managing the metadatabase. The MDBMS makes it possible to develop, maintain and utilize information in the metadatabase to create runtime agents and manage persistent agents. Further details of the metadatabase system are described in the book entitled Enteφrise Integration and Modeling: The Metadatabase Approach, by Cheng Hsu, Kluwer Academic Publishers, Amsterdam, Holland and Boston, Massachusetts, 1996.
Figure 9 shows a data format according to one aspect of the invention. In particular, a data format is provided that allows a user to differentiate between ownership and control of data. That is, the producer of the data has the ability to specify a level of ownership and level of control of data to allow increased functionality in handling the data. By providing separate indications of control and ownership, control distribution of data is more flexible. For example, data A (item 901) may have associated with it ownership information A (item 902) and control information A (item 903). Ownership information A may specify one or more owners of information A, and ownership information A is transmitted with the data A portion 901. By contrast, conventional systems associate a single username to a file by locating the file in a directory structure having certain ownership attributes. Once the file is transmitted, this ownership information is lost. Further, data A has associated with it control information A 903, which indicates who is allowed control of the data. It is beneficial to provide a separate indication of control, because a provider system 402 may be allowed temporary control of the data for a transaction, but the provider is not the owner of the data (unless otherwise determined by the transaction type) and the provide system 402 should not be indicated as the owner.
It may be beneficial to specify a joint ownership of data, wherein the group of owners collectively owns and controls the data. Here, many entities own the data, and many entities control the data. It may also be beneficial to provide access to data without changing ownership of the data. More specifically, it may be beneficial to loan data to another individual or company for the puφose of providing goods or services. For example, medical data owned by an individual may be loaned to a medical professional or organization for the puφoses of rendering medical care. It may be useful to track the original owner of the data, as any use of the data not in an interaction with the original owner could be tracked and reported to the owner. For example, a credit report provided by a user to obtain a mortgage may be tracked by the user to prohibit use of the report inconsistent with the user's wishes. Alternatively, after the data is used for its intended puφose, such as being used in a transaction, the data may be destroyed.
Also, it may be beneficial to provide an automatic transfer of ownership of data. For instance, an automatic transfer could be triggered by a request by an entity that has a predetermined relationship with the entity that owns the data. For example, the owning data may be an employee, and the employer may have a superior ownership right to all data produced by the employee. Thus, the employer has a legal right to the data, and the employee is obligated to relinquish the data. It should be understood that this separate indication of control and ownership may have other uses. In a similar manner, data B (item 904) may have associated with it, separate ownership B (item 905) and control B (item 906) information.
Figure 10 shows a process 1000 for of processing data in accordance with one embodiment of the invention. At block 1001, process 1000 begins. In a typical transaction involving a computer system 401 and provider system 402. system 401 transfers data owned by a user A (data A, item 901) along with its ownership 902 and control 903 information to provider system 402. At system 402, an agent interfaces with a process of the provider system, and performs a transaction using user data A at block 1003. As a result of performing the transaction, transaction data is produced at block 1004, the transaction data having its own ownership and control information generated at block 1005. Transaction data may indicate, for example, that both a user and the provider that generated the transaction data own the data. Alternatively, the ownership data may indicate that either the user or provider owns the transaction data. At block 1006, the transaction data is either stored at system 402, transferred back to system 401 , or both. At block 1007, process 1000 ends.
As discussed above, system 101 may include a natural language user interface (NLUI or simply NLI), through which a user requests information and performs other transactions. For instance, the user may provide input and receive output from graphical user interfaces 1101, 1201 such as that shown in Figures 11 and 12. In one case, the interface 1101 may prompt a user with a series of questions 1102, 1104, to which the user may respond. The questions may be multiple choice question format, of which a single selection of the choices is an appropriate response. However, as shown in Figure 12, the system 101 may present a general query interface on graphical user interface 1201, through which the user may pose natural language queries or responses to questions. For example, at line 1202, system 101 prompts the user to "Please enter a search (natural language or keyword)." At line 1203, the user provides a natural language response, asking system 101 "Where is the Houston Field House at RPI located?" The natural language interface may have, associated with it, a natural language analyzer which determines the meaning of the input provided. According to one embodiment of the invention, the natural language analysis system is the system shown in Figure 13 discussed in more detail below. The natural language analysis system finds the meaning of the request and determines the correct source of the information requested. For example, system 101 may issue one or more agents to perform the request. The agents may filter and format the result 1204, and return the result 1204 to system 101.
In general, a natural language analyzer that analyzes queries (hereinafter termed a "natural language query processor") may be part of computer system 101. This query processor may perform one or more analyzing steps on a received query, which is generally a string of characters, numbers, or other items. A long-standing goal in the field of information technology is to allow humans to communicate with computer systems in the natural languages of humans. However, because of the various ambiguous and implicit meaning found in natural language, queries are difficult for a computer system to inteφret precisely.
Most of the conventional methods for understanding natural language queries involve determining a method of understanding a user's natural language articulation by implementing various methods of artificial intelligence. There are several conventional approaches to limiting the naturalness of language so that the system could reduce the complexities of inteφretation and successfully process queries. They include (1) template-based approach [e.g., Weizenbaum, J. 1966, ELIZA-A Computer Program for the Study of Natural Language Communication between Man and Machine, Communications of the ACMWol. 9 No. 1 : pp. 36-44], (2) syntax-based approach [e.g., Waltz, D.L. 1978, An English Language Question Answering System for a Large Relational Database, Communications of the ACM Vol. 21 No. 7: pp. 526-539, Codd. E.F, RS.Arnold, J-M. Cadiou, C.L. Chang, and N. Roussopoulos, RENDEZVOUS Vesion 1 : An Experimental English Language Query Formulation System for Casual Users of Relational Data Bases, IBM Research Report RJ2144, 1978., Codd, E.F., How about Recently? (English Dialog with Relational Databases Using Rendezvous Version I). In B. Shneiderman (Eds). Databases: Improving Usability and Responsiveness, 1978, pp. 3-28.], (3) semantics-grammar-based approach [e.g., Hendrix, G.G. Sacerdoti, E.D. Sagalowicz, C. and Slocum, J. 1978, Development a Natural Language Interface to Complex Data, ACM Trans, on Database Systems Vol. 3. No. 2: pp. 105-147], (4) intermediate-representation-language-based approach [e.g., Gross, B.J. Appelt. D.E. Martin, P.A. and Pereira, F.C.N. 1987, TEAM: an Experiment in Design of Transportable Natural-Language Interfaces, A CM Transactions Vol. 32: pp. 173-243], and (5) semantics-model-based approach [e.g., Janus, J.M. 1986, The Semantics-based Natural Language Interface to Relational Databases, in L. Bole and M. Jarke (Eds),
Cooperative Interfaces to Information Systems, pp. 143-187. New York: Springer-Verlag Janus, J.M. 1986, The Semantics-based Natural Language Interface to Relational Databases, in L. Bole and M. Jarke (Eds). Cooperative Interfaces to Information Systems, pp. 143-187. New York: Springer-Verlag, Motro, A. 1990, FLEX. A Tolerant and Cooperative User Interface to Databases, IEEE Transactions on Knowledge and Data Engineering. Vol. 2 No. 2: pp. 231-246, Guida, G. and Tasso C. 1982. NLI: A Robust Interface for Natural Language Person-Machine Communication, Int. J. Man- Machine Studies Vol.17: pρ.417-433]. These conventional approaches differ in the way each controls the input and in the extent to which each exerts the control on the user. The first four approaches ( 1 ) - (4) require users to articulate only in the natural language forms that the system provides ~ or at least they assume that the user's articulation is consistent with these underlying forms. When this basic requirement or assumption does not hold in practice, the system would fail to function properly (e.g., with poor performance and low accuracy), or even fail altogether. These forms typically feature some generic, linguistic prototype consisting of only one single sentence per query. Thus, their advantage is that the resultant NLI is easily portable from one database system to another. The disadvantage is the restriction on naturalness of the input from the user. The last approach (5) essentially embraces a different priority, placing naturalness ahead of portability (i.e.. coupling a particular NLI design with a particular domain of application, but allowing free-format text as input). If the first four approaches are top-down in their relying on the computer's direct understanding of the user's articulation, the last one could be considered as the computer's exhausting of all possible inteφretations from the bottom up.
The basic strategy of system (1) - (5) is to provide a semantic model or a dictionary as the roadmap for generating possible inteφretations. These systems assume that the users always query databases known to the system, thus the NLI could be tuned according to this known information. According to one embodiment of the invention, it is recognized that, under this assumption, users are bound to refer, either directly or indirectly, to these known database objects (types or semantic models, instances or values, and operators) in their natural queries. If they do not use directly these database objects, they have to articulate their query in terms of other significant words and phrases (hereinafter referred to as "keywords") that correspond to these objects. Thus, the domain of inteφretation is finite, compared to natural language processing in general. Semantic model is a form of keywords and a dictionary is a more extensive collection of keywords beyond a usual semantic model. The critical success factor of this approach is clearly the semantic model-dictionary employed, which must be powerful enough to span efficiently the space of possible usage of natural language in the domain. Because database objects can only be a grossly simplistic portion of the natural vocabulary, keywords must shoulder the burden of representing naturalness. Their number could increase exponentially as the number of users and usage patterns increase. Figure 13 shows a natural language query processor 1301 according to one embodiment of the invention. Processor 1301 receives a natural language query 1302 and a plurality of database objects 1304A, and produces a query result 1303. The natural language query may be, for example, a paragraph, a sentence, sentence fragment, or a plurality of keywords. The query result may be any information that is relevant to the combination of database objects 1304A and query 1302. According to one embodiment, the natural language query 1302 is mapped to the plurality of database objects 1304A using a reference dictionary 1308 comprising keywords 1309, case information 1310, information models 1311, and database object values 1304B. An advantage of this mapping is that less-capable processing hardware is needed to perform the mapping than traditional natural language processing algorithms such as those cited above, because the number of keywords that needs to be recognized and searched by the system is reduced. This advantage enables, for example, use of such an NLI on portable device 201 as shown in Fig. 2. Also, because the system 201 may be allocated to a single user, and processor 1301 is capable of learning using case-based learning, processor 1301 may become more accurate for the particular user.
It should be understood that other natural language query processors may be used. In general, natural language processors are well-known, and functions they perform are described in more detail in the book entitled Natural Language Understanding, by James Allen, Benjamin/Cummings Publishing Company, Inc., Redwood City, CA, 1994, herein incoφorated by reference. Other natural language query processors are discussed in the journal articles and books cited above.
According to one embodiment of the invention as shown in Fig. 13, query processor 1301 includes a reference dictionary object identifier 1305 that parses query 1302 and generates one or more objects recognized in the reference dictionary 1308. Reference dictionary object identifier 1305 also identifies words that are meaningful in the reference dictionary 1308 and eliminates useless or unmeaningful words. Processor 1301 also accepts and processes a number of database objects 1304 A. As discussed, processor 1301 may have an associated reference dictionary 1308 that includes keywords 1309, case information 1310, information models 1311 and one or more database objects 1304B. Keywords 1309 may be, for example, a set of keywords and their combinations generated from the plurality of database objects 1304A, which includes one or more objects 1314A-1314ZZ. Keywords 1309 may also be "learned" from a user through performing queries, or may be provided through a separate keyword administrator interface associated with query processor 1301.
Query processor 1301 also includes an inteφreter and dictionary processor 1307 that receives objects identified by the reference dictionary object identifier 1305 and determines an optimal inteφretation of the received objects. More specifically, processor 1307 determines optimal inteφretations of the received objects, resolves ambiguities, updates information models 1311, and interacts with users to facilitate learning. Processor 1307 utilizes rules 1312 and heuristics 1313 to resolve ambiguities in determining the optimal inteφretation of query 1302. Rules 1312 and heuristics 1313 may relate to information models 1311, which are in turn related to keywords 1309, cases 1310, and database objects 1304B in a semantic manner. When there are ambiguities in the inteφretation of objects, e.g. multiple possible inteφretations, multiple permissible combinations of meaningful objects, etc., rules 1312 and heuristics 1313 related to these objects are used to reduce or resolve these ambiguities. Mapping processor 1306 performs a mapping between incoming objects and database objects 1304A. In particular, processor 1306 may generate database queries from the objects and the inteφretations provided by identifier 1305 and processor 1307, respectively. Processor 1306, may, for example, generate SQL queries used to locate database objects 1304A. These queries may be executed by an SQL search engine, and processor 1301 may provide query result 1303 to user through, for example, a graphical user interface.
The literature on NLI clearly indicates that establishing a complete set of keywords is a key factor in handling ambiguity. However, according to one aspect of the invention, additional information beyond keywords are used to determine the meaning of the input query. This additional information makes it possible to use a collection of keywords far smaller than those required by the prior art. Particularly, there are four layers of resources comprising a data dictionary that are used to relate an incoming query 1302 to database object 1304A; i.e., cases 1310, keywords 1309, information models 1311, and database object values 1308B. These resources may be integrated through an extensible metadata representation method so that every piece of resources references to all other related resources in a semantically-based graphic. For instance, a keyword 1309 points to the semantic subject(s) it refers to, which points in turn to entities, relationships, and items pertaining to the subject(s), and ultimately to database object values 1304B. The keywords 1309 also connect to cases 1310 involving them. The core of the reference dictionary (information model, initial keywords, and database structure) maybe, for example, a design-time product, developed by the analysts, designers, and users. Cases and additional keywords, metadata (e.g., changes to the information model) and database values may be added during operation of the system, and thus the system ages and evolves. A learning mechanism allows richer keywords and cases to provide more accurate performance. The reference dictionary enables a computer system to recognize a feasible region of inteφretations of the input query 1302 and evaluate them. The reference dictionary 1308 also serves as the basis for interaction with the user (identifying needs and generating meaningful reference points) and acquisition of lessons (determining additional keywords and cases) - i.e.. the reference dictionary may be used to assist the user in learning.
Reference dictionary has four fundamental attributes, as compared to conventional systems: it generates search-ready graphics-based representation of all four layers of resources; it supports learning; it simplifies keywords, and it assures complete inteφretations of natural queries. Regarding the last two points, the inclusion of information models 1311 and case information 1310 reduces the volume of keywords 1309 needed to reduce the first two sources of ambiguity. For example, consider a natural articulation in the form of a short essay. If the essay consists of n words of which m are database objects or other recognized dictionary entries, there could be n/m words associated with each known term. These n/m words become the candidate keywords for the term. When including phrases (grouping of words), there could be, in theory, up to m*(n/m)! new keywords implied from the short essay. It is desired to increase the number m (hits) because the bigger m becomes, the fewer (exponentially) the possible groupings of words becomes, thus resulting in fewer new keywords to consider or to add to the dictionary.
Properly-developed information models 1311 having rich semantics provide a large m for the initial design of keywords, and increase the chance of subsequent "hits" (their use in queries) in practice resulting in less ambiguity, less possible inteφretations to search, and less new keywords needed. Case information 1310 do not directly change m, but do help in resolving some ambiguity and hence still helps reducing the need for new keywords. Information models 1311 and cases 1310 represent a tightly structured, efficient kernel of meaning with which the users are familiar and tend to use more frequently in their articulation with respect to the particular databases. In addition, information models 1311 and case information 1310 also contribute to resolving another type of ambiguity. In particular, they identify the possible missing information for incomplete input, by examining the graphics of the reference dictionary. Therefore, a reference dictionary determines more accurately and quickly than conventional systems a complete set of possible inteφretations for queries articulated in a natural language format.
The basic logic of solution of the search and learn approach according to one embodiment of the invention will now be described. Given a reference dictionary R = {C, K, M, D}, representing respectively the sets of cases C, keywords K, information models M, and database values D, a method for searching according to one embodiment of the invention is as follows:
Step 1: Identify all words and phrases in the input natural language query 1302 that also belong to R. Denote this set of elements I (including possibly elements from K, M or
D).
Step 2: Determine all possible, complete paths implied by I that span all input elements and query 1302 and belong to the overall graphics of R. These paths might include additional elements inferred from the reference dictionary in order to complete the paths. A complete path includes elements (original or inferred) in M and D. Each path corresponds to a particular inteφretation of the original query.
Step 3: Search for the best inteφretation by using some rules and heuristics of search. If multiple possible solutions exist, then use the elements in C that are associated with elements of I to resolve the ambiguity. Step 4: Map the result to the database query language. Obtain the results of query and confirm them with the user.
Note that a learning mechanism may be engaged to interact with the user whenever the result provided at each step is insufficient. The outcome of the learning is stored in the system 1301 as new cases and keywords added to C and K, respectively. Also, note that each step allows for a wide range of possible strategies and algorithms to implement it. Reference dictionary 1308 may also be based on the metadatabase model described in the aforementioned metadatabase references. In particular, a reference dictionary having a model that integrates four different types of enteφrise metadata may be used. These metadata types include: database structure, semantic model, application, and software resource. The model may be used to form a core of the reference dictionary, and this core may be extended to include other three layers: keywords, cases and database values, and hence form the integrative (connected) structure of the reference dictionary. The other benefits of using this model includes its capability to incoφorate rules and to support global query processing across multiple databases. A modeling system helps the development and creation of the metadatabase.
A structure of an example reference dictionary 1401 is shown in Figure 14. Each object in the figure represents either a table of metadata (in the case of square icon and diamond icon), or a particular type of integrity control rules (in the case of double diamond and broken diamond). These metadata include subjects and views, entity- relationship models, contextual knowledge in the form of rules, application and user definitions, database definitions and values, keywords, and cases.
Keywords, as noted above, are the natural words and phrases users use to refer to database objects and information model elements in natural articulation. They could represent instances, operators, items (attributes), entities, relationships, subjects, and applications. A keyword according to one embodiment of the invention is defined as an ordered pair of (class, object). Classes include Application. Subject. EntRel (entity- relationship), Item, Value, and Operator; all of which are metadata tables shown in Figure 14. Objects are instances (contents) of these classes. Because a hierarchy of objects in the core structure of the reference dictionary is Item-EntRel-Subject- Application, an object can be identified by an ordered quadruple (Item name, EntRel name, Subject name, Application name). In the model, however, each object has a unique identifier, thus the ordered quadruple is not needed to uniquely identify each object. It should be understood that any method for identifying objects may be used. A case in case-based reasoning paradigm typically includes three components: problem definition, solution, and its outcome. New problems would use the problem definition to find the (best) matching cases and apply the associated solutions to them. The third component is useful when the domain knowledge is incomplete or unpredictable. In this research, the reference dictionary contains complete domain knowledge needed, thus, we expand the problem definition but drop outcome. The system uses cases to resolve ambiguity in the recognition of meaningful terms (i.e., user's natural terms that are included in the reference dictionary) in the input and to help determine the solution among multiple possible inteφretations. Thus, the case structure includes case-id, case-type, choices, context, and solution. For the type of resolving term ambiguities, a set of known terms describes the context (for problem definition). User's selection among possible choices of the meaningful term defines the solution. For the inteφretation ambiguities type, a set of known elements of the information model describes the context, possible paths in the information model define the choices, and user's selection solution.
The resources (entries) of the reference model are connected in two ways. Recall that the structure shown in Figure 14 is a meta-schema representing the types and organization of all enteφrise metadata. Thus, the elements of information models are metadata instances stored in some of the meta-entities (squares) and meta-relationships (diamonds) of the structure. These model elements are themselves connected internally in terms of their entity-relationship semantics. They are also connected externally to other types of resources including database values, keywords, and cases through the meta-schema. Keywords and cases are connected to information models and database values through particular meta-relationships. In other words, elements of information models (subjects, entities, relationships, and items) and keywords are linked to the * database objects they represent. Therefore, the reference dictionary contains sufficient knowledge to determine the database objects involved and required for all queries defined sufficiently in information model elements or keywords.
Each sufficient statement corresponds to a complete and unique path (connection) of these elements and their corresponding database objects. (An SQL-like style database called MSQL may determine the shortest path when alternative paths exist. MSQL is discussed further in the journal entitled The Model-Assisted Global Query System for Multiple Databases in Distributed Enteφrises, ACM Trans. Information Systems, 14:4, October 1996, pp. 421-470.) These complete paths represent the system's inteφretations of users' queries. Ambiguity exists when a statement is insufficient such that there are conflicting inteφretations - multiple paths leading to different database objects - for the query. These multiple paths could be the result either from providing incomplete elements or from providing conflicting elements implied in the input, or both. Such are the cases easily taking place with truly natural articulation of database queries.
There are several different ways to handle ambiguity. First, the system employs a rich information model to maximize the chance with which the users would naturally choose its elements in their articulation. Second, the system uses keywords to capture the words in the natural articulation that the information model misses. It is worthwhile to reiterate that the information model is the roadmap (together with database values) for developing keywords at design time. These keywords represent multiple natural equivalents of terms used in the information model (and database values). As explained above, a rich information model not only lessens the burden of "scoring hit" on the keywords, it also greatly reduces the complexity of adding new keywords at the run time. Third, it accumulates cases of usage from actual operation and applies them to resolve remaining ambiguity when both information model and keywords are insufficient for a query. Interaction with the users is the last measure to sufficiently close the loop and finish the job. The NLI systematically involves users to provide the final resolution of ambiguity and confirmation of the result if needed. This learning also generates new cases and keywords and enhances the old cases.
Added to this basic logic is particular search strategies and additional search knowledge. Search includes the identification of all possible paths-inteφretations (when ambiguity exists) and the evaluation of them. A search algorithm could follow a branch- and-bound strategy to minimize the space of search (limiting the number of possible paths to search). The development of bounds and branching rules would require a way to evaluate a given path with respect to the original natural query. A method for eliminating paths may also be used; that is, the system could infer contradiction based on the information model and perhaps operational rules (contextual knowledge) the reference dictionary contains. A method of optimization - inferring goodness of fit for the user - could be performed. Information about user's profile, concerned applications, and past cases are among the metadata that could be used form a basis to identify the most probable inteφretations. Elimination is more conservative, but robust, than optimization because elimination places safety (correctness) first.
Three progressive levels of search and learn capabilities may be used. First, the system develops the most efficient way to enumerate all possible inteφretations for a natural query (i.e., design a powerful reference dictionary). Second, it will develop evaluation methods to improve the performance of search (i.e., eliminate more paths early in the search process) over the basic method. Finally, the system also proactively suggests the best inteφretation for the user (i.e., develop case-based reasoning and other heuristics). Learning methods may accompany these search strategies at all levels. The above ideas are illustrated below with a brief example.
Consider a Computer-Integrated Manufacturing system consisting of three databases: order processing, process planning, and shop floor control. Suppose the system used the well-known TSER - Two Stage Entity-Relationship method (whose constructs include Application-Subject-Context-Entity-Relationship-Item described more in detail in the journal article entitled Paradigm Translations in Integrating
Manufacturing Engineering Using a Meta-Model: the TSER Approach, by Cheng Hsu et al., J. Information Systems Engineering, 1:1, September 1993, pp. 325-352) to develop their information models and created a reference dictionary. These models became metadata instances stored in certain meta-entities and meta-relationships according to Figure 1. The system had also included proper keywords and cases and stored them along with all database objects. Now, suppose a user made the following sample request, a problem of NLI: An enteφrise user of a Computer-Integrated Manufacturing database could query the system such as: "I have asked you many times and I still have not heard a clear answer. Listen, I would like to know the status of my order. I want to know what models you have started working on and how many of them you have completed. I placed this order, I believe, sometime around the 20th of last December. Could you please help? Thanks."
A text scanning and information retrieval algorithm (described further below) may generate the result shown in Table 1.
Figure imgf000043_0001
Table 1: Recognized Terms and Possible Inteφretations
Ambiguity exists at terms "Order" and "Models" because each has multiple inteφretations identified from the reference model. Otherwise, the result is definitive (forming a unique overall path) and could be mapped to the Metadatabase Query Language (MQL).
In this particular query, the information model would be sufficient to sort out the ambiguity and suggest a unique, optimal inteφretation for these terms, and hence for the natural query. Still, cases could also be used either to confirm or to assist the resolution of ambiguity. However, there may be another kind of ambiguity in the input; the user indicated "around" 20th of last December in the original natural query. Because of this ambiguity, the user may find the final answer less than satisfactory. The system generally would have no method for inteφreting correctly this piece of input since the user herself was ambivalent about it. There may be, in this instance, no proper solution other than to leaving the inteφretation to the user. The final answer (based on 12/20/1999) may represent the best point estimation for the user's fuzzy interval of possibilities. The user would be presented with a chance to comment on this estimate and to request new dates for another query if wanted. Interaction with the user concerning this estimate, in its own right, could add valuable cases to the system so that it could provide more help for uncertain users when the term "around" is encountered in a following query, which is also a part of learning.
The following is an example algorithm for identifying meaningful terms: Let m = number of words of input string Let OrderedTerm = () Let n = 1
Do while (n <= m) Search in OrderedTerm for Input Substring starts at n-th position
If (Term is found with length I), Then
Let n = I + 1 Else Search in the dictionary for Input Substring starts at n-th position
If (Term is found with length I), Then
Let Term = l-words string Retrieve meaning sets of the Term Insert OrderedTerm with the Term
Let n = I + 1 Else
Let n = n + 1 End if End if
End do while
The application of cases - i.e., matching a query with a case - is based on the vector space model as is known in the art. Two binary vectors represent a case (C) and a query (Q); and their COSINE measure indicates the goodness of fit. Below is an algorithm applying cases to the resolution of ambiguity in terms.
Retrieve cases containing the similar situation
If there are retrieved cases,
Then
Let sιmιlar_value = 0 For each retrieved case
Let the base set for meaning space = set of meaning of terms of query For each meaning of case
Update the base set End for each Form a term space as an ordered n-tuples of terms /* n is a number of terms in the base set */
Form a binary vector for query (Q) corresponding to the meaning space Form a binary vector for case (C) corresponding to the meaning space Compute COSINE similarity COSINE (Q, C) = (Q C)/(|Q|)(|C|) If COSINE (Q, C) > sιmιlar_value, Then
Let the solution case = the current case Let sιmιlar_value = COSINE (Q,C) End if End for each If sιmιlar_value > accepted_value,
Then
Determine the meaning of the ambiguous term from the solution case End if End if
Finally, when ambiguities are resolved, the complete list of path information becomes the sufficient input for the underlying database query language. In this example, we show the MQL statements, which may function on top of a standard SQL facility.
FROM OE/PR O_SEQ GET STATUS FROM SUBJECT ORDER GET CUST_ORDER_ID, DATE_DESIRED,
OD_STATUS, CUST_ID, ORDER_LINE_ID, PART_ID, QUANTITY,
DATE_SCHED, OI_STATUS, DESCRIPTION, COST FROM OE/PR WK_ORDER GET NUM_COMPLETED FOR STATUS = ' START WORKING ON'
AND DATE_DESIRED ='12/20/1999';
The mapping would perform processing in order to determine the GET lists and some conditions (such as AND/OR). However, at this point, the reference model would have all information needed to perform the query.
Having now described a few embodiments of the invention, it should be apparent to those skilled in the art that the foregoing is merely illustrative and not limiting, having been presented by way of example only. Numerous modifications and other embodiments are within the scope of ordinary skill in the art and are contemplated as falling within the scope of the invention as defined by the appended claims and equivalents thereto.

Claims

1. A method for performing a transaction involving data provided by a first entity to a second entity over a distributed communications network, the method comprising: maintaining the data, wherein the data is associated with the first entity; and controlling distribution of the data to the second entity by the first entity.
2. The method according to claim 1, wherein the first entity is a person.
3. The method according to claim 1, wherein the first entity is a company.
4. The method according to claim 1, wherein the second entity is a computer system controlled by at least one of the group comprising: a person; an association of people; a business; and a group of businesses.
5. The method according to claim 1, wherein the first entity controls access information sufficient to perform a transaction.
6. The method according to claim 1, further comprising a step of controlling ownership, by the first entity, to the associated data.
7. The method according to claim 1, wherein the data associated with the first entity includes at least one preference of the first entity.
8. The method according to claim 7, wherein the at least one preference is determined by a transaction conducted by the first entity.
9. The method according to claim 1, further comprising a step of collecting, by the first entity, a history of one or more transactions performed by the first entity, and determining at least one preference of the first entity based on the history of one or more transactions.
10. The method according to claim 1 , further comprising creating, as a result of a transaction, data owned by at least one of the group including: the first entity; the second entity; and both the first and second entity.
11. The method according to claim 9, further comprising maintaining ownership information indicating ownership of the data.
12. The method according to claim 9, wherein the data is owned by both the first and second entity, and the ownership information indicates only joint ownership information.
13. The method according to claim 10, wherein the data includes at least one preference derived from data associated with the first entity.
14. The method according to claim 13, wherein the at least one preference is derived from data associated with other entities.
15. The method according to claim 14, wherein the other entities are other users in a user community, and wherein the data associated with other entities includes behavior and preference data associated with the other users.
16. A method for performing transactions over a distributed communications network involving at least one person, the method comprising: maintaining, by the at least one person, data owned by the at least one person; and controlling, by the at least one person, distribution of data at least one entity over the distributed network.
17. The method according to claim 16, further comprising a step of providing a subset of the data sufficient to perform a transaction.
18. The method according to claim 16, further comprising a step of controlling ownership of the data by the at least one person.
19. The method according to claim 16, further comprising a step of creating, as a result of executing a transaction, data owned by at least one of the group of: the person; the at least one entity; and both the person and the at least one entity.
20. A method for maintaining ownership and control of data, comprising: operating a computer system having a plurality of processes, and wherein at least one of the processes executes as a user process; indicating, for data accessed by the at least one process, ownership of the accessed data; and indicating, for the data accessed by the at least one process, control of the accessed data wherein indication of ownership and indication of control are independent.
21. The method according to claim 20, wherein an indication of ownership includes at least one of a group including: a first person, wherein the data is personal data of the first person; a first group, wherein the first person is a member of the first group and the first person accesses the data through the computer system; automatic transfer of ownership of data, wherein a receiver of data including at least one of the first person or first group attains automatic ownership of the data; and wherein an indication of control includes at least one of a group including: the first person; a second person, wherein the second person accesses the data using a computer system; the first group; a second group wherein the second person is a member of the second group and accesses the data through the computer system; and a system.
22. The method according to claim 21, wherein the indication of ownership further comprises indicating that the data has no owner.
23. The method according to claim 21, wherein at least one of the second person or the second group, upon receiving the data, attains ownership of the data.
24. The method according to claim 21, wherein at least one of the second person or second group attains ownership of the data based upon a predetermined relationship between an owner of the data and the at least one of the second person or the second group.
25. The method according to claim 24, wherein the predetermined relationship is an employer-employee relationship, wherein the owner is an employee, and the at least one of the second person or the second group is an employer.
26. The method according to claim 24, wherein the predetermined relationship is a legal relationship that obligates the owner of the data to relinquish ownership of the data to the at least one of the second person or the second group.
27. A method for maintaining ownership and control of data, comprising:
(a) operating, by a person, a computer system, wherein the computer system is configured to operate upon the data;
(b) indicating ownership of the data; and
(c) indicating, independently from (b) an indication of control of the data.
28. The method according to claim 27, wherein the steps (b) and (c) both include indicating, in the data, ownership and control of the data.
29. The method according to claim 27, further comprising transferring the data between first and second entities, and, as a result of a processing of the data, creating second data having an ownership by at least one of the group including: the first entity; the second entity; and both the first and second entity.
30. The method according to claim 27, further comprising transferring the data between first and second entities, and providing control of the data by at least one of the group including: the first entity; the second entity; and both the first and second entity.
31. The method according to claim 27, further comprising transferring the data between first and second entities, and wherein steps (b) and (c) both include indicating, in the data, ownership and control of the data.
32. A portable device for storing personal information of a user and conducting transactions using the personal information, the device comprising: a database of personal information; and an interface that transmits the personal information to an external entity to facilitate a transaction, wherein the interface controls what personal information is transmitted.
33. The device according to claim 32, wherein the personal information is personal preferences in goods and services, and the device inteφrets the personal information to determine marketing information to be presented to the user.
34. The device according to claim 32, wherein the interface further comprises a shell that permits or denies personal data to be distributed to an external entity.
35. The device according to claim 32, wherein the interface further comprises a shell that filters unwanted data from being received by the device.
36. The device according to claim 34, wherein a minimum amount of personal data is distributed to conduct a transaction with the external entity.
37. The device according to claim 34, wherein the shell is a software program executing on the portable device.
38. The device according to claim 35, wherein the shell is a software program executing on the portable device.
39. The device according to claim 32, further comprising a database of information relating to the use of the personal information.
40. The device according to claim 32, further comprising subsystems distributed in at least one of:
(a) one or more personal computers; and
(b) one or more network servers; and both (a) and (b).
41. The device according to claim 39, wherein the database of information relating to the use of the personal information includes at least one rule governing at least one of use access, and management of the personal information.
42. The device according to claim 41, wherein the database of information relating to the use of the personal information further comprises rules governing distribution of the personal information to external entities.
43. The device according to claim 42, further comprising a plurality of agents configured to support conducting transactions between a user of the device, wherein the plurality of agents control distribution of the personal information to the external entities.
44. The device according to claim 32, wherein the personal device cooperatively distributes the personal information among one or more trusted systems.
45. A method of accessing personal information of a user on a personal device, comprising steps of: establishing a communication link between the device and an external system; transferring the personal information to the external system to facilitate a transaction; and storing information related to the transaction on the personal device.
46. The method according to claim 45, wherein the personal data includes medical records, and the information related to the transaction is medical treatment information.
47. The method according to claim 45, wherein the personal data includes financial records, and the information related to the transaction is financial transaction information.
48. The method according to claim 45, wherein the step of transferring includes transferring a minimum amount of personal data sufficient to conduct the transaction with the external system.
49. The method according to claim 45, further comprising a step of selecting personal data to be transferred by the step of transferring based on a minimum set of information needed to conduct the transaction.
50. The method according to claim 45, further comprising a step of storing, on a second external system, overflow personal information.
51. The method according to claim 45, further comprising steps of transferring the personal information to an intermediate system and generating an agent that performs the transaction on behalf of the user.
52. A method for managing personal data comprising: storing, on a portable device, personal data owned by a user; and controlling, by the user, distribution of the data to other entities over a communications network, wherein the personal data is distributed among the portable device and a plurality of general-puφose computers, the general-puφose computers being used to store overflow information.
53. The method according to claim 52, wherein at least one of the plurality of general-puφose computers is a personal computer operated by the user.
54. The method according to claim 52, further comprising filtering unwanted data from being received by the device.
55. The method according to claim 52, further comprising allowing personal data to be communicated to another entity, the communicated personal data being sufficient to support a transaction.
56. The method according to claim 54, wherein the communicated personal data is a minimum amount of data sufficient to support the transaction.
57. The method according to claim 54, further comprising denying, communication of information unnecessary for performing the transaction.
58. The method according to claim 52, wherein the step of controlling is performed cooperatively between the portable device and general-puφose computer.
59. The method according to claim 57, further comprising communicating the personal data with a server system, and generating, by the server system, an agent configured to control and transmit the personal data to the other entities.
60. The method according to claim 52, further comprising storing, on at least one of the plurality of general-puφose computers, personal data related to a community of which the user is associated.
61. The method according to claim 52, further comprising providing an interoperating distributed software system, the system being distributed among the portable device and plurality of general-puφose computers.
62. The method according to claim 52, further comprising providing, among the portable device and plurality of general-puφose computers, a common interface to the user.
63. The method according to claim 52, further comprising providing, among the portable device and plurality of general-puφose computers, a common interface to application software programs.
64. The method according to claim 52, further comprising storing, managing, and processing rules and agents to facilitate transaction conducted by the portable device and plurality of general-puφose computers.
65. A method for managing personal data comprising: storing, on a first system, personal data owned by a user; receiving and executing, at the first system, an externally-generated program configured to transfer information to second system; and controlling, by the user, distribution of the personal data to the second system.
66. The method according to claim 65, wherein the externally-generated program is a software cookie.
67. The method according to claim 65, wherein the personal data owned by a user includes behavior information of the user.
68. The method according to claim 65, wherein the step of controlling further comprises allowing access, to the externally-generated program, to a minimum amount of personal data.
69. The method according to claim 65, wherein the step of controlling includes allowing a user to benefit from the externally-generated program while limiting an amount of personal data accessed by the program.
70. A method for performing a transaction in a distributed network comprising: generating, by a computer system coupled to a communications network, a software agent configured to exchange data to support a transaction; and exchanging the data with one or more other systems coupled to the communications network, wherein the agent provides a minimum amount of data to support the transaction.
71. The method according to claim 70, wherein the software agent is comprised of a plurality of base agents and the step of generating comprises generating the plurality of base agents that comprise the software agent.
72. The method according to claim 71, wherein at least one of the plurality of base agents is generated by another base agent.
73. The method according to claim 71, further comprising maintaining identification of each of the plurality of base agents and managing the identifications in a database.
74. The method according to claim 73, further comprising managing creation and deletion of agents.
75. The method according to claim 74. further comprising re-using existing agents to form new agents.
76. The method according to claim 70, wherein the computer system includes at least three devices functioning as a single manager of data including: a portable device; a system configured to connect to the portable device and store overflow information; and a server system configured to dispatch the software agent to the one or more other systems coupled to the communication network.
77. A method for interfacing a portable device to a user comprising: providing a natural language query input to the user; performing, based on the input, a search of one or more language-based databases; and providing, through an interface of the portable device, a result of the search.
78. The method according to claim 77, further comprising a step of identifying, for the one or more language-based databases, a finite number of database objects, and determining a plurality of combinations of the finite number of database objects.
79. The method according to claim 78, further comprising a step of mapping the natural language query to the plurality of combinations.
80. The method according to claim 79. wherein the step of mapping comprises steps of: identifying keywords in the natural language query; and relating the keywords to the plurality of combinations.
81. The method according to claim 79, further comprising a step of determining a reference dictionary comprising: case information; keywords; information models; and database values.
82. The method according to claim 79, wherein the step of mapping further comprises resolving ambiguity between the keywords and the plurality of combinations.
83. The method according to claim 82, wherein the step of resolving includes determining an optimal inteφretation of the natural language query using at least one of a group comprising rules and heuristics.
PCT/US2000/009265 1999-04-07 2000-04-07 System and method for accessing personal information WO2000060435A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12821999P 1999-04-07 1999-04-07
US60/128,219 1999-04-07

Publications (2)

Publication Number Publication Date
WO2000060435A2 true WO2000060435A2 (en) 2000-10-12
WO2000060435A3 WO2000060435A3 (en) 2001-04-12

Family

ID=22434238

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/009265 WO2000060435A2 (en) 1999-04-07 2000-04-07 System and method for accessing personal information

Country Status (1)

Country Link
WO (1) WO2000060435A2 (en)

Cited By (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2366051A (en) * 2000-05-02 2002-02-27 Ibm Method for private data access or use based on related public data
EP1237105A1 (en) * 2001-02-16 2002-09-04 Abb Research Ltd. Method for storing and retrieving user preferences
EP1389399A1 (en) * 2001-05-21 2004-02-18 Nokia Corporation A method, system, and apparatus for providing services in a privacy enabled mobile and ubicom environment
EP1440356A2 (en) * 2001-05-21 2004-07-28 Nokia Corporation Method and apparatus for managing and enforcing user privacy
US7047202B2 (en) * 2000-07-13 2006-05-16 Amit Jaipuria Method and apparatus for optimizing networking potential using a secured system for an online community
US8296333B2 (en) 1998-02-24 2012-10-23 Luc Bessette System and method for electronically managing medical data files
US8423347B2 (en) 2006-06-06 2013-04-16 Microsoft Corporation Natural language personal information management
US9031860B2 (en) 2009-10-09 2015-05-12 Visa U.S.A. Inc. Systems and methods to aggregate demand
US9053089B2 (en) 2007-10-02 2015-06-09 Apple Inc. Part-of-speech tagging using latent analogy
US9075783B2 (en) 2010-09-27 2015-07-07 Apple Inc. Electronic device with text error correction based on voice recognition data
US9190062B2 (en) 2010-02-25 2015-11-17 Apple Inc. User profiling for voice input processing
US9300784B2 (en) 2013-06-13 2016-03-29 Apple Inc. System and method for emergency calls initiated by voice command
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9535906B2 (en) 2008-07-31 2017-01-03 Apple Inc. Mobile device having human language translation capability with positional feedback
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
US9620104B2 (en) 2013-06-07 2017-04-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US9626955B2 (en) 2008-04-05 2017-04-18 Apple Inc. Intelligent text-to-speech conversion
US9633674B2 (en) 2013-06-07 2017-04-25 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9646614B2 (en) 2000-03-16 2017-05-09 Apple Inc. Fast, language-independent method for user authentication by voice
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9679299B2 (en) 2010-09-03 2017-06-13 Visa International Service Association Systems and methods to provide real-time offers via a cooperative database
US9691085B2 (en) 2015-04-30 2017-06-27 Visa International Service Association Systems and methods of natural language processing and statistical analysis to identify matching categories
US9691383B2 (en) 2008-09-05 2017-06-27 Apple Inc. Multi-tiered voice feedback in an electronic device
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US9697520B2 (en) 2010-03-22 2017-07-04 Visa U.S.A. Inc. Merchant configured advertised incentives funded through statement credits
US9697822B1 (en) 2013-03-15 2017-07-04 Apple Inc. System and method for updating an adaptive speech recognition model
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
US9760905B2 (en) 2010-08-02 2017-09-12 Visa International Service Association Systems and methods to optimize media presentations using a camera
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9799078B2 (en) 2010-03-19 2017-10-24 Visa U.S.A. Inc. Systems and methods to enhance search data with transaction based data
US9798393B2 (en) 2011-08-29 2017-10-24 Apple Inc. Text correction processing
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US9841282B2 (en) 2009-07-27 2017-12-12 Visa U.S.A. Inc. Successive offer communications with an offer recipient
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9922642B2 (en) 2013-03-15 2018-03-20 Apple Inc. Training an at least partial voice command system
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9947020B2 (en) 2009-10-19 2018-04-17 Visa U.S.A. Inc. Systems and methods to provide intelligent analytics to cardholders and merchants
US9946706B2 (en) 2008-06-07 2018-04-17 Apple Inc. Automatic language identification for dynamic text processing
US9953088B2 (en) 2012-05-14 2018-04-24 Apple Inc. Crowd sourcing information to fulfill user requests
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9966068B2 (en) 2013-06-08 2018-05-08 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US9971774B2 (en) 2012-09-19 2018-05-15 Apple Inc. Voice-based media searching
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10007915B2 (en) 2011-01-24 2018-06-26 Visa International Service Association Systems and methods to facilitate loyalty reward transactions
US10019994B2 (en) 2012-06-08 2018-07-10 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10055745B2 (en) 2010-09-21 2018-08-21 Visa International Service Association Systems and methods to modify interaction rules during run time
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10078487B2 (en) 2013-03-15 2018-09-18 Apple Inc. Context-sensitive handling of interruptions
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10089630B2 (en) 2010-04-23 2018-10-02 Visa U.S.A. Inc. Systems and methods to provide offers to travelers
US10089072B2 (en) 2016-06-11 2018-10-02 Apple Inc. Intelligent device arbitration and control
US10102359B2 (en) 2011-03-21 2018-10-16 Apple Inc. Device access using voice authentication
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10185542B2 (en) 2013-06-09 2019-01-22 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10199051B2 (en) 2013-02-07 2019-02-05 Apple Inc. Voice trigger for a digital assistant
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10223707B2 (en) 2011-08-19 2019-03-05 Visa International Service Association Systems and methods to communicate offer options via messaging in real time with processing of payment transaction
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10269345B2 (en) 2016-06-11 2019-04-23 Apple Inc. Intelligent task discovery
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10283110B2 (en) 2009-07-02 2019-05-07 Apple Inc. Methods and apparatuses for automatic speech recognition
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10290018B2 (en) 2011-11-09 2019-05-14 Visa International Service Association Systems and methods to communicate with users via social networking sites
US10297253B2 (en) 2016-06-11 2019-05-21 Apple Inc. Application integration with a digital assistant
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US10318871B2 (en) 2005-09-08 2019-06-11 Apple Inc. Method and apparatus for building an intelligent automated assistant
US10339554B2 (en) 2010-06-04 2019-07-02 Visa International Service Association Systems and methods to provide messages in real-time with transaction processing
US10354267B2 (en) 2009-07-27 2019-07-16 Visa International Service Association Systems and methods to provide and adjust offers
US10356243B2 (en) 2015-06-05 2019-07-16 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10354011B2 (en) 2016-06-09 2019-07-16 Apple Inc. Intelligent automated assistant in a home environment
US10354268B2 (en) 2014-05-15 2019-07-16 Visa International Service Association Systems and methods to organize and consolidate data for improved data storage and processing
US10360591B2 (en) 2011-09-20 2019-07-23 Visa International Service Association Systems and methods to process referrals in offer campaigns
US10360627B2 (en) 2012-12-13 2019-07-23 Visa International Service Association Systems and methods to provide account features via web based user interfaces
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US10381016B2 (en) 2008-01-03 2019-08-13 Apple Inc. Methods and apparatus for altering audio output signals
US10380617B2 (en) 2011-09-29 2019-08-13 Visa International Service Association Systems and methods to provide a user interface to control an offer campaign
US10410637B2 (en) 2017-05-12 2019-09-10 Apple Inc. User-specific acoustic models
US10419379B2 (en) 2014-04-07 2019-09-17 Visa International Service Association Systems and methods to program a computing system to process related events via workflows configured using a graphical user interface
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US10438299B2 (en) 2011-03-15 2019-10-08 Visa International Service Association Systems and methods to combine transaction terminal location data and social networking check-in
US10438226B2 (en) 2014-07-23 2019-10-08 Visa International Service Association Systems and methods of using a communication network to coordinate processing among a plurality of separate computing systems
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US10475060B2 (en) 2010-11-04 2019-11-12 Visa International Service Association Systems and methods to reward user interactions
US10482874B2 (en) 2017-05-15 2019-11-19 Apple Inc. Hierarchical belief states for digital assistants
US10489754B2 (en) 2013-11-11 2019-11-26 Visa International Service Association Systems and methods to facilitate the redemption of offer benefits in a form of third party statement credits
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10497022B2 (en) 2012-01-20 2019-12-03 Visa International Service Association Systems and methods to present and process offers
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
US10521466B2 (en) 2016-06-11 2019-12-31 Apple Inc. Data driven natural language event detection and classification
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US10546332B2 (en) 2010-09-21 2020-01-28 Visa International Service Association Systems and methods to program operations for interaction with users
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US10568032B2 (en) 2007-04-03 2020-02-18 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US10607140B2 (en) 2010-01-25 2020-03-31 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US10643611B2 (en) 2008-10-02 2020-05-05 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
US10650398B2 (en) 2014-06-16 2020-05-12 Visa International Service Association Communication systems and methods to transmit data among a plurality of computing systems in processing benefit redemption
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10672018B2 (en) 2012-03-07 2020-06-02 Visa International Service Association Systems and methods to process offers via mobile devices
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10706841B2 (en) 2010-01-18 2020-07-07 Apple Inc. Task flow identification based on user intent
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10733993B2 (en) 2016-06-10 2020-08-04 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10755703B2 (en) 2017-05-11 2020-08-25 Apple Inc. Offline personal assistant
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US10791176B2 (en) 2017-05-12 2020-09-29 Apple Inc. Synchronization and task delegation of a digital assistant
US10791216B2 (en) 2013-08-06 2020-09-29 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10810274B2 (en) 2017-05-15 2020-10-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10977666B2 (en) 2010-08-06 2021-04-13 Visa International Service Association Systems and methods to rank and select triggers for real-time offers
US11004092B2 (en) 2009-11-24 2021-05-11 Visa U.S.A. Inc. Systems and methods for multi-channel offer redemption
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US11151899B2 (en) 2013-03-15 2021-10-19 Apple Inc. User training by intelligent digital assistant
US11210669B2 (en) 2014-10-24 2021-12-28 Visa International Service Association Systems and methods to set up an operation at a computer system connected with a plurality of computer systems via a computer network using a round trip communication of an identifier of the operation
US11217255B2 (en) 2017-05-16 2022-01-04 Apple Inc. Far-field extension for digital assistant services
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US11899814B1 (en) 2022-08-24 2024-02-13 Arthur Hustad Method and system for providing control over storage of and access to user data

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITFI20010199A1 (en) 2001-10-22 2003-04-22 Riccardo Vieri SYSTEM AND METHOD TO TRANSFORM TEXTUAL COMMUNICATIONS INTO VOICE AND SEND THEM WITH AN INTERNET CONNECTION TO ANY TELEPHONE SYSTEM
US8065143B2 (en) 2008-02-22 2011-11-22 Apple Inc. Providing text input using speech data and non-speech data
US8898568B2 (en) 2008-09-09 2014-11-25 Apple Inc. Audio user interface
US8862252B2 (en) 2009-01-30 2014-10-14 Apple Inc. Audio user interface for displayless electronic device
US8380507B2 (en) 2009-03-09 2013-02-19 Apple Inc. Systems and methods for determining the language to use for speech generated by a text to speech engine
US9342835B2 (en) 2009-10-09 2016-05-17 Visa U.S.A Systems and methods to deliver targeted advertisements to audience
US8595058B2 (en) 2009-10-15 2013-11-26 Visa U.S.A. Systems and methods to match identifiers
US8682649B2 (en) 2009-11-12 2014-03-25 Apple Inc. Sentiment prediction from textual data
US8311838B2 (en) 2010-01-13 2012-11-13 Apple Inc. Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts
US8381107B2 (en) 2010-01-13 2013-02-19 Apple Inc. Adaptive audio feedback system and method
US8713021B2 (en) 2010-07-07 2014-04-29 Apple Inc. Unsupervised document clustering using latent semantic density analysis
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
US9477967B2 (en) 2010-09-21 2016-10-25 Visa International Service Association Systems and methods to process an offer campaign based on ineligibility
US8781836B2 (en) 2011-02-22 2014-07-15 Apple Inc. Hearing assistance system for providing consistent human speech
US8812294B2 (en) 2011-06-21 2014-08-19 Apple Inc. Translating phrases from one language into another using an order-based set of declarative rules
US8706472B2 (en) 2011-08-11 2014-04-22 Apple Inc. Method for disambiguating multiple readings in language conversion
US8762156B2 (en) 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US8775442B2 (en) 2012-05-15 2014-07-08 Apple Inc. Semantic search using a single-source semantic model
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US8935167B2 (en) 2012-09-25 2015-01-13 Apple Inc. Exemplar-based latent perceptual modeling for automatic speech recognition

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH681573A5 (en) * 1990-02-13 1993-04-15 Astral Automatic teller arrangement involving bank computers - is operated by user data card carrying personal data, account information and transaction records
US5454106A (en) * 1993-05-17 1995-09-26 International Business Machines Corporation Database retrieval system using natural language for presenting understood components of an ambiguous query on a user interface
WO1997026612A1 (en) * 1996-01-17 1997-07-24 Personal Agents, Inc. Intelligent agents for electronic commerce
US5696962A (en) * 1993-06-24 1997-12-09 Xerox Corporation Method for computerized information retrieval using shallow linguistic analysis
US5794050A (en) * 1995-01-04 1998-08-11 Intelligent Text Processing, Inc. Natural language understanding system
EP0863453A1 (en) * 1997-03-07 1998-09-09 Xerox Corporation Shared-data environment in which each file has independent security properties
WO1998041956A1 (en) * 1997-03-20 1998-09-24 Schlumberger Technologies, Inc. System and method of transactional taxation using secure stored data devices
WO1999001834A1 (en) * 1997-07-02 1999-01-14 Coueignoux, Philippe, J., M. System and method for the secure discovery, exploitation and publication of information
WO1999008238A1 (en) * 1997-08-11 1999-02-18 International Business Machines Corporation A portable information and transaction processing system and method utilizing biometric authorization and digital certificate security
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH681573A5 (en) * 1990-02-13 1993-04-15 Astral Automatic teller arrangement involving bank computers - is operated by user data card carrying personal data, account information and transaction records
US5454106A (en) * 1993-05-17 1995-09-26 International Business Machines Corporation Database retrieval system using natural language for presenting understood components of an ambiguous query on a user interface
US5696962A (en) * 1993-06-24 1997-12-09 Xerox Corporation Method for computerized information retrieval using shallow linguistic analysis
US5794050A (en) * 1995-01-04 1998-08-11 Intelligent Text Processing, Inc. Natural language understanding system
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
WO1997026612A1 (en) * 1996-01-17 1997-07-24 Personal Agents, Inc. Intelligent agents for electronic commerce
EP0863453A1 (en) * 1997-03-07 1998-09-09 Xerox Corporation Shared-data environment in which each file has independent security properties
WO1998041956A1 (en) * 1997-03-20 1998-09-24 Schlumberger Technologies, Inc. System and method of transactional taxation using secure stored data devices
WO1999001834A1 (en) * 1997-07-02 1999-01-14 Coueignoux, Philippe, J., M. System and method for the secure discovery, exploitation and publication of information
WO1999008238A1 (en) * 1997-08-11 1999-02-18 International Business Machines Corporation A portable information and transaction processing system and method utilizing biometric authorization and digital certificate security

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DATABASE INSPEC [Online] THE INSTITUTION OF ELECTRICAL ENGINEERS, STEVENAGE, GB; Inspec No. AN3553860, October 1989 (1989-10) MILLER R. ET AL.: "The periodicals collection: A dBASE III database" XP002155633 & COMPUTERS IN LIBRARIES, vol. 9, no. 9, October 1989 (1989-10), pages 22-25, USA *
SAMESHIMA Y ET AL: "Authorization with security attributes and privilege delegation Access control beyond the ACL" COMPUTER COMMUNICATIONS,NL,ELSEVIER SCIENCE PUBLISHERS BV, AMSTERDAM, vol. 20, no. 5, 5 July 1997 (1997-07-05), pages 376-384, XP004086043 ISSN: 0140-3664 *

Cited By (236)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361428B2 (en) 1998-02-24 2016-06-07 Luc Bessette System and method for electronically managing medical data files
US9037616B2 (en) 1998-02-24 2015-05-19 Luc Bessette System and method for electronically managing medical data files
US9195797B2 (en) 1998-02-24 2015-11-24 Luc Bessette System and method for electronically managing medical data files
US8615532B2 (en) 1998-02-24 2013-12-24 Luc Bessette System and method for electronically managing medical data files
US8296333B2 (en) 1998-02-24 2012-10-23 Luc Bessette System and method for electronically managing medical data files
US9646614B2 (en) 2000-03-16 2017-05-09 Apple Inc. Fast, language-independent method for user authentication by voice
GB2366051A (en) * 2000-05-02 2002-02-27 Ibm Method for private data access or use based on related public data
GB2366051B (en) * 2000-05-02 2005-01-05 Ibm Method, system and program product for private data access or use based on related public data
US7047202B2 (en) * 2000-07-13 2006-05-16 Amit Jaipuria Method and apparatus for optimizing networking potential using a secured system for an online community
US7761383B2 (en) 2000-07-13 2010-07-20 Amit Jaipuria Method and apparatus for optimizing networking potential using a secured system for an online community
EP1237105A1 (en) * 2001-02-16 2002-09-04 Abb Research Ltd. Method for storing and retrieving user preferences
EP1440356A4 (en) * 2001-05-21 2004-10-06 Nokia Corp Method and apparatus for managing and enforcing user privacy
EP1389399A4 (en) * 2001-05-21 2008-07-30 Nokia Corp A method, system, and apparatus for providing services in a privacy enabled mobile and ubicom environment
US7340438B2 (en) 2001-05-21 2008-03-04 Nokia Corporation Method and apparatus for managing and enforcing user privacy
EP1440356A2 (en) * 2001-05-21 2004-07-28 Nokia Corporation Method and apparatus for managing and enforcing user privacy
EP1389399A1 (en) * 2001-05-21 2004-02-18 Nokia Corporation A method, system, and apparatus for providing services in a privacy enabled mobile and ubicom environment
US10318871B2 (en) 2005-09-08 2019-06-11 Apple Inc. Method and apparatus for building an intelligent automated assistant
US8423347B2 (en) 2006-06-06 2013-04-16 Microsoft Corporation Natural language personal information management
US10568032B2 (en) 2007-04-03 2020-02-18 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US9053089B2 (en) 2007-10-02 2015-06-09 Apple Inc. Part-of-speech tagging using latent analogy
US10381016B2 (en) 2008-01-03 2019-08-13 Apple Inc. Methods and apparatus for altering audio output signals
US9865248B2 (en) 2008-04-05 2018-01-09 Apple Inc. Intelligent text-to-speech conversion
US9626955B2 (en) 2008-04-05 2017-04-18 Apple Inc. Intelligent text-to-speech conversion
US9946706B2 (en) 2008-06-07 2018-04-17 Apple Inc. Automatic language identification for dynamic text processing
US9535906B2 (en) 2008-07-31 2017-01-03 Apple Inc. Mobile device having human language translation capability with positional feedback
US10108612B2 (en) 2008-07-31 2018-10-23 Apple Inc. Mobile device having human language translation capability with positional feedback
US9691383B2 (en) 2008-09-05 2017-06-27 Apple Inc. Multi-tiered voice feedback in an electronic device
US11900936B2 (en) 2008-10-02 2024-02-13 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10643611B2 (en) 2008-10-02 2020-05-05 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US11348582B2 (en) 2008-10-02 2022-05-31 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US10475446B2 (en) 2009-06-05 2019-11-12 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10795541B2 (en) 2009-06-05 2020-10-06 Apple Inc. Intelligent organization of tasks items
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US11080012B2 (en) 2009-06-05 2021-08-03 Apple Inc. Interface for a virtual digital assistant
US10283110B2 (en) 2009-07-02 2019-05-07 Apple Inc. Methods and apparatuses for automatic speech recognition
US9841282B2 (en) 2009-07-27 2017-12-12 Visa U.S.A. Inc. Successive offer communications with an offer recipient
US9909879B2 (en) 2009-07-27 2018-03-06 Visa U.S.A. Inc. Successive offer communications with an offer recipient
US10354267B2 (en) 2009-07-27 2019-07-16 Visa International Service Association Systems and methods to provide and adjust offers
US9031860B2 (en) 2009-10-09 2015-05-12 Visa U.S.A. Inc. Systems and methods to aggregate demand
US10607244B2 (en) 2009-10-19 2020-03-31 Visa U.S.A. Inc. Systems and methods to provide intelligent analytics to cardholders and merchants
US9947020B2 (en) 2009-10-19 2018-04-17 Visa U.S.A. Inc. Systems and methods to provide intelligent analytics to cardholders and merchants
US11004092B2 (en) 2009-11-24 2021-05-11 Visa U.S.A. Inc. Systems and methods for multi-channel offer redemption
US11017411B2 (en) 2009-11-24 2021-05-25 Visa U.S.A. Inc. Systems and methods for multi-channel offer redemption
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
US10706841B2 (en) 2010-01-18 2020-07-07 Apple Inc. Task flow identification based on user intent
US10984327B2 (en) 2010-01-25 2021-04-20 New Valuexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US10607141B2 (en) 2010-01-25 2020-03-31 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US10607140B2 (en) 2010-01-25 2020-03-31 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US11410053B2 (en) 2010-01-25 2022-08-09 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US10984326B2 (en) 2010-01-25 2021-04-20 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US9633660B2 (en) 2010-02-25 2017-04-25 Apple Inc. User profiling for voice input processing
US9190062B2 (en) 2010-02-25 2015-11-17 Apple Inc. User profiling for voice input processing
US10049675B2 (en) 2010-02-25 2018-08-14 Apple Inc. User profiling for voice input processing
US9953373B2 (en) 2010-03-19 2018-04-24 Visa U.S.A. Inc. Systems and methods to enhance search data with transaction based data
US9799078B2 (en) 2010-03-19 2017-10-24 Visa U.S.A. Inc. Systems and methods to enhance search data with transaction based data
US11017482B2 (en) 2010-03-19 2021-05-25 Visa U.S.A. Inc. Systems and methods to enhance search data with transaction based data
US10902420B2 (en) 2010-03-22 2021-01-26 Visa International Service Association Merchant configured advertised incentives funded through statement credits
US9697520B2 (en) 2010-03-22 2017-07-04 Visa U.S.A. Inc. Merchant configured advertised incentives funded through statement credits
US10354250B2 (en) 2010-03-22 2019-07-16 Visa International Service Association Merchant configured advertised incentives funded through statement credits
US10089630B2 (en) 2010-04-23 2018-10-02 Visa U.S.A. Inc. Systems and methods to provide offers to travelers
US10339554B2 (en) 2010-06-04 2019-07-02 Visa International Service Association Systems and methods to provide messages in real-time with transaction processing
US9760905B2 (en) 2010-08-02 2017-09-12 Visa International Service Association Systems and methods to optimize media presentations using a camera
US10430823B2 (en) 2010-08-02 2019-10-01 Visa International Service Association Systems and methods to optimize media presentations using a camera
US10977666B2 (en) 2010-08-06 2021-04-13 Visa International Service Association Systems and methods to rank and select triggers for real-time offers
US9679299B2 (en) 2010-09-03 2017-06-13 Visa International Service Association Systems and methods to provide real-time offers via a cooperative database
US9990643B2 (en) 2010-09-03 2018-06-05 Visa International Service Association Systems and methods to provide real-time offers via a cooperative database
US10546332B2 (en) 2010-09-21 2020-01-28 Visa International Service Association Systems and methods to program operations for interaction with users
US11151585B2 (en) 2010-09-21 2021-10-19 Visa International Service Association Systems and methods to modify interaction rules during run time
US10055745B2 (en) 2010-09-21 2018-08-21 Visa International Service Association Systems and methods to modify interaction rules during run time
US9075783B2 (en) 2010-09-27 2015-07-07 Apple Inc. Electronic device with text error correction based on voice recognition data
US10475060B2 (en) 2010-11-04 2019-11-12 Visa International Service Association Systems and methods to reward user interactions
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US10007915B2 (en) 2011-01-24 2018-06-26 Visa International Service Association Systems and methods to facilitate loyalty reward transactions
US10438299B2 (en) 2011-03-15 2019-10-08 Visa International Service Association Systems and methods to combine transaction terminal location data and social networking check-in
US10102359B2 (en) 2011-03-21 2018-10-16 Apple Inc. Device access using voice authentication
US11120372B2 (en) 2011-06-03 2021-09-14 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10223707B2 (en) 2011-08-19 2019-03-05 Visa International Service Association Systems and methods to communicate offer options via messaging in real time with processing of payment transaction
US10628842B2 (en) 2011-08-19 2020-04-21 Visa International Service Association Systems and methods to communicate offer options via messaging in real time with processing of payment transaction
US9798393B2 (en) 2011-08-29 2017-10-24 Apple Inc. Text correction processing
US10360591B2 (en) 2011-09-20 2019-07-23 Visa International Service Association Systems and methods to process referrals in offer campaigns
US10956924B2 (en) 2011-09-29 2021-03-23 Visa International Service Association Systems and methods to provide a user interface to control an offer campaign
US10380617B2 (en) 2011-09-29 2019-08-13 Visa International Service Association Systems and methods to provide a user interface to control an offer campaign
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10290018B2 (en) 2011-11-09 2019-05-14 Visa International Service Association Systems and methods to communicate with users via social networking sites
US10853842B2 (en) 2011-11-09 2020-12-01 Visa International Service Association Systems and methods to communicate with users via social networking sites
US10497022B2 (en) 2012-01-20 2019-12-03 Visa International Service Association Systems and methods to present and process offers
US11037197B2 (en) 2012-01-20 2021-06-15 Visa International Service Association Systems and methods to present and process offers
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10672018B2 (en) 2012-03-07 2020-06-02 Visa International Service Association Systems and methods to process offers via mobile devices
US9953088B2 (en) 2012-05-14 2018-04-24 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US10019994B2 (en) 2012-06-08 2018-07-10 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US10079014B2 (en) 2012-06-08 2018-09-18 Apple Inc. Name recognition system
US9971774B2 (en) 2012-09-19 2018-05-15 Apple Inc. Voice-based media searching
US10360627B2 (en) 2012-12-13 2019-07-23 Visa International Service Association Systems and methods to provide account features via web based user interfaces
US11132744B2 (en) 2012-12-13 2021-09-28 Visa International Service Association Systems and methods to provide account features via web based user interfaces
US11900449B2 (en) 2012-12-13 2024-02-13 Visa International Service Association Systems and methods to provide account features via web based user interfaces
US10199051B2 (en) 2013-02-07 2019-02-05 Apple Inc. Voice trigger for a digital assistant
US10978090B2 (en) 2013-02-07 2021-04-13 Apple Inc. Voice trigger for a digital assistant
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US11388291B2 (en) 2013-03-14 2022-07-12 Apple Inc. System and method for processing voicemail
US11151899B2 (en) 2013-03-15 2021-10-19 Apple Inc. User training by intelligent digital assistant
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10078487B2 (en) 2013-03-15 2018-09-18 Apple Inc. Context-sensitive handling of interruptions
US9697822B1 (en) 2013-03-15 2017-07-04 Apple Inc. System and method for updating an adaptive speech recognition model
US9922642B2 (en) 2013-03-15 2018-03-20 Apple Inc. Training an at least partial voice command system
US9966060B2 (en) 2013-06-07 2018-05-08 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
US9620104B2 (en) 2013-06-07 2017-04-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9633674B2 (en) 2013-06-07 2017-04-25 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9966068B2 (en) 2013-06-08 2018-05-08 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10657961B2 (en) 2013-06-08 2020-05-19 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10185542B2 (en) 2013-06-09 2019-01-22 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US9300784B2 (en) 2013-06-13 2016-03-29 Apple Inc. System and method for emergency calls initiated by voice command
US10791216B2 (en) 2013-08-06 2020-09-29 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10909508B2 (en) 2013-11-11 2021-02-02 Visa International Service Association Systems and methods to facilitate the redemption of offer benefits in a form of third party statement credits
US10489754B2 (en) 2013-11-11 2019-11-26 Visa International Service Association Systems and methods to facilitate the redemption of offer benefits in a form of third party statement credits
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US10419379B2 (en) 2014-04-07 2019-09-17 Visa International Service Association Systems and methods to program a computing system to process related events via workflows configured using a graphical user interface
US10354268B2 (en) 2014-05-15 2019-07-16 Visa International Service Association Systems and methods to organize and consolidate data for improved data storage and processing
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US11640620B2 (en) 2014-05-15 2023-05-02 Visa International Service Association Systems and methods to organize and consolidate data for improved data storage and processing
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US10083690B2 (en) 2014-05-30 2018-09-25 Apple Inc. Better resolution when referencing to concepts
US11133008B2 (en) 2014-05-30 2021-09-28 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10169329B2 (en) 2014-05-30 2019-01-01 Apple Inc. Exemplar-based natural language processing
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US10497365B2 (en) 2014-05-30 2019-12-03 Apple Inc. Multi-command single utterance input method
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US11257504B2 (en) 2014-05-30 2022-02-22 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10650398B2 (en) 2014-06-16 2020-05-12 Visa International Service Association Communication systems and methods to transmit data among a plurality of computing systems in processing benefit redemption
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10904611B2 (en) 2014-06-30 2021-01-26 Apple Inc. Intelligent automated assistant for TV user interactions
US9668024B2 (en) 2014-06-30 2017-05-30 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US11055734B2 (en) 2014-07-23 2021-07-06 Visa International Service Association Systems and methods of using a communication network to coordinate processing among a plurality of separate computing systems
US10438226B2 (en) 2014-07-23 2019-10-08 Visa International Service Association Systems and methods of using a communication network to coordinate processing among a plurality of separate computing systems
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10431204B2 (en) 2014-09-11 2019-10-01 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9986419B2 (en) 2014-09-30 2018-05-29 Apple Inc. Social reminders
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US11210669B2 (en) 2014-10-24 2021-12-28 Visa International Service Association Systems and methods to set up an operation at a computer system connected with a plurality of computer systems via a computer network using a round trip communication of an identifier of the operation
US11556230B2 (en) 2014-12-02 2023-01-17 Apple Inc. Data detection
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US11087759B2 (en) 2015-03-08 2021-08-10 Apple Inc. Virtual assistant activation
US10311871B2 (en) 2015-03-08 2019-06-04 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US9691085B2 (en) 2015-04-30 2017-06-27 Visa International Service Association Systems and methods of natural language processing and statistical analysis to identify matching categories
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10356243B2 (en) 2015-06-05 2019-07-16 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US11500672B2 (en) 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US11526368B2 (en) 2015-11-06 2022-12-13 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US11069347B2 (en) 2016-06-08 2021-07-20 Apple Inc. Intelligent automated assistant for media exploration
US10354011B2 (en) 2016-06-09 2019-07-16 Apple Inc. Intelligent automated assistant in a home environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10733993B2 (en) 2016-06-10 2020-08-04 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US11037565B2 (en) 2016-06-10 2021-06-15 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US11152002B2 (en) 2016-06-11 2021-10-19 Apple Inc. Application integration with a digital assistant
US10521466B2 (en) 2016-06-11 2019-12-31 Apple Inc. Data driven natural language event detection and classification
US10089072B2 (en) 2016-06-11 2018-10-02 Apple Inc. Intelligent device arbitration and control
US10297253B2 (en) 2016-06-11 2019-05-21 Apple Inc. Application integration with a digital assistant
US10269345B2 (en) 2016-06-11 2019-04-23 Apple Inc. Intelligent task discovery
US10553215B2 (en) 2016-09-23 2020-02-04 Apple Inc. Intelligent automated assistant
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US10755703B2 (en) 2017-05-11 2020-08-25 Apple Inc. Offline personal assistant
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US10791176B2 (en) 2017-05-12 2020-09-29 Apple Inc. Synchronization and task delegation of a digital assistant
US10410637B2 (en) 2017-05-12 2019-09-10 Apple Inc. User-specific acoustic models
US10810274B2 (en) 2017-05-15 2020-10-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10482874B2 (en) 2017-05-15 2019-11-19 Apple Inc. Hierarchical belief states for digital assistants
US11217255B2 (en) 2017-05-16 2022-01-04 Apple Inc. Far-field extension for digital assistant services
US11899814B1 (en) 2022-08-24 2024-02-13 Arthur Hustad Method and system for providing control over storage of and access to user data

Also Published As

Publication number Publication date
WO2000060435A3 (en) 2001-04-12

Similar Documents

Publication Publication Date Title
WO2000060435A2 (en) System and method for accessing personal information
Fink et al. A review and analysis of commercial user modeling servers for personalization on the world wide web
JP6067066B2 (en) Method for sending information to user, computer-readable recording medium, and information collecting method
US9373134B2 (en) Acquisition of telephone service logic via buying request script
Mylopoulos et al. UML for agent-oriented software development: The Tropos proposal
US8121891B2 (en) Personalized product report
US8370362B2 (en) Database access system
CA2365744C (en) A system, method and article of manufacture for a mobile communication network utilizing a distributed communication network
Kobsa et al. An LDAP-based user modeling server and its evaluation
WO2000054170A2 (en) A system, method and article of manufacture for advanced mobile communication and computing
Srivastava et al. Web business intelligence: Mining the web for actionable knowledge
US7702617B2 (en) System and method for distributed querying and presentation of information from heterogeneous data sources
TW573406B (en) A method, apparatus and computer-readable medium for obtaining or providing health care on a mobile computing environment
Fink User modeling servers: Requirements, design, and evaluation
CA2350314C (en) A system, method and article of manufacture for effectively interacting with a network user
WO2000031671A9 (en) Collection and analysis of user profile information
JP2003233557A (en) System and method using web wizard and tool
WO2000031664A2 (en) A system, method and article of manufacture for a grouped profile network interface
WO2000031631A1 (en) A system, method and article of manufacture for a client intention application experience
Jain et al. Knowledge Management System Design Using Extended GAIA
Khalaf et al. Development of a Multi-Agent Approach for a Smart Library Management System
Neches FAST Workstation Project Overview
Wadpelli et al. Manifesta: An Event Management Platform Using Recommendation System
Müller et al. Integrating Mobile Agent Technology into an e-Marketplace Solution
Hanafi Hand phone packages system advisor/Hanafi Muhamad

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CA JP

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

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

Kind code of ref document: A3

Designated state(s): CA JP

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP