# Patent

## Title
Methods and systems for processing schedule data

## Abstract

Methods and systems comprising receiving travel request data; retrieving schedule data associated with the travel request data, the schedule data being further associated with a scheduled travel time; retrieving availability data associated with the travel request data, the availability data being further associated with an available travel time; generating representation data representing the schedule data and the availability data, the representation data representing the schedule data and/or the availability data differently based on a whether an itinerary complies with an organization's travel policies; and sending the representation data.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application is a Continuation of U.S. patent application Ser. No. 13/606,494 filed Sep. 7, 2012, which is incorporated by reference in its entirety.


BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 depicts a system, according to an embodiment of the invention.
FIG. 2 depicts a scheduling display system, according to an embodiment of the invention.
FIG. 3 depicts a search process, according to an embodiment of the invention.
FIGS. 4A-4C depict an interface, according to embodiments of the invention.


DETAILED DESCRIPTION OF SEVERAL EMBODIMENTS
The systems and methods described herein may use one or more computers. A computer may be any programmable machine capable of performing arithmetic and/or logical operations. In some embodiments, computers may comprise processors, memories, data storage devices, and/or other commonly known or novel components. These components may be connected physically or through network or wireless links. Computers may also comprise software which may direct the operations of the aforementioned components. Computers may be referred to with terms that are commonly used by those of ordinary skill in the relevant art, such as servers, PCs, mobile devices, and other terms. It will be understood by those of ordinary skill that those terms used herein are interchangeable, and any computer capable of performing the described functions may be used. For example, though the term “server” may appear in the following specification, the disclosed embodiments are not limited to servers.
Computers may be interconnected via one or more networks. A network may be any plurality of completely or partially interconnected computers wherein some or all of the computers are able to communicate with one another. It will be understood by those of ordinary skill that connections between computers may be wired in some cases (i.e. via Ethernet, coaxial, optical, or other wired connection) or may be wireless (i.e. via WiFi, WiMax, or other wireless connection). Connections between computers may use any protocols, including connection oriented protocols such as TCP or connectionless protocols such as UDP. Any connection through which at least two computers may exchange data may be the basis of a network.
FIG. 1 depicts a system 100 according to an embodiment of the invention. Elements of the system 100 may enable the display of information such as travel schedule information. The system 100 of FIG. 1 may comprise one or more computers in communication with one another via a network 102 such as the internet. Those of ordinary skill in the art will appreciate that other embodiments may comprise computers that are interconnected via other types of networks. One or more of the computers may be client computers 101. Client computers 101 may be personal computers or handheld devices including web browsers, for example. Rich travel information may be displayed in a concise graphical format, allowing for display on, for example, a large personal computer screen, a smaller mobile phone screen, or displays of any size in between which may be associated with a client computer 101. One or more of the computers may be global distribution systems (GDS) 106 such as Sabre, Apollo, Galileo, Worldspan, Amadeus, or Abacus, or supplier itinerary systems 107, which may be associated with suppliers of various products or services. One or more of the computers may comprise a schedule display system 200, which may communicate with the GDS 106, supplier itinerary system 107, client computers 101, or any combination thereof, as described in greater detail below. The schedule display system 200 may receive travel request information from a client device over a computer network, for example. This travel request information may include an origin and one or more destinations, and requested dates and/or dates and times for departure from and/or arrival at each location. The schedule display system 200 may return schedule information for various options available to meet these requests to the client computer 101. The client computer 101 may display the schedule information.
FIG. 2 depicts details of a schedule display system 200 according to an embodiment of the invention. The schedule display system 200 in this embodiment may be in communication with the network 102, GDS 106, supplier itinerary systems 107, or any combination thereof, as described above. The schedule display system 200 may comprise a GDS query module 201, an itinerary query module 202, a database query module 203, a cache query module 205, a client interface module 207, or a results cache 208, or any combination thereof. The functions of these components are described in greater detail with respect to FIGS. 4A-4C below. The schedule display system 200 may also comprise a schedule database 204 and/or an availability cache 206. The schedule database 204 may include schedule data for a variety of travel options. For example, the schedule database 204 may include an airline schedule database such as that provided by OAG. The availability cache 206 may store recent search results which may provide an approximate understanding of what options may or may not be available.
For example, there are many places to get schedules: a GDS, airlines, data feed (e.g., OAG) with just schedules. OAG may not tell you what is sold out or the price, but it may be very fast and inexpensive to look up this information. A GDS may also tell us this information, but it may take longer and be more expensive to ask and get a response (e.g., 15 seconds). We may want to strike a balance between the two. The availability cache 206 may take slow sources that have real availability and cache that information so it is faster to look it up, even though this cached information may change since it has been cached. The schedule database 204 may, for example, comprise OAG data, which is fast to obtain. 201 is slow so we can cache that (208). The GDS query module 201 may also query client interface module 207. Accessing supplier itinerary system 107 and/or GDS 106 may be slow, so we can cache this information in results cache 208. In an embodiment, the results cache 208 and availability cache 206 may be combined. It will be understood by those of ordinary skill in the relevant art that components may be omitted, changed, and/or added in various embodiments. In some cases, the components may be distributed among multiple computers. It will be further understood by those of ordinary skill in the relevant art that different components may perform the functions described below than those shown in this FIGURE.
FIG. 3 depicts a search process 300 according to an embodiment of the invention. A user interacting with a client computer 101 may input partial or complete travel search criteria, for example a trip origin, a first destination, a date of travel, and the like. The criteria may be transmitted over the network 102 to the schedule display system 200. In 302, the client interface module 207 may receive the search criteria. For example, several trip itineraries may be put in a search criteria. Results meeting this search criteria may be found by looking at the OAG data and/or cached data.
In 304, the database query module 203 may run queries against one or more databases or inventory systems, such as, for example, the schedule database 204. The schedule database 204 may include schedule data for airline flights, rail systems, other transportation options, or any combination thereof. The schedule database 204 may include only the schedules, not the actual availability, so that it may be queried rapidly using a relational database or other database technology because it may be essentially static (it may change infrequently). For example, OAG information may be very fast to look up (e.g., it may be sorted by departure and arrival airport). But OAG data may not have actual availability, up to date information (e.g., cancelled flight because of weather), or price information, or any combination thereof.
In 306, the cache query module 205 may run queries against one or more caches, for example the availability cache 206. In the event that users of client computers 101 have asked for similar schedules and actual availability in the past, the availability cache 206 may contain data indicating whether a given flight, rail journey, etc. has any seats available. The availability cache 206 may be less up to date than data contained in the GDS 106 or supplier itinerary system 107 in some instances, but the availability cache 206 may also be queried rapidly.
In 307, the client interface module 207 may send results obtained by the database query module 203 and cache query module 205 to the client computer 101 via the network 102.
In 308, the GDS query module 201 may query the external GDS 106 via the network 102 or a direct connection. For example, a GDS 106 may be contacted directly or cached GDS information may be stored so that it may be accessed faster. The cache information may be updated periodically.
In 310, the itinerary query module 202 may query the external supplier itinerary system 107 via the network 102 or a direct connection. For example, a supplier itinerary system 107 may be contacted directly or cached information may be stored so that it may be accessed faster. The cache information may be updated periodically.
The GDS 106 and supplier itinerary system 107 may have data about real time availability of travel options. As these systems may be maintained by third parties, and these queries may be more time consuming than local database or cache queries in some cases, the client interface module 207 may send results obtained by the database query module 203 and cache query module 205 to the client computer 101 before the GDS 106 and supplier itinerary system 107 are queried.
As results from the GDS 106 and supplier itinerary system 107 are received, in 320, the results may be sent to the client computer. For example, the client interface module 207 may send results obtained by the GDS query module 201 to the client computer 101, and the client interface module 207 may send results obtained by the itinerary query module 202 to the client computer 101. This may allow a schedule display of the client computer 101 to be updated as information is retrieved. Initial results may be displayed quickly, and this may allow a user to begin making travel decisions based on the initial results quickly. The client computer 101 may display concise schedule information, as described in greater detail below.
FIG. 4A depicts an interface 400 according to an embodiment of the invention. The interface 400 may be displayed on a screen associated with a client computer 101, for example. After a traveler provides their origin, their first destination, and the date of travel as described above, the system may perform processes such as those described with respect to FIG. 3 above. The resulting data may be sent to the client computer 101, and this may enable the client computer 101 to display a graphical interface 400 on screen to the traveler in near real time. Travel searches may generate hundreds or thousands of results for given travel queries. The visual presentation of those results may assist a user trying to identify a travel option for a trip being planned.
This interface 400 may include a timeline 410 and one or more rectangular regions 415. The rectangular regions 415 may each represent one or more itineraries. Shapes other than rectangles may be used to represent the various regions 415 on the timeline 410 in various embodiments. The regions 415 may be placed on the timeline 410 at locations corresponding to the departure date and time of the itinerary or itineraries, if the traveler specified a departure date and/or time. The regions 415 may be placed on the timeline 410 at a location corresponding to the arrival date and time of the itinerary or itineraries, if the traveler specified an arrival date and/or time. The regions 415 may be colored differently based on the number of connections or stops, for example. In some cases, such as for corporate travel systems, the regions 415 may also be colored differently based on whether or not the specific itinerary complies with a corporate travel policy. In another example, regions may be displayed above or below the timeline to designate either number of stops/connections or whether the itinerary is in or out of policy. The interface 400 example shows a traveler requesting departure at 3 PM on March 30th, with non-stop flights displayed in the upper row of the timeline and one-stop flights below. Another example interface may display in-policy flights above and out of policy flights below. If no itineraries are found for a search, a timeline 410 may be displayed without any rectangular regions 415, or the user may be informed of the failed search in some other way.
FIG. 4B depicts an interface according to an embodiment of the invention. In this example, only non-stop flights are shown. For the outbound flights, the regions 415 may be based on departure time, and for the return flight the regions 415 may be based on arrival time.
FIG. 4C depicts an interface according to an embodiment of the invention. In this example, if a user selects (e.g., by mousing over, clicking, touching, or otherwise selecting) a specific region, the itinerary represented by that region may be shown in greater detail. If multiple itineraries are available at similar times, multiple itineraries may be displayed. The initial display of the schedule may be concise, and more information may be retrieved without having to do the full travel search. In some examples, pricing may be displayed on selection as well.
In some examples, as the user changes search criteria, the timeline 410 and the regions 415 may automatically adjust to the new criteria. This can be performed on a web page, such as, for example, via AJAX (Asynchronous Javscript and XML) technology, as well as in a mobile application or client/server application. Additionally or alternatively, the user may be able to explicitly request a refresh by interacting with a refresh widget (e.g. a button).
Some users may be unable to perceive colors or may have disabilities that may prevent them from being able to interact with a computing device with a mouse or view a computer screen. Governmental entities (and some private corporations) may reject products unless the same product can be used by all employees. In some examples, the code that represents the timeline 410 and regions 415 on the display may be accompanied by additional instructions. An assistive technology (such as the screen reader JAWS) may use those extra instructions to display the information represented on the timeline 410, for example by reading the schedule or describing the timeline verbally to allow a user to interact with the application.
The timeline 410 may enable a traveler to learn about travel options before attempting a search that may eliminate appealing options. For example, a traveler who wishes to fly from Houston, Tex. to Bangalore, India may want to fly out on a specific Monday morning. However, the only flights that depart on weekday mornings may involve two connections. Were the traveler to fly out on an evening, the traveler may be able to fly on a one connection itinerary. Fewer connections may correspond to a shorter overall travel time and a lower risk of missed connections and itinerary disruptions. Because the timeline 410 may show flight times based on connection, if the user is interested in a one connection flight, they may now know to broaden their search criteria to encompass evening flights. In another example, a traveler may need to attend a noon meeting in Chicago. The traveler may not know if there is a flight that arrives early enough to be able to fly out the morning of the meeting, or if the traveler needs to fly in the night before the meeting. Before the traveler finalizes their search request, the timeline 410 may reveal that there are no morning flights that arrive in time for the meeting, and the traveler can choose to search for flights the night before the meeting.
While various embodiments have been described above, it should be understood that they have been presented by way of example and not limitation. It will be apparent to persons skilled in the relevant art(s) that various changes in form and detail may be made therein without departing from the spirit and scope. In fact, after reading the above description, it will be apparent to one skilled in the relevant art(s) how to implement alternative embodiments. Thus, the present embodiments should not be limited by any of the above-described embodiments.
In addition, it should be understood that any figures which highlight the functionality and advantages are presented for example purposes only. The disclosed methodology and system are each sufficiently flexible and configurable such that they may be utilized in ways other than that shown.
Further, the purpose of any Abstract of the Disclosure is to enable the U.S. Patent and Trademark Office and the public generally, and especially the scientists, engineers and practitioners in the art who are not familiar with patent or legal terms or phraseology, to determine quickly from a cursory inspection the nature and essence of the technical disclosure of the application. An Abstract of the Disclosure is not intended to be limiting as to the scope of the present invention in any way.
Although the term “at least one” may often be used in the specification, claims and drawings, the terms “a”, “an”, “the”, “said”, etc. also signify “at least one” or “the at least one” in the specification, claims and drawings.
Additionally, the term “comprising” or similar terms in the specification, claims and drawings should be interpreted as meaning “including, but not limited to.”
Finally, it is the applicant's intent that only claims that include the express language “means for” or “step for” be interpreted under 35 U.S.C. 212, paragraph 6. Claims that do not expressly include the phrase “means for” or “step for” are not to be interpreted under 35 U.S.C. 212, paragraph 6.

