Browser-based navigation suggestions for task completion
By analyzing and grouping similarity of web pages rendered on multiple computing devices, browser-based navigation suggestions are provided, which solves the problem of difficulty in effectively helping users complete tasks in the prior art, and achieves more efficient task completion and browser resource management.
Patent Information
- Application Number
- CN202510143813.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-24
- Filing Date
- 2019-07-25
- Publication Date
- 2025-06-20
AI Technical Summary
The prior art is difficult to effectively provide browser-based navigation suggestions to help users complete specific tasks, especially in content rendering and management between multiple browser tabs and devices.
By obtaining data about web pages rendered on multiple computing devices, performing similarity analysis to group topic-related web pages, and providing navigation suggestions based on these groups to help users complete tasks.
It realizes the automatic display of web page content and navigation suggestions related to the user's current task on the browser user interface, reducing the user's search time between multiple tabs and devices, and improving task completion efficiency.
Smart Images

Figure CN120179933A_ABST
Abstract
Description
Division of Application
[0001] This application is a divisional application of Chinese Patent Application No. 201980002977.8, with a filing date of July 25, 2019 Priority Claim
[0002] This application is a continuation of, and claims priority to, U.S. Patent Application No. 16 / 520,920, filed on July 24, 2019, entitled "BROWSER-BASED NAVIGATION SUGGESTIONS FOR TASK COMPLETION", which claims priority to U.S. Provisional Application No. 62 / 712,526, filed on July 31, 2018, entitled "BROWSER-BASED NAVIGATION SUGGESTIONS FOR TASK COMPLETION". The disclosures of these applications are hereby incorporated by reference in their entireties Technical Field
[0003] This disclosure generally relates to browser-based navigation suggestions for task completion Background Art
[0004] The browser tabs of a web browser can be useful tools for obtaining and rendering content from the Internet to perform a user's specific tasks (e.g., planning a camping trip, deciding on and purchasing a new vacuum cleaner, etc.) Summary of the Invention
[0005] In some embodiments, a method includes: obtaining data regarding multiple web pages rendered within one or more browser tabs of a web browser executing on at least one computing device, and processing the obtained data to group the multiple web pages into one or more groups of web pages, where each group includes a corresponding subset of the multiple web pages. The processing includes performing a similarity analysis using the obtained data, where each group includes web pages determined to be thematically related to each other based on the similarity analysis. The method includes selecting a group of web pages from the one or more groups of web pages determined to be thematically related to the content displayed in the web browser, where the selected group represents a task being performed by a user of the web browser, and providing navigation suggestions for display on a user interface of the web browser based on the selected group, where the navigation suggestions include one or more user-selectable elements to assist the user in completing the task
[0006] In some embodiments, the method may include one or more of the following features (or any combination thereof). The plurality of web pages includes a first web page rendered by a web browser executing on a first device and a second web page rendered by a web browser executing on a second device. Providing navigation suggestions includes displaying, on a user interface of the web browser, the content of one or more web pages of the selected group. Providing navigation suggestions includes displaying, during the course of a user performing a task, the content of a web page that has not previously been rendered by the web browser. The process further includes generating a plurality of navigation trees based on the acquired data, clustering subsets of the plurality of navigation trees into clustering groups based on similarity analysis, and identifying the group of web pages based on the clustering groups. A navigation tree in the plurality of navigation trees includes nodes and connections between the nodes, where the nodes represent web pages rendered by the web browser and the connections represent navigation paths between the web pages. The process further includes filtering the group of web pages based on the value of one or more determined user engagement metrics to remove one or more web pages from the group, where the value of each determined user engagement metric indicates the amount of user engagement with the corresponding web page in the group. The process further includes sorting the group of web pages based on the value of one or more determined user engagement metrics, where the value of each determined user engagement metric indicates the amount of user engagement with the corresponding web page in the group. Providing navigation suggestions includes providing a selection of the selected group of web pages in a bookmarks section of the web browser. Providing navigation suggestions includes providing a selection of the selected group of web pages as a navigation suggestion associated with a search box of the web browser. The method further includes prefetching the web content of at least one web page of the selected group of web pages prior to a user selection of the at least one web page.
[0007] In some embodiments, a system includes: at least one processor; and a non-transitory computer-readable medium storing executable instructions that, when executed by the at least one processor, are configured to execute a server. The server is configured to obtain data from a web browser executing on at least one computing device via a network, where the data includes information about a plurality of web pages rendered within one or more browser tabs of the web browser. The server is configured to process the obtained data to group the plurality of web pages into one or more groups of web pages, where each group includes a respective subset of the plurality of web pages. The server is configured to perform a similarity analysis using the obtained data, where each group includes web pages determined to be thematically related to each other based on the similarity analysis. The server is configured to select a group of web pages from the one or more groups of web pages determined to be thematically related to the content displayed in the web browser, where the selected group represents the task being performed by the user. The server is configured to provide navigation suggestions via the network for display on the user interface of the web browser based on the selected group, where the navigation suggestions include one or more user-selectable elements to assist the user in completing the task.
[0008] In some embodiments, the system includes one or more of the above / below features (or any combination thereof). The navigation suggestions include a list of one or more of the web pages in the selected group. The server is configured to generate a plurality of navigation trees based on the obtained data, where each of the plurality of navigation trees includes nodes and connections between the nodes, the nodes representing web pages and the connections representing navigation paths between the web pages. The server is configured to cluster subsets of the plurality of navigation trees into cluster groups based on the similarity analysis and identify the group of web pages from the cluster groups. The server is configured to filter the cluster groups to not include one or more web pages of the cluster groups within the group of web pages. The nodes of the navigation trees of the cluster groups include one or more central nodes, one or more leaf nodes, and one or more intermediate nodes, and the server is configured to filter the cluster groups to remove the web pages represented by the intermediate nodes. The server is configured to filter the cluster groups based on the values of one or more determined user engagement metrics, where each value of the determined user engagement metrics indicates the amount of user engagement with the respective web page in the group. The server is configured to provide the navigation suggestions in a tab switcher interface of the web browser.
[0009] In some embodiments, a non-transitory computer-readable medium stores executable instructions that, when executed by at least one processor, are configured to execute a web browser. The web browser is configured to send data over a network to a server associated with the web browser, where the data includes information about a plurality of web pages rendered within one or more browser tabs of the web browser, display content in a user interface of the web browser, receive navigation suggestions over the network in response to the content being displayed in the user interface of the web browser, where the navigation suggestions identify a set of web pages that is a subset of the plurality of web pages rendered within the one or more browser tabs and where the set of web pages includes web pages that have been determined to be topically related to each other, and display the navigation suggestions in the user interface of the web browser, where the navigation suggestions display the content of one or more of the web pages in the set as one or more user-selectable elements, and each user-selectable element can be selected to access the corresponding web page in the set.
[0010] In some embodiments, the web browser is configured to prefetch the web content of at least one web page in the set prior to a user selection of a user-selectable element of the at least one web page. The navigation suggestions display a list of the web pages in the set in chronological order. The navigation suggestions are displayed in a tab switcher interface of the web browser. The web browser is configured to display a selectable link to the set in the user interface of the web browser and display a list of the web pages in the set in response to a user selection of the link. The web browser is configured to display a selectable link to the set in a bookmarks section of the web browser. The web browser is configured to display the selectable link to the set as a navigation suggestion in response to one or more search terms being entered in a search box of the web browser.
[0011] Details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features will be apparent from the specification and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Figure 1A A system for facilitating user navigation in a web browser executed on a computing device is shown.
[0013] Figure 1B An example of a first set of web pages and an example of a second set of web pages are shown.
[0014] Figure 2 A graphical representation of the tab history of a first browser tab, a second browser tab, and a third browser tab is shown.
[0015] Figure 3 Shows an example of a navigation tree.
[0016] Figure 4 Shows a web page of a filtering journey to obtain a graphical representation of a web page for an automatic tab list.
[0017] Figure 5A Shows an example of a navigation suggestion.
[0018] Figure 5B Shows the relationship between an automatic tab list and a group.
[0019] Figure 6 Shows an example of switching to an automatic tab in an automatic tab list.
[0020] Figure 7 Shows an example of a navigation suggestion.
[0021] Figure 8 Shows the relationship between an item list and a group.
[0022] Figure 9 Is a flowchart showing an example operation of a web browser and / or a server.
[0023] Figure 10 Is a flowchart showing an example operation of a synchronization server.
[0024] Figure 11 Is a flowchart showing an example operation of a web browser.
[0025] Figure 12A shows a screenshot of a web browser.
[0026] Figure 12B shows a screenshot of a web browser.
[0027] Figure 12C shows a screenshot of a web browser.
[0028] Figure 12D Shows a screenshot of a web browser.
[0029] Figure 12E shows a screenshot of a web browser.
[0030] Figure 12F shows a screenshot of a web browser.
[0031] Figure 12G Shows a screenshot of a web browser.
[0032] Figure 12H shows a screenshot of a web browser.
[0033] Figure 12I shows a screenshot of a web browser.
[0034] Figure 12J Shows a screenshot of a web browser.
[0035] Figure 12K Shows a screenshot of a web browser.
[0036] Figure 13A shows a screenshot of a web browser.
[0037] Figure 13B Shows a screenshot of a web browser.
[0038] Figure 13C shows a screenshot of a web browser.
[0039] Figure 13D shows a screenshot of a web browser.
[0040] Figure 13E Shows a screenshot of a web browser.
[0041] Figure 13F shows a screenshot of a web browser.
[0042] Figure 13G Shows a screenshot of a web browser.
[0043] Figure 13H shows a screenshot of a web browser.
[0044] Figure 13I Shows a screenshot of a web browser.
[0045] Figure 13J Shows a screenshot of a web browser.
[0046] Figure 13K shows a screenshot of a web browser.
[0047] Figure 13L shows a screenshot of a web browser.
[0048] Figure 13M Shows a screenshot of a web browser.
[0049] Figure 14 Shows a screenshot of a web browser.
[0050] Figure 15 Shows a screenshot of a web browser.
[0051] Figure 16 Shows examples of a computer device and a mobile computer device. Detailed implementation
[0052] This document discusses techniques for providing context - relevant navigation suggestions to users to assist them in completing tasks. These techniques can be implemented in various software applications, including web browsers, mobile applications running on mobile devices, or native operations executed on desktop computers. For example, a user can use a web browser to perform a task (e.g., researching a movie to decide whether to watch it in a cinema) by searching the World Wide Web for content. For example, a user can start a web search to obtain search results about the movie, navigate to one or more reviews of the movie, navigate to the movie's trailer, navigate to a web page providing information about the movie's cast, etc. During the process of presenting these different web pages to the user, existing web browsers may not understand the task the user is attempting to perform, resulting in the loading and rendering of these specific pages.
[0053] In contrast, this disclosure describes techniques for using similarity analysis to capture those web pages relevant to the user's task and for automatically presenting navigation suggestions to the user to assist the user in performing the task. For example, in the movie example, after the user reads one or more reviews of the movie, views the movie's trailer, and reads information about the movie's cast, the user may decide to watch the movie in a cinema but may want to convince a friend to watch it with her. At this point, the user may want to find the web page with the movie trailer so that the user can send a link to the trailer to convince the friend to watch the movie. Additionally, at this point, the user may have opened multiple browser tabs, and these multiple browser tabs may or may not include the web page with the movie trailer. Further, when using a web browser during the process of searching for the movie, the user may be performing different tasks unrelated to the movie task. For example, the user may be viewing the news or researching dog breeds, etc. Thus, the web browser may have many open browser tabs, and the history of the browser tabs may span multiple tasks (or sessions). Generally, the user can simply open a new browser tab to search for the movie trailer rather than switching to other browser tabs or viewing the browser history of the web browser.
[0054] However, a web browser implementing the techniques discussed herein can use similarity analysis to determine which web pages are thematically relevant to a particular task (e.g., determining whether to watch a movie), and when the user's browser activity is relevant to that task, the web browser can automatically display pages related to that task (and / or other navigation suggestions, such as pages that suggest actions to help the user perform the task or suggested actions). For example, in some embodiments, the navigation suggestions include a list of previously rendered web pages that the user may return to. In some embodiments, the navigation suggestions include suggested web pages (e.g., web pages that the user has not yet visited). In some embodiments, the navigation suggestions include a suggested course of action (e.g., sequential display of navigation suggestions for completing the task).
[0055] The techniques discussed herein can reduce the amount of computing resources of a computing device executing the web browser by programmatically providing the user with one or more navigation suggestions (e.g., a list of previously rendered web pages, suggested web pages, suggested actions, etc.) to perform and / or complete a task associated with the use of the web browser. For example, the number of browser tabs that would otherwise be launched to perform the task can be reduced and / or the execution time required to re-search or re-find relevant web pages to perform the task can be reduced, thus reducing the amount of computing resources consumed by the computing device (e.g., computing resources may be "released") and increasing the efficiency of the web browser itself.
[0056] In the movie example, the navigation suggestions can include a list of previously rendered web pages that the user may return to in order to complete the task, which includes movie trailers. This list of web pages (which includes pages with movie trailers) can be presented as selectable user interface (UI) elements, where selection of the UI element causes the web browser to display the corresponding web page in a browser tab. Thus, the user may not need to open a new browser tab to re-search for movie trailers or figure out which browser tab has what the user is looking for. Instead, when it is determined that the user is currently performing a task, the web browser automatically provides the user with navigation suggestions to help perform the task.
[0057] In a movie example, since the content about the cast of a movie is contextually related to a list (or group) of web pages relevant to the task of determining whether to watch the movie, a selection of a web page with a movie trailer can be automatically provided in the user interface of a web browser, and when the web page is selected, the web browser can display the web page with the movie trailer in a browser tab. In some embodiments, the web browser can prefetch web content in some or all of the web pages of the group. For example, before the user selects or navigates to one or more of the web pages of the group (i.e., prior to the user selecting or navigating to one or more of the multiple web pages of the group), the web browser can obtain web content from websites corresponding to some or all of the web pages of the group via the Internet in a background operation of the web browser. This advantageously tends to allow for faster rendering of web content to the user. Additionally, this advantageously tends to allow for offline rendering of web content to the user.
[0058] Furthermore, it is possible to monitor the user's reaction to navigation suggestions to create a feedback loop to improve further recommendations. For example, the user can decide to select a navigation suggestion provided by the web browser. Additionally, the user can decide to select a particular navigation suggestion over other navigation suggestions, or not select any of the navigation suggestions but instead navigate to a web page not suggested by the navigation suggestions. Future navigation suggestions can be improved based on the user's reaction to the navigation suggestions. Additionally, future navigation suggestions can be improved based on the reaction of other users to the same or similar navigation suggestions. This advantageously tends to allow for more accurate navigation suggestions over time. In some embodiments, controls can be provided to the user that allow the user to make a choice regarding whether and when the web browser and / or system can enable detection of the user's reaction to navigation suggestions.
[0059] In some examples, the similarity analysis is performed by a web browser or other software application executing on the device that renders content to the user. In some examples, the similarity analysis is performed on a server associated with the web browser or software application. For example, when the user uses a web browser to navigate through various searches and / or websites, the web browser can obtain data about the web pages rendered by the browser tabs, and the server or the web browser can determine a group of web pages that were previously rendered by the web browser and are thematically related to each other based on a similarity analysis of the data. The group of web pages can include two or more web pages determined to be topic-related to each other, and the group of web pages can indicate that the user is performing a task.
[0060] Figure 1ASystem 100 is shown for providing one or more navigation suggestions 128 to assist a user in completing a task using web browser 122 executing on computing device 120. As the user navigates content using web browser 122, web browser 122 may obtain data 101 regarding web page 121 accessed by web browser 122. In some embodiments, web browser 122 may transmit at least a portion of data 101 to server 102 associated with web browser 122 via network 130.
[0061] Based on data 101 received from web browser 122 via network 130, server 102 may determine that the user is performing a task based on data 101. The task may be a web search activity related to the same or a similar topic. In some embodiments, the task refers to an activity of a single topic or category performed by navigating web browser 122. Some non-limiting examples may include researching hiking in a particular area, researching dog breeds, researching a specific movie to watch at a cinema, or purchasing a vacuum cleaner on the Internet. In some embodiments, web browser 122 determines that the user is performing a task based on data 101. Although the following description indicates that some of the operations are performed by server 102, in some embodiments, these operations may be performed by web browser 122 executing on computing device 120.
[0062] In some embodiments, server 102 determines that the user is performing a task by determining a first set 116 of web pages 121 from web pages 121 previously rendered by browser tab 126 of web browser 122. Web page 121 may be an instance of a web page that is (or has been) loaded (or reloaded) in web browser 122. Different web pages 121 may be associated with different web pages of the same Internet site or web pages of different Internet sites. The first set 116 of web pages 121 may include web pages corresponding to a particular task that the user is performing using web browser 122.
[0063] The data 101 may include navigation information related to the identification and information about the web page 121 rendered by the browser tab 126 and / or the level of user engagement with the web page 121. In particular, the web browser 122 may include a search box for performing Internet searches, an address bar for entering a website address, and other navigation tools such as bookmarks, browsing history, etc. In addition, the web browser 122 may define forward and backward buttons to navigate through previously viewed web pages, and through the use of the web browser 122, the web page may provide a navigation bar, a website sitemap, a drop-down menu, etc. for navigating through the Internet site. The data 101 may be generated via any one of the above-mentioned navigation tools (or any other navigation tool provided by the web browser / web page).
[0064] In some embodiments, the data 101 may include information specifying an action performed by the user using any one of the navigation tools, a corresponding timestamp, etc. In addition, the data 101 may further include information specifying the user's interaction with any one of the presented content (e.g., the time spent viewing the web page, how many pages the user has opened from a given page, audio playback, etc.). In some embodiments, users associated with the same account may synchronize information across multiple computing devices, and in the multiple computing devices, the data 101 from the first web browser executed on the first computing device may be used together with the data from the second web browser executed on the second computing device to determine a group.
[0065] In some examples, the data 101 includes the entered search terms, context information (e.g., the navigation history of the user or other users, the time spent, trends), user profile information, information from previous browser instances / sessions, and / or information from different browsers. In some examples, the data 101 includes the content and / or metadata of the web page. In some examples, the user may be provided with the option to allow the user to decide whether and when the web browser 122 and / or the system 100 may enable the collection of the data 101 and / or whether one or more types of data may be used in a similarity analysis to determine whether the user is performing a specific task.
[0066] Figure 1B Examples of a first group 116 and a second group 118 are shown. As Figure 1BAs shown, the first set 116 of web pages 121 includes web pages 121 that were previously rendered by browser tabs 126 of a web browser 122 and are related to each other in terms of theme. For example, the first set 116 may include a first web page 121-1, a second web page 121-2, and a third web page 121-3. Each web page 121 in the first set 116 is a different web page (e.g., an HTML file) of an interconnected website that is thematically related to other web pages 121 in the first set 116. The web pages 121 in the first set 116 may represent a first task being performed by a user. For example, the web pages 121 in the first set 116 may be thematically related to the first task.
[0067] In some embodiments, the server 102 may determine a second set 118 of web pages 121 from the web pages 121 that were previously rendered by browser tabs 126 of a web browser 122. As Figure 1B shown, the second set 118 of web pages 121 includes web pages 121 that were previously rendered by browser tabs 126 and are related to each other in terms of theme. For example, the second set 118 may include a fourth web page 121-4, a fifth web page 121-5, and a sixth web page 121-6. The web pages 121 in the second set 118 may be thematically different from the web pages 121 in the first set 116. Each web page 121 in the second set 118 is a web page (e.g., an HTML file) of a different interconnected website that is thematically related to other web pages 121 in the second set 118. Although three web pages 121 are shown for the first set 116 and the second set 118, the first set 116 and the second set 118 may include any number of web pages 121. The web pages 121 in the second set 118 may represent a second task being performed by a user. For example, the web pages 121 in the second set 118 may be thematically related to the second task, where the second task is different from the first task. Although reference Figure 1A and Figure 1B describes two tasks, a user may be performing more than two tasks, and thus, there may be a third set, a fourth set, a fifth set, etc.
[0068] In response to the content displayed in web browser 122 being thematically relevant to one of the tasks (e.g., the first task or the second task), server 102 may provide one or more navigation suggestions 128 to web browser 122 via network 130. For example, in response to the content displayed in web browser 122 being thematically relevant to the first set 116 of topics, server 102 may send navigation suggestions 128 to web browser 122 for display to assist the user in performing the first task. In some embodiments, the navigation suggestions 128 include a list (or subset) of web pages 121 in the first set 116. In some embodiments, the web pages 121 in the first set 116 are filtered or sorted based on the time the web pages 121 were accessed or rendered and / or the level of user engagement with the web pages 121, and the filtered or sorted list of web pages 121 in the first set 116 is provided as one or more navigation suggestions 128 on the user interface 124 of web browser 122, the filtered or sorted list providing web pages 121 that the user may revisit to complete or continue the first task.
[0069] In some embodiments, the navigation suggestions 128 include suggested web pages (e.g., not part of the first set 116) but thematically relevant to the first set 116 to assist the user with respect to the first task. For example, in some embodiments, the data 101 may indicate that other users performing tasks similar to the first task accessed specific web pages to continue or complete tasks similar to the first task. Based on the data 101, the suggested web pages may be provided as navigation suggestions 128.
[0070] In some embodiments, the navigation suggestions 128 include suggested courses of action to assist the user with respect to the first task. For example, the navigation suggestions 128 may include a sequence of web pages 121 (e.g., previously rendered or suggested), search ideas, and / or other suggested courses of action to assist the user in continuing or completing the first task.
[0071] In some embodiments, a user may switch tasks, and the content displayed by web browser 122 may be related to the second task. In such a case, in response to the content displayed in web browser 122 being related to the second set 118 of topics, server 102 may send one or more navigation suggestions 128 to web browser 122 for display to assist the user in performing the second task. In some embodiments, the navigation suggestions 128 include a list (or subset) of web pages 121 from the second set 118. In some embodiments, the web pages 121 from the second set 118 are filtered or sorted based on the time the web pages 121 are accessed or rendered and / or the level of user engagement with the web pages 121, and the filtered or sorted list of web pages 121 from the second set 118 is provided as one or more navigation suggestions 128 on user interface 124 of web browser 122, the filtered or sorted list providing web pages 121 that the user may revisit to complete or continue the second task. In some embodiments, the navigation suggestions 128 include suggested web pages (e.g., not part of the second set 118) but thematically related to the second set 118 to assist the user with respect to the second task. In some embodiments, the navigation suggestions 128 include suggested courses of action to assist the user with respect to the second task.
[0072] By programmatically providing a user with one or more navigation suggestions 128 to perform and / or complete a task associated with the use of web browser 122, the navigation suggestions 128 may reduce the amount of computing resources (e.g., computing time and / or storage space used) of computing device 120 consumed by web browser 122. For example, through the use of navigation suggestions 128, the number of browser tabs 126 that would otherwise be launched to perform the task may be reduced and / or the execution time required to re-search or re-find relevant web pages 121 to perform the task may be reduced, thus reducing the amount of computing resources consumed by computing device 120 (e.g., computing resources may be "released") and increasing the efficiency of web browser 122 itself.
[0073] In some embodiments, the set of web pages 121 can be web pages that a user may revisit or return to in order to complete a task. Thus, the web browser 122 can accelerate navigation to those web pages 121 by enabling the user to quickly access those web pages 121. In some embodiments, the web browser 122 can prefetch the web content of one or all of the web pages 121 in the set of web pages 121 or other web pages 121 provided by the navigation suggestions 128. For example, the web browser 122 can obtain the web content from websites corresponding to some or all of the web pages 121 provided in the navigation suggestions 128 via the Internet in a background operation of the web browser 122 before the user selects or navigates to one or more of the web pages provided in the navigation suggestions 128 (i.e., prior to the user selecting or navigating to one or more of the web pages provided in the navigation suggestions 128). In some embodiments, in a background operation (and before the user selects or navigates to one or more of the web pages 121 in the navigation suggestions 128), the web browser 122 can obtain the web content by loading the native libraries of the web browser 122, performing a Domain Name System (DNS) lookup based on the URL associated with a particular web page 121, downloading the web content from a server, and caching the web content. These obtaining operations can be performed for some or all of the web pages 121 in the navigation suggestions 128 (e.g., the set of web pages 121 or the suggested web pages 121).
[0074] This advantageously tends to allow the web content to be rendered to the user more quickly. For example, since the web content has been obtained, when the user actually selects or navigates to a particular web page 121 in the navigation suggestions 128, the web browser 122 can simply display the web content in the browser tab 126. Similarly, this advantageously tends to allow the web content to be rendered to the user offline. In some embodiments, the web browser 122 can prefetch at least one resource of the web browser 122. The resources of the web browser 122 can include language translation services, form autofill, password vault, and other browser resources. In some embodiments, in a background operation (and before the user selects or navigates to one or more of the web pages 121 in the navigation suggestions 128), the web browser 122 can obtain the web content of one or more of the web pages 121 in the navigation suggestions 128 and then use the language translation service to translate the page into the language associated with the user account.
[0075] In some embodiments, computing device 120 is a mobile computing device such as a mobile phone, a tablet computer, or a personal digital assistant. Computing device 120 includes a network interface configured to connect computing device 120 to a network 130 (e.g., the Internet). The network interface may include a mobile network interface and / or a Wi-Fi network interface. In some embodiments, web browser 122 is a mobile browser designed to be used on the operating system of a mobile device. The mobile browser is configured to render and display a mobile tab having a web page in a mobile format (or in a desktop format). In some embodiments, computing device 120 is a laptop computer, a desktop computer, or other computing device having an operating system configured to execute web browser 122 to retrieve and display Internet content in the form of a desktop format.
[0076] The mobile format has a page layout different from the desktop format. In the mobile format, there is no tab bar that identifies the open browser tabs 126. Instead, in the mobile format, web browser 122 includes a tab switcher user interface (UI) that allows a user to switch to other open browser tabs 126. In some embodiments, the tab switcher UI includes a vertical layout (or a vertical carousel) that lists the open browser tabs 126 and the sites loaded into those browser tabs 126. In some embodiments, the browser tabs 126 are stacked vertically, with one browser tab 126 being fully displayed and the other browser tabs 126 in front of or behind the active browser tab 126. In some embodiments, the tab switcher UI includes a horizontal layout (or a horizontal carousel). In some embodiments, in the tab switcher UI, the browser tabs 126 are displayed in a horizontal layout and can be swiped right or left to select other open browser tabs 126.
[0077] Each browser tab 126 can be a container for a web page 121 of an Internet site. Generally, on a mobile device, browser tabs 126 are manually opened and closed, and creating a new browser tab 126 may take three taps and, in some cases, approximately two seconds (compared to, for example, a single click on a desktop). Additionally, it has been found that closing browser tabs 126 is relatively common. For example, users often close browser tabs 126 just to tidy up. However, as described further below, the navigation suggestion operations discussed herein can automatically provide navigation suggestions 128 that a user may view again or that help complete his / her task.
[0078] The web pages 121 in the first group 116 may (at some point) have been rendered across one or more browser tabs 126. Similarly, the web pages 121 in the second group 118 may (at some point) have been rendered across one or more browser tabs 126. In some embodiments, the first group 116 of web pages 121 may be considered a progression that occurs over time (i.e., real-world tasks performed by the web browser 122). A particular progression may span one, two, or more than two browser tabs 126. In other words, a progression may span multiple browser tabs 126, and browser tabs 126 may be presented in multiple different progressions. As Figure 1A shown, the web browser 122 may include three browser tabs 126, namely, a first browser tab 131, a second browser tab 132, and a third browser tab 133. In some embodiments, a particular group of web pages 121 may be defined over a period of time and may span multiple browsing sessions over multiple days (weeks). In some embodiments, the web pages 121 in the first group 116 and / or the second group 118 may include web pages of active (or currently open) browser tabs 126 that are related to each other thematically. In some embodiments, the web pages 121 in the first group 116 and / or the second group 118 are web pages 121 from previously opened or closed browser tabs 126. In some embodiments, the web pages 121 in the first group 116 and / or the second group are a mixture of web pages 121 from currently open browser tabs 126 and web pages from closed browser tabs 126.
[0079] Figure 2 A graphical representation of the tab history of the first browser tab 131, the second browser tab 132, and the third browser tab 133 is shown. Figure 2 The various web pages 201 - 215 are examples of the web page 121. The first browser tab 131 may include web pages 201, 202, 203, 204, and 205, where web page 201 is the most recent (or current) web page of the first browser tab. The second browser tab 132 may include web pages 206, 207, 208, 209, and 210, where web page 206 is the most recent (or current) web page of the second browser tab 132. The third browser tab 133 may include web pages 211, 212, 213, 214, and 215, where web page 211 is the most recent (or current) web page of the third browser tab 133.
[0080] Web pages 201 and 202 can be related to task A (or journey A) (e.g., finding out who played Doctor Strange in Avengers: Infinity War), web pages 203 to 206 can be related to task B (or journey B) (e.g., following the news) and web pages 207 to 215 can be related to task C (or journey C) (e.g., researching dog breeds). As further discussed below, since web pages 201 and 202 are topically related to each other, server 102 can determine the first group 116 to include web pages 201 and 202 (from the first browser tab 131). Server 102 can determine the second group 118 to include web pages 203 to 206 (from the first browser tab 131 and the second browser tab 132) and since web pages 207 to 215 are topically related, server 102 can determine the third group to include web pages 207 to 215 (from the second browser tab 132 and the third browser tab 133).
[0081] Return reference Figure 1A , in some embodiments, server 102 can be configured to synchronize user actions, browser history, and browser configurations across computing devices associated with a user account (including computing device 120). For example, a user can use the web browser 122 on computing device 120 to bookmark a particular web page. If other computing devices are associated with the user's account on server 102, data can be transferred from computing device 120 to server 102 and to other user devices such that the bookmark also appears in the web browser 122 running on the other computing devices.
[0082] In some embodiments, user actions can be synchronized across computing devices. User actions that can be synchronized across computing devices can include, but are not limited to: opening a window, closing a window, opening a web page or file, closing a web page or file, navigating to a specific URL, scrolling to a location in a document, playing a media content stream, running a Javascript element, or any other action associated with operating web browser 122. In some embodiments, a user action can be a Document Object Model (DOM) event. DOM events can include standardized DOM events promulgated by the World Wide Web Consortium (W3C) - the leading standards organization for the Internet - and / or can include browser-specific DOM events. Generally, DOM events allow a web page to include code that is conditional upon the detection of an event. In some embodiments, DOM events can include receiving input from an interface device (e.g., a mouse or other pointing device, a keyboard, a touchscreen display, etc.). For example, a DOM event can correspond to clicking on a web page object using a mouse, pressing the up arrow on a keyboard, touching a touchscreen display, etc. DOM events can also include actions such as loading or unloading a web page, changing the size of the window of web browser 122, performing clipboard actions (e.g., selecting an object, copying an object, pasting an object, etc.), dragging data within a web page or between web browser 122 and another application, opening or closing a window, detecting an error, or other events related to the operation of web browser 122.
[0083] In some examples, when web browser 122 is executed on computing device 120, web browser 122 sends data about the accessed web page 121 to server 102 via network 130.
[0084] Network 130 can include the Internet and / or other types of data networks, such as a Local Area Network (LAN), a Wide Area Network (WAN), a cellular network, a satellite network, or other types of data networks. Network 130 can also include any number of computing devices (e.g., computers, servers, routers, network switches, etc.) configured to receive and / or transmit data within network 130. Network 130 can also include any number of hardwired and / or wireless connections.
[0085] Server 102 may include a navigation tree builder 104 configured to generate a navigation tree based on data 101. For example, when a user starts a search (e.g., enters one or more words in the search box of web browser 122), selects a link in the browsing history, and / or selects a bookmark, the navigation tree builder 104 may generate a new navigation tree 114. When the user navigates from the root node, such as when rendering a specific page in browser tab 126, the navigation tree builder 104 may create a new page node. For example, each navigation tree 114 may start with a search or bookmark, and when the user navigates from a page or search result (e.g., selects a specific search result, selects a link on a page, selects the back / forward button, etc.), the navigation tree builder 104 may create page nodes corresponding to different web pages 121 and create connections or edges between the page nodes. For a particular user account, there may be many individual navigation trees 114. As an example, Figure 1A the first navigation tree 114-1, the second navigation tree 114-2, and the third navigation tree 114-3 are shown. However, the navigation tree 114 may include more than three navigation trees 114.
[0086] Figure 3 An example of the navigation tree 114 is shown. The navigation tree 114 may be an example of the first navigation tree 114-1, the second navigation tree 114-2, or the third navigation tree 114-3. The navigation tree 114 may be a hierarchical data structure that shows the relationships between web pages 121 of an interconnected website navigated by web browser 122. In some embodiments, some of the data is represented in the navigation tree 114. The navigation tree 114 includes page nodes (1, 2, 3, 4, 5, and 6) and connections 331 (e.g., incoming edges, outgoing edges) between the page nodes. Each page node corresponds to a respective different web page 121 rendered by web browser 122. The page nodes may include hub nodes 330, leaf nodes 332, and intermediate nodes 336 disposed between the hub nodes 330 and the leaf nodes 332.
[0087] As Figure 3As shown, a user may direct a web browser 122 to display a first web page (represented by page node 1) (e.g., by starting a new search), and navigate to a second web page (represented by page node 2), where a connection 331 is provided from page node 1 to page node 2. Page node 1 may be considered the root, i.e., the top node in the navigation tree 114, and page node 2 is a child node of page node 1, i.e., a node that is directly connected to another node when moving away from the root. The user may then navigate back to the first web page, where a connection 331 is provided from page node 2 to page node 1. Since page node 2 has no child nodes, page node 2 is a leaf node 332. The user may then navigate to a third web page (represented by page node 3), where a connection 331 is provided from page node 1 to page node 3. Since page node 1 has at least two child nodes directly connected to it, page node 1 is a hub node 330. The user may then navigate to a fourth web page (represented by page node 4), and then to a fifth web page (represented by page node 5). The user may navigate from the third web page to a sixth web page (represented by page node 6). Page node 3 is a hub node 330, page node 5 is a leaf node 332, and page node 6 is a leaf node 332. Page node 4 is an intermediate node 336.
[0088] Server 102 may include a history - centric task builder 106 configured to determine a first task and / or a second task by establishing a first set 116 and / or a second set 118 (and any additional sets) from web pages 121 rendered by browser tabs 126. Additionally, the history - centric task builder 106 may filter and / or sort the web pages 121 in the first set 116 and / or the second set 118 to determine which web pages 121 are included in the navigation suggestions 128.
[0089] The journey-centric task builder 106 can include a similarity analyzer 108 configured to group similarly related navigation trees 114 into navigation groups using similarity analysis. In some embodiments, the similarity analysis includes hierarchical clustering. In some embodiments, the similarity analyzer 108 is configured to determine a first set 116 of web pages 121 from the web pages 121 previously rendered by the web browser 122 based on a similarity analysis of the navigation trees 114 such that the first set 116 of web pages 121 includes two or more web pages having content that is thematically related to each other. In some embodiments, the similarity analyzer 108 is configured to cluster a first subset (e.g., two or more navigation trees) of the navigation trees 114 into a first cluster group based on the similarity analysis and identify the first set 116 of web pages 121 from the first cluster group. The similarity analyzer 108 is configured to cluster a second subset (e.g., two or more navigation trees) of the navigation trees 114 into a second cluster group based on the similarity analysis and identify a second set 118 of web pages 121 from the second cluster group.
[0090] In some embodiments, the similarity analyzer 108 can represent each navigation tree 114 with keywords and associate a probability with each of the keywords, where each of the keywords indicates the relative likelihood that the particular keyword represents its navigation tree 114. For example, the similarity analyzer 108 can represent each web page 121 with a set of keywords and each of the keywords can indicate the relative likelihood that the particular keyword represents that web page 121. In some embodiments, the probability is determined based on term frequency and inverse document frequency techniques. For a particular navigation tree 114, the similarity analyzer 108 can accumulate all of the keywords in all of the web pages 121 in the navigation tree 114. The similarity analyzer 108 can create a feature vector based on the keywords and their probabilities.
[0091] In one example, a navigation tree 114 related to Yellowstone National Park can have groups of keywords associated with the Yellowstone National Park navigation tree, such as park, bison, geyser, camping, etc., and each of those keywords is associated with a corresponding probability that the keyword represents the navigation tree 114 (e.g., bison has a probability of 0.9 and park has a probability of 0.3). The similarity analyzer 108 can use the keywords and probabilities to create a feature vector for each navigation tree 114 and determine a distance (or similarity) vector based on a comparison of the feature vectors. In some embodiments, the cosine distance between the feature vectors is used as the distance (or similarity) metric in a clustering algorithm. If the value of the distance metric is above a threshold level, the similarity analyzer 108 server can determine that the corresponding navigation trees 114 are similarly related to the same topic and include those navigation trees 114 in a clustering group. The web pages 121 of the navigation trees 114 in the clustering group can be identified as the group's web pages.
[0092] In some embodiments, the generation of a group of web pages 121 can indicate that the user is performing a task. In some embodiments, the generation of a group of specific web pages 121 occurs when at least two navigation trees 114 are determined to be thematically related to each other. In some embodiments, the generation of a group of specific web pages 121 occurs when the navigation tree 114 has more than a threshold number of nodes (e.g., more than 2 or 3 nodes). As described above, each navigation tree 114 is represented by a set of keywords with probabilities. When the keywords of a clustering group are thematically related to one or more keywords of the content viewed by the user (e.g., the keywords of the currently displayed content have a similarity metric above a threshold level with respect to the keywords of the clustering group), the system 100 can determine that the user is performing a task and provide one or more navigation suggestions 128 on the user interface 124 of the web browser 122.
[0093] In some embodiments, the similarity analyzer 108 can compare the content of the web pages 121 (e.g., page-by-page comparison) without using the navigation tree 114. For example, keywords associated with a first web page can be compared with keywords associated with a second web page, and if the similarity comparison results in a similarity metric that is above a threshold level, the first and second web pages are similar to each other in the sense that they are related to the same topic. However, the similarity analyzer 108 can use other types of similarity techniques, such as string-based similarity measurements that include character-based similarity (e.g., longest common substring (LCS), Damerau Levenshtein, Jaro, Jaro Winkler, etc.) and word-based similarity measurements (e.g., block distance, cosine similarity, Dice coefficient), corpus-based similarity (e.g., hyperspace analogue to language (HAL), latent semantic analysis (LSA)), and / or knowledge-based similarity.
[0094] In some embodiments, the journey - centric task builder 106 includes a page filter 110 configured to filter a first set 116 (or any other set) of web pages 121 to remove one or more web pages 121 from the first set 116. Note that any operation described with reference to the first set 116 can equally be applied to the second set 118. In some embodiments, the page filter 110 filters the first set 116 based on timestamps associated with the web pages 121 in the first set 116. For example, the page filter 110 can remove from the first set 116 one or more web pages 121 that are older than a predetermined time (e.g., remove web pages 121 that are older than 4 hours, 1 day, 1 week, etc.). In some embodiments, the page filter 110 filters the first set 116 based on one or more user engagement metrics associated with the web pages 121 in the first set 116. The user engagement metric can be determined based on the amount of user engagement with each page 121 in the first set 116 or can include the amount of user engagement with each web page 121 in the first set 116. The user engagement metric can include the amount of times a particular web page 121 is viewed, interacted with, or loaded, the amount of time spent on a particular web page 121, and the level of engagement with a particular web page 121. If one or more user engagement metrics of a web page 121 in the first set 116 are below a threshold level, the page filter 110 can remove the web page 121 from the first set 116. In some embodiments, the page filter 110 can filter the first set 116 based on the navigation tree 114 in the first clustering group. For example, the page filter 110 can filter the web pages 121 to retain the web pages 121 associated with the central node 330 and the leaf node 332, but can remove the web pages 121 associated with other nodes (e.g., intermediate node 336). In some embodiments, the page filter 110 can filter the web pages 121 in the first set 116 based on any of the above - identified types of the acquired data 101.
[0095] Figure 4 A graphical representation showing an example manner of filtering the web pages 121 in the first set 116 is shown. As Figure 4 shown, the web pages 121 can include web page 401, web page 402, web page 403, and web page 404. These web pages can be rendered (or have been rendered) in one or more browsing tabs 126 of a browsing session, and these web pages can be represented in one or more navigation trees 114 associated with a particular clustering group. The page filter 110 can use any of the above - described filtering techniques to filter these web pages to remove web page 402 and web page 403 from the first set 116.
[0096] Return reference Figure 1A, the journey-centric task builder 106 includes a page sorter 112 configured to sort web pages 121 in the first set 116 and / or the second set 118. For example, the page sorter 112 may sort the first set 116 based on timestamps (e.g., the time when a particular web page 121 was rendered or accessed), such that the first set 116 includes topic-related web pages 121 in chronological order. In some embodiments, the page sorter 112 sorts the first set 116 based on one or more user engagement metrics, such that the first set 116 includes a list of topic-related web pages 121, where web pages with higher user engagement are placed first on the list.
[0097] In some embodiments, in the case of mobile (e.g., the computing device 120 is a smartphone, tablet, etc.), it may not be possible to switch between multiple browser tabs 126 to perform a task. Instead, in many cases, in order to locate previously viewed information, the user may create a new browser tab 126 to find the desired web page 121. However, the navigation suggestion 128 is configured to provide a graphical layout of one or more web pages 121 in the first set 116 (or the second set 118) to assist the user in performing the task, as described further below.
[0098] In some embodiments, the navigation suggestion 128 may be a user interface element (or elements) that provides at least a portion of a list of the first set 116 on the user interface 124 of the web browser 122. In some embodiments, the navigation suggestion 128 is presented when it is determined that the currently viewed content is contextually related to the first set 116. In some embodiments, the navigation suggestion 128 is a list of web pages 121 in the first set 116. In some embodiments, the navigation suggestion 128 identifies at least a subset of the web pages 121 in the first set 116 as user-selectable links, where after selecting one of the links, the web browser 122 is configured to reload the selected web page 121 (or provide pre-fetched or pre-rendered content of the web page 121). In some embodiments, the navigation suggestion 128 identifies the title (or phrase describing the page) of each of the web pages 121 in the first set 116. In some embodiments, the navigation suggestion 128 displays representative images associated with one or more of the web pages 121. In some embodiments, the navigation suggestion 128 displays a map and a location on the map associated with one or more of the web pages 121. In some examples, the navigation suggestion 128 provides an ordered display of the web pages 121 that should be executed to perform the task.
[0099] In some embodiments, navigation suggestions 128 for identifying one or all of the web pages 121 in the first group 116 are provided on a browser page together with selectable links for reloading the web pages 121 in the first group 116. In some embodiments, the browser page identifies the web pages 121 in the first group 116 in chronological order, where the list is grouped by the number of days the web pages 121 in the first group 116 have been visited. In some embodiments, the web pages 121 in the first group 116 are arranged in a horizontal or vertical UI carousel. In some embodiments, the navigation suggestions 128 identify the web pages 121 in the first group 116 in chronological order. In some embodiments, the navigation suggestions 128 identify only a portion of the web pages 121 in the first group 116 and an option for expanding the navigation suggestions 128 to view other web pages 121 in the first group 116. In some embodiments, the navigation suggestions 128 include a single vertical card, a visual grid layout grouping the web pages 121 in the first group 116, and / or other types of user interface layouts presenting the web pages 121 in the first group 116. In some embodiments, the navigation suggestions 128 identify multiple groups (e.g., the first group 116 and the second group 118) and an option for selecting one of the groups to view the web pages 121 in that group.
[0100] In some embodiments, the web browser 122 may display links to the groups in a page (or portion) of the web browser 122. In some embodiments, the web browser 122 may display links to the groups in the bookmarks section of the web browser 122. In some embodiments, when the user is using the web browser 122, the web browser 122 may provide a suggestion for one of the groups. In some embodiments, when the user is typing one or more search terms into the search box of the web browser 122, the web browser 122 may provide navigation suggestions for the first group 116. For example, in response to one or more search terms being determined to be related to the theme of the first group 116, the web browser 122 may display a link to the first group 116. After selecting the link, the web browser 122 may display a list of the web pages 121 in the first group 116.
[0101] Figure 5AAn example of the navigation suggestion 128 is shown as an auto-tab list 518 having a collection of topic-related auto-tabs. The auto-tabs can include a first auto-tab 520-1, a second auto-tab 520-2, and a third auto-tab 520-3. In some embodiments, the web page 121 in the first group 116 can be an auto-tab in the auto-tab list 518. In some embodiments, the web page 121 in the second group 118 can be an auto-tab in the auto-tab list 518. In some embodiments, the user can select one of the auto-tabs in the auto-tab list 518, which causes the web browser 122 to reload the web page 121 (or provide pre-fetched or pre-rendered web content) in a particular browser tab 126.
[0102] In some embodiments, the auto-tab list 518 is a collection of topic-related web pages 121 that have been filtered (as previously discussed above) to omit one or more web pages 121. In some embodiments, the auto-tab list 518 is a collection of topic-related web pages 121 corresponding to the working set of the browser tab 126. The working set of the browser tab 126 can be the web pages in the currently open browser tab 126 and / or the web pages in the back-stack of the currently open browser tab 126. In some embodiments, the auto-tab list 518 that renders a chronological list of the web pages 121 in the first group 116 is presented on the user interface 124 of the UI layout. In some embodiments, the auto-tab list 518 is a UI layout that identifies the web pages 121 in the first group 116 in order of the likelihood of return based on one or more user engagement metrics, such as the number of times a particular web page 121 has been viewed, interacted with, or loaded, the time spent on a particular web page 121, and the level of user engagement with a particular web page 121.
[0103] In some embodiments, the auto-tab list 518 is rendered in a list format on the user interface 124, and the auto-tab list 518 identifies the titles of the web pages 121 in the first group 116 (or the second group 118), the corresponding websites, and the images associated with the web pages 121. In some embodiments, the auto-tab list 518 is rendered in a card style format on the user interface 124. In some embodiments, the auto-tab list 518 is rendered in a grid format on the user interface 124. In some embodiments, the auto-tab list 518 is rendered in a tab group format on the user interface 124, where the auto-tabs are grouped by topic into expandable cards. In some embodiments, the auto-tab list 518 is rendered in a tab stack format on the user interface 124, where the auto-tabs are grouped by topic into stacks, and the top auto-tab in each stack is the most recently used tab in the stack. In some embodiments, the auto-tab list 518 includes a search section (e.g., a search box, search suggestions) that allows searching the Internet.
[0104] In some embodiments, the auto-tab list 518 is rendered by the web browser 122 with respect to a particular browser tab 126. For example, the web browser 122 can open the first browser tab 131 and the second browser tab 132. In some embodiments, when the first browser tab 131 is in the foreground, the user can enter the tab switcher UI. The auto-tab list 518 can be provided in the UI layout at a position close to the first browser tab 131. In some embodiments, when in the tab switcher UI, the user can place the second browser tab 132 in the foreground, which causes the web browser 122 to provide the auto-tab list 518 in the UI layout at a position close to the second browser tab 132. However, if the first browser tab 131 and the second browser tab 132 are topic-related to the first group 116, the auto-tab list 518 can include the same (or similar) web pages 121 in the first group 116. If the first browser tab 131 is topic-related to the first group 116, the auto-tab list 518 can include a list of the web pages 121 in the first group 116, and the auto-tab list 518 is rendered at a position close to the first browser tab 131. If the second browser tab 132 is topic-related to the second group 118, the auto-tab list 518 can include a list of the web pages 121 in the second group 118, and the auto-tab list 518 is rendered at a position close to the second browser tab 132.
[0105] Figure 5BAn example of the relationship between the automatic tab list 518 and a group (or session) is shown. The first automatic tab list 518-1 may be associated with a first group 116 related to a first session. For example, the first automatic tab list 518-1 may include a list of web pages 121 in the first group 116. In this example, since the first browser tab 131 and the second browser tab 132 are related to the first group 116 theme, the first browser tab 131 is associated with the first automatic tab list 518-1, and the second browser tab 132 is associated with the first automatic tab list 518-1. However, the third browser tab 133 is related to the second group 118 theme of the second session, and the third browser tab 133 is associated with a second automatic tab list 518-2 that includes a list of web pages 121 in the second group 118. If a particular browser tab 126 is thematically related to a different group, the automatic tab list 518 may change. For example, if the first browser tab 131 becomes thematically related to the second group 118, the second automatic tab list 518-2 will be associated with the first browser tab 131.
[0106] Figure 6 An example of switching to an automatic tab in the automatic tab list 518 is shown. As Figure 6 shown, a browser tab (Tab A) is associated with an automatic tab list 518 that identifies automatic tabs B, C, and D. In some embodiments, when the user enters the tab switcher UI, the automatic tab list 518 is automatically provided in an area of the user interface 124 near the browser tab A. The user can select the automatic tab C, which causes the web browser 122 to reopen that tab. In some embodiments, the browser tab C is reopened in the back stack and from the previous scroll position of the browser tab C. Then, the next time the user returns to the tab switcher UI, the page that the user switched away from is at the top of the automatic tab list 518. For example, when the user enters the tab switcher UI, the automatic tab list 518 associated with the browser tab C includes the same automatic tabs and the browser tab A, which was the last viewed browser tab.
[0107] Figure 7An example of the navigation suggestion 128 is shown as an item list 718 having a collection of topic-related item tabs. The item tabs can include a first item tab 720-1, a second item tab 720-2, and a third item tab 720-3. In some embodiments, the web pages 121 in the first group 116 can be represented by the item tabs in the item list 718. In some embodiments, the web pages 121 in the second group 118 can be represented by the item tabs in the item list 718. In some embodiments, a user can select one of the item tabs in the item list 718, which causes the web browser 122 to reload the web page 121 in a particular browser tab 126.
[0108] In some embodiments, the item list 718 is a collection of items that a user is interested in purchasing, and these items are tracked and collected from the user and the web pages accessed using the web browser 122. For example, the item list 718 can be a UI element that displays the products (or services) and / or merchants in the user's consideration set in a way that allows for easy comparison. Generally, for product comparison, the user uses multiple browser tabs 126 to compare between products and merchants (e.g., sometimes referred to as page parking). In some embodiments, similar to the automatic tab list 518, the item list 718 is rendered on the user interface 124 when the web browser 122 enters the tab switcher UI. In some embodiments, the item list 718 is rendered in the bookmark section of the web browser 122 on the user interface 124. In some embodiments, the display of a particular item tab on the web browser 122 can be associated with a selectable pin that, when selected, causes the server 102 to track that particular item. In some embodiments, the item list 718 is rendered visibly or accessibly in a bar or list, from the browser toolbar. For example, the user can manually pin a page to the item list 718. In some embodiments, the manually pinned page remains on the item list 718 until it is removed. In some embodiments, the manually pinned page is visually distinct from the automatic items in the item list 718.
[0109] Figure 8Shows the relationship between the item list 718 and the group (or journey). The first item list 718-1 can be associated with the first group 116 (which is related to the first journey). For example, the first item list 718-1 can include a list of web pages 121 in the first group 116. In this example, since the first browser tab 131 and the second browser tab 132 are thematically related to the first group 116, the first browser tab 131 is associated with the first item list 718-1 and the second browser tab 132 is associated with the first item list 718-1. However, the third browser tab 133 is associated with the second group 118, and the third browser tab 133 is associated with the second item list 718-2 that includes web pages 121 in the second group 118.
[0110] Figure 9 Is a flowchart 900 that illustrates an exemplary operation of the server 102 and / or the web browser 122. Although Figure 9 The flowchart 900 of shows the operations in sequential order, it should be understood that this is merely an example and may include additional operations or alternative operations. In addition, Figure 9 The operations and related operations can be performed in a different order than shown, or in a parallel or overlapping manner. In some embodiments, Figure 9 The operations are performed by the server 102. In some embodiments, Figure 9 The operations are performed by the web browser 122. In some embodiments, Figure 9 The operations are performed by a combination of the web browser 122 and the server 102.
[0111] Operation 902 includes obtaining data about a plurality of web pages rendered within one or more browser tabs 126 of the web browser 122 executing on at least one computing device 120. In some embodiments, the plurality of web pages 121 includes a first web page rendered by the web browser 122 executing on a first device and a second web page rendered by the web browser 122 executing on a second device. For example, browser data can be synchronized across multiple devices associated with a user. In some embodiments, when the user is using the web browser 122, the web browser 122 generates data 101. For example, the user can enter one or more words in a search box, search field, or search bar, select bookmarks, pages, etc. from the browser history. Then, the user can navigate through the web pages 121 rendered by the browser tabs 126 of the web browser 122. In some embodiments, the web browser 122 can transmit at least a portion of the data 101 to the server 102 via the network 130.
[0112] Operation 904 includes processing the acquired data to group the plurality of web pages 121 into one or more groups (e.g., a first group 116, a second group 118), where each group includes a respective subset of the plurality of web pages 121. This processing may include performing a similarity analysis using the acquired data 101, where each group includes web pages 121 that are determined to be thematically related to each other based on the similarity analysis. In some examples, the similarity analysis includes hierarchical clustering. In some embodiments, the web browser 122 is configured to perform a similarity analysis on the various web pages 121 rendered by the web browser 122 to identify groups of thematically related web pages 121. In some embodiments, the server 102 is configured to perform a similarity analysis on the various pages 121 rendered by the web browser 122 to identify groups of thematically related web pages 121.
[0113] In some embodiments, the server 102 is configured to generate a plurality of navigation trees 114 based on the data 101, cluster subsets of the plurality of navigation trees 114 into clustering groups, and identify the group of web pages 121 from the clustering groups. In some embodiments, the navigation tree 114 includes page nodes and connections between the page nodes, where the page nodes represent web pages 121 rendered by the web browser 122, and the connections represent navigation paths between the web pages 121.
[0114] In some embodiments, the web browser 122 and / or the server 102 is configured to filter the group of web pages 121 based on the value of one or more determined user engagement metrics to remove one or more web pages 121 from the group of web pages 121, where the value of each determined user engagement metric indicates the amount of user engagement with the corresponding web page 121 in the group. In some embodiments, the web browser 122 and / or the server 102 is configured to sort the group of web pages 121 based on the value of one or more determined user engagement metrics.
[0115] Operation 906 includes selecting a group of web pages 121 from the one or more groups of web pages 121 determined to be thematically related to the content displayed in the web browser 122. In some examples, the server 102 or the web browser 122 performs a similarity analysis on the content displayed in the web browser 122 and a group of web pages 121, and if the content displayed in the web browser 122 has a similarity metric greater than a threshold level with respect to the group of web pages 121, the server 102 or the web browser 122 may determine that the content displayed in the web browser 122 is thematically related to the content of the group of web pages 121. In some examples, the similarity analysis may include any one or more of the above operations with respect to the navigation tree 114.
[0116] For example, a user may navigate to a tab switcher UI and select a particular browser tab 126 having content determined to be related to a first set 116 of topics of a web page 121, and the first set 116 of the web page 121 may be selected. The selected set may represent a task performed by a user of the web browser 122. For example, since the currently viewed information is related to the first set 116, the system 100 (e.g., the server 102 and / or the web browser 122) may determine that the user is currently performing a first task.
[0117] Operation 908 includes providing navigation suggestions 128 for display on a user interface 124 of the web browser 122 based on the selected set, where the navigation suggestions 128 include one or more user-selectable elements to assist the user in completing the task. In some embodiments, the navigation suggestions 128 include one or more web pages 121 in the selected set. In some embodiments, the navigation suggestions 128 include one or more suggested web pages 121 (e.g., not part of any in the set). In some embodiments, the navigation suggestions 128 include a sequence of web pages 121 (e.g., previously rendered or suggested), search ideas, and / or other navigation suggestions providing a course of action for completing the task.
[0118] In some embodiments, the server 102 and / or the web browser 122 are configured to determine that a set of web pages 121 is thematically related to content rendered in a browser tab 126 opened in the web browser 122, and provide the set of web pages 121 for selection in a tab switcher interface of the web browser 122 in a position proximate to the browser tab 126. In some embodiments, the server 102 and / or the web browser 122 are configured to provide a selection of the set of web pages 121 in a bookmarks section of the web browser 122. In some embodiments, the server 102 and / or the web browser 122 are configured to provide a selection of the set of web pages 121 as navigation suggestions associated with a search box of the web browser 122.
[0119] In some embodiments, the set of web pages 121 is a first set 116 of web pages 121. In some embodiments, the server 102 and / or the web browser 122 are configured to determine a second set 118 of web pages 121 from among the plurality of web pages 121 based on a similarity analysis of the accessed data, wherein the second set 118 of web pages 121 has a content theme different from that of the first set 116, and the server 102 and / or the web browser 122 are configured to provide the second set 118 of web pages 121 on the user interface 124 of the web browser 122 for selection. In some embodiments, the server 102 and / or the web browser 122 are configured to determine that the first set 116 of web pages 121 is thematically related to a first browser tab 131 opened on the web browser 122, determine that the second set 118 of web pages 121 is thematically related to a second browser tab 132 opened on the web browser 122, provide the first set 116 of web pages 121 for selection in response to a selection of the first browser tab 131, and provide the second set 118 of web pages 121 for selection in response to a selection of the second browser tab 132. In some embodiments, the server 102 and / or the web browser 122 are configured to prefetch the content of the at least one web page 121 independent of the user's selection of the at least one web page 121 from among the navigation suggestions 128.
[0120] Figure 10 is a flowchart 1000 illustrating exemplary operations of the server 102. Although Figure 10 the flowchart 1000 of Figure 10 shows the operations in sequential order, it should be understood that this is merely an example and may include additional operations or alternative operations. Further,
[0121] Operation 1002 includes receiving data 101 regarding a plurality of web pages 121 accessed via one or more browser tabs 126 of the web browser 122 over the network 130. For example, the server 102 is configured to receive the data 101 while the user is using the web browser 122.
[0122] Operation 1004 includes generating a navigation tree 114 based on the data 101. For example, the server 102 is configured to use the data 101 to generate the navigation tree 114. For example, a new navigation tree 114 is generated when the user begins a search or activates a link to a bookmark or page in the browser history.
[0123] Operation 1006 includes using similarity analysis to determine clustering groups of at least two navigation trees 114. For example, server 102 may use similarity analysis to cluster subsets of navigation trees 114 into clustering groups. For example, server 102 may represent each navigation tree 114 with keywords and associate a probability with each of the keywords indicating the relative likelihood that a particular keyword represents its navigation tree 114. Server 102 may create a feature vector for each navigation tree 114 using the keywords and probabilities and determine a distance (or similarity) vector based on a comparison of the feature vectors. If the value of the distance vector is above a threshold level, server 102 may determine that the corresponding navigation trees 114 are similarly related to the same topic and include these navigation trees 114 within the clustering group.
[0124] Operation 1008 includes identifying groups from the clustering groups. For example, server 102 may identify the web pages 121 of the groups as the web pages 121 of the navigation trees 114 of the clustering groups.
[0125] Operation 1010 includes filtering or sorting the groups based on the navigation trees and / or user engagement metrics. For example, server 102 may filter the groups by removing the web pages 121 of the intermediate nodes 336 of the navigation trees 114 of the clustering groups. Server 102 may filter the group of web pages 121 based on user engagement metrics, where the user engagement metrics indicate the amount of user engagement with each of the web pages 121 in the group. In some embodiments, server 102 may remove one or more web pages 121 from the group based on user engagement metrics (e.g., thereby including web pages with higher engagement). In some embodiments, server 102 may sort the web pages 121 within the group based on chronological order or user engagement metrics (e.g., the list may provide the web pages 121 in order according to user engagement, where the web pages 121 with higher engagement are provided first).
[0126] Operation 1012 includes providing the filtered or sorted groups as navigation suggestions. For example, server 102 may transmit an identification of the filtered or sorted groups to the web browser 122 executing on computing device 120 via network 130. In some embodiments, server 102 provides the filtered or sorted groups based on the activities of the user associated with web browser 122. For example, the user may direct web browser 122 to a tab switcher interface and select one of the open browser tabs 126, and in response to this activity, server 102 may transmit an identification of the filtered or sorted groups. In some embodiments, server 102 may transmit the filtered or sorted groups and a location that specifies the location within the user interface 124 for rendering the filtered or sorted groups.
[0127] Figure 11 Flowchart 1100 illustrates an exemplary operation of web browser 122. Although Figure 11 flowchart 1100 shows operations in sequential order, it should be understood that this is merely an example and may include additional operations or alternative operations. Additionally, Figure 11 the operations and related operations may be performed in an order different from that shown, or in parallel or overlapping manners.
[0128] Operation 1102 includes sending data 101 over network 130 to server 102 associated with web browser 122, where the data 101 includes information about multiple web pages 121 rendered within one or more browser tabs 126 of web browser 122.
[0129] Operation 1104 includes displaying content in user interface 124 of web browser 122. For example, the content may be content currently visible to the user.
[0130] Operation 1106 includes receiving navigation suggestions 128 over network 130 in response to the content being displayed in user interface 124 of web browser 122, where the navigation suggestions 128 identify one web page 121 (e.g., group 116 or group 118), and the group of web pages 121 is a subset of the multiple web pages 121 rendered by web browser 122. The group of web pages 121 includes web pages 121 that have been thematically related to each other and to the content displayed in user interface 124.
[0131] Operation 1108 includes displaying navigation suggestions 128 on user interface 124 of web browser 122, where the navigation suggestions 128 display the content of one or more web pages 121 in the group as one or more user-selectable elements, and each user-selectable element can be selected to access the corresponding web page 121 in the group.
[0132] In some embodiments, web browser 122 may prefetch the web content of at least one web page 121 in the group of web pages 121 prior to user selection of the at least one web page 121. In some embodiments, the navigation suggestions 128 display a list of web pages 121 in chronological order. In some embodiments, the group of web pages 121 is thematically related to the content displayed in browser tab 126 opened on web browser 122, and web browser 122 is configured to display a list of the group of web pages 121 in the tab switcher interface of web browser 122 in response to user selection of browser tab 126 within the tab switcher interface.
[0133] In some embodiments, the set of web pages is a first set 116 of web page 121, and the web browser 122 is configured to receive, via network 130 from server 102, an identification of a second set 118 of web page 121, where the second set 118 of web page 121 has content with a different content theme than the first set 116 of web page 121. The first set 116 of web page 121 is thematically related to a first browser tab 131 opened on web browser 122, and the second set 118 of web page 121 is thematically related to a second browser tab 132 opened on web browser 122. Web browser 122 may display the first browser tab 131 and the second browser tab 132 in a tab switcher interface of the web browser 122 for selection, display a list of web pages 121 of the first set 116 in the tab switcher interface in response to a user selection of the first browser tab 121 within the tab browser interface, and display a list of web pages 121 of the second set 118 in the tab switcher interface in response to a user selection of the second browser tab 132 within the tab switcher interface.
[0134] In some embodiments, web browser 122 is configured to display a link to the set on user interface 124 of web browser 122 and display a list of web pages 121 of the set in response to a user selection of the link. In some embodiments, web browser 122 is configured to display a link to the set in a bookmarks section of web browser 122. In some embodiments, web browser 122 is configured to display the link to the set as a navigation suggestion in response to one or more search terms being entered in a search box of web browser 122.
[0135] FIG. 12A to Figure 12K shows an example screenshot of web browser 122 configured to display the first set 116 as an auto-tab list 518. The example screenshot depicts a browsing session using web browser 122 in which the user is performing tasks, e.g., deciding to watch the new Avengers movie. FIG. 12A shows a screenshot of an Internet search using the search term —— avengers: infinity war ——. The user then uses web browser 122 to watch the movie trailer (see screenshot of FIG. 12B), read articles about the movie (see screenshot of FIG. 12C), and view the movie's cast (see Figure 12D screenshot). Then, FIGS. 12E, 12F, Figure 12GFIG. 12H is a screen shot showing the user's curiosity about one of the actors and searching for Benedict Cumberbatch. After reading about Cumberbatch (see the screen shot of FIG. 12H), the user has decided to watch the movie, but now the user decides that he wants to persuade one of his friends to come along and wants to locate the trailer.
[0136] After selecting connection 141, web browser 122 displays tab switcher UI 142 as shown in FIG. 12I. Tab switcher UI 142 provides a horizontal carousel to switch to other browser tabs in the user's working set, as shown in FIG. 12I. With respect to the selected tab in tab switcher UI 142, web browser 122 provides an auto-tab list 518 that identifies a collection of web pages 121 related to the theme, the collection of web pages 121 related to the theme of the selected browser tab, as shown in FIGS. 12I and Figure 12J the screen shot shows. Auto-tab list 518 includes a trailer for Avengers, which the user can click on to load a page (see Figure 12K the screen shot) and share with another user.
[0137] FIGS. 13A to Figure 13M show example screen shots of web browser 122 configured to display a first set 118 as an item list 718. The example screen shots depict a browsing session using web browser 122 in which the user is performing a task, e.g., purchasing a new vacuum cleaner. FIGS. 13A and Figure 13B are screen shots showing the user using web browser 122 to load and view a review site. FIGS. 13C, FIGS. 13D, Figure 13E are screen shots showing the user locating two potential items. The user wants to verify these options and find additional options, so the user searches for other reviews, as shown in FIGS. 13F and Figure 13G shown. From the reviews in the screen shot of FIG. 13H, the user locates two other items, as Figure 13I and Figure 13J the screen shot shows. As shown in FIGS. 13K, FIGS. 13L and Figure 13MAs shown in the screenshot, the web browser 122 identifies an item list 718 that includes items the user has viewed. For example, as shown in the screenshot of FIG. 13K, the web browser 122 displays a tab switcher UI 142, and the web browser 122 provides an item list 718 for the selected browser tab. In some embodiments, as shown in the screenshot of FIG. 13K, the web browser 122 also displays an auto-tab list 518 associated with the selected browser tab. After selecting a link 160, the web browser 122 displays an auto-tab list 518 with a complete list of items (in this example, the number of items is 4), as shown in the screenshot of FIG. 13L. Additionally, in some embodiments, the user can manually pin an item to the item list 718. For example, as Figure 13M shown in the screenshot, the item list 718 also includes manually pinned items, which are distinguished from other items by displaying an icon 162 associated with the manually pinned item.
[0138] Figure 14 An example screenshot showing the navigation suggestion 128 that displays the first group 116 as a page (e.g., also referred to as a journey page). As Figure 14 shown, the journey page depicts the web pages in the first group 116 in chronological order, separated by the number of days the web page 121 was rendered. The journey page also includes a title (e.g., Seattle Hiking), which is the title of the first group 116. In some embodiments, the navigation suggestion 128 also displays the top web page 167 of the first group 116 (e.g., selected by a user engagement metric).
[0139] Figure 15 An example screenshot of the web browser 122 is shown. In some embodiments, when the user types one or more search terms into the search box 170 of the web browser 122, the web browser 122 can provide a navigation suggestion 171 for the first group 116. For example, in response to determining that one or more search terms are related to the first group 116, the web browser 122 can display a navigation suggestion 171 for the first group 116. After selecting the navigation suggestion 171, the web browser 122 can display a list of the web pages 121 of the first group 116, as Figure 14 shown.
[0140] Figure 16An example of a computer device 600 and a mobile computer device 650 that can be used with the technology described herein is shown. In some embodiments, the computer device 600 is an example of the computing device 120. In some embodiments, the computer device 600 is an example of the server 102. In some embodiments, the mobile computer device 650 is an example of the computing device 120. The computing device 600 is intended to represent various forms of digital computers, such as laptop computers, desktop computers, tablet computers, workstations, personal digital assistants, televisions, servers, blade servers, mainframes, and other suitable computing devices. The computing device 650 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are only intended to be exemplary and are not intended to limit the embodiments of the invention described and / or claimed in this document.
[0141] The computing device 600 includes a processor 602, a memory 604, a storage device 606, a high-speed interface 608 connected to the memory 604 and the high-speed expansion port 610, and a low-speed interface 612 connected to the low-speed bus 614 and the storage device 606. The processor 602 may be a semiconductor-based processor. The memory 604 may be a semiconductor-based memory. Each of the components 602, 604, 606, 608, 610, and 612 is interconnected using a different bus and may be mounted on a common motherboard or in other suitable ways. The processor 602 can process instructions for execution within the computing device 600 - including instructions stored in the memory 604 or on the storage device 606 - to display graphical information of a GUI on an external input / output device such as a display 616 coupled to the high-speed interface 608. In other embodiments, multiple processors and / or multiple buses may be used appropriately with multiple memories and multiple types of memories. Additionally, multiple computing devices 600 may be connected, where each device provides a portion of the necessary operations (e.g., as a server group, a blade server group, or a multi-processor system).
[0142] The memory 604 stores information in the computing device 600. In some embodiments, the memory 604 is one or more volatile storage units. In another embodiment, the memory 604 is one or more non-volatile memory units. The memory 604 may also be another form of computer-readable medium, such as a magnetic disk or an optical disk.
[0143] The storage device 606 can provide large-capacity memory for the computing device 600. In one embodiment, the storage device 606 can be or include a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a magnetic tape device, a flash memory, or other similar solid-state memory devices, or an array of devices including a storage area network or other configured devices. A computer program product can be tangibly embodied in an information carrier. The computer program product can also include instructions that, when executed, perform one or more methods such as those described above. The information carrier is a computer or machine-readable medium, such as the memory 604, the storage device 606, or the memory on the processor 602.
[0144] The high-speed controller 608 manages the bandwidth-intensive operations of the computing device 600, while the low-speed controller 612 manages the lower bandwidth-intensive operations. This functional allocation is merely exemplary. In one embodiment, the high-speed controller 608 is coupled to the memory 604, the display 616 (e.g., via a graphics processor or accelerator), and a high-speed expansion port 610 that can accept different expansion cards (not shown). In an embodiment, the low-speed controller 612 is coupled to the storage device 606 and a low-speed expansion port 614. The low-speed expansion port, which can include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices, such as a keyboard, a pointing device, a scanner, or a network device such as a switch or router, for example, via a network adapter.
[0145] The computing device 600 can be implemented in many different forms, as shown in the figure. For example, it can be implemented as a standard server 620, or multiple times in a group of such servers. It can also be implemented as part of a rack server system 624. In addition, it can be implemented in a personal computer such as a laptop computer 622. Alternatively, components from the computing device 600 can be combined with other components in a mobile device (not shown) such as the device 650. Each of such devices can include one or more of the computing devices 600, 650, and the entire system can be composed of multiple computing devices 600, 650 that communicate with each other.
[0146] The computing device 650 includes a processor 652, a memory 664, input / output devices such as a display 654, a communication interface 666, and a transceiver 668, etc. The device 650 can also be equipped with a storage device such as a microdrive or other devices to provide additional storage. Each of the components 650, 652, 664, 654, 666, and 668 is interconnected using a different bus, and some of the components can be mounted on a common motherboard or in other appropriate ways.
[0147] The processor 652 can execute instructions within the computing device 650, including instructions stored in the memory 664. The processor can be implemented as a chipset including separate and multiple analog and digital processors. For example, the processor can provide coordination of other components of the device 650, such as control of the user interface, applications run by the device 650, and wireless communications performed by the device 650.
[0148] The processor 652 can communicate with the user through a control interface 658 and a display interface 656 coupled to the display 654. The display 654 can be, for example, a TFT-LCD (Thin Film Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other suitable display technology. The display interface 656 can include appropriate circuitry for driving the display 654 to present graphics or other information to the user. The control interface 658 can receive commands from the user and translate them for submission to the processor 652. In addition, an external interface 662 can be provided in communication with the processor 652 to enable near-field communication of the device 650 with other devices. For example, in some embodiments, the external interface 662 can provide wired communication, or in other embodiments provide wireless communication, and multiple interfaces can also be used.
[0149] The memory 664 stores information within the computing device 650. The memory 664 can be implemented as one or more of the following: one or more computer-readable media, one or more volatile memory units, or one or more non-volatile memory units. Extended memory 674 can also be provided and connected to the device 650 through an expansion interface 672, which can include a SIMM (Single In-line Memory Module) card interface. Such extended memory 674 can provide additional storage space for the device 650, or can also store applications or other information of the device 650. In particular, the extended memory 674 can include instructions for performing or supplementing the above processes, and can also include security information. Thus, for example, the extended memory 674 can be provided as a security module of the device 650 and can be programmed with instructions allowing for secure use of the device 650. In addition, security applications along with additional information can be provided via the SIMM card, such as placing identification information on the SIMM card in an unbreakable manner.
[0150] As described below, the memory may include, for example, flash memory and / or NVRAM memory. In one embodiment, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods such as those described above. The information carrier is a computer or machine-readable medium that can be received, for example, by transceiver 668 or external interface 662, such as memory 664, extended memory 674, or memory on processor 652.
[0151] Device 650 can communicate wirelessly via communication interface 666, which, if necessary, can include digital signal processing circuitry. Communication interface 666 can provide communication under different communication modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messages, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, etc. For example, such communication can occur via radio frequency transceiver 668. Additionally, short-range communication can occur, such as using Bluetooth, Wi-Fi, or other such transceivers (not shown). Further, a GPS (Global Positioning System) receiver module 670 can provide additional wireless data related to navigation and positioning to device 650, which can be appropriately used by applications running on device 650.
[0152] Device 650 can also communicate audibly using audio codec 660, which can receive oral information from a user and convert it into usable digital information. Audio codec 660 can also generate audible sounds for the user, such as via a speaker, for example, in the earpiece of device 650. Such sounds can include sounds from a voice telephone call, can include recorded sounds (e.g., voice messages, music files, etc.), and can also include sounds generated by applications operating on device 650.
[0153] Computing device 650 can be implemented in many different forms, as shown. For example, it can be implemented as a cellular phone 680. It can also be implemented as part of a smart phone 682, a personal digital assistant, or other similar mobile devices.
[0154] In addition to the above description, controls can be provided to the user that allow the user to make choices regarding whether and when to enable the collection of user information (e.g., information about the user's social network, social actions or activities, occupation, user preferences, or the user's current location) and whether to send content or communications from the server to the user. Further, before certain data is stored or used, it can be processed in one or more ways so that personally identifiable information is removed. For example, the user's identity can be processed so that no personally identifiable information can be determined for the user, or the user's geographical location can be generalized where location information is available (such as to a city, ZIP code, or state level) so that the user's specific location cannot be determined. Thus, the user can control what information about the user is collected, how that information is used, and what information is provided to the user.
[0155] The various embodiments of the systems and techniques described herein can be implemented in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include embodiments implemented in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which can be special purpose or general purpose and is coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0156] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and can be implemented in high-level programming and / or object-oriented programming languages and / or assembly / machine languages. As used herein, the terms “machine-readable medium” “computer-readable medium” refer to any computer program product, apparatus, and / or device (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal for providing machine instructions and / or data to a programmable processor.
[0157] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); input can be received from the user in any form, including sound, voice, or tactile input.
[0158] The systems and techniques described herein can be implemented in a computing system that includes backend components (e.g., as a data server), or includes middleware components (e.g., an application server), or includes frontend components (e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected by digital data communication in any form or medium (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
[0159] The computing system can include clients and servers. Clients and servers are typically located far apart from each other and typically interact through a communication network. The relationship between a client and a server arises by virtue of computer programs that run on the respective computers and have a client-server relationship with each other.
[0160] In this specification and the appended claims, unless the context clearly dictates otherwise, the singular forms "a", "an", and "the" do not exclude plural referents. Additionally, unless the context clearly dictates otherwise, conjunctions such as "and", "or", and "and / or" are inclusive. For example, "A and / or B" includes A alone, B alone, and A and B. Further, the connecting lines or connectors shown in the various figures are intended to represent exemplary functional relationships and / or physical or logical couplings between various elements. Many alternative or additional functional relationships, physical connections, or logical connections may exist in an actual device. Moreover, unless an element is explicitly described as "necessary" or "critical", no item or component is necessary for the practice of the embodiments disclosed herein.
[0161] Terms such as but not limited to approximately, substantially, generally, etc. are used herein to indicate a value or range that does not require its exactness and does not need to be specified. As used herein, the above-discussed terms have a ready and immediate meaning to those of ordinary skill in the art.
[0162] In addition, terms such as up, down, top, bottom, side, end, front, back, etc. are used herein with reference to the currently contemplated or illustrated directions. If they are considered with respect to another direction, it should be understood that these terms must be modified accordingly.
[0163] In addition, in this specification and the appended claims, unless the context clearly indicates otherwise, the singular forms "a", "an", and "the" do not exclude plural references. Also, unless the context clearly indicates otherwise, conjunctions such as "and", "or", "and / or" are inclusive. For example, "A and / or B" includes A alone, B alone, and A and B.
[0164] Although certain example methods, devices, and articles have been described herein, the scope of coverage of this patent is not limited thereto. It should be understood that the terms used herein are for the purpose of describing particular aspects and are not intended to be limiting. On the contrary, this patent covers all methods, devices, and articles that fall entirely within the scope of the claims of this patent.
Claims
1. A method, comprising: Identify a group of web pages that are topically related within a cluster group, where the web pages have previously been accessed via a browser; Receive, via a first interface associated with the browser, a portion of a query for accessing web content; Render, via the first interface, query suggestions related to the portion of the query, the query suggestions including selectable links associated with the group of web pages; And In response to a selection of the selectable link, render a second interface that identifies at least a portion of the group of web pages.
2. The method according to claim 1, further comprising: Cluster a first navigation graph and a second navigation graph into the cluster group based on a distance between a first feature vector and a second feature vector, Where the first navigation graph includes a first set of web pages among the web pages previously accessed via the browser, and The second navigation graph includes a second set of web pages among the web pages previously accessed via the browser.
3. The method according to claim 2, further comprising: Determine the first feature vector based on a first set of one or more keywords and the first navigation graph; And Determine the second feature vector based on a second set of one or more keywords and the second navigation graph.
4. The method according to claim 2, further comprising: Generate the first navigation graph and the second navigation graph respectively based on a previously received first query and a previously received second query.
5. The method according to claim 2, wherein The distance between the first feature vector and the second feature vector satisfies a threshold level.
6. The method according to claim 2, wherein The query suggestions are rendered via the first interface before the remaining portion of the query is received.
7. The method according to claim 2, wherein The query is topically related to the group of web pages.
8. The method according to claim 2, wherein The second interface identifies a web page associated with a higher engagement metric than the engagement metric associated with the group of web pages, and the web page is not included among the web pages previously accessed via the browser.
9. The method according to claim 2, wherein The first navigation graph includes at least two nodes and at least one connection between the at least two nodes, Each of the at least two nodes represents a web page among the web pages previously accessed via the browser, and The at least one connection represents a navigation path between the web pages represented by the respective nodes.
10. A system, comprising: An electronic processor configured to execute the method according to any one of claims 1-9.
11. A method, comprising: Generate browsing data regarding open browser tabs on a mobile user device; Identify a set of tabs among the open browser tabs based on a similarity analysis of the browsing data; Render a tab switcher interface on the mobile user device, the tab switcher interface including visual items representing the open browser tabs; Determine that a first open browser tab to be displayed as a visual item in the foreground of the tab switcher interface is related to the set of tabs; And Render at least a portion of the set of tabs in the tab switcher interface.
12. The method according to claim 11, further comprising: Generate a ranked list of web pages to be displayed in the tabs in the set of tabs based on a user engagement metric associated with the web pages; And Display the tabs in the set of tabs according to the ranked list of web pages.
13. The method according to claim 11, wherein, Identifying the set of tabs includes: Form a group of open browser tabs having web pages that are semantically related to each other, the set of tabs including the first open browser tab and the second open browser tab; Determine that a user engagement metric for the second open browser tab has not reached a threshold level; and Do not include the second open browser tab in the set of tabs.
14. The method according to claim 11, further comprising: In response to a user selection of the visual item in the tab switcher interface, render the first open browser tab on the mobile user device.
15. The method according to claim 11, further comprising: Generate at least one navigation graph based on the browsing data, the at least one navigation graph including nodes and at least one connection between the nodes, the nodes representing web pages rendered within the open browser tabs, the at least one connection representing a navigation path between the web pages; And Use the at least one navigation graph to identify the set of tabs.
16. The method according to claim 11, wherein, The visual item is a first visual item and the set of tabs is a first set of tabs, the method further comprising: In response to a user gesture positioning a second visual item representing a second open browser tab in the foreground of the tab switcher interface, determine that the second open browser tab is related to a second set of tabs among the open browser tabs; and Identify at least a portion of the second set of tabs in the tab switcher interface.
17. The method according to claim 11, wherein, The tab switcher interface includes a horizontal carousel for scrolling through the open browser tabs, and the set of tabs is displayed below the horizontal carousel.
18. A system, comprising: An electronic processor configured to execute the method according to any one of claims 11-17.