A computer-implemented method includes generating a communication to be sent from a sender to a recipient who are related to one another by blood or employment; and scheduling delivery of the communication to the recipient based on a future location of the recipient. The content of the communication and the future location of the recipient are determined from an analysis of electronically-accessible resources by or about the sender, the recipient, or both.
|
1. A computer-implemented method comprising:
inferring content for a communication to be sent from or on behalf of a sender to a recipient based on a relationship between (a) information indicative of the content and (b) content of publicly available electronically-accessible resources by or about the sender, the recipient, or both;
inferring, from among multiple possible locations, an expected future location of the recipient based on a relationship between (a) one or more location criteria indicative of the multiple possible locations and (b) content of publicly available electronically-accessible resources;
detecting an actual location of a mobile computing device associated with the recipient; and
sending the communication to the recipient when the actual location of the recipient is within a threshold distance of the expected future location.
13. A non-transitory computer readable medium storing instructions for causing a computing system to:
infer content for a communication to be sent from or on behalf of a sender to a recipient based on a relationship between (a) information indicative of the content and (b) content of publicly available electronically-accessible resources by or about the sender, the recipient, or both;
infer, from among multiple possible locations, an expected future location of the recipient based on a relationship between (a) one or more location criteria indicative of the multiple possible locations and (b) content of publicly available electronically-accessible resources;
detect an actual location of a mobile computing device associated with the recipient; and
send the communication to the recipient when the actual location of the recipient is within a threshold distance of the expected future location.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
generating a draft communication including at least some of the inferred content;
providing the draft communication to the sender; and
receiving the communication from the sender.
9. The method of
10. The method of
11. The method of
12. The method of
14. The non-transitory computer readable medium of
15. The non-transitory computer readable medium of
16. The non-transitory computer readable medium of
17. The non-transitory computer readable medium of
18. The non-transitory computer readable medium of
19. The non-transitory computer readable medium of
|
This application is a continuation application and claims priority to U.S. patent application Ser. No. 13/715,517, filed on Dec. 14, 2012, which is a continuation-in-part application of and claims priority to U.S. patent application Ser. No. 13/489,210, filed Jun. 5, 2012, and to U.S. patent application Ser. No. 13/650,941, filed Oct. 12, 2012, the entire contents of all of which are incorporated here by reference.
This description relates to location-based communications from a sender to a recipient.
A typical user of a social networking website communicates with other users of the social networking website by posting information about himself or information of interest to other users of the social network website in a manner that is accessible to the other users. For example, a user of a social networking website might post background information about himself, such as current job or activity information; information about events attended, such as concerts; events the user plans to attend, such as travel vacation sites; or personal events, such as birthdays or anniversaries. A user may also post information about recent acquisitions, such as the purchase of a new automobile or smartphone. Other users who have access to the user's posted information may contact the user to comment or review information about common shared interests or for other reasons.
Some social networking websites filter or group connections based on, e.g., friendship, profession or job type, or geographical location. Social networks often span users within a single generation (e.g., Generation X or Generation Y) or at least within a limited age demographic.
In a general aspect, a computer-implemented method includes generating a communication to be sent from a sender to a recipient who are related to one another by blood or employment; and scheduling delivery of the communication to the recipient based on a future location of the recipient. The content of the communication and the future location of the recipient are determined from an analysis of electronically-accessible resources by or about the sender, the recipient, or both.
Embodiments may include one or more of the following.
The method includes sending the communication to the recipient when the recipient is at or near the future location.
The method includes sending the communication to a mobile computing device associated with the recipient.
The method includes detecting a location of the recipient. In some cases, detecting a location of the recipient includes detecting GPS coordinates of a computing device associated with the recipient. In some cases, the method includes sending the communication to the recipient when the location of the recipient matches the future location.
Scheduling delivery includes scheduling delivery of the communication to the recipient at a specified future time. In some cases, the method includes sending the communication to the recipient when the recipient is at or near the future location at the specified future time. In some cases, the method includes receiving time criteria for determining the specified future time; and determining the future time based on the time criteria.
The method includes receiving location criteria for determining the future location; and wherein the future location is determined based on the location criteria. In some cases, the location criteria include at least one of a characteristic of the future location, a characteristic of the sender, and a characteristic of the recipient.
Generating the communication includes generating a draft communication including at least some of the determined content; providing the draft communication to the sender; and receiving the communication from the sender.
Generating the communication includes generating the communication including at least some of the determined content.
The method includes conducting an automated analysis of the electronically-accessible resources to determine the content of the communication and the future location.
The communication includes a multimedia message.
The electronically-accessible resources include at least one of (a) electronically-accessible or mobile social networking facilities, (b) electronically-accessible or mobile periodicals, and (c) websites.
The electronically-accessible resources include a database storing data relevant to the sender, the recipient, or both.
In a general aspect, a computer-implemented method includes generating a communication to be sent from a sender to a recipient; and scheduling delivery of the communication to the recipient at a specified future time based on a future location of the recipient. The identity of the recipient, the content of the communication, the future time, and the future location of the recipient are determined from an analysis of electronically-accessible resources by or about the sender or the recipient.
Embodiments may include one or more of the following.
The method includes sending the communication to the recipient when the recipient is at or near the future location at the specified future time.
The method includes sending the communication to a mobile computing device associated with the recipient.
The method includes detecting a location of the recipient. In some cases, detecting a location of the recipient includes detecting GPS coordinates of a computing device associated with the recipient. In some cases, the method includes the communication to the recipient when the location of the recipient matches the future location.
The method includes receiving location criteria for determining the future location; and wherein the future location is determined based on the location criteria. In some cases, the location criteria include at least one of a characteristic of the future location, a characteristic of the sender, and a characteristic of the recipient.
The method includes receiving recipient criteria for determining the identity of the recipient; and wherein the identity of the recipient is determined based on the recipient criteria. In some cases, the recipient criteria include a relationship between the sender and the recipient, such as a future relationship between the sender and the recipient. In some cases, the recipient criteria include a characteristic of the recipient.
The method includes receiving time criteria for determining the specified future time; and wherein the specified future time is determined based on the time criteria.
Generating the communication includes generating a draft communication including at least some of the determined content; providing the draft communication to the sender; and receiving the communication from the sender.
Generating the communication includes generating the communication including at least some of the determined content.
The method includes conducting an automated analysis of the electronically-accessible resources to determine the content of the communication and the future location.
The communication includes a multimedia message.
The electronically-accessible resources include at least one of (a) electronically-accessible or mobile social networking facilities, (b) electronically-accessible or mobile periodicals, and (c) websites.
The electronically-accessible resources include a database storing data relevant to the sender, the recipient, or both.
In a general aspect, a computer-implemented method includes generating a communication to be sent from an employer to an employee; and scheduling delivery of the communication to the employee based on a future location of the employee. The content of the communication and the future location of the employee are determined from an analysis of electronically-accessible resources by or about the employee.
Embodiments may include one or more of the following.
The method includes sending the communication to the employee when the employee is at or near the future location.
The method includes sending the communication to a mobile computing device associated with the employee.
The method includes detecting a location of the employee. In some cases, the method includes sending the communication to the employee when the location of the employee matches the future location.
Scheduling delivery includes scheduling delivery of the communication to the employee at a specified future time. In some cases, the method includes sending the communication to the employee when the employee is at or near the future location at the specified future time. In some cases, the method includes receiving time criteria for determining the specified future time; and determining the future time based on the time criteria.
The method includes receiving location criteria for determining the future location; and wherein the future location is determined based on the location criteria. In some cases, the location criteria include at least one of a characteristic of the future location, a characteristic of the employer, and a characteristic of the employee.
Generating the communication includes generating a draft communication including at least some of the determined content; providing the draft communication to the employer or an agent for the employer; and receiving the communication from the employer or the agent for the employer.
Generating the communication includes generating the communication including at least some of the determined content.
The method includes conducting an automated analysis of the electronically-accessible resources to determine the content of the communication and the future location.
The electronically-accessible resources include at least one of (a) electronically-accessible or mobile social networking facilities, (b) electronically-accessible or mobile periodicals, and (c) websites.
The electronically-accessible resources include a database storing data relevant to the employer, the employee, or both.
These and other aspects, features, implementations, and advantages, and combinations of them, can be expressed as methods, apparatus, systems, components, program products, business methods, and means or steps for performing functions, or combinations of them.
Other features, aspects, implementations, and advantages will become apparent from the description, the drawings, and the claims.
The system that we describe here enables a communication to be sent from one party (sometimes called a sender) to one or more other parties (sometimes called recipients) based on a location of the recipient at a future time. In some examples, the communication is to be sent when the recipient is at a previously identified location (which we sometimes call a triggering location). For instance, a welcome message may be sent to travelers when they arrive at an airport. In some examples, the communication is to be sent when the recipient is at a triggering location at a previously identified time (which we sometimes call a triggering time). For instance, a coupon for use at a coffee shop may be sent to one or more potential customers who are within a certain distance of the coffee shop in the morning.
In some examples, the system described here automatically identifies the one or more recipients of the communication, the triggering location, or the triggering time, or a combination of any two or more of them. In some examples, the sender identifies the one or more recipients of the communication, the triggering location, or the triggering time, or a combination of any two or more of them.
The communication to the recipient may be generated by the system, the sender, or both. The system described here conducts an automated analysis of sources of information, such as websites, publications, social networks, or other electronically-accessible sources, or a combination of any two or more of them, to identify content for the communication that is to be sent to the recipient. The system may automatically generate the communication using some or all of the identified content. The system may also provide the identified content to the sender, who may then choose to include some or all of the identified content in the communication. We use the term “electronically-accessible” broadly to include, for example, accessible through a local area network (LAN), a wide area network (WAN), the Internet, a mobile phone network, or by any other method or combination of methods.
Referring to
A communication system 114, hosted on a server 116, facilitates the sending of the communication 102 to the recipient 106. In some examples, a registration module 118 in the communication system 114 registers a person as a potential recipient. For instance, the registration module 118 may collect personal information 120, such as name, phone number, e-mail address, social networking information, or communication preferences, or a combination of any two or more of these. The registration module 118 may also collect device information 122 about the computing device 112 through which the person's location is to be tracked. The personal information 120 and device information 122 are stored in a recipient database 124. In some examples, a person may register directly with the communication system 114, e.g., through a recipient interface 125. In some examples, a person is registered automatically with the communication system 114, e.g., when he enrolls in a social network 126 or other electronically-accessible service or when he joins a particular group in a social network. In some examples, a person is registered with the communication system 114 by another party. For instance, a human resources officer of a corporation may register all employees of the corporation with the communication system 114.
In some examples, the sender 104 and the recipient 106 are related through a relationship, such as a family relationship, an employment relationship, or another type of relationship, or a combination of any two or more of them. For instance, in an example of a family relationship, the sender 104 may be a grandfather who wants to send a message to his as-yet-unborn grandchild (the recipient 106) at a future time. In an example of an employment relationship, the sender 104 may be the human resources department of a corporation and the recipients 106 are employees of the corporation. In some examples, the sender 104 and the recipient 106 have no particular relationship. For instance, the sender 104 may be an advertiser sending a marketing offer or a coupon to one or more potential customers, who are the recipients 106.
The sender 104 (or an agent for the sender 104) provides instructions 128 for the sending of the communication 108 to the communication system 114 by accessing a sender interface 130 using a computing device 118, such as a personal computer or a mobile computing device or other type of computing device. For instance, the sender 104 may specify the recipient 106, provide one or more recipient criteria to be used by the communication system 114 to identify the recipient 106, specify the triggering location 108, provide one or more location criteria to be used by the communication system 114 to identify the recipient, specify the triggering time, or provide one or more time criteria to be used by the communication system 114 to identify the triggering time, or a combination of any two or more of them.
If the sender provided one or more of recipient criteria, triggering criteria, and triggering criteria, an analytics module 131 uses the provided criteria to identify the recipient 106, the triggering location 108, and the triggering time, respectively. The analytics module may use data stored in the recipient database 124 to identify one or more of the recipient 106, the triggering location 108, or the triggering time. The analytics module 130 may access data sources 132, such as websites 133, electronically-accessible publications 135, social networks 126, electronically-accessible databases 127, or other electronically-accessible sources, or a combination of two or more of them, to identify one or more of the recipient 106, the triggering location 108, or the triggering time.
The identity of the recipient 106 and the associated triggering location 108, the triggering time, or a combination of two or more of them, as specified by the sender 104 or as identified by the analytics module 131, are stored in a triggering database 132.
A communication module 134 facilitates the preparation of the communication 102 that is to be sent to the recipient 106. In some examples, the communication module 134 identifies information that may be about or of interest to the sender 104, the recipient 106, or both, and automatically generates the communication 102 based on that information. For instance, the communication module 134 aided by the analytics module 131 may identify news articles, photographs, multimedia files, coupons or special offers, or other information, or a combination of any two or more of them, that are about or of interest to the sender 104, the recipient 106, or both. The automatically generated communication 102 may be approved by the sender 102. In some examples, the communication module 134 generates a draft or template of a communication to be edited or completed by the sender 104. For instance, a draft communication may include some of the information identified by the communication module 134 and may further include space for the sender to compose a message, insert a photograph, or otherwise supplement or edit the communication. In some examples, the sender 104 prepares the communication 102 with no assistance from the communication module 134.
In some examples, a communication 102 is prepared specifically for a particular recipient 106 (e.g., the grandfather sending a message to his grandchild). In some examples, a communication 102 is prepared for multiple recipients (e.g., a coupon sent to many prospective customers).
The communication is stored in a communication database 142 of a storage module 140. In some examples, the information about or of interest to the sender 104, the recipient 106, or both that is identified by the communication module 134 is also stored in the communication database 142. In the illustrated example, the storage module is separate from the communication system 114; in some examples, the storage module 140 may be co-located in the same physical location with the communication system.
In some examples, a physical item 138, such as a gift or a memento, may be sent to the recipient 106 along with the communication 102. The physical item 138 may be stored in a physical storage, such as a warehouse, associated with the storage module 140, until it is to be sent to the recipient 106. The physical item 138 may also be ordered from a vendor 144 and sent directly to the recipient 106. In some examples, the communication 102 may include a coupon or voucher for services (e.g., a massage or a car wash) to be provided by a vendor 144.
For each recipient 106 stored in the triggering database 132, a location module 136 monitors the location of the computing device 112 associated with the recipient 106 (i.e., as a proxy for the location of the recipient 106). For instance, the location module 136 may monitor the GPS coordinates of the computing device 112, the proximity of the computing device to a WiFi hotspot, or another location-based signal. The location module 136 may monitor the location of the computing device 112 continuously or regular intervals, such as every 5 minutes, every hour, or every day. In some examples, the monitoring interval may be dependent on the nature of the triggering location 108. For instance, if the triggering location is a city or country, the location module 136 may monitor the location of the computing device 112 less frequently than if the triggering location is a street address or a store.
When the location module 136 detects that the recipient 106 is at or near the triggering location 108 (e.g., within a particular distance of the triggering location), the location module 136 alerts the communication module 134, the sender 104, or both. In some examples, the communication module 134 automatically sends the communication 102 to the recipient 106. In some examples, the sender 104 instructs the communication module 134 to send the communication 102 to the recipient 106.
In some examples, the sender 104 and the recipient 106 may be the same person. For example, the sender 104 may request to be reminded of a planned trip, event, or visit in the future. For instance, the sender 104 may instruct the communication module 134 to send a communication 102 to his mobile telephone when he checks into his hotel on his trip to New York the next month. The sender 102 may specify that the communication 102 is to remind him to visit the Frick Museum and should contain images of important paintings at the museum.
Referring to
The sender specifies the recipient, provides recipient criteria to be used by the communication system to identify the recipient, or both (202). If the sender provides recipient criteria, the communication system automatically determines the recipient (204). For instance, the recipient criteria may describe a relationship between the sender and the recipient (e.g., “my oldest granddaughter” or “hourly employees of BankOne Corp.”). The recipient criteria may describe one or more characteristics of the recipient (e.g., “professional women who live in Boston,” “people who are likely to attend the theater,” or “dog owners”).
The sender specifies the triggering location, provides location criteria to be used by the communication system to identify the triggering location, or both (206). If the sender provides location criteria, the communication system automatically determines the location (208). The triggering location may be an address (e.g., 1911 Main Street, Philadelphia, Pa.) or a place (e.g., John F. Kennedy International Airport). The triggering criteria may describe one or more characteristics of the triggering location (e.g., “my mother's tennis club” or “coffee shops near the recipient's office”). In some examples, the sender specifies a threshold distance around the triggering location within which the recipient can be considered to be “at” the triggering location. In some examples, the communication system determines the threshold distance, e.g., based on the location or by applying a default threshold value.
The sender may also specify the triggering time, provide time criteria to be used by the communication system to identify the triggering time, or both (210). If the sender provides time criteria, the communication system automatically determines the triggering time (212). The triggering time may be, for example, a specific time (e.g., 10:00 am), a period of time (e.g., the morning), a specific day (e.g., Monday), or a specific date (e.g., Jan. 1, 2013), or another time. The triggering time may be a threshold time (e.g., any time after Apr. 12, 2020). The time criteria may describe the triggering time in terms of an event (e.g., “my niece's birthday”), in terms of a propensity for an activity (e.g., “a period of time when the recipient is likely to buy ice cream”), or in another way. In some examples, no triggering time is specified and no time criteria are provided. In these examples, the communication is sent to the recipient whenever the recipient is at or near the triggering location.
A communication is generated (214) by the sender, the communication system, or both. In some examples, the sender generates the communication and provide (e.g., upload) the communication to the communication system. In some examples, the communication is generated at a future time determined by the communication system, specified by the sender, or both. For instance, a communication that is to be sent on the tenth birthday of an as-yet-unborn grandson is generated only once the grandson is born. In some examples, the communication is generated immediately when the sender provides instructions to the communication system.
In some examples, the communication system automatically generates the communication, e.g., based on data collected from electronically-accessible data sources, based on information about the recipient, or both. For instance, the communication system may include images from social networking websites in a communication generated for a recipient's birthday. In some examples, the communication is generated by a combination of the sender and the communication system. For instance, the communication system may collect potentially relevant data from online data sources, format the collected data into a draft communication, and provide the communication to the sender for editing. The communication system may also provide data to the sender, e.g., in a list form, so that the sender can prepare the communication based on the collected data.
The communication system monitors the location of the recipient (216). For instance, the communication system monitors the GPS coordinates of the computing device associated with the recipient. If a triggering time was specified by the sender or identified by the communication system, the communication system monitors the location of the recipient at the triggering time. For instance, if the triggering time is a specific date, the communication system may monitor the location of the recipient on that date only. If the triggering time is a threshold time (e.g., any time after Apr. 12, 2020), the communication system begins monitoring the location of the recipient at or after the threshold time.
When the communication system detects that the recipient is at or near the triggering location (218), the communication is sent to the recipient (220). In some examples, the communication is sent automatically. In some examples, the communication is sent after approval by the sender.
Referring to
Upon registration, the person identifies one or more computing devices whose location is to be monitored by the computing system when a communication is to be sent to the person. In some examples, the person enters device information 304 about the computing device, such as a unique device identifier. In some examples, the device information 304 is populated automatically, e.g., if the person registers using the computing device he intends to associate with the communication or if the person is registered automatically. The person may enter device information 404 about one or more computing devices and may specify a device preference 306, e.g., by marking a particular computing device as a preferred device. The person may also enter communication preferences (menu 308), e.g., to indicate specific people, groups of people, or entities from which he does or does not wish to receive communications. For instance, the person may restrict his communication preferences such that, e.g., he receives communications only from his family members or only from people to whom he is linked on a social network.
Referring to
Using the sender interface, 400, the sender can prepare or edit the communication (button 414) using a built-in communication editor, upload a communication that was prepared elsewhere (button 416), and view and approve a communication prepared by the communication system (button 418). The sender can also monitor the status of a previously scheduled communication (e.g., to monitor the delivery of a communication) by selecting the communication from a menu 420.
Referring to
A predictive analytics submodule 504 applies the search algorithms and forecasting models stored in the models library 502 to select potential recipients, triggering locations, triggering times, contents of the communication, or other details related to the delivery of a communication. The predictive analytics submodule 504 may implement one or more forecasting techniques, including simple algorithms, future date calculation, including statistical techniques such as machine learning (e.g., as applied by IBM's Watson computer), game theory, and data mining. In some examples, the predictive analytics incorporate the robust, optimizing forecasting techniques of Pinto et al. (U.S. Pat. No. 7,499,897, issued on Mar. 3, 2009; U.S. Pat. No. 7,562,058, issued on Jul. 14, 2009; U.S. Pat. No. 7,725,300, issued on May 25, 2010; U.S. Pat. No. 7,730,003, issued on Jun. 1, 2010; U.S. Pat. No. 7,933,762, issued on Apr. 26, 2011; and U.S. patent application Ser. No. 10/826,949, filed Apr. 16, 2004, the contents of all of which are incorporated herein by reference), that manage historical data using missing values, which must be inferred.
In some examples, the predictive analytics submodule 504 may be configured as described by Gruber et al. (U.S. patent application Ser. No. 12/987,982, filed Jan. 10, 2011, and U.S. patent application Ser. No. 13/492,809 filed Jun. 9, 2012, the contents of both of which are incorporated herein by reference). For instance, the predictive analytics submodule 504 may include an automated assistant receiving user input. The predictive analytics submodule 504 may also include an active ontology with representations of concepts and relations among concepts drawn from various databases of historical data. For instance, for the example in which the sender is an agent of a corporation, the corporate personnel database may be referenced in the active ontology. The predictive analytics submodule 504 may also include a language interpreter to parse the sender's input in order to derive a representation of the sender's intent in terms of the active ontology. The predictive analytics submodule 504 may also include a services orchestration component to output responses and instructions to implement the sender's intent.
A results module 506 communicates the results of the analysis conducted by the predictive analytics submodule 504 to the communication module 134, the triggering database 132 (
For example, the predictive analytics submodule 504 may select content for a communication to be sent to a recipient specified by the sender at a triggering location specified by the sender. For instance, a grandfather may instruct the communications system to prepare an autobiographical communication to be sent to his grandson when the grandson is in the vicinity of the Metropolitan Museum of Art. The predictive analytics submodule 504 conducts an analysis of data relevant to the grandfather to select content that may be included in the autobiographical communication. The data may be sourced from the grandfather's social networking profile (e.g. photographs or status updates), from publications or news articles about the grandfather, from websites visited by the grandfather, or from any other source having data accessible to the predictive analytics submodule 504. The predictive analytics submodule 504 may also generate data relevant to the grandfather based. e.g., on historical data available about the grandfather. In some examples, the triggering location may also be used to identify content that may be included in the communication. For instance, content that is related to art, culture, or museums may be given special consideration in the selection of content for the grandfather's autobiographical communication. The selected content is provided to the communications module 134, which may assemble the grandfather's communication or may provide the content to the sender for assembly.
In another example, the predictive analytics submodule 504 may identify potential triggering locations, triggering times, or both for a particular recipient. Triggering locations and times may be identified based on the recipient's age, personal characteristics, home address, work address, commute pattern, travel habits, consumption habits, or other characteristics. For instance, a bar mitzvah date may be identified for a child based on the child's birth date. Appropriate religious holidays may be identified for a recipient based on the recipient's religious affiliation (e.g., as specified by the recipient or as inferred by the predictive analytics submodule 504) or based on the prevailing religion in the region where the recipient lives. The predictive analytics submodule 504 may also identify appropriate times for delivery of a communication separately from identifying the triggering time. For instance, based on a recipient's age, profession, computer usage patterns, or other factors, the predictive analytics submodule 504 may estimate when the recipient is expected to wake up in the morning such that a communication is not delivered before the recipient wakes up.
In another example, the predictive analytics submodule 504 may identify potential recipients based on an analysis of electronically-accessible sources of information, data stored in the recipient database, or both. For instance, potential recipients may be identified that meet one or more specified characteristics (e.g., high-income professional women or commuters who ride the 66 bus in the morning). Potential recipients may be identified by their relationship with the sender (e.g., all employees of Acme Corp. who live in the Chicago area or all social network connections of the sender). In some examples, the predictive analytics submodule 504 may have access to marketing databases to analyze characteristics of potential recipients. In some examples, the predictive analytics submodule 504 may have access to a list of past or potential customers of a business and may identify and rank potential recipients based on that list in terms of propensity to purchase based on historical data.
Referring to
In instances where the sender is incapacitated, the communications editor 600, with the aid of the analytics module 131, can serve as a surrogate in composing communications automatically. For example, the sender may be seriously ill or even dead at the time of delivery (e.g., the sender may be an incapacitated or dead grandparent of the recipient). If the sender user is incapacitated or dead, the communications editor 600 may carry out previous instructions of the sender and request confirmation as appropriate from a designated proxy of the sender, such as a parent of the recipient or an executor of the sender's estate. In some cases, the communications editor 600 may requests confirmation of the identity, or role, or both, of the designated proxy. For instance, if the executor of the sender's estate logs into the proximity messaging social network using the deceased sender's credentials, the executor may be considered to have been authenticated as the sender's proxy.
In some examples, the communications editor 600 may review or edit a communication that was generated in the past to confirm that the communication is still valid, appropriate, or relevant, or a combination of any two or more of them. For instance, if a grandmother had previously prepared a communication with the message “Have a coffee on me at the Happy Coffee Shop” and including a coupon to the Happy Coffee Shop, the communications editor 600 may review the communication to determine whether the grandmother is still alive, whether the grandson drinks coffee, and whether the Happy Coffee Shop is still in business. For example, if the communications editor 600 determines that the grandson's religion denies him caffeine but that his favorite beverage is blueberry tea, and further determines that the Happy Coffee Shop has been purchased by a larger corporation, the communications editor may inform the grandmother of these changes, may automatically edit the communication to reflect these changes, or both.
A delivery submodule 604 coordinates the delivery of a communication to a recipient. The delivery submodule 604 receives notification from the location module 136 (described below) when the recipient is at or near a triggering location. The delivery submodule 604 then accesses the triggering database to retrieve the triggering time, if any, associated with the recipient and the triggering location. If the triggering time is satisfied, the delivery submodule 604 causes the communication to be sent to the recipient's computing device. In some examples, the delivery submodule 604 may alert the sender that the communication has been sent or may ask the sender for authorization to send the communication. If a physical item is to be sent to the recipient, the delivery submodule 604 sends a message to the recipient to schedule delivery of the physical item using a vendor 144, for example by a common carrier such as FEDEX, UPS, DHL, or the USPS, or to provide instructions for the recipient to retrieve the physical item.
The communication may be sent to the recipient by voice, email, by text message, or by an alert in an application specific to the communication system. In some examples, the communication itself is sent, e.g., in the body of an email. In some examples, a link to the communication is sent and the recipient clicks on or otherwise follows the link to access the communication.
Referring to
A coordinates submodule 702 in the location module 136 determines GPS coordinates for each triggering location by accessing maps and data sources. For instance, if the triggering location is “Royal Theater, Boston, Mass.,” the location submodule 136 determines the GPS coordinates for that location by determining the address of the theater (e.g., by accessing a website for the theater) and then identifying the GPS coordinates for that address. In some examples, the coordinates submodule 702 may perform analytics to determine GPS coordinates. For instance, if the triggering location is “the ice cream shop by the recipient's house,” the coordinates submodule 702 determines the address of the recipient's house, (e.g., by accessing the recipient database 124 (FIG. 1)), identifies the ice cream shop nearest that address (e.g., by accessing maps or websites), and then identifies the GPS coordinates for the address of the ice cream shop.
A GPS submodule 706 in the location module 136 monitors the location of the computing device associated with each recipient who is scheduled to receive a communication, e.g., by monitoring the GPS coordinates of the computing device. When the GPS submodule 706 determines that the GPS coordinates of a recipient's computing device are sufficiently close to the GPS coordinates of a triggering location for that recipient, the GPS submodule alerts the communication module 134 (
Referring to
The communication system described here can be used to send a location-based communication from a sender to a recipient in a wide variety of situations. Some examples uses of the communication system are described below.
Referring to
Referring to
Referring to
In a fourth example, a human resources department of a corporation registers each employee of the corporation with the communication system. In some cases, the communication system may act as a surrogate for a corporate sender and use the corporate personnel database to identify recipients and, based on the profiles of the recipients, determine appropriate parameters and/or communications. The communication system may be used for location-based communication with the employees. In one example, a worksite in Atlanta, Ga., is in need of additional employees for a short-term project. The communication system may be used to send a message to all qualified employees who are within a certain distance (e.g., 100 miles) of the worksite alerting them to the project opportunity. In one example, an employee traveling to India requests that additional parts be sent to him for use in completing a repair. The communication system determines the location of the employee (e.g., the address of his hotel, the address of his worksite, or another location) and arranges for the additional parts to be sent directly to the employee. In one example, the corporation may offer a discounted health club membership to its employees. The communication system may be used to send a reminder message to any employee who passes within one mile of the health club.
Referring to
As desired, the system may include more or fewer than the components illustrated.
The system is described above with reference to block and flow diagrams of systems, methods, apparatuses, and/or computer program products according to examples. In some instances, the publisher and reader users may access the system by desktop or laptop computers. In some embodiments, the publisher and reader users may access the system by mobile devices such as smart phones. In some embodiments, the publisher and reader users may access the system by tablet computers or any commercial computing device connected to the internet. In some cases, the system may be constructed to operate on the internet independent of existing systems. The significant event system may operate using existing social networks, e.g., Facebook®, Google+®, or Yammer™ as platforms using existing application interfaces open to website developers.
One or more blocks of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and flow diagrams, respectively, can be implemented by computer-executable program instructions. Some blocks of the block diagrams and flow diagrams may not necessarily need to be performed in the order presented, or may not necessarily need to be performed at all, in some cases.
These computer-executable program instructions may be loaded onto a general-purpose computer, a special-purpose computer, a processor, or other programmable data processing apparatus to produce a particular machine, such that the instructions that execute on the computer, processor, or other programmable data processing apparatus create means for implementing one or more functions specified in the flow diagram block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means that implement one or more functions specified in the flow diagram block or blocks. As an example, embodiments may provide for a computer program product, comprising a computer-usable medium having a computer-readable program code or program instructions embodied therein, said computer-readable program code adapted to be executed to implement one or more functions specified in the flow diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational elements or steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions that execute on the computer or other programmable apparatus provide elements or steps for implementing the functions specified in the flow diagram block or blocks.
Accordingly, blocks of the block diagrams and flow diagrams support combinations of means for performing the specified functions, combinations of elements or steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and flow diagrams, can be implemented by special-purpose, hardware-based computer systems that perform the specified functions, elements or steps, or combinations of special purpose hardware and computer instructions.
While the system has been described in connection with certain examples, is the system is not limited to the disclosed embodiments, but on the contrary, includes various modifications and equivalent arrangements. Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non-transitory program carrier for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.
The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include special purpose logic circuitry, e.g. an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub programs, or portions of code. A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Computers suitable for the execution of a computer program include, by way of example, can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or communication data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few.
Computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.
Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component. e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
Other implementations are also within the scope of the following claims.
Mansfield, Richard J. W., Shani, Nissim, Shani, Daniel, Shani, Roni
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5634667, | Mar 19 1996 | Album for holding memorabilia | |
6324736, | Jul 09 1999 | Funeral casket with video display unit | |
6340978, | Jan 31 1997 | MAKIN GEVERLASTING MEMORIES, LTD | Method and apparatus for recording and presenting life stories |
7480513, | Aug 25 2005 | LG Electronics Inc. | Location based service system and position information updating method thereof |
7499897, | Apr 16 2004 | AI-CORE TECHNOLOGIES, LLC | Predictive model variable management |
7562058, | Apr 16 2004 | AI-CORE TECHNOLOGIES, LLC | Predictive model management using a re-entrant process |
7603292, | Jun 30 2004 | GOOGLE LLC | Methods and systems for providing a gift registry |
7680882, | Mar 06 2007 | Meta Platforms, Inc | Multimedia aggregation in an online social network |
7725300, | Apr 16 2004 | AI-CORE TECHNOLOGIES, LLC | Target profiling in predictive modeling |
7730003, | Apr 16 2004 | AI-CORE TECHNOLOGIES, LLC | Predictive model augmentation by variable transformation |
7809805, | Feb 28 2007 | Meta Platforms, Inc | Systems and methods for automatically locating web-based social network members |
7933762, | Apr 16 2004 | AI-CORE TECHNOLOGIES, LLC | Predictive model generation |
7933810, | Feb 02 2007 | Meta Platforms, Inc | Collectively giving gifts in a social network environment |
7953654, | Jan 29 2008 | First Data Resources, LLC | Integration of gift card services for mobile devices and social networking services |
7970657, | Feb 02 2007 | Meta Platforms, Inc | Giving gifts and displaying assets in a social network environment |
8046882, | May 15 2009 | Batesville Services, Inc | Casket and memorialization accessory |
8108501, | Nov 01 2006 | R2 SOLUTIONS LLC | Searching and route mapping based on a social network, location, and time |
8135624, | Mar 23 2010 | Amazon Technologies, Inc. | User profile and geolocation for efficient transactions |
8140403, | Mar 23 2010 | Amazon Technologies, Inc. | User profile and geolocation for efficient transactions |
8165853, | Apr 16 2004 | AI-CORE TECHNOLOGIES, LLC | Dimension reduction in predictive model development |
8190519, | Sep 30 2008 | Amazon Technologies, Inc | Electronic gifting |
8694633, | Jun 05 2012 | Forget You Not, LLC | Curating communications |
8725823, | Jun 05 2012 | Forget You Not, LLC | Location-based communications |
20020019744, | |||
20020039113, | |||
20020072925, | |||
20030009461, | |||
20030028498, | |||
20030217120, | |||
20040001575, | |||
20040078283, | |||
20050154706, | |||
20050234762, | |||
20050262212, | |||
20060242037, | |||
20070049289, | |||
20080005666, | |||
20080089489, | |||
20080102856, | |||
20080147430, | |||
20080189188, | |||
20080201924, | |||
20080255988, | |||
20090055482, | |||
20090125410, | |||
20090197681, | |||
20090216691, | |||
20090233618, | |||
20090265382, | |||
20090271486, | |||
20090276284, | |||
20090311992, | |||
20090327129, | |||
20100169160, | |||
20100223341, | |||
20100262449, | |||
20100323715, | |||
20110022602, | |||
20110035260, | |||
20110047229, | |||
20110071956, | |||
20110078173, | |||
20110081007, | |||
20110099048, | |||
20110168828, | |||
20110238474, | |||
20110238755, | |||
20110313946, | |||
20110314104, | |||
20120016678, | |||
20120150740, | |||
20120294613, | |||
20120315876, | |||
20130029308, | |||
20130041740, | |||
20130166607, | |||
20130257876, | |||
20130297710, | |||
20130325976, | |||
20130325978, | |||
20130325979, | |||
20140206328, | |||
JP2003256560, | |||
JP2006107369, | |||
JP2008234341, | |||
JP2011101337, | |||
WO2013184793, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 31 2014 | Forget You Not, LLC | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
Sep 09 2017 | 4 years fee payment window open |
Mar 09 2018 | 6 months grace period start (w surcharge) |
Sep 09 2018 | patent expiry (for year 4) |
Sep 09 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 09 2021 | 8 years fee payment window open |
Mar 09 2022 | 6 months grace period start (w surcharge) |
Sep 09 2022 | patent expiry (for year 8) |
Sep 09 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 09 2025 | 12 years fee payment window open |
Mar 09 2026 | 6 months grace period start (w surcharge) |
Sep 09 2026 | patent expiry (for year 12) |
Sep 09 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |