[go: up one dir, main page]

HK1177645B - Method and system for action suggestion using browser history - Google Patents

Method and system for action suggestion using browser history Download PDF

Info

Publication number
HK1177645B
HK1177645B HK13105521.2A HK13105521A HK1177645B HK 1177645 B HK1177645 B HK 1177645B HK 13105521 A HK13105521 A HK 13105521A HK 1177645 B HK1177645 B HK 1177645B
Authority
HK
Hong Kong
Prior art keywords
category
computing device
web page
determining
user
Prior art date
Application number
HK13105521.2A
Other languages
Chinese (zh)
Other versions
HK1177645A1 (en
Inventor
保罗.布罗曼
Original Assignee
埃克斯凯利博Ip有限责任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/755,789 external-priority patent/US8863000B2/en
Application filed by 埃克斯凯利博Ip有限责任公司 filed Critical 埃克斯凯利博Ip有限责任公司
Publication of HK1177645A1 publication Critical patent/HK1177645A1/en
Publication of HK1177645B publication Critical patent/HK1177645B/en

Links

Description

Method and system for action suggestion using browser history
Technical Field
The present disclosure relates to web pages, and more particularly to methods and systems for action suggestion using browser history.
Background
The structure of the world wide web is based on web pages and domain names associated with those web pages. Each web page is identified by its Uniform Resource Locator (URL). When the user saves the bookmark, the user saves the URL associated with the web page that the user may want to go back to. When a user registers for a Really Simple Syndication (RSS) feed, the user gets information from a single web page source. In addition, each instance of a typical web browser is configured to display a single web page.
Disclosure of Invention
Although the structure of the web is based on individual web pages, the intent of a web user is typically not based on the particular web page itself, but rather on concepts or topics of interest.
In one aspect, a server computer receives, over a network from a client-side module executing on a computing device, a Uniform Resource Locator (URL) associated with a web page to which a user navigates via a browser executing on the computing device. The server computer determines that the web page is part of a domain that the user has navigated to more than a predetermined number of times within a given time period. The server computer determines a category associated with the web page and determines one or more actions associated with the domain. The server computer sends a link to the computing device for display in the browser, the link representing an action associated with the domain and the category associated with the web page.
In one embodiment, a set of topics associated with a web page is determined by a server computer. In one embodiment, the server computer determines a predetermined number of supported web pages for each category. In one embodiment, the server computer determines the steps that need to be performed to complete the actions for each of a predetermined number of web pages within the category. In one embodiment, the determined steps are stored in a storage medium. In one embodiment, sending the link representing the action further comprises sending a link that, when selected, causes data to be entered in the form of a web.
In another aspect, a computing device determines that a web page navigated to by a user of a browser executing on the computing device is part of a domain that the user has navigated to more than a predetermined number of times within a given time period. The computing device determines a category associated with the web page. The browser then displays one or more actions associated with the domain and the category associated with the web page.
In one embodiment, a computing device determines a set of topics associated with a web page. In one embodiment, a computing device determines a predetermined number of supported web pages associated with a category in a domain. In one embodiment, a computing device determines steps that need to be performed to complete an action for each of a predetermined number of web pages associated with a category.
These and other aspects and embodiments will become apparent to those skilled in the art by reference to the following detailed description and the accompanying drawings.
Drawings
In the drawings, in which like numerals represent like elements throughout the several views, regardless of size:
FIG. 1 is a block diagram of a client module of a computing device in communication with a server computer over a network according to an embodiment of the present disclosure;
FIG. 2 is a flowchart illustrating steps performed by the computing device of FIG. 1 in accordance with an embodiment of the present disclosure;
FIG. 3 is a flowchart illustrating steps performed by the computing device of FIG. 1 in accordance with an embodiment of the present disclosure;
FIG. 4 is a flowchart of steps performed by the server computer of FIG. 1, according to an embodiment of the present disclosure;
FIG. 5 is a block diagram of modules and Application Program Interfaces (APIs) executing on the server computer of FIG. 1 and the computing device of FIG. 1 in accordance with an embodiment of the present disclosure;
FIG. 6 is a flowchart of steps performed by the computing device of FIG. 1 to provide a topic detail view in accordance with an embodiment of the present disclosure;
FIG. 7 is a screen shot of a sidebar displayed in a second content area of a browser according to an embodiment of the present disclosure;
FIG. 8 is a display computing device navigating to a location with respect to Nintendo according to an embodiment of the present disclosureScreenshots of a browser of a first content area and a second content area showing topic information at a web page of a comment of a console;
FIG. 9 is a diagram showing a user navigating to a comment Nintendo in accordance with an embodiment of the present disclosureA browser screenshot of a detailed view in a sidebar behind a web page of (a);
FIG. 10 is a screen shot of a browser displaying a sidebar in which a news tab has been selected by a user according to an embodiment of the present disclosure;
FIG. 11 is a screen shot of a browser displaying a sidebar containing a detailed view of an athlete in accordance with an embodiment of the present disclosure;
FIG. 12 is a screenshot of a browser having navigated to a web page describing the movie "District 9 (zone 9)", according to an embodiment of the present disclosure;
FIG. 13 is a flowchart illustrating steps performed by a client-side module to determine topic-based browser history in accordance with an embodiment of the present disclosure;
FIG. 14 is a flowchart illustrating steps performed by a client-side module to collect topic-based browser history in accordance with an embodiment of the present disclosure;
FIG. 15 illustrates a database architecture used to store topic-based browser history in a topic history database in accordance with an embodiment of the present disclosure;
FIG. 16 is a flowchart illustrating steps performed by the server computer of FIG. 1 in order for the client module to suggest one or more actions to the user in accordance with an embodiment of the present disclosure;
FIG. 17 is a flowchart illustrating steps performed by a client-side module to populate a domain history database according to an embodiment of the present disclosure;
FIG. 18 is a flowchart illustrating steps performed by a client-side module to suggest actions associated with a web site most frequently visited by a user using a browser history in accordance with an embodiment of the present disclosure;
FIG. 19 illustrates a database architecture used to store action records in an action database in accordance with an embodiment of the present disclosure;
FIG. 20 is a block diagram of an embodiment of the server computer of FIG. 1 having a training module, an indexing module, and a run module in accordance with an embodiment of the present disclosure;
FIG. 21 is a flowchart illustrating steps performed by modules of the server computer of FIG. 20 in accordance with an embodiment of the present disclosure;
FIG. 22 is a block diagram of the training module of FIG. 21 in accordance with an embodiment of the present disclosure;
FIG. 23 is a flowchart of steps performed by the training module of FIG. 22 according to an embodiment of the present disclosure;
FIG. 24 is a block diagram of the indexing module of FIG. 20 according to an embodiment of the present disclosure;
FIG. 25 is a flowchart of steps performed by the indexing module of FIG. 24, in accordance with an embodiment of the present disclosure;
FIG. 26 is a screen shot of an example disambiguation according to an embodiment of the present disclosure;
FIG. 27A is a screen shot of an example disambiguation according to an embodiment of the present disclosure;
FIG. 27B is an example of an output window of the disambiguation example of FIG. 27A, according to an embodiment of the disclosure;
FIG. 28A is a screenshot of a selection example according to an embodiment of the present disclosure;
FIG. 28B is a sequence diagram of topics ranked according to the selection example of FIG. 28A, according to an embodiment of the present disclosure;
FIG. 28C is an example of an output window of the selection example of FIG. 28A, according to an embodiment of the disclosure;
FIG. 29 is a screen shot of a web page and sidebar that a user has navigated to in accordance with an embodiment of the present disclosure; and
fig. 30 is a block diagram illustrating an internal architecture of an example of a computing device, such as the server and/or computing device of fig. 1, in accordance with an embodiment of the present disclosure.
Detailed Description
Embodiments are now discussed in more detail with reference to the drawings of the present application. In the drawings, like and/or corresponding elements are referred to by like reference numerals.
Various embodiments are disclosed herein; it is to be understood that the disclosed embodiments are merely illustrative of the invention that may be embodied in various forms. Furthermore, each of the examples given in connection with the various embodiments is intended to be illustrative, and not restrictive. Further, the figures are not necessarily to scale, some features may be exaggerated to show details of particular components (and any dimensions, materials, and similar details shown in the figures are intended to be illustrative and not limiting). Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the disclosed embodiments.
FIG. 1 is a block diagram of an embodiment of a computing device 105 in communication with a server 110 over a network 115, such as the Internet. FIG. 2 is a flow diagram illustrating an embodiment of steps performed by computing device 105 of FIG. 1. A user of computing device 105 utilizes a web browser 118 running on computing device 105 to, for example, navigate to a web page (e.g., the home page of Yahoo | Inc., of Sunnyval, California) associated with a service provider (e.g., the home page of Yahoo | Inc.). In one embodiment, a user logs in (or creates) a user account of a service provider. In one embodiment, the server computer 110 receives a request from a user to login to an account and logs the user into the user account if the login information is correct.
In one embodiment, the computing device 105 sends a request to download the client module 125 from the server computer 110. The client-side module 125 may appear in any area of the browser (e.g., the left side of the browser 118, the right side of the browser 118, the top of the browser 118, and/or the bottom of the browser 118). In one embodiment, the client module 125 is a sidebar. In another embodiment, the client module 125 is a toolbar. In one embodiment, the client-side module 125 modifies the content displayed by the web page address bar (e.g., below the web page address bar). In one embodiment, the client module 125 is downloaded by the computing device 105 (step 205), and once the client module 125 is downloaded, a graphical User Interface (UI) associated with the client module 125 is displayed when the browser 118 navigates to a web page (associated or not with the service provider). In one embodiment, if the user selects to display the UI, a graphical UI is displayed. In one embodiment, the client-side module 125 (e.g., a sidebar or a toolbar) may be web-based in that the secondary content presentation framework is web-based. This means that it can be shared via the domain link and the recipient can get the sidebar/toolbar experience without the need to download.
For example, after downloading the client-side module 125, the user may navigate to a particular web page using the web browser 118 (step 210). In one embodiment, the web browser 118 displays the web page in a first content area 130 of the browser 118 and the content associated with the client-side module 125 in a second content area 135 of the browser 118. The size of the first content area 130 may be larger or smaller than the size of the second content area 135. In one embodiment, the size of either or both content areas is user adjustable. In one embodiment, when a user of computing device 105 enters a particular web page domain name, client-side module 125 is accessed through a browser.
In one embodiment, the computing device 105 transmits a request 140 for topics associated with the web page navigated to by the browser 118 (step 215). The request for topic 140 can be a URL of a web page to which the sending computing device 105 navigates. The request for topic 140 may also be a copy of the content of the web page to which the user navigates that is sent to the server computer 110.
In one embodiment, the server computer 110 includes a topic and category determination module 145. In one embodiment, the topic and category determination module 145 has previously analyzed the web pages to which the user has navigated and has stored the results of its analysis in a server storage 155 (e.g., a database). The server computer 110 (topic and category determination module 145) may then utilize the previous analysis to quickly determine one or more topics associated with the web page. Alternatively, the topic and category determination module 145, after receiving the request 140, analyzes the web page to determine a set of topics associated with the web page. A set of topics associated with a web page is defined herein as one or more topics associated with the web page. A topic may or may not be part of a title, URL, graphic, etc. of a web page and is typically determined by analyzing at least a portion of the text of the web page.
In one embodiment, the topic and category determination module 145 also determines a set of categories associated with the web page from data stored in the server storage 155 or from analysis of the web page. A category is a higher level of abstraction than a topic. For example, if a web page is discussing a Nikon digital camera, the topic of the web page may be a digital camera and the category of the web page may be a purchasable item. A set of categories associated with a web page is defined herein as one or more categories associated with the web page.
The server computer 110 sends a set of topics and categories 150 associated with the web page to the computing device 105. In one embodiment, the set of topics and categories 150 have been ordered or ranked according to their relevance to the web page itself. For example, a set of topics associated with a web page for a Nikon digital camera may be listed as
1. Digital camera
2. Camera with a camera module
3. Camera with a lens having a plurality of lenses
In one embodiment, a set of categories associated with a web page for a Nikon digital camera may be listed as
1. Purchasable item
2. Consumer product
In one embodiment, the server computer 110 (e.g., the topic and category determination module 145) sends the entire set of topics and the entire set of categories 150 to the computing device 105. In another embodiment, the server computer 110 transmits a predetermined number of the determined topics and categories (e.g., the first topic and the first category in each group). The computing device 105 receives the topics and categories 150 (step 220). In one embodiment, the computer device 105 stores the topics and categories 150 in a storage device 157 (e.g., a memory or database). The computing device 105 displays the web page in the first content area 130 of the web browser 118 (step 225) and displays one or more of the topics and/or categories in the second content area 135 of the web browser 118 (step 230). In one embodiment, the computing device 105 configures the second content region 135 of the web browser 118 according to the received category (step 235). For example, if the category associated with the web page is "sports," in one embodiment, the computing device 105 displays advertisements related to sports in addition to the received topics in the second content region 135. As another example, the computing device 105 may display sports-related graphics in the second content area 135 in addition to the received topics. Further, in one embodiment, different user interfaces are displayed based on the category of the particular topic.
FIG. 3 is a flow diagram illustrating an embodiment of the steps performed by computing device 105. In one embodiment, the server computer 110 sends one or more entities 160 associated with the topic to the computing device 105. As used herein, an entity (also referred to herein as an item) is text, a graphic, an icon, a video, a link, structured information, an article, a feed point, etc., associated with a topic determined from a web page. In one embodiment, the computing device 105 receives the entity (step 310) and displays the entity 160 in the second content region 135 of the browser 118 (e.g., while the user is viewing a web page in the first content region 130 of the browser 118) (step 315). In one embodiment, the computing device 105 configures the second content region 135 according to the received category (received with the topic or received with the entity) (step 320).
For purposes of this disclosure (and as described in greater detail below with respect to fig. 20), a computer or computing device, such as computing device 105 and/or server 110, includes a processor and memory for storing and executing program code, data, and software, which may also be tangibly stored or read from any type or kind of well-known computer-readable storage medium, such as a magnetic or optical disk or RAM disk or tape, as non-limiting examples. Computers may be provided with operating systems that allow software applications to be executed to operate on data. Personal computers, Personal Digital Assistants (PDAs), wireless devices, cellular telephones, internet appliances, media players, home theater systems, servers, and media centers are a few non-limiting examples of computing devices. In one embodiment, computing device 105 and server 110 may also include a display such as a screen or monitor. Further, the server and/or computing device may include one or more computers.
Examples of pseudo code executed by computing device 105 to detect topics are:
Begin
client module is notified of new web page loading via browser
The client module receives a set of topics from the server computer
If server computer does not return error code
Adding the returned topic to the topic history database (described in more detail below with reference to FIG. 14)
If the sidebar is open
Displaying topic notifications in a client module user interface
Else
Displaying topic counts on sidebars
Endif
Endif
End
Examples of pseudo code executed by the server computer 110 to detect topics are:
Begin
IfURL in cache
Retrieving topics from URL entries in a cache
Else
Obtaining topics from entity detection systems
Adding the obtained topics into a cache
Endif
IfURL is "bad" (unscanneble, adult, spam)
Returning error codes
Else
If topic is found
Return to topic
Else
Returning to the empty set
Endif
Endif
End
In one embodiment, the server computer 110 receives a request for a topic associated with a search query that has been entered into a search input area displayed by the browser 118 in the first content area 130. The server computer 110 sends the browser 118 the topics associated with the search query for display in the second content area 135 of the browser 118. In one embodiment, each topic associated with a search query corresponds to a category.
FIG. 4 is a flow diagram of an embodiment of the steps performed by the server computer 110. FIG. 5 is a block diagram of an embodiment of modules and Application Program Interfaces (APIs) executing on server computer 110 and client module 125. In one embodiment, server computingThe machine 110 receives the URL of the web page to which the computing device 105 has navigated (step 405). The server computer 110 determines a set of topics and a set of categories for the web page (step 410). The server computer 110 then determines, for each topic (step 412), whether each category determined in step 410 is general (i.e., not one of a predetermined set of categories stored by the server computer 110) (step 415). As described in more detail below with respect to FIG. 7, if the categories are generic, the server computer 110 will gather the generic data (e.g., from storing one or more knowledge collection website data files (e.g., from a web site database) if the categories are genericData file) to the database 502 to the computing device 105 (step 418).
If the category is not generic, the server computer 110 selects an appropriate category specific Application Program Interface (API) for obtaining data to send to the computing device 105 (step 420). The server computer 110 may include separate APIs for the different categories. For example, the server computer 110 may include a sports API505, a shopping API510, a movies API515, and an "any other category API" 520 that represents an API for any other category. In one embodiment, the server computer 110 utilizes a specialized API505,510,515,520 to obtain data that is to be part of the sent entity 160 associated with the web page. In one embodiment and as described in more detail below, the server computer 110 determines a domain action for a particular category (step 425). The server computer 110 may retrieve the domain actions associated with the category from the action database 525. The server computer 110 then transmits the category-specific data 532 (e.g., entities and/or action entries associated with the category) to the computer device 105 using the data transmission module 530 (step 430).
FIG. 6 is a flowchart of an embodiment of the steps performed by the computing device 105 to provide a topic detail view. The computing device 105 receives one or more topics and categories associated with the web page from the server computer 110 (step 605). In one embodiment, in step 610, the computing device 105 determines whether the categories are generic for each topic (step 608). If the category is generic, the computing device 105 displays (step 615) the generic data in the second content area 135 of the web browser 118 using the generic renderer 535. If the category is not generic, computing device 105 selects an appropriate category-specific rendering module based on the category (step 620). For example, the computing device 105 may include a player presenter 540 (e.g., for a sports category), a product presenter 545 (e.g., for a shopping category), a movie presenter 550 (e.g., for a movie category), and any other category presenter 555 (e.g., for other categories). The category specific presenter 540,545,550,555 presents the category specific content (step 625) in the second content area 135 of the browser 118. One or more of these renderers may be provided by a service provider or may be provided by one or more third parties.
In one embodiment and as described in more detail below with respect to fig. 15, computing device 105 determines one or more domain actions for the category (step 630). Computing device 105 renders the action with action renderer 560 (step 635). The action associated with the category may include, for example, a link to a Blockbuster's web page (if the category is a movie) that allows the user to rent a movie online. In another embodiment, the action may include filling out a Blockbuster's web form on a web page so that the user may rent the movie online. These actions may be presented, for example, by a user selecting a link, a user selecting a checkbox, and so forth.
Examples of pseudo code executed by computing device 105 for displaying topics in a detailed view are:
Begin
retrieving topic data from a server computer
If topic Categories are not "Universal"
Creating a set of tags (for "atagland" and "news")
Endif
Switch (based on category)
Case general-use general presenter
Case athlete-using athlete presenter
Case product-use product presenter
Case movie-using movie presenter
Case any other Categories-use any other Categories renderer
EndSwitch
Utilizing selected renderer program context specific content
Finding specialized actions based on categories
Loop for each action
If action domain is not in domain-based history
Removal action
Else
Incrementing action weights based on number of accesses
Endif
EndLoop
Ranking third party actions based on action weight
Presenting third party actions
End
Examples of pseudo code executed by the server computer 110 to display topics in a detailed view are:
Begin
if data for the topic is in cache
Return the data
Else
If topic class is "Universal"
Obtaining general data from local Wikipedia data heap
Else
Switch (based on category)
Case athlete-Using sports API
Case product-use shopping API
Case movie-Using movie API
Case any other Categories — Using any other Categories API
EndSwitch
API selected by Ping to obtain data
If data acquisition is successful
Adding data to topic cache
Return the data
Else
Returning errors
Endif
Endif
Endif
End
Fig. 7 is a screen shot of a sidebar 705 displayed in the second content area 135 of the browser 118. Sidebar 705 is a generic view that is displayed when a topic cannot be categorized into a particular predetermined category (see step 418 of FIG. 4 and step 615 of FIG. 6 above). The generic view of sidebar 705 includes generic information such as a link 710 to sports information, a link 715 to a business page, and a link 720 to news.
Fig. 8 is a screen shot of a browser 805 displaying a first content area 810 and a second content area 815 showing topic information when the computing device 105 navigates to a web page 812. In one embodiment, the second content area 815 includes a hashtag 820 that allows the user to view topical information. In one embodiment, the topic tag displays saved or previously focused topics 830 when selected by the user. As described in more detail below, this is referred to as the topic history of the user and refers to the topics that the user has saved (e.g., locally on computing device 105 or on storage device 157 associated with computing device 105).
In one embodiment, the topic tag 820 also includes a recent topic portion 840. Recent topics section 840 includes recently viewed topics (i.e., topics recently selected by the user of computing device 105 after the user is informed of the topics). In one embodiment, the topics listed in the recent topics section 840 also display the date the user viewed the topic. In one embodiment, the topic tags 820 also include topic suggestions 850 that are currently popular topics (e.g., typically searched via one or more search engines). In one embodiment, when the user selects one of the topics displayed in the topic tag 820, the user is directed to a detailed view. In one embodiment (and as shown in FIG. 8), web page 812 is for NintendoReview of the console.
In FIG. 8, secondary content is not associated with the current web page. The MyInterests user interface is a user information panel that displays topics that the user is focusing on, recently viewed topics, and suggested topics. In one embodiment, the user accesses the user interface via a global button (possibly also from the browser chrome) in the secondary content area at any time during the browsing session.
FIG. 9 is a diagram showing a user navigating to the comment NintendoA screenshot of an embodiment of browser 905 in a detailed view in sidebar 910 behind a web page 812 of the console. In one embodiment, the detailed view includes an entity 915 associated with the web page. In one embodiment, entity 915 includes text (Nintendo)) Graph (Nitendo)Graph), price range ($ 199.99- $ 299.99), and score (4 out of 5 stars).
In one embodiment, the detailed entity of the sidebar 910 provides the related topic 920, the related topic 920 being other topics related to the web page (in this example, Nintendo)A console). In one embodiment, if the user selects related topic 920, the user navigates (in sidebar 910) to a detailed view for the selected topic. The detailed view shown in sidebar 910 also includes an "ataglence" tab 925. When selected, the "ataglence" tab 925 displays a context-specific view for the topic that is found. In this example, "nintendo wii" has been classified as a product. Thus, the AtaGlance tab 925 displays shopping information 930 (e.g., price information, a link to an online store, a link to eBay, a link to Craigsist, etc.). The sidebar 910 also includes a News (News) tab 940.
The user may navigate to the web page 812 from the My interests user interface, which is a personalized search usage instance in which content is displayed in the second content area 910 and/or a browsing usage instance in which related topics are displayed in the second content area 910 and from shared links.
FIG. 10 is a screen shot of browser 1005 showing a sidebar 1010 in which a news tab 1020 has been selected by the user. In one embodiment, the news tab 1020 may display articles, photos, and/or videos corresponding to the topic 1025 associated with the web page 812. An article (Articles) button 1040 has been selected in news tab 1020. In one embodiment, the articles displayed when the articles button 1040 is selected are grouped by provider and ranked based on a calculation that takes into account one or more of: 1) the number of articles found from the provider, 2) the relevance of those articles, 3) the number of times the user has accessed the articles appearing in the results, 4) the number of times the user has accessed the domain and/or 5) whether the domain has been marked as "favorite" by the user.
An example of pseudo code used by the computing device 105 to display articles for a topic is as follows:
Begin
retrieving topic-specific article data from a server computer
Loop for article results
Increasing the "ranking weight" of an article based on a user's access to the article "
Increasing the "ranking weight" of an article based on whether it is a browser bookmark "
Place articles in the appropriate "Domain bucket
Add the weight of the article to the weight of the bucket
EndLoop
Loop is directed to domain "buckets"
If domain removes the domain "bucket" on the blacklist (stored on the client) for that category type "
Else
Increasing domain weight based on number of accesses from domain-based history
If it is the "favorite" domain (stored on the computing device) then the weight is increased
Endif
EndLoop
Ordering the Domain buckets according to an ordering weight
Rendering the domain starting from the highest weight until a cutoff is reached
End
It should be noted that the "article" mentioned above in the pseudo-code may be replaced with a photo, video, etc.
An example of pseudo code used by the server computer 110 to display articles for a topic is as follows:
Begin
if article data for the topic is in cache
Returning cached articles
Else
Taking 100 articles from the most popular article source
Adding the resulting articles to an appropriate cache
Returning the obtained article
Endif
End
It should be noted that the "article" referenced in the above pseudo-code may be replaced with a photo, video, etc.
FIG. 11 is a screenshot of a browser 1105 displaying a sidebar 1110 that includes a detailed view of an athlete. In the athlete's detailed view, different content is available under the "AtaGlance" tab 1120. When the user selects "KobeBryant" from the focused topic 830 of fig. 8 "The view is obtained. KobeBryant is topic 1130 in the detailed view. Topic 1130 includes a picture of KobeBryant and information about KobeBryant such as his location (scoring backfencing), his team (los angeles lake man), and his statistical information (e.g., 26.8 points per field). In the first content area, browser 118 is still displaying content about NintendoA web page 812 of console reviews. The information displayed under the "AtaGlance" tab 1120 is different from the information displayed in FIGS. 8-10. Specifically, when topic 1130 is a player and the category is sports, in one embodiment, information about the player (e.g., KobeBryant) is displayed and a link to a sports website (e.g., sports approved, ESPN, etc.) is displayed. In one embodiment, the user may pull up recent or "favorite" topics using the "My interests" view shown in FIG. 8, so the user does not need to be on a web page where topics are found to get information about previously viewed topics using the user interface. This is why KobeBryant in fig. 11 is still viewed on the nintendo wii page 812.
FIG. 12 is a screen shot of a browser 1205 that has navigated to a web page 1210 describing the movie "District 9". An entity 1215 for the web page 1210 is determined and displayed in the sidebar 1220. Entity 1215 includes a topic ("District 9") for web page 1210, a picture of a movie, and some comments. The sidebars include, for example, a tile 1230,1240, a link 1250 to Netflix, and a movie review 1260.
In one embodiment, the browser history associated with the browser 118 is associated with a topic. Thus, in one embodiment, it is not immediately apparent based on their titles that the associated two web pages may actually be found to be associated based on the primary topic of the web page. The topic-based browser history may be displayed based on the topic the user is currently browsing. Thus, when a user accesses topics on a web page that the user is focusing on or is related to which the user has currently navigated to, the browser history will be accessed such that web pages from the user's history on the requested topic will be displayed.
FIG. 13 is a flowchart illustrating an embodiment of the steps performed by the client-side module 125 to determine a topic-based browser history. The user navigates to a particular web page using browser 118 (step 1305). In one embodiment, the client-side module 125 gets a set of topics associated with the web page to which the user navigates (step 1310). The set of topics may be retrieved from the storage 157 or may be received from the server computer 110. The client-side module 125 then determines other topics related to the set of topics associated with the web page (step 1315). The client-side module 125 then determines the web pages associated with the other topics that the browser 118 navigates to within a predetermined amount of time (e.g., within a set number of hours, within a set number of days, etc.) (step 1320). The browser 118 displays the web page in the first content area 130 (step 1325) and displays other topics related to the set of topics and one or more links to web pages associated with the other topics in the second content area 135 (step 1330).
In one embodiment, the client-side module 125 sends the URL of the web page to the server computer 110. The server computer 110 receives the URL and gets (e.g., retrieves from the server storage 155) a set of topics associated with the web page. In one embodiment, the server computer 110 determines other topics related to a set of topics associated with the web page, and also determines web pages associated with the other topics that the browser navigates to within a predetermined amount of time. The server computer 110 sends the other topics and links to web pages associated with the other topics to the client module 125 for display in the second content area 135 of the browser 118. In another embodiment, the client-side module 125 determines other topics related to the set of topics associated with the web page and determines the web pages associated with the other topics that the browser navigates to within a predetermined amount of time.
FIG. 14 is a flowchart of the steps performed by the client-side module 125 to collect topic-based browser history. The client-side module 125 receives information from the web browser that a new web page is being loaded (step 1405). As described above, the client-side module 125 receives topics (e.g., entities) associated with web pages from the server computer 110. As described above, once the server computer 110 receives the request 140 for the topic associated with the web page (e.g., once the server computer 110 receives the URL), the server computer 110 may retrieve the topic information (e.g., entity) from its server storage 155 or may analyze the new web page. The client module 125 adds the URL of the web page and the received topic to a topic history database (or memory), such as storage 157, associated with the client module 125 (step 1415). The client-side module 125 then determines whether there is another URL in the topic history that is associated with the currently displayed topic (step 1420). If not, the process ends (step 1425).
If there is another URL in the topic history database 157 that is associated with the topic currently being displayed, the client module 125 retrieves the next URL from the topic history database 157 (step 1430). The client-side module 125 then displays the link to the found URL in the second content area 135 of the browser 118 (step 1435). This is shown above in the recent topics section 840 of FIG. 8. In one embodiment, the client-side module 125 performs step 1435 only if the second content area (e.g., sidebar) is open. In another embodiment, the client-side module 125 displays an alert with a new topic to display. If the user accepts the alert, a new topic is displayed. In one embodiment, a topic encounter (encounter) stored in storage 157 is used as a clue when to display notifications to the user.
In one embodiment, to determine web pages related to a particular topic in a particular time period that other users have visited, the topics related to the URLs are stored in a database. This results in the contents of the database being keyed in and thus searchable by topic. Thus, the URL associated with the topic that the user previously visited may be determined. In one embodiment, a score is calculated for each stored URL. In one embodiment, this score is based on the date of all visits and/or last visit. In one embodiment, topics related to web pages are automatically added to a topic history of a user. In another embodiment, the user must perform an explicit action (e.g., a topic must be accessed/viewed) to cause an entry to be added to the user's topic history.
FIG. 15 illustrates an embodiment of a database architecture used to store topic-based browser history in topic history database 157. The database schema includes URL records that link to topic record 1510. The URL record 1505 includes a URL field 1515 (where in one embodiment is the key of the URL record 1505), an access count field 1520 representing the number of times the user has accessed the URL, a topic field 1525 representing the topic associated with the URL, a page title field 1530 representing the title of the web page associated with the URL, a last access timestamp field 1535 representing the last time the user accessed the URL, and a page domain field 1540 representing the domain of the web page associated with the URL. In one embodiment, topic field 1525 links to topic record 1510. The topic record 1510 includes terms 1545 that represent one or more terms associated with the topic and categories 1550 that represent one or more categories associated with the topic.
An embodiment of pseudo code used by computing device 105 to add URLs and topics to topic history database 157 is as follows:
Begin
if a record for the current URL is found in the database
Taking out the record
Replacing a page title with a current page title
Creating topic groups based on each current topic
Replacing topic groups with found topics
Incrementing access count
Replacing existing records with updated records
Else
Creating a new record
Setting the URL of the new record as the current URL
Setting the recorded page title as the current page title
Creating topic groups based on each current topic
Setting the topic group in the new record as the created topic group
Adding new records to a database
Endif
End
Referring again to FIG. 7, links from the topic-based browser history of the user are displayed. For example, links titled "amazonkindle," "KobeBryant," and "KobeBryant" are links from the user's browser history. These links also display data from the last access timestamp field 1535 (e.g., "44 minutes ago", "48 minutes ago", and "49 minutes ago"). Thus, the client-side module 125 may maintain a browser history associated with the topics of the web page.
In one embodiment, the client-side module 125 scans a broad category of web sites to which a particular user frequently navigates. The client-side module 125 may then utilize this information to suggest actions for those categories based on history.
For example, assume that a service provider (e.g., Yahoo | Inc. of Sunnyvale, Calif.) is presenting a user interface based on movies available for sale or rental. In one embodiment, the client-side module 125 determines which domains involved in the sale of the movie the user navigated the most. The client-side module 125 may then provide buttons to purchase and rent from those web sites based on the user history.
FIG. 16 is a flowchart illustrating an embodiment of steps performed by the server computer 110 for the client-side module 125 to suggest one or more actions to the user based on web sites to which the user frequently navigates. In one embodiment, the server computer 110 identifies a set of categories for which action information is to be provided (step 1605). In one embodiment, the set of categories is predetermined. Alternatively, the user selects one or more categories for which the user wishes to have action suggestions.
The server computer 110 then identifies the particular web site (also referred to as a "best" site) in each identified category (step 1610). The server computer 110 then determines how to perform some common action on the identified web site (step 1615). This information is then stored in server storage 155 (step 1620). In one embodiment, the server computer 110 then sends the information to the client-side module 125 so that the client-side module 125 can display the stored action (step 1625).
In one embodiment, the suggested actions include actions from sites (e.g., Facebook and/or Twitter) that can be applied across categories. For example, a user may be viewing a movie topic and a Twitter action will occur because Twitter is stored in the user history and interest profile.
FIG. 17 is a flowchart illustrating an embodiment of the steps performed by the client-side module 125 to populate a domain history database (or memory/storage), such as storage 157. The client-side module 125 obtains (next) the visited URL from the web browser 118 (step 1705). The client-side module 125 then determines if there is more history in the topic history database 157 (step 1710). If not, the process ends (step 1715). If there is more history, the client-side module 125 extracts the domain from the URL (step 1720). The client-side module 125 determines whether the domain has been processed in step 1725. If not, the domain is stored in a domain history database (which may be the same or different from topic history database 157) (step 1730). If processed, then access count field 1520 of FIG. 15 is incremented in domain history database 157. The process then returns to step 1705. In one embodiment, the domain-based browser history and topic history are different data sets.
FIG. 18 is a flowchart illustrating an embodiment of the steps performed by the client-side module 125 to suggest actions associated with the web site that the user visits most frequently using the browser history. The client-side module 125 retrieves the next action from an action database (which may be the same or different from the storage 157) (step 1805). FIG. 19 illustrates an embodiment of a database architecture used to store Action records, such as Action records 1905, in Action database 157.
Action record 1905 includes an action type (ActionType) field 1910. Action type field 1910 corresponds to an enumerated value that uniquely identifies the action type (e.g., "buy tickets," "show athlete profile," etc.). The action record 1905 also includes a category type field 1915 that corresponds to a list of one or more user interface categories in which the action is valid. Action record 1905 also includes a provider name (ProviderName) field 1920 corresponding to the name of the provider (e.g., "amazon. com," "ESPN," "NetFlix," etc.). The action record 1905 also includes a provider domain 1925, which corresponds to a domain name for the provider's website (which may be associated to a domain-based browser history). The action record 1905 also includes an action URL template (actionurl project) field 1930 that corresponds to a string of templates containing URLs to navigate to in order to perform the action. The string may contain an alternate code for the real-time value associated with the particular situation in which the action is occurring, such as the particular term being considered, the zip code of the current user, etc. Com uses the following URL: http:// msn. foxsport. com @<league>/player?statsId=<playerID>To support the action "show athlete profile". In one embodiment, the URL is stored in an action URL template field 1930 forleagueAndplayerIDis filled in according to the real-time data obtained by the client-side module 125 when these actions are rendered.
Referring again to FIG. 18, the client-side module 125 determines if there are more actions in the action database 157 (step 1810). If there are more actions, the client-side module 125 determines whether the action type field 1910 of the action record 1905 is valid for the current User Interface (UI) category displayed by the client-side module 125 (step 1820). If there are no actions in the action database, the process returns to step 1805 to obtain the next action from the action database 157. If the action type field 1910 is valid for the current UI, the client module 125 determines if the provider domain field 1925 of the action record 1905 is in the domain history (step 1825). If the provider domain field 1925 is not in the domain history, the process returns to step 1805 to obtain the next action from the action database 157. If the provider domain field 1925 is in the domain history, the client-side module 125 adds the action and corresponding domain access count to the action list in the action database 157 (step 1830).
If it is determined in step 1810 that there has been no action, the client-side module 125 sorts the current list of actions in the action database 157 (step 1840). In one embodiment, the client-side module 125 then determines whether more than one action is displayed (step 1850). If not, the client-side module 125 forms a UI and provides a link for the first action (step 1855). The process then ends (step 1860). If more than one action is displayed, the client-side module 125 retrieves the next action from the ordered list (step 1865). The client-side module 125 then determines whether there are more actions (step 1870). If not, the process ends (step 1860). If there are more actions, client-side module 125 forms a UI and link for the current action (step 1880). The process then returns to step 1865.
An embodiment of the pseudo-code used by the computing device 105 to populate the domain-based history is as follows:
Begin
also in the While browser history are URLs
Extracting domains from URLs
If field is seen in the domain history list
Incrementing access counts in domain history
Else
Adding a new entry in the domain history for the domain
Endif
Loop
End
An embodiment of the pseudo-code used by computing device 105 to populate the action-based UI is as follows:
Begin
actions in the While action database
If action is valid for the current class
The domain of the If action is in the domain-based browser history
Adding actions to the "current action" to be considered
Endif
Endif
Loop
Sorting "Current actions" in descending order according to Domain Access
If shows more than one action
While also has "Current actions"
"forming" an action URL display action URL link by substituting a current term into an action URL template
Loop
Else
Get the first "current action"
Forming an action URL by substituting the current term into the action URL
Displaying action URL links
Endif
End
For example, referring again to FIG. 9, the user is enabled to see Nintendo on eBayAct 950 of the list of (a) is displayed. Enabling a user to see the Nintendo on CraigsistAnother action 960 of the list of (a) is displayed. Referring to FIG. 11, a single provider domain based action for ticketing is illustrated with action 1160. Actions based on multiple provider domains may be grouped according to action provider, such as action 1170 associated with sportsIllustrated and action 1180 associated with ESPN.
In one embodiment, the user must log into the service to have these steps occur. It should be noted that one or more of the steps described herein may be performed in any order (unless otherwise noted) while the second content area is open or closed (unless otherwise noted).
FIG. 20 is a block diagram of an embodiment of the topic and category determination module 145 in the server computer of FIG. 1. In one embodiment, the topic and category determination module 145 includes a training module 2005, an indexing module 2010, and a real-time (run-time) module 2015. FIG. 21 is a flowchart illustrating steps performed by module 2005,2010,2015 of FIG. 20. The training module 2005 performs an offline training step (step 2105) to generate two supervised machine learning models (referred to below as classifiers). As described in more detail below, the offline training step includes acquiring data and analyzing the acquired data to enable generation of one or more classifiers that can then be applied to the web page to determine a set of topics and categories for the web page. The indexing module 2010 performs the indexing step using the classifiers generated in the training step. The indexing step includes obtaining a web page and analyzing the web page to determine a set of topics and categories for the web page. The indexing step stores the topics and categories determined for each web page. The real-time module 2015 provides the topics and categories determined in the indexing step when the user requests topics for a particular web page to which the user has navigated. These modules 2005,2010,2015 may be software, hardware, or a combination of software and hardware. For example, in one embodiment, one or more of modules 2005,2010,2015 are computing devices. Further, the functionality of each module 2005,2010,2015 may be combined into a single software module or computing device.
Fig. 22 is a block diagram of an embodiment of training module 2005. FIG. 23 is a flow diagram of an embodiment of the steps performed by training module 2005. In one embodiment, the training module 2005 obtains one or more web articles 2205 (step 2305).
In one embodiment, the web article 2205 is an external document obtained from one or more knowledge collection website data files, such as data files from www.There are a large number of articles, and each article includes a link structure and belongs to at least one category. In addition, "redirection pages" enable synonym identification of articles. Each link in the article points to a disambiguated article. In addition to this, the present invention is,the class hierarchy of (A) is broad and deep, andthe link structure of the article is a useful resource for disambiguating and selecting tagged training data, as described below.
In one embodiment, training module 2005 includes an article information extraction module 2210 to extract information from each web article 2205 (step 2310). In one embodiment, the article information extraction module 2210 is to split data (e.g., web articles) intoA set of nodes in a taxonomy. The article information extraction module 2205 may also determine link data associated with the extracted information (step 2315). The link data obtained from each web article may include, for example, its in-links (links from other web articles), its out-links (links to other web articles), any redirections (from synonyms), a category hierarchy, and/or disambiguation (described below). The extraction module 2210 stores the link data and the extracted information (e.g., text of an article, in-link, out-link, any redirections, category hierarchy, and/or disambiguation) in a storage medium 2215 (e.g., a database).The link structure forms labeled training instances that are used to generate disambiguation classifiers and selection classifiers.
In one embodiment, the disambiguation learning module 2220 operates on information stored in the storage medium 2215. As used herein, disambiguation is the process of determining the meaning of a phrase (one or more adjacent words) that may have multiple meanings. In one embodiment, a phrase has multiple meanings if the phrase links to more than one web article. Disambiguation is the process of determining which meaning is the appropriate meaning in a particular use environment. For example, the word "tree" may relate to a woody plant, or it may relate to a data structure. The manner in which the word "tree" is used, the words surrounding the tree, etc. determine which tree usage is the correct usage for a given phrase.
Disambiguation learning module 2220 learns from the extracted information and/or link data to disambiguate the extracted information (step 2320). In particular, in one embodiment, the disambiguation learning module 2220 learns the likelihood of predicting the meaning of an ambiguous phrase using the context of the ambiguous phrase (an unambiguous topic). A phrase is considered unambiguous if it has only one meaning. To disambiguate phrases, feature vectors are created for a set of simultaneously occurring unambiguous phrases. The disambiguation learning module 2220 then generates a disambiguation classifier 2225 from its learning (step 2325). In one embodiment, disambiguation classifier 2225 is a gradient asymptotic decision tree created using the C4.5 algorithm. Features of disambiguation include, for example: 1) previous probability or commonality of meaning (e.g., number of times meaning occurs/total number of meanings); 2) correlation; and/or 3) context quality (e.g., average relevance of context articles).
The relevance between two topics (also referred to as concepts) is a score of the number of common articles linked to both topics (concepts) over those linked to either topic. In one embodiment, for twoArticles, relevance is the Normalized Google Distance (NGD) as a set of inlink functions to each article. Basically, NGD measures the strength of the relationship between two words. For example, "speaker" and "sound" are more related than "speaker" and "elephant". In one embodiment, when two words are used together in a search, the disambiguation learning module 420 finds the Yahoo!or Google page count. ("speaker" and "sound" will have a relatively larger number of result pages than "speaker" and "elephant"). Thus, the search distance is a measure of semantic cross-correlation derived from the number of hits returned by the Google search engine for a given set of keywords. Have the same meaning in natural languageOr keywords of similar meaning tend to be "close" in terms of search distance, while words with dissimilar meaning tend to be far away.
The disambiguation learning module 2220 communicates with the selection learning module 2230. The choice learning module 2230 ranks topics (concepts) according to how well they describe the topic of the document (e.g., web article 2205). As used herein, the topic of a document is defined herein as a list of ranked concepts. The list is ordered according to the importance of the concept to the requested document. In one embodiment, the topic is present in the document and isOne or more adjacent words of the topic of the article (node) within. Specifically, selection learning module 2230 learns to select a portion of the extracted information as information related to the topic of the web article (step 2330). Once the selection learning module 2230 has learned the selection topic, a selection classifier 2235 is generated (step 2335). The classifier 2235 is selected for learning to predict the probability that a topic will become an anchor. In one embodiment, the selection classifier 2235 is a gradient asymptotic decision tree. In one embodiment, given the contextual output of the disambiguation classifier, the selection learning module 2230 ranks topics according to how well they describe the topic for the document (e.g., web page) topic.Anchors in articles, for example by following (e.g. fromOf) a set of linked guides is created. Features of the selection classifier 2235 include "key phrases (keyphrases)", disambiguation probabilities, relevance to context terms, and,Depth, count, distribution (e.g., occurrence) in a taxonomyNumber of paragraphs/total number of paragraphs).
As described in more detail below, the selection classifier 2235 is used in the indexing phase along with the disambiguation classifier 2225 to determine a set of topics and categories for the web page (step 2340). It should be noted that each of the modules 2210,2215,2220,2225,2230,2235 of fig. 22 may be software, hardware, or a combination of software and hardware. Furthermore, the functionality of one or more of these modules may be combined with one or more additional modules.
FIG. 24 is a block diagram of an embodiment of an indexing module 2010. FIG. 25 is a flowchart illustrating an embodiment of the steps performed by the indexing module 2010. After the offline training step is performed, the topic and category determination module 145 performs an indexing step. In one embodiment, the topic and category determination module 145 launches web search software (often referred to as spiders) to "crawl" on the web. As a result, the server retrieves one or more web pages 2405 (step 2505) and sends each web page 2405 to the indexing module 2010.
The indexing module 2010 includes a tokenization module 2410. In one embodiment, the tokenization module 2410 tokenizes each crawled web page 2405 to determine the data in the web page 2405 (e.g., and stored data)Name 2415) associated phrase (one or more adjacent words) (step 2510). In one embodiment, the tokenization module 2410 will find in the web page 2405The name 2420 is sent to the disambiguation classifier 2225. As described above, the disambiguation classifier 2225 predicts the probability of meaning of ambiguous phrases using context (unambiguous topics) and outputs a context 2430 for each tokenized phrase of the crawled web page 2405 (step 2515).
FIG. 26 is a screen shot of an embodiment of a disambiguation example. The disambiguation classifier 2225 analyzes the word "Jaguar" appearing in the title "tatauuys Jaguar £ 1.15 bndeal" of the article 2605 and determines that "Jaguar" may refer to an animal (shown in box 2610), the automobile brand Jaguar (shown in box 2615), or a Jaguar fighter (shown in box 2620).
Fig. 27A is a screen shot 2700 of another embodiment in a disambiguation example. The disambiguation classifier 2225 analyzes the article 2605 to determine that most of the phrases in the article 2605 are related to the Jaguar brand of automobile 2615. The disambiguation classifier 2225 determines the appropriate meaning of the word "Jaguar" in the web article 2605. One embodiment of the output of the disambiguation classifier 2225 is shown in output window 2705 of FIG. 27B. The output window 2705 displays that the disambiguation classifier 2225 has determined that the concept or topic of the web article 2605 is "JaguarCars" in real time. The output window 2705 also shows that the disambiguation classifier 2225 has determined that the concept or topic "JaguarCars" has many associated categories, such as british brand, auto manufacturer, Tata group, Coventry auto company, and auto manufacturer in british. Each category has a respective weight that represents how relevant the category is to the web article 2605. In one embodiment, the weight is a disambiguation confidence value, which may be 1 for unambiguous phrases and a value <1 for those phrases having multiple meanings.
As described above, the selection classifier 2235 is applied to the context of the phrase and ranks or ranks topics according to how well they describe the topic of the web document 2405. FIG. 28A is a screenshot 2800 of an example embodiment of a selection. The selection classifier 2235 receives the context of the phrases in the web article 2605 and ranks the topics 2805 (as shown in fig. 28B) determined from the phrases based on how well the topics describe the topic of the web document 2605. The output window 2810 of the selection classifier 2235 (as shown in fig. 28C) illustrates an example of topics found and their corresponding weights.
Referring again to fig. 24 and 25, in one embodiment, the selection classifier 2235 sends the topics and categories 2435 associated with the web page 2405 into the topic ranking module 2440. The topic ranking module 2440 includes a relevance (Aboutness) module 2445 and a "Search-inducing" degree module 2450. Relevance module 2445 filters out topics that are not important to the largest group of related topics. In one embodiment, the correlation module 2445 is a two-stage correlation filter. In one embodiment, relevance module 2445 removes topics that have lower associations with other topics in context 2430. In one embodiment, relevance module 2445 is modeled as a dominance of a topic relative to other topics presented on a web page. In one embodiment, dominance of a topic is defined as the coverage of the contextual topic by its linked-out coverage. As an equation, the dominance of a topic is defined as:
in one embodiment, relevance module 2445 ranks the selected topics by relevance and discards those topics with zero values. In one embodiment, relevance module 2445 provides a score for each topic identified in web page 2405. The score represents the degree of dominance of the topic compared to other topics found for the web page 2405. In another embodiment, relevance module 2445 provides a score (representing how dominant the topic is) and a weight for the score (representing how much weight should be provided to a particular score value). In one embodiment, relevance module 2445 generates classifiers to learn to select a single dominant topic in a large-scale article.
In one embodiment, the topic ranking module 2440 also includes a "search-inducing" degree module 2450. The "search incurred" degree describes the probability that a term will be explicitly searched for on the web. In one embodiment, this module 2450 re-ranks topics 2435 transmitted from the selection classifier 2235. The "search-incurred" degree may be calculated for each topic, taking its surface form as a search query, and the "search-incurred" degree is a function of one or more of the following quantities: 1) the number of queries to the current page 2405; 2) the total number of queries; and 3) a change in buzzing (buzz) score, where buzzing generally refers to whether or not the topic under consideration is receiving much attention on the Internet (e.g., how much news value the topic is currently having).
The topics and categories output 2452 from the topic ordering module 2440 is then applied to a category ranking module 2455. In one embodiment, the category ranking module 2455 further ranks the categories 2452. In one embodiment, each topic belongs to many different categories. In one embodiment, the category ranking module 2455 ranks the categories for each topic that has an affinity with the current context. In one embodiment, the categories 2452 are treated as their consistency and presence with those other selected topicsA function of depth in the category hierarchy is ranked. For example, for ArnoldSchwarzenegger, in discussing actor's web pages, category ranking module 2455 ranks the category "movie actors in the United states" higher than "government officials in the state of California". In one embodiment, the category ranking module 2455 outputs topic and category documents 2460 (e.g., in XML) related to each web page 2405. It should be noted that each of the modules 2410,2415,2225,2235,2440,2445,2450 and 2455 of FIG. 24 may be software, hardware, or a combination of software and hardware. Furthermore, the functionality of one or more of these modules may be combined with one or more additional modules.
After the previously described steps are completed, the real-time steps are performed. The user navigates to a particular web page using a web browser displayed by computing device 105 (as shown in fig. 1). FIG. 29 shows a screenshot of an embodiment of a web page 2905 and a sidebar 2910 to which a user has navigated. The Web page 2905 is displayed in the first content area 2915 of the browser 2920. The sidebar 2910 is displayed in a second content area 2925 of the browser 2920. In one embodiment, the URL2930 of the web page 2905 is sent to the server computer 110 (as shown in FIG. 1). In one embodiment, the server computer 110 queries its storage 155 (as shown in FIG. 1) using the URL2930 to obtain the entity corresponding to the topic associated with the web page 2905. In one embodiment, a hash function is used to verify the freshness of a topic in an entity. The entity is displayed by the computing device in the second content area 2925 of the browser 2920. For example, for web page 2905, entities 2940,2945 and 2950 are displayed. The entities may include, for example, text, icons, graphics, links, videos, etc., associated with a topic in a set of topics.
In one embodiment, the server 110 queries its storage 155 and determines that there is no entity for the particular URL 2930. When this occurs, in one embodiment, the server 110 downloads the web page 2905 and performs the indexing steps described above on the web page 2905. When the processing associated with the indexing step for the URL2930 is completed, the server 110 sends one or more entities associated with the web page 2905 to the computing device 105 for display.
Fig. 30 is a block diagram illustrating an internal architecture of an example of a computing device (e.g., server 110 and/or computing device 105) in accordance with one or more embodiments of the present disclosure. As shown in fig. 30, the internal architecture 3000 includes one or more processing units (also referred to herein as CPUs) 3012 that interface with at least one computer bus 3002. Also interfaced to computer bus 3002 are persistent storage medium 3006, network interface 3014, memory 3004 (e.g., Random Access Memory (RAM), real-time transitory memory, read-only memory (ROM), etc.), media disk drive interface 3008 (including removable media such as floppy disks, CD-ROMs, DVDs, etc.) as an interface for drives that can read and/or write media, display interface 3010 as an interface for a monitor or other display device, keyboard interface 3016 as an interface for a keyboard, pointing device interface 3018 as an interface for a mouse or other pointing device, and various other interfaces not separately shown, such as parallel and serial port interfaces, Universal Serial Bus (USB) interfaces, and so forth.
The memory 3004 is connected to the computer bus 3002 to provide information stored in the memory 3004 to the CPU3012 during execution of software programs such as an operating system, application programs, device drivers, and software modules including program code and/or computer-executable process steps including functions described herein, such as one or more of the process flows described herein. CPU3012 first loads computer-executable process steps from a storage device, such as memory 3004, storage media 3006, a removable media drive, and/or other storage device. CPU3012 may then execute the stored processing steps to perform the loaded computer-executable processing steps. Stored data (e.g., data stored by a storage device) may be accessed by CPU3012 during execution of computer-executable process steps.
Persistent storage media 3006 is a computer-readable storage medium that can be used to store software and data (e.g., an operating system and one or more application programs). Persistent storage media 3006 can also be used to store device drivers (e.g., one or more of a digital camera driver, a monitor driver, a printer driver, a scanner driver, or other device drivers), web pages, content files, playlists, and other files. Persistent storage media 3006 can also include program modules and data files that are used to implement one or more embodiments of the present disclosure. Persistent storage media 3006 can be remote storage or local storage in communication with a computing device.
For the purposes of this disclosure, a computer-readable storage medium stores computer data, which may include computer-executable computer program code, in a computer-readable form. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, DVD, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer.
Those skilled in the art will appreciate that the methods and systems of the present disclosure may be implemented in many ways and will not be limited by the foregoing exemplary embodiments and examples. In other words, the functional units and individual functions performed by a single or multiple components in various combinations of hardware and software or firmware may be distributed across software applications on either a client or a server or both. Thus, any number of the features of the different embodiments described herein can be combined into one or more embodiments, and alternate embodiments having fewer, more, or all of the features described herein are possible. The functionality may also be distributed, in whole or in part, among multiple components, in manners now known or to become known. Thus, various software/hardware/firmware combinations may be used to implement the functions, features, interfaces and preferences described herein. Moreover, the scope of the present disclosure covers conventionally known manners for carrying out the described features, functions and interfaces, as well as those variations and modifications that may occur to those presently or later to be understood by those skilled in the art to which the hardware or software or firmware components described herein pertain.
While the systems and methods have been described in terms of one or more embodiments, it is to be understood that the disclosure need not be limited to the disclosed embodiments. It is intended to cover various modifications and similar arrangements included within the spirit and scope of the claims, the scope of which should be accorded the broadest interpretation so as to encompass all such modifications and similar structures. The present disclosure includes any and all implementations of the following claims.

