Filtering information at a data network based on filter rules associated with consumer processing devices

Information that is being communicated from information sources, such as servers, through a data network to consumer processing devices is filtered by the data network. Filter rules are associated with the consumer processing devices. Information is received at the data network from at least one of the information sources that is addressed to one of the consumer processing devices. The information is filtered at the data network based on the filter rules associated with the addressed consumer processing device to generate filtered information. The filtered information is then communicated from the data network to the addressed consumer processing device.

FIELD OF THE INVENTION

The present invention generally relates to the field of data networks, and more particularly to filtering information communicated from information sources to consumer devices through data networks.

BACKGROUND OF THE INVENTION

The Internet has become a worldwide packet switched network for communicating nearly all forms of information, including text, graphics, video, audio, and animations. The Internet includes a World Wide Web (WWW) of client-server based facilities on which web pages and files can reside on information sources, such as servers, and users can interface with the information sources via consumer processing devices configured for web browsing.

To obtain information (such as a HTML file) from a web site, a web browser first sends a request to an information server for that web site. The request can include an internet protocol (IP) address assigned to the consumer processing device and a uniform resource locator (URL) that identifies the information server on which the requested information resides. Upon receiving the request, the information server retrieves the requested information and sends it to the browser associated with the IP address. Upon receiving the information, the browser can display the information as a web page to a user. The information may contain user selectable links to other information at the information server, which can be selected to cause the browser to request corresponding information from the information server.

While technological improvements are allowing users to download more information in less time, enhancements to the information content of pages (such as real time audio and video) may increase the amount of information to be downloaded and, hence, may increase wait time. Much of the information content of a downloaded web page can be undesirable to a user. For example, it is now commonplace for web pages to include advertisements that include large information files, such as video, audio, and/or animations to capture a user's attention. Even web page content, which is not advertisements, may contain large portions that may not be pertinent or desirable to a particular user. Consequently, users sometimes await the download of significant amounts of undesired information in order to obtain desired information. Once downloaded, the resulting page that is displayed to a user can contain animations, video, and audio that may be superfluous, distracting, and/or offensive to the user. Associated delay and annoyance can be compounded as a user downloads further pages via the selectable links.

SUMMARY OF THE INVENTION

Some embodiments of the present invention provide methods of filtering information that is communicated from information sources through a data network to consumer processing devices. Filter rules are associated with the consumer processing devices. Information is received at the data network from at least one of the information sources, and is addressed or otherwise communicated to one of the consumer processing devices, and may for instance be fully or partially determined based on user preference input. The information is filtered at the data network based on the filter rules associated with the addressed consumer processing device to generate filtered information. The filtered information is communicated from the data network to the addressed consumer processing device. The information sources may be, for example, information servers that are communicatively connected to the data network.

Accordingly, information from information sources may be filtered by the data network before it is communicated to consumer processing devices. Such filtering by the data network may lower the amount of information that is communicated to the consumer processing devices (i.e., lower communication bandwidth utilization) and may avoid undesirable information from being communicated to users.

In some further embodiments of the present invention, a user may define the filter rules for what information is allowable for communication to a consumer processing device that is associated with the user. In addition or instead of such manual filter rule definition, the filter rules may be generated by estimating in whole or in part a user's preferences of information content, such as by monitoring metrics associated with information that is communicated to the user. The monitored metrics can include what information content was selected by the user for downloading, what information content was not selected by the user for downloading, and/or how much time information content may be viewed by the user.

In some other further embodiments of the present invention, the data network filters the information by classifying portions of the information among a plurality of information types, and by selectively modifying the information to generate at least a portion the filtered information based on the classification of the portions and the filter rules associated with the addressed consumer processing device. The information may be classified as containing at least text, graphics, video, audio, animation, and/or a combination thereof. The information may be modified to generate at least a portion of the filtered information by replacing a classified portion of the information with a representative marker. The marker may be indicative of whether the replaced portion of the information contains at least text, graphics, video, audio, animation, and/or a combination thereof, and/or it may be indicative of the size and/or play time of the replaced portion of the information.

When portion(s) of the information are replaced with a marker, the replaced portion(s) may be stored at the data network. The marker may include a user selectable link to the stored portion(s) at the data network. Accordingly, a user may select the link to cause the data network to download the selected portion from the data network to the user.

