The present application generally relates to travel and more specifically relates to generating and maintaining a personal travel map for users.
Conventional travel services primarily help users plan travel, allowing them to research destinations and modes of transportation. Users themselves carry a wealth of travel experiences they may maintain in a travel journal, which may reside on paper, in a computer, or in their head. These experiences can be helpful for them to plan their own travel or to help others plan travel. However conventional travel services suffer because they are generally isolated from a user's social media. Therefore, what is needed is a system and method that overcomes these significant problems found in the conventional systems as described above.
To address the problems found in conventional travel services, described herein are systems and methods for personal social travel mapping. In one embodiment, a server creates and updates a travel profile for a plurality of users. The travel profile includes at least a set of completed travel locations, a set of scheduled travel locations and a set of desired travel locations for each user. The system also analyzes the travel profile for each user and generates a data structure representing a map of the geographic boundaries of the set of completed travel locations, the set of scheduled travel locations and the set of desired travel locations for each user. These data structures (also referred to herein as a “footprint”) can be translated into a visual representation having geographic boundaries and presented in the form of a map on a display being viewed by a user. Additionally, the footprints of two or more users can be compared and analyzed to identify common travel patterns, suggest social connections between users, identify a set of users to send queries to, identify targeted advertising to send to a user and filter content items. These users can be part of a private social network, rather than being open to the public, providing privileged access to each users footprint and travel experiences.
In an alternative embodiment, the server device is augmented with a mobile device having a location tracking capability. The mobile device executes an application that automatically notifies the server device of a user's travel. The application also provides messaging capabilities that allows a user of the mobile device to communicate with other users via the server device and allows the server device to initiate communications with any user within their private network or potentially with other users that could be invited to join their network.
In one embodiment, the server device uses a user's social connections to other users to filter comments on content items. Specifically, the server device analyzes the comments associated with a content item being viewed by a first user and excludes those comments that were not authored by a second user having an existing social connection with the first user.
Other features and advantages of the present invention will become more readily apparent to those of ordinary skill in the art after reviewing the following detailed description and accompanying drawings.
The structure and operation of the present invention will be understood from a review of the following detailed description and the accompanying drawings in which like reference numerals refer to like parts and in which:
Certain embodiments disclosed herein provide for personal social travel mapping. For example, one method disclosed herein allows for a server device to analyze the travel footprint for two or more users and identify common travel patterns, suggest social connections between users, identify a set of users to send queries to, identify targeted advertising to send to a user. The server device can also filter content items being delivered to a user based on the user's footprint. After reading this description it will become apparent to one skilled in the art how to implement the invention in various alternative embodiments and alternative applications. However, although various embodiments of the present invention will be described herein, it is understood that these embodiments are presented by way of example only, and not limitation. As such, this detailed description of various alternative embodiments should not be construed to limit the scope or breadth of the present invention as set forth in the appended claims.
The user device 20 or 30 may be any sort of processor enabled device such as described later with respect to
The travel module 100 is configured to receive travel information associated with a user and update a travel profile for the user. The travel module may receive such information through a user interface presented to a user on the monitor of a user device being viewed by the user. For example, the travel module may receive information that is entered into data entry fields that are part of a user interface that is displayed in a web browser that is presented to a user on the monitor of a user device being viewed by the user. The travel profile may include a variety of information such as a location where the user was born, locations where the user previously resided and currently resides, a set of completed travel locations that the user has visited in the past, a set of scheduled travel locations that the user is scheduled to visit in the future, and a set of desired travel locations that the user would like to visit in the future. The travel module 100 also allows the user to maintain a journal with information corresponding to the user's travel locations.
In one embodiment, the travel module 100 receives travel information as input from a travel application executing on a mobile device of a user. Travel information received from a travel application executing on a mobile device of a user may include location information, for example, information originating from a location tracking capability of the mobile device such as a global positioning system (“GPS”) radio and corresponding software. The travel module 100 is configured to incorporate the travel information into the user's travel profile to accurately and automatically update the user's footprint in a very timely fashion.
The social module 110 is configured to allow users to establish connections to other users of the system or invite other users to join the system and their social network in order to gain privileged shared access to each other's footprint and travel experiences. It is also configured to interface with one or more third party social network applications and leverage existing third party user connections to establish user connections. For example, the social module 110 may access a user's Facebook profile and identify Facebook friends and then suggest that the user invite the Facebook friend to connect as users within the travel server. Other third party social network applications may also be accessed, for example Instagram, Twitter and LinkediN. In one embodiment, a user's connections are separated into personal and business connections.
In one embodiment, the social module 110 is configured to analyze a travel query submitted by a user and search the footprints of a user's connections within the travel server (i.e., a user's friends), and identify one or more user connections that include locations responsive to the analyzed travel query.
In one embodiment, the social module 110 is configured to analyze comments associated with a content item being viewed by a user and compare the author of each comment to the user's connections. The social module 110 advantageously excludes or collapses out of view those comments written by authors who are not also one of the user's connections. For example, the social module 110 analyzes the user authored comments associated with a digital media item (e.g., a travel story) and excludes all comments authored by users who are not currently in the list of user connections (i.e., friends) of the user.
In one embodiment, the social module 110 interfaces with an application executing on a user's mobile device to allow the user to send messages to one or more users. For example, the application executing on the user's mobile device receives message information as an input from the user and provides the message information to the social module 110. The social module 110 parses a message content and a list of recipients (i.e., one or more recipients) from the message information and sends the message content to the users in the list of recipients. The social module 110 is also configured to provide response messages from the one or more message recipients to the user.
In one embodiment, the application executing on a user's mobile device provides the social module 110 with the current location of the mobile device and the social module 110 identifies a list of one or more of the user's connections that have a footprint that is associated with the current location. A user's footprint may be associated with a particular location by way of the having the location in the set of completed travel locations that the user has visited in the past, or the set of scheduled travel locations that the user is scheduled to visit in the future, or the set of desired travel locations that the user would like to visit in the future, or the location where the user currently lives. The social module 110 advantageously can prompt the user to request that the user send a message to one or more of the user's connections that have a footprint that is associated with the current location.
The social module 110 is also configured to analyze the content of one or more digital media items being provided to a device having a display being viewed by the user. The social module 110 advantageously compares the content of the digital media item to the user's footprint and identifies those digital media items that include content that is related to the user's footprint. The social module 110 excludes those digital media items that are not related to the user's footprint from being presented to the user on the display of the device. For example, the social module 110 analyzes a news feed or twitter feed or Instagram feed or other source of digital media items and excludes all items that are not related to the user's footprint.
The footprint module 120 is configured to analyze travel information in a user's travel profile and generate a data structure representing a map of the geographic boundaries of the set of completed travel locations that the user has visited in the past, the set of scheduled travel locations that the user is scheduled to visit in the future, the set of desired travel locations that the user would like to visit in the future, and the location where the user currently lives, has lived in the past, or where the user was born. The footprint module 120 is also configured to generate a visual representation based on the data structure, where the visual representation has geographic or geopolitical boundaries and is presented in the form of a map on a display being viewed by a user. The geographic or geopolitical boundaries can be at the zip code, city, state, province, country, or continent level and can also be a uniquely defined region that is very large (e.g., North America, Latin America) or very small (e.g., neighborhood or school district).
The analytics module 130 is configured to analyze a user's footprint data and identify targeted advertising for delivery to a display being viewed by the user based on the analysis that determines a correspondence between an advertisement and the set of completed travel locations that the user has visited in the past, the set of scheduled travel locations that the user is scheduled to visit in the future, the set of desired travel locations that the user would like to visit in the future, and the location where the user currently lives. In one embodiment, the analytics module 130 obtains a current location for the user (e.g., by receiving location tracking information from an application executed on a mobile device being carried by the user) and compares the current location to advertising information and to the users footprint to identify a correspondence between the current location as well as the users travel habits and one or more advertisements. The analytics module 130 is also configured to cause the one or more corresponding advertisements to be presented on the display of a user device.
The analytics module 130 is also configured to receive a search criteria from a user and identify a geographic location corresponding to the search criteria and then search a plurality of user footprints to generate a list users that correspond to the geographic location corresponding to the search criteria. Advantageously, the plurality of user footprints searched can be limited to only friends of the user or the plurality of footprints searched can be further limited or limited in some other fashion or not limited at all.
The analytics module 130 is also configured to analyze the footprints of a plurality of users to identify common travel patterns, for example a visit to a first travel location followed by a visit to a second travel location and a mode of transportation between the first and second travel locations. These common travel patterns allow the analytics module 130 to suggest travel location destinations when a user is planning future travel. For example, if a user selects the first travel location as a destination for an upcoming trip, the analytics module 130 can present on a display being viewed by the user a suggestion to add the second travel location as an additional destination and further suggest the mode of transportation for traveling between the first and second travel locations. Furthermore, the analytics module 130 is configured to analyze travel information and determine a travel score rating for each user. The travel score rating can be used to rank users against each other or as a selection criteria for the particular targeted advertising received by the user. Additionally, the analytics module 130 is configured to analyze travel information and determine a travel score rating for a segment of travel from a first travel location to a second location, perhaps with one or more travel locations between the first and second travel locations. One particular advantage of scoring the trek is that the analytics module can suggest alternative travel location destinations when a user is planning future travel based on the difficulty of the trek (i.e., the trek score). For example, if a user selects the first travel location as a destination for an upcoming trip followed by a second location with one or more destinations in between, the analytics module 130 can present on a display being viewed by the user a suggestion to alter the one or more destinations in between based on the difference in the trek score between the user's original sequence of destinations and the analytics module 130 suggested sequence of destinations that has a lower trek score and is therefore more easily achieved. The analytics module 130 may even suggest one or more modes of transportation for traveling between the destinations between the first and second travel locations.
The user interface module 140 is configured to present information on a display being viewed by a user and receive input from a user and provide the user input for processing.
The GPS module 200 is configured to obtain location tracking information from a location tracking service of the mobile device. For example, in one embodiment the mobile device has a GPS radio and corresponding software that obtains location information for the mobile device. The GPS module 200 is configured to access the location information and provide the location information to the travel server device. The location information may be in the form of raw GPS data or it may be translated into a more commonly understood format by the GPS module 200 or before the GPS module 200 accesses the location information.
The messaging module 210 is configured to allow the user of the mobile device to send and receive messages with other users of the travel server. In one embodiment, the messaging module 210 allows the user to compose and send a message from a mobile device to one or more users of the travel server and the messaging module 210 also allows the user to receive and read a message from the travel server or from one or more users of the travel server. For example, when a user arrives at a new travel location that is new to the user's footprint, the travel server may cause the messaging module 210 to prompt the user to send a message to all of the user's friends that have an association with the new travel location in their respective footprints.
The user interface module 220 is configured to present information on a display of the mobile device and receive input from a user of the mobile device and provide the user input to the mobile application or the travel server for processing.
Upon receiving the input, the travel server stores the input in memory in association with the first user as shown in step 305. Next, in step 310 the input is translated into map data. In one embodiment, this translation includes creating or updating a data structure that represents a map of the geographic boundaries of the set of completed travel locations, the set of scheduled travel locations and the set of desired travel locations for the first user. Additional information related to the geographic boundaries such as the previously described digital media/digital content items (e.g., text, image, audio, video, or any combination of these).
At any time after the data structure has been created, a visual representation of the data structure can be prepared, as shown in step 315. The visual representation can then be presented in the form of a map on a display being viewed by a user, as shown in step 320. Next, the travel server obtains the footprint (i.e., data structure) for a second user that has an existing friend connection with the first user. A visual representation of the second user's data structure is prepared in step 330 and then the second user's visual representation is presented on the same display as an overlay to the first user's visual representation. Advantageously, where the first and second user's visual representations overlap to indicate that both users have the same location/region in their respective footprints, the visual presentation of that location/region on the display can be modified to indicate the overlap. For example, when the first user's visual representation is presented on the display, the country of France may be shown in a first color to indicate that the first user has visited France. Subsequently, when the second user's visual representation is also presented on the display, the country of France may be shown in a second color to indicate that both the first user and the second user have visited France. Alternatively, or in addition, such comparative information may also be presented in different formats such as a table or list format alone or in combination with a more geographical map presentation.
In one embodiment, the first user's footprint includes a plurality of travel locations and accordingly, the included content items are each related to at least one of the travel locations saved in the first user's footprint. Other information (e.g., venue locations, modes of transportation, journal entries, etc.) can also be included in the user's footprint to broaden the scope of content items that are identified as included content items.
Next, in step 420 the travel sever identifies current friends of the first user and analyzes the footprints of those friends to identify a subset of the first user's friends that have a connection to the first user's current location in their respective footprints. Then in step 425 the travel server advantageously prompts the first user to send a message to the one or more friends in the subset of friends that have a connection to the first user's current location. Additionally, in step 530 the travel server may prompt the user to post content (e.g., text, images, audio, video, etc.) related to the first user's current location. Additionally, in step 535 the travel server identifies any advertising messages related to the first user's current location and causes those advertisements to be presented on a display of a device being viewed by the first user as shown in step 540. Alternatively, the travel server may place the related advertisements in a queue for later delivery to a display of a device being viewed by the first user.
The system 550 preferably includes one or more processors, such as processor 560. Additional processors may be provided, such as an auxiliary processor to manage input/output, an auxiliary processor to perform floating point mathematical operations, a special-purpose microprocessor having an architecture suitable for fast execution of signal processing algorithms (e.g., digital signal processor), a slave processor subordinate to the main processing system (e.g., back-end processor), an additional microprocessor or controller for dual or multiple processor systems, or a coprocessor. Such auxiliary processors may be discrete processors or may be integrated with the processor 560.
The processor 560 is preferably connected to a communication bus 555. The communication bus 555 may include a data channel for facilitating information transfer between storage and other peripheral components of the system 550. The communication bus 555 further may provide a set of signals used for communication with the processor 560, including a data bus, address bus, and control bus (not shown). The communication bus 555 may comprise any standard or non-standard bus architecture such as, for example, bus architectures compliant with industry standard architecture (“ISA”), extended industry standard architecture (“EISA”), Micro Channel Architecture (“MCA”), peripheral component interconnect (“PCI”) local bus, or standards promulgated by the Institute of Electrical and Electronics Engineers (“IEEE”) including IEEE 488 general-purpose interface bus (“GPIB”), IEEE 696/S-100, and the like.
System 550 preferably includes a main memory 565 and may also include a secondary memory 570. The main memory 565 provides storage of instructions and data for programs executing on the processor 560. The main memory 565 is typically semiconductor-based memory such as dynamic random access memory (“DRAM”) and/or static random access memory (“SRAM”). Other semiconductor-based memory types include, for example, synchronous dynamic random access memory (“SDRAM”), Rambus dynamic random access memory (“RDRAM”), ferroelectric random access memory (“FRAM”), and the like, including read only memory (“ROM”).
The secondary memory 570 may optionally include a internal memory 575 and/or a removable medium 580, for example a floppy disk drive, a magnetic tape drive, a compact disc (“CD”) drive, a digital versatile disc (“DVD”) drive, etc. The removable medium 580 is read from and/or written to in a well-known manner. Removable storage medium 580 may be, for example, a floppy disk, magnetic tape, CD, DVD, SD card, etc.
The removable storage medium 580 is a non-transitory computer readable medium having stored thereon computer executable code (i.e., software) and/or data. The computer software or data stored on the removable storage medium 580 is read into the system 550 for execution by the processor 560.
In alternative embodiments, secondary memory 570 may include other similar means for allowing computer programs or other data or instructions to be loaded into the system 550. Such means may include, for example, an external storage medium 595 and an interface 570. Examples of external storage medium 595 may include an external hard disk drive or an external optical drive, or and external magneto-optical drive.
Other examples of secondary memory 570 may include semiconductor-based memory such as programmable read-only memory (“PROM”), erasable programmable read-only memory (“EPROM”), electrically erasable read-only memory (“EEPROM”), or flash memory (block oriented memory similar to EEPROM). Also included are any other removable storage media 580 and communication interface 590, which allow software and data to be transferred from an external medium 595 to the system 550.
System 550 may also include an input/output (“I/O”) interface 585. The I/O interface 585 facilitates input from and output to external devices. For example the I/O interface 585 may receive input from a keyboard or mouse and may provide output to a display. The I/O interface 585 is capable of facilitating input from and output to various alternative types of human interface and machine interface devices alike.
System 550 may also include a communication interface 590. The communication interface 590 allows software and data to be transferred between system 550 and external devices (e.g. printers), networks, or information sources. For example, computer software or executable code may be transferred to system 550 from a network server via communication interface 590. Examples of communication interface 590 include a modem, a network interface card (“NIC”), a wireless data card, a communications port, a PCMCIA slot and card, an infrared interface, and an IEEE 1394 fire-wire, just to name a few.
Communication interface 590 preferably implements industry promulgated protocol standards, such as Ethernet IEEE 802 standards, Fiber Channel, digital subscriber line (“DSL”), asynchronous digital subscriber line (“ADSL”), frame relay, asynchronous transfer mode (“ATM”), integrated digital services network (“ISDN”), personal communications services (“PCS”), transmission control protocol/Internet protocol (“TCP/IP”), serial line Internet protocol/point to point protocol (“SLIP/PPP”), and so on, but may also implement customized or non-standard interface protocols as well.
Software and data transferred via communication interface 590 are generally in the form of electrical communication signals 605. These signals 605 are preferably provided to communication interface 590 via a communication channel 600. In one embodiment, the communication channel 600 may be a wired or wireless network, or any variety of other communication links. Communication channel 600 carries signals 605 and can be implemented using a variety of wired or wireless communication means including wire or cable, fiber optics, conventional phone line, cellular phone link, wireless data communication link, radio frequency (“RF”) link, or infrared link, just to name a few.
Computer executable code (i.e., computer programs or software) is stored in the main memory 565 and/or the secondary memory 570. Computer programs can also be received via communication interface 590 and stored in the main memory 565 and/or the secondary memory 570. Such computer programs, when executed, enable the system 550 to perform the various functions of the present invention as previously described.
In this description, the term “computer readable medium” is used to refer to any non-transitory computer readable storage media used to provide computer executable code (e.g., software and computer programs) to the system 550. Examples of these media include main memory 565, secondary memory 570 (including internal memory 575, removable medium 580, and external storage medium 595), and any peripheral device communicatively coupled with communication interface 590 (including a network information server or other network device). These non-transitory computer readable mediums are means for providing executable code, programming instructions, and software to the system 550.
In an embodiment that is implemented using software, the software may be stored on a computer readable medium and loaded into the system 550 by way of removable medium 580, I/O interface 585, or communication interface 590. In such an embodiment, the software is loaded into the system 550 in the form of electrical communication signals 605. The software, when executed by the processor 560, preferably causes the processor 560 to perform the inventive features and functions previously described herein.
The system 550 also includes optional wireless communication components that facilitate wireless communication over a voice and over a data network. The wireless communication components comprise an antenna system 610, a radio system 615 and a baseband system 620. In the system 550, radio frequency (“RF”) signals are transmitted and received over the air by the antenna system 610 under the management of the radio system 615.
In one embodiment, the antenna system 610 may comprise one or more antennae and one or more multiplexors (not shown) that perform a switching function to provide the antenna system 610 with transmit and receive signal paths. In the receive path, received RF signals can be coupled from a multiplexor to a low noise amplifier (not shown) that amplifies the received RF signal and sends the amplified signal to the radio system 615.
In alternative embodiments, the radio system 615 may comprise one or more radios that are configured to communicate over various frequencies. In one embodiment, the radio system 615 may combine a demodulator (not shown) and modulator (not shown) in one integrated circuit (“IC”). The demodulator and modulator can also be separate components. In the incoming path, the demodulator strips away the RF carrier signal leaving a baseband receive audio signal, which is sent from the radio system 615 to the baseband system 620.
If the received signal contains audio information, then baseband system 620 decodes the signal and converts it to an analog signal. Then the signal is amplified and sent to a speaker. The baseband system 620 also receives analog audio signals from a microphone. These analog audio signals are converted to digital signals and encoded by the baseband system 620. The baseband system 620 also codes the digital signals for transmission and generates a baseband transmit audio signal that is routed to the modulator portion of the radio system 615. The modulator mixes the baseband transmit audio signal with an RF carrier signal generating an RF transmit signal that is routed to the antenna system and may pass through a power amplifier (not shown). The power amplifier amplifies the RF transmit signal and routes it to the antenna system 610 where the signal is switched to the antenna port for transmission.
The baseband system 620 is also communicatively coupled with the processor 560. The central processing unit 560 has access to data storage areas 565 and 570. The central processing unit 560 is preferably configured to execute instructions (i.e., computer programs or software) that can be stored in the memory 565 or the secondary memory 570. Computer programs can also be received from the baseband processor 610 and stored in the data storage area 565 or in secondary memory 570, or executed upon receipt. Such computer programs, when executed, enable the system 550 to perform the various functions of the present invention as previously described. For example, data storage areas 565 may include various software modules (not shown) that are executable by processor 560.
Various embodiments may also be implemented primarily in hardware using, for example, components such as application specific integrated circuits (“ASICs”), or field programmable gate arrays (“FPGAs”). Implementation of a hardware state machine capable of performing the functions described herein will also be apparent to those skilled in the relevant art. Various embodiments may also be implemented using a combination of both hardware and software.
Furthermore, those of skill in the art will appreciate that the various illustrative logical blocks, modules, circuits, and method steps described in connection with the above described figures and the embodiments disclosed herein can often be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled persons can implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the invention. In addition, the grouping of functions within a module, block, circuit or step is for ease of description. Specific functions or steps can be moved from one module, block or circuit to another without departing from the invention.
Moreover, the various illustrative logical blocks, modules, and methods described in connection with the embodiments disclosed herein can be implemented or performed with a general purpose processor, a digital signal processor (“DSP”), an ASIC, FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but in the alternative, the processor can be any processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
Additionally, the steps of a method or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium including a network storage medium. An exemplary storage medium can be coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The processor and the storage medium can also reside in an ASIC.
The above description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles described herein can be applied to other embodiments without departing from the spirit or scope of the invention. Thus, it is to be understood that the description and drawings presented herein represent a presently preferred embodiment of the invention and are therefore representative of the subject matter which is broadly contemplated by the present invention. It is further understood that the scope of the present invention fully encompasses other embodiments that may become obvious to those skilled in the art and that the scope of the present invention is accordingly not limited.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2017/165666 | 3/23/2017 | WO | 00 |