US20130173728A1 - Discovering real-time conversations - Google Patents

Discovering real-time conversations Download PDF

Info

Publication number
US20130173728A1
US20130173728A1 US13/692,179 US201213692179A US2013173728A1 US 20130173728 A1 US20130173728 A1 US 20130173728A1 US 201213692179 A US201213692179 A US 201213692179A US 2013173728 A1 US2013173728 A1 US 2013173728A1
Authority
US
United States
Prior art keywords
real
user
time
conversation
time conversation
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
Application number
US13/692,179
Inventor
Victor Starenky
Aleksandr V. Kennberg
Joseph Rideout
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to US13/692,179 priority Critical patent/US20130173728A1/en
Priority to AU2012327213A priority patent/AU2012327213B2/en
Priority to PCT/US2012/069773 priority patent/WO2013101505A2/en
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KENNBERG, ALEKSANDR V., RIDEOUT, JOSEPH, STARENKY, VICTOR
Publication of US20130173728A1 publication Critical patent/US20130173728A1/en
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • H04L51/20
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/222Monitoring or handling of messages using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area

Definitions

  • This specification relates to the discovery of a conversation in an online environment.
  • the Internet has provided a medium for many new forms of communication. From e-mail to chat rooms to instant messaging, Internet users have the ability to talk to one or many of their friends within moments from anywhere in the world. Moreover, as computing devices have become smaller and wireless, these new forms of communication have become increasingly mobile.
  • a server can create a conversation object that is tied to a geographic location and a time, and can index the conversation object such that the conversation can be easily found by other users that are near the location shortly after the conversation is created.
  • One innovative aspect of the subject matter described in this specification is embodied in methods that include the actions of: receiving, at a server, a topic for a real-time conversation from a user; receiving, at the server, location information related to a location of the user; creating, at the server, a real-time conversation object that includes the received topic; tagging the created real-time conversation object with the received location information; indexing, based on the received topic and the received location information, the tagged real-time conversation object with respect to other real-time conversation objects; and providing the tagged real-time conversation object in response to a search for real-time conversation objects received from another user.
  • Another innovative aspect of the subject matter described in this specification is embodied in methods that include the actions of: receiving, at a server, location information related to a location of a user; determining a plurality of real-time conversation objects that are associated with locations within an area related to the received location of the computing device, the location associated with each of the plurality of real-time conversation objects indicating a location of a user at the time the user requested creation of the real-time conversation object; and sending, to a computing device of the user, information representing the determined real-time conversation objects.
  • Another innovative aspect of the subject matter described in this specification is embodied in methods that include the actions of: receiving, at a server, location information related to a location of a user; determining a plurality of real-time conversation objects that are associated with locations within an area related to the received location of the user and associated with a threshold level of message activity over a certain period of time; and sending, to a computing device of the user, information representing the selected real-time conversation objects.
  • inventions of these aspects include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices.
  • a system of one or more computers can be so configured by virtue of software, firmware, hardware, or a combination of them installed on the system that in operation cause the system to perform the actions.
  • One or more computer programs can be so configured by virtue having instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
  • the location information may received from a computing device of the user and based on an output of a Global Positioning System (GPS) sensor included in the computing device of the user.
  • the actions may include: receiving, from the user, a list of other users to invite to be associated with the created real-time conversation object; sending, to the other users included in the received list, invitations to be associated with the created real-time conversation object; receiving, from one or more of the other users, an acceptance of the invitation; and updating the created real-time conversation object to include indicators of the one or more other users that accepted the invitation.
  • GPS Global Positioning System
  • the actions may further include receiving a request from the user to create the real-time conversation object.
  • Receiving location information related to the location of the user may include receiving location information that indicates the location of the user at the time the user requested the creation of the real-time conversation object.
  • tagging the created real-time conversation object with the received location information may include tagging the created real-time conversation object with the location of the user at the time the user requested the creation of the real-time conversation object and maintaining the location with which the created real-time conversation object is tagged regardless of whether a current location of the user changes.
  • the actions may further include receiving, at the server, a selection of a real-time conversation objects from the determined real-time conversation objects; and sending, to the computing device of the user, a link to the selected real-time conversation object.
  • the action may further include receiving, from the computing device of the user, message information to be posted to the real-time conversation object; and updating the real-time conversation object with the received message information and the time at which the message information was received.
  • real-time conversations created by the systems described herein do not need to be associated with a particular business or venue (e.g., a restaurant).
  • the real-time conversations may be associated with any topic.
  • users that create real-time conversations are not limited to a list of pre-selected topics.
  • the systems described herein allow users to quickly discover the most relevant real-time conversations that are associated with locations near a user's current location.
  • FIG. 1 illustrates an example system for creating a conversation.
  • FIG. 2 is a flow diagram of an example method for creating and indexing a conversation.
  • FIGS. 3A-3C illustrate examples of interfaces for use in the creation of a conversation object.
  • FIG. 4 illustrates an example system for discovering and participating in a conversation.
  • FIG. 5 is a flow diagram of an example method for discovering and participating in a conversation.
  • FIGS. 6A and 6B illustrate examples of interfaces for use in the discovery of a conversation.
  • FIGS. 7A and 7B illustrate examples of interfaces for use in the participation in a conversation.
  • FIG. 8 is a block diagram illustrating an example of a computer system.
  • Real-time conversations provide a platform for users to exchange messages in a continuously streaming environment.
  • the described system harnesses the mobility of modern computing devices and allows a user to create a real-time conversation based on the user's location and any topic the user chooses.
  • real-time conversations There are various types of real-time conversations.
  • One example such example is instant messaging, a form of direct, text-based chatting communication where the messages are pushed to participants in real-time.
  • Other examples include Internet Relay Chat (IRC) and certain forms of mobile text messaging.
  • IRC Internet Relay Chat
  • the real-time conversations referred to herein are not limited to any of these implementations and encompass any types of conversation platforms that permit the exchange of messages in real-time.
  • FIG. 1 illustrates an example system for creating a real-time conversation.
  • the conversation system 100 can be implemented as, for example, computer programs running on one or more computers in one or more locations that are coupled to each other through a network.
  • the conversation system 100 includes a conversation database 102 , a conversation object creator 104 , and a conversation indexer 106 .
  • the conversation database 102 stores real-time conversation objects that represent real-time conversations between users. Each real-time conversation object is related to a location and a topic, as well as other parameters (e.g., time).
  • the conversation object creator 104 receives various parameters regarding a proposed real-time conversation, including the location and the topic, and creates a real-time conversation object that includes the received parameters. Beyond a location and topic, the parameters of a real-time conversation may include, for example, a list of users that should be invited to join the conversation, an icon representing the conversation, and one or more messages to begin the conversation.
  • Each real-time conversation object stores the entire contents of the real-time conversation. For example, the real-time conversation object stores all previous messages contributed to the conversation, the time and date each message was contributed, the user that contributed the message, identifiers of all users that have joined the conversation, and an indication of those members that are currently participating in the conversation. Moreover, each real-time conversation object provides a platform for a plurality of users associated with a common location to interactively communicate about a geographically relevant topic.
  • the user is not limited to a predetermined list of topics or categories. Rather, a user may organically create a real-time conversation based on any topic relevant to the user's location.
  • the conversation indexer 106 stores the real-time conversation objects created by the conversation object creator 104 in the conversation database 102 and indexes the created real-time conversation object with respect to a plurality of other real-time conversation objects stored in the conversation database. By indexing the created conversation, the conversation indexer 106 enables other users to search for the created conversation in the conversation database 102 .
  • a user 112 generally interacts with the conversation system 100 through a user device 114 .
  • the user device 114 can be a mobile device coupled to the conversation system 100 through a local area network (LAN) or wide area network (WAN), e.g., the Internet.
  • the user 112 may interface with the conversation system 100 in various ways.
  • the user 112 may interface with the conversation system 100 by accessing a webpage associated with the conversation system 100 on a browser application on the user device 114 .
  • an application may be installed on the user device 114 that, when executed, provides an interface to the conversation system 100 .
  • the user 112 may be presented with a creation screen 116 .
  • the user 112 may submit conversation parameters (e.g., location and topic) to the conversation system 100 .
  • conversation parameters e.g., location and topic
  • the user 112 may submit, to the conversation system 100 , conversation parameters 118 that include a location of “Elm Street” and a topic of “Fire.”
  • the conversation object creator 104 receives and creates a real-time conversation object based on the conversation parameters 118 .
  • the conversation indexer 106 stores the real-time conversation objects created by the conversation object creator 104 in the conversation database 102 and indexes the created conversation object with respect to a plurality of other real-time conversation objects stored in the conversation database.
  • the conversation indexer 106 provides users with the ability to discover what is happening around them right now.
  • the conversation system 100 returns data 120 regarding the created and indexed conversation object to the user device 114 .
  • the data 120 may include, for example, a link to the real-time conversation object so that the user device 114 may display the conversation and allow the user 112 to interact with the conversation.
  • the user device 114 accesses a screen providing a list of conversations 122 , the created and indexed conversation may be included.
  • protective steps may be taken with respect to user privacy.
  • a system may provide users with the opportunity to opt in/out of services that may collect personal information, may partially or fully anonymize data so as to prevent personally identifiable information from being disclosed, and may perform similar operations with respect to user location data, user preference data, and other data relating to users of the system.
  • FIG. 2 is a flow diagram of an example method 200 for creating and indexing a real-time conversation.
  • the method 200 is described with reference to a system of one or more servers that performs the method.
  • the system can be, for example, the conversation system 100 described above with reference to FIG. 1 .
  • the system receives a topic for a real-time conversation from a user ( 202 ).
  • the topic may be identified by any string of characters that the user chooses to use to represent the conversation. For example, the topic could be “Concert in the Park” or “Free doughnuts on the corner!”
  • the user may provide her own topic or may select from a list of topics provided by the system.
  • the topic of conversation provides an indication to other users of the subject of the conversation.
  • the system also receives location information for the conversation ( 204 ).
  • the location information may indicate the present location of the user.
  • the location information may also indicate a location other than a business, for example, a street, a neighborhood, or a landmark.
  • the location information may be determined in various manners.
  • the location information may correspond to a location provided by the user device from which the user is submitting the location information.
  • the user may specify the location information by manually providing an indication of the location information by, for example, selecting the location from a map displayed by the user device or by providing an address of the location.
  • the system may also receive other parameters related to the real-time conversation.
  • the user may specify an icon to represent the real-time conversation.
  • the user may select the icon from a list of icons provided by the system or the user may provide her own icon from a different source.
  • the user may specify a list of other users she would like to invite to the real-time conversation.
  • the system may send a link to the real-time conversation object to the other users.
  • the other users may access the link to the real-time conversation object and participate in the real-time conversation.
  • the user may specify whether the real-time conversation is to be made public or private.
  • the system may make public conversations accessible to any other users that search for them.
  • the system my limit accessibility of private conversations to those other users that the user creating the real-time conversation invites to join.
  • the user may provide one or more messages to be included in the real-time conversation object. In other words, the user may provide a seed for the conversation by including an initial message to which other users may respond.
  • the system creates a real-time conversation object that includes the received topic and location information ( 206 ).
  • the system may also include, in the real-time conversation object, any of the other received parameters related to the conversation.
  • the real-time conversation object may be any data structure that relates the received parameters and the messages related to the conversation.
  • the system may create a real-time conversation object by creating an XML structure that represents the conversation.
  • the system may create a real-time conversation object by creating a database object related to the conversation.
  • the created real-time conversation object includes a thread of messages received by the system from one or more users. Once created, the system continuously updates the thread of messages to include any additional messages that are received in relation to the real-time conversation.
  • the system may also include information related to the state of the conversation in the real-time conversation object.
  • the real-time conversation object may include information indicating the number of other users that have joined the conversation or that have actively participated in the conversation, as well as an indication of these other users' identities. In other words, the real-time conversation object represents on ongoing exchange in which users contribute in real-time.
  • the system may use the indication of the identities other users who have joined the real-time conversation to send updates of the conversation to the other users.
  • the real-time conversation object may include information indicating the last time that a message was posted in the conversation, which the system may use to sort the real-time conversation object with respect to other real-time conversation objects.
  • the system may tag the real-time conversation object with the received location information.
  • the real-time conversation object may be updated to store a representation of the location information.
  • the system may use any format for specifying the location of the real-time conversation.
  • the location information associated with the real-time conversation object may be static.
  • the real-time conversation object may be permanently tagged with the location specified by the user during the creation of the real-time conversation object.
  • the location information associated with the real-time conversation object may be dynamic. For example, as the user that created the real-time conversation object moves, the location information associated with the real-time conversation object may be continuously or periodically updated with the new location of the user.
  • the system indexes the created real-time conversation object with respect to a plurality of real-time conversation objects such that the created conversation object is searchable by other users ( 208 ).
  • the system stores a plurality of real-time conversation objects.
  • Each real-time conversation object may include any combination of the conversation parameters described above, as well as any other parameters.
  • each real-time conversation object includes at least a location and a topic.
  • the system may index the real-time conversation objects based on one or more of the parameters included in the real-time conversation object. For example, the system may index the real-time conversation objects based on the location and the topic of the conversation. Indexing the real-time conversation objects allows the system to make the real-time conversation objects searchable by users, as will be described in greater detail below with regard to FIG. 5 .
  • FIGS. 3A-3C illustrate examples of interfaces for use in the creation of a real-time conversation object.
  • the interfaces are described with reference to a system of one or more servers that provide the interfaces to a user and a user device.
  • the system can be, for example, the conversation system 100 described above with reference to FIG. 1 .
  • the user device may be, for example, a mobile telephone.
  • the interface 300 shown in FIG. 3A represents a portal for a user to provide parameters in the process of creating a real-time conversation.
  • the interface 300 includes various regions.
  • the interface 300 may include a region 302 that provides a user with a choice of icons with which to represent the real-time conversation being created.
  • the interface 300 may include a region 304 that permits a user to specify the name or topic of the real-time conversation.
  • the region 304 may include text field in which a user may enter a name or topic. Alternatively or additionally, the region 304 may include a pull-down menu that includes a list of suggested topics or names.
  • the interface 300 is designed so as to permit a user to freely create a real-time conversation without limits on the subject or category of the conversation.
  • the interface 300 may include a region 306 that permits a user to specify a list of other users that the user would like to invite to join the real-time conversation being created.
  • the region 306 may include a search field that permits a user to search for other users to include in the invitation list and/or may include a pull-down menu that includes a list of other users that are associated with the user creating the real-time conversation (e.g., a list of “friends”).
  • the interface 300 may include a region 308 that relates to a location associated with the real-time conversation.
  • the region 308 may include a map showing the location of the user device and an advisory to the user that the conversation will be visible to nearby users, if the conversation is not made private.
  • the region 308 may include a map with which the user may interact to specify a location for the conversation.
  • the region 308 may include a text field in which a user may enter, for example, an address or keyword to specify a location for the conversation.
  • the interface 300 may include a region 308 that permits a user to enter a message to be included in the conversation.
  • the region 308 may include a text field in which a user may enter a message.
  • the interface 300 may include other regions for specifying other parameters related to the conversation being created. For example, the interface may include a region that permits the user to designate the conversation as either private or public.
  • the interface 300 provides a single mechanism through which a user may create a conversation about any topic.
  • the user need not enter a location and have a topic selected for her.
  • the user need not search through a list of pre-selected locations, for example, a list of businesses.
  • the interface 300 allows a user to specify any topic that is relevant to the user's experience at a given location.
  • the interface 320 shown in FIG. 3B represents a status of a created conversation.
  • the interface 320 includes various regions.
  • the interface 320 may include a region 322 that indicates the number of users that have joined the real-time conversation.
  • the interface 320 may include a region 324 that permits a user to join the conversation.
  • Region 324 may be a button that, when pressed, causes the system to join the user to the conversation.
  • Region 326 may include a list of users that are currently joined to the real-time conversation.
  • the interface 320 may include an indication of the user's identity, the last time the user participated in the real-time conversation, and an icon that represents the user.
  • the indication of the user's identity may be the user's name or a handle associated with the user.
  • the indication of the last time the user participated in the real-time conversation may include the date and time at which the user last contributed a message to the real-time conversation.
  • the indication of the last time the user participated in the conversation may indicate that the user is “in conversation,” “currently participating,” or some variation thereof.
  • participating in and being joined to a real-time conversation are distinct states.
  • the user is actively interacting with the real-time conversation object.
  • a user joins a conversation regarding which the user wants to be notified of updates and with which the user generally wants to be associated.
  • the interface 330 includes various regions.
  • the interface 330 may include a region 332 that permits a user to change the tone or music emitted by the user device when the real-time conversation is updated with, for example, a new message.
  • the interface 330 may include a region 334 that indicates the name or topic of the real-time conversation.
  • the region 334 may permit a user that has joined the real-time conversation to change the name or topic.
  • the region 334 may only permit the user who created the real-time conversation to change the name or topic and may simply display the name or topic to all other users.
  • the interface 330 may include a region 336 that indicates whether the real-time conversation is public or private. Similar to region 334 , region 336 may permit a user that has joined the real-time conversation to change the setting of the conversation from public to private and vice versa. Alternatively, the region 334 may only permit the user who created the real-time conversation to change the setting of the conversation from public to private and vice versa.
  • the interface 330 may include a region 338 that permits a user to manage the notifications that the user device provides to the user in relation to the real-time conversation.
  • the user device may be configured to notify the user when a new message has been posted in the real-time conversation or only when messages from certain users have been posted in the real-time conversation.
  • the user device may be configured to notify the user when another user has joined and/or left the real-time conversation.
  • the user device may be configured to notify the user when the user is located within a certain distance of the location associated with the real-time conversation.
  • the interface 330 may include a region 340 that permits a user to leave the real-time conversation.
  • FIG. 4 illustrates an example system for finding and joining real-time conversations.
  • the conversation system 400 provides users with the ability to find out what is happening around them in real-time. As a user moves between streets or neighborhoods, the conversation system 400 will present the user with a list of real-time conversations that are both relevant to the user's location and are being actively conducted concurrent with the user's travels.
  • the conversation system 400 can be implemented as, for example, computer programs running on one or more computers in one or more locations that are coupled to each other through a network.
  • the conversation system 400 may be implemented on the same one or more computers as conversation system 100 as described above with regard to FIG. 1 .
  • conversation system 400 may be implemented as a separate system on one or more other computers.
  • the conversation system 400 includes a conversation database 402 , a conversation search engine 404 , and a conversation participation interface 406 .
  • the conversation database 402 stores indexed conversation objects that represent real-time conversations between users. Each real-time conversation object may be related to a location and a topic, as well as other parameters. As described above, the stored real-time conversation objects are indexed by the parameters to which the real-time conversation objects are associated.
  • the conversation search engine 404 may receive an indication of one or more parameters based upon which conversation search engine 404 searches for real-time conversations. For example, the conversation search engine 404 may receive an indication of a location based upon which conversation search engine 404 searches for real-time conversations. Alternatively or additionally, the conversation search engine 404 may receive one or more search terms related to the name or topic of a real-time conversation. The conversation search engine 404 may search the stored indexes for the received parameters and return a list of real-time conversations related to the received parameters.
  • the conversation participation interface 406 provides an interface through which a user may view and post messages to a selected real-time conversation.
  • the conversation participation interface 406 may receive a message from a user device and store the message in a message thread included in the corresponding real-time conversation object.
  • the conversation participation interface 406 may also receive requests from a user to join and/or leave a real-time conversation and update a list of associated users included in the corresponding real-time conversation object.
  • the conversation participation interface 406 may also receive updates to the settings associated with a real-time conversation object, as described above with regard to FIG. 3C .
  • a user 412 generally interacts with the search system 400 through a user device 414 .
  • the user device 414 can be a mobile device coupled to the conversation system 400 through a local area network (LAN) or wide area network (WAN), e.g., the Internet.
  • the user 412 may interface with the conversation system 400 in various ways.
  • the user 412 may interface with the conversation system 400 by accessing a webpage associated with the conversation system 400 on a browser application on the user device 414 .
  • an application may be installed on the user device 414 that, when executed, provides an interface to the conversation system 400 .
  • the user 412 may be presented with a conversation search screen 416 .
  • the user 412 may submit conversation parameters (e.g., location or topic) to the conversation system 400 and search for existing real-time conversations. For example, while walking down Elm Street, the user 412 may encounter a house that is on fire.
  • conversation search screen 416 the user 412 may submit, to the conversation system 400 , search parameters 418 that include a location of “Elm Street” and/or a topic of “Fire.” These parameters 418 may be specified by the user and/or provided automatically by the user device 414 . For example, as a user walks onto Elm Street, the user device 414 may provide the user's location to the conversation system 400 in order to obtain a list of conversations relevant to Elm Street.
  • the conversation search engine 404 receives the search parameters 418 and searches indexes related to the stored real-time conversation objects using the received search parameters 418 .
  • the conversation search engine 404 may return data 420 that includes a set of links to real-time conversation objects resulting from the search.
  • the user device 414 may display the set of links to real-time conversation objects as a list of conversations. The user may then select a real-time conversation from the list of conversations to view.
  • the user device 414 may access the link to the corresponding real-time conversation object.
  • the user 412 may be presented with a conversation participation screen 422 .
  • the conversation participation screen 422 provides a portal to the conversation participation interface 406 .
  • the user 412 may view the various contents of the selected real-time conversation object. For example, the user 412 may be presented with the messages in the message thread included in the real-time conversation object.
  • the user 412 may interact with the conversation participation screen 422 to send changes 424 to conversation participation interface 406 regarding the real-time conversation object.
  • the user 412 may post a new message to the message thread.
  • the conversation participation interface 406 receives the changes 424 and may update the real-time conversation object stored in conversation database 402 accordingly.
  • the conversation participation interface 406 may also send updates 426 to user device 414 related to any real-time conversation objects to which user 412 is joined.
  • FIG. 5 is a flow diagram of an example method 500 discovering and participating in a real-time conversation.
  • the method 500 is described with reference to a system of one or more servers that performs the method.
  • the system can be, for example, the conversation system 400 described above with reference to FIG. 4 .
  • the system receives location information from a user ( 502 ).
  • the location information may indicate the present location of the user.
  • the location information may also indicate a location other than a business, for example, a street, a neighborhood, or a landmark.
  • the location information may be determined in various manners.
  • the location information may correspond to a location of the user device from which the user is submitting the location information.
  • the user device may determine its location through a global positioning sensor (GPS) included in the user device, through a process of cell tower triangulation, through a process of evaluating a Wi-Fi network connection's signal strength, though an IP address assigned to the user device, or through any combination of these or other methods.
  • the user may specify the location information by manually providing an indication of the location information by, for example, selecting the location from a map displayed by the user device or by providing an address of the location.
  • the system may receive other search parameters. For example, the system may receive one or more search terms related to the name or topic of a real-time conversation. Alternatively or additionally, the system may receive identifiers associated with users that created or are joined to one or more real-time conversations.
  • the system determines one or more real-time conversation objects that relate to the received location information ( 504 ).
  • the one or more conversation objects may include other conversation parameters (e.g., a topic).
  • the system may search one or more indexes stored by the system.
  • the indexes may include various conversation parameters associated with the real-time conversation objects, including, for example, a location associated with each of the real-time conversation objects.
  • the system determines one or more real-time conversation objects that relate to the received location information by comparing the received location information with the location associated with each of the real-time conversation objects.
  • the system may, for example, determine that a real-time conversation object relates to the received location information where the received location information is within a certain distance of the location associated with the real-time conversation object.
  • the system may also search for real-time conversation objects based on user preferences. For example, the user may specify that she only wants to search for and be presented with real-time conversations that her friends created or have joined. In other words, the system allows a user to specifically determine what her nearby friends are doing. Alternatively, the user may specify the distance within which the locations associated with real-time conversation objects should be located in order to be included in the returned results.
  • the system may utilize the stored user preferences in conjunction with the specified conversation parameters to search the one or more indexes stored by the system.
  • the system may present the user with an interface that includes the one or more determined real-time conversation objects, for example, the interface described below with regard to FIG. 6B .
  • the system receives, from the user, a selection of a real-time conversation object from the one or more determined real-time conversation objects ( 506 ).
  • the user may select a real-time conversation object from the one or more determined conversation objects included in the interface.
  • the user device from which the user selects the real-time conversation object may include a list of links to the one or more determined conversation objects.
  • the user device may send a request for the link to the system.
  • the system may receive the request for the link associated with the selected conversation object.
  • the system accesses the selected conversation object ( 508 ).
  • the system accesses the selected conversation object by accessing the link associated with the real-time conversation object.
  • the system may send the accessed conversation object to the user device from which the real-time conversation object was selected.
  • the user device may present the accessed conversation object to the user via an interface, for example, the interface shown in FIGS. 7A and 7B .
  • the system may receive, from the user, a message associated with the accessed conversation object ( 510 ). For example, through interaction with an interface that presents the accessed conversation object to the user on the user device, the user may enter and submit a message for the real-time conversation.
  • the system updates the real-time conversation object to include the received message ( 512 ).
  • the system may receive the message entered by the user and update the real-time conversation object to include the received message.
  • FIGS. 6A and 6B illustrate examples of interfaces for use in finding a real-time conversation object.
  • the interfaces are described with reference to a system of one or more servers that provide the interfaces to a user and a user device.
  • the system can be, for example, the conversation system 400 described above with reference to FIG. 4 .
  • the user device may be, for example, a mobile telephone.
  • the interface 600 shown in FIG. 6A represents a menu screen for an application running on the user device.
  • the application may, among other functions, provide the interface through which the user interacts with the system.
  • the interface 600 may include various links to the functions provided by the application.
  • the interface 600 may include a link titled “Nearby” 602 , which links to a function for searching the system for real-time conversations that are near in location to the location of the user device.
  • the interface 600 may include a region 604 that may provide an indication of new notifications received by the user device. The notifications may be similar to those described above with regard to region 338 of interface 330 .
  • the interface 610 shown in FIG. 6B represents results from searching the system for real-time conversations that are near in location to the location of the user device. For example, when a user selects the link 602 from the interface 600 , the system may search one or more indexes stored by the system that include various conversation parameters associated with real-time conversation objects, including, for example, a location associated with each of the real-time conversation objects. The system may determine one or more real-time conversation objects that relate to the location of the user device by determining that the location of the user device is within a certain distance of the location associated with the determined conversation objects.
  • the interface 610 may present the user with a list of the determined real-time conversation objects from the system's search.
  • the interface 610 may include multiple regions for organizing the determined conversation in different manners.
  • the interface 610 may include a region 612 that lists nearby real-time conversations that are popular over a long period of time.
  • the system may determine the long-term popularity of a real-time conversation in various ways, including, for example, by analyzing the total number of messages posted to the real-time conversation since its creation and/or the total number of users joined to the real-time conversation.
  • the interface 610 may also include a region 614 that lists nearby real-time conversations that are currently popular.
  • the system may determine the current popularity of a real-time conversation in various ways, including, for example, analyzing the number of users currently participating in the real-time conversation or the number of messages posted to the real-time conversation within the last day.
  • a real-time conversation included in the list of conversations displayed by the interface 610 may be represented in the list by a number of conversation parameters.
  • a real-time conversation may be represented by its topic, its icon, the number of users joined to the real-time conversation, the names of friends of the user of the user device joined to the real-time conversation, and/or the number of messages posted to the real-time conversation that have not been read by the user.
  • the interface may also include a button 616 that allows the user to create a new conversation, if, for example, the system does not return a real-time conversation related to the topic about which the user wants to talk.
  • FIGS. 7A and 7B illustrate examples of interfaces for use in participating in a real-time conversation.
  • the interfaces are described with reference to a system of one or more servers that provide the interfaces to a user and a user device.
  • the system can be, for example, the conversation system 400 described above with reference to FIG. 4 .
  • the user device may be, for example, a mobile telephone.
  • Each of the interfaces 700 and 701 illustrated in FIGS. 7A and 7B represent a visual representation of an accessed real-time conversation object.
  • Interface 700 represents an example where the real-time conversation has not yet been joined by the user.
  • the interface 701 represents an example where the real-time conversation has been joined by the user.
  • the interfaces 700 and 701 include many of the same elements, which will be described together.
  • Interfaces 700 and 701 may both include a region 702 that indicates the topic or name of the real-time conversation object.
  • Interfaces 700 and 701 may both include a region 704 that represents the number of members joined to the real-time conversation and a list of identifiers associated with the joined users.
  • the region 704 may include a list of icons associated with a user (e.g., a picture of the user). The region 704 may allow the user to scroll through the list.
  • Interfaces 700 and 701 may both include a region 706 that lists the messages posted to the real-time conversation.
  • each message included in the region 706 may be represented by one or more identifiers associated with the user that posted the message and an indication of when the message was posted.
  • the one or more identifiers associated with the user that posted the message may include, for example, the name of the user and a photo of the user.
  • the region 706 may allow the user to scroll through all of the messages posted to the real-time conversation. Additionally, the region 706 may order the listed messages in various manners. For example, the messages may be listed by the time at which the message was posted and/or by the relationship between the posting user and the viewing user.
  • Interfaces 700 and 701 may both include a region 708 that indicates whether other users that have joined the real-time conversation are currently typing messages to post to the conversation.
  • Interfaces 700 and 701 may both include a region 710 that permits a user to enter a message to be instantly posted to the real-time conversation.
  • the region 710 may include a text field that allows the user to enter a message and a submit button that allows the user to post the entered message.
  • interface 700 a user who is viewing or browsing the real-time conversation, but has not joined the real-time conversation, may be prevented from posting a message to the conversation.
  • the interface 700 may prevent a user from interacting with region 710 altogether.
  • interface 700 may trigger a pop-up notification that asks the user whether the user would like to join the real-time conversation.
  • the interface 700 may include a region 712 that, when interacted with, permits a user to join the real-time conversation.
  • interface 701 may include region 714 that, when interacted with, permits a user to view and edit the settings of the real-time conversation.
  • region 714 may be a button that, when pressed by the user, presents the user with an interface 330 .
  • Interface may also include a region 716 that, when interacted with, permits a user to invite other users to join the real-time conversation.
  • the system may send a notification (e.g., an e-mail) to the invited users with a link to the real-time conversation object and an identity of the inviting user.
  • the system may not permit a user who has not joined the real-time conversation to view or edit the settings of the real-time conversation of invite other users to join the real-time conversation.
  • FIG. 8 is a block diagram of computing devices 800 , 850 that may be used to implement the systems and methods described in this document, as either a client or as a server or plurality of servers.
  • Computing device 800 is intended to represent various forms of digital computers, for example, laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
  • Computing device 850 is intended to represent various forms of mobile devices, for example, personal digital assistants, cellular telephones, smartphones, and other similar computing devices.
  • the components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.
  • Computing device 800 includes a processor 802 , memory 804 , a storage device 806 , a high-speed interface 808 connecting to memory 804 and high-speed expansion ports 810 , and a low speed interface 812 connecting to low speed bus 814 and storage device 806 .
  • Each of the components 802 , 804 , 806 , 808 , 810 , and 812 are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate.
  • the processor 802 can process instructions for execution within the computing device 800 , including instructions stored in the memory 804 or on the storage device 806 to display graphical information for a GUI on an external input/output device, for example, display 816 coupled to high speed interface 808 .
  • multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory.
  • multiple computing devices 800 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
  • the memory 804 stores information within the computing device 800 .
  • the memory 804 is a computer-readable medium.
  • the memory 804 is a volatile memory unit or units.
  • the memory 804 is a non-volatile memory unit or units.
  • the storage device 806 is capable of providing mass storage for the computing device 800 .
  • the storage device 806 is a computer-readable medium.
  • the storage device 806 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations.
  • a computer program product is tangibly embodied in an information carrier.
  • the computer program product contains instructions that, when executed, perform one or more methods (e.g., those described above).
  • the information carrier is a computer- or machine-readable medium, for example, the memory 804 , the storage device 806 , or memory on processor 802 .
  • the high speed controller 808 manages bandwidth-intensive operations for the computing device 800 , while the low speed controller 812 manages lower bandwidth-intensive operations. Such allocation of duties is exemplary only.
  • the high-speed controller 808 is coupled to memory 804 , display 816 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 810 , which may accept various expansion cards (not shown).
  • low-speed controller 812 is coupled to storage device 806 and low-speed expansion port 814 .
  • the low-speed expansion port which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, for example, a keyboard, a pointing device, a scanner, or a networking device (e.g., a switch or router), through a network adapter.
  • input/output devices for example, a keyboard, a pointing device, a scanner, or a networking device (e.g., a switch or router), through a network adapter.
  • the computing device 800 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 820 , or multiple times in a group of such servers. It may also be implemented as part of a rack server system 824 . In addition, it may be implemented in a personal computer (e.g., a laptop computer 822 ). Alternatively, components from computing device 800 may be combined with other components in a mobile device (not shown), for example, device 850 . Each of such devices may contain one or more of computing device 800 , 850 , and an entire system may be made up of multiple computing devices 800 , 850 communicating with each other.
  • Computing device 850 includes a processor 852 , memory 864 , an input/output device, for example, a display 854 , a communication interface 866 , and a transceiver 868 , among other components.
  • the device 850 may also be provided with a storage device, for example, a microdrive or other device, to provide additional storage.
  • a storage device for example, a microdrive or other device, to provide additional storage.
  • Each of the components 850 , 852 , 864 , 854 , 866 , and 868 are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
  • the processor 852 can process instructions for execution within the computing device 850 , including instructions stored in the memory 864 .
  • the processor may also include separate analog and digital processors.
  • the processor may provide, for example, for coordination of the other components of the device 850 , for example, control of user interfaces, applications run by device 850 , and wireless communication by device 850 .
  • Processor 852 may communicate with a user through control interface 858 and display interface 856 coupled to a display 854 .
  • the display 854 may be, for example, a TFT LCD display or an OLED display, or other appropriate display technology.
  • the display interface 856 may comprise appropriate circuitry for driving the display 854 to present graphical and other information to a user.
  • the control interface 858 may receive commands from a user and convert them for submission to the processor 852 .
  • an external interface 862 may be provide in communication with processor 852 , so as to enable near area communication of device 850 with other devices. External interface 862 may provide, for example, for wired communication (e.g., via a docking procedure) or for wireless communication (e.g., via Bluetooth or other such technologies).
  • the memory 864 stores information within the computing device 850 .
  • the memory 864 is a computer-readable medium.
  • the memory 864 is a volatile memory unit or units.
  • the memory 864 is a non-volatile memory unit or units.
  • Expansion memory 874 may also be provided and connected to device 850 through expansion interface 872 , which may include, for example, a SIMM card interface. Such expansion memory 874 may provide extra storage space for device 850 , or may also store applications or other information for device 850 .
  • expansion memory 874 may include instructions to carry out or supplement the processes described above, and may include secure information also.
  • expansion memory 874 may be provide as a security module for device 850 , and may be programmed with instructions that permit secure use of device 850 .
  • secure applications may be provided via the SIMM cards, along with additional information, for example, placing identifying information on the SIMM card in a non-hackable manner.
  • the memory may include for example, flash memory and/or MRAM memory, as discussed below.
  • a computer program product is tangibly embodied in an information carrier.
  • the computer program product contains instructions that, when executed, perform one or more methods, such as those described above.
  • the information carrier is a computer- or machine-readable medium, for example, the memory 864 , expansion memory 874 , or memory on processor 852 .
  • Device 850 may communicate wirelessly through communication interface 866 , which may include digital signal processing circuitry where necessary. Communication interface 866 may provide for communications under various modes or protocols, for example, GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 868 . In addition, short-range communication may occur using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS receiver module 870 may provide additional wireless data to device 850 , which may be used as appropriate by applications running on device 850 .
  • GPS receiver module 870 may provide additional wireless data to device 850 , which may be used as appropriate by applications running on device 850 .
  • Device 850 may also communication audibly using audio codec 860 , which may receive spoken information from a user and convert it to usable digital information. Audio codex 860 may likewise generate audible sound for a user through, for example, a speaker in a handset of device 850 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 850 .
  • Audio codec 860 may receive spoken information from a user and convert it to usable digital information. Audio codex 860 may likewise generate audible sound for a user through, for example, a speaker in a handset of device 850 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 850 .
  • the computing device 850 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 880 . It may also be implemented as part of a smartphone 882 , personal digital assistant, or other similar mobile device.
  • implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.
  • ASICs application specific integrated circuits
  • These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
  • the systems and techniques described here 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.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • a keyboard and a pointing device e.g., a mouse or a trackball
  • 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.
  • the systems and techniques described here 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 systems and techniques described here), or any combination of 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”), a wide area network (“WAN”), and the Internet.
  • LAN local area network
  • WAN wide area network
  • the Internet the global information network
  • 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.

Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for discovering conversations related to a location. One method includes receiving, at a server, location information related to a location of a user and determining a plurality of real-time conversation objects that are associated with locations within an area related to the received location of the computing device. The location associated with each of the plurality of real-time conversation objects indicates a location of a user at the time the user requested creation of the real-time conversation object. The method also includes sending, to a computing device of the user, information representing the determined real-time conversation objects.