The information may be filtered by the data network by identifying a repetition of content and/or a randomness of content of the information, and filtering the information based on the identified repetition and/or randomness of content of the information. The data network may filter the information based on at least one keyword that is defined by the filter rules that are associated with the addressed consumer processing device.

Some other embodiments of the present invention provide data networks that include an information filter that is configured to associate filter rules with consumer processing devices, configured to receive information from at least one information server that is addressed to at least one of the consumer processing devices, configured to filter the information based on the filter rules associated with the addressed consumer processing device to generate filtered information, and configured to communicate the filtered information to the addressed consumer processing device.

Some other embodiments of the present invention provide a computer program product for filtering information communicated from information sources through a data network to consumer processing devices. The computer program product includes computer program code embodied in a computer-readable storage medium. The computer program code is configured to associate filter rules with the consumer processing devices, configured to receive information from at least one of the information sources that is addressed to one of the consumer processing devices, configured to filter the information at the data network based on the filter rules associated with the addressed consumer processing device to generate filtered information, and configured to communicate the filtered information from the data network. Some other embodiments may provide some or all of the filtering functions at the information source, or at the consumer processing device, in addition to or instead of providing some or all of the filtering functions in/at the network.

DETAILED DESCRIPTION OF THE INVENTION

The present invention is described below with reference to block diagrams and/or operational illustrations of methods, data networks, and computer program products according to embodiments of the invention. It is to be understood that the functions/acts noted in the blocks may occur out of the order noted in the operational illustrations. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.

FIG. 1is a block diagram of a communication system100and methods that includes a data network110, a plurality of consumer processing devices120and140, and a plurality of information sources150and160. The information sources150and/or160may be, for example, information servers (e.g., application data servers) that are communicatively connected to the data network110. The data network110can route information between the consumer processing devices120and140and the information sources150and160, and may route the information to various other networks, devices, and/or information sources. The data network110may, for example, include a portion of the web112of data networks that forms the World Wide Web, and/or the Internet and/or similar information & communication networks.

As used herein, the term “consumer processing device” includes any device that is configured to receive information from an information source through a data network, and includes, but is not limited to, a computer or a mobile terminal, such as personal data assistant and/or cellular telephone, with a network interface. The network interface may be, for example, a cable modem, a digital subscriber line modem, a public switched telephone network modem, and/or a wireless network interface, such as a wireless local area network interface and/or a wireless wide area network interface. A consumer processing device that communicates through a wireless interface with the data network110may be configured to communicate via a wireless protocol such as, for example, a cellular protocol (e.g., General Packet Radio System (GPRS), Enhanced Data Rates for Global Evolution (EDGE), Global System for Mobile Communications (GSM), code division multiple access (CDMA), wideband-CDMA, CDMA2000, and/or Universal Mobile Telecommunications System (UMTS)), a wireless local area network protocol (e.g., IEEE 802.11), a Bluetooth protocol, another RF communication protocol, the Internet Protocol (EP) suite, and/or an optical communication protocol. As used herein, “consumer” refers to any end-user, without limitation as to whether they are a consumer of goods.

As illustrated inFIG. 1, the exemplary consumer processing device120can include a controller122, a memory124, a network interface126, a display128, and a keyboard130and/or other user interface. The memory124is representative of the overall hierarchy of memory devices containing an operating system132, a user interface134, and a network browser136(e.g., Internet browser) that provide operations that can be executed to configure the controller122to provide the functionality of the consumer processing device120. The network browser136configures the controller122to interface with the information sources150and160via the data network110, and to display pages (i.e., on the display128) based on information that is downloaded therefrom. The displayed pages can include user selectable links which a user can select via, for example, the keyboard130, to download information. The consumer processing device140may be configured the same as the consumer processing device120.

