Abstract:
Geo-augmented data feeds are filtered based on a selection of one or more of filters to create a plurality of filtered data streams. The filtered data streams are then sent to one or more user applications for presenting to a user. For example, a user might arrange to be alerted to a data stream that references a particular location.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit under 35 USC/303,836119(e) of the following U.S. provisional applications, the contents of which are herein incorporated by reference: 61/303,836, filed Feb. 12, 2010; and 61/303,843, filed Feb. 12, 2010, and __/______ filed Feb. 12, 2010. 
     
    
     TECHNICAL FIELD 
       [0002]    The present invention relates to methods and systems for real-time aggregation, geo-augmentation and filtering of data feeds. 
       BACKGROUND OF THE INVENTION 
       [0003]    The internet provides various methods by which communities of users can generate and share information, including blogs, social networking sites such as Twitter™, Facebook™, news-groups and discussion forums, etc. New methods and systems for facilitating social interaction and sharing of information amongst diverse communities of users are expected to emerge in the future. 
         [0004]    A portion of this information shared on these systems is relevant to various other parties. For example, users will often share information about places they have visited, or products that they have used. They will also share information about their experiences, including those involved in dealings with various organizations. This information is of interest to numerous parties. For example someone could publish a description (e.g. within a blog, or on a social networking site) of their visit to a particular location and their activities while there, which may be of interest to tourist agencies and merchants local to that place. Similarly, a comment about a company&#39;s product or service may be of interest both to that company and its competitors. 
       SUMMARY OF THE INVENTION 
       [0005]    An aspect of the present invention provides a process in which data feeds from a plurality of local sources are processed to derive metadata defining a respective geographical context of each data feed. 
         [0006]    An advantage of the first aspect of the present invention is that the metadata can be used to aggregate and filter the data feeds according to geographical context, thereby enabling users or interested parties to search for and locate information that is relevant to their particular geographical area of interest. 
         [0007]    Another aspect of the present invention provides a process in which geo-augmented data feeds are aggregated and distributed to one or more interested parties. Each data feed is geo-augmented with metadata defining at least a respective geographical context of the data feed. Geo-augmented data feeds having common geographical context are aggregated together to generate an aggregate data feed, which is distributed to one or more interested parties based on predetermined criteria. 
         [0008]    Another advantage of the second aspect of the present invention is that each interested party receives an aggregated data feed that is relevant to their particular geographical area of interest. 
         [0009]    A third aspect of the present invention provides a process in which geo-augmented data feeds are aggregated and distributed to one or more users or interested parties. Each data feed is geo-augmented with metadata defining at least a respective geographical context of the data feed. Geo-augmented data feeds having common geographical context are aggregated together to generate an aggregate data feed, which is processed to generate alerts and notifications that are distributed to one or more users or interested parties based on predetermined criteria. 
         [0010]    An advantage of the third aspect of the present invention is that each interested party receives real-time alerts and notifications that are relevant to their particular geographical area of interest. 
         [0011]    A fourth aspect of the present invention parses the unstructured text of a plurality of geo-augmented data feeds to derive filtered data feed streams, each of which corresponds to a set of criteria. 
         [0012]    An advantage of the fourth aspect of the present invention is to extract data feed targetting specific user needs and limit the number of data feeds only to those that are relevant to the user or the type of business. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    Further features and advantages of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which: 
           [0014]      FIG. 1  represents an example of the system architecture. 
           [0015]      FIG. 2  represents an example of the architecture of the user application. 
           [0016]      FIG. 3  provides an example of a user application interface displaying the filtered data streams 
       
    
    
       [0017]    It will be noted that throughout the appended drawings, like features are identified by like reference numerals. 
       DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0018]    For the purposes of the present invention, a data feed may be broadly considered to be any user-originated information. Typical data feeds include, but are not limited to: comments posted to a discussion forum, comments posted to a social networking site, and blog postings. Any desired data sources may be monitored to harvest the source data feeds. Typical data sources that are contemplated include Real Simple Syndication (RSS) and Atom feeds, social networking sites and discussion forums. Other data sources may be included, as desired. Some data feed are geographically stamped, others are not. The term user and interested party are interchangeable. Referring to  FIG. 1 , data feeds can be geostamped  100  if they already contain geographical information. Other data feeds  102  may not contain geographical information, there are referred herein as non-geostamped datafeed. 
         [0019]    In a first set of embodiments of the present invention, data feeds from a plurality of local sources are collected, stored, indexed and then processed to derive metadata defining a geographical context of each data feed. The geographical metadata is linked to, and stored with its source data feed, to define a geographically augmented data feed. 
         [0020]    Each non-geostamped data feed  102  is processed  103  to derive geographical metadata for that feed. This metadata may include specific place names and address information. For example, an RSS feed mentioning a specific restaurant in Montreal, Quebec, may be processed to derive geographical metadata which includes the name of the restaurant and its address (e.g. one or more of its street address, e-mail address and the URL of its web-site). The geographical metadata may also include an aggregation of social activities for that restaurant (e.g. comments, ratings, votes and other similar actions). 
         [0021]    Various text recognition methods may be used to identify names of specific places mentioned in any given item of information received from a data source. In some cases, a standard taxonomy may be used to identify place names. In some cases, this approach may by enhanced with predefined rules which may be dynamically loaded depending on the data source, and geographic and language parameters. This process can be recursive if needed to add extra levels of details. Once specific place names have been identified, other information about that specific place (e.g. address and aggregated social activities) can be obtained using known methods, for example by querying one or more databases. 
         [0022]    The process generates a resultant data feed that contains the original source information and the encoded geographic metadata, which may, for example, be supplied to various interested parties. The geo-stamped data feed are stored and indexed in a storage media  101 . 
         [0023]    In a second set of embodiments of the present invention, a plurality of geo-augmented data feeds are collected and processed to derive aggregated data feeds, each of which is relevant to a given geographical context. 
         [0024]    Preferably, metadata defining the geographical context  100  follows a predetermined taxonomy and format. This arrangement is advantageous in that it enables data feeds from multiple independent data sources, but having a common geographical context, to be identified and combined to generate an aggregated data feed. 
         [0025]    Various methods may be used to combine (or aggregate) geo-augmented data feeds having a common geographical context. In some cases, different aggregation algorithms may be used, depending on the type of information contained in each data feed. For example, many social sites provide a tool by which a user can provide a rating, which may be represented as a numerical value. This type of information can be harvested from a plurality of geo-augmented data feeds having a common geographical context, and combined (e.g. by computing an average rating, or other statistical parameters) to provide an aggregate user rating for that geographical context. Many social sites also allow to post comments. Again, this type of information can be harvested from a plurality of geo-augmented data feeds having a common geographical context, and combined (e.g. by collating the multiple comments into a single document) to provide an aggregate feed of user comments for that geographical context. 
         [0026]    In some cases, respective time-stamps associated with each geo-augmented data feed can be used to correlate data feeds in time. This enables the generation of an aggregate data feed which provides a “snap-shot” of user ratings or comments, for example, at a particular time or within a particular time window. For example, an aggregated data feed may be generated which provides a “snap-shot” of ratings or comments immediately following a given event. In another example, time-stamps may be used to generate an aggregated data feed which tracks how user ratings and/or comments change over time. 
         [0027]    In some embodiments, a service provider may receive and process multiple geo-augmented data feeds, and generate aggregated data feeds of various types for distribution to its subscribers. For example, a subscriber may establish service agreement which sets out the type(s) of aggregated data feeds (e.g. ratings, comments etc.), the geographical context, and other parameters defining the subscriber&#39;s area of interest. Based on the information contained in the service agreement, the service provider can filter and combine geo-augmented data feeds to generate one or more aggregated data feeds or filtered data feeds  108  for distribution to the subscriber. 
         [0028]    In a third set of embodiments of the present invention, a plurality of geo-augmented data feeds are collected and processed to derive aggregated data feeds or filtered data feeds  108 , each of which is relevant to a given geographical context. 
         [0029]    In some cases, one or more aggregate data feeds may be generated and distributed to interested parties via user application  109 , for example in accordance with a service agreement between a service provider and a subscriber. 
         [0030]    In some cases, an aggregate data feed  108  may contain information that is time-sensitive. For example, an aggregate data feed may contain information of aggregated ratings at a particular time. 
         [0031]    In embodiments of the present invention, an aggregate data feed is processed to identify whether or not a predetermined criterion is satisfied. When this event occurs, an alert is generated and sent to an interested party. 
         [0032]    In some embodiments, a user or interested party may establish service agreement with a service provider, which includes information defining an alert or notification to be sent to sent to the interested party, and the criteria that must be satisfied to trigger the sending of that notification. For example, the interested party may wish to receive a notification whenever a specific place, competitor name or event is mentioned in an aggregate data feed. Alternatively, the interested party may wish to receive a notification when an aggregated rating about a specific geographical context changes. Numerous other criteria  107 , and combinations of criteria or filters  104  can be used to trigger alerts and notifications, as desired, without departing from the intended scope of the present invention. 
         [0033]    In a fourth set of embodiments of the present invention, a plurality of geo-augmented data feeds are collected and the unstructured text is filtered to derive filtered data feed streams, each of which corresponds to a set of filter criterion. 
         [0034]    Referring again to  FIG. 1 , a filter engine  105  is used to filter the geo-stamped data feeds to produce a plurality of filtered data feed streams  108 . The filter engine parses through unstructured text to find relevant information to direct the feed to one or more appropriate filtered data feed stream  108 . The filtered data feed streams  108  are directed to the appropriate user applications  109  based on their requirements. Alternatively, the user application can subscribe to receive one or more filtered data feed stream  108 . The filter engine uses one or more filters  104 . The filter engine could include a language detector  111  to detect the language of the data feed. In this embodiment, a different set of filters  104  is defined for each language supported by the filter engine  105 . Filters are based on one or more filter criterions  107 . Criteria  107  are logical equations using specific keywords to extract specific information from the unstructured text such as, for example, merchant category (e.g. “restaurant”, “florist”), a geographical location (e.g. “Boston”), a type of feed (e.g. opportunity versus mention), synonyms or equivalents (e.g. “Bistro”=“Restaurant”), common names, action verbs (e.g. “going to”, “moving”), qualifiers, life events (e.g. “marriage”, “university”), shortcuts, acronyms and other specific text. Filters  104  combine one or more filter criteria in sequence. The filters  104  and filter criterion  107  are defined manually or can be created/edited using an automated filter editor  106 . A simple Boolean logic example of filter criterion  107  would be:
       (“I&#39;m hungry” OR “I&#39;m starv*” OR “I&#39;m famished” OR “empty stomach” OR “I don&#39;t want to cook” OR “I can&#39;t cook” OR “I have a date” OR “going to Boston” OR “headed to Boston” OR “restaurant is closed”) OR ((restaurant* OR cafe* OR pub? OR diner* OR bistro* OR eatery OR sushi* OR pizz* OR lunch* OR buffet* OR cater*)       
 
         [0036]    It should be noted that any type of matching criterion could also be used. An example of filter combining the above criterion with other criteria could be:
       (“I&#39;m hungry” OR “I&#39;m starv*” OR “I&#39;m famished” OR “empty stomach” OR “I don&#39;t want to cook” OR “I can&#39;t cook” OR “I have a date” OR “going to Boston” OR “headed to Boston” OR “restaurant is closed”) OR ((restaurant* OR cafe* OR pub? OR diner* OR bistro* OR eatery OR sushi* OR pizz* OR lunch* OR buffet* OR cater*) AND (suggest* OR recommend* OR advice OR propos* OR refer* OR looking OR craving)) AND (boston OR user_city:Boston)       
 
         [0038]    The filters are dependent on the context of what the user is looking for. For example the set of criteria combined to extract data feed relevant to a restaurant owner is different than the set of criteria combined to extract data feed relevant to a florist or a moving company. The criteria are developed and enhanced to take into account what the unstructured text could contain that is relevant to a user in a given market, including synonymous terms, abbreviation, common expressions etc. Another example, a criteria could also include one or more swearing or infuriating words and the corresponding filter will exclude the feeds meeting this criteria. 
         [0039]    The filter engine  105  parses the unstructured text of a data feed in near real-time to decide if it meets one or more filters and directs the data feed to the relevant filtered data stream(s)  108 . In case a data feed does not meet any filters, it can be optionally sent to a rejected data feed stream  111  for analysis. The automated or manual learning process  110  can analyse the rejected streams to evaluate whether there are missed opportunities and if necessary enhance the relevant filters  104  and criteria  107 . The filtered data stream is a sequence of notifications that matches a given filter. 
         [0040]    In some embodiments, a notification may include information identifying the event that triggered generation of the notification. This information may include a link to the aggregate data feed which triggered the notification. In some cases this information may include links to the geo-augmented data feeds used to generate that aggregate data feed. 
         [0041]    In some embodiments, the user application  109  may provide information about recommended courses of action for responding to the notification (e.g. reply, send rebate coupon, put in calendar for later action). In some cases, this information may be based on previous actions of the recipient of the notification. In other cases, this information may be obtained from a database of recommended actions, which may be developed by another party. For example, a service provider or the user application  109  may generate and maintain a database of recommendations for responding to each one of a set of notification types (e.g. opportunities, mentions). When a notification of a given type is generated and sent to an interested party, the database is queried and the applicable information (or alternatively a link to the applicable information) is inserted into the notification. The reaction to the notification is logged into the reaction management process of the user application  109 . 
         [0042]    Some user applications  109  may also provide reaction feedback (for example the number of feeds used, feeds that are judged irrelevant etc) to the automated or manual learning engine  110  that will be used to augment or refine or change the filters  104  or criteria  107 . 
         [0043]    The user application receive or subscribe to one or more filtered data feed streams to receive the relevant notifications. A set of user customized filters  205  can optionally be configured to include additional logic to further narrow the filtered data stream (e.g. include “shawarma” only) and reduce the number of notifications to a customized stream of notifications  207 . The notifications from the filtered data stream can be displayed on a web portal  201 , or using a push application  202  where the filter engine pushes the information to the application on a regular basis or using a pull application  203  that can fetch the information of the data streams periodically. Another possible implementation consists of providing a text report  204  of all the notifications received during a period. The applications can interface with a reaction management system  206  to extract feedback on the data feed stream to refine the customized users filters  205  or to input to the automated or manual learning system  110 . 
         [0044]    The automated or manual learning system  110  can be used to refine the list of criteria and the filters. The system uses input from the reaction management process  206  and the rejected data feed stream  111  to update and enhance the criteria  107  and filters  104 . 
         [0045]      FIG. 3  provides an example screen shot of a simple user application designed to display the notifications from the filtered data feed streams categorized between opportunities and mentions. One part of the screen  300  is used to define which filtered data feed stream to use and to set up customized filters  104 . Another part of the screen displays the notifications  304  from the filtered data feed stream that represents opportunities for the user in order of arrival. The third part  302  shows the data feed from filtered data that are actual mentions of the user&#39;s company name, for reputation management purpose. The last section of the screen  303  logs the actions taken on one or more data feeds. 
         [0046]    The embodiment(s) of the invention described above is(are) intended to be exemplary only. The scope of the invention is therefore intended to be limited solely by the scope of the appended claims.