Description

    RELATED APPLICATION DATA
  • This application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 61/582,104, entitled “Creating Real-Time Conversations,” filed Dec. 30, 2011; the disclosure of which is incorporated herein by reference in its entirety.
  • BACKGROUND
  • This specification relates to the discovery of a conversation in an online environment. The Internet has provided a medium for many new forms of communication. From e-mail to chat rooms to instant messaging, Internet users have the ability to talk to one or many of their friends within moments from anywhere in the world. Moreover, as computing devices have become smaller and wireless, these new forms of communication have become increasingly mobile.
  • SUMMARY
  • Users can quickly share information about places, things, and events that occur nearby the users, by creating real-time online conversations. For each conversation created by a user, a server can create a conversation object that is tied to a geographic location and a time, and can index the conversation object such that the conversation can be easily found by other users that are near the location shortly after the conversation is created.
  • One innovative aspect of the subject matter described in this specification is embodied in methods that include the actions of: receiving, at a server, a topic for a real-time conversation from a user; receiving, at the server, location information related to a location of the user; creating, at the server, a real-time conversation object that includes the received topic; tagging the created real-time conversation object with the received location information; indexing, based on the received topic and the received location information, the tagged real-time conversation object with respect to other real-time conversation objects; and providing the tagged real-time conversation object in response to a search for real-time conversation objects received from another user.
  • Another innovative aspect of the subject matter described in this specification is embodied in methods that include the actions of: receiving, at a server, location information related to a location of a user; determining a plurality of real-time conversation objects that are associated with locations within an area related to the received location of the computing device, the location associated with each of the plurality of real-time conversation objects indicating a location of a user at the time the user requested creation of the real-time conversation object; and sending, to a computing device of the user, information representing the determined real-time conversation objects.
  • Another innovative aspect of the subject matter described in this specification is embodied in methods that include the actions of: receiving, at a server, location information related to a location of a user; determining a plurality of real-time conversation objects that are associated with locations within an area related to the received location of the user and associated with a threshold level of message activity over a certain period of time; and sending, to a computing device of the user, information representing the selected real-time conversation objects.
  • Other embodiments of these aspects include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices. A system of one or more computers can be so configured by virtue of software, firmware, hardware, or a combination of them installed on the system that in operation cause the system to perform the actions. One or more computer programs can be so configured by virtue having instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
  • These and other embodiments may each optionally include one or more of the following features. For instance, the location information may received from a computing device of the user and based on an output of a Global Positioning System (GPS) sensor included in the computing device of the user. Alternatively or additionally, the actions may include: receiving, from the user, a list of other users to invite to be associated with the created real-time conversation object; sending, to the other users included in the received list, invitations to be associated with the created real-time conversation object; receiving, from one or more of the other users, an acceptance of the invitation; and updating the created real-time conversation object to include indicators of the one or more other users that accepted the invitation.
  • Indexing the tagged real-time conversation object may include updating, based on the location information, an index of real-time conversation objects stored on the server to include the tagged real-time conversation object. Updating the index of real-time conversation objects stored on the server to include the tagged real-time conversation object may include sorting the real-time conversation objects included in the index based on locations associated with each of the real-time conversation objects. Updating the index of real-time conversation objects stored on the server to include the tagged real-time conversation object may include sorting the real-time conversation objects included in the index based on a level of message activity over a certain period of time associated with each real-time conversation object.
  • The actions may further include receiving a request from the user to create the real-time conversation object. Receiving location information related to the location of the user may include receiving location information that indicates the location of the user at the time the user requested the creation of the real-time conversation object. And tagging the created real-time conversation object with the received location information may include tagging the created real-time conversation object with the location of the user at the time the user requested the creation of the real-time conversation object and maintaining the location with which the created real-time conversation object is tagged regardless of whether a current location of the user changes.
  • The actions may further include receiving, at the server, a selection of a real-time conversation objects from the determined real-time conversation objects; and sending, to the computing device of the user, a link to the selected real-time conversation object. The action may further include receiving, from the computing device of the user, message information to be posted to the real-time conversation object; and updating the real-time conversation object with the received message information and the time at which the message information was received.
  • Determining a plurality of real-time conversation objects may include determining a plurality of real-time conversation objects that are associated with a threshold level of message activity over a certain period of time. Determining a plurality of real-time conversation objects may also include determining a plurality of real-time conversation objects that are associated with one or more other users with whom the user of the computing device has indicated a relationship.
  • The subject matter described in this specification provides several advantages. For example, real-time conversations created by the systems described herein do not need to be associated with a particular business or venue (e.g., a restaurant). Similarly, the real-time conversations may be associated with any topic. In other words, users that create real-time conversations are not limited to a list of pre-selected topics. In addition, the systems described herein allow users to quickly discover the most relevant real-time conversations that are associated with locations near a user's current location.
  • The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
  • DESCRIPTION OF DRAWINGS
  • FIG. 1 illustrates an example system for creating a conversation.
  • FIG. 2 is a flow diagram of an example method for creating and indexing a conversation.
  • FIGS. 3A-3C illustrate examples of interfaces for use in the creation of a conversation object.
  • FIG. 4 illustrates an example system for discovering and participating in a conversation.
  • FIG. 5 is a flow diagram of an example method for discovering and participating in a conversation.
  • FIGS. 6A and 6B illustrate examples of interfaces for use in the discovery of a conversation.
  • FIGS. 7A and 7B illustrate examples of interfaces for use in the participation in a conversation.
  • FIG. 8 is a block diagram illustrating an example of a computer system.
  • Like reference symbols in the various drawings indicate like elements.
  • DETAILED DESCRIPTION
  • Following is a description of systems and processes for creating and hosting interactive, real-time conversations based on a user's location. Real-time conversations provide a platform for users to exchange messages in a continuously streaming environment. As will be described in more detail with reference to the figures, the described system harnesses the mobility of modern computing devices and allows a user to create a real-time conversation based on the user's location and any topic the user chooses.
  • There are various types of real-time conversations. One example such example is instant messaging, a form of direct, text-based chatting communication where the messages are pushed to participants in real-time. Other examples include Internet Relay Chat (IRC) and certain forms of mobile text messaging. However, the real-time conversations referred to herein are not limited to any of these implementations and encompass any types of conversation platforms that permit the exchange of messages in real-time.
  • FIG. 1 illustrates an example system for creating a real-time conversation. The conversation system 100 can be implemented as, for example, computer programs running on one or more computers in one or more locations that are coupled to each other through a network. The conversation system 100 includes a conversation database 102, a conversation object creator 104, and a conversation indexer 106.
  • The conversation database 102 stores real-time conversation objects that represent real-time conversations between users. Each real-time conversation object is related to a location and a topic, as well as other parameters (e.g., time). The conversation object creator 104 receives various parameters regarding a proposed real-time conversation, including the location and the topic, and creates a real-time conversation object that includes the received parameters. Beyond a location and topic, the parameters of a real-time conversation may include, for example, a list of users that should be invited to join the conversation, an icon representing the conversation, and one or more messages to begin the conversation.
  • Each real-time conversation object stores the entire contents of the real-time conversation. For example, the real-time conversation object stores all previous messages contributed to the conversation, the time and date each message was contributed, the user that contributed the message, identifiers of all users that have joined the conversation, and an indication of those members that are currently participating in the conversation. Moreover, each real-time conversation object provides a platform for a plurality of users associated with a common location to interactively communicate about a geographically relevant topic. However, in the creation of a real-time conversation object, the user is not limited to a predetermined list of topics or categories. Rather, a user may organically create a real-time conversation based on any topic relevant to the user's location.
  • The conversation indexer 106 stores the real-time conversation objects created by the conversation object creator 104 in the conversation database 102 and indexes the created real-time conversation object with respect to a plurality of other real-time conversation objects stored in the conversation database. By indexing the created conversation, the conversation indexer 106 enables other users to search for the created conversation in the conversation database 102.
  • A user 112 generally interacts with the conversation system 100 through a user device 114. For example, the user device 114 can be a mobile device coupled to the conversation system 100 through a local area network (LAN) or wide area network (WAN), e.g., the Internet. The user 112 may interface with the conversation system 100 in various ways. For example, the user 112 may interface with the conversation system 100 by accessing a webpage associated with the conversation system 100 on a browser application on the user device 114. Alternatively or additionally, an application may be installed on the user device 114 that, when executed, provides an interface to the conversation system 100.
  • When creating a real-time conversation, the user 112 may be presented with a creation screen 116. Through interaction with the creation screen 116, the user 112 may submit conversation parameters (e.g., location and topic) to the conversation system 100. For example, while walking down Elm Street, the user 112 may encounter a house that is on fire. Through creation screen 116, the user 112 may submit, to the conversation system 100, conversation parameters 118 that include a location of “Elm Street” and a topic of “Fire.”
  • The conversation object creator 104 receives and creates a real-time conversation object based on the conversation parameters 118. The conversation indexer 106 stores the real-time conversation objects created by the conversation object creator 104 in the conversation database 102 and indexes the created conversation object with respect to a plurality of other real-time conversation objects stored in the conversation database. The conversation indexer 106 provides users with the ability to discover what is happening around them right now. The conversation system 100 returns data 120 regarding the created and indexed conversation object to the user device 114. The data 120 may include, for example, a link to the real-time conversation object so that the user device 114 may display the conversation and allow the user 112 to interact with the conversation. Moreover, when the user device 114 accesses a screen providing a list of conversations 122, the created and indexed conversation may be included.
  • In certain implementations, protective steps may be taken with respect to user privacy. For example, depending on the particular type of data being used, the services being provided, and the ability to provide certain services with modified data, a system may provide users with the opportunity to opt in/out of services that may collect personal information, may partially or fully anonymize data so as to prevent personally identifiable information from being disclosed, and may perform similar operations with respect to user location data, user preference data, and other data relating to users of the system.
  • FIG. 2 is a flow diagram of an example method 200 for creating and indexing a real-time conversation. For convenience, the method 200 is described with reference to a system of one or more servers that performs the method. The system can be, for example, the conversation system 100 described above with reference to FIG. 1.
  • The system receives a topic for a real-time conversation from a user (202). The topic may be identified by any string of characters that the user chooses to use to represent the conversation. For example, the topic could be “Concert in the Park” or “Free doughnuts on the corner!” The user may provide her own topic or may select from a list of topics provided by the system. The topic of conversation provides an indication to other users of the subject of the conversation.
  • The system also receives location information for the conversation (204). The location information may indicate the present location of the user. The location information may also indicate a location other than a business, for example, a street, a neighborhood, or a landmark. The location information may be determined in various manners. In some implementations, the location information may correspond to a location provided by the user device from which the user is submitting the location information. In other implementations, the user may specify the location information by manually providing an indication of the location information by, for example, selecting the location from a map displayed by the user device or by providing an address of the location.
  • The system may also receive other parameters related to the real-time conversation. For example, the user may specify an icon to represent the real-time conversation. The user may select the icon from a list of icons provided by the system or the user may provide her own icon from a different source. Additionally or alternatively, the user may specify a list of other users she would like to invite to the real-time conversation. When the system receives a list of other users to invite to the real-time conversation, the system may send a link to the real-time conversation object to the other users. The other users may access the link to the real-time conversation object and participate in the real-time conversation.
  • Additionally or alternatively, the user may specify whether the real-time conversation is to be made public or private. The system may make public conversations accessible to any other users that search for them. On the other hand, the system my limit accessibility of private conversations to those other users that the user creating the real-time conversation invites to join. Additionally or alternatively, the user may provide one or more messages to be included in the real-time conversation object. In other words, the user may provide a seed for the conversation by including an initial message to which other users may respond.
  • The system creates a real-time conversation object that includes the received topic and location information (206). The system may also include, in the real-time conversation object, any of the other received parameters related to the conversation. The real-time conversation object may be any data structure that relates the received parameters and the messages related to the conversation. For example, the system may create a real-time conversation object by creating an XML structure that represents the conversation. Alternatively, the system may create a real-time conversation object by creating a database object related to the conversation.
  • The created real-time conversation object includes a thread of messages received by the system from one or more users. Once created, the system continuously updates the thread of messages to include any additional messages that are received in relation to the real-time conversation. In some implementations, the system may also include information related to the state of the conversation in the real-time conversation object. For example, the real-time conversation object may include information indicating the number of other users that have joined the conversation or that have actively participated in the conversation, as well as an indication of these other users' identities. In other words, the real-time conversation object represents on ongoing exchange in which users contribute in real-time.
  • The system may use the indication of the identities other users who have joined the real-time conversation to send updates of the conversation to the other users. The real-time conversation object may include information indicating the last time that a message was posted in the conversation, which the system may use to sort the real-time conversation object with respect to other real-time conversation objects.
  • Moreover, the system may tag the real-time conversation object with the received location information. In particular, the real-time conversation object may be updated to store a representation of the location information. The system may use any format for specifying the location of the real-time conversation.
  • In some implementations, the location information associated with the real-time conversation object may be static. For example, the real-time conversation object may be permanently tagged with the location specified by the user during the creation of the real-time conversation object. In other implementations, the location information associated with the real-time conversation object may be dynamic. For example, as the user that created the real-time conversation object moves, the location information associated with the real-time conversation object may be continuously or periodically updated with the new location of the user.
  • The system indexes the created real-time conversation object with respect to a plurality of real-time conversation objects such that the created conversation object is searchable by other users (208). The system stores a plurality of real-time conversation objects. Each real-time conversation object may include any combination of the conversation parameters described above, as well as any other parameters.
  • In some implementations, each real-time conversation object includes at least a location and a topic. The system may index the real-time conversation objects based on one or more of the parameters included in the real-time conversation object. For example, the system may index the real-time conversation objects based on the location and the topic of the conversation. Indexing the real-time conversation objects allows the system to make the real-time conversation objects searchable by users, as will be described in greater detail below with regard to FIG. 5.
  • FIGS. 3A-3C illustrate examples of interfaces for use in the creation of a real-time conversation object. The interfaces are described with reference to a system of one or more servers that provide the interfaces to a user and a user device. The system can be, for example, the conversation system 100 described above with reference to FIG. 1. The user device may be, for example, a mobile telephone.
  • The interface 300 shown in FIG. 3A represents a portal for a user to provide parameters in the process of creating a real-time conversation. The interface 300 includes various regions. The interface 300 may include a region 302 that provides a user with a choice of icons with which to represent the real-time conversation being created. The interface 300 may include a region 304 that permits a user to specify the name or topic of the real-time conversation. The region 304 may include text field in which a user may enter a name or topic. Alternatively or additionally, the region 304 may include a pull-down menu that includes a list of suggested topics or names. However, the interface 300 is designed so as to permit a user to freely create a real-time conversation without limits on the subject or category of the conversation.
  • The interface 300 may include a region 306 that permits a user to specify a list of other users that the user would like to invite to join the real-time conversation being created. The region 306 may include a search field that permits a user to search for other users to include in the invitation list and/or may include a pull-down menu that includes a list of other users that are associated with the user creating the real-time conversation (e.g., a list of “friends”).
  • The interface 300 may include a region 308 that relates to a location associated with the real-time conversation. In some implementations, where the location of the conversation is automatically determined and provided by the user device, the region 308 may include a map showing the location of the user device and an advisory to the user that the conversation will be visible to nearby users, if the conversation is not made private.
  • In some implementations, where the location of the conversation is manually provided by the user device, the region 308 may include a map with which the user may interact to specify a location for the conversation. Alternatively or additionally, the region 308 may include a text field in which a user may enter, for example, an address or keyword to specify a location for the conversation.
  • The interface 300 may include a region 308 that permits a user to enter a message to be included in the conversation. The region 308 may include a text field in which a user may enter a message. The interface 300 may include other regions for specifying other parameters related to the conversation being created. For example, the interface may include a region that permits the user to designate the conversation as either private or public.
  • Generally, the interface 300 provides a single mechanism through which a user may create a conversation about any topic. The user need not enter a location and have a topic selected for her. Similarly, the user need not search through a list of pre-selected locations, for example, a list of businesses. Rather, the interface 300 allows a user to specify any topic that is relevant to the user's experience at a given location.
  • The interface 320 shown in FIG. 3B represents a status of a created conversation. The interface 320 includes various regions. The interface 320 may include a region 322 that indicates the number of users that have joined the real-time conversation. The interface 320 may include a region 324 that permits a user to join the conversation. Region 324 may be a button that, when pressed, causes the system to join the user to the conversation.
  • Region 326 may include a list of users that are currently joined to the real-time conversation. For users included in the region 326, the interface 320 may include an indication of the user's identity, the last time the user participated in the real-time conversation, and an icon that represents the user. For example, the indication of the user's identity may be the user's name or a handle associated with the user. The indication of the last time the user participated in the real-time conversation may include the date and time at which the user last contributed a message to the real-time conversation. When a user is currently viewing the message thread of the real-time conversation or actively typing a message to be posted in the message thread, the indication of the last time the user participated in the conversation may indicate that the user is “in conversation,” “currently participating,” or some variation thereof. Thus, participating in and being joined to a real-time conversation are distinct states. When a user is participating in a real-time conversation, the user is actively interacting with the real-time conversation object. On the other hand, a user joins a conversation regarding which the user wants to be notified of updates and with which the user generally wants to be associated.
  • Once a user has joined a real-time conversation, the user may access the conversation's settings through, for example, an interface similar to the interface 330 that is shown in FIG. 3C. The interface 330 includes various regions. The interface 330 may include a region 332 that permits a user to change the tone or music emitted by the user device when the real-time conversation is updated with, for example, a new message. The interface 330 may include a region 334 that indicates the name or topic of the real-time conversation. In some implementations, the region 334 may permit a user that has joined the real-time conversation to change the name or topic. Alternatively, the region 334 may only permit the user who created the real-time conversation to change the name or topic and may simply display the name or topic to all other users.
  • The interface 330 may include a region 336 that indicates whether the real-time conversation is public or private. Similar to region 334, region 336 may permit a user that has joined the real-time conversation to change the setting of the conversation from public to private and vice versa. Alternatively, the region 334 may only permit the user who created the real-time conversation to change the setting of the conversation from public to private and vice versa.
  • The interface 330 may include a region 338 that permits a user to manage the notifications that the user device provides to the user in relation to the real-time conversation. For example, the user device may be configured to notify the user when a new message has been posted in the real-time conversation or only when messages from certain users have been posted in the real-time conversation. Additionally or alternatively, the user device may be configured to notify the user when another user has joined and/or left the real-time conversation. Additionally or alternatively, the user device may be configured to notify the user when the user is located within a certain distance of the location associated with the real-time conversation. The interface 330 may include a region 340 that permits a user to leave the real-time conversation.
  • FIG. 4 illustrates an example system for finding and joining real-time conversations. Once a real-time conversation object has been created, the conversation system 400 provides users with the ability to find out what is happening around them in real-time. As a user moves between streets or neighborhoods, the conversation system 400 will present the user with a list of real-time conversations that are both relevant to the user's location and are being actively conducted concurrent with the user's travels.
  • The conversation system 400 can be implemented as, for example, computer programs running on one or more computers in one or more locations that are coupled to each other through a network. The conversation system 400 may be implemented on the same one or more computers as conversation system 100 as described above with regard to FIG. 1. However, conversation system 400 may be implemented as a separate system on one or more other computers.
  • The conversation system 400 includes a conversation database 402, a conversation search engine 404, and a conversation participation interface 406. The conversation database 402 stores indexed conversation objects that represent real-time conversations between users. Each real-time conversation object may be related to a location and a topic, as well as other parameters. As described above, the stored real-time conversation objects are indexed by the parameters to which the real-time conversation objects are associated.
  • The conversation search engine 404 may receive an indication of one or more parameters based upon which conversation search engine 404 searches for real-time conversations. For example, the conversation search engine 404 may receive an indication of a location based upon which conversation search engine 404 searches for real-time conversations. Alternatively or additionally, the conversation search engine 404 may receive one or more search terms related to the name or topic of a real-time conversation. The conversation search engine 404 may search the stored indexes for the received parameters and return a list of real-time conversations related to the received parameters.
  • The conversation participation interface 406 provides an interface through which a user may view and post messages to a selected real-time conversation. The conversation participation interface 406 may receive a message from a user device and store the message in a message thread included in the corresponding real-time conversation object. The conversation participation interface 406 may also receive requests from a user to join and/or leave a real-time conversation and update a list of associated users included in the corresponding real-time conversation object. The conversation participation interface 406 may also receive updates to the settings associated with a real-time conversation object, as described above with regard to FIG. 3C.
  • A user 412 generally interacts with the search system 400 through a user device 414. For example, the user device 414 can be a mobile device coupled to the conversation system 400 through a local area network (LAN) or wide area network (WAN), e.g., the Internet. The user 412 may interface with the conversation system 400 in various ways. For example, the user 412 may interface with the conversation system 400 by accessing a webpage associated with the conversation system 400 on a browser application on the user device 414. Alternatively or additionally, an application may be installed on the user device 414 that, when executed, provides an interface to the conversation system 400.
  • When creating a real-time conversation, the user 412 may be presented with a conversation search screen 416. Through interaction with the conversation search screen 416, the user 412 may submit conversation parameters (e.g., location or topic) to the conversation system 400 and search for existing real-time conversations. For example, while walking down Elm Street, the user 412 may encounter a house that is on fire. Through conversation search screen 416, the user 412 may submit, to the conversation system 400, search parameters 418 that include a location of “Elm Street” and/or a topic of “Fire.” These parameters 418 may be specified by the user and/or provided automatically by the user device 414. For example, as a user walks onto Elm Street, the user device 414 may provide the user's location to the conversation system 400 in order to obtain a list of conversations relevant to Elm Street.
  • The conversation search engine 404 receives the search parameters 418 and searches indexes related to the stored real-time conversation objects using the received search parameters 418. The conversation search engine 404 may return data 420 that includes a set of links to real-time conversation objects resulting from the search. The user device 414 may display the set of links to real-time conversation objects as a list of conversations. The user may then select a real-time conversation from the list of conversations to view.
  • When a user selects a real-time conversation from the list, the user device 414 may access the link to the corresponding real-time conversation object. When accessing a real-time conversation, the user 412 may be presented with a conversation participation screen 422. The conversation participation screen 422 provides a portal to the conversation participation interface 406. Through interaction with the conversation search screen 416, the user 412 may view the various contents of the selected real-time conversation object. For example, the user 412 may be presented with the messages in the message thread included in the real-time conversation object.
  • Moreover, the user 412 may interact with the conversation participation screen 422 to send changes 424 to conversation participation interface 406 regarding the real-time conversation object. For example, the user 412 may post a new message to the message thread. The conversation participation interface 406 receives the changes 424 and may update the real-time conversation object stored in conversation database 402 accordingly. The conversation participation interface 406 may also send updates 426 to user device 414 related to any real-time conversation objects to which user 412 is joined.
  • FIG. 5 is a flow diagram of an example method 500 discovering and participating in a real-time conversation. For convenience, the method 500 is described with reference to a system of one or more servers that performs the method. The system can be, for example, the conversation system 400 described above with reference to FIG. 4.
  • The system receives location information from a user (502). The location information may indicate the present location of the user. The location information may also indicate a location other than a business, for example, a street, a neighborhood, or a landmark. The location information may be determined in various manners. In some implementations, the location information may correspond to a location of the user device from which the user is submitting the location information. For example, the user device may determine its location through a global positioning sensor (GPS) included in the user device, through a process of cell tower triangulation, through a process of evaluating a Wi-Fi network connection's signal strength, though an IP address assigned to the user device, or through any combination of these or other methods. In other implementations, the user may specify the location information by manually providing an indication of the location information by, for example, selecting the location from a map displayed by the user device or by providing an address of the location.
  • The system may receive other search parameters. For example, the system may receive one or more search terms related to the name or topic of a real-time conversation. Alternatively or additionally, the system may receive identifiers associated with users that created or are joined to one or more real-time conversations.
  • The system determines one or more real-time conversation objects that relate to the received location information (504). The one or more conversation objects may include other conversation parameters (e.g., a topic). To determine the one or more real-time conversation objects that relate to the received location information, the system may search one or more indexes stored by the system. The indexes may include various conversation parameters associated with the real-time conversation objects, including, for example, a location associated with each of the real-time conversation objects. In some implementations, the system determines one or more real-time conversation objects that relate to the received location information by comparing the received location information with the location associated with each of the real-time conversation objects. The system may, for example, determine that a real-time conversation object relates to the received location information where the received location information is within a certain distance of the location associated with the real-time conversation object.
  • The system may also search for real-time conversation objects based on user preferences. For example, the user may specify that she only wants to search for and be presented with real-time conversations that her friends created or have joined. In other words, the system allows a user to specifically determine what her nearby friends are doing. Alternatively, the user may specify the distance within which the locations associated with real-time conversation objects should be located in order to be included in the returned results. The system may utilize the stored user preferences in conjunction with the specified conversation parameters to search the one or more indexes stored by the system.
  • The system may present the user with an interface that includes the one or more determined real-time conversation objects, for example, the interface described below with regard to FIG. 6B. The system receives, from the user, a selection of a real-time conversation object from the one or more determined real-time conversation objects (506). In implementations where an interface includes the one or more determined conversation objects, the user may select a real-time conversation object from the one or more determined conversation objects included in the interface. The user device from which the user selects the real-time conversation object may include a list of links to the one or more determined conversation objects. When the user selects the real-time conversation object, the user device may send a request for the link to the system. Thus, the system may receive the request for the link associated with the selected conversation object.
  • The system accesses the selected conversation object (508). In some implementations, for example, where the system receives a request for a link associated with a selected conversation object, the system accesses the selected conversation object by accessing the link associated with the real-time conversation object. The system may send the accessed conversation object to the user device from which the real-time conversation object was selected. The user device may present the accessed conversation object to the user via an interface, for example, the interface shown in FIGS. 7A and 7B.
  • The system may receive, from the user, a message associated with the accessed conversation object (510). For example, through interaction with an interface that presents the accessed conversation object to the user on the user device, the user may enter and submit a message for the real-time conversation. The system updates the real-time conversation object to include the received message (512). Thus, the system may receive the message entered by the user and update the real-time conversation object to include the received message.
  • FIGS. 6A and 6B illustrate examples of interfaces for use in finding a real-time conversation object. The interfaces are described with reference to a system of one or more servers that provide the interfaces to a user and a user device. The system can be, for example, the conversation system 400 described above with reference to FIG. 4. The user device may be, for example, a mobile telephone.
  • The interface 600 shown in FIG. 6A represents a menu screen for an application running on the user device. The application may, among other functions, provide the interface through which the user interacts with the system. The interface 600 may include various links to the functions provided by the application. For example, the interface 600 may include a link titled “Nearby” 602, which links to a function for searching the system for real-time conversations that are near in location to the location of the user device. The interface 600 may include a region 604 that may provide an indication of new notifications received by the user device. The notifications may be similar to those described above with regard to region 338 of interface 330.
  • The interface 610 shown in FIG. 6B represents results from searching the system for real-time conversations that are near in location to the location of the user device. For example, when a user selects the link 602 from the interface 600, the system may search one or more indexes stored by the system that include various conversation parameters associated with real-time conversation objects, including, for example, a location associated with each of the real-time conversation objects. The system may determine one or more real-time conversation objects that relate to the location of the user device by determining that the location of the user device is within a certain distance of the location associated with the determined conversation objects.
  • The interface 610 may present the user with a list of the determined real-time conversation objects from the system's search. The interface 610 may include multiple regions for organizing the determined conversation in different manners. For example, the interface 610 may include a region 612 that lists nearby real-time conversations that are popular over a long period of time. The system may determine the long-term popularity of a real-time conversation in various ways, including, for example, by analyzing the total number of messages posted to the real-time conversation since its creation and/or the total number of users joined to the real-time conversation. The interface 610 may also include a region 614 that lists nearby real-time conversations that are currently popular. The system may determine the current popularity of a real-time conversation in various ways, including, for example, analyzing the number of users currently participating in the real-time conversation or the number of messages posted to the real-time conversation within the last day.
  • A real-time conversation included in the list of conversations displayed by the interface 610 may be represented in the list by a number of conversation parameters. For example, a real-time conversation may be represented by its topic, its icon, the number of users joined to the real-time conversation, the names of friends of the user of the user device joined to the real-time conversation, and/or the number of messages posted to the real-time conversation that have not been read by the user. The interface may also include a button 616 that allows the user to create a new conversation, if, for example, the system does not return a real-time conversation related to the topic about which the user wants to talk.
  • FIGS. 7A and 7B illustrate examples of interfaces for use in participating in a real-time conversation. The interfaces are described with reference to a system of one or more servers that provide the interfaces to a user and a user device. The system can be, for example, the conversation system 400 described above with reference to FIG. 4. The user device may be, for example, a mobile telephone.
  • Each of the interfaces 700 and 701 illustrated in FIGS. 7A and 7B, respectively, represent a visual representation of an accessed real-time conversation object. Interface 700 represents an example where the real-time conversation has not yet been joined by the user. Conversely, the interface 701 represents an example where the real-time conversation has been joined by the user. However, the interfaces 700 and 701 include many of the same elements, which will be described together.
  • Interfaces 700 and 701 may both include a region 702 that indicates the topic or name of the real-time conversation object. Interfaces 700 and 701 may both include a region 704 that represents the number of members joined to the real-time conversation and a list of identifiers associated with the joined users. For example, the region 704 may include a list of icons associated with a user (e.g., a picture of the user). The region 704 may allow the user to scroll through the list.
  • Interfaces 700 and 701 may both include a region 706 that lists the messages posted to the real-time conversation. In addition to the text of the message itself, each message included in the region 706 may be represented by one or more identifiers associated with the user that posted the message and an indication of when the message was posted. The one or more identifiers associated with the user that posted the message may include, for example, the name of the user and a photo of the user. The region 706 may allow the user to scroll through all of the messages posted to the real-time conversation. Additionally, the region 706 may order the listed messages in various manners. For example, the messages may be listed by the time at which the message was posted and/or by the relationship between the posting user and the viewing user.
  • Interfaces 700 and 701 may both include a region 708 that indicates whether other users that have joined the real-time conversation are currently typing messages to post to the conversation. Interfaces 700 and 701 may both include a region 710 that permits a user to enter a message to be instantly posted to the real-time conversation. The region 710 may include a text field that allows the user to enter a message and a submit button that allows the user to post the entered message.
  • However, with regard to interface 700, a user who is viewing or browsing the real-time conversation, but has not joined the real-time conversation, may be prevented from posting a message to the conversation. The interface 700 may prevent a user from interacting with region 710 altogether. Alternatively, if a user interacts with region 710, interface 700 may trigger a pop-up notification that asks the user whether the user would like to join the real-time conversation.
  • The interface 700 may include a region 712 that, when interacted with, permits a user to join the real-time conversation. Conversely, interface 701 may include region 714 that, when interacted with, permits a user to view and edit the settings of the real-time conversation. For example, region 714 may be a button that, when pressed by the user, presents the user with an interface 330. Interface may also include a region 716 that, when interacted with, permits a user to invite other users to join the real-time conversation. For example, when a user selects region 716, the system may send a notification (e.g., an e-mail) to the invited users with a link to the real-time conversation object and an identity of the inviting user. The system may not permit a user who has not joined the real-time conversation to view or edit the settings of the real-time conversation of invite other users to join the real-time conversation.
  • FIG. 8 is a block diagram of computing devices 800, 850 that may be used to implement the systems and methods described in this document, as either a client or as a server or plurality of servers. Computing device 800 is intended to represent various forms of digital computers, for example, laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Computing device 850 is intended to represent various forms of mobile devices, for example, personal digital assistants, cellular telephones, smartphones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.
  • Computing device 800 includes a processor 802, memory 804, a storage device 806, a high-speed interface 808 connecting to memory 804 and high-speed expansion ports 810, and a low speed interface 812 connecting to low speed bus 814 and storage device 806. Each of the components 802, 804, 806, 808, 810, and 812, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 802 can process instructions for execution within the computing device 800, including instructions stored in the memory 804 or on the storage device 806 to display graphical information for a GUI on an external input/output device, for example, display 816 coupled to high speed interface 808. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 800 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
  • The memory 804 stores information within the computing device 800. In some implementations, the memory 804 is a computer-readable medium. In other implementations, the memory 804 is a volatile memory unit or units. In still other implementations, the memory 804 is a non-volatile memory unit or units.
  • The storage device 806 is capable of providing mass storage for the computing device 800. In some implementations, the storage device 806 is a computer-readable medium. In various different implementations, the storage device 806 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. In some implementations, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods (e.g., those described above). The information carrier is a computer- or machine-readable medium, for example, the memory 804, the storage device 806, or memory on processor 802.
  • The high speed controller 808 manages bandwidth-intensive operations for the computing device 800, while the low speed controller 812 manages lower bandwidth-intensive operations. Such allocation of duties is exemplary only. In some implementations, the high-speed controller 808 is coupled to memory 804, display 816 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 810, which may accept various expansion cards (not shown). In these implementations, low-speed controller 812 is coupled to storage device 806 and low-speed expansion port 814. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, for example, a keyboard, a pointing device, a scanner, or a networking device (e.g., a switch or router), through a network adapter.
  • The computing device 800 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 820, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 824. In addition, it may be implemented in a personal computer (e.g., a laptop computer 822). Alternatively, components from computing device 800 may be combined with other components in a mobile device (not shown), for example, device 850. Each of such devices may contain one or more of computing device 800, 850, and an entire system may be made up of multiple computing devices 800, 850 communicating with each other.
  • Computing device 850 includes a processor 852, memory 864, an input/output device, for example, a display 854, a communication interface 866, and a transceiver 868, among other components. The device 850 may also be provided with a storage device, for example, a microdrive or other device, to provide additional storage. Each of the components 850, 852, 864, 854, 866, and 868, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
  • The processor 852 can process instructions for execution within the computing device 850, including instructions stored in the memory 864. The processor may also include separate analog and digital processors. The processor may provide, for example, for coordination of the other components of the device 850, for example, control of user interfaces, applications run by device 850, and wireless communication by device 850.
  • Processor 852 may communicate with a user through control interface 858 and display interface 856 coupled to a display 854. The display 854 may be, for example, a TFT LCD display or an OLED display, or other appropriate display technology. The display interface 856 may comprise appropriate circuitry for driving the display 854 to present graphical and other information to a user. The control interface 858 may receive commands from a user and convert them for submission to the processor 852. In addition, an external interface 862 may be provide in communication with processor 852, so as to enable near area communication of device 850 with other devices. External interface 862 may provide, for example, for wired communication (e.g., via a docking procedure) or for wireless communication (e.g., via Bluetooth or other such technologies).
  • The memory 864 stores information within the computing device 850. In some implementations, the memory 864 is a computer-readable medium. In other implementations, the memory 864 is a volatile memory unit or units. In still other implementations, the memory 864 is a non-volatile memory unit or units. Expansion memory 874 may also be provided and connected to device 850 through expansion interface 872, which may include, for example, a SIMM card interface. Such expansion memory 874 may provide extra storage space for device 850, or may also store applications or other information for device 850. Specifically, expansion memory 874 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, expansion memory 874 may be provide as a security module for device 850, and may be programmed with instructions that permit secure use of device 850. In addition, secure applications may be provided via the SIMM cards, along with additional information, for example, placing identifying information on the SIMM card in a non-hackable manner.
  • The memory may include for example, flash memory and/or MRAM memory, as discussed below. In some implementations, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, for example, the memory 864, expansion memory 874, or memory on processor 852.
  • Device 850 may communicate wirelessly through communication interface 866, which may include digital signal processing circuitry where necessary. Communication interface 866 may provide for communications under various modes or protocols, for example, GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 868. In addition, short-range communication may occur using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS receiver module 870 may provide additional wireless data to device 850, which may be used as appropriate by applications running on device 850.
  • Device 850 may also communication audibly using audio codec 860, which may receive spoken information from a user and convert it to usable digital information. Audio codex 860 may likewise generate audible sound for a user through, for example, a speaker in a handset of device 850. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 850.
  • The computing device 850 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 880. It may also be implemented as part of a smartphone 882, personal digital assistant, or other similar mobile device.
  • Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
  • These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” “computer-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
  • To provide for interaction with a user, the systems and techniques described here 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.
  • The systems and techniques described here 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 systems and techniques described here), or any combination of 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”), a wide area network (“WAN”), and 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.
  • A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, various forms of the flows shown above may be used, with steps re-ordered, added, or removed. Also, although several applications of the payment systems and methods have been described, it should be recognized that numerous other applications are contemplated. Accordingly, other embodiments are within the scope of the following claims.
  • 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 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.

