U.S. patent application number 09/783609 was filed with the patent office on 2001-11-29 for automated reservation and appointment system using interactive voice recognition.
Invention is credited to Roundtree, Brian.
Application Number | 20010047264 09/783609 |
Document ID | / |
Family ID | 22667981 |
Filed Date | 2001-11-29 |
United States Patent
Application |
20010047264 |
Kind Code |
A1 |
Roundtree, Brian |
November 29, 2001 |
Automated reservation and appointment system using interactive
voice recognition
Abstract
Automatically making appointments and reservations for
requestors according to a protocol for querying service providers
and other types of entities. A system server receives a request for
an appointment or reservation either for a category of service or a
particular entity. Based upon the request, the system server
retrieves a protocol for making the appointment or reservation, and
possibly to identify entities to contact. The protocol uses
concepts to represent information required to make the appointment
or reservation. The system server automatically queries entities,
optionally using concept-to-audio conversion and voice recognition
technology, to make the appointment or reservation, and to provide
confirmation to the requester.
Inventors: |
Roundtree, Brian; (Kirkland,
WA) |
Correspondence
Address: |
Lance Vietzke
Suite 300 South
1001 Pennsylvania Avenue, N.W.
Washington
DC
20004
US
|
Family ID: |
22667981 |
Appl. No.: |
09/783609 |
Filed: |
February 15, 2001 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60182330 |
Feb 14, 2000 |
|
|
|
Current U.S.
Class: |
704/275 ;
707/E17.121 |
Current CPC
Class: |
H04W 4/12 20130101; G06F
16/9537 20190101; G06Q 10/04 20130101; G06F 16/9558 20190101; G06F
16/9577 20190101; G06F 16/748 20190101; H04W 8/005 20130101; G06Q
30/0203 20130101; G10L 15/26 20130101; G06F 16/94 20190101; G06Q
30/06 20130101; G06F 16/957 20190101; G06Q 30/0201 20130101; G06Q
10/109 20130101; H04L 67/51 20220501 |
Class at
Publication: |
704/275 |
International
Class: |
G10L 011/00 |
Claims
What is claimed is:
1. A method for providing automated reservations and appointments
for users, comprising: receiving a request for an order for service
from a requestor; receiving service information for use in
fulfilling the order; selecting a protocol for use in querying an
entity based upon the service information; querying the entity
according to the protocol; and providing the ordered service based
upon responses to the querying.
2. The method of claim 1 wherein the receiving the request step
includes receiving the request from a user device.
3. The method of claim 1, further including: receiving audible
responses to the querying; and converting the audible responses
into corresponding concepts.
4. The method of claim 1 wherein the receiving the request step
includes receiving the request from a server.
5. The method of claim 1, further including prompting the requestor
to select between an entity and a category of service for the
service information.
6. The method of claim 1 wherein the selecting step includes
selecting the protocol based upon at least one of the following: a
selected category of service, a selected entity, or preferences
related to the requester.
7. The method of claim 1 wherein the querying step includes:
selecting concepts according to the protocol; and converting the
concepts to corresponding audio segments for presentation to the
entity.
8. The method of claim 1 wherein the querying step includes:
selecting concepts according to the protocol; and presenting text
segments to the entity based upon the concepts.
9. The method of claim 1, further including providing to the
requestor confirmation of the ordered service.
10. The method of claim 5 wherein the selecting step includes
identifying a plurality of entities to query based upon the
category of service.
11. An apparatus for providing automated reservations and
appointments for users, comprising: a request module for receiving
a request for an order for service from a requestor; a receive
module for receiving service information for use in fulfilling the
order; a select module for selecting a protocol for use in querying
an entity based upon the service information; a query module for
querying the entity according to the protocol; and a provide module
for providing the ordered service based upon responses to the
querying.
12. The apparatus of claim 11 wherein the request module includes a
module for receiving the request from a user device.
13. The apparatus of claim 11, further including: a module for
receiving audible responses to the querying; and a module for
converting the audible responses into corresponding concepts.
14. The apparatus of claim 11 wherein the request module includes a
module for receiving the request from a server.
15. The apparatus of claim 11, further including a module for
prompting the requestor to select between an entity and a category
of service for the service information.
16. The apparatus of claim 11 wherein the select module includes a
module for selecting the protocol based upon at least one of the
following: a selected category of service, a selected entity, or
preferences related to the requestor.
17. The apparatus of claim 11 wherein the query module includes: a
module for selecting concepts according to the protocol; and a
module for converting the concepts to corresponding audio segments
for presentation to the entity.
18. The apparatus of claim 11 wherein the query module includes: a
module for selecting concepts according to the protocol; and a
module for presenting text segments to the entity based upon the
concepts.
19. The apparatus of claim 11, further including a module for
providing to the requestor confirmation of the ordered service.
20. The apparatus of claim 11 wherein the select module includes a
module for identifying a plurality of entities to query based upon
the category of service.
Description
REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to the following
applications, all of which are incorporated herein by reference as
if fully set forth: U.S. provisional patent application of Brian C.
Roundtree, Ser. No. 60/182,330, entitled "Web-Based Personal
Assistance Communication Method," and filed February 14, 2000; U.S.
patent application of Brian C. Roundtree, entitled "Web-Based
Personal Assistance Communication System," and filed Jul. 17, 2000;
U.S. patent application of Brian C. Roundtree, entitled "Web-Based
Personal Assistance Communication Method," and filed Jul. 17, 2000;
U.S. patent application of Brian C. Roundtree, entitled "Web-Based
Personal Assistance User Interface System," and filed Jul. 17,
2000; U.S. patent application of Brian C. Roundtree, entitled
"Voice-to-Concept Conversion System," and filed on Sep. 8, 2000;
U.S. patent application of Craig G. Eisler and Brian C. Roundtree,
entitled "On-Line Service Provider Sign-Up System," and filed on
Sep. 8, 2000; U.S. patent application of Keldon V. Rush and Brian
C. Roundtree, entitled "System for Converting Textual Concepts to
Interactive Audio and Audio/Visual Presentations," and filed on
Sep. 8, 2000; U.S. patent application of Brian C. Roundtree,
entitled "System for Obtaining Service-Related Information for
Local Interactive Wireless Devices," and filed on Sep. 8, 2000;
U.S. patent application of Cristiano L S Pierry and Brian C.
Roundtree, entitled "System for Secure Electronic Transactions
Using Unique Identifiers for Order-Related Information," and filed
on Sep. 8, 2000; U.S. patent application of Brian C. Roundtree,
entitled "Airline Flight Departure and Arrival Prediction Based
Upon Historical and Real-Time Data," and filed on same date
herewith; U.S. patent application of Craig G. Eisler and Brian C.
Roundtree, entitled "Hypertext Concept Notation for Dynamically
Constructing a Sentence to Respond to a User Request," and filed on
same date herewith; U.S. patent application of Craig G. Eisler and
Brian C. Roundtree, entitled "Assembling Personal Information of a
Target Person Based Upon Third-Party Information and a Request
Purpose," and filed on same date herewith; U.S. patent application
of Craig G. Eisler and Brian C. Roundtree, entitled "Rendering Data
Using Rendering Instructions Based Upon Concept Identifiers for the
Data," and filed on same date herewith; and U.S. patent application
of Cristiano L S Pierry and Brian C. Roundtree, entitled "Automated
Alert State Change of User Devices for Time-Based and
Location-Based Events," and filed on same date herewith.
FIELD OF THE INVENTION
[0002] The present invention relates to an apparatus and method for
automatically making reservations or appointments using interactive
voice recognition techniques.
BACKGROUND OF THE INVENTION
[0003] Wireless devices, such as cell phones and personal digital
assistants (PDAs), are becoming more commonly used and have the
potential for communication over the Internet in addition to
traditional telephone networks. The Internet communication with
these devices permits users to obtain services and other related
information using wireless communication with the devices. For
example, a user can download content from the world wide web on the
Internet using a cell phone and have the information displayed on
the display panel of the cell phone. Therefore, in addition to
using the cell phone for voice communication, the user can obtain
content over the Internet concerning, for example, services
available from service providers. The user can also execute
transactions over the Internet using the cell phone or other
wireless device. For example, the user can make electronic
purchases for good or services, analogous to how users can make
transactions over the Internet using a personal computer having a
connection to the Internet.
[0004] Many wireless devices, however, provide for limited ways to
enter information for communications over the Internet. Cell
phones, for example, typically have only a key pad in addition to a
microphone, making entry of textual information slow and
inconvenient. Other devices, such as PDAs, may have even more
limited ways to enter textual information. Therefore, these devices
do not typically provide the same ease of interacting over the
Internet as provided by a personal computer having a keyboard and
cursor-control device for easy and convenient "point and click"
selection of content displayed in web pages. These devices may also
be limited in how information can be displayed. Wireline devices,
such as conventional phones, provide for even more limited
interaction over the Internet.
[0005] Also, when using these user devices to execute the
transactions, the information available through the transactions is
often limited. A user request for content often results in generic
content potentially applicable to many situations other than the
particular situation of the user. For example, a user may want
information about purchasing gifts for others or information about
services available such as travel-related information. In response
to a request for such information, the user may be provided with
information about gifts for generic categories and other
information for general travel-related services. Without targeting
the information to the user's situation, the information may not
have much value to the user.
[0006] Accordingly, a need exists for increased options and
versatility for user's having wireless devices or wireline devices
to interact and make transactions over the Internet, for increased
versatility to request service or make transactions with service
providers, and for obtaining more information targeted to a user's
particular situation or request.
SUMMARY OF THE INVENTION
[0007] A method and apparatus consistent with the present invention
provide automated reservations and appointments. A request for an
order for service is received from a requester, and service
information is also received for use in fulfilling the order. A
protocol is selected for use in querying an entity based upon the
service information, and the entity is queried according to the
protocol. Based upon responses to the querying, the ordered service
is provided to the requester by making the appointment or
reservation, or possibly by informing the requestor that the
requested service is not available and offering options for
alternative service.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The accompanying drawings are incorporated in and constitute
a part of this specification and, together with the description,
explain the advantages and principles of the invention. In the
drawings,
[0009] FIG. 1 is a diagram of a system for processing requests for
service;
[0010] FIG. 2 is a diagram of a network for communicating with
wireless and wireline devices and service providers to process
requests for service;
[0011] FIG. 3 is a diagram of exemplary components of a server for
processing requests for service;
[0012] FIG. 4 is a diagram of exemplary components of a wireless
device; and
[0013] FIGS. 5 and 6 are a flow chart of a method for processing a
service order for automatically making a reservation or
appointment.
DETAILED DESCRIPTION
Introduction
[0014] Embodiments consistent with the present invention provide
various features for a web-based electronic personal assistant, as
described in the web-based personal assistance applications
identified above. The electronic personal assistant is implemented
with a system server that the receives requests from users through
wireless or wireline devices and processes the requests in order to
provide the user with requested service or information. These
features permit the user to interact with the system server in a
variety of ways such as through a display on the device, a keyboard
or keypad, or through voice interaction. The system server can
present information to the user in a variety of ways as well, such
as through audio communication or through information presented on
a display with, for example, textual information, screens, or web
pages presented with HyperText Markup Language (HTML).
[0015] The requests, as explained in the web-based personal
assistance applications identified above, can include any request
for service or information. For example, a user may request a
meeting, and in response the system server queries the user to
obtain information required to arrange the meeting and then
automatically makes the arrangements. As another example, a user
may request information concerning services in a particular
geographic location or based upon other parameters, and the system
server can query the user to determine the type of information
requested, such as particular types of retail establishments, and
provide the information to the user. As another example, a user may
request to purchase goods or services, or make reservations for
services, and in response the system server queries the user to
determine the type of goods or services desired as well as other
information such as a desired price. Based upon that information,
the system server automatically makes the purchase for the user.
For the reservations example, the system server can query the user
to determine information required to make the reservations for the
user. For any request, the system server can access user
preferences to obtain information required or useful to process the
request, such as the user's credit card information and shipping
address.
[0016] In addition, the system server can automatically notify the
user of particular information. The system server typically
maintains a database of preferences for the users in order to help
process the requests. It also maintains a concept database and uses
the concepts in order to retrieve and construct queries, such as
text fragments, for the user. The use of only text fragments, for
example, saves transmission time in comparison to transmission of
graphical information over a network; alternatively, graphics can
be used in addition to the text fragments.
[0017] Based upon the type of request, and potentially user
preferences, the system server selects the appropriate queries from
the concept database to obtain information to process the request.
Upon completion of the processing, the system server can present to
the user a sentence constructed from the related concepts in order
to confirm the request. It can also use the sentence to document
the request, retrieve the appropriate resources for it, and
otherwise fulfill the request. This process, and the use of these
concepts and the structure for a concept database, are further
described in the web-based personal assistance applications
identified above.
[0018] The system server can also cross-reference the concept
database with a service provider database. In order to fulfill
requests, the system server can access a database identifying
available service providers for the request. At the end of each
string of concepts in the concept database, that database can
specify a link or pointer to the relevant service providers in the
service provider database. For example, if the request is for a
meeting, once the system server has all the relevant information as
constructed from the concepts, the concept for the location of the
meeting can include a pointer or link to the establishments
proximate the location and available to provide food for the
meeting. Therefore, information for relevant service providers can
be associated with the appropriate concepts in the concept
database.
Request Processing
[0019] FIG. 1 is a diagram of a system for fulfilling a request for
service. The system includes a system server 10 for processing a
request transmitted from a requestor 12 through a network 14 such
as the Internet or other wireline or wireless network. System
server 10 includes several software modules for processing the
request from requestor 12. A communicator module 16 manages an
interface for the communications with requester 12 over network 14.
Communicator module 16 receives the request and provides necessary
formatting and other processing for transmitting it to a planner
module 22.
[0020] Planner module 22 interacts with a service provider module
24 in order to obtain the resources for fulfilling the request. In
particular, service provider module 24 interacts over a network 30,
such as the Internet or a phone network, with one or more service
providers 32 in order to obtain services to fulfill the request.
Service provider module 24 provides for communication and data
conversion for the interaction, while planner module 22 manages
processing of the request and interacts with various databases for
processing the request. A private credit card service module 28 can
provide for secure order processing of the request to help
safeguard users' personal information such as credit card
numbers.
[0021] Once the planner module 22 has obtained the resources for
the request, it communicates information to fulfill the request to
an executor module 18. Executor module 18 includes a pending plan
database 20 for storing and managing resources and other
information to fulfill the request. Executor module 18 thus
communicates back over network 14 with requester 12 to provide
confirmation of the request and also to execute the request.
[0022] A learning module 26 can provide for fine-tuning plan data
within a database 34 in order to more efficiently process requests,
particularly from the same requestor. Other databases include a
database 36 storing financial data accessed by executor module 18,
and a database 38 storing personal data accessed by executor module
18 and planner module 22. The personal data can include an account
for each user having a profile and preferences for the users, and
the information can be indexed by a particular user identifier such
as a phone number or code.
[0023] Table 1 illustrates a user account. As shown, the user
accounts can include users' preferences for a wide variety of
information such as for travel, dining, and other types of service
providers. The user preferences can be continually updated and
refined over time as the system server gathers more information
concerning the user, and the system server can optionally use
learning models for the refinements and use the preferences to make
"smart choices" in processing users' requests. The information can
be stored in a variety of ways such as in a relational database or
with name-value pairs in Extensible Markup Language (XML).
1TABLE 1 user 1 identifier data contact name, address profile user
1 characteristics hotel information user 1 hotel preferences
airline information user 1 airline preferences rental car
information user 1 rental car preferences restaurant information
user 1 restaurant preferences service provider preferences user 1
service provider preferences other category user 1 preferences for
the category
[0024] Processing to fulfill the request is further explained in
the web-based personal assistance applications identified
above.
Network
[0025] FIG. 2 is a diagram of an exemplary network 50 illustrating
interaction for receiving and processing requests from users such
as requester 12. It illustrates how the system can receive requests
through wireless and wireline transmission over conventional phone
and cellular networks as well as the Internet or other computer
networks. A requestor typically makes a request from a wireless or
wireline device. The wireless devices include any device capable of
wireless electronic communication and examples include the
following: cellular phones; PDAs with wireless network access;
wireless Internet appliances; personal computers (including
desktop, laptop, notebook, and others) with wireless network
access; and personal computers with microphones, speakers, and
circuitry for permitting wireless phone calls. The wireline devices
include any device capable of electronic wireline communication and
examples include the following: conventional phones; PDAs with
wireline network access; Internet appliances; personal computers
(including desktop, laptop, notebook, and others) with wireline
network access; and personal computers with microphones, speakers,
and circuitry for permitting wireline phone calls.
[0026] A wireless device 52, for example, can interact through
wireless transmission with a base station 56 for communication over
a personal communication system (PCS) 58. A request may also be
made from a wireline device 54 communicating over a public switched
telephone network (PSN) 60. Systems for wireless and wireline
communication, includes a PCS and PSN, are known in the art.
[0027] Communications through networks 58 and 60 are transmitted
through a gateway 62 and potentially a buffer 64 to a speech
processor 66 for performing processing of audio or particular types
of communications, such as for voice-to-text conversion. Also, the
communication may occur directly from gateway 62 to an interface
server 68. Interface server 68 controls gateway 62, and it provides
an interface between a system server 76 and gateway 62, speech
processor 66, and the world wide web 70.
[0028] System server 76 corresponds with system server 10 in FIG. 1
to process user requests. Interface server 68 provides the data
conversion and processing for transferring data to and from system
server 76. As shown by the dashed line, speech processor 66 and
interface server 68 can be implemented with the same physical
machine or with different machines. Also, system server 76 can be
implemented with one or more physical machines and can also be
programmed to implement the functions of speech processor 66 and
interface server 68.
[0029] In addition to receiving requests over networks 58 and 60,
interface server 68 can receive a request over the world wide web
70. In particular, a wireless device 74 can interact through
wireless communication with a PCS 72, which communicates over the
world wide web 70 through a communication protocol such as, for
example, the wireless application protocol (WAP). The WAP for
communications over the Internet is known in the art.
[0030] System server 76 can communicate over the world wide web 78
with various service provides 80 to fulfill requests. In addition,
system server 76 can communicate with credit card processing or
other financial networks 86 in order to provide financial
processing for fulfilling requests. Networks 86 can include known
networks, including banking networks, for processing credit card
transactions. As shown, service providers 80 and financial networks
86 can also send and receive communications through a PCS 82 and
PSN 84.
[0031] System server 76 can communicate directly over the world
wide web 78 to a gateway 88 and base station 90 in order to provide
communication directly with a wireless device 92. Also as shown,
communications can occur from system server 76 back through
interface server 68 and speech processor 66 to the end user
wireless devices 52 and 74 and wireline device 54; system server 76
can also communicate directly with gateway 62, as shown. Those
communications can provide, for example, confirmation of a request
or information responsive to a request.
[0032] Network 50 illustrates fundamental hardware components for
communications over the various types of networks shown. As known
in the art, network 50 can include additional components and can
also include components for providing services known in the art
with respect to phone calls. For example, it can include a caller
ID service to provide system server 76 with the phone number of the
user's wireless or wireline device originating a communication.
Also, network 50 can include other means for communication of data
such as through satellite transmission. For transmission over the
Internet, network 50 can use Transmission Control Protocol/Internet
Protocol (TCP/IP) or other protocols.
Server Components
[0033] FIG. 3 depicts a server 100 illustrating exemplary hardware
components of system server 10 and other machines used by the
system, such as speech processor 66 and interface server 68. Server
100 includes a connection with a network 116 such as the Internet
or other type of computer or phone networks, which may correspond
with the networks shown in FIGS. 1 and 2. Server 100 typically
includes a memory 102, a secondary storage device 110, a processor
112, an input device 114, a display device 108, and an output
device 106.
[0034] Memory 102 may include random access memory (RAM) or similar
types of memory, and it may store one or more applications 104 for
execution by processor 112. Applications 104 may correspond with
software modules to perform processing for the functions described
below. Secondary storage device 110 may include a hard disk drive,
floppy disk drive, CD-ROM drive, or other types of non-volatile
data storage, and it may correspond with the various databases
shown in FIG. 1. Processor 112 may execute applications or programs
stored in memory 102 or secondary storage 110, or received from the
Internet or other network 116. Input device 114 may include any
device for entering information into server 100, such as a
keyboard, key pad, cursor-control device, touch-screen (possibly
with a stylus), or microphone. Display device 108 may include any
type of device for presenting visual information such as, for
example, a computer monitor, flat-screen display, or display panel.
Output device 106 may include any type of device for presenting a
hard copy of information, such as a printer, and other types of
output devices include speakers or any device for providing
information in audio form. Server 100 can possibly include multiple
input devices, output devices, and display devices.
[0035] Although server 100 is depicted with various components, one
skilled in the art will appreciate that this server can contain
additional or different components. In addition, although aspects
of an implementation consistent with the present invention are
described as being stored in memory, one skilled in the art will
appreciate that these aspects can also be stored on or read from
other types of computer program products or computer-readable
media, such as secondary storage devices, including hard disks,
floppy disks, or CD-ROM; a carrier wave from the Internet or other
network; or other forms of RAM or ROM. The computer-readable media
may include instructions for controlling server 100 to perform a
particular method.
Wireless Device Components
[0036] FIG. 4 illustrates exemplary hardware components of a
wireless device 120, which may correspond with the exemplary
wireless devices identified above. Wireless device 120 typically
includes a memory 122, a secondary storage device 130, a processor
132, an input device 134, a display device 128, an output device
126, a transmitter/receiver 136, and a short range
transmitter/receiver 138.
[0037] Memory 122 may include RAM or similar types of memory, and
it may store one or more applications 124 for execution by
processor 132. Applications 124 may correspond with software
modules to perform processing for the functions described below,
and they may also include web browser programs for retrieving and
displaying content from the Internet. Secondary storage device 130
may include a hard disk drive, floppy disk drive, CD-ROM drive, or
other types of non-volatile data storage such as a ROM. Processor
132 may execute applications or programs stored in memory 122 or
secondary storage 130. Input device 134 may include any device for
entering information into wireless device 120, such as a keyboard,
key pad, cursor-control device, touch-screen (possibly with a
stylus), or microphone. Wireless device 120 can include multiple
input devices; for example, it can include both a microphone and
key pad for a cell phone. Display device 128 may include any type
of device for presenting visual information such as, for example, a
computer monitor, flat-screen display, or display panel. Output
device 126 typically includes a speaker for providing information
in audio form. It can also include a device for providing a hard
copy of information such as a printer, or provide a port for a
connection to a printer. Wireless device 120 can possibly include
multiple input devices, output devices, and display devices.
[0038] Transmitter/receiver 136 provides for wireless communication
with phone networks or computer networks such as is shown in FIGS.
1 and 2. Transmitter/receiver 136 can be implemented with known RF
transmitters and receivers for providing cellular transmission
between wireless device 120 and base stations such as base stations
56 and 90, or it can be implemented with a wireless
transmitter/receiver for other types of communication such as a
satellite transmission.
[0039] Short range transmitter/receiver 138 provides for wireless
short range communication with other wireless devices, and it can
be implemented with transmitters and receivers that operate
according to the IEEE standard 802.11 for local wireless networks
or according to the standard referred to as the Bluetooth.TM.
technology for direct wireless communication between local
interactive wireless devices; that technology is explained in, for
example, the Specification of the Bluetooth System, Core, v1.0 B,
Dec. 1, 1999 and the Specification of the Bluetooth System,
Profiles, v1.0 B, Dec. 1, 1999, both of which are incorporated
herein by reference.
[0040] In addition, even if a wireless device does not contain
short range transmitter/receiver 138, technology exists to obtain
an approximate geographic location of certain wireless devices. In
particular, using multiple base stations the signal from a cellular
phone, for example, can be triangulated in order to obtain an
approximate geographic location of the cellular phone, including an
indication of its vertical (altitude) location.
[0041] Although wireless device 120 is depicted with various
components, one skilled in the art will appreciate that this
wireless device can contain additional or different components. In
addition, although aspects of an implementation consistent with the
present invention are described as being stored in memory, one
skilled in the art will appreciate that these aspects can also be
stored on or read from other types of computer program products or
computer-readable media, such as secondary storage devices,
including hard disks, floppy disks, or CD-ROM; a carrier wave from
the Internet or other network; or other forms of RAM or ROM. The
computer-readable media may include instructions for controlling
wireless device 120 to perform a particular method.
[0042] Exemplary hardware components for wireline devices, such as
the examples provided above, can include the same components as
wireless device 120 except without the transmitter/receiver 136 and
the short range transmitter/receiver 138.
Automated Reservation and Appointment System
[0043] Users can submit requests for service, meaning a request for
an appointment or a reservation. The request can specify a
particular entity or a category of service. In response, the system
server automatically contacts one or more entities and attempts to
make the appointment or reservation, and provides confirmation to
the user. The term "entity" refers to service providers and/or
individuals. The system server can execute protocols using concepts
to represent portions of the request, and the use of concepts is
described in the related applications identified above. Through
concept-to-audio conversion, the system server can query entities
using the concepts, and convert voice responses into related
concepts using voice-to-concept conversion. Concept-to-audio and
voice-to-concept conversion techniques are described in the related
applications identified above. Using phone communication, for
example, these voice conversion and recognition features can be
used according to various protocols to make the appointment or
reservation.
[0044] As an example, the user may request a reservation with a
particular restaurant. In response, the system server retrieves a
protocol for making a reservation with that restaurant, contacts a
representative of the restaurant through a phone call, and queries
the representative through concept-to-audio conversion. The system
server receives voice responses to the querying, converts them to
corresponding concepts, and continues the process until the
reservation is made or it determines that the reservation is not
available. If it is not available, the system server can query the
representative to obtain alternate times available. The system
server then provides confirmation to the user (requestor) of the
reservation or can provide alternate times for a requested
reservation time that was not available.
[0045] Instead of specifying a particular restaurant, for example,
a user can specify a request for a restaurant reservation for a
particular category of restaurants and potentially a location. In
response, the system server retrieves a protocol that identifies
one or more restaurants to contact based upon the category and
possibly other information such as the user's preferences as stored
in personal data 38. The system server executes the querying
process according to the protocol to make a reservation with one of
the restaurants and provides confirmation to the user.
[0046] These examples are provided for illustrative purposes only.
The system server can automatically make appointments or
reservations for any category of service provider, or other entity,
for any type of service.
[0047] FIGS. 5 and 6 are a flow chart of a method 150 for
processing a service order for automatically making a reservation
or appointment. Method 150 can be implemented in software modules
within a server such as system server 10. In method 150, the system
server receives a request from a requestor, such as requestor 12,
for an order for service (step 152). The request can be submitted
from a user at a user device or from a server. The order for
service involves a request for a reservation or appointment with an
entity; the terms "reservation" and "appointment" are used
interchangeably.
[0048] The system server determines whether to prompt the requester
for service information (step 154). Service information can include
any additional information for use by the system server in making
the appointment or reservation, and the system server can be
programmed based upon particular criteria to query the requestor
for more information. The querying can be based upon the type of
request. For example, if the requestor has requested a restaurant
reservation without specifying a particular restaurant, the system
server can query the requester for the type of restaurant and
location desired. The querying can also be based upon user
preferences for the requestor as stored in personal data 38.
[0049] If the system server requires more information from the
requestor (step 156), it prompts the requester to obtain service
information (step 158) and receives service information from the
requestor (step 160). The type of prompting or querying can be
based upon the type of service desired and retrieved through
linking the types of services with information required to process
the request. The information can be retrieved through interaction
at the user device and by using the concepts as described
above.
[0050] Based upon the request and service information, the system
server retrieves a protocol for fulfilling the order for service
(step 162). The system server also determines if the request
involves a category of service (step 164). A category involves the
requestor making a request for a type of service rather than, for
example, identifying a particular entity for the service. In
comparison, the order for service can alternatively involve a
request for a reservation or appointment with an identified entity.
The protocol can be selected based at least upon one or more of the
following: a selected category of service; a selected service
provider; a selected type of other entity; or preferences related
to the requestor as stored, for example, in personal data 38.
[0051] Tables 2 and 3 illustrate how protocols can be indexed by
categories and entities, and stored in a database for retrieval by
the system server. Although shown indexed in tables, the protocols
can be stored in any type of data structure and linked in any way
with categories and entities. The protocols for categories can
specify, as illustrated, one or more entities for the categories,
and the protocols for each of those entities can be specified in
the data structure as illustrated in Table 3. For using personal
preferences, the system server can refine a selection of entities
or categories, based upon the preferences, before retrieving the
appropriate protocols.
2 TABLE 2 category protocol category 1 protocol 1 (including
entities 1 to m1) category 2 protocol 2 (including entities 1 to
m2) . . . . . . category N protocol N (including entities 1 to
mn)
[0052]
3 TABLE 3 entity protocol entity 1 protocol 1 entity 2 protocol 2 .
. . . . . entity N protocol N
[0053] If the request involves a category of service (step 166),
the system server selects a set of entities according to the
request and protocol (step 168). With a requested category,
fulfilling it may involve contacting several entities. The system
server also selects one of the entities in the set to be contacted
(step 174), and the protocol, possibly in combination with user
preferences, can specify the order in which to contact the
entities. Otherwise, if the request did not involve a category, the
requestor identified a particular entity, and the system server
selects one entity specified according to the request (step 170)
and contacts the entity (step 172).
[0054] The protocol can specify how to contact and potentially
request service from the entities for steps 172 and 174. For
example, it can specify phone or e-mail communication.
Alternatively, identification of the selected entity in the case of
a service provider can be used by the system server to retrieve
instructions from the service provider database concerning how to
contact the service provider. For other entities, the system server
can access, for example, the database of personal preferences or
profiles for determining how to contact those entities.
[0055] The system server then queries the entity according to the
protocol (step 176). The querying uses concepts to obtain data for
fulfilling the order for service, and the use of such concepts are
explained in the related applications identified above. The system
server also determines if audible interaction is required (step
178), which can be determined through the protocol and information
for service providers in the service provider database or for other
entities as specified in the database or personal profiles or
preferences. The interaction often involves audio interaction via a
phone call. If audio interaction is required, the system server
converts a concept determined from the protocol to corresponding
audio through a text conversion method and presents the audio
message (step 180). The conversion of text to audio for concepts is
explained in the related application identified above, and it can
involve use of a computer-generated voice or prerecorded voice
segments corresponding to the concept. For audio interaction, the
system server receives a voice response and converts it to a
corresponding concept through a voice-to-concept conversion method
(step 182). Voice-to-concept conversion techniques are also
explained in the related application identified above.
[0056] Otherwise, if audio interaction is not required, the system
server sends to the entity a text message for the concept (step
184) and receives a response (step 186). A non-audio interaction
can involve, for example, sending e-mail messages and receiving
responsive e-mail messages, or interaction via a web page for the
entity. The protocol and information relating to the entity can
determine the type of interaction and how to contact the entity
such as by specifying a phone number or e-mail address for the
entity.
[0057] Upon receiving a response to the query, the system server
constructs a sentence to fulfill the response (step 188). This
construction of a sentence can involve the use of concepts and
related techniques described in the related applications identified
above. The system server determines if the querying is complete
according to the protocol (step 190). If querying is not complete
(step 192), the system server returns to step 176 to again query
the entity according to the protocol. The repeated querying can
involve, for example, use of the next concept for the sentence or
the same concept if an acceptable response was not received.
[0058] The querying can also involve a type of negotiation with the
entity or entities contacted by the system server presenting offers
for reservations or appointments and in effect obtaining
counter-offers. For example, if the requested time (offer) for a
reservation is not available, the querying can involve obtaining an
indication of the times available (counter-offers) and then
contacting the requestor to determine if any of those times are
acceptable. The negotiation can include automatic default
alternatives for the requester, and those alternatives can be
determined, for example, through querying the requestor or from a
personal profile of the requestor. For example, the requestor may
indicate that a restaurant reservation within thirty minutes of a
specified reservation is an acceptable alternative.
[0059] The negotiation can also include multiple offers or queries
made to entities. For example, a requester may specify three sample
times for a meeting, and the system server can query individuals
with those three times to determine if everyone is available at one
of the times. This type of negotiation also provides the advantage
of helping to maintain privacy of a requestor's schedule by using
multiple times and potentially dates rather than, for example, the
requestor's preferred or only time available.
[0060] The negotiation can also involve determining a sub-set of a
group of individuals available for an appointment at a particular
time. For example, it can include determining whether a group of
three individuals among eight individuals are available for a
particular tee time and date at a golf course. Therefore, a
negotiation, as specified and implemented by the protocols, can
involve processing one or more offers, one or more counter-offers,
and groups of entities.
[0061] Once the querying is complete, as determined by the protocol
(step 192), the system server determines whether to query another
entity (step 194). This determination can be made through the
protocol or from having determined in step 164 that the request
does not involve a category; if no category is involved, the system
server only had one entity to query. If the system server has
another entity to query (step 196), it returns to step 174 to
contact another entity from the set of entities. It can determine
the next one to select through, for example, the protocol. The
system server then proceeds with querying the next entity according
to the protocol.
[0062] If there are no more entities to query (step 196), the
system server has completed attempting to fulfill the order for
service. As a result, the system server has made the appointment or
reservation through the querying or, alternatively, has determined
that it cannot fulfill the request. The system server provides
confirmation to the requestor (step 198). The confirmation can
identify the entity, along with the time and date, for the
reservation or appointment. Alternatively, it can provide notice to
the requestor that the reservation or appointment could not be
fulfilled, in which case the system server can potentially query
the requestor to attempt to make an alternate appointment or
reservation. The confirmation can be provided in many different
ways according to a default communication or as specified by the
requester preferences or profile; for example, the confirmation can
include a phone call, e-mail, or a text message presented on the
requestor's user device.
[0063] Table 4 provides an example of a protocol for querying a
restaurant to attempt to make a reservation. Table 5 provides the
example of a protocol for querying a group of individuals to
determine the first three among a group eight available for a
particular tee time for a golf outing; another protocol can be
used, such as one similar to that shown in Table 4, for contacting
the golf course to obtain an available tee time for the three
individuals. Table 6 provides an example of a protocol for querying
a group of individuals with multiple times (offers) for scheduling
a meeting. These examples also illustrate the type of negotiation
that can occur through the protocols in order, for example, to
determine a time available for the requested reservation or
individuals available for the requested tee time. Also, the
querying and confirmation for these examples can use various types
of communications, as explained above, such as text, voice, e-mail,
or other forms.
[0064] The exemplary protocols in Tables 4-6 are provided for
illustrative purposes only, and many types of protocols are
possible depending upon, for example, types of requests for
service, entities, and categories. Also, the types of requests for
services shown in Tables 4-6, and described above, are provided for
illustrative purposes only, and many types of requests for service
are possible; examples include, but are not limited to, requests
for reservations or appointments for entertainment, travel, sports,
recreation, and business-related purposes.
4TABLE 4 Protocol for restaurant Y, reservation for two on date X
ASK: are you qualified to make reservations?; IF YES, continue; IF
NO, ASK: can you get someone on the phone who is qualified?, repeat
as necessary; ASK: is a reservation available for 7:00 pm for two
on date X?; IF YES, continue to STATE step; IF NO, ASK: are there
other times available for date X?; IF YES, ASK: what are the other
times available?; LISTEN: record key phrases for times available,
end call; IF NO, end call; STATE: please reserve a table for two at
7:00 pm on date X for REQUESTOR NAME; ASK: is everything complete?;
IF YES, continue to REPORT step; IF NO, ASK: what information is
needed? LISTEN: record key phrases to identify missing information
IF TIME MISSING, STATE: 7:00 pm; IF DATE MISSING, STATE: date X; IF
NUMBER MISSING, STATE: two; IF REQUESTOR NAME MISSING, STATE:
REQUESTOR NAME; RETURN to ASK (is everything complete?); REPORT TO
REQUESTOR; IF RESERVATION MADE, STATE: you are confirmed for a
reservation for two at 7:00 pm on date X, end call; IF RESERVATION
NOT MADE; IF ALTERNATE TIMES ARE AVAILABLE, STATE: the time you
requested was not available, times ALTERNATE TIMES are available,
do you want one of those times? IF YES, ASK: which time?; LISTEN:
record key phrase for time; STATE: a reservation for that time will
be attempted, end call; RETURN to ASK step (are you qualified . . .
); IF NO, end call.
[0065]
5TABLE 5 Protocol for tee time X on date Y at golf course Z for
three individuals among a group of individuals 1-8 CONTACT an
individual, starting with individual 1; ASK: are you available for
a tee time X on date Y at golf course Z?; LISTEN: record indication
of whether the individual is available; END CALL with the
individual; ARE THREE INDIVIDUALS AVAILABLE?; IF YES, provide
confirmation of the tee time to the three available individuals;
CONTACT AVAILABLE INDIVIDUALS, STATE: a reservation has been
confirmed for a tee time X on date Y at golf course Z for AVAILABLE
INDIVIDUALS; IF NO, HAVE ALL INDIVIDUALS BEEN CONTACTED?; IF YES,
provide cancellation of tee time to those individuals who indicated
availability; CONTACT AVAILABLE INDIVIDUAL(S), STATE: the
reservation for tee time X on date Y at golf course Z has been
cancelled; IF NO, determine next individual to contact, RETURN to
CONTACT an individual step.
[0066]
6TABLE 6 Protocol for scheduling a meeting using three available
times 1-3 on date X with individuals 1-3 CONTACT an individual,
starting with individual 1; ASK: are you available at times 1, 2,
or 3 on date X for a meeting?; LISTEN: record indication of
availability for the individual; end call with the individual; HAVE
ALL INDIVIDUALS BEEN CONTACTED?; IF YES, IS THERE A MATCH WHEN ALL
ARE AVAILABLE? IF YES, select first matching time; PROVIDE
confirmation of matching time to requestor and all individuals;
CONTACT REQUESTOR AND INDIVIDUALS, STATE: you are confirmed for a
meeting on date X at MATCHING TIME; IF NO, report to requestor that
no matching times are available; CONTACT REQUESTOR, STATE: no
matching times were available for a meeting on date X with the
specified individuals; IF NO, determine next individual to contact,
RETURN to CONTACT an individual step.
[0067] While the present invention has been described in connection
with an exemplary embodiment, it will be understood that many
modifications will be readily apparent to those skilled in the art,
and this application is intended to cover any adaptations or
variations thereof. For example, various types of user devices,
hardware components for the devices and servers, and types of
network transmissions may be used without departing from the scope
of the invention. This invention should be limited only by the
claims and equivalents thereof.
* * * * *