Claims (26)

1. A method for action suggestion with browser history, comprising:
receiving, by a server computer over a network from a client-side module executing on a computing device, a Uniform Resource Locator (URL) associated with a web page to which a user navigates via a browser executing on the computing device;
determining, by the server computer, that the web page is part of a domain that the user has navigated to more than a predetermined number of times within a given time period;
determining, by the server computer, a category associated with the web page;
determining, by the server computer, whether the category is a general category, a general category meaning that the category does not belong to a predetermined set of categories;
if the class is a generic class, the server computer sending generic data to the computing device;
if the category is not a general category:
selecting, by the server computer, a category-specific application program interface for obtaining category-specific data to be sent to the computing device;
determining, by the server computer, one or more actions associated with the domain;
sending, by the server computer to the computing device, a link for display in the browser, the link representing an action associated with the domain and the category associated with the web page.
2. The method of claim 1, further comprising determining, by the server computer, a set of topics associated with the web page.
3. The method of claim 1, further comprising determining, by the server computer, a predetermined number of supported web pages for each category.
4. The method of claim 3, further comprising determining, by the server computer, steps to be performed to complete the action for each of the predetermined number of web pages within the category.
5. The method of claim 4, further comprising storing, by the server computer, the determined steps that need to be performed in a storage medium.
6. The method of claim 1, wherein sending a link representing an action further comprises sending a link that, when selected by a user, causes data to be entered into a web form.
7. The method of claim 2, wherein the categories further comprise a set of categories.
8. A method for action suggestion with browser history, comprising:
determining, by a computing device, that a web page navigated to by a user of a browser executing on the computing device is part of a domain that the user has navigated to more than a predetermined number of times within a given time period;
determining, by the computing device, a category associated with the web page;
determining, by the computing device, whether the category is a general category, a general category meaning that the category does not belong to a predetermined set of categories;
if the category is a generic category, the computing device displaying generic data with a generic renderer;
if the category is not a general category:
selecting, by the computing device, a category-specific presentation module based on the category; and
displaying, by the category-specific presentation module, one or more actions associated with the domain and the category associated with the web page.
9. The method of claim 8, further comprising determining, by the computing device, a set of topics associated with the web page.
10. The method of claim 8, further comprising determining, by the computing device, a predetermined number of supported web pages within the domain that are associated with the category.
11. The method of claim 10, further comprising determining, by the computing device, steps that need to be performed to complete the action for each of the predetermined number of web pages associated with the category.
12. The method of claim 11, further comprising storing, by the computing device, the determined steps that need to be performed in a storage medium.
13. The method of claim 8, wherein the displaying one or more actions associated with the domain further comprises causing data to be entered into a web form when the one or more actions are selected by a user.
14. The method of claim 9, wherein the categories further comprise a set of categories.
15. An apparatus for action suggestion using browser history, comprising:
means for determining that a web page that a user has navigated to by a browser is part of a domain that the user has navigated to more than a predetermined number of times within a given time period;
means for determining a category associated with the web page;
means for determining whether the category is a general category, a general category meaning that the category does not belong to a predetermined set of categories;
apparatus for: if the category is a generic category, sending generic data to the user's computing device;
apparatus for: if the category is not a general category:
selecting a class-specific application program interface for obtaining class-specific data to be sent to the computing device; and
sending a link displayed by the browser, the link representing an action associated with the domain and the category associated with the web page.
16. The apparatus of claim 15, further comprising means for determining a set of topics associated with the web page.
17. The apparatus of claim 15, further comprising means for determining a predetermined number of supported web pages for the category.
18. The apparatus of claim 17, further comprising means for determining steps that need to be performed to complete the action for each of the predetermined number of web pages within the category.
19. The apparatus of claim 18, further comprising means for storing the determined steps that need to be performed in a storage medium.
20. The apparatus of claim 17, wherein means for sending the link further comprises means for causing data to be entered into a web form when the link is selected by a user.
21. An apparatus for action suggestion using browser history, comprising:
means for determining that a web page navigated to by a user of a browser executing on a computing device is part of a domain that the user has navigated to more than a predetermined number of times within a given time period;
means for determining, by the computing device, a category associated with the web page;
means for determining, by the computing device, whether the category is a general category, a general category meaning that the category does not belong to a predetermined set of categories;
apparatus for: if the category is a generic category, the computing device displaying generic data with a generic renderer;
apparatus for: if the category is not a general category:
selecting, by the computing device, a category-specific presentation module based on the category; and
displaying, by the category-specific presentation module, a link representing an action associated with the domain and the category associated with the web page.
22. The apparatus of claim 21, further comprising means for determining a set of topics associated with the web page.
23. The apparatus of claim 21, further comprising means for determining a predetermined number of supported web pages for the category.
24. The apparatus of claim 23, further comprising means for determining steps that need to be performed to complete the action for each of the predetermined number of web pages within the category.
25. The apparatus of claim 24, further comprising means for storing the determined steps that need to be performed in a storage medium.
26. The apparatus of claim 21, wherein means for displaying the link further comprises means for causing data to be entered into a web form when the link is selected by a user.
HK13105521.2A 2010-04-07 2011-04-04 Method and system for action suggestion using browser history HK1177645B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/755,789 2010-04-07
US12/755,789 US8863000B2 (en) 2010-04-07 2010-04-07 Method and system for action suggestion using browser history
PCT/US2011/031087 WO2011126977A2 (en) 2010-04-07 2011-04-04 Method and system for action suggestion using browser history

