At least some embodiments of the disclosure relate to data processing systems for the presentation of travel options in response to search requests.
Currently, web applications for travel display flight search results in tabular text form, which is very verbose and contains a lot of information that is not necessary for the initial decision about which flight to choose. Displays such as these are useless on mobile devices that have a small display size. Many providers supply a subset of the data from such displays on mobile devices, but then the provider loses the ability to show comprehensive data on the small screen as well.
The embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
Systems and methods to present travel options in response to a search request are described herein. Some embodiments are summarized in this section.
In one embodiment, a computer-implemented method, comprising: receiving a search request; determining a plurality of travel options in response to the search request of a user; and presenting the travel options using a chart having a dimension graphically representing travel times of the travel options, using a computer.
The disclosure includes methods and apparatuses which perform these methods, including data processing systems which perform these methods, and computer readable media containing instructions which when executed on data processing systems cause the systems to perform these methods.
Other features will be apparent from the accompanying drawings and from the detailed description which follows.
The following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding. However, in certain instances, well known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure are not necessarily references to the same embodiment; and, such references mean at least one.
One embodiment of the disclosure provides a web application that allows individual travelers to search for flights, hotels, cars, and other travel-related services and accommodations in a clearer, more efficient and easy-to-use format, thus making sorting and choosing of travel options, such as flight search results, much easier for the end user, and as a result, making the web application that uses this technology to be more user friendly in the travel area, for both mobile and regular web.
In one embodiment, the EPS 102 includes a web site to communicate with the users 106 using a web browser. The users 160 may or may not register with the ESP 102, to search and view available travel options, such as flights, hotels, cars, parking, etc.
In one embodiment, applications running on the devices used by the users 106 (not shown in
In one embodiment, the data repository 104 stores data representing available travel options and/or the preferences of the uses 106. The data repository 104 may be a centralized database, a network of peer to peer connected computers, and/or a set of web sites.
In one embodiment, the data repository 104 stores calendar items for the users 106, which can be displayed with the search results to provide an improved way to present the travel options in relation with schedule activities of the users 106.
In some embodiments, the calendar items are stored on the devices used by the users 106, such as the personal digital assistances (PDA), cellular phones, notebook computers, etc, which run calendar applications. The user devices are further configured to selectively present the calendar items with the search results, once the search results are retrieved from the ESP 102.
For example, in one embodiment a search user interface is integrated a calendar application to present the travel options in the context of scheduled items in the calendar application of the corresponding user 106.
In table 200 of this exemplary embodiment, a timescale 208 is used to present the time information related to the travel options. An addition column 202 is used to identify the carriers of the travel options presented in the timescale 208. Other columns may be added to display information such as prices, seat availability, availability of flight connections, restrictions, promotional offers or discounts, etc. For example, a column of total price for the options represented by a row of one or more connecting options can be presented in a separate column next to the time scale 208.
In
In
In
In
In some embodiments, the symbols (e.g., 212) of the airlines can be placed outside the timeline bars (e.g., 204), closed to one of the ends of the timeline bars (e.g., 204). In some embodiments, the symbols (e.g., 212) can be placed in a separate column outside the timescale 208.
This approach is advantageous because it is intuitive for many users to think of time in this way, as everyone is accustomed to analog clocks. A circular representation also consumes finite space both horizontally and vertically, making it especially suitable for mobile devices.
It is preferred to limit the number of options presented in the format as illustrated in
Further, the price may be indicated by the color of the time bar (e.g., green for cheap and red for expensive tickets, or a shade of color between blue and red to represent the price). Alternatively or in combination, the prices can be presented via straight price bars presented near the clock. For example, the timelines can be presented along the tracks that are concentric contours surrounding the clock; and the price bars may start from a position on the corresponding tracks of the timelines and point to a same direction to allow easy comparison (e.g., horizontal or vertical price bars).
In some embodiments, color overlays, transparencies, etc. are used to overlay information on top of each other to provide a concise presentation. The Gantt chart for the display of the travel options may use logos, layover, color, etc. to organize the display of other information around the time information of the travel options.
In another instance, a user's person's daily calendar is also represented in this format, for flights, dinner, entertainment, etc. The search results of travel options can be presented in the context of the calendar items of the user.
The examples of
In one embodiment, the chart includes a plurality of bars graphically representing travel time periods between departure and arrival of the travel options; and cost indicators, such as the prices of the airline tickets, etc., are overlaid on the bars. The cost indications may include text to show a price associated with traveling via a travel option represented by a corresponding bar, or a shade of color to indicate a price range associated with traveling via a travel option represented by a corresponding bar. In one embodiment, the computer system determines the shade of color based on the price relative to prices of two of the travel options.
In one embodiment, the travel options comprise scheduled flights from airlines; and the bars represent the departure and arrival times of the flights. The bars may be arranged in a column and presented substantially parallel to each other. The bars may be substantially straight or curved to conform to a shape of a clock, with the ends of the bars positioned relative to the clock to indicate departure and arrival times of corresponding travel options represented by the bars.
In one embodiment, on the bars that represent the time information of the travel options, the chart shows transportation carriers associated with the travel time periods represented by the bars. The transportation carriers, such as airlines, can be represented by their icons, or in text.
In one embodiment, the chart includes a column to indicate transpiration carriers associated with the travel time periods represented by the bars and at least one column to list at least one of: gate information, seat availability, and availability of flight connections.
In one embodiment, the computer system also presents at least one a calendar item of the user on the timescale on which the time information of the travel options is presented.
In one embodiment, a server data processing system illustrated in
In
The inter-connect 502 interconnects the microprocessor(s) 503 and the memory 508 together and also interconnects them to a display controller and display device 507 and to peripheral devices such as input/output (I/O) devices 505 through an input/output controller(s) 506. Typical I/O devices include mice, keyboards, modems, network interfaces, printers, scanners, video cameras and other devices which are well known in the art. In some embodiments, when the data processing system is a server system, some of the I/O devices, such as printer, scanner, mice, and/or keyboards, are optional.
The inter-connect 502 may include one or more buses connected to one another through various bridges, controllers and/or adapters. In one embodiment the I/O controller 506 includes a USB (Universal Serial Bus) adapter for controlling USB peripherals, and/or an IEEE-1394 bus adapter for controlling IEEE-1394 peripherals.
The memory 508 may include ROM (Read Only Memory), volatile RAM (Random Access Memory), and non-volatile memory, such as hard drive, flash memory, etc.
Volatile RAM is typically implemented as dynamic RAM (DRAM) which requires power continually in order to refresh or maintain the data in the memory. Non-volatile memory is typically a magnetic hard drive, a magnetic optical drive, an optical drive (e.g., a DVD RAM), or other type of memory system which maintains data even after power is removed from the system. The non-volatile memory may also be a random access memory.
The non-volatile memory can be a local device coupled directly to the rest of the components in the data processing system. A non-volatile memory that is remote from the system, such as a network storage device coupled to the data processing system through a network interface such as a modem or Ethernet interface, can also be used.
In this description, various functions and operations may be described as being performed by or caused by software code to simplify description. However, those skilled in the art will recognize that what is meant by such expressions is that the functions result from execution of the code/instructions by a processor, such as a microprocessor. Alternatively, or in combination, the functions and operations can be implemented using special purpose circuitry, with or without software instructions, such as using Application-Specific Integrated Circuit (ASIC) or Field-Programmable Gate Array (FPGA). Embodiments can be implemented using hardwired circuitry without software instructions, or in combination with software instructions. Thus, the techniques are limited neither to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the data processing system.
While some embodiments can be implemented in fully functioning computers and computer systems, various embodiments are capable of being distributed as a computing product in a variety of forms and are capable of being applied regardless of the particular type of machine or computer-readable media used to actually effect the distribution.
At least some aspects disclosed can be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor, executing sequences of instructions contained in a memory, such as ROM, volatile RAM, non-volatile memory, cache or a remote storage device.
Routines executed to implement the embodiments may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically include one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects.
A machine readable medium can be used to store software and data which when executed by a data processing system causes the system to perform various methods. The executable software and data may be stored in various places including for example ROM, volatile RAM, non-volatile memory and/or cache. Portions of this software and/or data may be stored in any one of these storage devices. Further, the data and instructions can be obtained from centralized servers or peer to peer networks. Different portions of the data and instructions can be obtained from different centralized servers and/or peer to peer networks at different times and in different communication sessions or in a same communication session. The data and instructions can be obtained in entirety prior to the execution of the applications. Alternatively, portions of the data and instructions can be obtained dynamically, just in time, when needed for execution. Thus, it is not required that the data and instructions be on a machine readable medium in entirety at a particular instance of time.
Examples of computer-readable media include but are not limited to recordable and non-recordable type media such as volatile and non-volatile memory devices, read only memory (ROM), random access memory (RAM), flash memory devices, floppy and other removable disks, magnetic disk storage media, optical storage media (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks (DVDs), etc.), among others. The instructions may be embodied in digital and analog communication links for electrical, optical, acoustical or other forms of propagated signals, such as carrier waves, infrared signals, digital signals, etc.
In general, a machine readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form accessible by a machine (e.g., a computer, network device, personal digital assistant, manufacturing tool, any device with a set of one or more processors, etc.).
In various embodiments, hardwired circuitry may be used in combination with software instructions to implement the techniques. Thus, the techniques are neither limited to any specific combination of hardware circuitry and software nor to any particular source for the instructions executed by the data processing system.
Although some of the drawings illustrate a number of operations in a particular order, operations which are not order dependent may be reordered and other operations may be combined or broken out. While some reordering or other groupings are specifically mentioned, others will be apparent to those of ordinary skill in the art and so do not present an exhaustive list of alternatives. Moreover, it should be recognized that the stages could be implemented in hardware, firmware, software or any combination thereof.
In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.