Anchoring for content synchronization
09781202 · 2017-10-03
Assignee
Inventors
Cpc classification
G06F16/958
PHYSICS
H04L67/1095
ELECTRICITY
International classification
Abstract
A computer-implemented method includes receiving from a web browser, by a server system via a network, an indication of dragging, by a user of the web browser, of an element displayed on a webpage displayed by the web browser, and dropping, by the user, of the element into a content area displayed on the webpage, the element selected from the group consisting of: a first content item displayed at a location on the webpage other than in the content area, and a graphical element displayed in association with the first content item. Responsively to the indication, the server system causes the web browser to display, in the content area, at least a portion of a set of one or more second content items related to the first content item. Other embodiments are also described.
Claims
1. A computer-implemented method comprising: serving, by a server system to a web browser, for display on a webpage displayed by the web browser, a plurality of content areas; receiving, by a server system, a designation command from a user of the web browser, and designating the exactly one of the content areas as the anchor content area responsively to the user designation command and the designated anchor content area displays at least a portion of an anchor set of content items, and one or more of which content areas other than the anchor content area are designated as synchronized content areas that display at least portions of synchronized sets of content items, respectively; and causing, by the server system, the web browser to periodically update at least some of the content areas by the web browser periodically: updating the anchor content area, by displaying therein at least a portion of an updated anchor set of content items received by the web browser, and automatically synchronizing the synchronized content areas with the anchor content area, by displaying in the synchronized content areas, respectively, at least portions of updated synchronized sets of content items received by the web browser and generated in response to an analysis of the updated anchor set of content items, and receiving an instruction from a user of the web browser to lock one of the one or more content areas, and responsively to the instruction, withholding periodically updating the locked content area, while continuing to periodically update others of the one or more content areas.
2. The method according to claim 1, wherein causing the web browser to periodically update comprises performing, by the server system, the analysis of the updated anchor set.
3. The method according to claim 1, wherein causing the web browser to periodically update comprises sending, by the server system, an instruction to the web browser to perform the analysis of the updated anchor set.
4. The method according to claim 1, wherein causing the web browser to periodically update comprises serving, by the server system, the at least a portion of the updated anchor set of content items for display in the anchor content area.
5. The method according to claim 1, wherein causing the web browser to periodically update comprises sending, by the server system, an instruction to the web browser to request and receive the at least a portion of the updated anchor set of content items for display in the anchor content area.
6. The method according to claim 1, wherein serving the plurality of content areas comprises requesting and receiving, by the server system, from a plurality of online content sources, the anchor set and synchronized sets of content items generated by the online content sources in response to a term that comprises one or more keywords, and serving the anchor set and synchronized sets of content items to the web browser.
7. The method according to claim 6, wherein the webpage includes an anchor area separate from the content areas, and wherein serving comprises receiving the term from a user of the web browser via the anchor area.
8. The method according to claim 6, wherein serving comprises using, as the term, a popular or trendy term.
9. The method according to claim 1, wherein causing the web browser to periodically update comprises generating, by the server system, a term responsively to the analysis of the updated anchor set, which term comprises one or more keywords, wherein the updated synchronized sets of content items are generated in response to the term.
10. The method according to claim 1, wherein the content items of the anchor set are of a first content category, and wherein the content items of one of the synchronized sets are of a second content category different from the first content type, and wherein each of the first and second content categories is selected from the group of categories consisting of: a video content category, a news content category, a search content category, a social updates content category, a chat content category, an advertisement content category, a blog content category, an encyclopedia content category, a map content category, a finance content category, a forum content category, and an association content category.
11. The method according to claim 10, wherein the first content category is selected from the group of categories consisting of: the video content category, the social updates content category, and the chat content category.
12. The method according to claim 10, wherein the second content category is selected from the group of categories consisting of: the news content category, the social updates content category, the chat content category, and the blog content category.
13. The method according to claim 1, wherein at least one of the content items of the updated synchronized sets is received from an entity that does not control the server system, the entity selected from the group consisting of: an online retailer, an online publisher, and an online advertiser.
14. A computer-implemented method comprising: receiving, by a web browser running in a device, a webpage including a plurality of content areas; receiving, by a web browser running in a device, a designation command from a user of the web browser, and designating the exactly one of the content area as the anchor content area responsively to the user designation command and the designated anchor content area displays at least a portion of an anchor set of content items, and one or more of which content areas other than the anchor content area are designated as synchronized content areas that display at least portions of synchronized sets of content items, respectively; displaying the webpage on a display of the device; and periodically updating, by the web browser, at least some of the content areas by periodically: updating the anchor content area, by displaying therein at least a portion of an updated anchor set of content items received by the web browser, and automatically synchronizing the synchronized content areas with the anchor content area, by displaying in the synchronized content areas, respectively, at least portions of updated synchronized sets of content items received by the web browser and generated in response to an analysis of the updated anchor set of content items, and receiving an instruction from a user of the web browser to lock one of the one or more content areas, and responsively to the instruction, withholding periodically updating the locked content area, while continuing to periodically update others of the one or more content areas.
15. The method according to claim 14, wherein the content items of the anchor set are of a first content category, and wherein the content items of one of the synchronized sets are of a second content category different from the first content type, and wherein the first content category is selected from the group of categories consisting of: the video content category, the social updates content category, and the chat content category.
16. The method according to claim 14, wherein the content items of the anchor set are of a first content category, and wherein the content items of one of the synchronized sets are of a second content category different from the first content type, and wherein the second content category is selected from the group of categories consisting of: the news content category, the social updates content category, the chat content category, and the blog content category.
17. Apparatus for use with a network, the apparatus comprising: an interface; and a processor, which is configured to serve, via the interface over the network, to a web browser, for display on a webpage displayed by the web browser, a plurality of content areas; receive a designation command from a user of the web browser, and to designate the exactly one of the content area as the anchor content area responsively to the user designation command and the designated anchor content area displays at least a portion of an anchor set of content items, and one or more of which content areas other than the anchor content area are designated as synchronized content areas that display at least portions of synchronized sets of content items, respectively; and cause the web browser to periodically update at least some of the content areas by the web browser periodically: (a) updating the anchor content area, by displaying therein at least a portion of an updated anchor set of content items received by the web browser, (b) automatically synchronizing the synchronized content areas with the anchor content area, by displaying in the synchronized content areas, respectively, at least portions of updated synchronized sets of content items received by the web browser and generated in response to an analysis of the updated anchor set of content items, and (c) receiving an instruction from a user of the web browser to lock one of the one or more content areas, and responsively to the instruction, withholding periodically updating the locked content area, while continuing to periodically update others of the one or more content areas.
18. Apparatus comprising: a display; and a processor, which is configured to run a web browser that is configured to receive a webpage including a plurality of content areas; receive a designation command from a user of the web browser, and to designate the exactly one of the content area as the anchor content area responsively to the user designation command and the designated anchor content area displays at least a portion of an anchor set of content items, and one or more of which content areas other than the anchor content area are designated as synchronized content areas that display at least portions of synchronized sets of content items, respectively; display the webpage on the display; and periodically update at least some of the content areas by periodically: (a) updating the anchor content area, by displaying therein at least a portion of an updated anchor set of content items received by the web browser, (b) automatically synchronizing the synchronized content areas with the anchor content area, by displaying in the synchronized content areas, respectively, at least portions of updated synchronized sets of content items received by the web browser and generated in response to an analysis of the updated anchor set of content items, and (c) receiving an instruction from a user of the web browser to lock one of the one or more content areas, and responsively to the instruction, withholding periodically updating the locked content area, while continuing to periodically update others of the one or more content areas.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION OF APPLICATIONS
(7)
(8) A plurality of users 44 use respective devices 46, such as portable communication devices (e.g., Internet-enabled cellular telephones or handheld computers) or personal computers, to remotely access portal server system 20 via a network 48, such as a wide-area network (WAN), e.g., the Internet. Devices 46 are connected to WAN 48 via wired connections, wireless connections (either local or wide-area), or a combination thereof. For example, some of devices 46 may be connected to WAN 48 via a digital wireless cellular network. Alternatively, one or more of users 44 access portal server system 20 via a local area network (LAN), or both a LAN and a WAN.
(9) Portal server system 20 typically comprises one or more standard computer servers with appropriate memory, processor(s), communication interfaces and software for carrying out the functions prescribed by the present invention. This software may be downloaded to the systems in electronic form over a network, for example, or it may alternatively be supplied on tangible media, such as CD-ROM. Memory 34 comprises a non-volatile memory, such as one or more hard disk drives, and/or a volatile memory, such as random-access memory (RAM).
(10) For some applications, network environment 10 further includes at least one website publisher 50, which typically comprises one or more web servers. Website publisher 50 serves (i.e., delivers) content to devices 46, such as proprietary content or content aggregated from a plurality of content sources. For example, publisher 50 may provide a portal website, such as a news portal. For some applications, as described in more detail hereinbelow, content and/or browser-executable code (e.g., scripts) is served (i.e., delivered) by portal server system 20 to devices 46 for display and/or execution on webpages served by website publisher 50.
(11) Typically, a web browser 36 running on each device 46 communicates with portal server system 20, and, optionally, website publisher 50 and/or content sources 40. Each of devices 46 comprises a processor (i.e., a central processing unit (CPU)), system memory, a non-volatile memory such as a hard disk drive, a display, input and output means such as a touch screen, keyboard, touchpad, and/or a mouse, and a network interface card (NIC).
(12) Reference is made to
(13) For some applications, portal server system 20 generates content areas 62 for display on webpage 60. Content areas 62 are typically delineated on the webpage as boxes, as shown in
(14) For some applications, one or more of content areas 62 are generated and/or implemented by respective applications running on respective servers, which may, for example, be implemented using server-side scripting in combination with any other programming language(s). For example, the servers may be part of portal server system 20 or website publisher 50, or may be hosted by a third-party entity, such as an online retailer, an online publisher, or an online advertiser. Portal server system and/or web browser 36 may utilize respective APIs of the third-party servers.
(15) For some applications, portal server system 20 serves (i.e., delivers) content areas 62 to the web browser for display on webpage 60 served by website publisher 50. The website publisher includes appropriate HTML elements and/or scripts (e.g., coded in JavaScript) on webpage 60 indicating to the browser the location and other information necessary for requesting the content areas from portal server system 20, and properly displaying the content areas on the webpage. Alternatively or additionally, portal server system 20 serves (i.e., delivers) content areas 62 to website publisher 50, which in turn serves (i.e., delivers) the content areas to the user's browser. Optionally, portal server system 20 communicates with the browser via one or more commercial content delivery networks (CDNs), as is known in the art. Further alternatively or additionally, neither portal server system 20 nor website publisher 50 serves content areas 62 to the web browser. Instead, an application running in the browser (typically a client-side script) generates one or more of the content areas. The browser application communicates with portal server system 20, e.g., using protocols described herein. In response to information and/or instructions received from portal server 20, the browser application directs the content areas to display content items 65 and to perform the other actions of the content areas described herein. Typically, the browser downloads the client application from portal server system 20 or from website publisher 50.
(16) Content areas 62 display respective sets 64 of content items 65 requested from respective one or more online content sources 40 (
(17) As described in more detail hereinbelow with reference to
(18) For some applications, names of online content sources 40 are displayed in association with respective content areas 62. Alternatively, the names of the online content sources are not displayed. A generic name may instead be displayed for the category of content displayed in the content areas, e.g., “news,” “video,” “map,” “wiki,” “Web” (e.g., for Web search results), or “associations.” For some applications, system 20 configures at least some of the content areas to have the look and feel of websites associated with respective online content sources 40. For example, the content areas may display logos of the source websites, and/or use one or more colors associated with the source websites. Alternatively, system 20 does not maintain this look and feel, as shown in
(19) Portal server system 20 synchronizes the content areas with one another, either automatically or in response to a user instruction to do so, as described in detail hereinbelow. The portal server system typically generates the content areas on the fly, based on interactions with each of users 44. The system updates at least some of the content areas periodically (i.e., streams content), such as in realtime or near realtime, e.g., at least once per second, such at least once per 100 milliseconds.
(20) For some applications, system 20 provides the user the option to lock one or more of content areas 62. In response to an instruction from the user to do so, the system withholds periodically updating the locked content areas, while continuing to periodically update others of the content areas. Such locking enables the user to preserve the display of content of interest to the user. The system may set the default of each content area to locked or unlocked. A lock/unlock icon 70 may indicate whether a given area is locked.
(21) Reference is made to
(22) For some applications, the anchor term (and other anchor terms described hereinbelow) comprises an ordered or unordered collection of keywords, which are optionally weighted. Alternatively or additionally, the anchor term (and other anchor terms described hereinbelow) comprises an association graph of keywords (i.e., the keywords are organized in an association graph), such as described in U.S. patent application Ser. No. 12/253,087, filed Oct. 16, 2008, which published as US Patent Application Publication 2009/0119261 to Ismalon, and which is incorporated herein by reference, and/or one or more of the patent applications incorporated hereinbelow by reference.
(23) For some applications, system 20 receives initial anchor term 102 from user 44. For example, the user may enter the term into an anchor area 106 displayed on webpage 60, which anchor area is separate from content areas 62. Anchor area 106 is typically provided on webpage 60 using techniques described hereinabove for providing content areas 62. For some applications, system 20 completes receiving initial anchor term 102 only upon the user providing an indication that the complete anchor term has been entered, such as by pressing the “enter” key on a keyboard or clicking on a button displayed on the webpage. For other applications, system 20 treats a first word entered by the user as initial anchor term 102 even in the absence of an indication by the user. The system then typically appends each additional word entered by the user after the first word to form a longer, updated anchor term, which is processed by the system using the techniques used to process the initial anchor term. The system thus presents content related to the single-word initial anchor term, as described hereinbelow, during the period before subsequent word(s) are added by the user, and content related to the subsequent multi-word anchor term(s) as the user enters the additional word(s). The presented content is thus updated in realtime as the user continues to enter the anchor term. For some applications, the system provides suggested autocomplete words or phrases as the user types in each word or phrase, as is known in the search engine art (for example, using a dictionary, and/or popular or trendy search terms entered by other users, and/or based on a profile of the user or a community of users to which the user belongs). Optionally, the system uses one or more of the autocomplete suggestions as the anchor term even before the user selects an autocomplete suggestion, in order to provide the user with potential interesting content in content areas 62 even before the user completes entering the term.
(24) The user may change the anchor term during use of the system, before, during, or after the system performs the method 100 or method 200, described hereinbelow with reference to
(25) For applications in which the user uses the anchor area for conducting a search, the content areas of webpage 60 provide the user with a panoramic, holistic, and comprehensive view of the search results, thereby increasing the overall likelihood of the user finding the content he or she is seeking.
(26) Alternatively, system 20 receives the initial anchor term from a source other than user 44, such as a previously-viewed webpage from which the user arrived at webpage 60. For example, system 20 may analyze the content of the previously-viewed webpage to identify key terms on the webpage (e.g., using latent semantic indexing (LSI), a latent Dirichlet allocation (LDA), or a bag of words approach), or the system may use metadata available regarding the webpage, e.g., a document association graph previously generated, such as using techniques described in the above-mentioned U.S. patent application Ser. No. 12/253,087 and/or in one or more of the applications incorporated by reference hereinbelow. Further alternatively, the system receives the initial anchor term by generating the term from a user profile of user 44, a profile of a community of users to which the user belongs, or a profile of all users, for example using techniques described in one or more of the applications incorporated by reference hereinbelow.
(27) Still further alternatively or additionally, the system receives the initial anchor term by identifying or receiving a popular or trendy term. For example, the term may be extracted from offline or online content, e.g., using an API of a third-party website, or the system may derive the term by analyzing terms of interest to other users. For example, the term may be extracted from analysis of trends in the Worldwide Web, trends in social sites (e.g., tweets), or a publisher's website. The analysis may be performed by the system, or by another source, e.g., received by the system via an API provided by the other source. The content displayed in content areas 62 is thus of relevance to the popular or trendy term that has been anchored (i.e., serves as the current anchor term), and thus provides the user with a panoramic, holistic, and comprehensive view of content related to the popular or trendy term. For some applications, the system periodically updates the anchor term by identifying or receiving a currently popular or trendy term, either automatically (i.e., without being instructed to do so by the user), or upon receiving a request from the user to do so. The system thus continuously streams content to content areas 62 that is currently relevant to popular or trendy items of interest. Typically, the system attempts to provide content of possible interest to the user, even in the absence of feedback or instructions from the user. Typically, the system defers to the user's directions (such as entering a term or providing a synchronization instruction) when the user provides such directions, and uses other approaches to identify possibly relevant content and/or keep the content fresh when the user does not provide directions. Thus, unless indicated otherwise, many actions performed in the methods described herein do not require input from the user, such as entering text or clicking on search button, as a condition for performance of the actions.
(28) System 20 does not necessarily display the anchor term to the user, and webpage 60 does not necessarily display anchor area 106. Such lack of display of the anchor term may be particularly appropriate for configurations of the system in which the anchor term is not entered or otherwise designated by the user.
(29) At an initial content request step 110 of method 100, system 20 requests and receives, from one or more content sources 40, respective initial sets 64 of one or more content items 65 related to the anchor term, e.g., generated by the online content sources responsively to the anchor term (content items 65 are typically different from the anchor term). System 20 requests and receives the content items by interacting with servers of online content sources 40, typically via WAN 48. For some applications, the system requests the sets of content items using respective search facilities of the online content sources, by providing a search query based on initial anchor term 102. For example, the system may use the search facility by sending HTTP requests to the content sources, which HTTP requests request the content items, and receiving the content items in response to the HTTP requests. For these application, system 20 appears to be a web browser to the online content sources. The online content source sites return webpages, which the system parses to extract the content items. Alternatively or additionally, system 20 utilizes application programming interfaces (APIs) offered by the online content sources that include a method to receive the content items in response to submission of a query. System 20 may communicate with the online content sources using protocols such as XML, JSON, or SOAP. Further alternatively or additionally, for applications in which an online content source comprises a database, such as a relational database, system 20 requests the sets of content items using a database query, such as an SQL query.
(30) As mentioned above, each of content areas 62 typically displays only a portion of content items 65 of the respective set 64. For some applications, in order to select the portion of the content items from a given set received from one or more content sources, portal server system 20 ranks the content items of the set, and selects one or more of the highest-ranked content items as the portion. Optionally, the system performs such ranking responsively to a profile of the particular user 44, a community of users to which the user belongs, or the entire population of users of system 20, such as using techniques described in the above-referenced U.S. patent application Ser. No. 12/253,087, and/or one or more of the other patent applications incorporated hereinbelow by reference. Alternatively or additionally, the system ranks the content items by performing an analysis of at least a portion of the content items received from the online content sources, and ranking responsively to the analysis. Alternatively, some of the content areas display the entire respective sets of content items.
(31) Alternatively or additionally, a client-side application (typically a script) executed by web browser 36 requests and receives the respective initial sets 64 of content items 65 directly from one or more content sources 40. The client-side application typically communicates with system 20, which provides instructions to the application regarding the ranking of the content items, how many and/or which of the content items to display, and/or which portions of the content items to display. In order to enable system 20 to provide such instructions, the web browser may send initial sets 64 to system 20 and/or system 20 may receive initial sets 64 directly from one or more content sources 40. Such communication may use protocols such as XML or JSON.
(32) At a webpage generation step 112, a webpage 60 is generated, which includes the plurality of content areas 62 associated with respective initial sets 64. For some applications, webpage 60 is generated by system 20, while for other applications, webpage 60 is generated by website publisher 50, as described above. Web server 32 of system 20, or a web server of website publisher 50, serves (i.e., delivers) the webpage to one of users 44, at a webpage serving step 114. Typically, system 20 serves the content in realtime or near realtime (i.e., streams the content), such as within one second after requesting the respective content items from the content sources, e.g., within 100 ms after requesting.
(33) Typically, web browser 36 receives a portion of webpage 60 before receiving the content areas and their content. As mentioned above, the content areas may be implemented using a client-side scripting language, such as Javascript, and/or various HTML elements, as is known in the art. An application (typically a script) executed by the web browser communicates with system 20 to generate the content areas on webpage 60, and receives the content items from system 20 and/or content sources 40, as described above. For some applications, system 20 serves content areas 62 to website publisher 50, which in turn serves the content areas to the user's browser.
(34) Initial content request step 110 may be performed before, after, or at the same time as webpage generation and serving steps 112 and 114.
(35) Because system 20 uses the same anchor term 102 for requesting different categories of content from online content sources 40, content areas 62 display respective sets 64 of content items 65 that are related to, although different from, one another. For example, respective ones of the content areas 62 may display content of the following respective content categories: one or more video clips regarding anchor term 102, requested from one or more video sharing websites; one or more news items regarding anchor term 102, requested from one or more news websites; one or more search results regarding anchor term 102, requested from one or more search websites; one or more social updates regarding anchor term 102, requested from one or more social networking sites; for example, such social updates may comprise tweets, such as provided by Twitter.com, or news feeds provided by one or more social networks such as Facebook; one or more messages (e.g., instant messages) regarding anchor term 102, requested from one or more instant messaging or chat sites; one or more advertisements associated with anchor term 102, requested from one or more ad servers; one or more blog entries regarding anchor term 102, requested from one or more blog websites; one or more encyclopedia entries (typically abstracted) regarding anchor term 102, typically requested from one or more wiki websites or other encyclopedia websites; one or more images regarding anchor term 102, requested from one or more image search websites; one or more maps regarding anchor term 102, requested from one or more mapping websites; financial information regarding anchor term 102 (e.g., stock quotes), requested from one or more financial websites; messages regarding anchor term 102, requested from one or more Internet forums (message boards); and other terms associated with anchor term 102, requested from one or more search websites.
(36) Alternatively or additionally, for some applications, one or more of the content areas display content regarding a term other than the anchor term. The term may be generated by the system in response to a user instruction to synchronize one or more of the content areas with content of another content area, such as described hereinbelow.
(37) For some applications, more than one content area 62 display content items 65 of the same category, either provided by the same set of one or more online content sources 40, or by different sets of one or more online content sources 40. For example, this may enable a user to synchronize content of the same category between content areas provided by different content sources 40, or even by the same content source(s) 40.
(38) At a user synchronization instruction step 120, system 20 receives from the user: (a) a selection of at least one (e.g., exactly one) of content items 65 of a first one of initial sets 64 (shown in
(39) For some applications, the user makes the selection and gives the synchronization instruction in a single action, such as clicking on graphical element 122 or the selected at least one of the content items. For other applications, the user makes the selection and gives the instruction in separate actions, such as clicking on element 122 or the selected content item to make the selection, and clicking on a separate graphical element, and/or dragging, to give the instruction.
(40) For some applications, system 20 receives the selection and synchronization instruction from user 44 by receiving an indication of dragging, by the user within the user's web browser 36, of graphical element 122 or the selected at least one (e.g., exactly one) of the content items, and of dropping, by the user, of the dragged item into another area of webpage 60 (i.e., an area of the webpage at which the at least one of the content items is not displayed). For example, the other area may be anchor area 106, another of content areas 62, a graphical element displayed in association with another of content areas 62, or an empty area of webpage 60, as described hereinbelow. Alternatively, system 20 receives the selection and synchronization instruction using other techniques known in the art for indicating selections in a web browser.
(41) For some applications, the user instruction received at step 120 (to synchronize one or more of content areas 62 with the selected at least one of the content items) may instruct the system to synchronize: (a) all of content areas 62 (including the area displaying the selected at least one of the content items); (b) all of content areas 62 other than the area displaying the selected at least one of the content items; (c) a particular one of the other content areas; or (d) only the content area displaying the selected at least one of the content items.
(42) For example, for options (a) or (b), the user may instruct the system to synchronize the content areas by dragging graphical element 122, or the selected at least one (e.g., exactly one) of the content items, and dropping into anchor area 106 (which is displayed on the webpage separately from the content areas) or an empty area of webpage 60 (
(43) For some applications, responsively to the selection and the synchronization instruction, system 20 generates an updated term, at an updated term generation step 126. Typically, the system generates the updated term related to (e.g., responsively to) the selected at least one of content items 65. For example, the system may generate the updated term by: extracting keywords that characterize the at least one of content items 65, from the content item, and/or from the context in which the content item was presented by its online content source 40. Such keywords may, for example, be determined using latent semantic indexing (LSI), a latent Dirichlet allocation (LDA), and/or a bag of words; using one or more association graphs associated by system 20 with the at least one of content items 65, such as using techniques described in the above-mentioned U.S. patent application Ser. No. 12/253,087, and/or one or more of the patent applications incorporated hereinbelow by reference. For some applications, the system constructs an association graph for a content item using the techniques described in the '087 application for constructing a document association graph (DAG), treating the content item as a document, such that, for example, the association graph represents the interactions between the content item and a plurality of searches conducted by a plurality of users, and provides information regarding the associations of key search terms with the content item. These techniques are generally applicable to content items that include textual material, as well as content items that include no (or very limited) textual material, such as video or still image content items; using semantic information and/or metadata provided by an API of the respective content source 40; and/or identifying keywords or terms of topics that characterize the at least one of content items 65, for example using topic identification techniques described in the above-mentioned U.S. patent application Ser. No. 12/253,087, and/or one or more of the patent applications incorporated hereinbelow by reference.
(44) When generating the updated term, the system may optionally take into account a profile of the user, a profile of a community of users to which the user belongs, or a global profile of all users of the system, such as described in U.S. patent application Ser. No. 12/253,087 and/or one or more of the patent applications incorporated hereinbelow by reference. Optionally, for applications in which the anchor term is being updated, the system generates the updated anchor term partially responsively to keywords of the anchor term prior to its being updated.
(45) For example, the system may generate the updated anchor term based on an intersection of (i) an association graph associated with the at least one of content items 65, and (ii) semantic information provided by an API of the respective content source 40, taking into account a profile of the user, a profile of a community to which the user belongs, and/or a global profile of all users of the system, for example using techniques described in the above-mentioned U.S. patent application Ser. No. 12/253,087. For some applications, the system generates a plurality of anchor terms, and at step 130 below, requests and receives respective updated sets 64 of content for the anchor terms, combines the updated sets for each content area, and ranks the combined sets, for example using techniques described in the above-mentioned U.S. patent application Ser. No. 12/253,087 (e.g., with reference to
(46) Reference is still made to
(47) For some applications, in order to generated the updated sets 64 of content items 65 that are related to the selected at least one of the content items, the system updates the anchor term at step 126, in order to generated an updated anchor term. In these cases, at an updated content request step 130, system 20 requests and receives respective updated sets 64 of content items 65 related to (e.g., generated responsively to) the updated anchor term (content items 65 are typically different from the updated anchor term). The system requests these updated sets from the one or more content sources 40 that respectively generated initial sets 64 of content items 65 displayed by the one or more of content areas 62 selected by the user at user synchronization instruction step 120 (i.e., in accordance with option (a) or (b) described hereinabove). The system typically requests these updated sets using the same techniques used for requesting the initial sets at initial content request step 110. The system updates the one or more of the content areas 62 to display at least portions of the updated sets 64 of content items 65, respectively, at an update content areas step 134. Alternatively, a client-side application (typically a script) executed by web browser 36 requests and receives the respective updated sets 64 of content items 65 directly from content sources 40. The client-side application typically communicates with system 20, which provides instructions to the application regarding the ranking of the content items, how many and/or which of the content items to display, and/or which portions of the content items to display. In order to enable system 20 to provide such instructions, the web browser may send updated sets 64 to system 20 and/or system 20 may receive updated sets 64 directly from content sources 40. Such communication may use protocols such as XML or JSON.
(48) For some applications in which the initial anchor term is displayed to the user in anchor area 106, the system updates the anchor area to display the updated anchor term. The system typically updates the anchor area for application in which the user drags element 122, or the selected at least one of the content items, into the anchor area, as described hereinabove. Alternatively, the system does not update the anchor area, and continues to display the initial anchor term in the area, even after the updated anchor term has been generated. Further alternatively, the system ceases to display the initial anchor term in the area, but does not display the updated anchor term.
(49) Alternatively, when the user instruction received at step 120 instructs the system to synchronize a particular one of the other content areas with the selected at least one of the content items (option (c)) (such as by dragging element 122, or the selected at least one of the content items, and dropping into the particular content area 62), the system causes web browser 36 to display, in the particular content area 62, an updated set 64 of content items 65 that are related to the selected at least one (e.g., exactly one) of the content items.
(50) For some applications, in order to generate the updated set 64 of content items 65 that are related to the selected at least one of the content items, the system generates an updated term at step 126 for the selected particular one of the other content areas (the term is considered updated, because the content of the particular content area was previously generated based on anchor term 102 or another term generated by the system in response to the user's previous instructions). In this case, at updated content request step 130, the updated term is typically used to request and receive exactly one updated set 64 of content items 65 for the selected particular one of the other content areas. The updated term is generally different from anchor term 102 used to generate content for some or all of the other content areas. As the user continues to synchronize various ones of the content areas, additional content areas may be assigned their own, unique teams. This user behavior may result in local synchronization of one or more pairs of content areas, but a lack of global synchronization between the content areas. Optionally, the system provides the user with the option of globally resynchronizing all of the content areas, such as by dragging a content item, or a graphical element 122 associated with a content item, into anchor area 106, and/or clicking on an icon or button in anchor area 106 that instructs the system to refresh the content areas based on the anchor term currently displayed in anchor area 106.
(51) Optionally, for applications in which the user instructs the system to synchronize a particular one of the other content areas (option (c)), at updated content request step 130, system 20, when requesting respective an updated set 64 of content items 65 related to the updated term, takes into account content items 65 currently displayed in the particular one of the other content areas (i.e., prior to the current update) (content items 65 are typically different from the updated term). For example, the system may request the updated set 64 using a combination of the updated term and one or more additional terms representative of the content items currently displayed in the particular one of the content areas. The system may, for example, ascertain these additional terms by analyzing the currently displayed content items, such as using techniques described hereinabove at updated term generation step 126, and/or by taking all or a portion of a previous anchor term used to generate the currently displayed content items. For some applications, this technique may be used when more than one content area 62 display content items 65 of the same category, as described above. For example, if a user drags a content item from a first content area 62 displaying social networking content to second content area 62 also displaying social networking content (received from the same or a different social network), the one or more content items 65 displayed in the second content area may be updated to reflect a combination of characteristics of the content item dragged into the second content area and the content previously displayed in the second content area. Alternatively, the system does not take into account the content items currently displayed in the particular one of the other content areas.
(52) For some applications, system 20 updates advertising content displayed in an advertising content area 132 (
(53) For some applications, portal server system 20 periodically updates the content items displayed in one or more of the content areas, typically without requiring webpage 60 to be again served in its entirety. The portal server system performs such automatic updating without requiring an action to be performed by the user, e.g., the user does not need to click on or otherwise activate an “update” or “search” button or icon, and the user does not need to refine a search. For some applications, system 20 periodically requests updated content items 65 from respective one or more online content sources 40, and updates the respective content areas 62 to display the updated content items, typically without requiring webpage 60 to be again served in its entirety. The portal server system thus presents the user with realtime or near realtime content, e.g., at least once every minute, once every 30 seconds, or once every 10 seconds. The displayed content may change, for example, because the online content sources indexes new content. Alternatively or additionally, for some applications, the portal server system updates the content items displayed in one or more of the content areas by displaying a different subset of the content items previously received from the respective one or more online content sources. For example, the portal server system may automatically change the ranking of the content items in a given content area, for example, based on interactions of other users with the content, such as other users on the Web and/or other users of the portal server system. Because only a small subset that includes the highest-ranked content items received from a given set of one or more online content sources is typically displayed in a content area, changing the ranking generally causes a different subset of the content items to be displayed. Alternatively, system 20 instructs one or more client-side applications (typically a scripts) executed by web browser 36 to periodically update the content items displayed in one or more of the content areas.
(54) Reference is now made to
(55) Method 200 begins with the same first four steps as method 100, namely initial anchor term receipt step 104, initial content request step 110, webpage generation step 112, and webpage serving step 114, as described hereinabove with reference to
(56) Method 200 continues with the designation (typically by system 20 and/or web browser 36) of exactly one of the content areas as an anchor content area 262, at an anchor area designation step 202. For example, a social updates content area 62 is shown as anchor content area 262 in
(57) One or more of content areas 62 other than anchor content area 262 are designated (typically by system 20 and/or web browser 36) as synchronized content areas 362, at a synchronized areas designation step 204. For example, a wiki content area 62, an advertisement area 62, a news area 62, and a video area 62 are shown as synchronized content areas 362 in
(58) At a content area update step 206, system 20 periodically updates some of content areas 62 in synchronization. To do so, at an anchor set update step 207, system 20 updates anchor set 264 of content items 65 by requesting the anchor set of content items from the respective one or more online content sources 40, using the techniques of initial content request step 110, described hereinabove with reference to
(59) For some applications, the system performs such updating automatically. The term “automatically,” as used in the present application, including the claims, means without receiving a specific command from the user to perform the particular update, but does not preclude receiving a configuration or instruction from the user to periodically perform such updates. For example, such updating may be performed at a rate of at least once every 30 seconds, no more than once every 5 minutes, and/or once every 30 seconds to once every 5 minutes. The rate is set to be fast enough to provide the user with generally constantly updated content, but slow enough to allow the user to read and understand the updated content before it is again updated. Optionally, the system allows the user to set the rate. For some applications, the system calculates the rate based on, for example, the average length of the content (e.g., a user can read a tweet more quickly than a wiki entry). The rate may be either variable or fixed. Alternatively or additionally, the system calculates the rate based on observed user behavior, such as the speed of a particular user's interaction with content (or an average for a group of the users). The system may calculate an amount of time sufficient to present information in each of the different content areas. Alternatively, the system performs such updating upon receiving a command from the user to do so, e.g., an indication that the user has clicked on a right or down arrow.
(60) System 20 performs an analysis of the updated anchor set of content items, and generates an updated anchor term responsively to the analysis, at an update anchor term step 208. Typically, the system generates the updated anchor term responsively to the one or more content items 65 displayed in anchor content area 262. For example, the system may extract keywords that characterize the one or more displayed content items 65, from the content items, or from the context in which the one or more content items were presented by its online content source 40. Such keywords may, for example, be determined using latent semantic indexing (LSI), a latent Dirichlet allocation (LDA), and/or a bag of words. Alternatively or additionally, the system generates the updated anchor term using an association graph associated by system 20 with the content items 65, such as using techniques described in the above-mentioned U.S. patent application Ser. No. 12/253,087, and/or one or more of the patent applications incorporated hereinbelow by reference. Further alternatively or additionally, the system generates the updated anchor term using semantic information provided by an API of the respective content source 40. Further alternatively or additionally, the system generates the updated anchor term responsively to keywords or terms of topics that characterize the content, for example determined using topic identification techniques described in one or more of the patent applications incorporated hereinbelow by reference.
(61) Optionally, when generating the updated anchor term, the system may analyze only a highest-ranked portion of content items 65 of the anchor content set, e.g., only those content items selected for display in anchor content area 262. For example, the portal server system may automatically change the ranking of the content items in a given content area, for example, based on interactions of other users with the content, such as other users on the Web and/or other users of the portal server system. Thus, the anchor term may change based on an updated ranking of the content items, even if there has been little or no change to the complete set of content items received from the one or more online content sources.
(62) When generating the updated anchor tent, the system may optionally take into account a profile of the user, a profile of a community of users to which the user belongs, or a global profile of all users of the system, such as described in the above-mentioned U.S. patent application Ser. No. 12/253,087, and/or one or more of the other patent applications incorporated hereinbelow by reference. Optionally, the system generates the updated anchor term partially responsively to keywords of the anchor term prior to its being updated.
(63) For some applications in which the initial anchor term is displayed to the user in anchor area 106, the system may update the anchor area to display the updated anchor term. Alternatively, the system does not update the anchor area, and continues to display the initial anchor term in the area, even after the anchor term has been updated.
(64) At an updated content request step 210, system 20 requests and receives respective updated synchronized sets 364 of content items 65 in response to an analysis of the updated anchor set 264 of content items 65. Typically, the analysis identifies, for inclusion in synchronized sets 364, and/or for display in the synchronized content areas, content items 65 that are related to the content items of updated anchor set 264. For some applications, system 20 requests and receives respective updated synchronized sets 364 of content items 65 generated responsively to the updated anchor term. The system requests these updated sets from the one or more content sources 40 that respectively initially generated the synchronized sets 364 of content items 65. The system typically requests these updated sets using the same techniques used for requesting the initial sets at initial content request step 110, described hereinabove with reference to
(65) System 20 updates anchor content area 262 to display at least a portion of the updated anchor set 264 of content items 65, at an update anchor content area step 212. At a synchronization step 214, system 20 automatically synchronizes synchronized content areas 362 to display at least portions of updated synchronized sets 364 of content items 65, respectively. Typically, system 20 performs steps 212 and 214 without requiring webpage 60 to be again served in its entirety. For some applications, the server synchronizes the synchronized content areas at once every minute, no more than one every five minutes, and/or once every one to five minutes. This rate generally maintains the relevance of synchronized content areas 362 to the current content of anchor area 262, while providing the user with sufficient time to view the content in the synchronized areas before it changes yet again.
(66) As a result of this synchronization, one or more of the synchronized content areas displays content of potential relevance to the user, in light of the content currently displayed in the anchor content area. As the content in the anchor area changes, the content in the synchronized content areas is automatically updated to be of continued relevance. The content displayed in the synchronized content areas thus may serve to provide the user with a better understanding of the content being streamed in the anchor content area.
(67) For example, assume that anchor content area 262 in
(68) For some applications, the advertising content displayed in advertisement area 62 is updated using techniques described in the above-mentioned U.S. patent application Ser. No. 12/023,564.
(69) For some applications, system 20 provides the user the option to lock one or more of content areas 62. In response to an instruction from the user to do so, the system withholds periodically updating the locked content areas at step 206, while continuing to periodically others of the content areas at step 206. Such locking enables the user to preserve the display of content of interest to the user.
(70) The techniques of method 200 may be performed in combination with those of method 100, described hereinabove with reference to
(71) Reference is again made to
(72) For some applications, system 20 provides at least one of content areas 62 with a search field 134 (
(73) For some applications, when performing method 100, described hereinabove with reference to
(74) For some applications, when performing method 100, described hereinabove with reference to
(75) For some applications, system 20 configures content areas 62 to provide functionality for receiving a user request to display additional content items, such as a next/previous icon set. Typically, each content area displays between one and three content items at any given time, although a content area may sometimes display no content items (in which case the system typically displays a message apologizing for not finding any results) or more than three content items. For some applications, a content area displays one primary content item with a relatively high level of detail, and one or more secondary content items with a relatively low level of detail, e.g., synopsized. These secondary content items may, for example, be displayed near the bottom of the area. For some applications, system 20 configures content areas 62 to provide an expansion icon. Upon selection of the icon by the user, the system expands the area, and typically displays additional content items in the area, such as between five and ten content items. Alternatively or additionally, the system allows the user to adjust the size of the area, such as by stretching the borders of the area, and the number of content items displayed in the area is set according to the set size of the area. For applications in which website publisher 50 serves webpage 60, the website publisher may perform or assist in the performance of the techniques described in this paragraph.
(76) For some applications, system 20 provides content areas 62 with an icon to close the area, and/or an icon to minimize the area. For some applications, in response to a user request to minimize the area, the system removes the area from the main area of webpage 60, and creates an icon 388 representing the area in a tray 390 (shown in
(77) For some applications, one or more of content areas 62, and/or content items 65, are served by a server separate from system 20, such as a third-party server operated by an entity different from the entity operating system 20. For example, the third-party entity may be an online retailer or an online publisher. System 20 alerts the separate server of requested changes in content as the system performs the methods described herein.
(78) Reference is again made to
(79) For some applications, system 20 provides a question area 394 (shown in
(80) For some applications, a user arrives at webpage 60 by executing a search on a site affiliated with the publisher of webpage 60, clicking on a link provided by a search engine external to the publisher of webpage 60, or clicking on a graphical element on a webpage associated with one of online content sources 40.
(81) For some applications, the system enables sharing of content with friends in one or more social networks by allowing the user to drag and drop the content in one or more social network areas, which display content received from the same or different social networks. For some applications, content item 65 comprises an identifier of a social network member, which may be represented, for example, by the member's name and/or photo. For some applications, at updated term generation step 126 of method 100, described hereinabove with reference to
(82) Reference is now made to
(83) TABLE-US-00001 TABLE A Content area Exemplary content (A) Computer software - Wikipedia, the free encyclopedia Web Computer software, or just software, is the collection of computer programs and related data that provide the instructions telling a computer what to do and how to do it. http://en.wikipedia.org/wiki/Computer_software Amazon.com Software: Business, office, accounting, design . . . Online shopping for computer software, business & office productivity software, software from Microsoft, Apple, Adobe & more; accounting, antivirus, graphics & development software . . . http://www.amazon.com/software-business-education-finance- childrens . . . software: West's Encyclopedia of American Law (Full . . . software n. Computer Science The programs, routines, and symbolic languages that control the functioning of the hardware and direct its http://www.answers.com/topic/computer-software (B) Neuron-Like Computer Hardware Finally Gets Software News Through this relationship, a memristor can “remember” a piece of information, just like a biological neuron . . . in a silicon chip, computer scientists could create a system http://www.msnbc.msn.com/id/40537109 New Brain Machine Reads Minds in Modest Breakthrough A new advance in brain-machine interfaces could enable . . . When that participant thought about Venus Williams, only the Venus Williams neuron would fire. The participants were then asked to look at a computer screen . . . http://www.msnbc.msn.com/id/39872122 Brain Cells: How to Preserve Them The brain is not too different from the rest of your body. It needs to be well-nourished. All animals except humans know this instinctively; because the head is elevated whenever an animal moves, sleep is the best . . . http://www.huffingtonpost.com/jane-g-goldberg-phd/ brain-cells-how-t . . . (C) Privacy Policy Site Privacy Policy We recognize that privacy is an important issue Search for our users. Collarity, Inc. (“Collarity”) is committed to protecting your privacy and is also committed to providing you a . . . http://www.collarity.com/privacy-policy/17-misc/ 65-privacy-policy.html (D) tbsartono IP TV software to watch channels on computer, Twitter an iPhone, a laptop, or transfer movie and shows to regular television. http://goo.gl/PQunO b46u5 IP TV software to watch channels on computer, an iPhone, a laptop, or transfer movie and shows to regular television. http://goo.gl/PQunO mnrtpr Pc Spy Software - Great Convertion.: Computer Monitoring Software. Spy On Cheating Spouce, Children And Employee . . . http://bit.ly/h1nPAW K201 Good information for the chapter on System Software - http://computer.howstuffworks.com/operating-system2.htm (E) business systems internet services Related music downloads offers Search- online servicesproducts es provides support system systems management windows applications (F) Computer Software Blog Windows Software - Linux Software - Mac Software - Handphone Software - All Software http://komputer-mania.blogspot.com/ Ready for IFRS: Computer Software Cost, Capitalized or . . . Based on IAS 38 Intangible Assets, paragraph 4 which explains that some intangible assets may be contained in or on a physical substance such as a compact disc (in the case of . . . http://faainc.blogspot.com/2010/08/computer- software-cost-capitaliz . . . Computer Software Designing a web site can be a crucial step in your business' exposure; however, designing a site that attracts future clients and customers can be a difficult task. http://combutersoftware.blogspot.com/
(84)
(85) In response to this instruction, at step 126 of method 100, system 20 generates an updated anchor term 102 (in this example, “Computer Neuron brain”), and displays the updated anchor term in anchor area 106, as shown
(86) TABLE-US-00002 TABLE B Content area Exemplary content (G) Project AI: Brain & Computer--How Biological Neurons Work Web We have a wound at the right elbow! Send reinforcements! It looks like a computer. . . . A Simplified, Generic Neuron http://library.thinkquest.org/19314/neurons.htm Brain Cells Fused with Computer Chip | LiveScience Neuron from rat brain on a linear array of transistors. The ionic current in the cell . . . Scientists Make Bacteria Behave Like Computers; Brain Power: Mind Control of External . . . http://www.livescience.com/health/060327_neuro_chips.html The Life and Death of a Neuron: National Institute of . . . Once a neuron is born it has to travel to the place in the brain where it will do its work. How does a neuron know where to go? What helps it get there? http://www.ninds.nih. gov/disorders/brain_basics/ninds_neuron.htm (H) Neuron-Like Computer Hardware Finally Gets Software News Through this relationship, a memristor can “remember” a piece of information, just like a biological neuron . . . in a silicon chip, computer scientists could create a system not too dissimilar in function to a flesh- . . . http://www.msnbc.msn.com/id/40537109 New Brain Machine Reads Minds in Modest Breakthrough A new advance in brain-machine interfaces could enable . . . When that participant thought about Venus Williams, only the Venus Williams neuron would fire. The participants were then asked to look at a computer screen . . . http://www.msnbc.msn.com/id/39872122 Brain Cells: How to Preserve Them The brain is not too different from the rest of your body. It needs to be well-nourished. All animals except humans know this instinctively; because the head is elevated whenever an animal moves, sleep is the best . . . http://www.huffingtonpost.com/jane-g-goldberg-phd/ brain-cells-how-t . . . (I) Your search for computer neuron brain did not match any Twitter documents (J) computing science digital rat Related human power interface Search- model making patterns es spontaneously develops organized (K) Brain Stimulant: Carbon Nanotube Neuron Interface Blog Blog focusing on new neurotechnology, brain stimulation, brain-computer interfaces, neuroengineering, neuroscience, brain emulation, neuromorphic chips, altering consciousness and . . . http://brainstimulant.blogspot.com/2008/11/ carbon-nanotube-neuron-i . . . Brain Stimulant: Brain Synapse Computational Capacity By merely simulating a higher level of brain functioning (overall neuron firing/activity) on a computer, researchers may totally miss a substantial amount of lower level functioning http://brainstimulant.blogspot.com/2009/05/brain-synapse- computatio . . . Brain Stimulant: Neuron Replacement using Stem Cells Blog focusing on new neurotechnology, brain stimulation, brain-computer interfaces, neuroengineering, neuroscience, brain emulation, neuromorphic chips, altering consciousness and . . . http://brainstimulant.blogspot.com/2008/02/neuron- replacement-with- . . .
(87)
(88) In response to this instruction, at step 126 of method 100, system 20 generates an updated term for the “blog” content area. The system updates the content items displayed in the “blog” content area, at steps 130 and 134 of method 100, as shown in
(89) TABLE-US-00003 TABLE C Content area Exemplary content (L) Blog P.I.X.E.L.S.N.I.P.E.R.-: March 2006 LiveScience.com - Brain Cells Fused with Computer Chip The game is no. Researchers at the University of Padua in Italy have developed “neuro-chips” in which living brain cells and . . . http://pixelsniper.blogspot.com/2006_03_01_archive.html Pushing a Snake Up a Hill: April 2006 And while we're on the subject of brainpower, how about Brain Cells Fused with Computer Chip? The stuff of SF, all right, moving toward reality. http://starrigger.blogspot.com/2006_04_01_archive.html Matterik's Blog: April 2007 By 2035, an implantable information chip could be developed and wired directly to the user's brain . . . Brain Cells Fused with Computer Chip http://matterik.blogspot.com/2007_04_01_archive.html
(90) Of note, this user instruction caused synchronization of only the “blog” content area with the selected content item, and did not cause synchronization of any of the other content areas, or change anchor term 102.
(91) Reference is made to
(92) The user provides an instruction to system 20 to synchronize all or a portion of content areas 62 displayed on webpage 60 with the content item, such as by dragging graphical element 302 and dropping the graphical element on webpage 60. As described hereinabove with reference to
(93) Upon receiving the instruction from the user, the system causes web browser 36 to display, in the one or more content areas to be synchronized, respective updated sets 64 of content items 65 that are related to the selected content item represented in the GUI (e.g., on the desktop). The system generates an updated term, such as using one or more of the techniques described hereinabove with reference to
(94) As used in the present application, including in the claims, “clicking on” an element of a webpage means pointing at the element, such as using a mouse, stylus, or other pointing device, and pressing a button on the mouse or other pointing device, or otherwise indicating selection of the item, such as by double-tapping a pointing device or touching (e.g., tapping, double-tapping, or making other finger motions to) a touch-sensitive display using a finger or pointing device, or using other techniques known in the art for selecting the element of a webpage in a manner analogous to mouse-clicking.
(95) For some applications, as mentioned above with reference to
(96) Techniques of applications of the present invention may improve the efficiency of accessing content from multiple web sources, and conserve the use of computer resources.
(97) Embodiments of the present invention described herein can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment including both hardware and software elements. In an embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
(98) Furthermore, the embodiments of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can comprise, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium.
(99) Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
(100) Typically, the operations described herein that are performed by system 20 transform the physical state of memory 34, which is a real physical article, to have a different magnetic polarity, electrical charge, or the like depending on the technology of the memory that is used.
(101) A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. The system can read the inventive instructions on the program storage devices and follow these instructions to execute the methodology of the embodiments of the invention.
(102) Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
(103) Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the C programming language or similar programming languages.
(104) It will be understood that each block of the flowcharts shown in
(105) The scope of the present invention includes embodiments described in the following applications, which are assigned to the assignee of the present application and are incorporated herein by reference. In an embodiment, techniques and apparatus described in one or more of the following applications are combined with techniques and apparatus described herein: International Patent Application PCT/US07/67103, filed Apr. 20, 2007, entitled, “Search techniques using association graphs,” which published as International Publication WO 07/124430 to Ismalon; U.S. patent application Ser. No. 11/633,461, filed Dec. 5, 2006, entitled, “A multi-directional and auto-adaptive relevance and search system and methods thereof,” which published as US Patent Application Publication 2007/0250500 to Ismalon; U.S. Provisional Patent Application 60/793,253, filed Apr. 20, 2006, entitled, “Methods for using association graphs in search engines”; U.S. Provisional Patent Application 60/796,188, filed May 1, 2006, entitled, “Apparatus and methods thereof for search engine personalization”; U.S. Provisional Patent Application 60/829,136, filed Oct. 11, 2006, entitled, “Apparatus and methods thereof for search phrase refinement”; U.S. Provisional Patent Application 60/829,135, filed Oct. 11, 2006, entitled, “Apparatus and methods thereof for using explicit query refinements to tune search results ranking factors”; U.S. Provisional Patent Application 60/829,132, filed Oct. 11, 2006, entitled, “Apparatus and methods thereof for adaptive ranking mechanism using association graphs and contextual analysis”; U.S. Provisional Patent Application 60/886,193, filed Jan. 23, 2007, entitled, “Multi-directional and auto-adaptive relevance and search system and methods thereof”; U.S. Provisional Patent Application 60/887,580, filed Jan. 31, 2007, entitled, “Searchable banner display and apparatus that enables exploring destination content prior to reaching it”; U.S. Provisional Patent Application 60/741,902, filed in January 2006, entitled, “A multi-directional and auto-adaptive relevance and search system and methods thereof”; U.S. patent application Ser. No. 11/846,213, filed Aug. 28, 2007, entitled, “Search phrase refinement by search term replacement,” which published as US Patent Application Publication 2008/0091670 to Ismalon, and issued as U.S. Pat. No. 7,756,855; U.S. patent application Ser. No. 11/870,999, filed Oct. 11, 2007, entitled, “Negative associations for search results ranking and refinement,” which published as US Patent Application Publication 2008/0140643 to Ismalon; U.S. patent application Ser. No. 12/023,564, filed Jan. 31, 2008, entitled, “Searchable interactive internet advertisements,” which published as US Patent Application Publication 2008/0215416 to Ismalon; U.S. patent application Ser. No. 12/397,510, filed Mar. 4, 2009, entitled, “Optimization of social distribution networks,” which published as US Patent Application Publication 2009/0228296 to Ismalon; U.S. patent application Ser. No. 12/253,087, filed Oct. 16, 2008, entitled, “Techniques for ranking search results,” which published as US Patent Application Publication 2009/0119261 to Ismalon; U.S. patent application Ser. No. 12/491,451, filed Jun. 25, 2009, entitled, “Interactions among online digital identities,” which published as US Patent Application Publication 2010/0049770 to Ismalon; and U.S. patent application Publication Ser. No. 12/801,534, filed Jun. 14, 2010, entitled, “Generation of refinement terms for search queries,” which issued as U.S. Pat. No. 8,429,184 to Ismalon.
(106) It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and subcombinations of the various features described hereinabove, as well as variations and modifications thereof that are not in the prior art, which would occur to persons skilled in the art upon reading the foregoing description.