Browser-based navigation suggestions for task completion
By performing similarity analysis and grouping web pages in a web browser, providing navigation suggestions related to the user's current task, it solves the problem that it is difficult to provide effective navigation suggestions in multiple browser tabs and task history in the prior art, and realizes the More efficient tasks are completed.
Patent Information
- Application Number
- CN201980002977.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-24
- Filing Date
- 2019-07-25
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2039-07-25
AI Technical Summary
The prior art is difficult to effectively provide navigation advice in web browsers to help users complete specific tasks, especially in multiple browser tabs and task journeys.
Perform similarity analysis to group topic-related web pages and provide navigation suggestions based on these groups to help users complete tasks by obtaining data about web pages rendered within the web browser tab.
It realizes the automatic provision of navigation suggestions related to the user's current task in a web browser, reducing the user's navigation complexity between multiple tabs and tasks, and improving task completion efficiency.
Smart Images

Figure CN110972498B_ABST
Abstract
Description
[0001] Priority declaration
[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 which are incorporated herein by reference in their entirety. Background Art
[0003] A browser tab of a web browser can be a useful tool for obtaining and rendering content from the Internet to perform a user's specific task (e.g., planning a camping trip, deciding on and purchasing a new vacuum cleaner, etc.). Summary of the invention
[0004] In some embodiments, a method includes: obtaining data about a plurality of web pages rendered within one or more browser tabs of a web browser executed on at least one computing device, and processing the obtained data to group the plurality of web pages into one or more groups of web pages, wherein each group includes a respective subset of the plurality of web pages. The processing includes performing a similarity analysis using the obtained data, wherein each group includes web pages that are 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 content displayed in the web browser, wherein the selected group represents a task being performed by a user of the web browser, and providing navigation suggestions based on the selected group for display on a user interface of the web browser, wherein the navigation suggestions include one or more user-selectable elements that help the user complete the task.
[0005] In some embodiments, the method may include one or more of the following features (or any combination thereof). The plurality of web pages include a first web page rendered by a web browser executed on a first device and a second web page rendered by a web browser executed on a second device. Providing navigation suggestions includes displaying the content of one or more web pages of the selected group on a user interface of the web browser. Providing navigation suggestions includes displaying the content of web pages that were not previously rendered by the web browser during the process of a user performing a task. The processing also includes generating a plurality of navigation trees based on the acquired data, clustering subsets of the plurality of navigation trees into cluster groups based on a similarity analysis, and identifying the group of web pages based on the cluster groups. The navigation trees in the plurality of navigation trees include nodes and connections between nodes, wherein the nodes represent web pages rendered by the web browser, and the connections represent navigation paths between web pages. The processing also includes filtering the group of web pages to remove one or more web pages from the group based on the values of one or more determined user engagement metrics, wherein the value of each determined user engagement metric indicates an amount of user engagement with a corresponding web page in the group. The processing also includes ranking the set of web pages based on the values of the determined one or more user engagement metrics, wherein the value of each determined user engagement metric indicates an amount of user engagement with a corresponding web page in the set. Providing a navigation suggestion includes providing a selection of the selected set of web pages in a bookmarks portion of a web browser. Providing a navigation suggestion includes providing the selection of the selected set of web pages as a navigation suggestion associated with a search box of a web browser. The method also includes pre-fetching web content of the at least one web page in the selected set of web pages prior to user selection of the at least one web page in the selected set of web pages.
[0006] In some embodiments, a system includes: at least one processor; and a non-transitory computer-readable medium storing executable instructions, which are configured to execute a server when executed by the at least one processor. The server is configured to obtain data from a web browser executed on at least one computing device over a network, wherein the data includes information about a plurality of web pages rendered in 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, wherein each group includes a corresponding subset of the plurality of web pages. The server is configured to perform a similarity analysis using the obtained data, wherein each group includes web pages that are 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 content displayed in the web browser, wherein the selected group represents a task being performed by a user. The server is configured to provide navigation suggestions over a network based on the selected group for display on a user interface of the web browser, wherein the navigation suggestions include one or more user-selectable elements that help the user complete the task.
[0007] In some embodiments, the system includes one or more of the above / below features (or any combination thereof). The navigation suggestion includes 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 acquired data, wherein each of the plurality of navigation trees includes nodes and connections between nodes, the nodes represent web pages, and the connections represent navigation paths between web pages. The server is configured to cluster subsets of the plurality of navigation trees into cluster groups based on similarity analysis, and identify the group of web pages from the cluster groups. The server is configured to filter the cluster groups so as not to include one or more web pages of the cluster groups within the group of web pages. The nodes of the navigation tree of the cluster group include one or more hub nodes, one or more leaf nodes, and one or more intermediate nodes, and the server is configured to filter the cluster groups to remove web pages represented by the intermediate nodes. The server is configured to filter the cluster groups based on the values of the determined one or more user engagement metrics, wherein each determined user engagement metric value indicates the amount of user engagement with the corresponding web page in the group. The server is configured to provide navigation suggestions in a tab switcher interface of a web browser.
[0008] In some embodiments, a non-transitory computer-readable medium storing executable instructions, wherein the instructions, when executed by at least one processor, are configured to execute a web browser. The web browser is configured to send data to a server associated with the web browser over a network, wherein the data includes information about a plurality of web pages rendered in one or more browser tabs of the web browser, display content in a user interface of the web browser, in response to the content being displayed in the user interface of the web browser, receive a navigation suggestion over the network, wherein the navigation suggestion identifies a group of web pages, the group of web pages being a subset of the plurality of web pages rendered in the one or more browser tabs, and the group of web pages includes web pages that have been determined to be thematically related to each other, and display the navigation suggestion on the user interface of the web browser, wherein the navigation suggestion displays content of one or more of the web pages in the group as one or more user-selectable elements, and each user-selectable element can be selected to access a corresponding web page in the group.
[0009] In some embodiments, the web browser is configured to pre-fetch web content of at least one web page in the group of web pages prior to a user selection of a user-selectable element of at least one web page in the group of web pages. The navigation suggestion displays a list of web pages in the group in chronological order. The navigation suggestion is displayed in a tab switcher interface of the web browser. The web browser is configured to display selectable links to the group on a user interface of the web browser and to display the list of web pages in the group in response to a user selection of the link. The web browser is configured to display the selectable links to the group in a bookmarks section of the web browser. The web browser is configured to display the selectable links to the group as navigation suggestions in response to one or more search terms being entered in a search box of the web browser.
[0010] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1A A system for facilitating user navigation in a web browser executing on a computing device is shown.
[0012] Figure 1B An example of a group of first web pages and an example of a group of second web pages are shown.
[0013] Figure 2 A graphical representation of the tab history for a first browser tab, a second browser tab, and a third browser tab is shown.
[0014] Figure 3 An example of a navigation tree is shown.
[0015] Figure 4 A graphical representation of filtering a journey's web pages to obtain web pages for an automatic tab list is shown.
[0016] Figure 5A An example of navigation suggestions is shown.
[0017] Figure 5B Shows the relationship between the automatic tab list and the group.
[0018] Figure 6 An example of switching to an automatic tab in an automatic tab list is shown.
[0019] Figure 7 An example of navigation suggestions is shown.
[0020] Figure 8 Shows the relationship between item lists and groups.
[0021] Fig. 9 is a flow diagram illustrating example operations of a web browser and / or server. Fig.10 is a flow diagram illustrating example operation of a synchronization server.
[0022] Fig.11 is a flow chart illustrating example operation of a web browser.
[0023] Fig. 12A A screenshot of a web browser is shown.
[0024] Fig. 12B A screenshot of a web browser is shown.
[0025] Fig. 12C A screenshot of a web browser is shown.
[0026] Fig.12D A screenshot of a web browser is shown.
[0027] Fig.12E A screenshot of a web browser is shown.
[0028] Fig.12F A screenshot of a web browser is shown.
[0029] Figure 12G A screenshot of a web browser is shown.
[0030] Fig.12H A screenshot of a web browser is shown.
[0031] Fig.12IA screenshot of a web browser is shown.
[0032] Fig.12J A screenshot of a web browser is shown.
[0033] Figure 12K A screenshot of a web browser is shown.
[0034] Fig.13A A screenshot of a web browser is shown.
[0035] Fig. 13B A screenshot of a web browser is shown.
[0036] Fig. 13C A screenshot of a web browser is shown.
[0037] Fig.13D A screenshot of a web browser is shown.
[0038] Fig.13E A screenshot of a web browser is shown.
[0039] Fig.13F A screenshot of a web browser is shown.
[0040] Figure 13G A screenshot of a web browser is shown.
[0041] Fig.13H A screenshot of a web browser is shown.
[0042] Fig.13I A screenshot of a web browser is shown.
[0043] Fig.13J A screenshot of a web browser is shown.
[0044] Figure 13K A screenshot of a web browser is shown.
[0045] Figure 13L A screenshot of a web browser is shown.
[0046] Figure 13M A screenshot of a web browser is shown.
[0047] Fig.14 A screenshot of a web browser is shown.
[0048] Fig.15 A screenshot of a web browser is shown.
[0049] Fig.16 Examples of a computer device and a mobile computer device are shown. DETAILED DESCRIPTION
[0050] Discussed herein are technologies for providing context-sensitive navigation suggestions to users to help them complete tasks. These technologies can be implemented in various software applications, including web browsers, mobile applications running on mobile devices, or native operations performed on desktop computers. For example, a user can use a web browser to perform a task (e.g., research a movie to decide whether to watch the movie in a theater) by searching the World Wide Web for content. For example, a user can start with a web search to obtain search results about the movie, navigate to one or more reviews about the movie, navigate to a trailer for the movie, navigate to a web page that provides information about the cast of the movie, etc. During the process of displaying these different web pages to the user, existing web browsers may not understand the task that the user is trying to perform, which results in the loading and rendering of these specific pages.
[0051] In contrast, the present disclosure describes a technique for using similarity analysis to capture those web pages related to a user's task and for automatically displaying navigation suggestions to a user to help the user perform tasks. For example, in a movie example, after a user reads one or more comments about a movie, views the trailer of the movie, and reads information about the cast of the movie, the user may decide to watch a movie in a theater, but may want to persuade a friend to watch a movie with her. At this point, the user may want to find a web page with the movie trailer so that the user can send a link to the trailer to persuade a friend to watch the movie. In addition, at this point, the user may have opened multiple browsing tabs, which may or may not include a web page with the movie trailer. In addition, when a web browser is used during the process of searching for a movie, the user may be performing different tasks unrelated to the movie task. For example, the user may be checking the news or studying dog breeds, etc. Therefore, a web browser may have many browser tabs opened, wherein the history of the browser tab may span multiple tasks (or journeys). Typically, a user can simply open a new browser tab to search for movie trailers, rather than switching to other browser tabs or viewing the browsing history of a web browser.
[0052] 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 a user's browser activity is relevant to the task, the web browser can automatically display pages related to the task (and / or other navigation suggestions, such as suggested pages or suggested actions to help the user perform the task). For example, in some embodiments, the navigation suggestions include a list of previously rendered web pages to which the user may return. 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., a continuous display of navigation suggestions for completing a task).
[0053] The techniques discussed herein can reduce the amount of computing resources of a computing device executing a web browser by programmatically providing one or more navigation suggestions (e.g., a list of previously rendered web pages, suggested web pages, suggested actions, etc.) to a user to perform and / or complete tasks associated with the use of the web browser. For example, the number of browser tabs that would otherwise be launched to perform a task can be reduced and / or the execution time required to re-search or re-find relevant web pages to perform a task can be reduced, thereby reducing the amount of computing resources consumed by the computing device (e.g., computing resources may be "freed") and improving the efficiency of the web browser itself.
[0054] In the movie example, navigation suggestions may include a list of previously rendered web pages that the user may return to complete a task, the list including movie trailers. This list of web pages (which includes pages with movie trailers) may be presented as a selectable user interface (UI) element, wherein selection of the UI element causes the web browser to display the corresponding web page in a browser tab. Therefore, the user may not need to open a new browser tab to re-search for movie trailers or find out which browser tab has the content the user is looking for. Instead, when it is determined that the user is currently performing a task, the web browser automatically provides navigation suggestions to the user to help perform the task.
[0055] In the movie example, since the content about the cast of the movie is context-dependent with the list (or group) of web pages related to the task of determining whether to watch the movie, a selection of a web page with a trailer of the movie can be automatically provided in the user interface of the web browser, and when the web page is selected, the web browser can display the web page with the movie trailer in the browser tab. In some embodiments, the web browser can pre-extract 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 (that is, before the user selects or navigates 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 the background operation of the web browser. This advantageously tends to allow faster rendering of web content to the user. In addition, this advantageously tends to allow offline rendering of web content to the user.
[0056] In addition, the user's reaction to the navigation suggestions can be monitored to create a feedback loop to improve further recommendations. For example, the user can decide to select the navigation suggestions provided by the web browser. In addition, the user can decide to select a specific navigation suggestion over other navigation suggestions, or not to select any of the navigation suggestions but to navigate to a web page not suggested by the navigation suggestion. Future navigation suggestions can be improved based on the user's reaction to the navigation suggestions. In addition, future navigation suggestions can be improved based on other users' reactions to the same or similar navigation suggestions. This advantageously tends to allow more accurate navigation suggestions over time. In some embodiments, a control that allows the user to make a choice about whether and when the web browser and / or system can enable detection of the user's reaction to the navigation suggestions can be provided to the user.
[0057] In some examples, the similarity analysis is performed by a web browser or other software application executed on a device that renders content to a user. In some examples, the similarity analysis is performed on a server associated with the web browser or software application. For example, when a user uses a web browser to navigate through various searches and / or websites, the web browser can obtain data about web pages rendered by a browser tab, and the server or web browser can determine a group of web pages previously rendered by the web browser that are topic-related to each other based on the similarity analysis of the data. The group of web pages can include two or more web pages that are determined to be topic-related to each other, and the group of web pages can indicate that the user is performing a task.
[0058] Figure 1AA system 100 is shown for providing one or more navigation suggestions 128 to assist a user in completing a task using a web browser 122 executing on a computing device 120. As the user navigates through content using the web browser 122, the web browser 122 can obtain data 101 about web pages 121 accessed by the web browser 122. In some implementations, the web browser 122 can transmit at least a portion of the data 101 to a server 102 associated with the web browser 122 via a network 130.
[0059] Based on the data 101 received from the web browser 122 via the network 130, the server 102 can determine that the user is performing a task based on the data 101. The task can be a web search activity related to the same or similar topic. In some embodiments, a task refers to a single topic or category of activities performed by navigating the web browser 122. Some non-limiting examples may include researching hiking in a certain area, researching dog breeds, researching a specific movie to watch in a theater, or buying a vacuum cleaner on the Internet. In some embodiments, the web browser 122 determines that the user is performing a task based on the data 101. Although the following description indicates that some of the operations are performed by the server 102, in some embodiments, these operations can be performed by the web browser 122 executed on the computing device 120.
[0060] In some implementations, the server 102 determines that the user is performing a task by determining a first group 116 of web pages 121 from web pages 121 previously rendered by a browser tab 126 of a web browser 122. The web pages 121 may be instances of web pages that are being (or have been) loaded (or reloaded) in the 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 group 116 of web pages 121 may include web pages corresponding to a specific task that the user is performing using the web browser 122.
[0061] 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 an Internet search, 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, website site map, drop-down menus, etc. for navigating through Internet sites. The data 101 may be generated via any of the above-mentioned navigation tools (or any other navigation tools provided by the web browser / web page).
[0062] In some implementations, data 101 may include information specifying actions performed by a user utilizing any of the navigation tools, corresponding timestamps, etc. In addition, data 101 may also include information specifying user interactions with any of the presented content (e.g., time spent viewing a web page, how many pages a user opened from a given page, audio playback, etc.). In some implementations, a user associated with the same account may synchronize information across multiple computing devices, where data 101 from a first web browser executing on a first computing device may be used along with data from a second web browser executing on a second computing device to determine a group.
[0063] In some examples, data 101 includes entered search terms, context information (e.g., navigation history, time spent, trends of the user or other users), user profile information, information from previous browser instances / sessions, and / or information from different browsers. In some examples, data 101 includes the content and / or metadata of a web page. In some examples, a user may be provided with a form that allows the user to make a decision about whether and when web browser 122 and / or system 100 may enable collection of data 101 and / or whether one or more types of data may be used in a similarity analysis to determine whether a user is performing a particular task.
[0064] Figure 1B An example of a first group 116 and an example of a second group 118 are shown. Figure 1BAs shown in , the first group 116 of web pages 121 includes web pages 121 previously rendered by the browser tab 126 that are thematically related to each other. For example, the first group 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 group 116 is a different web page (e.g., HTML file) of an Internet site that is thematically related to the other web pages 121 in the first group 116. The web pages 121 in the first group 116 may represent a first task being performed by a user. For example, the web pages 121 in the first group 116 may be thematically related to the first task.
[0065] In some implementations, the server 102 may determine the second set 118 of web pages 121 from web pages 121 previously rendered by a browser tab 126 of a web browser 122. Figure 1B As shown, the second group 118 of web pages 121 includes web pages 121 that are previously rendered by the browser tab 126 and are thematically related to each other. For example, the second group 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 group 118 may be different in subject matter from the web pages 121 in the first group 116. Each web page 121 in the second group 118 is a web page (e.g., an HTML file) of a different Internet site that is thematically related to the other web pages 121 in the second group 118. Although three web pages 121 are shown with respect to the first group 116 and the second group 118, the first group 116 and the second group 118 may include any number of web pages 121. The web pages 121 in the second group 118 may represent a second task being performed by the user. For example, the web pages 121 in the second group 118 may be thematically related to a second task, where the second task is different from the first task. Although reference is made to Figure 1A and Figure 1B Two tasks are described, the user may be performing more than two tasks, and thus, there may be a third, fourth, fifth, and so on, group.
[0066] In response to the content displayed in the web browser 122 being thematically related to one of the tasks (e.g., the first task or the second task), the server 102 may provide one or more navigation suggestions 128 to the web browser 122 via the network 130. For example, in response to the content displayed in the web browser 122 being thematically related to the first group 116, the server 102 may send the navigation suggestions 128 to the web browser 122 for display to help the user perform the first task. In some embodiments, the navigation suggestions 128 include a list (or a subset) of web pages 121 in the first group 116. In some embodiments, the web pages 121 in the first group 116 are filtered or sorted based on the time when 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 group 116 is provided as one or more navigation suggestions 128 on the user interface 124 of the web browser 122, the filtered or sorted list providing web pages 121 that the user may revisit to complete or continue the first task.
[0067] In some implementations, the navigation suggestions 128 include suggested web pages (e.g., not part of the first group 116) but that are thematically related to the first group 116 to assist the user with respect to the first task. For example, in some implementations, the data 101 may indicate that other users performing tasks similar to the first task visited a particular web page 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.
[0068] In some implementations, 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 actions that provide suggested courses of action to assist the user in continuing or completing the first task.
[0069] In some embodiments, the user may switch tasks, and the content displayed by the web browser 122 may be related to the second task. In this case, in response to the content displayed in the web browser 122 being related to the second group 118 topic, the server 102 may send one or more navigation suggestions 128 to the web browser 122 for display to help the user perform the second task. In some embodiments, the navigation suggestions 128 include a list (or subset) of web pages 121 in the second group 118. In some embodiments, the web pages 121 in the second group 118 are filtered or sorted based on the time when 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 second group 118 is provided as one or more navigation suggestions 128 on the user interface 124 of the 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 implementations, the navigation suggestions 128 include suggested web pages (e.g., not part of the second group 118) but that are thematically related to the second group 118 to assist the user with respect to the second task. In some implementations, the navigation suggestions 128 include suggested courses of action to assist the user with respect to the second task.
[0070] By programmatically providing one or more navigation suggestions 128 to a user to perform and / or complete tasks associated with the use of the web browser 122, the navigation suggestions 128 can reduce the amount of computing resources (e.g., computing time and / or storage space used) of the computing device 120 consumed by the web browser 122. For example, through the use of the navigation suggestions 128, the number of browser tabs 126 that would otherwise be launched to perform a task can be reduced and / or the execution time required to re-search or re-find related web pages 121 to perform a task can be reduced, thereby reducing the amount of computing resources consumed by the computing device 120 (e.g., computing resources can be "freed up") and improving the efficiency of the web browser 122 itself.
[0071] In some embodiments, the web pages 121 of the group may be web pages that the user may revisit or return to in order to complete a task. Therefore, the web browser 122 can speed up 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 pre-fetch web content of one or all of the web pages 121 in the group or other web pages 121 provided by the navigation suggestions 128. For example, the web browser 122 can obtain web content from websites corresponding to some or all of the web pages 121 provided in the navigation suggestions 128 via the Internet in the 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., before the user selects or navigates to one or more of the web pages provided in the navigation suggestions 128). In some implementations, in background operations (and before a user selects or navigates to one or more of the web pages 121 in the navigation suggestions 128), the web browser 122 may retrieve the web content by loading a native library of the web browser 122, performing a domain name system (DNS) lookup based on a URL associated with a particular web page 121, downloading the web content from a server, and caching the web content. These retrieval operations may be performed for some or all of the web pages 121 in the navigation suggestions 128 (e.g., the group's web pages 121 or the suggested web pages 121).
[0072] This advantageously tends to allow web content to be rendered to the user faster. For example, since the web content has been acquired, when the user actually selects or navigates to a specific web page 121 in the navigation suggestion 128, the web browser 122 may only display the web content in the browser tab 126. Likewise, this advantageously tends to allow web content to be rendered offline to the user. In some embodiments, the web browser 122 may pre-extract at least one resource of the web browser 122. The resources of the web browser 122 may include a language translation service, form autofill, a password vault, and other browser resources. In some embodiments, in a background operation (and before the user selects or navigates to one or more web pages 121 in the navigation suggestion 128), the web browser 122 may acquire the web content of one or more web pages 121 in the navigation suggestion 128, and then use the language translation service to translate the page into a language associated with the user account.
[0073] In some embodiments, computing device 120 is a mobile computing device such as a mobile phone, tablet computer, or personal digital assistant. Computing device 120 includes a network interface configured to connect computing device 120 to 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 an operating system of a mobile device. The mobile browser is configured to render and display a mobile tab with a web page in a mobile format (or in a desktop format). In some embodiments, computing device 120 is a laptop, desktop computer, or other computing device with an operating system configured to execute web browser 122 to retrieve and display Internet content in a desktop format.
[0074] The mobile format has a page layout different from the desktop format. In the mobile format, there is no tab bar identifying the open browser tabs 126. On the contrary, in the mobile format, the web browser 122 includes a tab switcher user interface (UI) that allows the 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, wherein one browser tab 126 is fully displayed and other browser tabs 126 are 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 slid to the right or left to select other open browser tabs 126.
[0075] Each browser tab 126 may be a container for a web page 121 of an Internet site. Typically, on a mobile device, browser tabs 126 are opened and closed manually, and creating a new browser tab 126 may take three taps, and in some cases, about two seconds (compared to, for example, one click on a desktop). In addition, 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 further described below, the navigation suggestion operations discussed herein can automatically provide navigation suggestions 128 that a user may view again or help complete his / her tasks.
[0076] The web pages 121 in the first group 116 may have been rendered (at some point in time) across one or more browser tabs 126. Similarly, the web pages 121 in the second group 118 may have been rendered (at some point in time) across one or more browser tabs 126. In some implementations, the first group 116 of web pages 121 may be considered to be a journey (i.e., a real-world task performed by a web browser 122) that occurs over time. A particular journey may span one, two, or more than two browser tabs 126. In other words, a journey may span multiple browser tabs 126, and a browser tab 126 may be presented in multiple different journeys. Figure 1A As shown, the web browser 122 may include three browser tabs 126, i.e., a first browser tab 131, a second browser tab 132, and a third browser tab 133. In some embodiments, a group of specific 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 in subject matter. 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 opened browser tabs 126 and web pages from closed browser tabs 126.
[0077] Figure 2 A graphical representation of the tab history of a first browser tab 131 , a second browser tab 132 , and a third browser tab 133 is shown. Figure 2 The various web pages 201-215 are examples of web pages 121. The first browser tab 131 may include web page 201, web page 202, web page 203, web page 204, and web page 205, where web page 201 is the latest web page (or current web page) of the first browser tab. The second browser tab 132 may include web page 206, web page 207, web page 208, web page 209, and web page 210, where web page 206 is the latest web page (or current web page) of the second browser tab 132. The third browser tab 133 may include web page 211, web page 212, web page 213, web page 214, and web page 215, where web page 211 is the latest web page (or current web page) of the third browser tab 133.
[0078] Web pages 201 and 202 may be related to Task A (or Process A) (e.g., finding out who plays Doctor Strange in Avengers: Infinity War), Web pages 203 to 206 may be related to Task B (or Process B) (e.g., following up on the news), and Web pages 207 to 215 may be related to Task C (or Process C) (e.g., researching dog breeds). As discussed further below, because Web pages 201 and 202 are thematically related to each other, server 102 may determine first group 116 to include Web pages 201 and 202 (from first browser tab 131). Server 102 may determine second group 118 to include Web pages 203 to 206 (from first browser tab 131 and second browser tab 132), and because Web pages 207 to 215 are thematically related, server 102 may determine third group to include Web pages 207 to 215 (from second browser tab 132 and third browser tab 133).
[0079] Return to reference Figure 1A In some implementations, server 102 may 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 may bookmark a particular web page using web browser 122 on computing device 120. If other computing devices are associated with the user's account on server 102, data may be transferred from computing device 120 to server 102 and to the other user devices, such that the bookmark also appears in web browsers 122 running on the other computing devices.
[0080] In some embodiments, user actions can be synchronized across computing devices. User actions that can be synchronized across computing devices may 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 position in a document, playing a media content stream, running a Javascript element, or any other action associated with operating a web browser 122. In some embodiments, user actions may be document object model (DOM) events. DOM events may include standardized DOM events promulgated by the World Wide Web Consortium (W3C), the main standard organization for the Internet, and / or may include browser-specific DOM events. Typically, DOM events allow web pages to include code that is conditional on the detection of a certain event. In some embodiments, DOM events may include receiving input from an interface device (e.g., a mouse or other pointing device, a keyboard, a touch screen display, etc.). For example, a DOM event may correspond to clicking a web page object with a mouse, pressing an up arrow on a keyboard, touching a touch screen display, etc. DOM events may also include actions such as loading or unloading a web page, changing the size of the window of the 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 the web browser 122 and another application, opening or closing a window, detecting an error, or other events related to the operation of the web browser 122.
[0081] In some examples, when web browser 122 is executed on computing device 120 , web browser 122 sends data about the visited web page 121 to server 102 over network 130 .
[0082] The network 130 may 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. The network 130 may also include any number of computing devices (e.g., computers, servers, routers, network switches, etc.) configured to receive and / or transmit data within the network 130. The network 130 may also include any number of hardwired and / or wireless connections.
[0083] The server 102 may include a navigation tree builder 104 configured to generate a navigation tree based on the data 101. For example, when a user initiates a search (e.g., enters one or more terms in a search box of a web browser 122), selects on a link in a browsing history, and / or selects a bookmark, the navigation tree builder 104 may generate a new navigation tree 114. As a user navigates from a root node, such as when a particular page is rendered in a browser tab 126, the navigation tree builder 104 may create new page nodes. For example, each navigation tree 114 may start with a search or bookmark, and as the user navigates from a page or search result (e.g., selects a particular search result, selects a link on a page, selects a 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. There may be many separate navigation trees 114 for a particular user account. As an example, Figure 1A A first navigation tree 114 - 1 , a second navigation tree 114 - 2 , and a third navigation tree 114 - 3 are shown. However, the navigation tree 114 may include more than three navigation trees 114 .
[0084] Figure 3 An example of a navigation tree 114 is shown. The navigation tree 114 may be an example of a first navigation tree 114-1, a second navigation tree 114-2, or a third navigation tree 114-3. The navigation tree 114 may be a hierarchical data structure that displays the relationships between web pages 121 of an Internet site navigated by a 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 corresponding different web page 121 rendered by a web browser 122. The page nodes may include a hub node 330, a leaf node 332, and an intermediate node 336 disposed between the hub node 330 and the leaf node 332.
[0085] like Figure 3As shown, the user can direct the web browser 122 to display the first web page (represented by page node 1) (e.g., by starting a new search), and navigate to the 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 can be considered as 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 can then navigate back to the first web page, where a connection 331 is provided from page node 2 to page node 1. Because page node 2 has no child nodes, page node 2 is a leaf node 332. The user can then navigate to the third web page (represented by page node 3), where a connection 331 is provided from page node 1 to page node 3. Because page node 1 has at least two child nodes directly connected to it, page node 1 is a hub node 330. The user can then navigate to the fourth web page (represented by page node 4), and then to the fifth web page (represented by page node 5). The user can navigate from the third web page to the 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.
[0086] The server 102 may include a journey-centric task builder 106 configured to determine the first task and / or the second task by building the first group 116 and / or the second group 118 (and any additional groups) from the web pages 121 rendered by the browser tab 126. In addition, the journey-centric task builder 106 may filter and / or sort the web pages 121 in the first group 116 and / or the second group 118 to determine which web pages 121 are included in the navigation suggestions 128.
[0087] The journey-centric task builder 106 may include a similarity analyzer 108 configured to group similarly related navigation trees 114 into navigation groups using a similarity analysis. In some embodiments, the similarity analysis includes hierarchical clustering. In some embodiments, the similarity analyzer 108 is configured to determine a first group 116 of web pages 121 from web pages 121 previously rendered by a web browser 122 based on a similarity analysis of the navigation trees 114, such that the first group 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 of the navigation trees 114 (e.g., two or more navigation trees) into a first cluster group based on the similarity analysis, and identify the first group 116 of web pages 121 from the first cluster group. The similarity analyzer 108 is configured to cluster a second subset of the navigation trees 114 (eg, two or more navigation trees) into a second cluster group based on the similarity analysis and identify a second group 118 of web pages 121 from the second cluster group.
[0088] In some embodiments, the similarity analyzer 108 may represent each navigation tree 114 with a keyword, and associate a probability with each of the keywords, each of which indicates the relative likelihood that a particular keyword represents its navigation tree 114. For example, the similarity analyzer 108 may represent each web page 121 with a set of keywords, and each of the keywords may represent the relative likelihood that a particular keyword represents the web page 121. In some embodiments, the probabilities are determined based on term frequency and inverse document frequency techniques. For a particular navigation tree 114, the similarity analyzer 108 may accumulate all the keywords in all the web pages 121 in the navigation tree 114. The similarity analyzer 108 may create a feature vector based on the keywords and their probabilities.
[0089] In one example, a navigation tree 114 associated with Yellowstone National Park may have a group 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 the 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 may use the keywords and probabilities to create feature vectors for each navigation tree 114, and determine the distance (or similarity) vector based on the comparison of the feature vectors. In some embodiments, the cosine distance between the feature vectors is used as a distance (or similarity) metric in a clustering algorithm. If the value of the distance metric is higher than a threshold level, the similarity analyzer 108 server may determine that the corresponding navigation tree 114 is similarly related to the same topic, and include these navigation trees 114 in a clustering group. The web page 121 of the navigation tree 114 in the clustering group may be identified as the web page of the group.
[0090] 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 the cluster 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 cluster 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.
[0091] 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 result is a similarity metric above a threshold level, the first web page and the second web page 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 measures including character-based similarity (e.g., longest common substring (LCS), Damerau Levenshtein, Jaro, Jaro Winkler, etc.) and word-based similarity measures (e.g., block distance, cosine similarity, Dice coefficient), corpus-based similarity (e.g., hyperspace language simulation (HAL), latent semantic analysis (LSA)) and / or knowledge-based similarity.
[0092] In some implementations, the journey-centric task builder 106 includes a page filter 110 configured to filter the first group 116 (or any other group) of web pages 121 to remove one or more web pages 121 from the first group 116. Note that any operations described with reference to the first group 116 may be equally applicable to the second group 118. In some implementations, the page filter 110 filters the first group 116 based on timestamps associated with the web pages 121 in the first group 116. For example, the page filter 110 may remove one or more web pages 121 older than a predetermined time from the first group 116 (e.g., remove web pages 121 older than 4 hours, 1 day, 1 week, etc.). In some implementations, the page filter 110 filters the first group 116 based on one or more user engagement metrics associated with the web pages 121 in the first group 116. The user engagement metrics may be determined based on an amount of user engagement with each page 121 in the first group 116 or include an amount of user engagement with each web page 121 in the first group 116. The user engagement metrics may 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 of the user engagement metrics for a web page 121 in the first group 116 is below a threshold level, the page filter 110 may remove the web page 121 from the first group 116. In some implementations, the page filter 110 may filter the first group 116 based on the navigation tree 114 in the first cluster group. For example, the page filter 110 may filter the web pages 121 to retain the web pages 121 associated with the hub node 330 and the leaf node 332, but may remove the web pages 121 associated with other nodes (e.g., the intermediate node 336). In some implementations, the page filter 110 may filter the web pages 121 in the first group 116 based on any of the above-identified types of the acquired data 101.
[0093] Figure 4 A graphical representation of an example manner of filtering web pages 121 in first group 116 is shown. Figure 4 As shown, web pages 121 may include web page 401, web page 402, web page 403, and web page 404. These web pages may be rendered (or have been rendered) in one or more browsing tabs 126 of a browsing session, and these web pages may be represented in one or more navigation trees 114 associated with a particular cluster group. Page filter 110 may filter these web pages using any of the above-described filtering techniques to remove web page 402 and web page 403 from first group 116.
[0094] Return to reference Figure 1A, the journey-centric task builder 106 includes a page sorter 112 configured to sort the web pages 121 in the first group 116 and / or the second group 118. For example, the page sorter 112 can sort the first group 116 based on a timestamp (e.g., the time when a particular web page 121 was rendered or accessed) so that the first group 116 includes thematically related web pages 121 in chronological order. In some implementations, the page sorter 112 sorts the first group 116 based on one or more user engagements so that the first group 116 includes a list of thematically related web pages 121, wherein web pages with higher user engagements are placed first on the list.
[0095] In some implementations, in a mobile situation (e.g., the computing device 120 is a smartphone, tablet, etc.), switching between multiple browsing tabs 126 to perform a task may be less likely to occur. Instead, in many cases, in order to locate previously viewed information, the user is likely to create a new browser tab 126 to find a desired web page 121. However, the navigation suggestion 128 is configured to provide a graphical arrangement of one or more web pages 121 in the first group 116 (or the second group 118) to help the user perform the task, as further described below.
[0096] In some implementations, the navigation suggestion 128 can be a user interface element (or elements) that provides at least a portion of the list of the first group 116 on the user interface 124 of the web browser 122. In some implementations, the navigation suggestion 128 is presented when it is determined that the content currently being viewed is contextually relevant to the first group 116. In some implementations, the navigation suggestion 128 is a list of web pages 121 in the first group 116. In some implementations, the navigation suggestion 128 identifies at least a subset of the web pages 121 in the first group 116 as user-selectable links, wherein upon 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 implementations, the navigation suggestion 128 identifies a title (or a phrase describing the page) for each of the web pages 121 in the first group 116. In some implementations, the navigation suggestion 128 displays a representative image associated with one or more of the web pages 121. In some implementations, 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 suggestions 128 provide a sequential display of web pages 121 that should be executed to perform a task.
[0097] In some embodiments, navigation suggestions 128 identifying one or all of the web pages 121 in the first group 116 are provided on the browser page along with a selectable link 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, wherein the list is grouped by the number of days that the web pages 121 in the first group 116 were 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 to expand 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 that groups the web pages 121 in the first group 116, and / or other types of user interface layouts that present the web pages 121 in the first group 116. In some implementations, the navigation suggestion 128 identifies a plurality of groups (eg, the first group 116 and the second group 118 ) and an option for selecting one of the groups to view the web pages 121 of the group.
[0098] In some implementations, the web browser 122 may display a link to the group in a page (or portion) of the web browser 122. In some implementations, the web browser 122 may display a link to the group in a bookmarks section of the web browser 122. In some implementations, the web browser 122 may provide a suggestion for one of the groups while the user is using the web browser 122. In some implementations, the web browser 122 may provide a navigation suggestion to the first group 116 while the user is typing one or more search terms into a search box of the web browser 122. For example, in response to one or more search terms being determined to be related to the first group 116 topic, the web browser 122 may display a link to the first group 116. Upon selecting the link, the web browser 122 may display a list of web pages 121 in the first group 116.
[0099] Figure 5AAn example of the navigation suggestion 128 is shown as an automatic tab list 518 having a collection of thematically related automatic tabs. The automatic tabs may include a first automatic tab 520-1, a second automatic tab 520-2, and a third automatic tab 520-3. In some embodiments, the web pages 121 in the first group 116 may be automatic tabs in the automatic tab list 518. In some embodiments, the web pages 121 in the second group 118 may be automatic tabs in the automatic tab list 518. In some embodiments, the user may select one of the automatic tabs in the automatic tab list 518, which causes the web browser 122 to reload the web page 121 in a particular browser tab 126 (or provide pre-fetched or pre-rendered web content).
[0100] In some implementations, the automatic tab list 518 is a collection of thematically related web pages 121 that have been filtered (as previously discussed above) to omit one or more web pages 121. In some implementations, the automatic tab list 518 is a collection of thematically related web pages 121 that corresponds to a working set of browser tabs 126. The working set of browser tabs 126 may be web pages in a currently opened browser tab 126 and / or web pages in a back stack of a currently opened browser tab 126. In some implementations, the automatic tab list 518 identifying a chronological list of web pages 121 in the first group 116 is rendered on the user interface 124 of the UI layout. In some implementations, the automatic tab list 518 is a UI layout that identifies the web pages 121 in the first group 116 in order by 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 the particular web page 121.
[0101] In some embodiments, the automatic tab list 518 is rendered in a list format on the user interface 124, the automatic tab list 518 identifying the title of the web page 121, the corresponding website, and the image associated with the web page 121 of the web page 121 in the first group 116 (or the second group 118). In some embodiments, the automatic tab list 518 is rendered in a comb-style format on the user interface 124. In some embodiments, the automatic tab list 518 is rendered in a grid format on the user interface 124. In some embodiments, the automatic tab list 518 is rendered in a tab group format on the user interface 124, where the automatic tabs are grouped into expandable cards by theme. In some embodiments, the automatic tab list 518 is rendered in a tab stack format on the user interface 124, where the automatic tabs are grouped into stacks by theme, and the top automatic tab in each stack is the most recently used tab in the stack. In some embodiments, the automatic tab list 518 includes a search portion (e.g., a search box, search suggestions) that allows searching the Internet.
[0102] In some embodiments, the automatic tab list 518 is rendered by the web browser 122 with respect to a particular browser tab 126. For example, the web browser 122 may have a first browser tab 131 and a second browser tab 132 open. In some embodiments, the user may enter the tab switcher UI with the first browser tab 131 in the foreground. The automatic tab list 518 may be provided in a UI layout at a location proximate to the first browser tab 131. In some embodiments, while in the tab switcher UI, the user may place the second browser tab 132 in the foreground, which causes the web browser 122 to provide the automatic tab list 518 in a UI layout at a location proximate to the second browser tab 132. However, if the first browser tab 131 and the second browser tab 132 are thematically related to the first group 116, the automatic tab list 518 may include the same (or similar) web pages 121 in the first group 116. If the first browser tab 131 is thematically related to the first group 116, the automatic tab list 518 may include a list of web pages 121 in the first group 116, and the automatic tab list 518 may be rendered proximate to the first browser tab 131. If the second browser tab 132 is thematically related to the second group 118, the automatic tab list 518 may include a list of web pages 121 in the second group 118, and the automatic tab list 518 may be rendered proximate to the second browser tab 132.
[0103] Figure 5BAn example of a relationship between an automatic tab list 518 and a group (or journey) is shown. A first automatic tab list 518-1 can be associated with a first group 116 related to a first journey. For example, the first automatic tab list 518-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 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 thematically related to the second group 118 of the second journey, and the third browser tab 133 is associated with the second automatic tab list 518-2 including 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 can 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.
[0104] Figure 6 An example of switching to an automatic tab in the automatic tab list 518 is shown. Figure 6 As shown, a browser tab (Tab A) is associated with an automatic tab list 518 that identifies automatic tabs B, automatic tabs C, and automatic tabs D. In some implementations, when the user enters the tab switcher UI, the automatic tab list 518 is automatically provided in an area of the user interface 124 proximate to browser tab A. The user can select automatic tab C, which causes the web browser 122 to reopen the tab. In some implementations, browser tab C is reopened in a back stack and scrolled from the previously used position of browser tab C. Then, the next time the user returns to the tab switcher UI, the page the user switched away from is at the top of the automatic tab list 518. For example, when the user entered the tab switcher UI, the automatic tab list 518 associated with browser tab C includes the same automatic tabs as well as browser tab A, which was the last viewed browser tab.
[0105] Figure 7An example of the navigation suggestion 128 is shown as an item list 718 with a collection of thematically related item tabs. The item tabs may 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 may be represented by the item tabs in the item list 718. In some embodiments, the web pages 121 in the second group 118 may be represented by the item tabs in the item list 718. In some embodiments, the user may 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.
[0106] In some embodiments, the item list 718 is a collection of items that the user is interested in purchasing, which are tracked and collected from the user and the web pages visited 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 manner that allows easy comparison. Typically, for product comparison, the user uses multiple browser tabs 126 to compare between products and merchants (e.g., sometimes referred to as page docking). In some embodiments, similar to the automatic tab list 518, when the web browser 122 enters the tab switcher UI, the item list 718 is rendered on the user interface 124. In some embodiments, the item list 718 is rendered in the bookmarks section of the web browser 122 on the user interface 124. In some embodiments, the display of a specific item tab on the web browser 122 can be associated with a selectable pushpin that causes the server 102 to track the specific item when selected. In some embodiments, the item list 718 is rendered in a bar or list, visible or available from the browser toolbar. For example, the user can manually pin a page pushpin to the item list 718. In some implementations, manually pinned pages remain on the item list 718 until removed. In some implementations, manually pinned pages are visually distinguished from automatic items in the item list 718.
[0107] Figure 8The relationship between the item list 718 and the group (or journey) is shown. 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 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 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 including the web pages 121 in the second group 118.
[0108] Fig. 9 9 is a flowchart 900 illustrating certain exemplary operations of the server 102 and / or the web browser 122. Fig. 9 Flowchart 900 shows operations in sequential order, but it should be understood that this is merely an example and additional operations or alternative operations may be included. Fig. 9 The operations and related operations may be performed in a different order than shown, or in parallel or in an overlapping manner. In some embodiments, Fig. 9 The operation is performed by the server 102. In some embodiments, Fig. 9 The operation is performed by the web browser 122. In some embodiments, Fig. 9 The operations are performed through a combination of the web browser 122 and the server 102.
[0109] Operation 902 includes obtaining data about a plurality of web pages rendered within one or more browser tabs 126 of a web browser 122 executed on at least one computing device 120. In some embodiments, the plurality of web pages 121 include a first web page rendered by a web browser 122 executed on a first device and a second web page rendered by a web browser 122 executed on a second device. For example, browser data may be synchronized across multiple devices associated with a user. In some embodiments, the web browser 122 generates data 101 while the user is using the web browser 122. For example, the user may enter one or more terms in a search box, a search field, or a search bar, select a bookmark, a page from a browser history, etc. The user may then navigate through the web pages 121 rendered by the browser tabs 126 of the web browser 122. In some embodiments, the web browser 122 may transmit at least a portion of the data 101 to the server 102 via the network 130.
[0110] 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), wherein each group includes a respective subset of the plurality of web pages 121. The processing may include performing a similarity analysis using the acquired data 101, wherein 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 implementations, 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 implementations, 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.
[0111] 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 cluster groups based on similarity analysis, and identify the set of web pages 121 from the cluster groups. In some embodiments, the navigation tree 114 includes page nodes and connections between page nodes, wherein the page nodes represent web pages 121 rendered by the web browser 122, and the connections represent navigation paths between the web pages 121.
[0112] In some implementations, the web browser 122 and / or the server 102 are configured to filter the set of web pages 121 based on the determined values of the one or more user engagement metrics to remove one or more web pages 121 from the set of web pages 121, wherein the value of each determined user engagement metric indicates an amount of user engagement with the corresponding web page 121 in the set. In some implementations, the web browser 122 and / or the server 102 are configured to sort the set of web pages 121 based on the determined values of the one or more user engagement metrics.
[0113] Operation 906 includes selecting a set of web pages 121 from the one or more sets 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 with respect to the content displayed in the web browser 122 and the set of web pages 121, and if the content displayed in the web browser 122 has a similarity metric with respect to the set of web pages 121 that is greater than a threshold level, 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 set of web pages 121. In some examples, the similarity analysis may include any one or more of the operations described above with respect to the navigation tree 114.
[0114] For example, a user may navigate to the tab switcher UI and select a particular browser tab 126 having content that is determined to be thematically related to the first group 116 of web pages 121, and the first group 116 of web pages 121 may be selected. The selected group may represent a task performed by the user of the web browser 122. For example, because the currently viewed information is related to the first group 116, the system 100 (e.g., the server 102 and / or the web browser 122) may determine that the user is currently performing the first task.
[0115] Operation 908 includes providing navigation suggestions 128 based on the selected group for display on the user interface 124 of the web browser 122, wherein the navigation suggestions 128 include one or more user-selectable elements that help the user complete the task. In some implementations, the navigation suggestions 128 include one or more web pages 121 in the selected group. In some implementations, the navigation suggestions 128 include one or more suggested web pages 121 (e.g., not part of any of the group). In some implementations, the navigation suggestions 128 include a sequence of web pages 121 (e.g., previously rendered or suggested), search ideas, and / or other navigation suggestions that provide a course of action for completing the task.
[0116] In some implementations, the server 102 and / or the web browser 122 is 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 to provide the set of web pages 121 for selection in a tab switcher interface of the web browser 122 in a location proximate to the browser tab 126. In some implementations, the server 102 and / or the web browser 122 is configured to provide selection of the set of web pages 121 in a bookmarks section of the web browser 122. In some implementations, the server 102 and / or the web browser 122 is configured to provide selection of the set of web pages 121 as a navigation suggestion associated with a search box of the web browser 122.
[0117] In some embodiments, the group of web pages 121 is the first group 116 of web pages 121. In some embodiments, the server 102 and / or the web browser 122 is configured to determine a second group 118 of web pages 121 from a plurality of the plurality of web pages 121 based on a similarity analysis of the accessed data, wherein the second group 118 of web pages 121 has content that is thematically different from the content of the first group 116, and the server 102 and / or the web browser 122 is configured to provide the second group 118 of web pages 121 on a user interface 124 of the web browser 122 for selection. In some implementations, the server 102 and / or the web browser 122 are configured to determine that the first group 116 of web pages 121 are thematically related to a first browser tab 131 opened on the web browser 122, determine that the second group 118 of web pages 121 are thematically related to a second browser tab 132 opened on the web browser 122, provide the first group 116 of web pages 121 for selection in response to selection of the first browser tab 131, and provide the second group 118 of web pages 121 for selection in response to selection of the second browser tab 132. In some implementations, the server 102 and / or the web browser 122 are configured to pre-fetch content of the at least one web page 121 independent of a user's selection of the at least one web page 121 in the navigation suggestions 128.
[0118] Fig.10 1 is a flow chart 1000 illustrating an exemplary operation of the server 102. Fig.10 Flowchart 1000 shows operations in sequential order, but it should be understood that this is merely an example and additional operations or alternative operations may be included. Fig.10 The operations and related operations may be performed in an order different from that shown, or in parallel or in an overlapping manner.
[0119] Operation 1002 includes receiving data 101 regarding a plurality of web pages 121 accessed through one or more browser tabs 126 of a web browser 122 via a network 130. For example, the server 102 is configured to receive the data 101 while a user is using the web browser 122.
[0120] Operation 1004 includes generating a navigation tree 114 based on data 101. For example, server 102 is configured to generate navigation tree 114 using data 101. For example, when a user starts a search or activates a link to a bookmark or page in a browser history, a new navigation tree 114 is generated.
[0121] Operation 1006 includes determining a cluster group of at least two navigation trees 114 using a similarity analysis. For example, the server 102 can cluster subsets of the navigation trees 114 into cluster groups using a similarity analysis. For example, the server 102 can represent each navigation tree 114 with a keyword, and associate a probability with each of the keywords indicating the relative likelihood that a particular keyword represents its navigation tree 114. The server 102 can create a feature vector for each navigation tree 114 using the keywords and the 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, the server 102 can determine that the corresponding navigation trees 114 are similarly related to the same topic, and include these navigation trees 114 in the cluster group.
[0122] Operation 1008 includes identifying a group from the clustered group. For example, the server 102 may identify the web page 121 of the group as the web page 121 of the navigation tree 114 of the clustered group.
[0123] Operation 1010 includes filtering or sorting the group based on the navigation tree and / or the user engagement metric. For example, the server 102 may filter the group by removing the web pages 121 of the intermediate nodes 336 of the navigation tree 114 of the clustered group. The server 102 may filter the group of web pages 121 based on the user engagement metric, wherein the user engagement metric indicates the amount of user engagement with each of the web pages 121 in the group. In some embodiments, the server 102 may remove one or more web pages 121 from the group based on the user engagement metric (e.g., thereby including web pages with higher engagement). In some embodiments, the server 102 may sort the web pages 121 within the group based on a chronological order or a user engagement metric (e.g., the list may provide the web pages 121 in order according to user engagement, wherein the web pages 121 with higher engagement are provided first).
[0124] Operation 1012 includes providing the filtered or sorted groups as navigation suggestions. For example, the server 102 may transmit, via the network 130, an identification of the filtered or sorted groups to a web browser 122 executing on the computing device 120. In some implementations, the server 102 provides the filtered or sorted groups based on an activity of a user associated with the web browser 122. For example, the user may direct the web browser 122 to a tab switcher interface and select one of the open browser tabs 126, and in response to the activity, the server 102 may transmit the identification of the filtered or sorted groups. In some implementations, the server 102 may transmit the filtered or sorted groups and a location that specifies a location for rendering the user interface 124 of the filtered or sorted groups.
[0125] Fig.11 1 is a flowchart 1100 illustrating certain exemplary operations of the web browser 122. Fig.11 Flowchart 1100 shows operations in sequential order, but it should be understood that this is merely an example and additional operations or alternative operations may be included. Fig.11 The operations and related operations may be performed in an order different from that shown, or in parallel or in an overlapping manner.
[0126] Operation 1102 includes sending data 101 to a server 102 associated with a web browser 122 over a network 130 , wherein the data 101 includes information about a plurality of web pages 121 rendered within one or more browser tabs 126 of the web browser 122 .
[0127] Operation 1104 includes displaying the content in the user interface 124 of the web browser 122. For example, the content may be content that is currently visible to the user.
[0128] Operation 1106 includes receiving, via the network 130, a navigation suggestion 128 in response to content being displayed in the user interface 124 of the web browser 122, wherein the navigation suggestion 128 identifies one of the web pages 121 (e.g., the group 116 or the group 118), and the group 121 of web pages is a subset of the plurality of web pages 121 rendered by the web browser 122. The group of web pages 121 includes web pages 121 that are already thematically related to each other and to the content displayed in the user interface 124.
[0129] Operation 1108 includes displaying navigation suggestions 128 on the user interface 124 of the web browser 122, wherein 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 a corresponding web page 121 in the group.
[0130] In some implementations, the web browser 122 may pre-fetch web content of at least one web page 121 in the set of web pages 121 prior to a user selection of the at least one web page 121. In some implementations, the navigation suggestion 128 displays a list of web pages 121 in chronological order. In some implementations, the set of web pages 121 is thematically related to content displayed in a browser tab 126 opened on the web browser 122, and the web browser 122 is configured to display the list of the set of web pages 121 in a tab switcher interface of the web browser 122 in response to a user selection of the browser tab 126 within the tab switcher interface.
[0131] In some implementations, the set of web pages is a first set 116 of web pages 121, and the web browser 122 is configured to receive an identification of a second set 118 of web pages 121 from the server 102 over the network 130, wherein the second set 118 of web pages 121 has content that is thematically different from the content of the first set 116 of web pages 121. The first set 116 of web pages 121 is thematically related to a first browser tab 131 opened on the web browser 122, and the second set 118 of web pages 121 is thematically related to a second browser tab 132 opened on the web browser 122. The web browser 122 may display the first browser tab 131 and the second browser tab 132 for selection in a tab switcher interface of the web browser 122, display a list of the 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 121 of the web pages 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.
[0132] In some implementations, the web browser 122 is configured to display a link to the group on a user interface 124 of the web browser 122 and, in response to a user selection of the link, display a listing of the group of web pages 121. In some implementations, the web browser 122 is configured to display a link to the group in a bookmarks section of the web browser 122. In some implementations, the web browser 122 is configured to display a link to the group as a navigation suggestion in response to one or more search terms being entered into a search box of the web browser 122.
[0133] FIG. 12A to FIG. 12K An example screenshot of a web browser 122 configured to display the first group 116 as an automatic tab list 518 is shown. The example screenshot depicts a browsing session using the web browser 122 in which a user is performing a task, such as deciding to watch the new Avengers movie. Fig. 12A A screen shot of an Internet search using the search term avengers:infinity war is shown. The user then uses a web browser 122 to view a trailer for the movie (see Fig. 12B Screenshots of ), articles about movies (see Fig. 12C Screenshots of the film) and the film's cast (see Fig.12D Then, Fig.12E , Fig.12F , Figure 12G and Fig.12His a screenshot showing a user's curiosity about one of the actors, and searching for Benedict Cumberbatch. After reading about Cumberbatch (see Fig.12H ), the user has decided to watch the movie, but now the user decides that he wants to convince one of his friends to come and wants to locate the trailer.
[0134] After selecting the connection 141, the web browser 122 displays the following Fig.12I The tab switcher UI 142 shown. The tab switcher UI 142 provides a horizontal carousel to switch to other browser tabs in the user's working set, such as Fig.12I With respect to the selected tab in the tab switcher UI 142, the web browser 122 provides an automatic tab list 518 that identifies a collection of topic-related web pages 121 that are related to the selected browser tab theme, such as Fig.12I and Fig.12J The automatic tab list 518 includes a trailer for Avengers, which the user can click to load the page (see Figure 12K ) and share it with another user.
[0135] FIG. 13A to FIG. 13M An example screenshot of a web browser 122 is shown configured to display the first group 118 as a list of items 718. The example screenshot depicts a browsing session using the web browser 122 in which a user is performing a task, such as shopping for a new vacuum cleaner. Fig.13A and Fig. 13B is a screen shot showing a user using a web browser 122 to load and view a review site. Fig. 13C , Fig.13D , Fig.13E is a screenshot showing a user locating two potential items. The user wants to verify these options and find additional options, so the user searches for other reviews, such as Fig.13F and Figure 13G As shown. Fig.13H In the screenshot of the comment, the user locates two other items, such as Fig.13I and Fig.13J As shown in the screenshot of Figure 13K , Figure 13L and Figure 13M As shown in the screen shot of , the web browser 122 identifies a list of items 718 including items that the user has viewed. Figure 13KAs shown in the screenshot of , the web browser 122 displays the tab switcher UI 142, and the web browser 122 provides a list of items 718 related to the selected browser tab. In some embodiments, as Figure 13K As shown in the screenshot of , the web browser 122 also displays the automatic tab list 518 associated with the selected browser tab. Upon selecting the link 160, the web browser 122 displays the automatic tab list 518 with the complete list of items (in this example, the number of items is 4), as shown in FIG. Figure 13L In addition, in some embodiments, a user can manually pin an item to the item list 718. For example, Figure 13M As shown in the screenshot of , the item list 718 also includes manually map-pinned items, which are distinguished from other items by displaying an icon 162 associated with the manually map-pinned items.
[0136] Fig.14 An example screenshot showing the first group 116 of navigation suggestions 128 displayed as pages (eg, also referred to as journey pages). Fig.14 As shown, the journey page depicts the web pages in the first group 116 in chronological order, separated by the days that the web pages 121 were rendered. The journey page also includes a title (e.g., Seattle Hiking), which is the title of the first group 116. In some implementations, the navigation suggestions 128 also display the top web pages 167 of the first group 116 (e.g., selected by a user engagement metric).
[0137] Fig.15 An example screenshot of the web browser 122 is shown. In some implementations, when a user is typing one or more search terms into a search box 170 of the web browser 122, the web browser 122 may provide navigation suggestions 171 for the first group 116. For example, in response to one or more search terms being determined to be relevant to the first group 116, the web browser 122 may display the navigation suggestions 171 for the first group 116. Upon selecting the navigation suggestion 171, the web browser 122 may display a list of web pages 121 of the first group 116, such as Fig.14 shown.
[0138] Fig.16Examples of computer devices 600 and mobile computer devices 650 that can be used with the techniques described herein are shown. In some embodiments, computer device 600 is an example of computing device 120. In some embodiments, computer device 600 is an example of server 102. In some embodiments, mobile computer device 650 is an example of computing device 120. Computing device 600 is intended to represent different forms of digital computers, such as laptops, desktops, tablet computers, workstations, personal digital assistants, televisions, servers, blade servers, mainframes, and other appropriate computing devices. Computing device 650 is intended to represent different forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions are intended to be exemplary only and are not intended to limit the embodiments of the inventions described and / or claimed in this document.
[0139] 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 a high-speed expansion port 610, and a low-speed interface 612 connected to a low-speed bus 614 and the storage device 606. The processor 602 can be a semiconductor-based processor. The memory 604 can be a semiconductor-based memory. Each of the components 602, 604, 606, 608, 610, and 612 uses a different bus interconnection and can be installed on a common motherboard or in other appropriate 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 can be used appropriately with multiple memories and multiple types of memories. Furthermore, multiple computing devices 600 may be connected, with each device providing portions of the necessary operations (eg, as a server bank, a blade server bank, or a multi-processor system).
[0140] The memory 604 stores information in the computing device 600. In some implementations, the memory 604 is one or more volatile memory units. In another implementation, 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 optical disk.
[0141] Storage device 606 can provide mass storage for computing device 600. In one embodiment, 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 device, or a device array including a storage area network or other configuration. A computer program product can be tangibly embodied in an information carrier. A computer program product can also include instructions for performing one or more methods such as those described above when executed. The information carrier is a computer or machine readable medium, such as memory 604, storage device 606, or memory on processor 602.
[0142] The high-speed controller 608 manages bandwidth-intensive operations of the computing device 600, while the low-speed controller 612 manages less bandwidth-intensive operations. This allocation of functions is exemplary only. In one embodiment, the high-speed controller 608 is coupled to the memory 604, the display 616 (e.g., through a graphics processor or accelerator), and the 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 the 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 a router, for example, through a network adapter.
[0143] The computing device 600 can be implemented in a variety of different forms, as shown. 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 device 650. Each of such devices can contain 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.
[0144] The computing device 650 includes a processor 652, a memory 664, an input / output device such as a display 654, a communication interface 666, and a transceiver 668. The device 650 may also be equipped with a storage device such as a micro drive or other device to provide additional storage. Each of the components 650, 652, 664, 654, 666, and 668 are interconnected using different buses, and some of the components may be mounted on a common motherboard or in other suitable ways.
[0145] 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 or multiple analog and digital processors. For example, the processor can provide coordination of other components of the device 650, such as control of a user interface, applications executed by the device 650, and wireless communications performed by the device 650.
[0146] 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 appropriate display technology. The display interface 656 may include appropriate circuits for driving the display 654 to present graphics or other information to the user. The control interface 658 may receive commands from the user and convert them for submission to the processor 652. In addition, an external interface 662 in communication with the processor 652 may be provided to enable near-area communication of the device 650 with other devices. For example, in some embodiments, the external interface 662 may provide wired communication, or in other embodiments, wireless communication, and multiple interfaces may also be used.
[0147] 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. An expansion 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 an expansion 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 expansion memory 674 can include instructions for executing or supplementing the above-mentioned process, and can also include security information. Therefore, for example, the expansion memory 674 can be provided as a security module of the device 650, and can be programmed to have instructions that allow the safe use of the device 650. In addition, a security application can be provided together with additional information via a SIMM card, such as placing identification information on a SIMM card in an unbreakable manner.
[0148] 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, such as memory 664, expansion memory 674, or memory on processor 652, which can be received, for example, via transceiver 668 or external interface 662.
[0149] Device 650 can communicate wirelessly through communication interface 666, and if necessary, the communication interface 666 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. For example, such communication can occur through radio frequency transceiver 668. In addition, short-range communication can occur, such as using Bluetooth, Wi-Fi or other such transceivers (not shown). In addition, GPS (global positioning system) receiver module 670 can provide additional navigation and positioning related wireless data to device 650, which can be used appropriately by applications running on device 650.
[0150] Device 650 may also communicate audibly using audio codec 660, which may receive verbal information from a user and convert it into usable digital information. Audio codec 660 may also generate audible sounds for the user, such as through a speaker, for example, in an earpiece of device 650. Such sounds may include sounds from voice phone calls, may include recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications operating on device 650.
[0151] The computing device 650 can be implemented in many different forms, as shown in the figure. For example, it can be implemented as a cellular phone 680. It can also be implemented as a part of a smart phone 682, a personal digital assistant or other similar mobile device.
[0152] In addition to the above description, the user may also be provided with controls that allow the user to make a choice about whether and when the system, program, or feature described herein may enable the collection of user information (e.g., information about the user's social network, social actions or activities, occupation, user's preferences, or the user's current location) and whether to send content or communications from the server to the user. In addition, before certain data is stored or used, it may be processed in one or more ways so that personally identifiable information is removed. For example, the user's identity may be processed so that no personally identifiable information can be determined for the user, or the user's geographic location may be summarized (such as summarized as a city, ZIP code, or state level) where location information is available so that the user's specific location cannot be determined. Therefore, the user may control what information about the user is collected, how the information is used, and what information is provided to the user.
[0153] Various implementations of the systems and techniques described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementations in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which may be special purpose or general purpose, coupled to receive data and instructions from a storage system, at least one input device, and at least one output device, or to transmit data and instructions to a storage system, at least one input device, and at least one output device.
[0154] These computer programs (also referred to as programs, software, software applications or code) include machine instructions for programmable processors and may be implemented in high-level procedural and / or object-oriented programming languages and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "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.
[0155] 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 pointing device (e.g., a mouse or 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.
[0156] The systems and techniques described herein can be implemented in a computing system that includes a back-end component (e.g., as a data server) or includes a middleware component (e.g., an application server) or includes a front-end component (e.g., a client computer with 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 back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
[0157] A computing system may include clients and servers. Clients and servers are generally remote from each other and generally interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0158] In this specification and the appended claims, unless the context clearly dictates otherwise, the singular forms "a", "an", and "the" do not exclude plural references. In addition, 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. In addition, 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. There may be many alternative or additional functional relationships, physical connections, or logical connections in actual devices. Moreover, unless an element is explicitly described as "essential" or "critical", no item or component is essential for the practice of the embodiments disclosed herein.
[0159] Terms such as, but not limited to, approximately, substantially, generally, etc. are used herein to indicate that exact values or ranges thereof are not required and need not be specified. As used herein, the terms discussed above have ready and immediate meanings to those of ordinary skill in the art.
[0160] In addition, the use of terms such as upper, lower, top, bottom, side, end, front, rear, etc. in this document is used with reference to the direction currently considered or illustrated. If they are considered in relation to another direction, it should be understood that these terms must be modified accordingly.
[0161] Furthermore, in this specification and the appended claims, the singular forms "a", "an", and "the" do not exclude plural references unless the context clearly indicates otherwise. Moreover, conjunctions such as "and", "or", and "and / or" are inclusive unless the context clearly indicates otherwise. For example, "A and / or B" includes A alone, B alone, and A and B.
[0162] Although certain example methods, apparatus, and articles have been described herein, the scope of coverage of this patent is not limited thereto. It should be understood that the terminology used herein is for the purpose of describing specific aspects and is not intended to be limiting. On the contrary, this patent covers all methods, apparatus, and articles that fully fall within the scope of the claims of this patent.
Claims
1. A method for providing navigation suggestions, the method comprising: obtaining data regarding a plurality of web pages rendered within one or more browser tabs of a web browser executable by at least one computing device; generating at least one navigation tree based on the acquired data; identifying a set of web pages based on a similarity analysis of the at least one navigation tree, the set of web pages comprising web pages from the at least one navigation tree that are determined to be thematically related to one another based on the similarity analysis; Determining that content currently displayed in the user interface of the web browser is related to the set of web page topics; as well as Based on the set of web pages, a navigation suggestion is provided for display on the user interface of the web browser, the navigation suggestion identifying at least one web page from the set of web pages.
2. The method according to claim 1, wherein: The plurality of web pages include a first web page rendered by the web browser executing on a first computing device and a second web page rendered by the web browser executing on a second computing device.
3. The method according to claim 1, wherein: The navigation suggestion identifies a first web page that is not included in the at least one navigation tree, the first web page being related to the set of web page topics.
4. The method according to claim 1, further comprising: Based on the acquired data, multiple navigation trees are generated; Based on the similarity analysis, clustering subsets of the plurality of navigation trees into a first cluster group; Based on the similarity analysis, clustering subsets of the plurality of navigation trees into a second cluster group; as well as It is determined that the content currently displayed in the web browser is thematically related to the second cluster group, and the navigation suggestion identifies at least one web page included in the navigation tree that is part of the second cluster group.
5. The method according to claim 4, wherein: The first cluster group includes a first navigation tree and a second navigation tree, and the method further includes: generating a first feature vector associated with the first navigation tree, the first feature vector comprising one or more keywords and one or more probabilities indicating a likelihood that a corresponding keyword represents the first navigation tree; generating a second feature vector associated with the second navigation tree, the second feature vector comprising one or more keywords and one or more probabilities indicating a likelihood that the corresponding keyword represents the second navigation tree; The first navigation tree and the second navigation tree are clustered into the first cluster group based on a similarity distance between the first feature vector and the second feature vector.
6. The method according to claim 1, wherein: Also includes: The set of web pages is filtered based on a user engagement metric associated with the set of web pages to remove one or more web pages from the set of web pages.
7. The method according to claim 1, wherein: The at least one navigation tree includes nodes and at least one connection between the nodes, the nodes representing web pages previously rendered within the one or more browser tabs, and the at least one connection representing a navigation path between the web pages.
8. The method according to claim 1, wherein: The navigation suggestion identifies the at least one web page in response to receiving a search term within a search box of the web browser.
9. The method according to claim 1, wherein: The navigation suggestion identifies the at least one web page in a mobile tab switcher interface of the web browser.
10. A computing system comprising: at least one processor; as well as A non-transitory computer-readable medium storing executable instructions, which, when executed by the at least one processor, are configured to cause the at least one processor to perform the following operations: acquiring data from a web browser executable by at least one computing device, the data comprising information about a plurality of web pages rendered within one or more browser tabs of the web browser; generating at least one navigation tree based on the acquired data; identifying a set of web pages based on a similarity analysis of the at least one navigation tree, the set of web pages comprising web pages from the at least one navigation tree that are determined to be thematically related to one another based on the similarity analysis; Determining that content currently displayed in the user interface of the web browser is related to the set of web page topics; as well as A navigation suggestion is provided for display on the user interface of the web browser, the navigation suggestion identifying at least one web page from the set of web pages.
11. The computing system of claim 10, wherein: In response to receiving a new search on the web browser, a separate navigation tree is created.
12. The computing system of claim 10, wherein: The executable instructions include instructions that, when executed by the at least one processor, cause the at least one processor to: generating a plurality of navigation trees based on the acquired data, the plurality of navigation trees comprising a first navigation tree and a second navigation tree; generating a first feature vector associated with the first navigation tree, the first feature vector comprising one or more keywords and one or more probabilities indicating a likelihood that a corresponding keyword represents the first navigation tree; generating a second feature vector associated with the second navigation tree, the second feature vector comprising one or more keywords and one or more probabilities indicating a likelihood that the corresponding keyword represents the second navigation tree; The first navigation tree and the second navigation tree are clustered into cluster groups based on a similarity distance between the first feature vector and the second feature vector, wherein the set of web pages is identified from the cluster groups.
13. The computing system of claim 10, wherein: The at least one navigation tree includes nodes and at least one connection between the nodes, the nodes representing web pages previously rendered within the one or more browser tabs, and the at least one connection representing a navigation path between the web pages.
14. The computing system of claim 13, wherein: The nodes include at least one hub node, at least one leaf node, and at least one intermediate node, wherein the executable instructions for filtering the set of web pages include instructions that, when executed by the at least one processor, cause the at least one processor to perform the following operations: At least one web page represented by the at least one intermediate node is removed from the set of web pages.
15. The computing system of claim 10, wherein: The executable instructions for filtering the set of web pages include instructions for causing the at least one processor to: At least one web page is removed from the set of web pages based on a user engagement metric including an amount of user engagement with a corresponding web page in the set of web pages.
16. The computing system of claim 10, wherein: The navigation suggestions are provided in a mobile tab switcher interface of the web browser, which is an interface that allows switching among open browser tabs on a mobile computing device.
17. A non-transitory computer-readable medium storing executable instructions, which, when executed by at least one processor, are configured to cause the at least one processor to perform the following operations: obtaining data regarding a plurality of web pages rendered within one or more browser tabs of a web browser executable by at least one computing device; generating a plurality of navigation trees based on the acquired data; identifying a first group of web pages and a second group of web pages based on a similarity analysis of the plurality of navigation trees, the first group of web pages comprising web pages from at least one navigation tree determined to be thematically related to one another, and the second group of web pages comprising web pages from at least one navigation tree determined to be thematically related to one another; Determining that content currently displayed in the first browser tab is related to the first set of web page topics; as well as A first navigation suggestion is provided for display on a user interface of the web browser, the first navigation suggestion identifying at least one web page in the first set of web pages.
18. The non-transitory computer readable medium of claim 17, wherein: The executable instructions include instructions that, when executed by the at least one processor, cause the at least one processor to: Determining that the content currently displayed in the second browser tab is related to the second set of web page topics; as well as providing a second navigation suggestion for display on the user interface of the web browser, the second navigation suggestion identifying at least one web page in the second set of web pages, Wherein, in the mobile tab switcher interface, the first browser tab is switched to the second browser tab.
19. The non-transitory computer readable medium of claim 17, wherein: The first navigation suggestion renders a list of the first set of web pages in chronological order.
20. The non-transitory computer readable medium of claim 17, wherein: The first navigation suggestion is rendered in a mobile tab switcher interface of the web browser.
21. The non-transitory computer readable medium of claim 17, wherein: The executable instructions include instructions that, when executed by the at least one processor, cause the at least one processor to: rendering selectable links to the first set of web pages on the user interface of the web browser; and In response to selection of the selectable link, a list of the first set of web pages is rendered.
22. The non-transitory computer readable medium of claim 21, wherein: The selectable link is rendered in a bookmarks section of the web browser.
23. The non-transitory computer readable medium of claim 21, wherein: The selectable links are rendered in response to one or more search terms being entered into a search box of the web browser.
Citation Information
Patent Citations
Automatic search suggestions from server-side user history
US20100082649A1
Automatic browser tab groupings
US20170199638A1