## Claims

1. A method comprising:
performing processing associated with receiving, with a client interface module in communication with a computer comprising a database and a cache, travel request data;
performing processing associated with retrieving, with a database query module in communication with the computer, schedule data associated with the travel request data from the database, the schedule data being further associated with a scheduled travel time;
performing processing associated with retrieving, with a cache query module in communication with the computer, availability data associated with the travel request data from the cache, the availability data being further associated with an available travel time;
performing processing associated with generating, with the client interface module, representation data representing the schedule data and the availability data, the representation data representing the schedule data and/or the availability data differently based on a whether an itinerary complies with an organization's travel policies; and
performing processing associated with sending, with the client interface module, the representation data via a computer network.

2. The method of claim 1, further comprising:
performing processing associated with receiving, with the client interface module, updated travel request data;
performing processing associated with retrieving, with the database query, updated schedule data associated with the updated travel request data from the database, the schedule data being further associated with an updated scheduled travel time;
performing processing associated with retrieving, with the cache query, updated availability data associated with the updated travel request data from the cache, the updated availability data being further associated with an available travel time;
performing processing associated with updating, with the client interface module, the representation data to include the updated schedule data and the updated availability data; and
performing processing associated with sending, with the client interface module, the updated representation data via the computer network.

3. The method of claim 1, further comprising performing processing associated with generating, with the client interface module, instructions that permit a screen reader or other assistive technology to verbally describe the representation data.