Claims (17)

What is claimed is:
1. A method comprising:
receiving, at a server, location information related to a location of a user;
determining a plurality of real-time conversation objects that are associated with locations within an area related to the received location of the computing device, the location associated with each of the plurality of real-time conversation objects indicating a location of a user at the time the user requested creation of the real-time conversation object; and
sending, to a computing device of the user, information representing the determined real-time conversation objects.
2. The method of claim 1, wherein the location information is received from a computing device of the user and based on an output of a Global Positioning System (GPS) sensor included in the computing device of the user.
3. The method of claim 1, further comprising:
receiving, at the server, a selection of a real-time conversation objects from the determined real-time conversation objects; and
sending, to the computing device of the user, a link to the selected real-time conversation object.
4. The method of claim 3, further comprising:
receiving, from the computing device of the user, message information to be posted to the real-time conversation object; and
updating the real-time conversation object with the received message information and the time at which the message information was received.
5. The method of claim 1, wherein determining a plurality of real-time conversation objects includes determining a plurality of real-time conversation objects that are associated with a threshold level of message activity over a certain period of time.
6. The method of claim 1, wherein determining a plurality of real-time conversation objects includes determining a plurality of real-time conversation objects that are associated with one or more other users with whom the user of the computing device has indicated a relationship.
7. A system comprising:
one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
receiving, at a server, location information related to a location of a user;
determining a plurality of real-time conversation objects that are associated with locations within an area related to the received location of the computing device, the location associated with each of the plurality of real-time conversation objects indicating a location of a user at the time the user requested creation of the real-time conversation object; and
sending, to a computing device of the user, information representing the determined real-time conversation objects.
8. The system of claim 7, wherein the location information is received from a computing device of the user and based on an output of a Global Positioning System (GPS) sensor included in the computing device of the user.
9. The system of claim 7, wherein the stored instructions are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
receiving, at the server, a selection of a real-time conversation objects from the determined real-time conversation objects; and
sending, to the computing device of the user, a link to the selected real-time conversation object.
10. The system of claim 9, wherein the stored instructions are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
receiving, from the computing device of the user, message information to be posted to the real-time conversation object; and
updating the real-time conversation object with the received message information and the time at which the message information was received.
11. The system of claim 7, wherein the stored instructions are operable, when executed by the one or more computers, to cause the one or more computers to determine a plurality of real-time conversation objects by determining a plurality of real-time conversation objects that are associated with a threshold level of message activity over a certain period of time.
12. The system of claim 7, wherein the stored instructions are operable, when executed by the one or more computers, to cause the one or more computers to determine a plurality of real-time conversation objects by determining a plurality of real-time conversation objects that are associated with one or more other users with whom the user of the computing device has indicated a relationship.
13. A method comprising:
receiving, at a server, location information related to a location of a user;
determining a plurality of real-time conversation objects that are associated with locations within an area related to the received location of the user and associated with a threshold level of message activity over a certain period of time; and
sending, to a computing device of the user, information representing the selected real-time conversation objects.
14. The method of claim 13, wherein the location information is received from a computing device of the user and based on an output of a Global Positioning System (GPS) sensor included in the computing device of the user.
15. The method of claim 13, further comprising:
receiving, at the server, a selection of a real-time conversation objects from the selected real-time conversation objects; and
sending, to the computing device of the user, a link to the selected real-time conversation object.
16. The method of claim 15, further comprising:
receiving, from the computing device of the user, message information to be posted to the real-time conversation object; and
updating the real-time conversation object with the received message information and the time at which the message information was received.
17. The method of claim 13, wherein determining a plurality of real-time conversation objects includes determining a plurality of real-time conversation objects that are associated with one or more other users with whom the user of the computing device has indicated a relationship.
US13/692,179 2011-12-30 2012-12-03 Discovering real-time conversations Abandoned US20130173728A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/692,179 US20130173728A1 (en) 2011-12-30 2012-12-03 Discovering real-time conversations
AU2012327213A AU2012327213B2 (en) 2011-12-30 2012-12-14 Creating and discovering real-time conversations
PCT/US2012/069773 WO2013101505A2 (en) 2011-12-30 2012-12-14 Creating and discovering real-time conversations

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161582104P 2011-12-30 2011-12-30
US13/692,179 US20130173728A1 (en) 2011-12-30 2012-12-03 Discovering real-time conversations