According to some embodiments of the present invention, the data network110includes an information filter114that filters information communicated between the information sources150and160and the consumer processing devices120and140. The information filter114is configured to associate rules with the consumer processing devices120and140, and to receive information from the information sources150and160that is addressed to one or both of the consumer processing devices120and140via the web112. The information may, for example, have been requested by the consumer processing devices120and140(i.e., a web page addressed via the network browser136) and/or it may be pushed by the information sources150and160to the consumer processing devices120and140without a prior request. The information filter114can also filter the information based on the filter rules associated with the addressed consumer processing device120and/or140to generate filtered information, and to communicate the filtered information through the data network110to the addressed consumer processing devices120and/or140.

Accordingly, information from the information sources150and160can be filtered by the data network110before communication to the consumer processing devices120and/or140. Such filtering by the data network110may lower the amount of information that is communicated to the consumer processing devices120and140(i.e., lower communication bandwidth utilization) and may avoid undesirable and/or superfluous information from being communicated to a user.

AlthoughFIG. 1illustrates an exemplary communication system100, it will be understood that the present invention is not limited to such a configuration, but is intended instead to encompass any configuration capable of carrying out the operations described herein. For example, although only two consumer processing devices120and140and two information sources150and160have been shown for illustration purposes, it will be understood that the data network110would generally route information among thousands of consumer processing devices and numerous information sources.

Referring now toFIG. 2, the information filter114may include a controller200, a memory210, and a network interface230in accordance with various embodiments of the present invention. The memory210is representative of the overall hierarchy of memory devices and may contain an operating system212, a database214of filter rules and associated user information, a filter rule selection module216, a content analysis module218, an information buffer module220, a filter module222, a replaced information storage module224, and an output module226, which provide operations that can be executed to configure the controller200to provide the functionality of the information filter114. The network interface230is configured to monitor, and may intercept, information that is being communicated from the information sources150and160to the consumer processing devices120and140. Although only a single controller200, memory210, and network interface230have been shown for purposes of illustration, it will be understood that embodiments of the present invention encompass any configuration of an information filter capable of carrying out the operations described herein.

The database214associates one or more rules with users or consumer processing devices. The users may be identified by an address assigned to the network interface126of a consumer processing device. The address may, for example, uniquely identify a network modem (e.g., cable modem and/or digital subscriber line modem), wireless router (e.g., WLAN router), Network Interface Card (NIC) in a PC or laptop or other computing device, and/or cellular equipment that serve as the network interface126. Users may need to subscribe on a fee basis to be added to the database214and obtain the filter services of the information filter114.

Users and/or an operators associated with the information filter114may define the rules in the database214that are used to filter information communicated to their consumer processing device(s). Such rule definition may be accomplished on-line by logging into a website that is associated with the data network110. The rules may define information content that is to be filtered, including, but not limited to: keywords in text; types of information content such as text, graphics, video, audio, animation, and/or a combination thereof; and/or size (e.g., kilobytes or Megabytes) or length of play (e.g., play time of audio, video, and/or animations) associated with portions of information. The rules may be configured to estimate a user's preferences of information content. For example, the rules can cause the information filter114to monitor metrics associated with information that is communicated to a user, and to adaptively filter information addressed to the user based on the monitored metrics, as will be described in further detail below.

The buffer module220may be used to temporarily buffer information that is received by the network interface230, and which may be addressed to a consumer processing device that may be identified in the database214. The filter rule selection module216can query the database214to select what rules, if any, are to be applied to the buffered information. The content analysis module218can analyze the buffered information to generate analysis data, which can be used by the filter module222to filter the buffered information and generate filtered information. The filtered information can then be communicated to the addressed consumer processing device by the output module226.

The selected rules can define that information is to be filtered based on the content of the information in total, or portions thereof. For example, based on a selected rule, the content analysis module218can classify portions of the information based on their content type, including, but not limited to, text, graphics, video, audio, animation, and/or a combination thereof, and can generate analysis data based thereon. The information may be classified by inserting labels into the information that identify the type and location of portions of the information. For example, information that includes a text portion, an audio portion, and a graphic portion may have each portion separately labeled so as to identify their content type and location. In further examples, “portions” can be sub-portions, or sub-divisions, of larger “classified” portions, where the sub-portions may also be labeled so that they can be processed/filtered separately. For instance, text portions may be sub-divided into page, paragraph, and sentence portions, etc. Video portions may be sub-divided into scene and frame portions, etc. Audio portions may be sub-divided into phrase, sentence, and paragraph portions, etc. Graphic portions may be sub-divided into smaller component graphic portions. The capability to separately process & filter these smaller portions may provide flexibility, precision, and useful filtering ability for the user. Such classification may, for example, be based on XML tags or other tags associated with the information.