4. The method of claim 1, wherein a region on the displayed representation data corresponds either to a single travel itinerary or to multiple travel itineraries that have similar time characteristics.

5. The method of claim 1, wherein the itinerary comprises: airline, rail system, date of departure, time of departure, date of arrival, time of arrival, departure location, arrival location, locations of any intermediate stops or connections, date and/or time of any intermediate stops or connections, price of the itinerary, or any combination thereof.

6. The method of claim 1, further comprising performing processing associated with receiving, with the client interface module, a user request to display the representation data, wherein the user request comprises a hovering of a cursor over the region, a mouse click on the region, a touch screen input on the region, or any combination thereof.

7. The method of claim 1, wherein the scheduled travel time and the available travel time are travel times for transportation options comprising airline flights, rail travel, or any combination thereof.

8. The method of claim 1, wherein the travel request data includes a travel event type and a travel request attribute.

9. The method of claim 8, wherein the travel event type comprises air travel, rail travel, or any combination thereof.

10. The method of claim 8, wherein the travel request attribute comprises a departure location, a destination, a date of desired departure, a date and time of desired departure, a date and time range of desired departure, a date of desired arrival, a date and time of desired arrival, a date and time range of desired arrival, a mode of transportation, a provider of transportation, or any combination thereof.

11. The method of claim 1, wherein the representation data further represents the schedule data and/or the availability data differently based on a number of stops or connections.

