Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
TRAVEL ALERT MESSAGING BASED ON GEOGRAPHIC LOCATION
Document Type and Number:
WIPO Patent Application WO/2015/103491
Kind Code:
A1
Abstract:
Methods, systems, and apparatuses, including computer programs encoded on computer-readable media, for generating a travel alert based on traveler information. Data related to a plurality of traveler information is transformed into traveler data and itinerary data. Traveler contract preferences are received. A geographic location is received. Based on the traveler data and itinerary data, a plurality of travelers located at the geographic location is determined. Alert content associated with the geographic location is determined. A set of one or more travelers located at the geographic location is determined. The travel alert is provided to the set of one or more travelers according to the traveler contact preferences of the set of one or more travelers.

Inventors:
ZAKABLUK ALEKSEY (US)
ZOLDOWSKI LAWRENCE (US)
WOOD DAVID (US)
Application Number:
PCT/US2015/010061
Publication Date:
July 09, 2015
Filing Date:
January 02, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZAKABLUK ALEKSEY (US)
ZOLDOWSKI LAWRENCE (US)
WOOD DAVID (US)
International Classes:
G08G1/123
Foreign References:
US20120089326A12012-04-12
US20060178140A12006-08-10
US20110302048A92011-12-08
Attorney, Agent or Firm:
BROWN, Marshall J. et al. (3000 K St. NW.Washington, District of Columbia, US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A method comprising:

receiving a plurality of traveler information;

transforming each of the plurality of traveler information into traveler data and itinerary data;

receiving a plurality of traveler contact preferences;

receiving a geographic location;

determining a plurality of travelers located at the geographic location based on the traveler data and itinerary data;

receiving alert content associated with the geographic location;

determining a set of one or more travelers to send the alert message;

providing the travel alert message to the set of one or more travelers according to the traveler contact preferences of the set of one or more travelers.

Description:
TRAVEL ALERT MESSAGING BASED ON

GEOGRAPHIC LOCATION

CROSS-REFERENCE TO RELATED APPLICATION

[0001] The present application claims the benefit of and priority to U.S. Provisional Patent Application No. 61/924,058, filed January 6, 2014, which is incorporated herein by reference in its entirety.

BACKGROUND

[0002] The internet allows people to retrieve and process information more rapidly than traditional information gathering mechanisms like television or print media. In addition, the internet offers people the ability to communicate with one another through a variety of communication mechanisms such as email and other web-based forms of messaging. Mobile technology has enhanced both of these features by allowing access to the internet from a person's cell phone. Events can occur while people are traveling that may impact a person's travel plans such as flight and hotel information changes, traffic congestion, weather, and other events that impact travel. Mobile technology enables travelers to use their cell phones to get updates and other information relating to such information and events.

SUMMARY

[0003] In general, one aspect of the subject matter described in this specification can be embodied in a method for generating a travel alert based on traveler information. Each of the plurality of traveler information is transformed into traveler data and itinerary data. Traveler contract preferences are received. A geographic location is received. Based on the traveler data and itinerary data, a plurality of travelers located at the geographic location is determined. Alert content associated with the geographic location is received. A set of one or more travelers located at the geographic location is determined. The travel alert is provided to the set of one or more travelers according to the traveler contact preferences of the set of one or more travelers. Other implementations of this aspect include corresponding systems, apparatuses, and computer-readable media configured to perform the actions of the method.

BRIEF DESCRIPTION OF THE DRAWINGS

[0004] The details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.

[0005] Fig. 1 is a flow diagram of a process for generating travel alert messages in accordance with an illustrative implementation.

[0006] Fig. 2 illustrates a block diagram of an example of a travel alert generator in accordance with an illustrative implementation.

[0007] Fig. 3 illustrates a flow diagram of a process for converting traveler information into a system readable language and a process for extracting traveler data and itinerary data from the traveler information.

[0008] Fig. 4A is an image of the dashboard of the corporate manager interface in accordance with an illustrative implementation.

[0009] Fig. 4B is an image of the dashboard of the corporate manager interface in accordance with an illustrative implementation.

[0010] Fig. 4C is an image of the dashboard of the corporate manager interface in accordance with an illustrative implementation.

[0011] Fig. 5A is an image of the dashboard of the corporate manager interface showing the entry of manual alert content to a selected traveler.

[0012] Fig. 5B is an image of the dashboard of the corporate manager interface showing the entry of manual alert content to a selected group of travelers.

[0013] Fig. 6 is a flow diagram of a process for generating travel alert

messages in accordance with an illustrative implementation.

[0014] Fig. 7 is a block diagram of a computer system in accordance

with an illustrative implementation.

[0015] Like reference numbers and designations in the various drawings indicate like elements.

DETAILED DESCRIPTION

[0016] Figure 1 is a flow diagram of a process for generating travel alert messages in accordance with an illustrative implementation. The traveler alert generating process 100 begins when a travel provider 101 books a trip for a traveler 108. The trip can be ticketed immediately or at a later time depending on the needs and preferences of the travel provider 101 and the needs and preferences of the traveler 108. When the trip is ticketed the traveler information 102 can be stored in a server queue 103 and designated by the travel provider 101 as available for use by the travel alert generator 200. Traveler information 102 can be booking information or ticketing information associated with the traveler 108. Examples of server queues 103 include but are not limited to existing computer reservation systems such as Sabre®, Apollo™, Galileo®, Amadeus®, Worldspan®, and Abacus™.

[0017] In one implementation, the travel alert generator 200 contacts the server queue 103, reads the traveler information 102 from the server queue 103, and begins a conversion process 104. The conversion process 104 converts the traveler information 102 into a system readable language 126. Once the traveler information 102 is in a system readable language 126, an extraction process 105 begins. The extraction process 105 extracts traveler data 1 10 and itinerary data 1 1 1 from the traveler infornnation 102. Traveler data 1 10 may include but is not limited to information such as traveler name, traveler email, account or company or travel provider identification, etc. Itinerary data 1 1 1 may include but is not limited to travel segment information 107 such as flight departure and arrival location and times, railroad departure and arrival location and times, and hotel arrival and departure location and times. The extraction process 105 receives geographic information 205 from a third-party service; the geographic information 205 corresponds to the travel segments 107. The extraction process 105 adds or associates the geographic information 205 to the itinerary data 1 1 1 .

[0018] A traveler 108 can access a traveler interface 109, which permits the traveler 108 to designate his or her contact preferences 210. For example, the traveler 108 can input contact preferences 210 such as a number for SMS messaging or secure messaging, an email address for email communication, a telephone number for voice communication, an instant messaging username, a social network username, etc. The traveler can then designate which of contact information is the preferred method of alert delivery. This information can be stored by the travel alert generator 200 as traveler data 1 10.

[0019] A travel alert generator 200, shown in Figure 2, includes a manager interface 1 13 which in one illustrative embodiment is a website that displays a map providing airport and train station arrival and departure information, and hotel stay information, by geographic location. A corporate travel manager 1 12 can access the web-based manager interface 1 13 to access the travel alert generator 200 dashboard 400 . In one illustrative embodiment, the dashboard 400 is a map of the earth. From the dashboard 400, the corporate travel manager can use map navigation features to view arrival, departure, and hotel stay information by geographic location. In addition, the corporate travel manager 1 12 can filter the map by travel segment type (air, rail, hotel), traveler email, traveler name, travel segment vendor (air, rail, hotel), account or company or travel provider

identification, travel or check-in or check-out date within a date range, city, airport, state/province, country, traveler information status (booked, ticketed, or both), as well as other user-defined fields. The travel alert generator 200 can store the corporate manager interface 1 13 on a server 1 15.

[0020] The travel alert generator 200 can also include a reporting function. In one implementation, the travel alert generator 200 receives report criteria 220 from the corporate travel manager 1 12 through the manager interface 1 13. The travel alert generator generates travel reports 1 14 based on the report criteria 220. Examples of report criteria 220 may include information relating to travel segments (air, rail, hotel), travel destination, hotel occupancy, air vendor, and communications previously sent by the travel alert generator 200 to travelers 108. The reports can be stored on the server 1 15, which can be the same or different server storing the corporate manager interface 1 13.

[0021] The display and reporting functionality of the travel alert generator 200 can be edited using a configuration interface 1 17. In one illustrative embodiment the configuration interface is accessed by a travel provider administrator 1 16. The functionality and content of the manager interface 1 13 and its associated reporting function is stored by the travel alert generator 200 as configuration data 1 18.

[0022] The travel alert generator 200 can deliver either or both manual alerts and automatic alerts, collectively referred to as travel alerts 230. The manual alert delivery is performed using the manager interface 1 13. The corporate travel manager 1 12 accesses the manager interface 1 13 and navigates to the dashboard 400, which in one illustrative embodiment is a map, to target specific travelers with manual alert messages. The travelers can be targeted using their geographic location 212, which can be for example, an airport, train station, hotel, or geographic area. Airports, train stations, and hotels appear on the map as icons which can be selected by the corporate travel manager. Once selected, the travel alert generator receives the geographic location 212 and presents a dialog box into which the manual alert content can be entered by the corporate travel manager 1 12. Once the manual alert content 215 is entered, the travel manager can send the alert to a traveler contact service 122, which delivers the alert to the traveler 108 as an email 123, SMS 124, secure message 125, or instant message (not shown). In one illustrative embodiment, the manual alert delivery method is determined by the traveler contact preferences 210. In another illustrative embodiment, the corporate travel manager can select a delivery method irrespective of the traveler contact preferences 210.

[0023] The travel alert generator 200 can also deliver automatic alerts. Automatic alert delivery consists of external data feeds such as weather or risk-based feeds 120 and/or third-party alert feeds 121 . These data feeds are monitored by the automatic alert service 1 19, which sends a travel alert 230 to travelers 108 based on traveler contact preferences 210. The automatic alert service 1 19 receives the automatic alert information 225 from the monitored risk-based feed 120 or third- party feed 121 . The travel alert generator 200 receives the geographic location 212 associated with the impact of the alert. In another implementation, the travel alert generator can determine the geographic location 212 associated with the impact of the alert from data received from the automatic alert information 225. The travel alert generator 200 determines a plurality of travelers 108 located at the geographic location 212 and generates automatic alert content based on stored configuration data 1 18. For example, if the automatic alert information is "severe weather in ," the travel alert generator 200 can be configured to generate automatic alert content

"Caution: Severe Weather in ." The plurality of travelers can be determined based upon the automatic alert information 225. For example, the automatic alert information 225 can be analyzed to determine if the automatic alert information 225 is associated with a particular type of travel. For example, an automatic alert information 225 can be that a particular flight or other mode of transportation is delayed. As another example, the automatic alert information 225 can indicate that there is a delay associated with a particular geographic location. For example, an airport can be experiencing a delay. In these examples, the travel alert generator 200 can determine the travelers associated with the particular flight or who are traveling through the particular geographic location. Alerts can, therefore, be targeted to relevant travelers. The travel alert generator 200 can also use the itinerary data to determine the travelers to send an alert. For example, the automatic alert information can be determined to be relevant for a particular period of time, e.g., a future road closing, current or future weather issues, etc. Using both the geographic location associated with the alert and the time period, the travel alert generator 200 can determine the travelers that will be in the geographic location within the time period or near the time period. These travelers can be identified as the travelers that should receive the alert. The travel alert generator 200 sends the automatic alert to the traveler contact service 122 for delivery to travelers 108 using the delivery method specified by traveler contact preferences 210.

[0024] Figure 2 illustrates a block diagram of an example of a travel alert generator 200 in accordance with an illustrative implementation. The travel alert generator 200 receives, converts, and extracts the traveler information 102 into traveler data 1 10 and itinerary data 1 1 1 . The travel alert generator 200 receives geographic information 205 from a third-party provider and adds or associates the received geographic information 205 with the itinerary data 1 1 1 . The travel alert generator 200 receives traveler contract preferences 210, which may be a travelers preferred method of alert delivery such as an SMS, secure message, email, or other online method of communication such as social media messaging. The travel alert generator 200 receives the geographic location 212, which may be included with the automatic alert information 225. The automatic alert information 225 may include a geographic location 212 of a travel-impacting event or the geographic location may be determined by the travel alert generator 200 from the automatic alert information 225 in connection with the description of the event as provided by the automatic alert. The travel alert generator 200 may also receive manual alert content, which is alert content provided by a corporate travel manager 1 12 through the manager interface 1 13. The travel alert generator 200 can also receive manual report criteria 220, which is report preferences of the corporate travel manager 1 12. In one embodiment, the report preferences are selected from a list of preferences stored as configuration data 1 18, entered by the travel provider administrator 1 16 through the configuration interface 1 17.

[0025] The travel alert generator 200 generates a travel alert 230 based on the inputs 102, 205, 210, 212, 215, and 225 described above. The travel alert generator 200 may also generate a travel report associated with the inputs 102, 205, 210, 212, 215, and 225, and the manual report criteria 220.

[0026] Figure 3 illustrates a flow diagram of a process 300 for storing traveler information in a server queue 103, a conversion process 104 for converting traveler information 102 into a system readable language 126 and an extraction process 105 for extracting traveler data 1 10 and itinerary data 1 1 1 from the traveler information 102. In various implementations, the process 300 is not performed by the travel alert generator 200. The conversion process 104 and the extraction process 105 of the travel alert generator 200 can be implemented on a computing device. In one implementation, the conversion process 104 and extraction process 105 are encoded on a computer- readable medium that contains instructions that, when executed by a computing device, cause the computing device to perform operations of each process.

[0027] The process 300 for storing traveler information 102 in a server queue 103 includes booking or ticketing travel, collecting traveler information 102 (302); and storing the traveler information 102 in the server queue 103 designated as available for use by the travel alert generator 200 (304).

[0028] The conversion process 104 for converting traveler information 102 into a system readable language 126 includes reading traveler information 102 from the server queue 103 (306); converting the traveler information 102 into a system readable language 126 (308); and passing the system readable language to the extraction process 105 (310).

[0029] The extraction process 105 for extracting traveler data 1 10 and itinerary data 1 1 1 from the traveler information 102 includes extracting traveler data 1 10 from the traveler information 102 (312); saving the traveler data 1 10 to the traveler database (314); extracting travel segments 107 from the traveler information 102 (316); processing the travel segments 107 (air, rail, hotel) for geographic location; contacting the third-party geographic information 205 provider for each location (320); and saving the travel segments 107 with associated geographic information 205 into itinerary data 1 1 1 (322). Traveler data 1 10 may include but is not limited to information such as traveler name, traveler email, account or company or travel provider identification, traveler contact preferences 210, etc. Itinerary data 1 1 1 may include but is not limited to travel segment information 107 such as flight departure and arrival location and times, railroad departure and arrival location and times, and hotel arrival and departure location and times.

[0030] Figure 4A is an image of the dashboard 400 of the corporate manager interface in accordance with an illustrative implementation. The corporate manager interface 1 13 includes the dashboard 400 that serves as the primary display of traveler data 1 10 and itinerary data 1 1 1 . In one illustrative implementation, the dashboard 400 is a map. The corporate travel manager 1 12 can use map navigation controls to zoom in on specific geographic locations 212, such as cities, airports, or hotels. When you zoom to a specific region of the map, icons 402 will appear representing geographic locations 212 such as cities, airports, or hotels. When no city, airport, or hotel is selected, a dialog box 404 is displayed allowing the corporate travel manager 1 12 to search for a geographic location.

[0031] Figure 4B is an image of the dashboard 400 of the corporate manager interface in accordance with an illustrative implementation. When viewing a geographic location 212 such as an airport or train station 406, the manager interface 1 13 displays a list 408 of the traveler 108 arrivals and departures at that location.

[0032] Figure 4C is an image of the dashboard 400 of the corporate manager interface in accordance with an illustrative implementation. When selecting a geographic location 212 such as a hotel 410, the corporate travel manager 1 12 is provided a list 412 of the traveler 108 check-in or check-out dates at that hotel.

[0033] Figure 5A is an image of the dashboard 400 of the corporate manager interface showing the entry of manual alert content to a specified individual traveler in one illustrative implementation. When zooming in on a region of the map, the corporate travel manager 1 12 can select a geographic location 212 such as an airport, train station, hotel, or area of the map and select individual travelers to send a manual alert. After the geographic location is selected the travel alert generator 200 displays a dialog box in which the corporate travel manager 1 12 can enter manual alert content 215.

[0034] Figure 5B is an image of the dashboard 400 of the corporate manager interface showing the entry of manual alert content to a specified group of travelers in one illustrative implementation. In addition to sending manual alerts to individual travelers, the corporate travel manager can send manual alerts to groups of travelers. When zooming in on a region of the map, the corporate travel manager 1 12 can select a geographic location such as an airport, train station, hotel, or area of the map to send a manual alert. After geographic location is selected, the travel alert generator displays a dialog box in which the corporate travel manager 1 12 can enter manual alert content 215.

[0035] Figure 6 is a flow diagram of a process for generating travel alert messages in accordance with an illustrative implementation. The process 600 can be implemented on a computing device. In one implementation, the process 600 is encoded on a computer- readable medium that contains instructions that, when executed by a computing device, cause the computing device to perform operations of the process 600.

[0036] The process 600 includes reading data related to a plurality of traveler information 102 (605). The traveler information can be booking information or ticketing information. The traveler information 102 is transformed into traveler data 1 10 and itinerary data 1 1 1 (610). The traveler data can be the traveler name, traveler email, traveler account or company or travel provider identification, etc. The itinerary data is the geographic location of the travel segments (air, train, hotel) of the traveler information. The traveler contract preference 210 of each traveler 108 is received (615). Traveler contact preferences can be email, SMS, secure messaging, or other forms of messaging including social media. A geographic location 212 is received (620). The geographic location 212 can be an airport, train station, hotel, or a geographic area. Based on the traveler data 1 10 and itinerary data 1 1 1 , determining a plurality of travelers located at the geographic location 212 (625). Alert content is received (630). Alert content can be manually entered by the corporate travel manager 1 12 or generated in response to the geographic location 212 received from an automatic alert. A set of one or more travelers 108 to send the travel alert 230 is determined (635). For example, within the plurality of travelers located at the geographic location, a set of travelers to send the alert may be determined based on instructions received from the corporate travel manager 1 12. And according to the traveler contact preferences 210 of the set of one or more travelers 108, the travel alert 230 is provided (640).

[0037] Figure 7 is a block diagram of a computer system in accordance with an illustrative implementation. The computer system or computing device 700 can be used to implement the travel alert generator 200 as well as the devices that receive the travel alert 230. The computing system 700 includes a bus 705 or other communication component for communicating information and a processor 710 or processing circuit coupled to the bus 705 for processing information. The

computing system 700 can also include one or more processors 710 or processing circuits coupled to the bus for processing information. The computing system 700 also includes main memory 715, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus 705 for storing information, and instructions to be executed by the processor 710. Main memory 715 can also be used for storing position information, temporary variables, or other intermediate information during execution of instructions by the processor 710. The computing system 700 may further include a read only memory (ROM) 710 or other static storage device coupled to the bus 705 for storing static information and instructions for the processor 710. A storage device 725, such as a solid state device, magnetic disk or optical disk, is coupled to the bus 705 for persistently storing information and instructions.

[0038] The computing system 700 may be coupled via the bus 705 to a display 735, such as a liquid crystal display, or active matrix display, for displaying information to a user. An input device 730, such as a keyboard including

alphanumeric and other keys, may be coupled to the bus 705 for communicating information and command selections to the processor 710. In another

implementation, the input device 730 has a touch screen display 735. The input device 730 can include a cursor control, such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor 710 and for controlling cursor movement on the display 735.

[0039] According to various implementations, the processes described herein can be implemented by the computing system 700 in response to the processor 710 executing an arrangement of instructions contained in main memory 715. Such instructions can be read into main memory 715 from another computer-readable medium, such as the storage device 725. Execution of the arrangement of instructions contained in main memory 715 causes the computing system 700 to perform the illustrative processes described herein. One or more processors in a multi-processing arrangement may also be employed to execute the instructions contained in main memory 715. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to effect illustrative implementations. Thus, implementations are not limited to any specific combination of hardware circuitry and software.

[0040] Although an example computing system has been described in Figure 7, implementations of the subject matter and the functional operations described in this specification can be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.

[0041] Implementations of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this

specification and their structural equivalents, or in combinations of one or more of them. The subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on one or more computer storage media for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate components or media (e.g., multiple CDs, disks, or other storage devices). Accordingly, the computer storage medium is both tangible and non-transitory.

[0042] The operations described in this specification can be performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0043] The term "data processing apparatus" or "computing device" or

"processing circuit" encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.

[0044] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

[0045] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD- ROM and DVD- ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0046] To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.

[0047] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular implementations of particular inventions. Certain features described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

[0048] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated in a single software product or packaged into multiple software products.

[0049] Thus, particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.