Computing devices, such as personal computers, tablet computers, mobile phones, or other devices, often request content from other computing devices over a network. In a common application, the computing device operated by a requesting user is referred to as the client, and the computing device or system operated by the content provider that responds to the request is the server. A client and server may communicate over an intranet, the Internet, or any other communication network.
Clients receive and process content (e.g., web pages) from content servers. In many cases, the requested content changes over a period of time, or from request to request. Changes at the content server may not be reflected in copies of content previously received by clients. Clients may receive the changes by again requesting and receiving the content from the content server.
Throughout the drawings, reference numbers may be re-used to indicate correspondence between referenced elements. The drawings are provided to illustrate example embodiments described herein and are not intended to limit the scope of the disclosure.
The present disclosure is directed to detecting meaningful updates to network accessible content, including but not limited to web pages. Specifically, the disclosure relates to automatically determining which portion or portions of a content page, document, or other unit of content are important, interesting, or meaningful. The determination can be based on a previously defined content profile, on an analysis of user interactions with the content, on algorithms and automated content analysis techniques, or some combination thereof. For example, user zooming and clicking behaviors may be tracked, and patterns may be detected in user interaction data received from a number of different users. The patterns may indicate which portion or portions are meaningful, such as news headlines, and which are not, such as advertisements. Notifications may be transmitted when changes occur to such meaningful portions.
Additional aspects of the disclosure relate to monitoring the content and determining whether and to what extent the content of the meaningful portion(s) has changed. For example, minor changes such as typo corrections or formatting changes may not be important or meaningful, while substantive changes such as the addition of new content or the modification of more than a threshold amount of previously accessed content may be meaningful.
Further aspects of the disclosure relate to notifying users of detected meaningful content updates. Notifications can include current versions of the content, or may be limited to only the updated portions of the content. The updated content may be displayed to the user on a client device, and visual treatments, such as flashing, highlighting, outlining, redlining, etc. may be applied to the updated portions to draw the user's attention to the presence and substance of the updates. In some cases, a new tab may be automatically opened in a tab-based browser interface. The new tab may contain the content page for which a meaningful update has been detected. The new tab (or an existing tab which displays a page that has changed) may blink or be colored differently to draw the user's attention to it. Updates made to the non-meaningful portions of a page, even if significant in quantity, preferably do not give rise to transmissions of update notifications; thus, users are not burdened with notifications regarding changes of little importance.
The disclosed system may also be capable of providing personalized update notifications to a user based on the user's explicit indication—and/or an automated assessment—of what portion(s) of a content page are important (or unimportant) to the user. For example, the system may include a browser component that enables the user to explicitly select a portion of a content page (e.g., by drawing a border around it) and to ask to receive notifications of changes to that portion. (The user may also have the option to designate a particular portion as unimportant.) As another example, the system may analyze a particular user's interaction with a content page to determine which portion(s) are important to that user, and may then use this information to send personalized update notifications to this user.
Although aspects of the embodiments described in the disclosure will focus, for the purpose of illustration, on relationships and interactions between client devices and content providers through an intermediary system, one skilled in the art will appreciate that the techniques disclosed herein may be applied to any number of hardware or software processes or applications. Further, although various aspects of the disclosure will be described with regard to illustrative examples and embodiments, one skilled in the art will appreciate that the disclosed embodiments and examples should not be construed as limiting. Various aspects of the disclosure will now be described with regard to certain examples and embodiments, which are intended to illustrate but not limit the disclosure.
Content Delivery Environment
A content delivery environment 100 can include an intermediary system 102, any number of client devices 104a-104n, and any number of content servers 106a-106n. The various systems may communicate with each other via a communication network 110. The network 110 may be a publicly accessible network of linked networks, possibly operated by various distinct parties, such as the Internet. In other embodiments, the network 110 may include a private network, personal area network, local area network, wide area network, cable network, satellite network, cellular telephone network, etc. or combination thereof, each with access to and/or from the Internet.
The intermediary system 102 can be any computing system that serves as an intermediary between a client device 102 and content servers 106. For example, the intermediary system 102 can be an intelligent proxy server, a system operated by an internet service provider (ISP), or some other device or group of devices that retrieve content on behalf of client devices 104. Illustratively, the intermediary system 102 of
The intermediary system 102 may include multiple computing devices, such as computer servers, logically or physically grouped together. The components of the intermediary system 102 can each be implemented as hardware, such as a server computing device, or as a combination of hardware and software. In addition, the components of the intermediary system 102 can be combined on one server computing device or separated individually or into groups on several server computing devices. In some embodiments, the intermediary system 102 can include multiple instances of a single component, etc.
The client devices 104a-104n can correspond to a wide variety of computing devices, including personal computing devices, laptop computing devices, hand held computing devices, terminal computing devices, mobile devices (e.g., mobile phones, tablet computing devices, etc.), wireless devices, electronic readers, media players, and various other electronic devices and appliances. A client device 104 may be configured with a browser application to communicate via the network 110 with other computing systems, such the intermediary system 102 or content servers 106, and to request, receive, process, and display content.
The content server 106 can correspond to a logical association of one or more computing devices for hosting content and servicing requests for the hosted content over the network 112. For example, the content server 106 can include a web server component corresponding to one or more server computing devices for obtaining and processing requests for content (such as content pages) from the client device 102, the intermediary system 104, or other devices or service providers. In some embodiments, one or more content servers 106 may be associated with a CDN service provider, an application service provider, etc.
In operation, one or more client computing devices 104a-104n may be associated with an intermediary system 102. For example, a client computing device 104 may utilize proxy and caching services provided by the intermediary system 102. A user of the client device 104 may initialize a browser application and transmit a request for a content page, such as a web page. Due to the association with the intermediary system 102, the request may be transmitted to the intermediary system 102 rather than directly to the content server 106 of the content page. The intermediary system 102 can retrieve the content page from a content server 106 or some other source of the content page, such as a CDN system. The intermediary system 102 may process the content page prior to transmitting it to the client device 104. For example, the intermediary system 102 may utilize the content rendering engine 122 to partially or completely render the page. The rendered content may then be transmitted to the client device 104. In some embodiments, the content rendering engine 122 may be in communication with a browser application on the client device 104, such that processing from the content rendering engine 122 is automatically reflected at the browser of the client device 104. One example of a content rendering engine 122 executing on an intermediary system 102 or other network computing component, and the browsing configurations and processing that facilitate usage of the content rendering engine 122, is described in U.S. patent application Ser. No. 13/174,589, the disclosure of which is hereby incorporated by reference.
The intermediary system 102 may utilize the content analysis module 120 to analyze the content page and create a profile of the page. The profile may include information such as the source, structure, subject matter, and other characteristics associated with the content page. The profile may be stored in the page profile data store 126. As described in detail below, the content analysis module 120 can utilize various algorithms, computer-learning techniques, historical data associated with the content page, and data received from the current client device 104 to determine, among other things, which portion or portions of the content page are important or otherwise of interest to a user. Such meaningful portions of the content page may then be monitored for changes on behalf of the current client device 104. When a change is detected, the content analysis module 120 may determine whether the change is important or otherwise of interest. Factors to consider when making such a determination include the amount of the content page or meaningful portion thereof which has changed (e.g.: an entire article vs. a typo correction), or the nature of the change (e.g.: additional content has been added vs. a formatting change).
In some embodiments, the system 120 may also store user-specific page profiles that indicate, for particular users and pages, which portions of the pages are important to such users. These indications may be based on explicit selections of the users (e.g., a user explicitly designates a portion of a page to be monitored for updates by drawing a border around it), and/or be based on the monitored interactions of such users with the subject pages.
In some cases, a content page may change substantially over a short period of time, or even every time the page is retrieved. Such pages may not be good candidates for the content analysis and update notification methods described herein. In addition, the dynamic nature of the content may indicate that any individual change to the content is not meaningful. Accordingly, content or portions of content which exhibit a high rate of change may be excluded from update monitoring, or notifications regarding changes to such dynamic pages may be suppressed.
As will be apparent, the content notification features described herein can also be implemented without the use of a proxy server or other intermediary system 102. For example, a browser can be designed or configured to communicate with a designated (non-intermediary) update notification server that supplies information to client devices regarding updates made to particular sites or pages. In such embodiments, a browser may automatically subscribe, based on the user's browsing patterns, to receive notifications from the update notification server regarding particular sites, URLs, or ranges of URLs. The browser may in turn use these notifications to display (or display notifications of) these updates. As another example, and as described in more detail below, the disclosed features for detecting meaningful changes to pages can be implemented entirely within a browser or other client component that runs on the user's device.
Content Retrieval and Update Interactions
In some embodiments, the version information may be more descriptive of the current version of the content page or portions thereof. For example, a page profile associated with the content page may include data regarding which portions of the page are meaningful. The meaningful portions may be automatically determined based on an analysis of user interactions or based on other techniques. In some embodiments, the meaningful portions may be defined by users. Snapshots of the meaningful portions or version information regarding the meaningful portions may be saved to facilitate detection of meaningful changes. Accordingly, client devices 104a-104n or users thereof may be notified of or otherwise provided with access to changes to the meaningful portions of the content page in comparison with the last version of the content page that the client device 104 requested.
In some embodiments, snapshots of the content page or portions thereof may be stored in a shared cache, or version information may be stored such that changes are detected with respect to the content page as it is presented to a group of client devices 104a-104n, rather than changes with respect to versions retrieved for and transmitted to any particular client device 104. In these embodiments, a client device 104 or a user thereof may access the most recent meaningful changes to the content page even if the client device 104 has never requested content page. In addition, a client device 104 may be enabled to access the most recent meaningful changes to the content page even in cases where a substantial period of time has passed since the last time the client device 104 requested the content page, such that all or substantially all of content page has changed.
The requested content page can be transmitted to the client device 104a at (2), subsequent to saving the snapshot or version information as described above. In some embodiments, the transmission of the requested content page to the client device 104a may occur prior to or substantially simultaneously with storing the version information.
The client device 104a can transmit interaction data regarding interactions with the content page at (3). A user of the client device 104a may click, scroll, zoom, pan, or otherwise interact with the content page. Such interactions may be used by the content analysis module 120 to determine which portion or portions of the page are meaningful. In some embodiments, the user may specify which portion or portions are meaningful. Interaction data regarding these and other interactions may be transmitted as the interactions occur, or the interaction data may be stored for future transmission, such as on a schedule, when the client device 104a is idle, when the browsing session is terminated, etc.
The intermediary system 102 can monitor for changes to the content page at (4). For example, the intermediary system 102 can periodically or randomly retrieve the content page from the content server 106 or some other content source and determine whether and to what extent the content page has changed. Alternatively, or in addition, the intermediary system 102 may check for changes to the content page when retrieving the content page in response to a request from another client computing device 104n for the content page at (5). For example, the intermediary system 102 may compare each version of the content page, retrieved for client device 104n, to the version retrieved for and transmitted to the client device 104a at (1), above, or to the most recent version that was retrieved for any requesting client device 104a-104n, such as a version stored in a shared cache. As described above, some pages or content portions exhibit a high rate of change. Comparing two versions of these types of content may, in a substantial percentage of cases, indicate that a change has occurred. Accordingly, highly dynamic pages may be excluded from the automatic update detection process.
In response to determining that content page or some portion thereof has changed, as described in detail below with respect to
The intermediary system 102 can transmit a notification to the client device 104a at (7) along with the current version of the content page or an updated portion thereof. For example, the intermediary system 102 may make a Hypertext Transfer Protocol (HTTP) transmission to the client device 104a. The HTTP transmission may include Hypertext Markup Language (HTML) code corresponding to a modified portion of a web page previously received by the client device 104a (e.g.: at (1)). In addition, HTTP headers may be included in the transmission indicating which area of the previously accessed version of the web page to replace with the included HTML code, what type of notification or alert to trigger on the client device 104a, and the like. Alternatively, the intermediary system 102 could transparently send to the browser a separate “page information file” or “update information file” containing information about the updates made to the page.
In some embodiments, the current version of the content page is not processed by the intermediary system 102 at (6). In such cases, an unmodified copy of the current content page may be transmitted to the client device 104a at (7). The intermediary system 102 may include metadata in the transmission indicating which portion of the page has changed, which visual treatments if any to apply to the changed portion, which notification or alert to trigger on the client device 104a, etc. Such metadata may be transmitted via HTTP headers, as described above, or through some other technique.
The client device 104a can, upon receipt of the transmission at (7) from the intermediary system 102, process the transmission at (8). Processing the transmission may include inspecting HTTP headers, if present, to determine the nature of the transmission. The transmission may include a complete copy of the updated resource, such as an HTML file of a web page, or it may include only the changed portion. As shown in
Visual Treatments to Updated Content
A browser application on the client device 104 may be configured to receive notifications from an intermediary server 102 or from a separate content update detection service. The browser may receive update notifications and process those update notifications for display to a user. In some embodiments, a separate component of the client device 104 may receive update notifications. For example, a toolbar or plugin to the browser application may receive update notifications via the network connection of the client device 102 and display notifications or cause the browse application to display notifications.
The client device 104 may display the updated content page to the user in various ways. In some embodiments, the browser application can launch a new tab if the tab corresponding to the previously received content page has been closed.
In some embodiments, the browser application may highlight, blink, change the color, or apply other visual treatments to a link to a page with updated content. The user interface 300 of
Content portion 402 is outlined 404 to set it apart from the rest of the content page rendered in the user interface 400, while content portion 406 is highlighted. Content portion 406 also includes both the original text and the current version of the text, similar to a redline edit view in a word processing document. Other visual treatments are possible, such as hovering text (e.g.: tooltips), popup boxes, and the like. In some embodiments, two or more changes to the same portion of a content page may be presented to the user as a series of slides or as an animation embedded into the content page.
Content Update Detection Process
Turning now to
For example, the content analysis module 120 may determine that a portion is not meaningful if: it consists primarily of advertising, as determined by analyzing web page content and coding; it changes very frequently over time; it contains one or more links that are rarely selected by users in comparison to other portions of the page; it is rarely the focus of users' attention, as determined by monitoring panning and zooming behaviors of users of touch screen devices and/or by monitoring page scrolling actions; or if it is clipped, shared or otherwise marked as interesting significantly less frequently than other portions of the page by users of a content clipping service, social network sharing service, or some similar system.
The content analysis module 120 can monitor the content page to determine whether it has changed. Advantageously, when a change is detected with respect to a meaningful portion of the content page, the content analysis module 120 can determine whether the extent of the change is enough to warrant taking further action, such as processing the changed portion and notifying users of the change.
The process 500 begins at block 502. The process 500 may begin automatically, such as in response to the receipt, by the intermediary system 102, of a request from a client device 104 for a content page. In some embodiments, the process 500 may be initialized in response to the beginning of a browsing session by a client device 104. For example, a client device 104 may initialize a browsing session, and the content analysis module 120 may be employed to determine whether there are any updates to pages associated with a bookmark on the client device, to pages which the client device 104 requests frequently, etc.
The process 500 may be embodied in a set of executable program instructions and stored on a computer-readable medium drive of the computing system with which the content analysis module 120 is associated. When the process 500 is initiated, the executable program instructions can be loaded into memory, such as RAM, and executed by one or more processors of the computing system. In some embodiments, the computing system may include multiple computing devices, such as servers, and the process 500 may be executed by multiple servers, serially or in parallel.
At block 504, the content analysis module 120 can obtain a profile for the content page that is the subject of analysis, if a profile exists. The page profile may contain data that indicates which portion or portions of the page are meaningful, whether there is a regular update schedule, whether there is a threshold for the extent of a change to a content portion that is to be met or exceeded before a notification is issued, and other data. The page profile may be loaded from a page profile data store 126 of the intermediary system 102 or obtained from some other source. In some cases, such as the first time a page has been requested by any client device 104 associated with the intermediary system 102, there may not be a profile for the content page.
At block 506, the content analysis module 120 can obtain additional data to aid in determining which portions of the content page are meaningful. The additional data may include user interaction data, such as data reflecting clicking, scrolling, zooming, and panning behaviors performed by users when viewing the content page. In some embodiments, such as when the computing device 104 is configured with a user-facing camera, data regarding user eye movements may be used. User interaction data may be recorded by a browser or other component of the client device 104 while a user is browsing a content page, and such data may be transferred to the intermediary system 102 and stored in the user interaction data store 124.
At block 508, the content analysis module 120 can determine which content portion or portions of a content page may contain meaningful content. As described above, a page profile may specify which portions are meaningful. The content analysis module 120 may rely on such specifications or perform further analysis to confirm or supplement the profile. The further analysis may be based on user interaction data, obtained above in block 506. The content analysis module 120 may detect a pattern in the user interaction data, such as a large percentage of users clicking one of several links in a content portion, or a number, exceeding a threshold, of users that zoom in on a content portion, etc. Such patterns may indicate new meaningful content portions or confirm those specified in the page profile. The content analysis module 120 may also detect patterns or perform other analyses which contradict the page profile. In such cases, the content analysis module 120 may modify the page profile and save it in the page profile data store 126.
In some embodiments, a user may specify which portion of a page is meaningful, and such personalized specifications can be stored with the page profile in the page profile data store 126, with other user interactions in the user interaction data store 124, or in some other data store. For example, a user may use the user interface 600 illustrated in
At block 510, the content analysis module 120 can monitor for changes to the page. The content analyses module 120 can periodically retrieve the content page from the content provider 106, or monitor versions of the content page retrieved for other client devices 104 as described with respect to
At decision block 512, the content analysis module 120 can determine whether the monitored content page has changed. The content analysis module 120 can compare the result of a checksum or hashing function performed on copies of the monitored content page, as received in block 508, against the result of the same function performed on a previously retrieved version of the content page. Other techniques may be used to determine whether a change has occurred. If the content analysis module 120 determines that the content page has changed, the process 500 may proceed to decision block 514. Otherwise, the process 500 can return to block 510 to continue monitoring.
At decision block 514, the content analysis module 120 or some other component of the intermediary system 102 can determine whether the changes to the monitored content page are meaningful. The determination can be based on a number of factors. Illustratively, the content analysis module 120 may first determine whether a changed portion of the content page is a meaningful portion, as described above. If a meaningful portion has been changed, the content analysis module 120 may then determine the nature of the change. For example, if the change was merely cosmetic, such as a formatting change, then the change may not be deemed to be meaningful and execution of the process 500 returns to block 510. However, if the change was substantive, such as a modification to a news article, then the change may be meaningful. In some embodiments, this determination may take into consideration information about the preferences of a particular user or class of users; thus, due to the different content preferences of different users, of given change may be treated as meaningful to some users but not others.
Changes to the text of an article may not be considered to be meaningful in some cases. For example, a typo correction may not be a meaningful change, while an addition or subtraction of a paragraph or an entire article may be meaningful. The content analysis module 120 may factor the extent of the change into the determination of whether the change is meaningful. For example, a top news article listing may typically include 10 links to articles. The addition or subtraction of one link, as may occur at regular intervals throughout the day, may not be a meaningful change; instead, the addition or subtraction of 25% of the links may be set as a threshold for meaningful change. For a different content page or a different content portion, even a small change may be meaningful. For example, a monitored content page may be updated only once per week. Any change to a meaningful portion of the page (e.g.: the body of the page, rather than the advertisements) may be considered to be meaningful, regardless of the extent of the change. If a change is determined to be a meaningful change, the process may proceed to block 516; otherwise, the process can return to block 510.
At block 516, a notification can be transmitted to one or more client devices 104 regarding the detected meaningful content change. As described above, the notification may include some or all of the current version of the monitored content page, and visual treatments may be associated with meaningfully changed portions. Accordingly, the client devices 104 need not request the current version of the content page from the intermediary system 102 or the content provider 106 in an effort to determine what has changed or to determine whether a change has occurred at all. Meaningful changes can be delivered to the client device 104 automatically, and in some case the updated portions may be pre-rendered by the content rendering engine of the intermediary system 102.
At block 518 the process 500 terminates. In some embodiments, the process 500 may return to block 510 to resume monitoring until the termination of a browsing session or the occurrence of some other triggering event.
The disclosed content update detection/notification system can be varied in numerous ways. As one example, some or all of the disclosed functionality can be implemented on the client device within the browser or a browser plug-in. For example, while a user is viewing a page (or for a predetermined time period thereafter), the browser can, in the background, periodically retrieve the page and compare it to the version rendered to the user. (This comparison may be based on a locally-stored page profile which designates the portion(s) to be monitored for updates, as described above.) When a meaningful change is detected, the change can be called to the user's attention in any of the ways described above.
As another example, the system can be designed to additionally or alternatively send the update notifications to the users by email, text messages, personalized web pages (e.g., a personalized home page that provides an overview of significant changes made across a variety of distinct web sites), or any other communication method. In such embodiments, each update notification may include a user-selectable link to the updated page, which may be displayed in redline form relative to a previously viewed version.
As another example, the update notifications may be personalized for a user based on the type or types of devices used by that user. For instance, if the system detects that a Flash file on a page has changed, the system may refrain from sending a notification of this change to a particular user device based on a determination that the user device does not support Flash. If, however, the user of this device also uses a PC, the system may provide the update notification to the user on a PC (e.g., within a browser that runs on the PC).
Depending on the embodiment, certain acts, events, or functions of any of the processes or algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (e.g., not all described operations or events are necessary for the practice of the algorithm). Moreover, in certain embodiments, operations or events can be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures, rather than sequentially.
The various illustrative logical blocks, modules, routines, and algorithm steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. The described functionality can be implemented in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosure.
The steps of a method, process, routine, or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of a non-transitory computer-readable storage medium. An exemplary storage medium can be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The processor and the storage medium can reside in an ASIC. The ASIC can reside in a user terminal. In the alternative, the processor and the storage medium can reside as discrete components in a user terminal.
Conditional language used herein, such as, among others, “can,” “could,” “might,” “may,” “e.g.,” and the like, unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without author input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment. The terms “comprising,” “including,” “having,” and the like are synonymous and are used inclusively, in an open-ended fashion, and do not exclude additional elements, features, acts, operations, and so forth. Also, the term “or” is used in its inclusive sense (and not in its exclusive sense) so that when used, for example, to connect a list of elements, the term “or” means one, some, or all of the elements in the list.
Conjunctive language such as the phrase “at least one of X, Y and Z,” unless specifically stated otherwise, is to be understood with the context as used in general to convey that an item, term, etc. may be either X, Y, or Z, or a combination thereof. Thus, such conjunctive language is not generally intended to imply that certain embodiments require at least one of X, at least one of Y and at least one of Z to each be present.
While the above detailed description has shown, described, and pointed out novel features as applied to various embodiments, it can be understood that various omissions, substitutions, and changes in the form and details of the devices or algorithms illustrated can be made without departing from the spirit of the disclosure. As can be recognized, certain embodiments of the inventions described herein can be embodied within a form that does not provide all of the features and benefits set forth herein, as some features can be used or practiced separately from others. The scope of certain inventions disclosed herein is indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Number | Name | Date | Kind |
---|---|---|---|
5634064 | Warnock et al. | May 1997 | A |
5872850 | Klein et al. | Feb 1999 | A |
5961593 | Gabber et al. | Oct 1999 | A |
6049812 | Bertram et al. | Apr 2000 | A |
6108637 | Blumenau | Aug 2000 | A |
6138156 | Fletcher et al. | Oct 2000 | A |
6195679 | Bauersfeld et al. | Feb 2001 | B1 |
6430624 | Jamtgaard et al. | Aug 2002 | B1 |
6549941 | Jaquith et al. | Apr 2003 | B1 |
6560620 | Ching | May 2003 | B1 |
6625624 | Chen et al. | Sep 2003 | B1 |
6704024 | Robotham et al. | Mar 2004 | B2 |
6785864 | Te et al. | Aug 2004 | B1 |
6871236 | Fishman et al. | Mar 2005 | B2 |
6944665 | Brown et al. | Sep 2005 | B2 |
6963850 | Bezos et al. | Nov 2005 | B1 |
7003442 | Tsuda | Feb 2006 | B1 |
7051084 | Hayton et al. | May 2006 | B1 |
7054952 | Schwerdtfeger et al. | May 2006 | B1 |
7085736 | Keezer et al. | Aug 2006 | B2 |
7159023 | Tufts | Jan 2007 | B2 |
7171478 | Lueckhoff et al. | Jan 2007 | B2 |
7191211 | Tuli | Mar 2007 | B2 |
7353252 | Yang et al. | Apr 2008 | B1 |
7373313 | Kahle et al. | May 2008 | B1 |
7543059 | Johnson et al. | Jun 2009 | B2 |
7792944 | DeSantis et al. | Sep 2010 | B2 |
7797421 | Scofield et al. | Sep 2010 | B1 |
7831582 | Scofield et al. | Nov 2010 | B1 |
7945637 | Van Vleet et al. | May 2011 | B2 |
7966395 | Pope et al. | Jun 2011 | B1 |
7975000 | Dixon et al. | Jul 2011 | B2 |
7996912 | Spalink et al. | Aug 2011 | B2 |
8010545 | Stefik et al. | Aug 2011 | B2 |
8015496 | Rogers | Sep 2011 | B1 |
8046435 | Parekh et al. | Oct 2011 | B1 |
8060463 | Spiegel | Nov 2011 | B1 |
8073850 | Hubbard et al. | Dec 2011 | B1 |
8103742 | Green | Jan 2012 | B1 |
8185621 | Kasha | May 2012 | B2 |
8249904 | Desantis et al. | Aug 2012 | B1 |
8271887 | Offer et al. | Sep 2012 | B2 |
8316124 | Baumback et al. | Nov 2012 | B1 |
8336049 | Medovich | Dec 2012 | B2 |
20010039490 | Verbitsky et al. | Nov 2001 | A1 |
20020030703 | Robertson et al. | Mar 2002 | A1 |
20020194302 | Blumberg | Dec 2002 | A1 |
20030023712 | Zhao et al. | Jan 2003 | A1 |
20030041106 | Tuli | Feb 2003 | A1 |
20040083294 | Lewis | Apr 2004 | A1 |
20040139208 | Tuli | Jul 2004 | A1 |
20040181613 | Hashimoto et al. | Sep 2004 | A1 |
20040205448 | Grefenstette et al. | Oct 2004 | A1 |
20040220905 | Chen et al. | Nov 2004 | A1 |
20040243622 | Morisawa | Dec 2004 | A1 |
20050010863 | Zernik | Jan 2005 | A1 |
20050060643 | Glass et al. | Mar 2005 | A1 |
20050138382 | Hougaard et al. | Jun 2005 | A1 |
20050183039 | Revis | Aug 2005 | A1 |
20050246193 | Roever et al. | Nov 2005 | A1 |
20060085766 | Dominowska et al. | Apr 2006 | A1 |
20060095336 | Heckerman et al. | May 2006 | A1 |
20060122889 | Burdick et al. | Jun 2006 | A1 |
20060168510 | Bryar et al. | Jul 2006 | A1 |
20060184421 | Lipsky et al. | Aug 2006 | A1 |
20060212509 | Feigenbaum et al. | Sep 2006 | A1 |
20060248442 | Rosenstein et al. | Nov 2006 | A1 |
20060277167 | Gross et al. | Dec 2006 | A1 |
20060294461 | Nadamoto et al. | Dec 2006 | A1 |
20070022072 | Kao et al. | Jan 2007 | A1 |
20070027672 | Decary et al. | Feb 2007 | A1 |
20070094241 | M. Blackwell et al. | Apr 2007 | A1 |
20070124693 | Dominowska et al. | May 2007 | A1 |
20070139430 | Korn et al. | Jun 2007 | A1 |
20070240160 | Paterson-Jones et al. | Oct 2007 | A1 |
20070288589 | Chen et al. | Dec 2007 | A1 |
20080028334 | De Mes | Jan 2008 | A1 |
20080104502 | Olston | May 2008 | A1 |
20080183672 | Canon et al. | Jul 2008 | A1 |
20080184128 | Swenson et al. | Jul 2008 | A1 |
20080320225 | Panzer et al. | Dec 2008 | A1 |
20090012969 | Rail et al. | Jan 2009 | A1 |
20090164924 | Flake et al. | Jun 2009 | A1 |
20090204478 | Kaib et al. | Aug 2009 | A1 |
20090217199 | Hara et al. | Aug 2009 | A1 |
20090248680 | Kalavade | Oct 2009 | A1 |
20090254867 | Farouki et al. | Oct 2009 | A1 |
20090282021 | Bennett | Nov 2009 | A1 |
20090287698 | Marmaros et al. | Nov 2009 | A1 |
20090327914 | Adar et al. | Dec 2009 | A1 |
20100036740 | Barashi | Feb 2010 | A1 |
20100057639 | Schwarz et al. | Mar 2010 | A1 |
20100125507 | Tarantino, Iii et al. | May 2010 | A1 |
20100131594 | Kashimoto | May 2010 | A1 |
20100138293 | Ramer et al. | Jun 2010 | A1 |
20100218106 | Chen et al. | Aug 2010 | A1 |
20100278453 | King | Nov 2010 | A1 |
20100293190 | Kaiser et al. | Nov 2010 | A1 |
20100312788 | Bailey | Dec 2010 | A1 |
20100318892 | Teevan et al. | Dec 2010 | A1 |
20100332513 | Azar et al. | Dec 2010 | A1 |
20110022957 | Lee | Jan 2011 | A1 |
20110029854 | Nashi et al. | Feb 2011 | A1 |
20110055203 | Gutt et al. | Mar 2011 | A1 |
20110078140 | Dube et al. | Mar 2011 | A1 |
20110078705 | Maclinovsky et al. | Mar 2011 | A1 |
20110119661 | Agrawal et al. | May 2011 | A1 |
20110161849 | Stallings et al. | Jun 2011 | A1 |
20110173177 | Junqueira et al. | Jul 2011 | A1 |
20110173637 | Brandwine et al. | Jul 2011 | A1 |
20110178868 | Garg et al. | Jul 2011 | A1 |
20110185025 | Cherukuri et al. | Jul 2011 | A1 |
20110191327 | Lee | Aug 2011 | A1 |
20110197121 | Kletter | Aug 2011 | A1 |
20110246873 | Tolle et al. | Oct 2011 | A1 |
20110264649 | Hsiao et al. | Oct 2011 | A1 |
20110289074 | Leban | Nov 2011 | A1 |
20110296341 | Koppert | Dec 2011 | A1 |
20110302510 | Harrison et al. | Dec 2011 | A1 |
20120005276 | Guo et al. | Jan 2012 | A1 |
20120072821 | Bowling | Mar 2012 | A1 |
20120084644 | Robert et al. | Apr 2012 | A1 |
20120096365 | Wilkinson et al. | Apr 2012 | A1 |
20120110017 | Gu et al. | May 2012 | A1 |
20120137201 | White et al. | May 2012 | A1 |
20120143944 | Reeves et al. | Jun 2012 | A1 |
20120150844 | Lindahl et al. | Jun 2012 | A1 |
20120166922 | Rolles | Jun 2012 | A1 |
20120198516 | Lim | Aug 2012 | A1 |
20120215834 | Chen et al. | Aug 2012 | A1 |
20120215919 | Labat et al. | Aug 2012 | A1 |
20120284629 | Peters et al. | Nov 2012 | A1 |
20120317295 | Baird et al. | Dec 2012 | A1 |
20120331406 | Baird et al. | Dec 2012 | A1 |
20130007101 | Trahan et al. | Jan 2013 | A1 |
20130007102 | Trahan et al. | Jan 2013 | A1 |
20130031461 | Hou et al. | Jan 2013 | A1 |
20130073388 | Heath | Mar 2013 | A1 |
20130080611 | Li et al. | Mar 2013 | A1 |
20130111579 | Newman et al. | May 2013 | A1 |
20130198641 | Brownlow et al. | Aug 2013 | A1 |
20140006129 | Heath, Stephan | Jan 2014 | A1 |
Number | Date | Country |
---|---|---|
WO 2013003631 | Jan 2013 | WO |
Entry |
---|
Close ‘n’ Forget Firefox add on, Evilfantasy's blog, http://evilfantasy.wordpress.com/2009/03/24/close-%E2%80%98n%E2%80%99-forget-firefox-add-on/, retrieved Mar. 24, 2009, 1 page. |
Chen, H., et al., “Bringing Order to the Web: Automatically Categorizing Search Results,” Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, Apr. 1-6, 2000, pp. 145-152. |
Rao, H.C.-H.,et al., “A Proxy-Based Personal Web Archiving Service,” Operating Systems Review, 35(1):61-72, 2001. |
Teevan, J., et al., “Changing How People View Changes on the Web,” 2009, Proceedings of the 22nd Annual ACM Symposium on User Interface Software and Technology, New York, 2009, pp. 237-246. |
Baumann, A., et al., Enhancing STEM Classes Using Weave: A Collaborative Web-Based Visualization Environment, Integrated Stem Education Conference, Apr. 2, 2011, Ewing, New Jersey, pp. 2A-1-2A-4. |
De Carvalho, L.G., et al., Synchronizing Web Browsing Data With Browserver, Proceedings of the IEEE Symposium on Computers and Communications, Jun. 22-25, 2010, Riccione, Italy, pp. 738-743. |
Bango, Rey “How JS & Ajax work in Opera Mini 4”, Nov. 2, 2007, XP055050107, Retrieved from the Internet. |
Brinkmann, M, “Record and Share your browser history with Hooeey,” ghacks.net, Feb. 26, 2008, 6 pages, printed on Jan. 25, 2013. |
Considine, A, “The Footprints of Web Feet,” The New York Times, Mar. 4, 2011, 3 pages, printed on Jan. 25, 2013. |
EyeBrowse: Record, Visualize and Share your Browser History, Information Aesthetics, Sep. 18, 2009, 2 pages, printed on Jan. 25, 2013. |
Feuerstein, Adam, “Flyswat Takes Aim,” San Francisco Business Times, printed from http://www.bizjournals.com/sanfrancisco/stories/1999/10/25/story2.html?t=printable, Oct. 22, 1999, 2 pages. |
Gabber et al., “How to Make Personalized Web Browsing Simple, Secure, and Anonymous,” Financial Cryptography, 16 pages (1997). |
Gingerich, Jason, “Keycorp Making Site Into Portal,” KRTBN Knight-Ridder Tribune Business News (South Bend Tribune, Indiana), Oct. 25, 1999, 2 pages. |
Hopper, D. Ian, “Desktops Now Have Power to Comparison-Shop,” Oct. 18, 1999, printed from http://www.cnn.com/Tech/computing/9910/18/r.u.sure/index.html, 3 pages. |
Van Kleek, M, Introducing “Eyebrowse”—Track and share your web browsing in real time, Haystack Blog, Aug. 28, 2009, 3 pages, printed on Jan. 25, 2013. |
Web page titled “RSS Ticker: Add-ons for Firefox,” https://addons.mozilla.org/en-US/firefox/addon/rss-ticker/, 3 printed pages, printed on Feb. 7, 2013. |
Web page titled “What Internet Users Do on a Typical Day, Trend Data (Adults), Pew Internet & American Life Project,” printed from http://pewinternet.org/Static-pp./Trend-Data-(Adults)/Online-Activities-Daily.aspx on Nov. 29, 2012, 4 pages. |