12. The method of claim 1, wherein the database comprises data from a data source that is fast and/or inexpensive to obtain.

13. The method of claim 1, wherein the database comprises OAG data.

14. The method of claim 1, wherein the cache comprises data that is slow and/or expensive to obtain.

15. The method of claim 1, further comprising: performing processing associated with searching real-time availability data based on search criteria determined after viewing the availability data.

16. The method of claim 15, wherein the real-time availability data comprises data from a data source that is slow and/or expensive to obtain.

17. The method of claim 15, wherein the real-time availability data comprises GDS data and/or supplier inventory data.

18. A system comprising:
a processor configured for:
receiving, with a client interface computer module comprising a database and a cache, travel request data;
retrieving, with a database query module, schedule data associated with the travel request data from the database, the schedule data being further associated with a scheduled travel time;
retrieving, with a cache query module, availability data associated with the travel request data from the cache, the availability data being further associated with an available travel time;
generating, with the client interface module, representation data representing the schedule data and the availability data, the representation data representing the schedule data and/or the availability data differently based on whether an itinerary complies with an organization's travel policies; and
sending, with the client interface module, the representation data via a computer network.

19. The system of claim 18, wherein the processor is further configured for:
receiving, with the client interface module, updated travel request data;
retrieving, with the database query, updated schedule data associated with the updated travel request data from the database, the schedule data being further associated with an updated scheduled travel time;
retrieving, with the cache query, updated availability data associated with the updated travel request data from the cache, the updated availability data being further associated with an available travel time;
updating, with the client interface module, the representation data to include the updated schedule data and the updated availability data; and
sending, with the client interface module, the updated representation data via the computer network.

20. The system of claim 18, wherein the processor is further configured for generating, with the client interface module, instructions that permit a screen reader or other assistive technology to verbally describe the representation data.

21. The system of claim 18, wherein a region on the displayed representation data corresponds either to a single travel itinerary or to multiple travel itineraries that have similar time characteristics.

22. The system of claim 18, wherein the itinerary comprises: airline, rail system, date of departure, time of departure, date of arrival, time of arrival, departure location, arrival location, locations of any intermediate stops or connections, date and/or time of any intermediate stops or connections, price of the itinerary, or any combination thereof.

23. The system of claim 18, wherein the processor is further configured for receiving, with the client interface module, a user request to display the representation data, wherein the user request comprises a hovering of a cursor over the region, a mouse click on the region, a touch screen input on the region, or any combination thereof.

24. The system of claim 18, wherein the scheduled travel time and the available travel time are travel times for transportation options comprising airline flights, rail travel, or any combination thereof.

25. The system of claim 18, wherein the travel request data includes a travel event type and a travel request attribute.

26. The system of claim 25, wherein the travel event type comprises air travel, rail travel, or any combination thereof.

27. The system of claim 25, wherein the travel request attribute comprises a departure location, a destination, a date of desired departure, a date and time of desired departure, a date and time range of desired departure, a date of desired arrival, a date and time of desired arrival, a date and time range of desired arrival, a mode of transportation, a provider of transportation, or any combination thereof.

28. The system of claim 18, wherein the representation data further represents the schedule data and/or the availability data differently based on a number of stops or connections.

29. The system of claim 18, wherein the database comprises data from a data source that is fast and/or inexpensive to obtain.

30. The system of claim 18, wherein the database comprises OAG data.

31. The system of claim 18, wherein the cache comprises data that is slow and/or expensive to obtain.

32. The system of claim 18, further comprising: performing processing associated with searching real-time availability data based on search criteria determined after viewing the availability data.

33. The system of claim 32, wherein the real-time availability data comprises data from a data source that is slow and/or expensive to obtain.

34. The system of claim 32, wherein the real-time availability data comprises GDS data and/or supplier inventory data.