Publications (2)

Publication Number Publication Date
HK1177645A1 HK1177645A1 (en) 2013-08-23
HK1177645B true HK1177645B (en) 2017-05-12

Family

ID=

Similar Documents

Publication Publication Date Title
CN102822815B (en) For the method and system utilizing browser history to carry out action suggestion
US10083248B2 (en) Method and system for topic-based browsing
US9135354B2 (en) Method and system for topical browser history
RU2720899C2 (en) Method and system for determining user-specific content proportions for recommendation
US11288333B2 (en) Method and system for estimating user-item interaction data based on stored interaction data by using multiple models
US8886623B2 (en) Large scale concept discovery for webpage augmentation using search engine indexers
CN102906744B (en) Unlimited browsing
US8005832B2 (en) Search document generation and use to provide recommendations
US8150846B2 (en) Content searching and configuration of search results
EP3529714B1 (en) Animated snippets for search results
US9396485B2 (en) Systems and methods for presenting content
US10674215B2 (en) Method and system for determining a relevancy parameter for content item
KR20150107840A (en) Indexing application pages of native applications
US10198519B2 (en) Method and system for performing bi-directional search
TW201022973A (en) Previewing search results for suggested refinement terms and vertical searches
CN107592930A (en) Automatic crawling of applications
US20220083614A1 (en) Method for training a machine learning algorithm (mla) to generate a predicted collaborative embedding for a digital item
US10445326B2 (en) Searching based on application usage
US20110264518A1 (en) Learning a ranker to rank entities with automatically derived domain-specific preferences
HK1177645B (en) Method and system for action suggestion using browser history