Patent Publication Number: US-9906576-B2

Title: System and method for creating and managing geofeeds

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of application Ser. No. 14/792,538, filed Jul. 6, 2015, which is a continuation of granted U.S. patent application Ser. No. 14/108,301, filed Dec. 16, 2013, now U.S. Pat. No. 9,077,782, which is a continuation of granted U.S. patent application Ser. No. 13/788,760, filed Mar. 7, 2013, now U.S. Pat. No. 8,612,533, all of which are hereby incorporated by reference in their entireties. 
    
    
     FIELD OF THE INVENTION 
     The disclosure relates to systems and methods for creating, managing, and curating geofeeds, including content related to geographically definable locations that is aggregated from a plurality of social media or other content providers. 
     BACKGROUND OF THE INVENTION 
     The availability of content such as videos, audio files, photos, text, and/or other content over networks such as the Internet has grown at impressive rates. Many Internet and other online service providers make this type of content available to enable users to post and share such content through their services. However, various limitations exist with respect to how this vast amount of information can be effectively monitored and/or selectively displayed. 
     At various times, different content providers may no longer host certain content and/or may be experiencing scheduled or unscheduled downtime. In these instances, content that was previously available may no longer be available. In addition, historical views of such content may not be possible when content that was once available is no longer made available. 
     Furthermore, real-time updates of content that are relevant to geographically definable locations (“geo-locations”) and aggregated from various content providers may be difficult to obtain. Another problem arises when attempting to curate the content to follow or track events or items of interest. 
     These and other problems exist. 
     SUMMARY OF THE INVENTION 
     The disclosure relates to systems and methods of creating, managing, and curating geofeeds. A geofeed may include content that is aggregated from a plurality of content providers using respective requests formatted specifically for individual ones of the plurality of content providers, where an individual set of a plurality of content is relevant to one or more geo-locations. 
     In some embodiments, the system may include a computer that facilitates creation, management, and curation of geofeeds. The computer may include one or more processors configured to perform some or all of a functionality of a plurality of modules. For example, the one or more processors may be configured to execute a geofeed creation module, an archive module, a geofeed streamer module, a curator module, an administration module, a communication module, a user interface module, and/or other modules. 
     The geofeed creation module may be configured to receive a request to create a geofeed based on a specification of one or more geo-locations. The request may include one or more geofeed parameters, one or more management parameters and/or other parameters. The one or geofeed parameters may be used to filter content into the geofeed and/or out of the geofeed. The management parameters may specify whether and/or how various management functions should be performed in relation to the geofeed. The management functions may include, for example, storing content of the geofeed or information related to the content of the geofeed, generating a snapshot of the geofeed, streaming the geofeed, and/or other management functions. 
     The geofeed creation module may generate a geofeed definition that includes the specification of the one or more geo-locations, the one or more geofeed parameters, the one or more management parameters, and/or other information related to the geofeed. The geofeed definition may be updated. For example, the specification of the one or more geo-locations, the one or more geofeed parameters, the one or more management parameters, and/or other information of the geofeed definition may be updated. In this manner, various parameters related to geofeeds may be defined or updated at the time of specifying the geofeeds and/or after the geofeeds have been specified. 
     To create the geofeed, the geofeed creation module may obtain the specification of the one or more geo-locations from the geofeed definition and generate requests that specify the one or more geo-locations specifically for individual ones of the plurality of content providers. In some embodiments, the geofeed creation module may create a single geofeed having a plurality of geo-locations that are grouped with respect to one another. In other embodiments, the geofeed creation module may create multiple distinct geofeeds, which may each be associated with one or more geo-locations that are grouped with respect to one another. In these embodiments, each set of individual content may correspond to a single geofeed. 
     In some embodiments, various modules may be configured to manage geofeeds that have been created based on the geofeed management parameters. For example, based on various management parameters, the archive module may be configured to burn a geofeed and/or generate geofeed snapshots and the geofeed streamer module may be configured to stream a geofeed. 
     In some embodiments, the management parameters may include one or more content storage parameters that specify whether and how the content of a geofeed should be stored. The archive module may be configured to store the content of the geofeed such as an actual TWEET or information related to the content of the geofeed such as a link that is parsed from the actual TWEET based on the content storage parameters. In this manner, even if a content provider is experiencing downtime (e.g., cannot process requests for content) or is otherwise unavailable, the system may retrieve the content and/or information related to the content from a memory, to the extent allowable by law and/or terms of service from the content provider. 
     In some embodiments, the archive module may be configured to store the content or information related to the content of a geofeed at predefined intervals such as, for example, at weekly, daily, hourly, and/or other intervals. Thus, the stored content and/or information related to the content may be updated periodically in order to obtain and store newly available content. 
     In some embodiments, the archive module may be configured to receive from a content consumer or other user a content storage request that identifies a geofeed for which to store the content or information related to the content. 
     In some embodiments, the archive module may automatically determine one or more geo-locations for a geofeed for which the content or information related to the content should be stored. For example, the archive module may determine that content relevant to geo-locations that may be popular should be stored based on the popularity (and/or other characteristic) of the geo-locations. 
     In some embodiments, a geofeed for which the content and/or information related to the content has been stored may be used to at least partially provide content that may satisfy a request for another geofeed. For example, a request for a geofeed for a city for which a geofeed has already been created may cause at least some of the content from the previously created geofeed to be included as part of the geofeed that is responsive to the request. In another example, a request for a geofeed related to a particular location in a city for which a geofeed has already been created may cause at least some of the content from the already created geofeed that is relevant to the particular location to be included as part of the geofeed that is responsive to the request. 
     In some embodiments, the management parameters may include one or more geofeed snapshot parameters that specify whether and how a geofeed snapshot should be generated. The archive module may be configured to generate a geofeed snapshot based on the geofeed snapshot parameters. A geofeed snapshot may include a geofeed that is created at a particular time and stored in relation to the particular time. The archive module may create a geofeed snapshot at predefined and configurable intervals, which may be specified by the one or more geofeed snapshot parameters. In this manner, the archive module may provide a landscape of social media and/or other content that is relevant to a geo-location at various times. 
     In some embodiments, the management parameters may include one or more geofeed stream parameters that specify whether and how a geofeed should be streamed. In some embodiments, the geofeed streamer module may be configured to stream a geofeed based on the one or more geofeed stream parameters. The geofeed streamer module may stream a geofeed by periodically or continuously obtaining geofeed content based on the one or more geofeed stream parameters and communicating the obtained geofeed content as a geofeed stream using various conventional data streaming techniques. 
     In some embodiments, the geofeed streamer module may be configured to obtain newly added content so that the geofeed stream remains up-to-date with recent content. For example, the geofeed streamer module may obtain content that was newly published or otherwise provided by content providers since the last time that the geofeed streamer module requested such content from the content providers. 
     In some embodiments, the curator module may be configured to curate the content of one or more geofeeds. The curator module may tag certain geofeed content within a geofeed with various collection identifiers that classify the geofeed content. The curator module may receive collection identifiers from a user to allow the user to label certain geofeed content. In some embodiments, the curator module may use the collection identifiers to selectively display the labeled content. For example, a user may view a geofeed and label particular geofeed content of the geofeed with a collection identifier that allows the user to later recall the geofeed content based on the collection identifier. 
     In some embodiments, the administration module may be configured to manage user accounts, set user roles such as security access roles, and/or perform other administrative operations. For example, the administration module may be used to set which user may access different views, curate geofeeds, view and manage curated content, decide whether to burn a geofeed such as by storing content or information related to the content, and/or provide other security roles. 
     In some embodiments, the communication module may be configured to share a geofeed via a content provider such as a social media provider, email, SMS text, and/or other communication channels. In some embodiments, the communication module may be configured to communicate a geofeed via various feeds such as Really Simple Syndication (“RSS”) and ATOM feeds, a vanity Uniform Resource Locator (“URL”) using a name of the geofeed (e.g., a name assigned by the content consumer), and/or other communication channels. 
     In some embodiments, the user interface module may be configured to generate user interfaces related to the geofeeds. For example, the user interface module may present various displays for requesting, managing, curating, displaying, and/or otherwise displaying information related to geofeeds. 
     The user interface module may generate various interfaces for specifying a new geofeed. For example, a geofeed request user interface may receive a specification of the one or more geo-locations, one or more geofeed parameters, one or more management parameters, and/or other information related to the geofeed. The geofeed request user interface may cause a geofeed definition to be created and/or the specified geofeed to be generated and displayed. 
     The user interface module may generate various interfaces for managing geofeeds. For example, a geofeed management user interface may receive updates to the specification of the one or more geo-locations, the one or more geofeed parameters, the one or more management parameters, and/or other information related to the geofeed. 
     The user interface module may generate various interfaces for curating geofeeds. For example, a curation user interface may receive one or more selections of content included in one or more geofeeds and associate the one or more selections with a collection identifier. In this manner, a user may curate geofeeds by grouping particular content of interest with one another. 
     These and other objects, features, and characteristics of the system and/or method disclosed herein, as well as the methods of operation and functions of the related elements of structure and the combination of parts and economies of manufacture, will become more apparent upon consideration of the following description and the appended claims with reference to the accompanying drawings, all of which form a part of this specification, wherein like reference numerals designate corresponding parts in the various figures. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only and are not intended as a definition of the limits of the invention. As used in the specification and in the claims, the singular form of “a”, “an”, and “the” include plural referents unless the context clearly dictates otherwise. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a system of creating and managing geofeeds, according to an aspect of the invention. 
         FIG. 2  illustrates a schematic diagram of geofeed snapshots, according to an aspect of the invention. 
         FIG. 3  illustrates a schematic diagram of geofeed streaming content, according to an aspect of the invention. 
         FIG. 4  illustrates a schematic diagram of curating geofeed content into collections, according to an aspect of the invention. 
         FIG. 5  illustrates a process of burning a geofeed, according to an aspect of the invention. 
         FIG. 6  illustrates a process of generating a geofeed snapshot, according to an aspect of the invention. 
         FIG. 7  illustrates a process of streaming a geofeed, according to an aspect of the invention. 
         FIG. 8  illustrates a process of curating geofeeds into collections, according to an aspect of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  illustrates a system  100  of creating and managing geofeeds, according to an aspect of the invention. A geofeed includes a collection of content (also referred to herein as “geofeed content”), aggregated from various content providers, that is relevant to a geographically definable location (hereinafter, a “geo-location”). The content providers may include, for example, social media platforms (e.g., FACEBOOK, TWITTER, INSTAGRAM, FLICKR, etc.), online knowledge databases, and/or other providers that can distribute content that may be relevant to a geo-location. The geo-location may be specified by a boundary, geo coordinates (e.g., latitude, longitude, altitude/depth), an address, a school, a place name, a point of interest, a zip code, a city, a state, a country, and/or other information that can spatially identify an area. The content may be generated by content sources such as individuals, corporations, and/or other entities that may create content. As used hereinafter, “a location,” “a geo-location,” “a geographically definable location,” and similar language is not limited to a single location but may also refer to one or more such locations. 
     In many instances the content can be automatically tagged with information. The information may include a user identification, date/time information related to the content (e.g., a date and/or time that indicates when the content was created, uploaded, etc.), geographic information that specifies a location where the content was created, uploaded, etc., and/or other information. For example, cameras equipped with a Global Positioning Satellite (“GPS”) unit and/or other location-aware system may embed into an image file latitude/longitude coordinates that indicate where a picture was taken. In addition, modern hand-held devices such as smartphones may be equipped with a GPS sensor, which allows users to generate content with their devices and share the content through a plurality of social networks and other providers. Moreover, some devices allow users to manually input the foregoing and other information for embedding into the content. Furthermore, editing software may allow a user to embed or otherwise manually and/or automatically include information along with the content after the content was created. 
     System  100  may include a computer  110 , a geofeed API  111 , a content consumer device  130 , provider APIs  140 , content providers  150 , and/or other components. In some embodiments, computer  110  may include one or more processors  120  configured to perform some or all of a functionality of a plurality of modules, which may be stored in a memory  121 . For example, the one or more processors  120  may be configured to execute a geofeed creation module  112 , an archive module  113 , a geofeed streamer module  114 , a curator module  115 , an administration module  116 , a communication module  117 , a user interface module  118 , and/or other modules  119 . 
     Geofeed creation module  112  may be configured to create one or more geofeeds, as described in U.S. patent application Ser. No. 13/284,455, filed Oct. 28, 2011, entitled “SYSTEM AND METHOD FOR AGGREGATING AND DISTRIBUTING GEOTAGGED CONTENT,” and U.S. patent application Ser. No. 13/619,888, filed Sep. 14, 2012, entitled “SYSTEM AND METHOD FOR GENERATING, ACCESSING, AND UPDATING GEOFEEDS” both of which are incorporated by reference herein in their entireties. 
     Granted U.S. patent application Ser. No. 13/788,843, filed Mar. 7, 2013, now U.S. Pat. No. 9,307,353, entitled “SYSTEM AND METHOD FOR DIFFERENTIALLY PROCESSING A LOCATION INPUT FOR CONTENT PROVIDERS THAT USE DIFFERENT LOCATION INPUT FORMATS,” and granted U.S. patent application Ser. No. 13/788,909, filed Mar. 7, 2013, now U.S. Pat. No. 8,850,531, entitled “SYSTEM AND METHOD FOR TARGETED MESSAGING, WORKFLOW MANAGEMENT, AND DIGITAL RIGHTS MANAGEMENT FOR GEOFEEDS,” are all incorporated by reference in their entireties herein. 
     Granted U.S. patent application Ser. No. 13/708,516, filed Dec. 7, 2012, now U.S. Pat. No. 8,655,983, entitled “SYSTEM AND METHOD FOR LOCATION MONITORING BASED ON ORGANIZED GEOFEEDS,” granted U.S. patent application Ser. No. 13/708,404, filed Dec. 7, 2012, now U.S. Pat. No. 8,484,224, entitled “SYSTEM AND METHOD FOR RANKING GEOFEEDS AND CONTENT WITHIN GEOFEEDS,” and granted U.S. patent application Ser. No. 13/708,466, filed Dec. 7, 2012, now U.S. Pat. No. 8,639,767, entitled “SYSTEM AND METHOD FOR GENERATING AND MANAGING GEOFEED-BASED ALERTS,” are all incorporated by reference in their entireties herein. 
     Geofeed creation module  112  may be configured to generate one or more geofeeds based on content that is relevant to one or more geographically definable locations (“geo-locations”). The geofeed creation module may format requests that specify one or more geo-locations specifically for individual ones of the plurality of content providers and aggregate the content to form a geofeed. In some embodiments, geofeed creation module  112  may create a single geofeed having a plurality of geo-locations that are grouped with respect to one another. In other embodiments, geofeed creation module  112  may create multiple distinct geofeeds, which may each be associated with one or more geo-locations and may be grouped with respect to one another. In these embodiments, each set of individual content may correspond to a single geofeed. 
     For example, geofeed creation module  112  may format requests to individual ones of a plurality of APIs  140  (illustrated in  FIG. 1  as API  140 A,  140 B, . . . ,  140 N). The provider APIs  140  may facilitate receiving content from corresponding content providers  150  (illustrated in FIG. 
     as content providers  150 A,  150 B,  150 C). In some embodiments, geofeed creation module  110  may format a request directly for content provider  150 N without using a corresponding API. A content consumer device  130  may request and view geofeeds created by geofeed creation module  112 . The formatting instructions may be stored in and recalled from a memory such as provider database  134 . Preferences for creating, viewing, and/or managing information related to geofeeds may be stored in and recalled from a memory such as user profile database  132 . 
     In some embodiments, geofeed creation module  112  may generate a geofeed definition that describes a geofeed such that a geofeed may be dynamically generated based on the geofeed definition. For example, the geofeed definition may include the geo-location specification, one or more geofeed parameters used to filter content aggregated from content providers  150 , and/or other information related to the geofeed that can be used to aggregate content from various content providers. For example, the one or geofeed parameters may be used to view only particular types of content, content from particular content providers, and/or other parameter by which to filter in or out content. The geofeed definition may be identified by a geofeed identifier and stored (e.g., in database  136 ) for later retrieval so that a content consumer or others may select and obtain a geofeed that was previously defined. 
     In some embodiments, geofeed creation module  112  may store the geofeed (e.g., in database  136 ). For example, geofeed creation module  112  may be configured to store the geofeed by aggregating content from content providers  150  in relation to the geofeed and store the content in association with a geofeed identifier and/or a geofeed definition. 
     In some embodiments, archive module  113  may be configured to burn a geofeed by storing one or more aspects of geofeed content (also referred to individually as a “geofeed content item”) in a memory such as geofeed database  136 . The one or more aspects may include portions of the geofeed content itself and/or information that describe the geofeed content. For example, an aspect of geofeed content may include, without limitation, an external identifier for the geofeed content such as an identifier assigned by a content provider that provided the geofeed content, a publication date that indicates a date when the geofeed content was published, location coordinates such as latitude/longitude related to the geofeed content (e.g., a location where the geofeed content was created), a title of the geofeed content, a description of the geofeed content, a Uniform Resource Locator (“URL”) link to a content provider that provided the geofeed content, an author name who created the geofeed content, a URL associated with the author (e.g., a URL that includes a website or email associated with the author), a source of the geofeed content (e.g., an identity of the content provider), a link to media associated with the geofeed content, a raw, unformatted result from the content provider, and/or other aspect of the geofeed content. The raw, unformatted result from the content provider may be formatted according to an exchange format that may include, without limitation, XML text, Javascript Object Notation (“JSON”) text, and/or other exchange format that can convey the geofeed content. 
     In some embodiments, geofeed content may include one or more links to other content such as a URL link to an online news story. Archive module  113  may parse the geofeed content, extract the one or more links to other content based on the parsing, and include the one or more links in a burned geofeed. In this manner, archive module  113  may archive links to other content that exists in the geofeed content. 
     Even if a content provider is experiencing downtime (e.g., cannot process requests for content), the system may retrieve the one or more aspects of stored content from a memory. In this manner, archive module  113  may facilitate a cache of geofeed content that may be used to obtain the content even when a content provider  150  is unavailable to provide the content or otherwise no longer provides the content. 
     In some embodiments, archive module  113  may be configured to burn a geofeed at predefined intervals such as, for example, at weekly, daily, hourly, and/or other intervals. Thus, a burned geofeed may be updated periodically in order to obtain and store newly added content. The predefined intervals may be configurable such that geofeeds may be burned at different intervals based on particular needs. To keep track of when a geofeed was burned, archive module  113  may store an associated burn date such as a date in which the geofeed was burned. 
     Archive module  113  may be configured to initiate a geofeed burn in various ways. In some embodiments, archive module  113  may be configured to receive from a content consumer or other user a request to burn a geofeed. The request to burn a geofeed may be received in association with a request to create a geofeed and/or may identify one or more existing geofeeds. In some embodiments, archive module  113  may determine one or more geo-locations for which a geofeed should be burned. For example, archive module  113  may automatically determine that cities or other geographically definable locations that may be popular should be burned based on their popularity or other characteristic. 
     In some embodiments, archive module  113  may burn a geofeed based on one or more burn parameters. The burn parameters may specify parameters by which to burn the geofeed such as, without limitation, an indication of whether to burn a geofeed, an interval/frequency with which to burn the geofeed, an indication of one or more aspects of the geofeed that should be burned, filters that filter in or out types of content (e.g., photos, text, pictures, etc.) to burn, and/or other burn parameters. In some embodiments, archive module  113  may be configured to store the one or more burn parameters as part of a geofeed definition that specifies the geofeed to be burned. 
     In some embodiments, archive module  113  may be configured to provide at least a portion of a burned geofeed to provide content for other geofeeds whose geo-locations at least partially overlap with the burned geofeed. For example, when a request for a geofeed is made, content from a burned geofeed may be used to at least partially satisfy the request. This may be helpful when one or more content providers  150  are unavailable to provide content at the time that the request for the geofeed was made and/or other situations where it may be desirable to obtain content from a cache as opposed to live from the content providers. 
     In some embodiments, archive module  113  may be configured to provide at least a portion of burned geofeed content when the geo-locations for the burned geofeed substantially match the geo-locations for a requested geofeed. For example, a request for a geofeed for a city for which a geofeed has already been burned may cause at least some of the content from the burned geofeed to be included as part of the resulting geofeed that is responsive to the request. 
     In some embodiments, archive module  113  may be configured to provide at least a portion of burned geofeed content when the geo-locations for the burned geofeed at least partially matches the geo-locations for a requested geofeed. For example, a request for a geofeed related to a particular location in a city for which a geofeed as already been burned may cause at least some of the content from the burned geofeed that is relevant to the particular location to be included as part of the resulting geofeed. 
     In some embodiments, archive module  113  may be configured to generate geofeed snapshots. A geofeed snapshot may include a geofeed that is requested at a particular time and stored in relation to the particular time. For example, archive module  113  may be configured to generate a first geofeed associated with one or more particular geo-locations at a first time, store the first geofeed, generate a second geofeed associated with the one or more particular geo-locations at a second time, and store the second geofeed. In this manner, geofeed snapshots for one or more geo-locations may be generated at different times. 
     Archive module  113  may generate a geofeed snapshot at predefined intervals, which may be configurable. In this manner, archive module  113  may provide at various times a landscape of social media and/or other content that is relevant to geo-locations. For example, geofeed snapshots may be used to view changes in social media and other content as historical events unfold over time at relevant geo-locations. Geofeed snapshots may also be used to view social media and other content at particular instances of time at relevant geo-locations. 
     In some embodiments, geofeed streamer module  114  may be configured to receive a geofeed stream request, periodically or continuously obtain geofeed content based on the geofeed stream request, and communicate the obtained geofeed content as a geofeed stream to a geofeed widget executing at a client or other computing device remote from the geofeed streamer module. The geofeed stream is a set of one or more geofeed content items that may be periodically or continuously updated (e.g., added to or replaced with new geofeed content items) and communicated for display. 
     In some embodiments, geofeed streamer module  114  may receive the geofeed stream request from a geofeed widget that is included with online content such as a website and provide the geofeed widget with the geofeed stream to the geofeed widget. The geofeed widget may include instructions executing on the client such as, without limitation, Hypertext Markup Language, JAVASCRIPT instructions, and/or other client-executed instructions. The client-executed instructions may be stored at a memory of computer  110  and distributed to various entities that wish to embed a geofeed widget into their site. The client-executed instructions may be preconfigured such that the geofeed widget operates when embedded at the client site and/or be customizable at the client site. 
     The geofeed widget may specify in various ways a geofeed for which a geofeed stream is to be displayed. For example, the geofeed widget may include a geo-location specification, geofeed parameters, a geofeed identifier, a geofeed definition identifier, a geofeed definition, and/or other information that can be used to specify a geofeed for which a geofeed stream is to be displayed by the geofeed widget. 
     In some embodiments, geofeed streamer module  114  may be configured to participate in a communication channel with the geofeed widget and provide the geofeed stream to the geofeed widget based on the request. For example, when the geofeed widget is embedded into an online article published by a news website in relation to a particular city, geofeed streamer module  114  may communicate the geofeed stream to the geofeed widget, which displays the geofeed stream alongside the online article where the geofeed widget is embedded. 
     In some embodiments, geofeed streamer module  114  may be configured to periodically or continuously refresh the geofeed stream with newly added geofeed content so that the geofeed stream remains up-to-date with real-time content. For example, the geofeed streamer module may obtain content that is relevant to a geographically definable location that was newly published or otherwise newly made available by content providers since the last time that the geofeed streamer module requested such content from the content providers. In some embodiments, only geofeed content that was newly added since the most recent refresh occurred is included in the geofeed stream. In some embodiments, at least a portion of new and previous geofeed content is included in the geofeed stream. 
     In some embodiments, geofeed streamer module  114  may initiate the geofeed stream by obtaining geofeed content for a geofeed and including the geofeed content in the geofeed stream. In some embodiments, the initial geofeed stream may be limited to particular time range (e.g., geofeeds within the last week), a particular maximum number of geofeeds to display, the most recent geofeed content, and/or other filter by which to limit the number of geofeed content items for the initial geofeed stream. Future geofeed stream refreshes may occur periodically at time intervals since the prior refresh (or since the initialization of the geofeed stream), periodically based on a number of new geofeed content items since the last refresh (e.g., update each time a particular number of new geofeed content items is available), and/or other instances where the geofeed stream may be refreshed. 
     In some embodiments, geofeed streamer module  114  may receive geofeed stream preferences that control a format preference (e.g., font styles, font sizes, photo sizes, etc.), filters used to filter in or out certain content (e.g., whether to show only photos, only content from particular providers, etc.), maximum numbers of content to show at any time, and/or other preferences that can be used to control operation of the geofeed widget. For example, an administrator of a site that embeds a geofeed widget may wish to moderate content that appears in the geofeed widget. Geofeed streamer module  114  may receive such preferences via moderator tools displayed by user interface module  118 , preferences communicated from the geofeed widget, from user profile database  132 , and/or other method of obtaining such preferences. 
     In some embodiments, curator module  115  may be configured to curate and manage geofeed content. The curator module may label certain geofeed content within a geofeed with various collection identifiers that classify the geofeed content to create geofeed collections. Curator module  115  may receive collection identifiers from a user to allow the user to label certain geofeed content. In some embodiments, the curator module may use the collection identifiers to selectively display the labeled content. A user may view a geofeed and label particular geofeed content of the geofeed with a collection identifier that allows the user to later recall the geofeed content based on the collection identifier. For example, curator module  115  may allow a user to create a collection of geofeed content based on a particular topic such as “NASCAR.” In this manner, the user may later recall NASCAR-related geofeed content. In some embodiments, the collections may be communicated in a manner similar to the manner in which geofeeds may be communicated and shared. 
     In some embodiments, curator module  115  may be configured to generate a single geofeed collection that spans multiple geo-locations, and/or geofeeds. For example, a collection related to geofeed content associated with a baseball team may include geofeed content from geo-locations and/or geofeeds associated with different cities/stadiums in which the baseball team has played. 
     In some embodiments, curator module  115  may be configured to generate multiple collections based on a single geo-location and/or geofeed. For example, a geo-location and/or geofeed associated with a single stadium may be associated with individual collections each curated to include geofeed content that correspond to different topics such as different innings of a game, different fans (e.g., home-team fans vs. visiting-team fans), and/or other topics. 
     In some embodiments, the administration module  116  may be configured to manage user accounts, set user roles such as security access roles, and/or perform other administrative operations. For example, the administration module may be used to set which user may access different views, curate geofeeds, view and manage curated content, decide whether to burn a geofeed, and/or set other security roles. 
     In some embodiments, the communication module  117  may be configured to share a geofeed via a content provider such as a social media provider, email, SMS text, and/or other communication channels. In some embodiments, the communication module may be configured to communicate a geofeed via various feeds such as Really Simple Syndication (“RSS”) and ATOM feeds, a vanity Uniform Resource Locator (“URL”) using a name of the geofeed (e.g., a name assigned by the content consumer), and/or other communication channels. 
     In some embodiments, the user interface module  118  may be configured to generate user interfaces that allow viewing and interaction with the geofeeds. For example, the user interface module may present various displays for curating geofeeds, displaying geofeeds, requesting geofeeds, and/or otherwise displaying geofeed information. 
     Those having skill in the art will recognize that computer  110  and content consumer device  130  may each comprise one or more processors, one or more interfaces (to various peripheral devices or components), memory, one or more storage devices, and/or other components coupled via a bus. The memory may comprise random access memory (RAM), read only memory (ROM), or other memory. The memory may store computer-executable instructions to be executed by the processor as well as data that may be manipulated by the processor. The storage devices may comprise floppy disks, hard disks, optical disks, tapes, or other storage devices for storing computer-executable instructions and/or data. 
     One or more applications, including various modules, may be loaded into memory and run on an operating system of computer  110  and/or consumer device  130 . In one implementation, computer  110  and consumer device  130  may each comprise a server device, a desktop computer, a laptop, a cell phone, a smart phone, a Personal Digital Assistant, a pocket PC, or other device. 
     Network  102  may include any one or more of, for instance, the Internet, an intranet, a PAN (Personal Area Network), a LAN (Local Area Network), a WAN (Wide Area Network), a SAN (Storage Area Network), a MAN (Metropolitan Area Network), a wireless network, a cellular communications network, a Public Switched Telephone Network, and/or other network. 
       FIG. 2  illustrates a schematic diagram  200  of generating geofeed snapshots, according to an aspect of the invention. In an embodiment, at different times (T( 1 ), T( 2 ), . . . , T(N)) of a hypothetical timeline  202 , computer  110  may aggregate content that is relevant to one or more geo-locations from a plurality of content providers  150  based on requests formatted specifically for individual ones of the content providers to generate snapshots  210  (illustrated in  FIG. 2  as snapshot  210 A,  210 B, . . . ,  210 N). For example, at time T( 1 ), computer  110  may generate a snapshot  210 A that includes the content aggregated from content providers  150  at time T( 1 ) and store snapshot  210 A. Similarly, at time T( 2 ), computer  110  may generate a snapshot  210 B that includes the content aggregated from content providers  150  at time T( 2 ) and store snapshot  210 B. At other times T(N), computer  110  may generate other snapshots  210 N that includes the content aggregated from content providers  150  at times T(N) and store snapshots  210 N. 
       FIG. 3  illustrates a schematic diagram  300  of geofeed streaming content, according to an aspect of the invention. In an embodiment, at different times (T( 1 ), T( 2 ), . . . , T(N)), computer  110  may aggregate content from a plurality of content providers  150  based on requests formatted specifically for individual ones of the content providers and one or more geo-locations to obtain newly available content  312  (illustrated in  FIG. 3  as newly available content  312 A-H) from the content providers. An interface  302  may have embedded a geofeed widget  310  that receives the newly available content  312  at the different times and displays the geofeed widget alongside other content  320 . In a non-limiting example, interface  302  may include an online news article  320  of a news provider and geofeed widget  310  may include newly available content  312  that is relevant to a geo-location for which the news article relates. In particular, a news story related to a particular city may include a geofeed widget that includes newly available geofeed content related to the particular city in order to augment the story with real-time content related to the city. Other uses of geofeed widget  310  will be apparent as well. 
     In some embodiments, geofeed widget  310  may include overlapping content from one time to the next. For example, as illustrated, geofeed widget  310  includes content  312 C at both times T( 1 ) and T( 2 ). In some embodiments, geofeed widget  310  includes only content that has not yet been previously displayed. For example, as illustrated, geofeed widget  310  at time T(N) includes content  312 F-H that were not previously presented at times T( 1 ) and T( 2 ). 
     In some embodiments, computer  110  obtains content  312  that is newly available since a time of last refresh. For example, at time T( 1 ), content  312  that is newly available since a predefined initial time may be aggregated from content providers  150 . At time T( 2 ), content  312  that is newly available since time T( 1 ) may be aggregated from content providers  150  for updating geofeed widget  310 . Similarly, at time T(N), content  312  that is newly available since time T( 2 ) may be aggregated from content providers  150  for updating geofeed widget  310 . In this manner, geofeed widget  310  may display a real-time geofeed stream. 
       FIG. 4  illustrates a schematic diagram  400  of curating geofeed content into collections, according to an aspect of the invention. In an embodiment, computer  110  may aggregate content (illustrated in  FIG. 4  as content  412 A,  412 B, . . . ,  412 N and content  422 A,  422 B, . . . ,  422 N) that is relevant to one or more geo-locations from a plurality of content providers  150  based on requests formatted specifically for individual ones of the content providers to generate geofeeds (illustrated in  FIG. 4  as geofeeds  410  and  420 ). Computer  110  may receive collection identifiers  430  (illustrated in  FIG. 4  as collection identifiers  430 A,  430 B,  430 C) to be associated with one or more of the geofeed content  412 ,  422 . A collection  430  may be used to curate geofeed content  412 ,  422  based on common themes, types of content, keywords, and/or other curations. In this manner, users may be able to curate geofeeds in order to save or highlight certain geofeed content. 
     In some embodiments, a single geofeed may include geofeed content that is curated to belong to more than one collection. For example, as illustrated, geofeed  410  includes content  412 A that is curated into collection  430 A and content  412 B,  412 N that are curated into collection  430 B. In this manner, a single geofeed may include content that is curated into multiple different collections. 
     In some embodiments, content from different geofeeds may be curated into a single collection. For example, as illustrated, geofeed  420  includes content  422 A that is curated into collection  430 A (along with content  412 A from geofeed  410 A). In this manner, geofeed content from more than one geofeed may be curated into a single geofeed. 
       FIG. 5  illustrates a process  500  of burning a geofeed, according to an aspect of the invention. The various processing operations and/or data flows depicted in  FIG. 5  (and in the other drawing figures) are described in greater detail herein. The described operations may be accomplished using some or all of the system components described in detail above and, in some embodiments, various operations may be performed in different sequences and various operations may be omitted. Additional operations may be performed along with some or all of the operations shown in the depicted flow diagrams. One or more operations may be performed simultaneously. Accordingly, the operations as illustrated (and described in greater detail below) are exemplary by nature and, as such, should not be viewed as limiting. 
     In an operation  502 , a request to burn a geofeed may be received. The request may include a request to burn an existing geofeed or a request to create a geofeed and then burn the created geofeed. The request may originate from a user, an automated process (such as a nightly or other automated process), and/or other origin. 
     In some embodiments, the request may include one or more burn parameters that may identify information to be burned. As such, in an operation  504 , a determination of whether the request includes burn parameters may be made. If the request does not include burn parameters, a determination of whether burn parameters are stored in a database may be made in an operation  506 . If burn parameters have been stored, the stored burn parameters may be obtained in an operation  508 . For example, a user may have provided preferences that include preferred burn parameters that are stored in a database such as user profile database  132 . If burn parameters have not been stored, default burn parameters may be obtained in an operation  510 . In some embodiments, default burn parameters may include hard-coded burn parameters that are not necessarily obtained from a database. 
     Regardless of the source of the burn parameters, in an operation  512 , aspects of geofeed content and/or geofeed content of the geofeed to be burned may be stored in a memory such as geofeed database  136 . The aspects of geofeed content and/or geofeed content that is stored may represent a burned geofeed. 
     In an operation  514 , a determination of whether the geofeed content includes one or more links such as URL to other content may be made. If the geofeed content includes one or more links, the one or more links may be parsed from the geofeed content and stored in an operation  516 . In an operation  518 , a determination of whether more geofeed content is to be stored may be made. If more geofeed content is to be stored, processing may return to operation  512 . If no more geofeed content is to be stored, in an operation  520 , processing may wait for the next request to burn a geofeed. 
     In some embodiments, a burned geofeed may be associated with a burn date, or a date in which the geofeed was burned. In this manner, the system and content consumers may be able to view when the geofeed was burned and/or obtain a burned geofeed based on the burn date. 
       FIG. 6  illustrates a process  600  of generating a geofeed snapshot, according to an aspect of the invention. In an operation  602 , a request to generate a snapshot may be received. The request may include a request to generate a snapshot for an existing geofeed or a request to create a geofeed and then generate a snapshot for the created geofeed. The request may originate from a user, an automated process (such as a nightly or other automated process), and/or other origin. 
     In an operation  604 , a determination of whether the geofeed exists for which a snapshot is to be generated may be made. If a geofeed for which the snapshot is to be generated already exists, a geofeed definition that specifies the geofeed may be obtained in an operation  606 . In an operation  608 , content may be aggregated from various content providers based on the geofeed definition and requests formatted specifically for individual ones of the content providers. 
     Returning to operation  604 , if a geofeed for which the snapshot is to be generated does not exist, a determination of whether the request includes a geo-location may be made in an operation  614 . If the request does not include a geo-location, an error may be returned in an operation  616 . If the request includes a geo-location in an operation  618 , content may be aggregated from various content providers based on requests that are formatted specifically for individual ones of the content providers and specify the geo-location. In some embodiments, the request may include one or more geofeed parameters that specify information to include and/or exclude from the aggregated content. For example, the geofeed parameters may be formatted and provided to the content providers who filter in and/or out content. The geofeed parameters may be used by process  600  to filter in and/or out content received from the content providers. 
     In an operation  610 , a current date and/or time may be determined. In an operation  612 , the aggregated content may be stored in a memory such as geofeed database  136  in association with the date and/or time. In some embodiments, process  600  may be iterated at a later time such as at regular intervals so that multiple snapshots of a geofeed is generated at different times. 
       FIG. 7  illustrates a process  700  of streaming a geofeed, according to an aspect of the invention. In an operation  702 , a request for a geofeed stream may be received. The request may include a request to stream an existing geofeed or a request to create a geofeed and then stream the created geofeed. The request may originate from a user, an automated process (such as a nightly or other automated process), and/or other origin. In some embodiments, the request may originate from a geofeed widget executing at a remote computer such as content consumer device  130 . The geofeed widget may be included within an interface so that the geofeed stream may be provided alongside or within the interface. For example, the geofeed widget may be inserted into a webpage where the geofeed stream may be embedded. Other examples such as a mobile application interface in which the geofeed widget is inserted may be used as well. In some instances, the geofeed widget may not be embedded with other content but rather be configured as a standalone application. 
     Regardless of the particular implementation of where or how the geofeed widget is implemented, in an operation  704 , a time since last refresh variable may be set to a particular value. The particular value may specify a time filter by which to obtain geofeed content to be streamed. For example, the geofeed stream may be real-time such that only recently available content is streamed. The particular value may be predefined and/or configurable. 
     In an operation  706 , geofeed content that is relevant to one or more geo-locations may be aggregated from various content providers based on requests formatted specifically for individual ones of the content providers and based on the time since last refresh. In some embodiments, all content from the content providers may be aggregated and later filtered based on the time since last refresh. In some embodiments, the requests to the content providers may include the time since last refresh such that only content that satisfies the time since last refresh value is provided by the content providers. In some embodiments, one provider may support the use of the time since last refresh value to filter content while another provider may not. In these embodiments, a combination of including the time since last refresh value in the request for providers that support the value and filtering after content is received for providers that do not support the value may be used. 
     In some embodiments, the geofeed stream request and/or a memory may include moderator settings for the geofeed stream. The moderator settings may filter in and/or out certain content that should/should not appear in the geofeed stream. For example, images may be excluded from the geofeed stream while text may be included into the geofeed stream. In some embodiments, one or more geofeed parameters may be used to filter in and/or out content for the geofeed stream. 
     In an operation  708 , the time since last refresh may be set to the current time. In an operation  710 , the aggregated content may be communicated. For example, the aggregated content when communicated represents the geofeed stream. In some embodiments, only newly available content is communicated to, for example, the geofeed widget. In some embodiments, an updated geofeed stream is generated and communicated to the geofeed widget. 
     In an operation  712 , a determination of whether to terminate the geofeed stream may be made. For example, the geofeed stream may be terminated in an operation  714  when process  700  is no longer in communication with the geofeed widget such as when a user navigates away from a webpage that includes the geofeed widget and/or an instruction to terminate the geofeed stream is received. 
     In an operation  716 , when the geofeed stream should not be terminated, process  700  may wait a defined interval of time. The defined interval of time specifies how often the geofeed stream should be updated (e.g., when content should be aggregated from the content providers). The interval of time may be predefined and/or configurable. After the interval of time has elapsed, process  700  may return to operation  706 , where geofeed content that is newly available since the last refresh may be obtained. 
       FIG. 8  illustrates a process  800  of curating geofeeds into collections, according to an aspect of the invention. In an operation  802 , a collection identifier for one or more geofeed content items may be received. For example, a user viewing a geofeed may tag a particular geofeed content item (e.g., individual social media content and/or other content) with a collection name or other identifier. A geofeed content item may be stored locally using a local identifier and/or may be obtained from a content provider using an external identifier provided by the content provider. 
     In an operation  804 , the one or more geofeed content items may be associated with the collection identifier. For example, the local identifier and/or the external identifier may be associated with the collection identifier. In an operation  806 , the association between the one or more geofeed content items and the collection identifier may be stored in a memory such as geofeed database  136 . 
     In an operation  808 , a request to view a collection of geofeed content identified by the collection identifier may be received. In an operation  810 , the one or more content items associated with the collection identifier may be determined. In an operation  812 , a determination of whether the one or more geofeed content items are stored locally may be made. In an operation  814 , the one or more geofeed content items may be obtained from the local memory. For example, a geofeed content item may be retrieved based on a local identifier. In an operation  816 , the one or more geofeed content items may be obtained from a content provider. For example, a geofeed content item may be obtained from the content provider based on a request to the content provider that includes an external identifier provided by the content provider when the content was originally provided. In an operation  818 , the one or more geofeed content items may be communicated via one or more communication channels. 
     Other embodiments, uses and advantages of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. The specification should be considered exemplary only, and the scope of the invention is accordingly intended to be limited only by the following claims.