Publications (1)

Publication Number Publication Date
US20130173728A1 true US20130173728A1 (en) 2013-07-04

Family

ID=48695850

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/692,179 Abandoned US20130173728A1 (en) 2011-12-30 2012-12-03 Discovering real-time conversations
US13/692,224 Active 2033-04-13 US9253134B2 (en) 2011-12-30 2012-12-03 Creating real-time conversations

Family Applications After (1)

Application Number Title Priority Date Filing Date
US13/692,224 Active 2033-04-13 US9253134B2 (en) 2011-12-30 2012-12-03 Creating real-time conversations

Country Status (3)

Country Link
US (2) US20130173728A1 (en)
AU (1) AU2012327213B2 (en)
WO (1) WO2013101505A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10397163B2 (en) 2016-11-07 2019-08-27 Google Llc Third party application configuration for issuing notifications
US10498676B2 (en) 2016-10-12 2019-12-03 Google Llc Contextual automatic grouping
US10846612B2 (en) 2016-11-01 2020-11-24 Google Llc Actionable suggestions for activities

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8554868B2 (en) 2007-01-05 2013-10-08 Yahoo! Inc. Simultaneous sharing communication interface
IL306019A (en) 2011-07-12 2023-11-01 Snap Inc Methods and systems of providing visual content editing functions
US11734712B2 (en) 2012-02-24 2023-08-22 Foursquare Labs, Inc. Attributing in-store visits to media consumption based on data collected from user devices
US8972357B2 (en) 2012-02-24 2015-03-03 Placed, Inc. System and method for data collection to validate location data
US20130246525A1 (en) * 2012-03-16 2013-09-19 Salesforce.Com, Inc. Instant transition from a public conversation thread to a private chat or instant message environment
US10155168B2 (en) 2012-05-08 2018-12-18 Snap Inc. System and method for adaptable avatars
US9412136B2 (en) 2012-07-09 2016-08-09 Facebook, Inc. Creation of real-time conversations based on social location information
WO2014031899A1 (en) 2012-08-22 2014-02-27 Goldrun Corporation Augmented reality virtual content platform apparatuses, methods and systems
US8775972B2 (en) 2012-11-08 2014-07-08 Snapchat, Inc. Apparatus and method for single action control of social network profile access
KR102021507B1 (en) * 2013-02-06 2019-09-16 엘지전자 주식회사 Integated management method of sns contents for plural sns channels and the terminal thereof
US9742713B2 (en) 2013-05-30 2017-08-22 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US10439972B1 (en) 2013-05-30 2019-10-08 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9705831B2 (en) 2013-05-30 2017-07-11 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9083770B1 (en) 2013-11-26 2015-07-14 Snapchat, Inc. Method and system for integrating real time communication features in applications
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US9628950B1 (en) 2014-01-12 2017-04-18 Investment Asset Holdings Llc Location-based messaging
US10082926B1 (en) 2014-02-21 2018-09-25 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US8909725B1 (en) 2014-03-07 2014-12-09 Snapchat, Inc. Content delivery network for ephemeral objects
US9276886B1 (en) 2014-05-09 2016-03-01 Snapchat, Inc. Apparatus and method for dynamically configuring application component tiles
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
EP2955686A1 (en) 2014-06-05 2015-12-16 Mobli Technologies 2010 Ltd. Automatic article enrichment by social media trends
US9113301B1 (en) 2014-06-13 2015-08-18 Snapchat, Inc. Geo-location based event gallery
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US10055717B1 (en) 2014-08-22 2018-08-21 Snap Inc. Message processor with application prompts
US10423983B2 (en) 2014-09-16 2019-09-24 Snap Inc. Determining targeting information based on a predictive targeting model
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US11216869B2 (en) 2014-09-23 2022-01-04 Snap Inc. User interface to augment an image using geolocation
US10284508B1 (en) 2014-10-02 2019-05-07 Snap Inc. Ephemeral gallery of ephemeral messages with opt-in permanence
US9015285B1 (en) 2014-11-12 2015-04-21 Snapchat, Inc. User interface for accessing media at a geographic location
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US9854219B2 (en) 2014-12-19 2017-12-26 Snap Inc. Gallery of videos set to an audio time line
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US9754355B2 (en) 2015-01-09 2017-09-05 Snap Inc. Object recognition based photo filters
US11388226B1 (en) 2015-01-13 2022-07-12 Snap Inc. Guided personal identity based actions
US10133705B1 (en) 2015-01-19 2018-11-20 Snap Inc. Multichannel system
US9521515B2 (en) 2015-01-26 2016-12-13 Mobli Technologies 2010 Ltd. Content request by location
US10223397B1 (en) 2015-03-13 2019-03-05 Snap Inc. Social graph based co-location of network users
CN112040410B (en) 2015-03-18 2022-10-14 斯纳普公司 Geo-fence authentication provisioning
US9692967B1 (en) 2015-03-23 2017-06-27 Snap Inc. Systems and methods for reducing boot time and power consumption in camera systems
US10135949B1 (en) 2015-05-05 2018-11-20 Snap Inc. Systems and methods for story and sub-story navigation
US9881094B2 (en) 2015-05-05 2018-01-30 Snap Inc. Systems and methods for automated local story generation and curation
US9954808B2 (en) 2015-06-24 2018-04-24 International Business Machines Corporation Collecting messages from a group chat window that mention a specific user
US10993069B2 (en) 2015-07-16 2021-04-27 Snap Inc. Dynamically adaptive media content delivery
US10817898B2 (en) 2015-08-13 2020-10-27 Placed, Llc Determining exposures to content presented by physical objects
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US10474321B2 (en) 2015-11-30 2019-11-12 Snap Inc. Network resource location linking and visual content sharing
US9984499B1 (en) 2015-11-30 2018-05-29 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US10354425B2 (en) 2015-12-18 2019-07-16 Snap Inc. Method and system for providing context relevant media augmentation
US10679389B2 (en) 2016-02-26 2020-06-09 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US11023514B2 (en) 2016-02-26 2021-06-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US10285001B2 (en) 2016-02-26 2019-05-07 Snap Inc. Generation, curation, and presentation of media collections
US10339365B2 (en) 2016-03-31 2019-07-02 Snap Inc. Automated avatar generation
US11900418B2 (en) 2016-04-04 2024-02-13 Snap Inc. Mutable geo-fencing system
US10334134B1 (en) 2016-06-20 2019-06-25 Maximillian John Suiter Augmented real estate with location and chattel tagging system and apparatus for virtual diary, scrapbooking, game play, messaging, canvasing, advertising and social interaction
US10638256B1 (en) 2016-06-20 2020-04-28 Pipbin, Inc. System for distribution and display of mobile targeted augmented reality content
US11044393B1 (en) 2016-06-20 2021-06-22 Pipbin, Inc. System for curation and display of location-dependent augmented reality content in an augmented estate system
US11201981B1 (en) 2016-06-20 2021-12-14 Pipbin, Inc. System for notification of user accessibility of curated location-dependent content in an augmented estate
US10805696B1 (en) 2016-06-20 2020-10-13 Pipbin, Inc. System for recording and targeting tagged content of user interest
US11785161B1 (en) 2016-06-20 2023-10-10 Pipbin, Inc. System for user accessibility of tagged curated augmented reality content
US11876941B1 (en) 2016-06-20 2024-01-16 Pipbin, Inc. Clickable augmented reality content manager, system, and network
US10430838B1 (en) 2016-06-28 2019-10-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections with automated advertising
US9681265B1 (en) 2016-06-28 2017-06-13 Snap Inc. System to track engagement of media items
US10733255B1 (en) 2016-06-30 2020-08-04 Snap Inc. Systems and methods for content navigation with automated curation
US10348662B2 (en) 2016-07-19 2019-07-09 Snap Inc. Generating customized electronic messaging graphics
KR102606785B1 (en) 2016-08-30 2023-11-29 스냅 인코포레이티드 Systems and methods for simultaneous localization and mapping
US20180091463A1 (en) * 2016-09-29 2018-03-29 Cisco Technology, Inc. Collaboration conversation notification
US10432559B2 (en) 2016-10-24 2019-10-01 Snap Inc. Generating and displaying customized avatars in electronic messages
KR102298379B1 (en) 2016-11-07 2021-09-07 스냅 인코포레이티드 Selective identification and order of image modifiers
US10203855B2 (en) 2016-12-09 2019-02-12 Snap Inc. Customized user-controlled media overlays
US11616745B2 (en) 2017-01-09 2023-03-28 Snap Inc. Contextual generation and selection of customized media content
US10951562B2 (en) * 2017-01-18 2021-03-16 Snap. Inc. Customized contextual media content item generation
US10454857B1 (en) 2017-01-23 2019-10-22 Snap Inc. Customized digital avatar accessories
US10915911B2 (en) 2017-02-03 2021-02-09 Snap Inc. System to determine a price-schedule to distribute media content
US11250075B1 (en) 2017-02-17 2022-02-15 Snap Inc. Searching social media content
US10319149B1 (en) 2017-02-17 2019-06-11 Snap Inc. Augmented reality anamorphosis system
US10074381B1 (en) 2017-02-20 2018-09-11 Snap Inc. Augmented reality speech balloon system
US10565795B2 (en) 2017-03-06 2020-02-18 Snap Inc. Virtual vision system
US10523625B1 (en) 2017-03-09 2019-12-31 Snap Inc. Restricted group content collection
US10582277B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US10581782B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US11170393B1 (en) 2017-04-11 2021-11-09 Snap Inc. System to calculate an engagement score of location based media content
US10387730B1 (en) 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
US10212541B1 (en) 2017-04-27 2019-02-19 Snap Inc. Selective location-based identity communication
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
KR102455041B1 (en) 2017-04-27 2022-10-14 스냅 인코포레이티드 Location privacy management on map-based social media platforms
US10467147B1 (en) 2017-04-28 2019-11-05 Snap Inc. Precaching unlockable data elements
US10803120B1 (en) 2017-05-31 2020-10-13 Snap Inc. Geolocation based playlists
US11475254B1 (en) 2017-09-08 2022-10-18 Snap Inc. Multimodal entity identification
US10740974B1 (en) 2017-09-15 2020-08-11 Snap Inc. Augmented reality system
US10499191B1 (en) 2017-10-09 2019-12-03 Snap Inc. Context sensitive presentation of content
US10573043B2 (en) 2017-10-30 2020-02-25 Snap Inc. Mobile-based cartographic control of display content
US11265273B1 (en) 2017-12-01 2022-03-01 Snap, Inc. Dynamic media overlay with smart widget
US11017173B1 (en) 2017-12-22 2021-05-25 Snap Inc. Named entity recognition visual context and caption data
US10678818B2 (en) 2018-01-03 2020-06-09 Snap Inc. Tag distribution visualization system
US11507614B1 (en) 2018-02-13 2022-11-22 Snap Inc. Icon based tagging
US10885136B1 (en) 2018-02-28 2021-01-05 Snap Inc. Audience filtering system
US10979752B1 (en) 2018-02-28 2021-04-13 Snap Inc. Generating media content items based on location information
US10327096B1 (en) 2018-03-06 2019-06-18 Snap Inc. Geo-fence selection system
EP3766028A1 (en) 2018-03-14 2021-01-20 Snap Inc. Generating collectible items based on location information
US11163941B1 (en) 2018-03-30 2021-11-02 Snap Inc. Annotating a collection of media content items
US10219111B1 (en) 2018-04-18 2019-02-26 Snap Inc. Visitation tracking system
US10896197B1 (en) 2018-05-22 2021-01-19 Snap Inc. Event detection system
US10679393B2 (en) 2018-07-24 2020-06-09 Snap Inc. Conditional modification of augmented reality object
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US10698583B2 (en) 2018-09-28 2020-06-30 Snap Inc. Collaborative achievement interface
US10778623B1 (en) 2018-10-31 2020-09-15 Snap Inc. Messaging and gaming applications communication platform
US11199957B1 (en) 2018-11-30 2021-12-14 Snap Inc. Generating customized avatars based on location information
US10939236B1 (en) 2018-11-30 2021-03-02 Snap Inc. Position service to determine relative position to map features
US11032670B1 (en) 2019-01-14 2021-06-08 Snap Inc. Destination sharing in location sharing system
US10939246B1 (en) 2019-01-16 2021-03-02 Snap Inc. Location-based context information sharing in a messaging system
US11294936B1 (en) 2019-01-30 2022-04-05 Snap Inc. Adaptive spatial density based clustering
US10936066B1 (en) 2019-02-13 2021-03-02 Snap Inc. Sleep detection in a location sharing system
US10838599B2 (en) 2019-02-25 2020-11-17 Snap Inc. Custom media overlay system
US10964082B2 (en) 2019-02-26 2021-03-30 Snap Inc. Avatar based on weather
US10852918B1 (en) 2019-03-08 2020-12-01 Snap Inc. Contextual information in chat
US11868414B1 (en) 2019-03-14 2024-01-09 Snap Inc. Graph-based prediction for contact suggestion in a location sharing system
US11852554B1 (en) 2019-03-21 2023-12-26 Snap Inc. Barometer calibration in a location sharing system
US11249614B2 (en) 2019-03-28 2022-02-15 Snap Inc. Generating personalized map interface with enhanced icons
US10810782B1 (en) 2019-04-01 2020-10-20 Snap Inc. Semantic texture mapping system
US10560898B1 (en) 2019-05-30 2020-02-11 Snap Inc. Wearable device location systems
US10582453B1 (en) 2019-05-30 2020-03-03 Snap Inc. Wearable device location systems architecture
US10893385B1 (en) 2019-06-07 2021-01-12 Snap Inc. Detection of a physical collision between two client devices in a location sharing system
US11307747B2 (en) 2019-07-11 2022-04-19 Snap Inc. Edge gesture interface with smart interactions
US11821742B2 (en) 2019-09-26 2023-11-21 Snap Inc. Travel based notifications
US11218838B2 (en) 2019-10-31 2022-01-04 Snap Inc. Focused map-based context information surfacing
US11429618B2 (en) 2019-12-30 2022-08-30 Snap Inc. Surfacing augmented reality objects
US11128715B1 (en) 2019-12-30 2021-09-21 Snap Inc. Physical friend proximity in chat
US10880496B1 (en) 2019-12-30 2020-12-29 Snap Inc. Including video feed in message thread
US11169658B2 (en) 2019-12-31 2021-11-09 Snap Inc. Combined map icon with action indicator
US11343323B2 (en) 2019-12-31 2022-05-24 Snap Inc. Augmented reality objects registry
US11228551B1 (en) 2020-02-12 2022-01-18 Snap Inc. Multiple gateway message exchange
US11516167B2 (en) 2020-03-05 2022-11-29 Snap Inc. Storing data based on device location
US11619501B2 (en) 2020-03-11 2023-04-04 Snap Inc. Avatar based on trip
US11430091B2 (en) 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US10956743B1 (en) 2020-03-27 2021-03-23 Snap Inc. Shared augmented reality system
US11290851B2 (en) 2020-06-15 2022-03-29 Snap Inc. Location sharing using offline and online objects
US11483267B2 (en) 2020-06-15 2022-10-25 Snap Inc. Location sharing using different rate-limited links
US11503432B2 (en) 2020-06-15 2022-11-15 Snap Inc. Scalable real-time location sharing framework
US11314776B2 (en) 2020-06-15 2022-04-26 Snap Inc. Location sharing using friend list versions
US11308327B2 (en) 2020-06-29 2022-04-19 Snap Inc. Providing travel-based augmented reality content with a captured image
KR102547289B1 (en) * 2020-07-07 2023-06-23 네이버 주식회사 Method and apparatus for generating bundle invitation link related to multiple communities
US11349797B2 (en) 2020-08-31 2022-05-31 Snap Inc. Co-location connection service
US11606756B2 (en) 2021-03-29 2023-03-14 Snap Inc. Scheduling requests for location data
US11645324B2 (en) 2021-03-31 2023-05-09 Snap Inc. Location-based timeline media content system
US11829834B2 (en) 2021-10-29 2023-11-28 Snap Inc. Extended QR code

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090070294A1 (en) * 2007-09-11 2009-03-12 Yahoo! Inc. Social Networking Site Including Conversation Thread Viewing Functionality
US7620689B2 (en) * 2004-07-19 2009-11-17 Siemens Communications, Inc. Real time communications system
US20100125592A1 (en) * 2008-11-20 2010-05-20 Bank Of America Corporation Search and chat integration system
US20110238762A1 (en) * 2010-02-09 2011-09-29 Google Inc. Geo-coded comments in a messaging service
US20120075338A1 (en) * 2010-09-29 2012-03-29 Lemi Technology, Llc Proximity inclusion zone pickup settings for distributed conversations
US20120317205A1 (en) * 2011-06-10 2012-12-13 Microsoft Corporation Anonymous location-based notification

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925708B2 (en) * 2008-01-04 2011-04-12 Yahoo! Inc. System and method for delivery of augmented messages
US8244236B2 (en) 2010-04-29 2012-08-14 Wavemarket, Inc. System and method for aggregating and disseminating mobile device tag data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620689B2 (en) * 2004-07-19 2009-11-17 Siemens Communications, Inc. Real time communications system
US20090070294A1 (en) * 2007-09-11 2009-03-12 Yahoo! Inc. Social Networking Site Including Conversation Thread Viewing Functionality
US20100125592A1 (en) * 2008-11-20 2010-05-20 Bank Of America Corporation Search and chat integration system
US20110238762A1 (en) * 2010-02-09 2011-09-29 Google Inc. Geo-coded comments in a messaging service
US20120075338A1 (en) * 2010-09-29 2012-03-29 Lemi Technology, Llc Proximity inclusion zone pickup settings for distributed conversations
US20120317205A1 (en) * 2011-06-10 2012-12-13 Microsoft Corporation Anonymous location-based notification

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10498676B2 (en) 2016-10-12 2019-12-03 Google Llc Contextual automatic grouping
US10846612B2 (en) 2016-11-01 2020-11-24 Google Llc Actionable suggestions for activities
US11887016B2 (en) 2016-11-01 2024-01-30 Google Llc Actionable suggestions for activities
US10397163B2 (en) 2016-11-07 2019-08-27 Google Llc Third party application configuration for issuing notifications