The content analysis module218may search the information for one or more keywords based on a selected rule, and/or may determine the size and/or length of play of the information and/or classified portions thereof, and may generate analysis data based thereon. The content analysis module218may search the information to measure an amount of repetition and/or randomness of content of the information and generate analysis data based thereon. The filter module222can then filter the buffered information based on the analysis data and based on the selected rules to generate filtered information, which can be communicated to the addressed consumer processing device via the output module226and network interface230.

The filter module222may filter portions of the buffered information by, for example, modifying, removing, or replacing the portions with a marker to generate the filtered information. For example, when the content analysis module218determines that the information contains a keyword or threshold number of keywords, a threshold amount of repetition, and/or a threshold amount of randomness, the filter module222may replace the identified portion with a marker that can be indicative of what was removed. A high degree of content randomness in a portion of information can indicate that it is encrypted, and, thereby, that it may contain an undesired executable program such as a virus or a program that covertly gathers information about a user (e.g., spyware). Accordingly, the information may be filtered to modify, remove, and/or replace the identified portion with a marker.

When portions of information are replaced with a marker, the replaced information can be retained at the information filter114by the storage module224. The marker can then include a user selectable link that is logically associated with (i.e., addressed to) the information portion retained at the information filter114. When the filtered information containing the marker is displayed to a user, the user may select the link to cause the replaced portion of information to be downloaded from the information filter114. In particular, a user may select the link to cause the network browser136to fetch the information from the information filter114. By at least temporarily retaining the removed information at the information filter114, it may be downloaded more quickly to a user, and be more responsive to a user's request, than may otherwise be provided if it were to be fetched from an information source directly. Moreover, retaining the replaced information at the information filter114may ensure that it can be later retrieved by a user, for at least a limited time, even though the information may have been deleted, modified, moved, or otherwise rendered irretrievable from the information source.

The content analysis module218may evaluate words within textual portions of information to determine what language they may represent and/or to determine a level of complexity, such as technical complexity, and to generate the analysis data used by the filter module222. For information portions that contain numbers, the content analysis module218may evaluate the numbers to identify predefined numbers or patterns of numbers, to identify number formats, such as currency notations, scientific notations, and/or unit notations (e.g., metric), and/or to identify a proportional amount of numbers relative to words. For audio portions of the information, it may detect keywords, phrases, sounds, and/or language and generate the analysis data based thereon. If multiple languages are present, it may determine relative amounts of each language. It may also measure the size of portions of the information and/or may measure an amount of time that audio, video, and/or animations may take to play, and generate the analysis data based thereon.

The content analysis module218may also be used to estimate a user's preferences for content in downloaded information. For example, the content analysis module218may monitor metrics associated with information that is communicated to a user. The monitored metrics can be indicative of what information content was selected by a user for further downloading, indicative of what information content was not selected by a user for further downloading, and/or indicative of how much time information content may have been viewed by a user, and in what context or contexts. Context can include the web sites being accessed, the depth of web site access, associated keywords matched in the content portions, the classification or classifications and/or mixture of classifications of the information portions, time of day, the information service or services being used, and the degree to which filtered information of a particular type has been retrieved by the user in the past or recent past. For example, if a user closes animations within a web page, or doesn't select video or audio that is available from a web page for playing, the content analysis module218can determine that that user prefers to avoid such content in downloaded information. The filter module222may then remove such content, or replace it with a marker, to generate filtered information that is downloaded to the user. In another example, a user's selections of links in a web page may be monitored, and analysis data may be generated based on characteristics associated with the selected links, such as the address of the information source and/or content of the selected web page. Information from certain information sources, certain web pages, and/or having certain content may then be filtered differently (including being downloaded unchanged) compared to information from other sources, pages, or having other content. The analysis data generated by the content analysis module218can thereby be used to estimate at least part of a user's preferences for content in downloaded information.

