[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.
[0002] The present invention relates to an apparatus and method for automatically making reservations or appointments using interactive voice recognition techniques.
[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.
[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.
[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]
[0010]
[0011]
[0012]
[0013]
[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.
[0019]
[0020] Planner module
[0021] Once the planner module
[0022] A learning module
[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).
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
[0024] Processing to fulfill the request is further explained in the web-based personal assistance applications identified above.
[0025]
[0026] A wireless device
[0027] Communications through networks
[0028] System server
[0029] In addition to receiving requests over networks
[0030] System server
[0031] System server
[0032] Network
[0033]
[0034] Memory
[0035] Although server
[0036]
[0037] Memory
[0038] Transmitter/receiver
[0039] Short range transmitter/receiver
[0040] In addition, even if a wireless device does not contain short range transmitter/receiver
[0041] Although wireless device
[0042] Exemplary hardware components for wireline devices, such as the examples provided above, can include the same components as wireless device
[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
[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]
[0048] The system server determines whether to prompt the requester for service information (step
[0049] If the system server requires more information from the requestor (step
[0050] Based upon the request and service information, the system server retrieves a protocol for fulfilling the order for service (step
[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.
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]
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
[0054] The protocol can specify how to contact and potentially request service from the entities for steps
[0055] The system server then queries the entity according to the protocol (step
[0056] Otherwise, if audio interaction is not required, the system server sends to the entity a text message for the concept (step
[0057] Upon receiving a response to the query, the system server constructs a sentence to fulfill the response (step
[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
[0062] If there are no more entities to query (step
[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.
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.
[0065]
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.
[0066]
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.
[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.