Also Published As

Publication number Publication date
US20130173729A1 (en) 2013-07-04
AU2012327213B2 (en) 2015-09-17
WO2013101505A3 (en) 2015-06-11
AU2012327213A1 (en) 2014-06-19
US9253134B2 (en) 2016-02-02
WO2013101505A2 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
US9253134B2 (en) Creating real-time conversations
US10572098B2 (en) Sharing location information during a communication session
AU2018204265C1 (en) Triggering notifications associated with tasks to perform
US9148394B2 (en) Systems and methods for user interface presentation of virtual agent
US9276802B2 (en) Systems and methods for sharing information between virtual agents
US9659298B2 (en) Systems and methods for informing virtual agent recommendation
US9262175B2 (en) Systems and methods for storing record of virtual agent interaction
US9679300B2 (en) Systems and methods for virtual agent recommendation for multiple persons
US9560089B2 (en) Systems and methods for providing input to virtual agent
US8312380B2 (en) Local map chat
US9823803B2 (en) Modular user profile overlay
US20140164953A1 (en) Systems and methods for invoking virtual agent
US20140164532A1 (en) Systems and methods for virtual agent participation in multiparty conversation
WO2014093339A1 (en) System and methods for virtual agent recommendation for multiple persons
JP2013519154A (en) Active email
US11349960B2 (en) Integration of client system groups
JP7167131B2 (en) Natural Language Processing and Analysis in Conversational Scheduling Assistant Computing System
KR20220148981A (en) A natural language processing and analyzing method in interactive computing system

Legal Events

Date Code Title Description
AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:STARENKY, VICTOR;KENNBERG, ALEKSANDR V.;RIDEOUT, JOSEPH;SIGNING DATES FROM 20120725 TO 20121031;REEL/FRAME:029530/0848

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044144/0001

Effective date: 20170929

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION