US20170276493A1 - Identifying future location and providing path crossing indications - Google Patents
Identifying future location and providing path crossing indications Download PDFInfo
- Publication number
- US20170276493A1 US20170276493A1 US15/425,125 US201715425125A US2017276493A1 US 20170276493 A1 US20170276493 A1 US 20170276493A1 US 201715425125 A US201715425125 A US 201715425125A US 2017276493 A1 US2017276493 A1 US 2017276493A1
- Authority
- US
- United States
- Prior art keywords
- user
- future location
- future
- location
- program code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 239000000470 constituent Substances 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 21
- 230000000694 effects Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000593989 Scardinius erythrophthalmus Species 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/023—Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
-
- H04W4/028—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
-
- H04W4/206—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/20—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
- H04W4/21—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72457—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to geographic location
-
- H04M1/72572—
Definitions
- Location-based services for mobile phones focus on current location. These services are popular, and they include navigation, traffic, weather, coupons, travel check-in, restaurant reviews, photo sharing, local discovery (convenience store), nearest ATM, show-times, gaming, enhanced 911, people locators, and social networking. If a person's planned, routine and extemporaneous (errands) future locations can be determined, new location-based services may be optimized and personalized to solve important problems.
- Future location is very sensitive information.
- people want to privately share that location information with select people (for instance that they plan to go to the movies which is shared with close friends).
- location-based applications and services have not provided solutions that adequately address future location.
- the subject matter herein is a technique for predicting or estimating the location of people in the future (“future location”).
- a user of a mobile device may use the technique to obtain future location-based situation awareness, e.g., a future location route that is displayed on the user's mobile device.
- That future location route comprises the user's future locations through time and space, e.g., a set of planned meetings at successive locations in a given geographic area such as a set of city blocks.
- a service that provides the user's mobile device with the future location route may also alert the user of potential threats to the user's planned activities, such as a restaurant being over-booked.
- the user's mobile device may also receive a future location route for at least one other person associated with the user in a social network (e.g., a Facebook® friend).
- the other person's future location route may be overlaid on the user's route so that one or both individuals receive advance notifications of their potential to have their respective paths being “crossed” during a future time period.
- FIG. 1 is an exemplary system of computing entities in which the future location-based methods of the disclosure may be implemented
- FIG. 2 illustrates a representative future location route map generated by the system
- FIG. 3 illustrates a representative interface by which a user may identify one or more preferences to select persons or groups of persons whose presence at given distances and/or times are to be brought to the user's attention;
- FIG. 4 illustrates a representative output of the system describing a user's future location route and potential overlaps with other individuals that are associated with the user;
- FIG. 5 illustrates how future location routes may be overlaid upon one another to facilitate the notifications to one or both of the users
- FIG. 6 illustrates a further example of a mobile device application and its associated interfaces.
- the future location platform is facilitated, preferably through a service provider.
- a service provider preferably through a service provider. This is not a limitation, as the techniques may be implemented as a standalone product or service.
- the service provider may be the same entity that provides the end user service, or any other entity.
- the service provider operates a web site that is Internet-accessible through a web browser on the mobile device (or other machine such as the end user's PC).
- a “system” that implements the subject matter of this disclosure includes a mobile device client 100 , a server 102 , and a third party integration layer 104 .
- the integration layer 104 may comprise part of the server 102 if the service provider has access to the location and traffic data (as will be described below).
- the mobile device client preferably is downloaded to and installed in the mobile device in any convenient manner.
- the end user opens his or her device browser to the service provider web site and selects a link to download and install the client.
- the client may be provided as original equipment on the mobile device or otherwise pushed to and installed in the device in any convenient manner.
- the end user may obtain the client by responding to an SMS or other invitation.
- the client, server and integration layers each comprise a number of functional components.
- This representation is meant to be for convenience of illustration and description, and it should not be taken to limit the scope of the invention as one or more of the functions may be combined.
- these components are implemented in software (as a set of processor-executable computer instructions, associated data structures, and the like).
- One or more of the functions may be combined or otherwise implemented in any convenient manner (e.g., in hardware, in firmware, in combined hardware and software, or the like).
- the mobile device typically includes a micro-browser or other graphics rendering engine for displaying information to the end user in the usual manner.
- the device is Internet-accessible and interacts with the server 102 using known Internet protocols such as HTTP, HTTPS, and the like.
- the server 102 is shown as a single device but this is not a requirement either; one or more machines, programs, processes, or other code may comprise the server and be executed on one or more machines (in one or more networked locations).
- a representative mobile device is a smartphone or tablet, such as the iPhone® (or iPad®) or an AndroidTM-based phone, but this is not a limitation.
- Such devices typically comprise a CPU (central processing unit), such as any Intel- or AMD-based chip, computer memory, such as RAM, and a drive.
- the device software includes an operating system (e.g., Apple iOS, Android, or the like), and generic support applications and utilities.
- the device may also include a graphics processing unit (GPU).
- GPU graphics processing unit
- Such a mobile device also includes a touch-sensing device or interface configured to receive input from a user's touch and to send this information to the processor.
- the mobile device is any wireless client device, e.g., a cellphone, pager, a personal digital assistant (PDA, e.g., with GPRS NIC), a mobile computer with a smartphone client, or the like.
- PDA personal digital assistant
- Other mobile devices in which the technique may be practiced include any access protocol-enabled device (e.g., a Blackberry® device, an AndroidTM-based device, or the like) that is capable of sending and receiving data in a wireless manner using a wireless protocol.
- Typical wireless protocols are: WiFi, GSM/GPRS, CDMA or WiMax.
- These protocols implement the ISO/OSI Physical and Data Link layers (Layers 1 & 2) upon which a traditional networking stack is built, complete with IP, TCP, SSL/TLS and HTTP.
- the mobile device is a cellular telephone that operates over GPRS (General Packet Radio Service), which is a data technology for GSM networks.
- GPRS General Packet Radio Service
- a given mobile device can communicate with another such device via many different types of message transfer techniques, including SMS (short message service), enhanced SMS (EMS), multi-media message (MMS), email, WAP, paging, or other known or later-developed wireless data formats.
- SMS short message service
- EMS enhanced SMS
- MMS multi-media message
- email WAP
- WAP paging
- paging or other known or later-developed wireless data formats.
- a mobile device as used herein is a 3G- (or next generation) compliant device that includes a subscriber identity module (SIM), which is a smart card that carries subscriber-specific information, mobile equipment (e.g., radio and associated signal processing devices), a man-machine interface (MMI), and one or more interfaces to external devices (e.g., computers, PDAs, and the like).
- SIM subscriber identity module
- MMI man-machine interface
- the techniques disclosed herein are not limited for use with a mobile device that uses a particular access protocol.
- the mobile device typically also has support for wireless local area network (WLAN) technologies, such as Wi-Fi.
- WLAN is based on IEEE 802.11 standards.
- a representative infrastructure in which the method may be practiced is a service.
- a representative technology platform that implements the service comprises machines, systems, sub-systems, applications, databases, interfaces and other computing and telecommunications resources.
- a service provider comprises an Internet Protocol (IP) switch, a set of one or more web server machines, a set of one more application server machines, a database management system, and a set of one or more administrative server machines.
- IP Internet Protocol
- a representative web server machine comprises commodity hardware (e.g., Intel-based), an operating system such as Linux, and a web server such as Apache 2.x.
- a representative application server machine comprises commodity hardware, Linux, and an application server such as WebLogic 9.2 (or later).
- the database management system may be implemented as an Oracle (or equivalent) database management package running on Linux.
- the infrastructure may include a name service, FTP servers, administrative servers, data collection services, management and reporting servers, other backend servers, load balancing appliances, other switches, and the like.
- Each machine typically comprises sufficient disk and memory, as well as input and output devices.
- the software environment on each machine includes a Java virtual machine (JVM) if control programs are written in Java.
- JVM Java virtual machine
- the web servers handle incoming requests, and they export a management interface.
- the application servers manage the basic functions of the service including, without limitation, business logic. As will be described, the application servers may also implement the automated techniques of this disclosure.
- cloud computing is a model of service delivery for enabling on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service.
- configurable computing resources e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services
- SaaS Software as a Service
- PaaS Platform as a service
- IaaS Infrastructure as a Service
- the platform may comprise co-located hardware and software resources, or resources that are physically, logically, virtually and/or geographically distinct.
- Communication networks used to communicate to and from the platform services may be packet-based, non-packet based, and secure or non-secure, or some combination thereof.
- a representative machine on which the software executes comprises commodity hardware, an operating system, an application runtime environment, and a set of applications or processes and associated data, that provide the functionality of a given system or subsystem.
- the functionality may be implemented in a standalone machine, or across a distributed set of machines.
- the client 100 and the server 102 include various functional components and associated data stores to facilitate the operation.
- the operation of the disclosed method may be carried out using system components other than as shown in FIG. 1 .
- the client 100 includes a future location client Comm Manager 114 , and the server includes its own connected calendar client manager 103 . These data stores are used to facilitate the creation and display of a future location platform.
- the server 102 also includes a database (e.g. MySQL) 105 for storing location information, as well as a user profile database 107 for storing user preference data.
- the integration layer provides one or more application programming interfaces (APIs), such as a geo-coding API 109 for providing the server with information about the destination location, as well as a mapping and traffic API 111 for providing the server with map data and real-time (or historic) traffic data.
- the geo-coding API provides destination location coordinates, preferably by reverse geo-coding addresses in the end user's PIM.
- the mobile device actual location is provided using GPS, A-GPS, or some other data service, which obtains the device location is a known manner.
- Data is provided (via API 111 ) from a data service provider or obtained by the application natively.
- any convenient data services may be used or otherwise integrated into the connected calendar offering.
- the event data includes fields for date, time, activity, and location.
- the location is a street address.
- the event data may include groups with whom the event may be shared and may be categorized as work, sport, entertainment or other category set in preferences.
- a service provider or other source may be used to obtain a destination location address upon receiving some request for such information.
- a social network e.g., Facebook
- Future location may be determined from an airport code or a flight code with departure and arrival times, or in a similar manner.
- the PC- or web-based calendar 108 at some point is synchronized to a mobile PIM native calendar 110 .
- the appointment event data may be entered into the PIM native calendar 110 directly.
- a Client Comm Manager 114 reads the mobile device calendar 110 over a connection, such as an industry standard JSR 75 link.
- the appointment event data is assimilated by a Client Comm Manager 114 , which transfers the data to the server 102 , preferably via HTTP.
- This data is received at the server 102 and processed by an agenda analyzer component 116 .
- the agenda analyzer 116 provides the processed data to a parse engine 118 , which is also connected to the third party integration layer 104 , preferably via XML.
- the geo-coding API 109 takes unstructured address information, assesses its quality, adds one or more geo-codes, and structures that data into XML.
- the structured and geo-code data is stored in the database 105 .
- a set of user preferences (such as locations of home, work, daily commute times of arrival), security data, and current location (typically, the mobile device last-known location) data are uploaded to the server, such as by a preferences specification component 113 operating in the client 100 .
- This preference data is stored in the user profile database 107 .
- the user's profile database 107 also organizes the user's social graph, according to the user's preferences. According to the user's relationship with people in their social graph, the user chooses people whose plans they wish to subscribe to; and organize people who follow the user's plans into groups.
- Third party social networking APIs 122 may be utilized to facilitate the organization of the social graph.
- the FutureLocation Engine 119 determines the FutureLocation path, preferably as follows. It combines planned locations uploaded from the client calendar 110 with routine locations determined from addresses entered into the preferences, and the times associated with those entries and extemporaneous locations broadcasted through social networks determines the chronological order of future locations through which the user will travel. For instance if an appointment is prior to the normal arrival time at work, the FutureLocation engine assumes the user will have traveled from home to that first appointment. If the last appointment is after work but closer to the work address, then the home address the logic determines the user will depart from the work address to the last appointment. Of course, these are just representative examples.
- the FutureLocation Engine logic calculates a user's future locations through time and space and records these as a series of points (e.g., time, latitude and longitude or t, x, y, z points). Using these future location points, the mapping engine determines the route to be traveled between each successive location. By subtracting the predicted duration of the trip from the planned arrival times, the user's departure time is calculated. This data is passed to the SpaceTime Engine 121 .
- the SpaceTime engine 121 represents the user's path through time and space recording data points at 15 minute intervals (or some other time interval) between departure time and arrival time.
- the Spacetime Engine uses logic to determine if the user remains at the location, for instance, arriving home with no planned appointments that evening (in this example, the spacetime coordinate remains unchanged while the user is at home).
- the Spacetime path is passed back to the database 105 and stored. It is possible to use linear lines between future locations, and not the detailed routes following roads, to make the calculations simpler.
- each event is private or is identified by a social group tag. If a user's event is tagged with a group the social engine 128 determines the group and the constituent members of the group, or friends. A record of the event is placed in the database 105 for each friend, and these items make up a friend plan, which includes opportunities to socially interact without necessarily being a commitment. These events can also be organized as lists under activity categories as mentioned above.
- the Path Crossing Engine assimilates the future location paths for a user and compares the future location paths to that of their friends, social graph or wider groups of like minded people. By day, hour or minute increments the distance, or proximity, between the future locations of friends is measured. Paths may physically cross or may come close to crossing the tangent of the other user's path. Timing may mean that paths are crossed but temporally not synchronized.
- the Path Crossing engine provides opportunities for meeting or introductions based on the most convenient time, place or gap in their mutual schedules. For instance, FIG. 2 shows the user arrives at Logan airport on the “red eye” flight at 3:1 am. The user has 3 meetings that day (in Malden, in Cambridge, and in downtown Boston). These meetings may be shared or private.
- the Path Crossing engine indexes the future location table and compares all locations for people in the user's social graph.
- Thresholds may be set for relationship, distance and timing, e.g. using a user interface such as shown in FIG. 3 , which is representative. For instance, using an input menu, the user may select whether the contact is a close friend, an acquaintance or a business contact, and/or whether such person is going to be within certain select distances (e.g., 250 ft, 500 ft, 1000 ft) or times (within 15 minutes, 30 minutes or 1 hour, etc.) as the user continues through his or her day.
- select distances e.g., 250 ft, 500 ft, 1000 ft
- times within 15 minutes, 30 minutes or 1 hour, etc.
- the user's path is crossed by Jeremy, who the user has identified as a close friend.
- the proximity is within 200 ft and 15 minutes.
- the service provides the user with an indication of the potential crossing.
- the user has the opportunity to send a message and arrange to meet in person.
- the algorithm may calculate the time when the shortest distance separates the friends.
- the algorithm may also calculate the time a given number (e.g., three (3) or more friends) are in the closest physical or temporal proximity.
- the Path Crossing engine may also provide appropriate notifications if users change their plans or run late.
- the Path Crossing engine may access the user's address book or online directory and indicate when a user may be nearby a customer office or a client's home.
- the Path Crossing engine may access location information, from third party APIs, indicating an individual habitually visits a location, like a coffee shop, or the like, and then present a probability that the friend may be at some particular intersection.
- the interface managers manage personal 123 , social 124 , situational 125 , and contextual 126 data relevant to events and future locations.
- the personal interface manager 123 indexes the database for personal calendar events. Other relevant information may be assimilated, for instance time and location-based weather, other friends that have joined the event or trip time or distance information added from the mapping engine 120 .
- the social interface manager 124 indexes the database for friend's events, i.e., events that have been shared but are not subscribed. Other relevant information is included in the fields including, for example, who created the event, who is subscribed to the event, weather and trip information, and so forth.
- the social interface manager may organize social events into event categories as mentioned above.
- the distance to a friend's event may be used to determine the importance of the opportunity and its display may be adjusted through the user preferences.
- the social interface manager 124 may also present path crossing opportunities determined by the Path Crossing engine. As previously explained, there may be preferences set to determine the distance or time threshold under which a friend triggers a path crossing opportunity or the number of such events.
- the situational interface manager 125 draws from the database 105 the future locations and the time-space path coordinates.
- An interaction with the mapping engine overlays maps, routes, predicted traffic and predicted weather along the time space calendar path.
- the alert engine 127 is programmed to push a notification to the user's device. For example, assume that the calendar event indicates a flight on the following Thursday and thunderstorms are predicted; in such case a notification may be provided.
- Such information may be received from a third party flight status API 132 , which indicates a flight status is changed from on time to delayed.
- the contextual interface manager 126 draws from the database 105 the future locations and the time-space path coordinates.
- An interaction with the mapping engine 120 overlays maps and routes accesses third party APIs for relevant entertainment events 129 , advertisements 130 and coupons 131 . Relevance is driven by time, location and subject line of event or set by a user's preferences.
- the server communicates to the client via a client manager, and in some circumstances mentioned above via the alert engine 127 .
- the client map/data manager 101 presents data on the display according to the design of the graphic user interface.
- FIG. 4 illustrates a display “crossing paths” tab that may be displayed on the user's device when the user logs into the service.
- This tab provides an agenda display format.
- a tab displays, preferably in chronological order, all the event on the user's timeline (e.g., his or her events, friend's events, crossing path opportunities, and the like). Color-coding may be used to highlight differences.
- FIG. 5 is another example of a path crossing display that may be made to one or both of the individuals whose paths are anticipated to intersect (based on the information received and processed by the location platform).
- FIG. 6 illustrates a further example showing three (3) display screens that are available in a mobile device application that implements the client-side of the future location functionality.
- the left portion illustrates preferences for path crossings.
- the check boxes indicate which groups of friends that a user wishes to be alerted (of path crossing opportunities).
- the drop box indicates the distance (e.g., in miles) within which a friend must travel to trigger an alert or other notification.
- the middle portion of the figure illustrates the user's schedule in an agenda format. In this agenda format, events are shared with friends and profile pictures (of the friends) subscribing to the event are shown below the subject line. Each event shows subject, time and date, time and location-based weather, the friends subscribed to the event, and so forth.
- the display on the right portion of the drawing shows the actual locations of each event for day, e.g., as map pins.
- the display also shows the route that connects the dots, as well as the friends whom the path crossing engine has determined will cross the route (when and where
- Path crossing settings can be changed in the user's “profile.”
- the service functions separately to events.
- a path crossing opportunity may occur when the user is between two private events.
- the user may choose “groups” to be included in the settings, or he or she may switch off the function. Groups are a way to share some plans with some friends, other plans with other friends or keep plans totally private. So, if the user shares an event, like going to the movies, with his or her “close friends” group, only people in the “close friends” group will be able to see that event on their “Friends' Plans” page.
- the service may provide several default groups: family, close friends, friends and co-workers. The user may add more groups go into “profile”>“Groups” and add a group. Then the new group becomes available and the user can select friends to add to his or her new group.
- a “Followers” function may also be implemented.
- Followers are people who have chosen to follow a user's plans. They may be friends or they may be people the user vaguely knows or does not know at all. Preferably, the user will be notified if he or she has a new follower. Until the user assigns the new follower to a group, preferably the follower cannot see the user's plans (unless the event is a public plan). When the user assigns the follower to a group they can only see events that have been tagged to be visible to that group. If the user wishes to “Block” someone, he or she can select a “Block” tab next to their name. It is also possible to Un-Block someone later.
- the user can also vary the distance, physical proximity threshold when the path crossing notification will be activated.
- the described technique provides a privacy-first, geo-social calendar that allows a user to see when his or her path will cross those of his or her friends without having to share specific appointments (unless desired to do so).
- the service presents the user's calendar (e.g., in a daily mode) and shows where friends may be nearly in the future.
- the service is set to notify the user if a friend is within a one mile radius of the user's planned route.
- An icon is displayed on the map. David is not at that location now, the icon is placed roughly where David will be assuming he undertakes his own travel plans. David's precise location is obfuscated for privacy.
- events are added to the path crossing service, e.g., via Google calendar, or added directly.
- the service assumes every event is private, and no one can see this event unless the user chooses to make the event visible.
- the user chooses one or more groups to share that event with, or he or she can make it visible to anyone.
- the future location path may be annotated with additional information, such as locations (e.g., bars, coffee shops, restaurants, etc.) that are routinely visited so that a more detailed or fine-grained pattern of future locations may be used to facilitate the future path generation and path crossing determination.
- locations e.g., bars, coffee shops, restaurants, etc.
- the techniques herein provide an additional advantage of enabling prediction of a start location for future travel.
- the path crossing feature of this disclosure is not limited to a user crossing his or her path with another individual; the techniques may be used to indicate to the user that his or her future path may be crossing with a particular brand, given weather, a purchase opportunity, a given geo-temporal event or occurrence, combinations thereof, or the like. Further, the path crossing engine may determine that a particular future route intersects with one or more people, events, and combinations thereof.
- the platform and techniques described above provide many advantages.
- the platform enables predicting or estimating the location of people in the future.
- Information is updated asynchronously by permitted entities, preferably on an opt-in basis, or from publicly-available sources.
- the service may alert users of potential threats to their plan and urge them to take action immediately. For instance, a restaurant or theatre may be close to capacity and require action or alternative plans.
- the future location platform provides a powerful call to action and the gateway to many varied commercial opportunities.
- This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including an optical disk, a CD-ROM, and a magnetic-optical disk, a read-only memory (ROM), a random access memory (RAM), a magnetic or optical card, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
A user of a mobile device may use the technique to obtain future location-based situation awareness, e.g., a future location route displayed on the user's mobile device. That future location route comprises the user's future locations through time and space, e.g., a set of planned meetings at successive locations in a geographic area. A service that provides the user's mobile device with the future location route may also alert the user of potential threats to the user's planned activities, such as a restaurant being over-booked. On a permission basis, the user's mobile device may also receive a future location route for at least one other person associated with the user in a social network. The other person's future location route may be overlaid on the user's route so that one or both individuals receive advance notifications of their potential to have their respective paths “crossing” during a future time period.
Description
- This application is based on and claims priority to Ser. No. 61/542,165, filed Oct. 1, 2011.
- Location-based services for mobile phones focus on current location. These services are popular, and they include navigation, traffic, weather, coupons, travel check-in, restaurant reviews, photo sharing, local discovery (convenience store), nearest ATM, show-times, gaming, enhanced 911, people locators, and social networking. If a person's planned, routine and extemporaneous (errands) future locations can be determined, new location-based services may be optimized and personalized to solve important problems.
- People enjoy maintaining status updates on social networking services like Twitter and Facebook that tell their contacts what they are doing, reading or what they are thinking about. Some status updates are tagged with latitude/longitude coordinates providing geographic position. Some social networking sites have embedded calendars that enable people to share social event details (parties, public functions, etc.) with their friends.
- People use location-specific status reports to enable meeting friends or like-minded people. People can use status updates to say where they will be in the future. People can use such services to coordinate travel plans with the hope of being at the same place at the same time.
- Future location, however, is very sensitive information. In some circumstances people want to privately share that location information with select people (for instance that they plan to go to the movies which is shared with close friends). In some circumstances they want to broadcast future location to as large a following as possible (a celebrity publicizing a book signing tour). Sharing future location with friends and colleagues makes it easier to meet up as friends can adjust their plans to make meeting up possible. Precisely calculating future location can also make it easier to receive relevant recommendations, coupons and other benefits allowing users to make best use of their precious time. To date, location-based applications and services have not provided solutions that adequately address future location.
- The subject matter herein is a technique for predicting or estimating the location of people in the future (“future location”).
- A user of a mobile device may use the technique to obtain future location-based situation awareness, e.g., a future location route that is displayed on the user's mobile device. That future location route comprises the user's future locations through time and space, e.g., a set of planned meetings at successive locations in a given geographic area such as a set of city blocks. A service that provides the user's mobile device with the future location route may also alert the user of potential threats to the user's planned activities, such as a restaurant being over-booked. On a permission basis, the user's mobile device may also receive a future location route for at least one other person associated with the user in a social network (e.g., a Facebook® friend). The other person's future location route may be overlaid on the user's route so that one or both individuals receive advance notifications of their potential to have their respective paths being “crossed” during a future time period.
- The foregoing has outlined some of the more pertinent features of the subject matter. These features should be construed to be merely illustrative.
- For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
-
FIG. 1 is an exemplary system of computing entities in which the future location-based methods of the disclosure may be implemented; -
FIG. 2 illustrates a representative future location route map generated by the system; -
FIG. 3 illustrates a representative interface by which a user may identify one or more preferences to select persons or groups of persons whose presence at given distances and/or times are to be brought to the user's attention; -
FIG. 4 illustrates a representative output of the system describing a user's future location route and potential overlaps with other individuals that are associated with the user; -
FIG. 5 illustrates how future location routes may be overlaid upon one another to facilitate the notifications to one or both of the users; and -
FIG. 6 illustrates a further example of a mobile device application and its associated interfaces. - According to the subject matter herein, the future location platform is facilitated, preferably through a service provider. This is not a limitation, as the techniques may be implemented as a standalone product or service.
- The service provider may be the same entity that provides the end user service, or any other entity. In a representative embodiment, the service provider operates a web site that is Internet-accessible through a web browser on the mobile device (or other machine such as the end user's PC).
- In a representative embodiment, shown in
FIG. 1 , a “system” that implements the subject matter of this disclosure includes amobile device client 100, aserver 102, and a thirdparty integration layer 104. Theintegration layer 104 may comprise part of theserver 102 if the service provider has access to the location and traffic data (as will be described below). The mobile device client preferably is downloaded to and installed in the mobile device in any convenient manner. In one embodiment, the end user opens his or her device browser to the service provider web site and selects a link to download and install the client. Alternatively, the client may be provided as original equipment on the mobile device or otherwise pushed to and installed in the device in any convenient manner. The end user may obtain the client by responding to an SMS or other invitation. - As shown in
FIG. 1 , the client, server and integration layers each comprise a number of functional components. This representation is meant to be for convenience of illustration and description, and it should not be taken to limit the scope of the invention as one or more of the functions may be combined. Typically, these components are implemented in software (as a set of processor-executable computer instructions, associated data structures, and the like). One or more of the functions may be combined or otherwise implemented in any convenient manner (e.g., in hardware, in firmware, in combined hardware and software, or the like). The mobile device typically includes a micro-browser or other graphics rendering engine for displaying information to the end user in the usual manner. The device is Internet-accessible and interacts with theserver 102 using known Internet protocols such as HTTP, HTTPS, and the like. Theserver 102 is shown as a single device but this is not a requirement either; one or more machines, programs, processes, or other code may comprise the server and be executed on one or more machines (in one or more networked locations). - A representative mobile device is a smartphone or tablet, such as the iPhone® (or iPad®) or an Android™-based phone, but this is not a limitation. Such devices typically comprise a CPU (central processing unit), such as any Intel- or AMD-based chip, computer memory, such as RAM, and a drive. The device software includes an operating system (e.g., Apple iOS, Android, or the like), and generic support applications and utilities. The device may also include a graphics processing unit (GPU). Such a mobile device also includes a touch-sensing device or interface configured to receive input from a user's touch and to send this information to the processor.
- Generalizing, the mobile device is any wireless client device, e.g., a cellphone, pager, a personal digital assistant (PDA, e.g., with GPRS NIC), a mobile computer with a smartphone client, or the like. Other mobile devices in which the technique may be practiced include any access protocol-enabled device (e.g., a Blackberry® device, an Android™-based device, or the like) that is capable of sending and receiving data in a wireless manner using a wireless protocol. Typical wireless protocols are: WiFi, GSM/GPRS, CDMA or WiMax. These protocols implement the ISO/OSI Physical and Data Link layers (
Layers 1 & 2) upon which a traditional networking stack is built, complete with IP, TCP, SSL/TLS and HTTP. - In a representative embodiment, the mobile device is a cellular telephone that operates over GPRS (General Packet Radio Service), which is a data technology for GSM networks. In addition to a conventional voice communication, a given mobile device can communicate with another such device via many different types of message transfer techniques, including SMS (short message service), enhanced SMS (EMS), multi-media message (MMS), email, WAP, paging, or other known or later-developed wireless data formats. Generalizing, a mobile device as used herein is a 3G- (or next generation) compliant device that includes a subscriber identity module (SIM), which is a smart card that carries subscriber-specific information, mobile equipment (e.g., radio and associated signal processing devices), a man-machine interface (MMI), and one or more interfaces to external devices (e.g., computers, PDAs, and the like). The techniques disclosed herein are not limited for use with a mobile device that uses a particular access protocol. The mobile device typically also has support for wireless local area network (WLAN) technologies, such as Wi-Fi. WLAN is based on IEEE 802.11 standards.
- Generalizing, a representative infrastructure in which the method may be practiced is a service. Without meant to be limiting, a representative technology platform that implements the service comprises machines, systems, sub-systems, applications, databases, interfaces and other computing and telecommunications resources. In one particular embodiment, a service provider comprises an Internet Protocol (IP) switch, a set of one or more web server machines, a set of one more application server machines, a database management system, and a set of one or more administrative server machines. A representative web server machine comprises commodity hardware (e.g., Intel-based), an operating system such as Linux, and a web server such as Apache 2.x. A representative application server machine comprises commodity hardware, Linux, and an application server such as WebLogic 9.2 (or later). The database management system may be implemented as an Oracle (or equivalent) database management package running on Linux. The infrastructure may include a name service, FTP servers, administrative servers, data collection services, management and reporting servers, other backend servers, load balancing appliances, other switches, and the like. Each machine typically comprises sufficient disk and memory, as well as input and output devices. The software environment on each machine includes a Java virtual machine (JVM) if control programs are written in Java. Generally, the web servers handle incoming requests, and they export a management interface. The application servers manage the basic functions of the service including, without limitation, business logic. As will be described, the application servers may also implement the automated techniques of this disclosure.
- One or more functions of such a technology platform may be implemented in a cloud-based architecture. As is well-known, cloud computing is a model of service delivery for enabling on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. Available services models that may be leveraged in whole or in part include: Software as a Service (SaaS) (the provider's applications running on cloud infrastructure); Platform as a service (PaaS) (the customer deploys applications that may be created using provider tools onto the cloud infrastructure); Infrastructure as a Service (IaaS) (customer provisions its own processing, storage, networks and other computing resources and can deploy and run operating systems and applications).
- The platform may comprise co-located hardware and software resources, or resources that are physically, logically, virtually and/or geographically distinct. Communication networks used to communicate to and from the platform services may be packet-based, non-packet based, and secure or non-secure, or some combination thereof.
- More generally, the techniques described herein are provided using a set of one or more computing-related entities (systems, machines, processes, programs, libraries, functions, or the like) that together facilitate or provide the described functionality described above. In a typical implementation, a representative machine on which the software executes comprises commodity hardware, an operating system, an application runtime environment, and a set of applications or processes and associated data, that provide the functionality of a given system or subsystem. As described, the functionality may be implemented in a standalone machine, or across a distributed set of machines.
- The operation of the system is best described by the following example. As seen in
FIG. 1 , theclient 100 and theserver 102 include various functional components and associated data stores to facilitate the operation. The operation of the disclosed method may be carried out using system components other than as shown inFIG. 1 . - In this example architecture, the
client 100 includes a future locationclient Comm Manager 114, and the server includes its own connectedcalendar client manager 103. These data stores are used to facilitate the creation and display of a future location platform. Theserver 102 also includes a database (e.g. MySQL) 105 for storing location information, as well as auser profile database 107 for storing user preference data. The integration layer provides one or more application programming interfaces (APIs), such as a geo-coding API 109 for providing the server with information about the destination location, as well as a mapping andtraffic API 111 for providing the server with map data and real-time (or historic) traffic data. The geo-coding API provides destination location coordinates, preferably by reverse geo-coding addresses in the end user's PIM. The mobile device actual location is provided using GPS, A-GPS, or some other data service, which obtains the device location is a known manner. Data is provided (via API 111) from a data service provider or obtained by the application natively. Of course, any convenient data services may be used or otherwise integrated into the connected calendar offering. - A user of the mobile device enters an appointment event in his or his PC- or web-based calendar 108. Typically, the event data includes fields for date, time, activity, and location. Preferably, the location is a street address. The event data may include groups with whom the event may be shared and may be categorized as work, sport, entertainment or other category set in preferences. Instead of manual entry, a service provider or other source may be used to obtain a destination location address upon receiving some request for such information. For instance, a social network (e.g., Facebook) may provide an event from which the future location and time maybe determined—a link to a website with an address and time for instance. Future location may be determined from an airport code or a flight code with departure and arrival times, or in a similar manner.
- The PC- or web-based calendar 108 at some point is synchronized to a mobile PIM
native calendar 110. Of course, the appointment event data may be entered into the PIMnative calendar 110 directly. AClient Comm Manager 114 reads themobile device calendar 110 over a connection, such as an industry standard JSR 75 link. The appointment event data is assimilated by aClient Comm Manager 114, which transfers the data to theserver 102, preferably via HTTP. This data is received at theserver 102 and processed by anagenda analyzer component 116. Theagenda analyzer 116 provides the processed data to a parseengine 118, which is also connected to the thirdparty integration layer 104, preferably via XML. The geo-coding API 109 takes unstructured address information, assesses its quality, adds one or more geo-codes, and structures that data into XML. The structured and geo-code data is stored in thedatabase 105. - Meanwhile, a set of user preferences (such as locations of home, work, daily commute times of arrival), security data, and current location (typically, the mobile device last-known location) data are uploaded to the server, such as by a
preferences specification component 113 operating in theclient 100. This preference data is stored in theuser profile database 107. The user'sprofile database 107 also organizes the user's social graph, according to the user's preferences. According to the user's relationship with people in their social graph, the user chooses people whose plans they wish to subscribe to; and organize people who follow the user's plans into groups. Third partysocial networking APIs 122 may be utilized to facilitate the organization of the social graph. - The
FutureLocation Engine 119 determines the FutureLocation path, preferably as follows. It combines planned locations uploaded from theclient calendar 110 with routine locations determined from addresses entered into the preferences, and the times associated with those entries and extemporaneous locations broadcasted through social networks determines the chronological order of future locations through which the user will travel. For instance if an appointment is prior to the normal arrival time at work, the FutureLocation engine assumes the user will have traveled from home to that first appointment. If the last appointment is after work but closer to the work address, then the home address the logic determines the user will depart from the work address to the last appointment. Of course, these are just representative examples. The FutureLocation Engine logic calculates a user's future locations through time and space and records these as a series of points (e.g., time, latitude and longitude or t, x, y, z points). Using these future location points, the mapping engine determines the route to be traveled between each successive location. By subtracting the predicted duration of the trip from the planned arrival times, the user's departure time is calculated. This data is passed to theSpaceTime Engine 121. TheSpaceTime engine 121 represents the user's path through time and space recording data points at 15 minute intervals (or some other time interval) between departure time and arrival time. The Spacetime Engine uses logic to determine if the user remains at the location, for instance, arriving home with no planned appointments that evening (in this example, the spacetime coordinate remains unchanged while the user is at home). The Spacetime path is passed back to thedatabase 105 and stored. It is possible to use linear lines between future locations, and not the detailed routes following roads, to make the calculations simpler. - Preferably, each event is private or is identified by a social group tag. If a user's event is tagged with a group the
social engine 128 determines the group and the constituent members of the group, or friends. A record of the event is placed in thedatabase 105 for each friend, and these items make up a friend plan, which includes opportunities to socially interact without necessarily being a commitment. These events can also be organized as lists under activity categories as mentioned above. - The Path Crossing Engine assimilates the future location paths for a user and compares the future location paths to that of their friends, social graph or wider groups of like minded people. By day, hour or minute increments the distance, or proximity, between the future locations of friends is measured. Paths may physically cross or may come close to crossing the tangent of the other user's path. Timing may mean that paths are crossed but temporally not synchronized. The Path Crossing engine provides opportunities for meeting or introductions based on the most convenient time, place or gap in their mutual schedules. For instance,
FIG. 2 shows the user arrives at Logan airport on the “red eye” flight at 6:30 am. The user has 3 meetings that day (in Malden, in Cambridge, and in downtown Boston). These meetings may be shared or private. The Path Crossing engine indexes the future location table and compares all locations for people in the user's social graph. - Thresholds may be set for relationship, distance and timing, e.g. using a user interface such as shown in
FIG. 3 , which is representative. For instance, using an input menu, the user may select whether the contact is a close friend, an acquaintance or a business contact, and/or whether such person is going to be within certain select distances (e.g., 250 ft, 500 ft, 1000 ft) or times (within 15 minutes, 30 minutes or 1 hour, etc.) as the user continues through his or her day. - In the
FIG. 2 example, and on the first leg of the trip, from Logan airport to Malden, the user's path is crossed by Jeremy, who the user has identified as a close friend. The proximity is within 200 ft and 15 minutes. The service provides the user with an indication of the potential crossing. The user has the opportunity to send a message and arrange to meet in person. Alternatively, the algorithm may calculate the time when the shortest distance separates the friends. The algorithm may also calculate the time a given number (e.g., three (3) or more friends) are in the closest physical or temporal proximity. The Path Crossing engine may also provide appropriate notifications if users change their plans or run late. - As an alternative, the Path Crossing engine may access the user's address book or online directory and indicate when a user may be nearby a customer office or a client's home.
- As an alternative, the Path Crossing engine may access location information, from third party APIs, indicating an individual habitually visits a location, like a coffee shop, or the like, and then present a probability that the friend may be at some particular intersection.
- The interface managers manage personal 123, social 124, situational 125, and contextual 126 data relevant to events and future locations.
- The
personal interface manager 123 indexes the database for personal calendar events. Other relevant information may be assimilated, for instance time and location-based weather, other friends that have joined the event or trip time or distance information added from themapping engine 120. - The
social interface manager 124 indexes the database for friend's events, i.e., events that have been shared but are not subscribed. Other relevant information is included in the fields including, for example, who created the event, who is subscribed to the event, weather and trip information, and so forth. The social interface manager may organize social events into event categories as mentioned above. The distance to a friend's event may be used to determine the importance of the opportunity and its display may be adjusted through the user preferences. Thesocial interface manager 124 may also present path crossing opportunities determined by the Path Crossing engine. As previously explained, there may be preferences set to determine the distance or time threshold under which a friend triggers a path crossing opportunity or the number of such events. - The
situational interface manager 125 draws from thedatabase 105 the future locations and the time-space path coordinates. An interaction with the mapping engine overlays maps, routes, predicted traffic and predicted weather along the time space calendar path. Under circumstances when the user's time space path intersects with severe weather (or other similar type of information), thealert engine 127 is programmed to push a notification to the user's device. For example, assume that the calendar event indicates a flight on the following Thursday and thunderstorms are predicted; in such case a notification may be provided. Such information may be received from a third partyflight status API 132, which indicates a flight status is changed from on time to delayed. - The
contextual interface manager 126 draws from thedatabase 105 the future locations and the time-space path coordinates. An interaction with themapping engine 120 overlays maps and routes accesses third party APIs forrelevant entertainment events 129,advertisements 130 andcoupons 131. Relevance is driven by time, location and subject line of event or set by a user's preferences. - While the above describes personal, situational, contextual and social interfaces as separate, it should be understood such operations may be mixed or layered according to the preferences of the user.
- The server communicates to the client via a client manager, and in some circumstances mentioned above via the
alert engine 127. The client map/data manager 101 presents data on the display according to the design of the graphic user interface. -
FIG. 4 illustrates a display “crossing paths” tab that may be displayed on the user's device when the user logs into the service. This tab provides an agenda display format. In particular, a tab displays, preferably in chronological order, all the event on the user's timeline (e.g., his or her events, friend's events, crossing path opportunities, and the like). Color-coding may be used to highlight differences. -
FIG. 5 is another example of a path crossing display that may be made to one or both of the individuals whose paths are anticipated to intersect (based on the information received and processed by the location platform). -
FIG. 6 illustrates a further example showing three (3) display screens that are available in a mobile device application that implements the client-side of the future location functionality. The left portion illustrates preferences for path crossings. The check boxes indicate which groups of friends that a user wishes to be alerted (of path crossing opportunities). The drop box indicates the distance (e.g., in miles) within which a friend must travel to trigger an alert or other notification. The middle portion of the figure illustrates the user's schedule in an agenda format. In this agenda format, events are shared with friends and profile pictures (of the friends) subscribing to the event are shown below the subject line. Each event shows subject, time and date, time and location-based weather, the friends subscribed to the event, and so forth. The display on the right portion of the drawing shows the actual locations of each event for day, e.g., as map pins. The display also shows the route that connects the dots, as well as the friends whom the path crossing engine has determined will cross the route (when and where). - Of course, the above example screen layouts are merely representative and should not be taken to limit the subject matter of this disclosure, as any particular output format for the mobile device may be used. Thus, for example, an audible or aural indication may be provided for an event, a path crossing opportunity, or the like.
- Path crossing settings can be changed in the user's “profile.” As has been described, preferably the service functions separately to events. A path crossing opportunity may occur when the user is between two private events. The user may choose “groups” to be included in the settings, or he or she may switch off the function. Groups are a way to share some plans with some friends, other plans with other friends or keep plans totally private. So, if the user shares an event, like going to the movies, with his or her “close friends” group, only people in the “close friends” group will be able to see that event on their “Friends' Plans” page. The service may provide several default groups: family, close friends, friends and co-workers. The user may add more groups go into “profile”>“Groups” and add a group. Then the new group becomes available and the user can select friends to add to his or her new group.
- A “Followers” function may also be implemented. Followers are people who have chosen to follow a user's plans. They may be friends or they may be people the user vaguely knows or does not know at all. Preferably, the user will be notified if he or she has a new follower. Until the user assigns the new follower to a group, preferably the follower cannot see the user's plans (unless the event is a public plan). When the user assigns the follower to a group they can only see events that have been tagged to be visible to that group. If the user wishes to “Block” someone, he or she can select a “Block” tab next to their name. It is also possible to Un-Block someone later.
- As noted, preferably the user can also vary the distance, physical proximity threshold when the path crossing notification will be activated.
- The described technique provides a privacy-first, geo-social calendar that allows a user to see when his or her path will cross those of his or her friends without having to share specific appointments (unless desired to do so). The service presents the user's calendar (e.g., in a daily mode) and shows where friends may be nearly in the future.
- In this example, the service is set to notify the user if a friend is within a one mile radius of the user's planned route. There is an entry in the user's plans agenda view that says “next Thursday at 1.46 pm, David will be within 1 mile.” An icon is displayed on the map. David is not at that location now, the icon is placed roughly where David will be assuming he undertakes his own travel plans. David's precise location is obfuscated for privacy.
- Preferably, events are added to the path crossing service, e.g., via Google calendar, or added directly. By default, the service assumes every event is private, and no one can see this event unless the user chooses to make the event visible. To share an event with someone, the user chooses one or more groups to share that event with, or he or she can make it visible to anyone.
- The future location path may be annotated with additional information, such as locations (e.g., bars, coffee shops, restaurants, etc.) that are routinely visited so that a more detailed or fine-grained pattern of future locations may be used to facilitate the future path generation and path crossing determination.
- The techniques herein provide an additional advantage of enabling prediction of a start location for future travel.
- The path crossing feature of this disclosure is not limited to a user crossing his or her path with another individual; the techniques may be used to indicate to the user that his or her future path may be crossing with a particular brand, given weather, a purchase opportunity, a given geo-temporal event or occurrence, combinations thereof, or the like. Further, the path crossing engine may determine that a particular future route intersects with one or more people, events, and combinations thereof.
- The platform and techniques described above provide many advantages. The platform enables predicting or estimating the location of people in the future. Information is updated asynchronously by permitted entities, preferably on an opt-in basis, or from publicly-available sources. Because the user has identified a future activity, a time and a place, and because the service preferably utilizes “push” technology, the service may alert users of potential threats to their plan and urge them to take action immediately. For instance, a restaurant or theatre may be close to capacity and require action or alternative plans. In this way, and has been described, the future location platform provides a powerful call to action and the gateway to many varied commercial opportunities.
- While the above describes a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary, as alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, or the like. References in the specification to a given embodiment indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic.
- While the disclosed subject matter has been described in the context of a method or process, the subject disclosure also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including an optical disk, a CD-ROM, and a magnetic-optical disk, a read-only memory (ROM), a random access memory (RAM), a magnetic or optical card, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- While given components of the system have been described separately, one of ordinary skill will appreciate that some of the functions may be combined or shared in given instructions, program sequences, code portions, and the like.
- Having described my invention, what I claim is set forth below.
Claims (8)
1. Apparatus, comprising:
at least one processor; and
computer memory holding computer program instructions executed by the processor to provide:
first data from which a future location path for a user is adapted to be displayed; and
second data from which a future location path for at least one other person is adapted to be displayed overlaid on the future location path for the user, the at least one other person being associated with the user in a social network.
2. An article comprising a non-transitory machine-readable storage medium that stores a program, the program adapted to be executed by a machine to provide future location-based situation awareness to a user of a mobile device, the mobile device storing the user's calendar and contact information, the program comprising:
program code to receive calendar data;
program code to receive contemporaneous location data;
program code to use the received data to calculate, as a series of points, the user's future locations through time and space;
program code to use the series of points to determine a future location route to be traveled by the user between each successive location; and
program code to represent the user's future location route between a departure time and an arrival time.
3. The article as described in claim 2 wherein the points are associated with given time intervals.
4. The article as described in claim 3 wherein each time interval is 15 minutes.
5. The article as described in claim 2 wherein the program includes program code to associate a social group tag with a location along the future location route.
6. The article as described in claim 5 wherein the program includes program code to identify a group and constituent members of the group associated with the social group tag.
7. The article as described in claim 6 wherein the program includes program code to generate a future location path for at least one constituent member of the group.
8. The article as described in claim 7 wherein the program includes program code to overlay the future location path for the at least constituent member of the group on the future location path for the user.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/425,125 US20170276493A1 (en) | 2011-10-01 | 2017-02-06 | Identifying future location and providing path crossing indications |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161542165P | 2011-10-01 | 2011-10-01 | |
US13/632,542 US9562783B2 (en) | 2011-10-01 | 2012-10-01 | Identifying future location and providing path crossing indications |
US15/425,125 US20170276493A1 (en) | 2011-10-01 | 2017-02-06 | Identifying future location and providing path crossing indications |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/632,542 Continuation US9562783B2 (en) | 2011-10-01 | 2012-10-01 | Identifying future location and providing path crossing indications |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170276493A1 true US20170276493A1 (en) | 2017-09-28 |
Family
ID=47996512
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/632,542 Active US9562783B2 (en) | 2011-10-01 | 2012-10-01 | Identifying future location and providing path crossing indications |
US15/425,125 Abandoned US20170276493A1 (en) | 2011-10-01 | 2017-02-06 | Identifying future location and providing path crossing indications |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/632,542 Active US9562783B2 (en) | 2011-10-01 | 2012-10-01 | Identifying future location and providing path crossing indications |
Country Status (2)
Country | Link |
---|---|
US (2) | US9562783B2 (en) |
WO (1) | WO2013049820A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220300909A1 (en) * | 2021-03-16 | 2022-09-22 | International Business Machines Corporation | Spatio-temporal calendar generation |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8554875B1 (en) * | 2012-08-13 | 2013-10-08 | Ribbon Labs, Inc. | Communicating future locations in a social network |
US20140058772A1 (en) * | 2012-08-22 | 2014-02-27 | James Moskos | System and method for conducting an electronic auction for available cargo capacity on a cargo carrier |
US10028101B2 (en) * | 2012-11-20 | 2018-07-17 | Facebook, Inc. | Predicted-location notification |
US9377319B2 (en) | 2013-03-12 | 2016-06-28 | Yahoo! Inc. | Estimating times to leave and to travel |
US20140316701A1 (en) * | 2013-04-18 | 2014-10-23 | International Business Machines Corporation | Control system for indicating if people can reach locations that satisfy a predetermined set of conditions and requirements |
US9389094B2 (en) | 2014-09-05 | 2016-07-12 | Paypal, Inc. | Methods and systems for determining routing |
US9325800B1 (en) | 2014-12-18 | 2016-04-26 | International Business Machines Corporation | Generating a visitation schedule |
US10842219B2 (en) * | 2015-05-29 | 2020-11-24 | Nike, Inc. | Smart top routes |
WO2018008394A1 (en) * | 2016-07-05 | 2018-01-11 | ソニー株式会社 | Information processing system, recording medium, and information processing method |
DE102017004893A1 (en) * | 2017-05-22 | 2018-11-22 | Preh Car Connect Gmbh | Outputting information about the residence of two movable objects |
JP7091662B2 (en) * | 2018-01-09 | 2022-06-28 | トヨタ自動車株式会社 | Navigation devices, navigation programs, and navigation systems |
WO2020068857A1 (en) * | 2018-09-24 | 2020-04-02 | Knowhere App Inc. | Reciprocal-basis authorization for proximate presence reveal with location privacy maintained |
US11489834B1 (en) | 2018-10-10 | 2022-11-01 | Diem Ai, Llc | Systems and methods for an entity to control information exchange |
US10638269B1 (en) * | 2018-11-27 | 2020-04-28 | Sap Se | Visualization of spatio-temporal location |
US11320278B2 (en) | 2019-08-07 | 2022-05-03 | International Business Machines Corporation | Time-based multiple automobile travel coordination |
US20210182070A1 (en) * | 2019-12-11 | 2021-06-17 | International Business Machines Corporation | Explicit resource file to assign exact resources to job ranks |
CN113641832B (en) * | 2021-08-16 | 2022-05-10 | 中国科学院空天信息创新研究院 | Knowledge graph-based multi-source discrete data-oriented forest fire rescue path planning method |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010046657A1 (en) * | 2000-01-31 | 2001-11-29 | Dorn Gregg Randall | Personal introduction system |
US8060389B2 (en) * | 2000-06-07 | 2011-11-15 | Apple Inc. | System and method for anonymous location based services |
US8489669B2 (en) * | 2000-06-07 | 2013-07-16 | Apple Inc. | Mobile data processing system moving interest radius |
US7310676B2 (en) * | 2004-02-09 | 2007-12-18 | Proxpro, Inc. | Method and computer system for matching mobile device users for business and social networking |
US20080016442A1 (en) * | 2004-07-02 | 2008-01-17 | Denis Khoo | Electronic Location Calendar |
WO2006040901A1 (en) * | 2004-10-14 | 2006-04-20 | Matsushita Electric Industrial Co., Ltd. | Move destination prediction device and move destination prediction method |
US20130226453A1 (en) * | 2005-02-08 | 2013-08-29 | Bryan Gardner Trussel | Systems and methods for mobile communication integration |
US7353034B2 (en) * | 2005-04-04 | 2008-04-01 | X One, Inc. | Location sharing and tracking using mobile phones or other wireless devices |
US7548915B2 (en) * | 2005-09-14 | 2009-06-16 | Jorey Ramer | Contextual mobile content placement on a mobile communication facility |
US20080072139A1 (en) * | 2006-08-20 | 2008-03-20 | Robert Salinas | Mobilizing Webpages by Selecting, Arranging, Adapting, Substituting and/or Supplementing Content for Mobile and/or other Electronic Devices; and Optimizing Content for Mobile and/or other Electronic Devices; and Enhancing Usability of Mobile Devices |
CN101652789A (en) * | 2007-02-12 | 2010-02-17 | 肖恩·奥沙利文 | Share transportation system and service network |
US7941133B2 (en) * | 2007-02-14 | 2011-05-10 | At&T Intellectual Property I, L.P. | Methods, systems, and computer program products for schedule management based on locations of wireless devices |
US20080293430A1 (en) * | 2007-05-23 | 2008-11-27 | Nokia Corporation | Method, Apparatus and Computer Program Product for a Social Route Planner |
US20090005018A1 (en) * | 2007-06-28 | 2009-01-01 | Apple Inc. | Route Sharing and Location |
US8031595B2 (en) * | 2007-08-21 | 2011-10-04 | International Business Machines Corporation | Future location determination using social networks |
WO2009029910A2 (en) * | 2007-08-31 | 2009-03-05 | Proxpro, Inc. | Situation-aware personal information management for a mobile device |
US8423288B2 (en) * | 2009-11-30 | 2013-04-16 | Apple Inc. | Dynamic alerts for calendar events |
US20100082179A1 (en) * | 2008-09-29 | 2010-04-01 | David Kronenberg | Methods for Linking Motor Vehicles to Reduce Aerodynamic Drag and Improve Fuel Economy |
US8260553B2 (en) * | 2008-09-30 | 2012-09-04 | Nokia Corporation | Methods, apparatuses, and computer program products for providing user location information |
US20100174998A1 (en) * | 2009-01-06 | 2010-07-08 | Kiha Software Inc. | Calendaring Location-Based Events and Associated Travel |
US8498953B2 (en) * | 2010-03-30 | 2013-07-30 | Sap Ag | Method for allocating trip sharing |
FI20115464A0 (en) * | 2011-05-13 | 2011-05-13 | Raeisaenen Sami | Arrangement and method of joint transport |
-
2012
- 2012-10-01 US US13/632,542 patent/US9562783B2/en active Active
- 2012-10-01 WO PCT/US2012/058314 patent/WO2013049820A1/en active Application Filing
-
2017
- 2017-02-06 US US15/425,125 patent/US20170276493A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220300909A1 (en) * | 2021-03-16 | 2022-09-22 | International Business Machines Corporation | Spatio-temporal calendar generation |
Also Published As
Publication number | Publication date |
---|---|
US9562783B2 (en) | 2017-02-07 |
WO2013049820A1 (en) | 2013-04-04 |
US20130231858A1 (en) | 2013-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9562783B2 (en) | Identifying future location and providing path crossing indications | |
EP2888869B1 (en) | Systems and methods for managing location data and providing a privacy framework | |
US10142783B2 (en) | Adaptive location sharing based on proximity | |
AU2018334268B2 (en) | Enabling and disabling location sharing based on environmental signals | |
US9256615B2 (en) | Personalized navigation information based on user behavior | |
US20140199970A1 (en) | Methods and systems relating to privacy in location based mobile applications | |
EP2817925B1 (en) | Systems and methods for mobile communication integration | |
US20100332326A1 (en) | System And Methods For Positioning Information From A Plurality Of Users | |
US20160092040A1 (en) | Communication device with contact information inference | |
US20160189111A1 (en) | Free time activity scheduler | |
US20220014493A1 (en) | Space Time Region Based Communications | |
US20140274145A1 (en) | Location based filtering of targeted content for mobile devices | |
EP2033456A2 (en) | Displaying the location of individuals on an interactive map display on a mobile communication device | |
US20150186958A1 (en) | System and method for rating points of interest based on a location history | |
US20180253777A1 (en) | Method for analyzing and ranking venues | |
US20160063475A1 (en) | Facilitating Transactions Between Buyers And Sellers | |
Ahmad et al. | Context-aware services based on spatio-temporal zoning and crowdsourcing | |
NZ761319B2 (en) | Enabling and disabling location sharing based on environmental signals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |