REFERENCE TO RELATED APPLICATIONS
FIELD OF THE INVENTION
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.
- BACKGROUND OF THE INVENTION
The present invention relates to an apparatus and method for automatically making reservations or appointments using interactive voice recognition techniques.
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.
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.
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.
- SUMMARY OF THE INVENTION
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.
BRIEF DESCRIPTION OF THE DRAWINGS
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.
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,
FIG. 1 is a diagram of a system for processing requests for service;
FIG. 2 is a diagram of a network for communicating with wireless and wireline devices and service providers to process requests for service;
FIG. 3 is a diagram of exemplary components of a server for processing requests for service;
FIG. 4 is a diagram of exemplary components of a wireless device; and
FIGS. 5 and 6 are a flow chart of a method for processing a service order for automatically making a reservation or appointment.
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).
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.
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.
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.
- Request Processing
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.
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.
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.
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.
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.
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).
|TABLE 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 |
Processing to fulfill the request is further explained in the web-based personal assistance applications identified above.
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.
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.
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.
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.
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.
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.
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.
- Server Components
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.
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.
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.
- Wireless Device Components
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.
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.
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.
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.
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™ 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.
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.
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.
- Automated Reservation and Appointment System
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
| ||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) |
| || |
| ||TABLE 3 |
| || |
| || |
| ||entity ||protocol |
| || |
| ||entity 1 ||protocol 1 |
| ||entity 2 ||protocol 2 |
| ||. . . ||. . . |
| ||entity N ||protocol N |
| || |
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
|TABLE 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. |
|TABLE 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. |
| || |
|TABLE 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. |
| || |
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.