Abstract:
One embodiment provides a method, that may be implemented on a system, for receiving from a user a request to reschedule a scheduled itinerary of events, the request received in a natural language format; passing the request through a natural language analyzer; processing results of the natural language analyzer against at least one of a current status of progress into the scheduled itinerary and profile data of the user, the profile comprising previous changes of itineraries and preferences of the user; generating one or more options in response to the user request to modify the scheduled itinerary of events, based on available options and based on the processing of the results of the natural language analyzer against at least one of current scheduled itinerary and profile data of the user; and presenting the one or more options to the user in the natural language format in which the user submitted the request.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    Often, for various reasons, some within and some beyond the control of a traveler or a business person, appointments cannot be kept on time. For example, a traveler may be victim of transportation system delays. In other cases, a delay at an appointment may be due to a meeting that is important and cannot be cut short running past its anticipated ending time. In any case, appointments and meeting times are often wasted when one party does not attend, resulting in, at the least, annoyance and inconvenience for the other attendee(s), and sometimes resulting in more serious damaging consequences. 
         [0002]    In some cases, a GPS-dependent method and system known to the inventor may be used to notify other parties and to adjust schedules as needed. In other cases, however, the traveler does not have a GPS phone, and therefore using the system of the previously cited invention is not possible. However, most business people traveling today have the ability to make a phone call, to send an email or an SMS, or to communicate with a digital system by some electronic means. 
         [0003]    In addition, often a person has only a limited time to deal with planning and arranging for travel and events; however, it can and sometimes does happen that when a person, such as, for example, a business traveler on a layover between transit legs, attempts to transact the scheduling or rescheduling of events, the service provider he needs to contact is not available, due to failures and break-downs in a communication means. For example, there may be connectivity problems, data center problems, denial-of-service attacks, and so forth. The traveler, however, may be pressed for time and must make transactions at this time, because soon he will be out of contact for some time. 
         [0004]    Travelers often need to change their schedule. In addition to travel delays and other problems of being on the road, the traveler may also have business reasons for changing his schedule, such as, for example, needing to stay an extra day or two, to close a deal that he feels is close to completion. 
         [0005]    What is clearly needed is a system and method by which a business traveler, with a minimum of effort, can change and rearrange his schedule, for example, by extending his stay for a day, or by changing a meeting venue, etc., by interacting with the system in a way that is not very technical. 
     
    
     
       DESCRIPTION OF THE EMBODIMENTS 
         [0006]    The disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements 
           [0007]      FIG. 1  shows an exemplary overview of a system  100  according to one embodiment of the current invention; 
           [0008]      FIG. 2  shows an exemplary overview of a calendar system  200 , such as would reside in a PIM or PIM database of many users  202   a - n;    
           [0009]      FIG. 3  shows an exemplary calendar system  300  accounting for a variation in actual time of agenda U 1  of user  1   202   a;    
           [0010]      FIG. 4  shows an exemplary process  400  for tracking and rebooking events according to one embodiment of the present invention; 
           [0011]      FIG. 5  shows an overview of an exemplary system  500  for automated rescheduling, modification, or cancellation of an event, according to one embodiment of this invention; 
           [0012]      FIG. 6  shows an exemplary time diagram of the notification and rescheduling process  600  according to one embodiment of the current invention; 
           [0013]      FIG. 7  shows an exemplary time-and-interaction diagram of the transaction process  700  according to one embodiment of the current invention; 
           [0014]      FIG. 8  shows an exemplary diagram of the interaction system  800  according to one embodiment of the current invention; 
           [0015]      FIG. 9  shows an exemplary overview of the context analysis timeline  900 ; and 
           [0016]      FIG. 10  shows an exemplary flow diagram describing a process  1000  for interactions of the user with the system according to one embodiment of the present invention. 
       
    
    
     SUMMARY 
       [0017]    Some embodiments of the present invention are summarized in this section. 
         [0018]    One embodiment provides a method, that may be implemented on a system, for receiving from a user a request to reschedule a scheduled itinerary of events, the request received in a natural language format; passing the request through a natural language analyzer; processing results of the natural language analyzer against at least one of a current status of progress into the scheduled itinerary and profile data of the user, the profile comprising previous changes of itineraries and preferences of the user; generating one or more options in response to the user request to modify the scheduled itinerary of events, based on available options and based on the processing of the results of the natural language analyzer against at least one of current scheduled itinerary and profile data of the user; and presenting the one or more options to the user in the natural language format that ht user submitted the request. 
         [0019]    The present disclosure includes methods and apparatuses which perform these methods, including processing systems which perform these methods, and computer readable media which when executed on processing systems cause the systems to perform these methods. 
         [0020]    Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows. 
       DETAILED DESCRIPTION OF THE INVENTION 
       [0021]    In the following detailed description of embodiments of the invention, reference is made to the accompanying drawings in which like references indicate similar elements, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, functional, and other changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims. 
         [0022]    Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments. 
         [0023]      FIG. 1  shows an exemplary overview of a system  100  according to one embodiment of the current invention. An electronic services portal ESP  102  connects to a server  103  and a data repository  104 . The server hosts software instances  105   a - n  of the present invention, which, depending on the implementation of the system, may be one, several, or many instances. These software instances are to be considered only exemplary indications of how the software could be installed in server  103  and how it could work in conjunction with ESP  102 , personal information managers (PIMs, not shown), and main data repository  104 . System  102  connects via Internet  101  to system users  106   a - n  and suppliers  107   a - n . It is clear that these connections could also be through direct connection, through a phone system, or through any other suitable networking method, known or to be invented. 
       Proactive Agenda Management 
       [0024]      FIG. 2  shows an exemplary overview of a calendar system  200 , such as would reside in a PIM or PIM database of many users  202   a - n . Shown in detail is an exemplary agenda U 1  of user  1   202   a  (not shown). Along timeline  201  are meetings and transportation events  203   a - n , and the locations and movement paths  204   a - n  associated with events  203   a - n . For example, if a meeting MTG 1  occurs, and a car TR 1  has been ordered to pick up a person at location  1 , it is safe to assume that meeting  1  is at or near location  1 . The car is also scheduled to deliver the person to location  2 , so it is also safe to assume that meeting  2  takes place at or near location  2 . Therefore, path  1  may be derived as the most likely path of transportation between location  1  and location  2 . Similarly, a person attends meeting  2  and orders car TR 2  for transportation along path  2  to meeting  3  at location  3 . Tracking can be based on GPS location, time, schedules, and other factors. 
         [0025]      FIG. 3  shows an exemplary calendar system  300  accounting for a variation in actual time of agenda U 1  of user  1   202   a . Transportation TR 1   203   b  is delayed, and thus meetings and the following portions of transportation events  303   a - n  and locations and movement paths  304   a - n  are rescheduled. The delay does not allow the following meetings to occur on time. In this example, even though it would have been possible to reschedule meeting  2  and meeting  3 , it happens that meeting  3  is of greater importance and a decision has been made to skip meeting  2  and advance the time of meeting  3  as much as is convenient for the other attendee(s). 
         [0026]    In some cases, importance can be derived by comparing the relative position of the person(s) to be met in the other company, and the size of the business that is done. In other cases, the user defines importance, for example on a 1-3 scale, or a 1-10 scale. Defaulting based on previous meetings may also be offered. In some cases, a post meeting review may rate the meeting and be used for future meetings as a pre-defined default, or adjusted accordingly. 
         [0027]    In some cases, attendees will receive along with the schedule change message an option to vote their preference or decline alternatives, which may or may not be considered. 
         [0028]    Tracking software module  305  has observed that transportation TR 1   203   b  did not progress along path  1  from location  1  to location  2  according to schedule using a GPS function of a smart phone device, as is described below in relation to the description of  FIG. 4 . Module  305  has accordingly initiated communication with the user. As a result the decision was made by either the user or the system based on predefined rules and preferences to cancel meeting  2  and rearrange transportation for meeting  3 , and also possibly to rebook meeting. 
         [0029]      FIG. 4  shows an exemplary process  400  for tracking and rebooking events according to one embodiment of the present invention. In process  401  the GPS position of the user along the predefined route of the agenda is calculated or determined. The user&#39;s GPS position can easily be obtained from any of various newer cell phones, which commonly offer GPS functions. In some cases the GPS data may need to be enabled in the network, so system applications can query the GPS. In other cases, specialized software may be installed in a phone or other GPS device that would allow, for example, only the vendor&#39;s software to obtain the tracking data, without broadcasting the data to general phone service providers. In process  402  the current location is compared to the location where the user is supposed to be at the current time and the system estimates the progress of the event, relative to the original agenda. Based on the divergence of the user&#39;s actual position from the planned position, and in some cases, factoring in current traffic conditions and other elements affecting progress, the system projects an amount of latency for planned events. 
         [0030]    In process  404  the process branches. If the latency is not over a certain limit (no), which may be a predetermined limit or a dynamically calculated limit, the system loops to process  405 , where the system waits for a predetermined period of time before continuing back to process  401  to restart. For example, a latency of 15 minutes at a meeting may be acceptable in many cases, so by calculating the current location and the remaining way, you can predict the ETA. Also, traffic condition may be used. 
         [0031]    The delay before continuing back to process  401  provides certain granularity to the process, because the system would be over-burdened if it continually processed data on a real-time basis. For example, the system could restart the process every minute, every 5 minutes, every 10 minutes, or after any other suitable period of time. If the latency is over the limit (yes), the system moves to process  406 , where it prioritizes meetings based on information obtained from database  104  (e.g., based on predefined rules, historic data and preferences). 
         [0032]    Based on the derived priorities, in process  407  the system calculates one or more rescheduling proposals for the user and sends them to the user&#39;s communication device  420 . This device could receive such a message as an SMS, an IM, an email, as a phone call with a voice interaction system, or by any other suitable means of communication. In some cases, the system could call a designated alternate, if the user does not want to be interrupted or if he is out of reach. In process  408  the user sends a response. If the user does not accept any of the system&#39;s proposals (no), the system sends a message in process  409  to other parties, informing them of expected delay times for the next event(s). If the user accepts one of the system&#39;s proposals (yes), then in process  410  the system checks arrangements to implement the proposal with other parties  106   a - n  and suppliers  107   a - n  as needed and in process  411  it goes about the necessary rebooking, canceling, or modifying services and meetings. For example, in process  410  the system may need to check a flight first, before changing an appointment, etc., in process  411 . 
         [0033]    Although  FIG. 4  shows the confirmation sent to the user in process  410 , additional confirmations may also be sent to the user after the system finishes making all arrangements and receiving confirmations from all other parties  106   a - n  and  107   a - n . The system then continues to track the progress of the revised agenda, looping back through the process and making further adjustments if necessary. Although this example shows the delay being caused by transportation problems, it is clear that delays may be caused by any of a wide variety of factors, such as extended meeting times or delays by the user in starting out on the agenda (getting a late start). However, the principles and the proposed automatic rearrangements of schedules are the same in all cases. 
       Latency Management Assistant 
       [0034]      FIG. 5  shows an overview of an exemplary system  500  for automated rescheduling, modification, or cancellation of an event, according to one embodiment of this invention. A user sends a message, in this example, via mobile electronic communication device  510  to a wireless tower  503 . In other cases, such a request could come from any Internet- or other communication-enabled device, including but not limited to PCs, phones both wired and wireless, Internet kiosks, Internet appliances, etc. Typically tower  503  would connect to a cellular network  501  and to either PSTN  502  or Internet  101 . The message would then go to electronic services portal ESP  102  or to a user&#39;s computer  511 . The message then triggers a software instance to contact other parties  106   a - n  and suppliers  107   a - n  to make necessary adjustments to accommodate the user&#39;s delay. Said software instance could be one of those among software instances  512   a - n , which could be, for example, the user&#39;s Personal Information Manager (PIM) and associated software to manage interactions between the PIM and the user&#39;s message on the user&#39;s computer, or software instance  105   a - n , which resides on ESP server  103  and uses data repository  104 , which repository contains a copy of the user&#39;s schedule  513 . 
         [0035]      FIG. 6  shows an exemplary time diagram of the notification and rescheduling process  600  according to one embodiment of the current invention. In this example, the software instances that accomplish the automated rescheduling reside in the ESP  502 . Three columns, left to right, show the three parties in an exemplary rescheduling over time. These parties are the user  510 &#39;s mobile device in the left column; the rescheduling system components ESP  102 , which include server  103 , one or more software instances  105   a - n , in the center column; and in the right column, the user&#39;s computer  511  with its software instances  512   a - n . The passage of time during the process is shown proceeding from top to bottom in each column. In process  301 , the user sends an email from a hand-held device, such as a mobile phone  510 , saying, in effect, that he will be late by some number of minutes, for example, such as 10 minutes, or 30 minutes, and requesting the system to notify, in this case, for example, by electronic communication, the other meeting attendee(s) and service providers. 
         [0036]    In process  602 , the rescheduling system receives the message. The system retrieves the data it needs to send out notifications, in this case from the user&#39;s PIM  512 ×stored in his PC  511 , and/or from data repository  104 . In process  603 , the system matches its retrieved data to the rescheduling required by the user&#39;s delays, and, after processing this data in a similar manner as that discussed earlier, proposes certain changes, which change proposal it sends back to the user&#39;s mobile device by email or other suitable form of electronic communication. In process  604 , the user selects his desired changes, such as canceling, moving, rescheduling, rebooking, etc. from those proposed by the system and sends his selections back to the system by the same electronic communication means. In process  605 , the system implements the user&#39;s desired changes and sends messages notifying the other attendee(s)  106   a - n  and service providers  107   a - n  of the changes. In process  606  the user receives confirmation of the implemented changes and in process  607  the process ends. 
         [0037]    It is clear that many modifications and variations of this embodiment may be made by one skilled in the art without departing from the spirit of the novel art of this disclosure. In particular, in addition to electronic communication means such as email, SMS, IM, etc., messages may also be exchanged by means of a voice XML or IVR system or other, similar automated voice telephone system. In other cases, other suitable, similar messaging media or web interfaces may be offered for interaction with the system to achieve an exchange of information. These variations do not depart from the broader spirit and scope of the invention, and the examples cited here are to be regarded in an illustrative rather than a restrictive sense. 
       Tentative Booking When Service Providers Are Temporarily Unavailable 
       [0038]      FIG. 7  shows an exemplary time-and-interaction diagram of the transaction process  700  according to one embodiment of the current invention. In this example, the software instances that accomplish the automated transaction reside in the ESP  102 . Alternatively, components of the software instances may reside elsewhere. Three columns, left to right, show the three parties in an exemplary transaction over time. These parties are an exemplary user  106   x  in the left column; the electronic services portal ESP  102 , which contains the services for the present invention and whose components include server  103 , the data repository  104 , and one or more software instances  105   a - n  as needed in the center column; and in the right column, one or more service providers  107   x - z.    
         [0039]    The passage of time during the process is shown proceeding from top to bottom in each column. In process  701 , the user sends a request for a transaction, such as, for example, booking a flight, to ESP  102 . In process  702 , the ESP finds a suitable service provider from among its appropriate service providers  107   x - z . The ESP uses its records of user preferences for provider and scheduling and also data about appropriate and available service providers, all drawn from data in data repository  104 , as well as accessing data from other sources that may be available, either from other private data stores or from data accessible over the Internet and/or other public networks (not shown). 
         [0040]    In process  703 , the system finds that the preferred service provider is not responding via electronic communication, for any of various reasons, such as a connectivity problem within the ESP or at the service provider, service-related issues, maintenance-related issues, virus- and worm-related attacks, denial of service (DOS) and similar types of attacks, etc. In such a case, in processes  704  and  705 , the ESP interactively requests and takes the transaction information from the user and informs him of the problem of lack of contact with the provider. If possible, the system gives the user an estimate of the time until the lack-of-contact problem is resolved. In process  706 , the ESP repeatedly retries making contact with the service provider until it can establish contact. In process  707 , the ESP makes contact with the service provider, who has recovered and restarted its system in process  708 . 
         [0041]    Then in process  709 , the transaction is completed and the system notifies the user. In process  710 , the user receives confirmation of the transaction. It is clear that if, in process  706 , the system receives no response from the selected provider for an extended period of time, the user may be notified, or after a certain time limit has elapsed, such as, for example, less than 24 hours before a planned flight departure time, or less than, for example, less than 2 hours before a car is needed, system may propose and possibly pre-book (as described in relation to the Proactive Agenda Management and Latency Management Assistant) an alternative service to the user. This offer could be made in a manner similar to the manner described in relation to Proactive Agenda Management and Latency Management Assistant. 
         [0042]    It is clear that many modifications and variations of this embodiment may be made by one skilled in the art without departing from the spirit of the novel art of this disclosure. For example, the automatic transaction software may not be integrated into the electronic service portal, but rather, it may be a stand-alone software instance made available to users by the ESP, or it may be offered by a third party to deal with communication problems. In other cases, the transaction software may be integrated into the service provider&#39;s system to offer better availability of services. These variations do not depart from the broader spirit and scope of the invention, and the examples cited here are to be regarded in an illustrative rather than a restrictive sense. 
       Interactive Natural Language Rebooking or Rescheduling of Calendar Activities 
       [0043]      FIG. 8  shows an exemplary diagram of the interaction system  800  according to one embodiment of the current invention. A user may use any one of an array of electronic communication devices  810   a - n , such as, for example, a cell phone, a regular phone, a computer, wireless device, or any other kind of suitable device to interface through an abstraction layer  801 . This layer  801  could be a proxy server or it could be any of various different portals for different technology types, allowing the system to respond accordingly. Once the system extracts the user request in step  802 , the request is passed through a natural language analysis in step  803 , to understand the intention of the user. To enhance understanding, in step  804  the system makes context comparisons and context searches in database  104 . The system looks at the user&#39;s current situation and also his past history of changes, modifications, and preferences, as well as the user&#39;s profile information about his preferences stored in the database. 
         [0044]    This process is described in a different view with more detail in the discussion of  FIG. 9 , below. In step  805 , the system looks up options for the requested changes in conjunction with an electronic services portal such as ESP  102  or some other suitable system that can provide options. In step  806 , the system develops proposals based on the various options it has found and formats them to match, or to be compatible with, the format of the user&#39;s original request. The system then sends its proposals to the user in step  807 . In cases such as a phone call, for example, a return call could be arranged, because in some cases the system may need several minutes to develop a complete response to the user&#39;s request. In other cases, the user may decide to stay on the line and wait for the response, so he can make an immediate interaction. 
         [0045]      FIG. 9  shows an exemplary overview of the context analysis timeline  900 . The timeline of the current agenda is moving forward left to right. At the current point in time (NOW)  902  the system receives a request  912  from the user. Events  910   a - n , namely meetings MTG 1  and MTG 2  and transport TR 1  and TR 2 , are in the past and are only considered to a lesser extent. For example, in cases where there is not enough information to be used in context with the future meetings, context of the already passed meetings (or locations, or transportation, etc. as applicable) is considered. On the other hand, events  911   a - n , namely meeting MTG 3 , which is upcoming, as well as MTG 4 , hotel HTL 1 , and flight FLT 2  are all in the future and are, therefore, more important in the system&#39;s consideration of what to apply or propose changes to, and how, and the context. For example, if a user sends a request to the system asking it to make arrangements for him to stay one extra day at his present location, the system would refer to the flight FLT 2   911   d , which is the user&#39;s return flight. The system would then research arrangements to insert a hotel stay into the timeline before FLT 2  and rebook the flight one day later. It would then send the proposal to the user and, upon the user&#39;s approval, would rebook the flight and book the hotel room. 
         [0046]    In the example shown in  FIG. 9 , the user had a first meeting MTG 1   910   a , followed by a transport TR 1   910   b , for example a car service, followed by a second meeting MTG 2   910   c  and a second transport TR 2   910   d . The user is currently in the third meeting MTG 3   911   a  when he makes the request to book another night at the hotel and rebook his return flight. In this context, for example, based on some of the possible variables mentioned, the system tries to add a second night in the same hotel HTL 1   911   b  where the user is planning to stay. In the current agenda, the hotel stay would be followed by a fourth meeting MTG 4   911   c  and a return flight FLT 2   911   d . After the agenda change (not shown) an additional hotel booking HTL 2  would appear after MTG 4 , followed by a rebooked flight FLT 2 . 
         [0047]      FIG. 10  shows an exemplary flow diagram describing a process  1000  for interactions of the user with the system according to one embodiment of the present invention. In step  1001 , the user sends a request to the system to rebook services according to a planned schedule change. In step  1002 , the system retrieves the user&#39;s schedule from ESP data repository  104 . In other cases, the schedule may be retrieved from the user&#39;s personal computer, from the server of the user&#39;s company, or from any other data repository to which it has access. In step  1003 , the request is then put in language context with the events coming up and with the request. In our example, the system would rebook the flight for the next day and try to extend the hotel for one more night, In step  1004  the retrieved data is augmented with the user&#39;s history and profile, again retrieved from data store  104 . For example, the last time the user extended his stay, he could not get the new night at the hotel where he was currently booked. He preferred to change his booking for the entire trip to a different hotel, instead of moving from one hotel to another in the middle of the trip. (He was still at meeting MTG 3   911   a  and had not yet checked into hotel HTL 1   911   b ). In step  1005 , based on all the retrieved information, the system develops a set of proposals, perhaps three to five proposals so that the user is not overwhelmed with options. Preferably, the system can hold the tentative bookings of the proposals with the providers until the user accepts the proposal. If the system cannot obtain a hold for the bookings, the user is informed of the possibility and is asked to also make a second choice. The system transmits the proposals through a reciprocal interface  801  to the user&#39;s device  810   x . After the user makes a selection, either immediately or by a return call, the system in step  1006  books the user&#39;s selections and confirms them. When the bookings are done and schedule changes confirmed with users and providers  106  and  107   x - z , respectively, the process ends in step  1007 . 
         [0048]    The processes described above can be stored in a memory of a computer system as a set of instructions to be executed. In addition, the instructions to perform the processes described above could alternatively be stored on other forms of machine-readable media, including magnetic and optical disks. For example, the processes described could be stored on machine-readable media, such as magnetic disks or optical disks, which are accessible via a disk drive (or computer-readable medium drive). Further, the instructions can be downloaded into a computing device over a data network in a form of compiled and linked version. 
         [0049]    Alternatively, the logic to perform the processes as discussed above could be implemented in additional computer and/or machine readable media, such as discrete hardware components as large-scale integrated circuits (LSI&#39;s), application-specific integrated circuits (ASIC&#39;s), firmware such as electrically erasable programmable read-only memory (EEPROM&#39;s); and electrical, optical, acoustical and other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.). 
         [0050]    It is clear that many modifications and variations of this embodiment may be made by one skilled in the art without departing from the spirit of the novel art of this disclosure. These modifications and variations do not depart from the broader spirit and scope of the invention, and the examples cited here are to be regarded in an illustrative rather than a restrictive sense.