The content analysis module218may include a plurality of modules that can analyze the information in parallel of each other. The filter module222may then combine the analysis data from each of the modules, such as by a weighted summation thereof, compare the combined data to a threshold, and make a decision relative to filtering of the information based on the comparison. For example, one content analysis module may search the information for keywords while another one of the content analysis modules is classifying portions of the information. Such parallel processing of the information may reduce delay in communication of filtered information to a user.

For purposes of illustration only, exemplary rules that may be sequentially applied to filter information based on the analysis data from the content analysis module218are shown below:1. Delete entire text if text size exceeds 2000 words and the text is classified as an on-line magazine article;2. Replace all repeated words with “&R{first two letters of repeated words}&R”;3. Delete entire text if text size exceeds 1500 words and the text is classified as an on-line new article or web page;4. Delete entire text if text size is less than 25 words;5. Retain entire text if the represented language is English or French, otherwise delete entire text;6. Delete entire text if grade-level (complexity) exceeds 12 or grade-level is less than 3;7. Retain entire text if contains keyword “stock market boom” irrespective of subsequent rules (ignore subsequent rules if true);8. Delete entire text if contains keyword “politics” or “soccer”;9. Replace paragraph with “&C9&” if paragraph grade-level exceeds 9;10. Replace paragraph with “&N20&” if analysis data for paragraph exceeds 20; and11. Retain entire text if analysis data of preferred keywords present exceeds 4 and analysis data for randomness search is less than 35 on a scale of 0-100, otherwise delete entire text.
A user may be allowed to selectively override and/or modify the filter rules, and such changes may expire after a user defined time period.

Reference is now made toFIG. 3which illustrates a web page300that may be displayed on the consumer processing device120based on information from the information source150, and which has not been modified by the information filter114. The web page300is formed by downloaded information that generate the illustrated “TEXT”302, “GRAPHIC 1”304, “GRAPHIC 2”306, “ANIMATION”308, and “VIDEO”310portions of the web page300. Although not shown, the web page300also has embedded audio. The illustrated web page300may correspond to information that is downloaded to a user who has not registered for filtering services.

Referring now toFIG. 4, a web page400is illustrated that may be based on the same information from the information source as was communicated forFIG. 3, but which has been filtered by the information filter114and then downloaded to generate the web page400. The portions of the source information that corresponds to “TEXT”300and “GRAPHIC 1”302were not modified. However, the portion of the source information that corresponds to “GRAPHIC 2”306, “ANIMATION”308, and “VIDEO”310were modified by replacing those portions (e.g., replacing a corresponding Java script and/or data) with the corresponding markers406,408, and410shown inFIG. 4. Moreover, the embedded audio portion of the information has been replaced with the marker412.

As shown inFIG. 4, the marker406includes an indication that an advertisement graphic was blocked, and provides an indication of the size of the blocked graphic (i.e., 500 KBytes). Similarly, marker408provides an indication that an animation was blocked, marker410provides an indication that video was blocked and an indication of the expected play time of the video (i.e., 1 minute), and marker412provides an indication that audio was blocked and an indication of the expected play time of the audio and size of the audio portion (i.e., 2 minutes and 1 MByte). One or more of the markers406,408,410, and412may include user selectable link(s) to the portions of the information that were replaced (“blocked”) by the information filter114. A user may select the link(s) to cause the information filter114to download the corresponding portion(s) of the replaced information, which may be retained at the information filter114. For example, when a user selects marker412, the network browser136may communicate an address or other associated identifier, sufficiently unique to refer specifically to the replaced information, from the marker412to the information filter114via the data network110. The information filter114may then use the communicated address or identifier to retrieve the information portion from its local memory and download it to the network browser136.

Referring now toFIG. 5, a flow chart is shown that illustrates operations for filtering information communicated from information sources through a data network to consumer processing devices according to some embodiments of the present invention. The operations may be carried out by the exemplary information filter114illustrated inFIG. 1. At Block500, filter rules are associated with the consumer processing devices. At Block510, information is received at the data network from at least one of the information sources that is addressed to one of the consumer processing devices. At Block520, the information is filtered at the data network based on the filter rules associated with the addressed consumer processing device to generate filtered information. At Block530, the filtered information is communicated from the data network to the addressed consumer processing device.