Tab grouping of applications

By using programmatic tab grouping and tagging technology, browser tabs are clustered into groups and tags are generated based on semantic similarity, which solves the problem of low efficiency in browser tab management and achieves more efficient tab management and searching.

CN122055718APending Publication Date: 2026-05-15GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
GOOGLE LLC
Filing Date
2024-08-23
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Tab management in existing browsers is inefficient, making it difficult for users to effectively organize and manage multiple related browser tabs.

Method used

By using programmatic tab grouping and tagging technology, tabs are clustered into groups based on the semantic similarity of browser tabs, and descriptive labels are generated. The tab bar is modified to display the labels and tab groups, and a tab group interface is provided for easy user management.

Benefits of technology

It improves the efficiency of tab management, making it easier for users to find and select tabs of interest, and reducing the frustration of tab names being truncated due to limited display area.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122055718A_ABST
    Figure CN122055718A_ABST
Patent Text Reader

Abstract

An application may generate tab information about tabs opened on a user device. The application may identify a tab group from the tabs, the tab group including at least two tabs determined to be relevant based on the tab information. The application may generate a tag for the tab group based on at least a portion of the tab information. The application may modify the tab bar to include the tag and the tab group.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims priority to U.S. Provisional Application No. 63 / 578,355, filed August 23, 2023, the disclosure of which is incorporated herein by reference in its entirety. Background Technology

[0003] Some browsers allow users to organize tabs into tab groups. Browsers include a tabbed interface where web pages can be displayed in individual browser tabs. Users can manually add tabs to tab groups or create new tab groups. For example, to create a new tab group, a user can determine which open tabs form part of the group and then manually add those tabs to the new tab group. Summary of the Invention

[0004] This disclosure relates to a tab manager that improves tab organization through programmatic tab grouping and tagging. Programmatic tab grouping can cluster browser tabs into groups based on the semantic similarity of browser tabs, where browser tabs in the same group share a common theme. Tagging can generate descriptive short text labels, and in some examples, can generate icons (e.g., emojis) for the corresponding groups. Note that the techniques discussed herein are not limited to browser tabs in browser applications, but can cover any application with a tabbed interface. Therefore, in the examples discussed herein, browser tabs can be replaced with tabs. Tabs in a tabbed interface can be visual elements representing disparate sections or views within a larger container, where the tab can display application content (e.g., web content, non-web content, etc.).

[0005] In some respects, the technology described herein relates to a method comprising: generating tab information about tabs opened on a user device; identifying a tab group from the tabs, the tab group comprising at least two tabs determined to be related based on the tab information; generating a label for the tab group based on at least a portion of the tab information; and modifying a tab bar to include the label and the tab group.

[0006] In some aspects, the technology described herein relates to an apparatus comprising: at least one processor; and a non-transitory computer-readable medium storing executable instructions that cause the at least one processor to perform operations including: generating tab information about tabs opened on a user device; identifying a tab group from the tabs, the tab group including at least two tabs determined to be related based on the tab information; generating a label for the tab group based on at least a portion of the tab information; and modifying a tab bar to include the label and the tab group.

[0007] In some aspects, the technology described herein relates to a non-transitory computer-readable medium storing executable instructions that cause at least one processor to perform operations including: generating tab information about tabs opened on a user device; identifying a tab group from the tabs, the tab group including at least two tabs determined to be related based on the tab information; generating a label for the tab group based on at least a portion of the tab information; and modifying a tab bar to include the label and the tab group.

[0008] Details of one or more implementations are set forth in the accompanying drawings and the following description. Other features will be apparent from the description and drawings. Attached Figure Description

[0009] Figure 1A An example interface is shown, based on one aspect, with callout affordance for initiating a tab organizer.

[0010] Figure 1B The tab group interface is shown.

[0011] Figure 1C The tab bar is shown as updated using tab groups based on one side.

[0012] Figure 1D This illustrates a system for organizing open browser tabs into one or more tab groups, according to one aspect.

[0013] Figure 1E An example of a trigger engine based on one aspect is shown.

[0014] Figure 1F An example of information based on one side of the tabs is shown.

[0015] Figure 1G This illustrates a tab organization service with a tab manager and tab organizer, based on one aspect.

[0016] Figures 2A to 2C Various examples of visibility based on one aspect of annotation functionality are shown.

[0017] Figure 3 An example of a tab group interface based on one side is shown.

[0018] Figure 4 An example of a tab group interface based on another aspect is shown.

[0019] Figure 5 An example of a tab group interface based on another aspect is shown.

[0020] Figures 6A to 6B An example of a tab group interface based on another aspect is shown.

[0021] Figures 7A to 7D This shows various aspects of the tab group interface and tab bar, based on one side.

[0022] Figure 8 An example of a tab group interface based on one side is shown.

[0023] Figure 9 An example of a tab group interface based on another aspect is shown.

[0024] Figure 10 An example of a tab group interface based on one side is shown.

[0025] Figure 11 An example of a tab group interface based on another aspect is shown.

[0026] Figure 12 An example of a tab group interface based on another aspect is shown.

[0027] Figures 13A to 13C An example of the interface showing the visibility of annotation functions and tab groups based on one side is shown.

[0028] Figure 14A and Figure 14B This example demonstrates how to access a service by calling up tabs from a browser menu.

[0029] Figure 15 A high-level diagram of a system for implementing a tab organization service is shown, based on one aspect.

[0030] Figure 16 A data diagram of an example system for generating tab group suggestions is shown, based on one aspect.

[0031] Figure 17 A flowchart illustrating an example operation of organizing browser tabs into tab groups based on one aspect of the description is shown. Detailed Implementation

[0032] This disclosure relates to a tab manager for an application (e.g., a browser application) that performs a tab organization service (e.g., a tab manager, tab organizer) configured to suggest one or more tab groups to a user. A tab group comprises two or more related tabs (e.g., the topics displayed in each tab are semantically related to each other). For example, the tab manager may initiate a similarity analysis of open browser tabs on the user's device to determine whether some of the open browser tabs are semantically related to each other, and if so, suggest creating a tab group (or multiple tab groups) in a tab group interface. The tab group interface includes two or more semantically related browser tabs and labels (e.g., phrases and / or icons (e.g., emojis)) describing the topics of the related browser tabs for each suggested tab group. In some examples, the tab manager suggests tab groups from open tabs within the same browser window. In some examples, the tab manager suggests tab groups from open tabs across browser windows. The tab manager may implement a technical solution that programmatically suggests one or more tab groups and, at creation time, modifies the window management structure to securely insert the tab groups. While some examples use browser tabs in browser applications, the techniques discussed in this article can be applied to any application that uses a tabbed interface, such as document editing applications, project management applications, code editor applications, media player applications, or image editing applications. Tabs in a tabbed interface can be visual elements representing different sections or views within a larger container, where the tab can display application content (e.g., web content, non-web content, etc.).

[0033] If the first browser tab in the first browser window displays a website about the USA vs. Serbia basketball game, and the second browser tab in either the first or second browser window displays a website about the USA vs. France basketball game, the tab manager determines that the first and second browser tabs are semantically related and generates a label such as "USA Basketball". This label can be generated using a model (e.g., a language model) that is fed tab information about the open browser tabs. In response to the selection of tab creation options on the tab group interface, the tab manager can modify the tab bar to include labels and tab groups. Labels can be part of toggleable functionality visibility, such as collapsing tabs in a tab group when first selected and expanding tabs in a tab group when selected a second time.

[0034] In some examples, the tab manager can be explicitly invoked by the user. For instance, the tab manager can accept selections of controls displayed in the browser window (e.g., organizing similar tabs). In some examples, the user can right-click the tab bar, which renders a menu with options for "organizing similar tabs." In some examples, the tab manager can proactively suggest label visibility, which allows the user to invoke the tab manager to programmatically group tabs. In some examples, the tab manager can render label visibility in response to one or more triggers, such as certain actions taken by the user regarding tabs or bookmarks.

[0035] A tab manager generates tab information (e.g., titles, resource locators (e.g., Uniform Resource Locators (URLs)), and / or the content of the web pages displayed in open browser tabs) and uses this information to cluster open browser tabs into one or more groups, where each group includes two or more semantically related tabs. In some examples, the tab manager includes a clustering engine (or communicates with a clustering engine). The clustering engine may include an embedding model configured to generate embeddings about web pages using the tab information, and the clustering engine may compute a similarity score based on the embeddings and cluster subsets of open browser tabs based on the similarity score. An embedding is a mathematical representation of an attribute of a tab, a web page displayed in a tab, or both. In other words, embeddings encode information in a way that allows for fast and efficient comparisons (similarity metrics). In some examples, the tab manager includes a generative model (or communicates with a generative model) to generate labels about groups, where labels include very short phrases and icons. The generative model may include a language model that operates on text and generates text and / or a language model that operates on images and text, such as a multimodal model. In some examples, generative models use tab information (or a portion thereof) to generate labels. The tab group interface identifies the suggested groups and their labels. Users can then select options on the tab group interface to create groups, which are then identified in the tab bar.

[0036] Displaying tabs from a tab group along with the tab group's label in the tab bar creates a technical benefit that helps users find and select tabs of interest, even if the browser might truncate the tab names when displaying them due to limited display area. This allows users to more easily find (and select) the tabs of interest, even if the browser is displaying many tabs, each with a relatively small display area allocated to icons and text.

[0037] Figures 1A to 1GA system 100 is shown that implements a tab organization service 145 (e.g., tab manager 110, tab organizer 152), which is configured to suggest one or more tab groups 116 to a user by analyzing tab information 114 of browser tabs 122 open on a user device 102. Figure 1A As shown, browser window 128 includes a tab bar 120 with multiple browser tabs 122, such as browser tab 122-1, browser tab 122-2, and browser tab 122-3. In some examples, tab organization service 145 can provide one or more technical benefits, namely increased security of communication with one or more predictive models and / or reduced computational resources (e.g., central processing unit (CPU), memory devices) used to perform similarity analysis. Although some examples use browser tabs 122 of browser application 108, the techniques discussed herein can be applied to any application 106 that uses a tabbed interface, such as a document editing application, project management application, code editor application, media player application, or image editing application. Tabs in a tabbed interface can be visual elements representing disparate sections or views within a larger container, where the tab can display application content (e.g., web content, non-web content, etc.).

[0038] like Figure 1A As shown, the tab manager 110 of the browser application 108 can detect the user's selection of the organizing control 123 to initiate the tab organizer 152 to organize the browser tabs 122 into one or more tab groups 116. In some examples, the organizing control 123 is displayed in the tab menu 115. In some examples, in response to detecting a user command (e.g., right-click selection) on a browser tab 122 in the tab bar 120 (e.g., any one of the browser tabs 122), the tab manager 110 can display the tab menu 115. The tab menu 115 can include the organizing control 123 and other tab management operations, such as creating a new tab on the right / left, adding a tab to the reading list, moving a tab to another window, pinning, muting a site, etc.

[0039] The organization control 123 may be configured to activate and / or notify the user of the visibility of the labeling function 111 regarding the features of the tab organizer 152 (e.g., ...). Figure 1D(See example shown). Typically, annotation visibility 111 can be a user interface element, such as a menu item, clickable element, hover element, or pop-up object or interface. Tab manager 110 can display annotation visibility 111 in an area of ​​browser window 128 that can be viewed and / or discovered by the user. In some examples, annotation visibility 111 is displayed in tab bar 120. In some examples, annotation visibility 111 is overlaid on the user interface of browser window 128.

[0040] In some examples, such as Figure 1D As shown, the tab manager 110 includes a triggering engine 112 that selectively displays annotation visibility 111 in response to the detection of a tidying event 133. In other words, the triggering engine 112 may display annotation visibility 111 to prompt / remind the user in response to the detection of a tidying event 133. In some examples, the triggering engine 112 may use one or more behavioral signals 113 about the browser tab 122 to detect the tidying event 133. In some examples, the triggering engine 112 includes a machine learning (ML) model 119 that receives one or more behavioral signals 113 as input and determines whether a tidying event 133 has been detected, which would trigger annotation visibility 111.

[0041] In some examples, the organization event 133 may be referred to as a cleanup event. In some examples, the triggering engine 112 may proactively display the annotation visibility 111 in a manner that minimizes disruption to the user's workflow (e.g., annotation visibility 111 may not be appropriate if the user is actively reading or typing).

[0042] Conditions defining the organization event 133 may include the use of bookmarking / reading lists on the active browser tab 122. For example, bookmarking itself is an organization task, so if a user is organizing, renaming, editing, etc., bookmarks or reading lists in browser application 108, this could be a signal for organization event 133 and an appropriate time to proactively suggest tab organization, for example, via the tag visibility 111. As another example, conditions defining the organization event 133 may include dragging tabs within the same tab bar 120—for example, to reposition tabs so that one tab is closer to another—which could be considered organization event 133. If the user is rearranging tabs (by dragging), the user is not actively typing or reading, so proactive tab grouping suggestions may be appropriate. Conditions defining the organization event 133 may include waking the user device 102 (and therefore the browser application 108) from an idle (e.g., sleep) state.

[0043] Conditions defining a cleanup event 133 may include resuming the browser application 108 using session recovery. Session recovery may occur when a browser window 128 (sometimes as a browser window 128 associated with a user account) is opened after the browser application 108 has been closed with more than one open browser tab 122. Session recovery may not interrupt the user's workflow and can be considered a cleanup event 133. Conditions defining a cleanup event 133 may include detecting that a user has opened duplicate browser tabs 122 pointing to the same domain and / or the same resource locator (URL) but with different parameters. This can be considered a signal of a cleanup event 133 when the user does this but the opened browser tab 122 has no focus. For example, this may occur if the user is opening a link received in an email or other document. These documents may not have any semantic similarity but may be related due to behavioral signal 113. The time between the opening of each browser tab 122 may also be considered in the conditions used to define the cleanup event.

[0044] The conditions for defining the organization event 133 may include detecting that a user is actively switching between multiple browser tabs 122 exceeding a threshold level within a certain time window (e.g., a short time window). For example, a user clicking on (or hovering over) several different browser tabs 122 within a certain time period (e.g., a few seconds) could be an indication that the user is searching for information and that organization suggestions are appropriate. The conditions for defining the organization event 133 may include filtering factors. Filtering factors are indications that even if user behavior indicates a possible organization event 133, these factors prevent the proactive suggestion of tab group 116 because the reminder may result in undesirable clustering or timing for the user. Filtering factors may include the minimum number of tabs that have not yet been organized into tab group 116. For example, if fewer than a threshold number of browser tabs are open (e.g., six tabs) (which are not yet part of tab group 116), the clustering quality may be poor. This factor can be overridden by indications of the organization event 133 (e.g., strong indications) such as quickly opening browser tabs 122 from the same original document.

[0045] Filtering factors may include whether browser window 128 is the active window (e.g., the user is currently viewing the window and therefore viewing its tab bar 120). Filtering factors may include the recentity of interaction with the window / tab in the browser. For example, if the user is currently clicking into a tab or rearranging tabs, this is beneficial for organizing events 133. Another filtering factor may be related to the content / topic of browser tab 122.

[0046] In some examples, filtering factors may include historical usage of suggested groups, such as how a user has previously interacted with suggested tab group 116 and / or annotation visibility 111. With user permission, historical usage can be collected to personalize when annotation visibility 111 is triggered. Thus, for example, if a user frequently groups tabs on web pages that satisfy a specific attribute (e.g., a specific domain, a specific resource locator, a specific category, a specific combination of tabs from different domains / resource locators, etc.), and the current tab bar 120 includes tabs associated with that attribute, this could be a factor in organizing event 133. Similarly, if a user has historically rejected suggested tab group 116 or historically actively removed annotation visibility 111, this factor is detrimental (e.g., severely detrimental) to organizing event 133. Likewise, a user's historical acceptance of tab group 116 or selection of annotation visibility 111 is beneficial to organizing event 133.

[0047] Triggering engine 112 can detect the sorting event 133 based on any combination of the above conditions, including the application of filtering factors. This can be done via heuristics, via a machine learning model that provides the probability of the sorting event 133 under various conditions, or a combination of heuristics and models. For example, some conditions may not be used in the model but are used to cover the output probability of the model, improve the model's prediction, or reduce the model's probability.

[0048] In response to the detection of a cleanup event 133, triggering engine 112 may obtain a quality signal 117 associated with one or more tab groups 116. In some examples, quality signal 117 is a signal indicating that the quality score associated with tab group 116 is higher than a threshold level. In some examples, quality signal 117 includes a quality score. In some examples, triggering engine 112 may request quality signal 117 from clustering engine 154 before displaying annotation visibility 111. For example, in response to the detection of a cleanup event 133, triggering engine 112 may query clustering engine 154 to determine whether the quality (e.g., quality score 121) of at least one cluster (e.g., tab group 116) is equal to or greater than a threshold level to prompt the user about annotation visibility 111.

[0049] In some examples, the tab organizer 152 may have pre-generated suggested tab groups (e.g., before organizing event 133 is detected), so the query clustering engine 154 can obtain these pre-generated suggested tab groups. When the tab bar 120 is stable (e.g., no new tabs are added or closed within a given time range such as one minute, five minutes, ten minutes, etc.), suggested clusters (suggested tab group 116) can be pre-generated. If a new browser tab 122 is opened or browser tab 122 is closed, any pre-suggested clusters can be deleted (or membership is adjusted if browser tab 122 is closed). Cluster quality can be represented as a quality score. The quality score 121 can be based on the number of members in the cluster. The quality score 121 can be based on the confidence score of the labels 118 generated for the cluster. For example, if the highest-scoring generated label 118 has a confidence score that does not meet a threshold, this could be a signal that browser tabs 122 in the cluster are dissimilar. The quality score 121 can be based on a confidence score generated for the cluster. The quality score 121 can be based on the category / type of the cluster, which can be determined, for example, by the content of the webpage associated with the browser tab 122 contained within the cluster. Therefore, the quality score 121 of the cluster can be a combination of multiple factors. In some examples, if a tidying event 133 is detected, and if at least one cluster meets a quality threshold (e.g., the quality score 121 of that cluster meets the quality threshold), the triggering engine 112 can display the annotation visibility 111 in the tab bar 120.

[0050] In response to the user's selection of the organization control 123 (or, more generally, the user's selection of the visibility of the annotation function 111), the tab manager 110 can initiate (e.g., invoke, execute, activate, etc.) the tab organizer 152, which causes the tab group interface 124 to be displayed, such as Figure 1B As shown. The tab group interface 124 can identify one or more tab groups 116 as suggestions to the user. For example, the tab group interface 124 identifies tab groups 116 having two or more semantically related browser tabs 122—such as browser tab 122-2 and browser tab 122-3. The tabs selected to be included in the tab group 116 can be determined based on analysis of the web pages rendered in the browser tabs 122 of the browser window 128 and / or other browser windows 128 opened on the user device 102. Reference Figure 1D Tab organizer 152 is configured to perform clustering operations on multiple browser tabs 122 to identify semantically related browser tabs 122 based on tab information 114 about the multiple browser tabs 122.

[0051] like Figure 1B As shown, the tab group interface 124 identifies labels 118 generated by the tagging engine 156. In some examples, labels 118 are machine-generated labels. Labels 118 may include a brief description of the tab group 116, and in some examples, include an icon representing the contents of the tab group 116. The tab group interface 124 is a tabbed interface. The tab group interface 124 includes an all tabs section 124a and a organizer tabs section 124b. The all tabs section 124a may identify all browser tabs 122 open on the user device 102. The organizer tabs section 124b may identify one or more tab groups 116 as tab group suggestions. In some examples, the tab group interface 124 includes an editable field 125 containing labels 118, which allows the user to edit the machine-generated labels 118. The tab group interface 124 includes a creation control 126 for creating tab groups 116. The creation control 126 is activated in response to the user's selection.

[0052] like Figure 1C As shown, tab manager 110 can modify tab bar 120 to include tab group 116 containing label 118 and semantically related browser tabs 122. For example, tab manager 110 can insert label 118 into tab bar 120. Tab manager 110 can place a related tab 122 corresponding to label 118 after label 118. In some examples, tab manager 110 can identify tab group 116 in tab bar 120 that is close to (e.g., adjacent, neighboring, or adjacent to) label 118, where selecting label 118 causes tab group 116 to collapse or expand. In other words, label 118 can be part of a function whose visibility can be toggled, for example, collapsing browser tabs 122 in tab group 116 when first selected and expanding browser tabs 122 in tab group 116 when selected a second time, etc. In the collapsed state, label 118 is displayed, but the individual browser tabs 122 in tab group 116 in tab bar 120 are hidden (e.g., not visible to the user). When expanded, tab 118 of tab group 116 and browser tab 122 are displayed.

[0053] refer to Figure 1D Tab manager 110 generates tab information 114 about browser tabs 122 open on user device 102. In some examples, tab manager 110 generates tab information 114 when tab manager 110 invokes tab organizer 152. In some examples, such as Figure 1EAs shown, tab information 114 may include the page title 170 of a webpage included in a browser tab 122 opened on user device 102. In some examples, tab information 114 includes a resource locator 172 of the webpage included in a browser tab 122 opened on user device 102. In some examples, resource locator 172 includes a Uniform Resource Locator (URL) of the webpage included in a browser tab 122 opened on user device 102. In some examples, tab information 114 includes the page content 174 of the webpage included in a browser tab 122 opened on user device 102. In some examples, tab information 114 includes one or more behavioral signals 113 associated with the user's browsing history.

[0054] Tab manager 110 can send tab information 114 to tab organizer 152. Tab organizer 152 includes clustering engine 154, which is configured to identify one or more tab groups 116 from multiple browser tabs 122 based on tab information 114. In some examples, clustering engine 154 uses a combination of two or more of page title 170, resource locator 172, page content 174, and behavior signal 113. In some examples, clustering engine 154 can use page title 170 and resource locator 172 to identify one or more tab groups 116. In some examples, clustering engine 154 can use page title 170, resource locator 172, and page content 174 to identify one or more tab groups 116. In some examples, clustering engine 154 can use page title 170, resource locator 172, page content 174, and behavior signal 113 to identify one or more tab groups 116.

[0055] In some examples, clustering engine 154 uses similarity to cluster browser tabs 122 into one or more subsets. In some examples, clustering engine 154 uses one or more machine learning (ML) models to cluster browser tabs 122 into one or more subsets.

[0056] Clustering engine 154 may include an embedding model 158 configured to generate embeddings 130 about web pages using tab information 114. Clustering engine 154 may calculate a similarity score 132 based on the embeddings 130 and cluster a subset 122a of open browser tabs 122 based on the similarity score 132. Subset 122a includes semantically related browser tabs of the corresponding tab groups 116.

[0057] In some examples, clustering engine 154 calculates semantic similarity between tabs 122 based on page title 170 and resource locator 172. In some examples, clustering engine 154 calculates the original pairwise embedding similarity and then further calculates Jaccard similarity between tabs based on their neighbors with embedding similarity reaching a certain threshold (e.g., equal to or higher than a certain threshold). In some examples, clustering engine 154 uses embedding model 158 to represent a given set of tabs 122 as embeddings 130 based on page title 170 and resource locator 172. Clustering engine 154 can calculate their pairwise dot product similarity scores. Clustering engine 154 can obtain the neighbors of tabs 122 with original embedding similarity above a given threshold and calculate Jaccard similarity. Jaccard similarity can measure the overall similarity between tabs 122 based on how many common neighbors they share. Compared to pairwise embedding similarity, Jaccard similarity is more robust to noise due to embedding model 158.

[0058] Using Jaccard tab similarity, clustering engine 154 can perform a clustering algorithm on the input tabs 122 to generate clusters as tab group 116. In some examples, the initial clustering algorithm may generate large clusters that may have lower quality, for example, clusters containing irrelevant tabs. In some examples, clustering engine 154 can measure the intra-cluster variance of tab similarity, and when the variance reaches a threshold (e.g., equal to or above a threshold), clustering engine 154 can perform post-processing by further clustering the tabs within the original clusters.

[0059] In some examples, clustering engine 154 may cluster tabs 122 into subsets 122a based on semantic signal 169 and / or behavioral signal 113. Semantic signal 169 represents the content of a webpage (e.g., page content, title, URL, main entity extraction, etc.). Semantic signal 169 measures the content similarity between two tabs, for example, by using embedding vectors computed by a machine learning (ML) model (e.g., embedding model 158) to represent the tabs, which projects content into a vector space in which similar content is placed close to each other. The similarity score between two tabs can then be computed as a dot product between the embedding vectors of tab 122.

[0060] Behavioral signal 113 represents attributes of tab 122 within the browser context. These attributes may be based on user behavior interacting with tab 122, attributes of tab 122, and / or attributes of the webpage represented by tab 122. Behavioral signal 113 may include navigation chains (e.g., a signal indicating that two tabs are in the same navigation chain). In a navigation chain, two tabs may be in the same chain because the first tab is opened from a link in the second tab. However, the link between the two tabs weakens when the webpage associated with the first tab changes. If an unrelated webpage is opened in either the first or second tab (e.g., the user types a resource locator in the address bar / omnibox), this can be interpreted as a weak link in the signal, or it may completely break the navigation chain, so the two tabs are no longer considered to be in the same navigation chain.

[0061] Behavioral signal 113 may include link clicks, for example, where one tab is created by clicking a link in another tab. Behavioral signal 113 may include a recency (time) signal. A recency signal may include the interval between the last activity times of two tabs, the interval between the tab creation times of two tabs, and / or whether one tab was created while the other tab was active. Behavioral signal 113 may include tab position or proximity. For example, the distance between two tabs (based on their position in the tab bar) may be used, where tabs that are closer to each other may be considered more similar.

[0062] Behavioral signal 113 may include historical tab grouping and browsing signals, such as the estimated probability of tab usage relative to other tabs. For example, tabs that match the vertical / category / domain pairing may have a higher similarity if a user has historically opened or grouped tabs in the same vertical / category / domain together. Any attributes of the website represented by tabs that have historically been grouped together or opened together may be used in the embedding to determine whether tabs in the current tab bar (e.g., the webpage associated with the tab) should be grouped together. Behavioral signal 113 may include bookmarking signals, such as two tabs being similar when they are in the same bookmark subfolder. Behavioral signal 113 may include domains, such as two tabs being similar when they are in the same domain.

[0063] In some implementations, clustering engine 154 can execute a first clustering algorithm to generate tab groups 116 using semantic signals 169, and can execute a second clustering algorithm to generate tab groups 116 using behavioral signals 113. Clustering quality can determine which of these clusters to select. In some examples, the clustering algorithm can use both types of signals. Clustering engine 154 can define a set of signals between tab pairs. Semantic or behaviorally relevant signals can be used, for example, to calculate a similarity / link score between two tabs via a machine learning model. The system can then cluster the groups based on the tab similarity score (e.g., via a clustering algorithm).

[0064] For example, given a representation of each tab to be clustered, clustering engine 154 can compute pairwise similarity scores for all tab pairs. Using these similarity scores, clustering engine 154 can use an unsupervised clustering algorithm to assign each tab to at most one group, i.e., such that each suggested group includes a subset of the tabs. Implementations can utilize various clustering algorithms, such as affinity propagation, DBSCAN, agglomerative clustering, etc. Typically, the clustering process involves iteratively merging tabs into groups / clusters. In some examples, clustering engine 154 can provide the ability to generate clusters that shuffle the priorities or weights of the clustering algorithm between two signal types (semantic and behavioral). This can allow the generation of clusters with different structures—some structures primarily based on semantic signals, and some structures based on behavioral signals. This would enable UIs (e.g., tab group interfaces) to allow users to request re-clustering or variations of clustering that best suit their tab group preferences.

[0065] In some implementations, the system can use a generative model, such as a language model, to generate clusters. In some implementations, the language model can be a large language model. For example, tabs and signals can be provided to the language model, with hints for grouping (or clustering) the tabs. In some implementations, the language model can be prompted to recommend clusters on behavioral or semantic signals, or to weight behavioral signals more than semantic signals, to weight them equally, or to weight semantic signals more than behavioral signals. In some implementations, the language model can provide the proposed groups in JSON format.

[0066] Tab organizer 152 includes tagging engine 156, which is configured to generate tags 118 for corresponding tab groups 116 using at least a portion of tab information 114. In some examples, tagging engine 156 generates tags 118 using only the page title 170 and resource locator 172 of the corresponding tab group 116. In some examples, tagging engine 156 can generate tags 118 using the page title 170, resource locator 172, and page content 174.

[0067] Label 118 may include a brief description of the topic of the browser tab 122 that is semantically related to the corresponding tab group 116. In some examples, label 118 is four words or fewer. In some examples, label 118 is three words or fewer. In some examples, label 118 includes an icon representing the topic of the browser tab 122 that is semantically related to the corresponding tab group 116. In some examples, the icon includes emoji text. In some examples, tagging engine 156 may generate concise descriptive label 118 for each tab group 116, which may be one or two words, and in some examples, includes emoji text.

[0068] Tag engine 156 may include generative model 164. In some examples, tab organizer 152 may generate hints for generative model 164, wherein the hints include at least a portion of tab information 114. In some examples, the hints include page title 170 and resource locator 172 for the corresponding tab group 116. Generative model 164 may use tab information 114 (or a portion thereof) as input to language model 164 and generate a model response as output, wherein the model response includes label 118. In some examples, generative model 164 uses page title 170 and resource locator 172 as input.

[0069] In some examples, generative model 164 is a predefined language model (e.g., LLM) that has already been trained on publicly available data. In some examples, generative model 164 is a multimodal model that can receive both images and text. In some examples, generative model 164 is a specially trained language model that has been specifically configured to generate labels 118 using at least a portion of tab information 114. Tab manager 110 can receive groups 116 and labels 118 from tab organizer 152 and include the group 116 and the label 118 in tab group interface 124.

[0070] In some examples, generative model 164 may be a pre-trained language model configured with in-context learning. In-context learning is a natural language processing (NPL) technique that involves conditioning the pre-trained language model on a domain by providing it with additional domain-specific data (e.g., a portion of tab information 114, including page title 170 and resource locator 172). Generative model 164 may include one or more neural networks, and the neural networks may have been pre-trained with a relatively large amount of training data to generate weights associated with the neural networks. In some examples, generative model 164 uses in-context learning to condition (e.g., fine-tune, calibrate, adjust) the pre-trained generative model to generate label 118 using page title 170 and resource locator 172 as input. In some examples, conditioning generative model 164 does not involve adjusting one or more of the weights of generative model 164.

[0071] In some examples, generative model 164 is configured to receive a list of page titles 170 and their resource locators 172, group similar pages together, and propose tags 118 and potential emojis for them in its output. In some examples, model response 136 is in JSON format. Because fewer output tokens result in faster response generation, model response 136 may include page indexes instead of page titles 170 and / or resource locators 172.

[0072] Tag generation can utilize a generative model 164, which takes several signals about the tabs within a group as input to generate tags. These tab signals can include content signals such as tab fields and URLs, tab page titles, tab page content, indications of whether the tab content includes form fields, the number of images on the webpage, and / or indications of whether clusters are primarily created based on content signals. Behavioral signals can include indications of whether the tab group is primarily created based on behavioral signals.

[0073] In some implementations, and with the user's consent, the signals may include user history signals, such as whether the user selects emojis as tags more frequently than words, or whether the user selects more general suggestions (e.g., travel Instead of more specialized advice (e.g., hotelWith user permission, these historical signals can be stored in local user profile data. Generative model 164 can output structured labels that ensure the label fits the tab group UI (e.g., one or two words, fewer than four words, etc.). Based on the underlying input context, generative model 164 can also provide emoji text as part of the label or as a separate label. Generative model 164 can be fine-tuned (specially trained) to meet the desired output structure. In some implementations, a single call to generative model 164 can generate several candidate labels for a cluster. These suggested labels can be provided in an ordered list, as discussed in this paper.

[0074] In addition to the description above, users can be provided with controls that allow them to choose whether and when the system, program, or feature described herein enables the collection of user information (e.g., information about the user's browser history, user preferences, or the user's current location) and whether the feature described herein is active. Furthermore, some data may be processed in one or more ways before it is stored or used, resulting in the removal of personally identifiable information. For example, a user's identity may be processed to the point that their personally identifiable information cannot be determined, or, if location information is available, the user's geographic location may be generalized (e.g., to a city, zip code, or state level), making it impossible to determine the user's specific location. Therefore, users can control what information is collected, how that information is used, and what information is provided to them.

[0075] Figure 1F A flowchart illustrating example operations of a tab manager 110 and a tab organizer 152 according to one aspect is shown. In operation 171, the tab manager 110 may detect an organization event 133 based on a behavior signal 113, and in response to the detection of the organization event 133, may trigger label visibility 111. In response to user interaction with label visibility 111 (e.g., the user has selected an organization control 123), the tab manager 110 may activate the tab organizer 152 to identify tab groups 116 and generate labels 118 for tab groups 116. The tab manager 110 may generate tab information 114. In operation 173, the tab organizer 152 may perform tab pre-filtering on the tab information 114. In some examples, tab pre-filtering includes applying a security filter to remove sensitive tabs.

[0076] In operation 175, clustering engine 154 can use tab information 114 to initiate embedding inference. For example, embedding model 158 can use tab information 114 as input to perform a perturbation operation, which generates embedding 130. In operation 177, clustering engine 154 can calculate a similarity score 132 based on embedding 130, and cluster a subset 122a of open browser tabs 122 based on the similarity score 132. Subset 122a includes semantically related browser tabs of the corresponding tab group 116.

[0077] Tab manager 110 can send a collection of tabs (e.g., identified by tab identifiers) including page titles 170 and resource locators 172 to tab organizer 152 for clustering. In some examples, clustering engine 154 can generate embeddings 130 of tab 122 by sending an inference request to embedding model 158. Clustering engine 154 can calculate pairwise similarity scores (e.g., similarity score 132) based on embeddings 130. Clustering engine 154 can perform a clustering algorithm to generate tab groups 116 (e.g., also referred to as clusters or tab clusters). If tab group 116 has a quality score 121 that reaches a quality threshold (e.g., equal to or above a threshold amount), tab group 116 can be sent for labeling. Tab group 116 (e.g., up to a maximum number of allowed clusters) can be sent to tab manager 110. In some examples, clustering engine 154 can sort tab group 116 by one or more scores (e.g., quality and importance of clusters).

[0078] In operation 179, tab organizer 152 may use at least a portion of tab information 114 to initiate the generation of labels 118 for the corresponding tab group 116. In some examples, tab organizer 152 includes a generative model 164 that receives a prompt 134 having at least a portion of tab information 114 and generates a model response 136 with labels 118. In some examples, generative model 164 generates multiple labels 118 for the corresponding tab group 116. In operation 181, tab organizer 152 may perform label and clustering post-filtering. In operation 183, in some examples, tab organizer 152 may rank multiple labels 118 based on one or more ranking signals and select the label 118 with the highest ranking as the label for the corresponding tab group 116. In operation 185, tab manager 110 may receive tab groups 116 and labels 118 from tab organizer 152.

[0079] In some examples, the tab organizer 152 may send each tab group 116 to the generative model 164 in prompt 134 and receive the model response 136. In some examples, the label 118 includes JSON format for description and pictographic fields. In some examples, the tab organizer 152 may use the model response 136 and parse it into a JSON object. In some examples, the tab organizer 152 may determine one or more quality checks (e.g., whether the label 118 has a description length less than a threshold level (e.g., less than three words)). If one or more quality checks fail, the tab organizer 152 may modify the prompt 134 and request the generative model 164 to regenerate the label 118. If the quality checks pass, the tab organizer 152 may assign the generated label 118 to the corresponding tab group 116.

[0080] User device 102 can be any type of computing device including one or more processors 101, one or more memory devices 103, a display 138, and an operating system 105 configured to execute (or assist in the execution of) one or more applications 106 (including browser application 108). In some examples, browser application 108 is a web browser configured to access information on the Internet. Browser application 108 can launch one or more browser tabs 122 in the context of one or more browser windows 128 on the display 138 of user device 102. Browser tab 122 can display content (e.g., web content) associated with web documents (e.g., web pages, PDFs, images, videos, or any items typically identifiable by resource locator 172) and / or applications (e.g., web applications, progressive web applications (PWAs), and / or extensions). Web applications can be applications stored on a remote server (e.g., a web server) and delivered on network 150 via browser application 108 (e.g., browser tab 122). In some examples, progressive web applications are similar to web applications, but can also (at least partially) be stored on user device 102 and used offline. Extensions add features or functions to browser application 108. In some examples, extensions can be based on HTML, CSS, and / or JavaScript (for browser-based extensions).

[0081] In some examples, user device 102 is a laptop computer. In some examples, user device 102 is a desktop computer. In some examples, user device 102 is a tablet computer. In some examples, user device 102 is a smartphone. In some examples, user device 102 is a wearable device. In some examples, display 138 is the display of user device 102. In some examples, display 138 may also include one or more external monitors connected to user device 102.

[0082] Processor 101 may be formed in a substrate configured to execute one or more machine-executable instructions or one or more pieces of software, firmware, or a combination thereof. Processor 101 may be semiconductor-based—that is, the processor may include semiconductor material capable of performing digital logic. Memory device 103 may include main memory storing information in a format that can be read and / or executed by processor 101. Memory device 103 may store browser application 108, tab manager 110 (and, in some examples, one or more aspects of tab organizer 152), which performs certain operations discussed herein when executed by processor 101. In some examples, memory device 103 includes a non-transitory computer-readable medium comprising executable instructions that cause at least one processor (e.g., processor 101) to perform operations.

[0083] Server computer 160 may be a computing device in various forms (e.g., a standard server, a group of such servers, or a rack server system). In some examples, server computer 160 may be a single system sharing components such as processors and memory. In some examples, server computer 160 may be multiple systems that do not share processors and memory. Network 150 may include the Internet and / or other types of data networks, such as local area networks (LANs), wide area networks (WANs), cellular networks, satellite networks, or other types of data networks. Network 150 may also include any number of computing devices (e.g., computers, servers, routers, network switches, etc.) configured to receive and / or transmit data within network 150. Network 150 may further include any number of hardwired and / or wireless connections.

[0084] Server computer 160 may include one or more processors 161, an operating system (not shown), and one or more memory devices 163 formed in a substrate. Memory devices 163 may represent any type (or multiple types) of memory (e.g., RAM, flash memory, cache, disk, tape, etc.). In some examples (not shown), the memory device may include external storage, such as memory physically located away from server computer 160 but accessible by the server computer. Processors 161 may be formed in a substrate configured to execute one or more machine-executable instructions or one or more pieces of software, firmware, or a combination thereof. Processors 161 may be semiconductor-based—that is, processors may include semiconductor materials capable of performing digital logic. Memory devices 163 may store information in a format readable and / or executable by processor 161. In some examples, memory devices 163 may store one or more aspects of a tab organizer 152 (e.g., clustering engine 154, tagging engine 156), which performs certain operations discussed herein when executed by processor 161. In some examples, memory device 163 includes a non-transitory computer-readable medium comprising executable instructions that cause at least one processor (e.g., processor 161) to perform operations.

[0085] Figure 2A A portion of an example tab bar 220 is shown with annotation visibility 211 (e.g., active annotation visibility), which enables the user to initiate a tab organizer (e.g., Figures 1A to 1F (The tab organizer 152). In some examples, the label visibility 211 is referred to as the tab organizer button.

[0086] Annotation visibility 211 can be a selectable element in the tab bar 220, which, when selected, triggers the tab organizer. In some examples, in response to the selection of annotation visibility 211, annotation visibility 211 can expand and display a loading indicator. This triggers the engine (e.g., Figures 1A to 1G The trigger engine 112) can be based on about Figures 1A to 1G Any of the described technologies may selectively display annotation visibility 211 in tab bar 220.

[0087] A portion of tab bar 220 shows a tab 222, but tab bar 220 may include other tabs (not shown). For example... Figure 1AAs shown, the annotation visibility 211 can be positioned by the adjacent (e.g., immediately adjacent) tab search button 207. If the tab search button 207 is not included in the tab bar 220, the annotation visibility 211 can be positioned at either end of the browser tab 222 within the tab bar 220. For example, Figure 2A The annotation visibility 211 is displayed at the left end of browser tab 122, but annotation visibility 211 can also be displayed at the right end of browser tab 122 within tab bar 220. In some examples, when triggered to display annotation visibility 211, the triggering engine can animate annotation visibility 211 or tab bar 220 (or a portion thereof). In other words, providing annotation visibility 211 can include an animation of moving the position of existing browser tab 122 to create space for annotation visibility 211 within tab bar 220.

[0088] The primary entry point for this feature (e.g., the tab organizer) could be the annotation visibility 211, which could be a visual extension of the tab search button 207. In some examples, the tab search button 207 could extend the tab bar control button, which is a UI element that is a child item of the tab bar area view. With the addition of annotation visibility 211, the browser application 108 could create a new tab search container view that has the tab search button 207 and annotation visibility 211 as child UI elements of that tab search container view. In some examples, the tab bar area view could replace its tab search button child item and all references to its layout with the tab search container. The tab bar control button could be animated (e.g., graphics file format (GFX) animation) to animate the rounding and / or flattening of its corners. The tab organizer button (e.g., similar to the tab search button 207) could extend the tab bar control button and have animation to animate its width.

[0089] For reference Figures 1A to 1G The explanation is that, in response to the detection of a tidying event (e.g., Figures 1A to 1GIn the event 133, the triggering engine can display the label visibility 211 (e.g., from hidden to shown). In some examples, the tab search container can display the `set expanded(bool expanded)` method that the caller can use to trigger the label visibility 211. When invoked, the tab search container can manage the animation sequence between the two buttons (e.g., tab search button 207, label visibility 211) and can set the edges of each button (if any) to have sharp corners (e.g., sharper corners). In some examples, the tab search container can maintain its current expanded / collapsed state when the user is hovering over the tab bar 220. In some examples, the tab search container can store two additional variables, such as a first variable (e.g., `should_change_state`) and a second variable (e.g., `state_changes_allowed`). The tab bar area view can listen for tab bar mouse events and set the tab search container with the second variable when the mouse enters / exits. In some examples, if the second variable (e.g., `state_changes_allowed`) is false, the `set expanded` call to the tab search container can be used with the first variable (e.g., `should_change_state`) to set the tab search container without animation. When the second variable (e.g., `state_changes_allowed`) changes from false to true, the tab search container can invoke `set expanded` if the first variable (e.g., `should_change_state`) is true.

[0090] Figure 2B An example of a browser menu 221 with annotation visibility 211a is shown, which is used to enable the user to initiate a tab organizer (e.g., Figures 1A to 1G The tab organizer 152). In some examples, if a group is unlikely to be created (e.g., quality score 121 does not reach the quality threshold (e.g., below the threshold level)), then Figure 2B The visibility of the annotation function 211a can be disabled (grayed out and unselectable). Some of the conditions and factors used to determine whether a tidying event (e.g., tidying event 133) has occurred can also be used to determine whether it is possible to create a group.

[0091] Figure 2C A portion of an example tab bar 220 with annotation visibility 211b is shown, which is used to enable the user to initiate a tab organizer (e.g., Figures 1A to 1G(The tab organizer 152). A portion of the tab bar 220 shows a browser tab 222, but the tab bar 220 may include other tabs (not shown). Figure 2C The annotation visibility 211b appears in the tab context menu 215. The tab context menu 215 can be displayed in response to the user right-clicking tab 222. In some implementations, if it is not possible to create a tab group (e.g., the quality score 121 does not reach the quality threshold (e.g., less than or equal to the threshold level)), the annotation visibility 211b can be disabled and grayed out, as shown in the documentation. Figure 2B As explained, annotation visibility 211b can trigger a sorting specific to browser tab 222, rather than a general sorting pass across tab bars 220 or multiple tab bars 220 (e.g., in the case of multiple browser windows). Therefore, for example, any suggested cluster should include tab 122. Thus, for example, if a cluster has been pre-determined before the user triggers the tab context menu 215, and the current browser tab 222 is not in one of the suggested clusters (or in a suggested cluster with a low quality score), annotation visibility 211b can be grayed out and disabled.

[0092] Users can disable or enable the tab organization service (e.g., Figures 1A to 1G Tab organization service 145). For example, a browser application's settings UI may include a feature visibility setting to disable the display of annotation visibility. If annotation visibility is disabled, it will not be displayed. Figure 2A The visibility of annotation functionality is 211. If annotation functionality visibility is disabled, then Figure 2B The annotation function visibility 211a or Figure 2C The annotation visibility 211b is not activated (e.g., grayed out and disabled).

[0093] Figure 3 An example of a tab group interface 324 based on one aspect is shown. Tab group interface 324 can be... Figures 1A to 1G This is an example of a tab group interface 124, and may include any of the details discussed herein. Tab group interface 324 may respond to a user-initiated tab organization action—for example, in response to the visibility of annotation features (e.g., Figures 1A to 1G The visibility of the annotation function is 111, and Figures 2A to 2C The selection of the visibility of the annotation function (211, 211a, and / or 211b) is used to generate and display the annotation. In some examples, the tab organizer (e.g., Figures 1A to 1G The tab organizer 152) can select the tab with the highest quality score (e.g., Figure 1EThe quality score 121) is grouped and tab group 316 is generated. In some examples, tab bar 320 includes label 318 for tab group 316 identified in tab group interface 324. In some examples, label 318 may include, for example, a label selected for tab group 316 from label field 325. In some examples, tab group 316 is not created until the user actually selects to create control 326.

[0094] While similar to a tab group editor interface (e.g., an interface that allows users to relabel existing tab groups, add tabs to existing tab groups, etc., in response to tab group editing actions), tab group interface 324 may include additional fields (elements) not included in the tab group editing interface. For example, tab group interface 324 may include a transition control 363. Transition control 363 can be configured to undo tab grouping, for example, deleting the group and restoring the previous tab bar index of each of the grouped tabs 322. Restoration of the previous tab bar index can be handled in the same way as closing an existing tab group. In implementations where there is no automatic highest-quality tab grouping, transition control 363 may close tab group interface 324 without taking any further action.

[0095] The tab group interface 324 may also include a remove control 335. Each tab 322 in the tab group 316 may have a corresponding remove control 335. The remove control 335 can be configured to remove its corresponding tab from the tab group. Similar to undo, this restores the removed tab's previous tab bar position relative to other tabs while maintaining the rest of the tab group. This may require the calculation of new expected tab bar indices, as older indices become outdated as groups are added.

[0096] The tab group interface 324 may include a label field 325. The label field 325 can be generated by a tagging engine (e.g., [example engine name]). Figures 1A to 1GThe tagging engine 156) selects tags 318 to populate the tab group 316. In some examples, the tag field 325 is editable. In other words, the user can modify or replace the tags 318 in the tab group 316 by typing in the tag field 325. The tab group interface 324 may also include one or more suggested tags 318a generated by the tagging engine (e.g., one or more alternative terms and / or one or more alternative icons). Suggested tags 318a may be provided in a priority ranking list. This priority ranking list may be sorted by the confidence score of the tags 318. The system may automatically populate the tag field 325 using the tag 318 with the highest ranking (highest confidence). Other suggested tags may be provided as suggested tags 318. Suggested tags 318a may be selectable UI elements, where selecting one of the suggested tags 318a can change the tags 318 in the tab bar 320 and the tags 318 in the tag field 325.

[0097] The tab group interface 324 may include a refresh control 310. In some examples, in response to the user's selection of the refresh control 310, a tab organization service (e.g., ...) Figures 1A to 1G The tab organization service 145 can provide new suggested tabs 318a. In some examples, in response to the selection of the refresh control 310, the tab organization service can generate and / or provide a list of potential tabs 318 (e.g., a priority-sorted list of potential tabs 318) (e.g., approximately 4-6, 8-10, 10-15, etc.). In some examples, the suggested tabs 318a can be cached (e.g., in the priority-sorted list), so refreshing the suggested tabs 318a can be almost instantaneous. Repeated selection of the refresh control 310 can cycle through the list, thus utilizing sufficient refresh calls to cycle back to the beginning. In some examples, the tab organization service can provide a short priority-sorted list of a specific number of tabs 318 each time (e.g., five tabs, four tabs, three tabs, two tabs, etc.), and these can all be displayed in, for example, the tab field 325 and shown as suggested tabs 318a. Some implementations can display more than two suggested tab controls. In this type of implementation, the selection of the refresh control 310 may not be immediate, as it may require a server call unless the model is on the device. Such an update can generate an arbitrary number of potential labels 318.

[0098] Figure 4 An example of a tab group interface 424 according to another aspect is shown. Tab group interface 424 can be... Figures 1A to 1G Tab group interface 124 and / or Figure 3The tab group interface 324 is an example, and may include any of the details discussed with reference to those accompanying figures. Figure 4 The tab group interface 424 can be Figure 3 An example of the new suggested label 418a for the tab group. The tab group interface 424 includes labels 418 in the tab bar 420, label fields 425, transition controls 463, and creation controls 426. Figure 4 Different presentations of tabs 422 within tab group 416 are also shown. For example, tab group interface 424 may include a favorites icon, a webpage title, and a shortened locator for each tab 422 identified in tab group 416. Tab group interface 424 may include a webpage title and a favorites icon (e.g., only the webpage title and favorites icon) for each tab in automatically grouped tabs 422. Tab group interface 424 may also include a removal control 435. Each tab 422 in tab group 416 may have a corresponding removal control 435. The removal control 435 may be configured to remove its corresponding tab from the tab group. Additional information about the webpage represented by the grouped tabs 422 can be... Figures 1A to 1G Tab group interface 124 Figure 3 Tab group interface 324 and / or Figure 4 Used in the tab group interface 424.

[0099] In some examples, in response to excessive controls (e.g., Figure 3 Excessive controls 363 or Figure 4 The selection of the over-control 463) Figures 1A to 1G Tab group interface 124 Figure 3 Tab group interface 324 and / or Figure 4 The tab group interface 424 can be eliminated (e.g., removed from the browser user interface). In some examples, the tab group interface does not include excessive controls. In some examples, where the suggested tab group has already been created, the creation of controls (e.g., ...) is not performed. Figures 1A to 1G Creating controls 126 Figure 3 Create control 326 and / or Figure 4 The selection of the creation control (426) can result in the removal of the tab group interface. In an implementation where the suggested tab group 316 has not yet been created, the selection of the creation control can generate the group and change the appearance of the tab bar accordingly before closing the tab group interface.

[0100] Figure 5An example of a tab group interface 524 according to another aspect is shown. In some examples, the tab group interface 524 suggests a single tab group 516 having two or more semantically related browser tabs 522. The tab group interface 524 can be a tabbed interface. The tab group interface 524 includes an all tabs section 524a and a organizer tabs section 524b. The all tabs section 524a can identify all browser tabs 522 open on the user's device. The organizer tabs section 524b can identify the tab group 516 as a tab group suggestion.

[0101] In response to the user's choice of the visibility of annotation features, the tab manager (e.g., Figures 1A to 1G The tab manager 110 can initiate (e.g., invoke, execute, activate, etc.) a tab organizer (e.g., tab organizer 152), which causes the tab group interface 524 to be displayed. The tab group interface 524 can identify tab groups 116 as suggestions to the user, where tab groups 116 include related browser tabs 522. For example... Figure 5 As shown, tab group interface 524 is identified by ML models (e.g., Figures 1A to 1G The generative model 164) generates labels 118. Labels 118 may include a brief description of tab group 516, and in some examples, include icons representing the contents of tab group 516.

[0102] The tab group interface 524 may include an edit control 555. When selected, the edit control 555 is configured to allow the user to edit the label 518. In some examples, when selected, the edit control 555 is configured to render an input field to modify the description and / or icon of the label 518. The tab group interface 524 includes a creation control 526 for creating a tab group 516 within the tab bar. When selected, the creation control 526 is configured to modify the tab bar to include the tab group 516. The tab group interface 524 includes a clear control 563. The clear control 563 may be configured to undo a tab grouping, for example, deleting the group and restoring the previous tab bar index of the grouped tabs 522.

[0103] Figure 6A and Figure 6BAn example of a tab group interface 624 according to another aspect is shown. In some examples, the tab group interface 624 may suggest multiple tab groups, each tab group having two or more semantically related browser tabs 622. The tab group interface 624 may be a tabbed interface. The tab group interface 624 includes an all tabs section 624a and a organizer tabs section 624b. The all tabs section 624a may identify all browser tabs 622 open on the user's device. The organizer tabs section 624b may identify multiple tab groups as tab group suggestions, such as tab group 616-1, tab group 616-2, and tab group 616-3. The tab group interface 624 may identify the number of suggested tab groups.

[0104] In response to the user's choice of the visibility of annotation features, the tab manager (e.g., Figures 1A to 1G The tab manager 110 can initiate (e.g., invoke, execute, activate, etc.) a tab organizer (e.g., tab organizer 152), which causes the tab group interface 624 to be displayed. Figure 6A As shown, the tab group interface 624 can identify multiple tab groups as suggestions to the user, where each tab group includes an associated browser tab 622. Each tab group can be a separate UI object or card. For each tab group, the tab group interface 624 identifies a label 618 associated with the corresponding tab group and two or more semantically related browser tabs 622. The label 518 may include a brief description of the tab group 516, and in some examples, includes an icon representing the content of the tab group 516. For each tab group, the tab group interface 624 may include an edit control 644. The edit control 644, when selected, is configured to allow the user to edit the corresponding label 518. In some examples, the edit control 644, when selected, is configured to render an input field to modify the description and / or icon of the corresponding label 618. For each tab group, the tab group interface 624 includes a remove control 646. The remove control 646, when selected, is configured to remove the corresponding tab group from the tab group creation.

[0105] The tab group interface 624 includes a creation control 626 for creating tab groups within a tab bar. The creation control 626, when selected, is configured to modify the tab bar to include the tab group. The tab group interface 624 includes a clear control 663. The clear control 663 can be configured to undo a tab grouping, for example, deleting the group and restoring the previous tab bar index of the grouped tabs 622. Figure 6BAs shown, in response to the detection of cursor 660 within the boundary of tab 622 identified in the tab group interface 624, the tab group interface 624 can display a removal control 648 for tab 622. The removal control 648 is configured to remove tab 622 from tab group 616-1 when selected.

[0106] Figures 7A to 7D Examples of tab group interfaces (e.g., tab group interfaces 724a and 724b) and tab bars (e.g., tab bars 720a and 720b) ​​are shown. Figure 7A As shown, the tab group interface 724a can suggest multiple tab groups, such as tab group 716-1 and tab group 716-2. The tab group interface 724a includes an all tabs section and a organizer tabs section. The all tabs section can identify all browser tabs open on the user's device. The organizer tabs section can identify multiple tab groups as tab group suggestions. The tab group interface 724a can identify the number of suggested tab groups. For tab group 716-1, the tab group interface 724a identifies label 718-1 and related tab 722-1. For tab group 716-2, the tab group interface 724a identifies label 718-2 and related tab 722-2.

[0107] Users can accept tab group suggestions and create these tab groups. Then, after the initial set of tab groups has been created, users can continue to open browser tabs, including new tabs 722b. In response to the user's selection of tab visibility after the initial set of tab groups has been created, the tab manager (e.g., ...) Figures 1A to 1G The tab manager 110 can initiate (e.g., invoke, execute, activate, etc.) a tab organizer (e.g., tab organizer 152), which causes the tab group interface 724b to be displayed.

[0108] like Figure 7B As shown, the service can determine that the new tab 722b is associated with tab group 716-1, and the tab group interface 724b can identify any new tab group, including tab group 716-3 (with corresponding label 718-3) and tab group 716-4 (with corresponding label 718-4). Figure 7C As shown, tab bar 720a includes options from... Figure 7A The initial tab group and in the creation Figure 7BThe tab group suggests a new tab that was previously listed. For example, tab bar 720a can identify tab group 716-1's label 718-1 and browser tab 722-1, tab group 716-2's label 718-2 and browser tab 722-2, followed by a new tab including tab 722b.

[0109] like Figure 7D As shown, after adding Figure 7B Following the tab group suggestion, a new tab 722b is added after the existing tabs in tab group 716-1 within tab bar 720b. Within tab bar 720b, the existing tab group 716-2 follows tab group 716-1. After the existing tab groups, tab bar 720b identifies new tab groups, including tab group 716-3 (with label 718-3) and tab group 716-4 (with label 718-4).

[0110] exist Figure 7C and Figure 7D In the diagram, each browser tab includes an icon and / or text, and the icon and some text are included, but not the full text of the browser tab's name. Due to the limited display space available for each browser tab, the text is truncated by the browser application 108. Displaying the browser tabs of a tab group together with the tab group's label in the tab bars 720a, 720b produces the technical benefit of helping users find tabs of interest, even though the browser truncates the tab names when displaying the tabs due to limited display area. This allows users to find tabs of interest more easily, even when the browser is displaying many tabs, each with a relatively small amount of display area allocated to the icon and / or text. Although the label occupies some space in the tab bars 720a, 720b, thus reducing the amount of display space available for each browser tab, it has been observed that grouping the tabs together allows users to find (and select) tabs of interest more quickly.

[0111] Figure 8 An example of a tab group interface 824 according to another aspect is shown. In some examples, the tab group interface 824 suggests multiple tab groups 816, each tab group having a label 818 and two or more semantically related browser tabs 822. In some examples, the label 818 is displayed within an editable input field 825. The tab group interface 824 can identify the number of tab groups 816 as tab suggestions. The tab group interface 824 includes a navigation control 859 that, when selected, causes the tab group interface 824 to navigate to other tab groups 816.

[0112] Figure 9An example of a tab group interface 924 according to another aspect is shown. In some examples, the tab group interface 924 may suggest multiple tab groups, each tab group having two or more semantically related browser tabs 922. The tab group interface 924 may identify multiple tab groups as tab group suggestions, such as tab group 916-1, tab group 916-2, and tab group 916-3. The tab group interface 924 may identify the number of suggested tab groups.

[0113] In response to the user's choice of the visibility of annotation features, the tab manager (e.g., Figures 1A to 1G The tab manager 110 can initiate (e.g., invoke, execute, activate, etc.) a tab organizer (e.g., tab organizer 152), which causes the tab group interface 924 to be displayed. Figure 9 As shown, the tab group interface 924 can identify multiple tab groups as suggestions to the user, where each tab group includes an associated browser tab 922. Each tab group can be a separate UI object or card. For each tab group, the tab group interface 924 identifies a label 918 associated with the corresponding tab group and two or more semantically related browser tabs 922. The label 918 may include a brief description of the corresponding tab group and, in some examples, an icon representing the content of the corresponding tab group. For each tab group, the tab group interface 924 may include an edit control 944. The edit control 944, when selected, is configured to allow the user to edit the corresponding label 918. In some examples, the edit control 944, when selected, is configured to render an input field to modify the description and / or icon of the corresponding label 918. For each tab group, the tab group interface 924 includes a remove control 946. The remove control 946, when selected, is configured to remove the corresponding tab group from tab group creation.

[0114] Figure 10 An example of a tab group interface 1024 according to another aspect is shown. In some examples, the tab group interface 1024 may suggest multiple tab groups, each tab group having two or more semantically related browser tabs 1022. The tab group interface 1024 may identify multiple tab groups as tab group suggestions, such as tab group 1016-1, tab group 1016-2, and tab group 1016-3. The tab group interface 1024 may identify the number of suggested tab groups.

[0115] In response to the user's choice of the visibility of annotation features, the tab manager (e.g., Figures 1A to 1GThe tab manager 110 can initiate (e.g., invoke, execute, activate, etc.) a tab organizer (e.g., tab organizer 152), which causes the tab group interface 1024 to be displayed. Figure 10 As shown, the tab group interface 1024 can identify multiple tab groups as suggestions to the user, where each tab group includes an associated browser tab 1022. Each tab group can be a separate UI object or card. For each tab group, the tab group interface 1024 identifies a label associated with the corresponding tab group and two or more semantically related browser tabs 1022. The label may include a brief description of the corresponding tab group and, in some examples, an icon representing the content of the corresponding tab group. For each tab group, the tab group interface 1024 may include a visual indicator 1040 associated with one or more browser tabs 1022 in one or more tab groups.

[0116] Figure 11 An example of a tab group interface 1124 according to another aspect is shown. In some examples, the tab group interface 1124 may suggest multiple tab groups, each tab group having two or more semantically related browser tabs 1122. The tab group interface 1124 may identify multiple tab groups as tab group suggestions, such as tab group 1116-1, tab group 1116-2, tab group 1116-3, and tab group 1116-4. The tab group interface 1124 may identify the number of suggested tab groups.

[0117] In response to the user's choice of the visibility of annotation features, the tab manager (e.g., Figures 1A to 1G The tab manager 110 can initiate (e.g., invoke, execute, activate, etc.) a tab organizer (e.g., tab organizer 152), which causes the tab group interface 1124 to be displayed. Figure 11 As shown, the tab group interface 1124 can identify multiple tab groups as suggestions to the user, where each tab group includes an associated browser tab 1122. Each tab group can be a separate UI object or card. For each tab group, the tab group interface 1124 identifies a label associated with the corresponding tab group and two or more semantically related browser tabs 1122. The label may include a brief description of the corresponding tab group and, in some examples, an icon representing the content of the corresponding tab group. For one or more tab groups, the tab group interface 1124 may include an expander control 1142. The expander control 1142, when selected, is configured to identify additional browser tabs 1122 associated with the corresponding tab group.

[0118] Figure 12An example of a tab group interface 1224 according to another aspect is shown. In some examples, the tab group interface 1224 may suggest multiple tab groups, each with two or more semantically related browser tabs 1222. The tab group interface 1224 may identify multiple tab groups as tab group suggestions, such as tab group 1216-1, tab group 1216-2, tab group 1216-3, and tab group 1216-4. In some examples, the tab group interface 1224 may be rendered after one or more tab groups have been created. The tab group interface 1224 includes an existing group section 1261 that identifies (e.g., created before rendering the tab group interface 1224) existing tab groups and new related (but ungrouped) browser tabs associated with the respective existing tab groups. The existing tab groups include tab group 1216-1 and tab group 1216-2. For each of tab groups 1216-1 and 1216-2, tab group interface 1224 identifies a recommended tab item 1215 that, when selected, displays one or more browser tabs recommended as part of the corresponding tab group. Tab group interface 1224 includes a new group tab section 1263 that identifies any new tab group (including tab groups 1216-3 and 1216-4).

[0119] For each existing tab group, the tab group interface 1224 may include an expander control 1242 that, when selected, displays an identifier for the tab 1222 associated with the corresponding tab group. For each existing tab group, the tab group interface 1224 includes a remove control 1246. The remove control 1246, when selected, is configured to remove the corresponding tab group from the tab group creation process. For each new tab group, the tab group interface 1224 includes an edit control 1244. The edit control 1244, when selected, is configured to allow the user to edit the corresponding tab. In some examples, the edit control 1244, when selected, is configured to render an input field to modify the description and / or icon of the corresponding tab. For each new tab group, the tab group interface 1024 includes a remove control 1246. The remove control 1246, when selected, is configured to remove the corresponding tab group from the tab group creation process.

[0120] Figures 13A to 13C The user interface 1345 of browser window 1328 is shown, which has multiple browser tabs 1322 and user function visibility 1311 for initiating tab organization services. (See diagram below.) Figure 13A As shown, user functionality visibility 1311 can be actively rendered according to any of the techniques discussed herein. In response to... Figure 13ASelecting the user function visibility 1311 on the tab bar 1320 displays the tab group interface 1324, such as... Figure 13B As shown. Figure 13B As shown, the tab group interface 1324 may include a control 1327 that, when selected, causes the tab group interface 1324 to update with tab group suggestions. Figure 13C As shown, the tab group suggests identifying label 1318 in label field 1325 and several related tabs 1322.

[0121] Figure 14A and Figure 14B A browser menu 1440 with multiple browser menu items is shown, including a sorting control 1423 for invoking a tab sorting service. The sorting control 1423 can be, for example,... Figure 14A The unmanaged profile 1458a shown is or Figure 14B The menu options of the managed profile 1458b.

[0122] Figure 15 A high-level diagram is shown of a system 1500 for implementing a tab organization service, according to one aspect. The tab organization service can be... Figures 1A to 1G The tab organization service 145 provides an example, and can include any of the details discussed in those diagrams. Figure 15 In the example system, the browser client (on a user computing device including a processor, memory, input / output devices, operating system, etc.) triggers grouping features based on a predefined set of conditions such as browsing activity and content. For example, it initiates a process for generating tab groups and displays UI elements for organizing related tabs in the UI (e.g., ...). Figures 1A to 1G The annotation function visibility (111), as described in this article.

[0123] In some examples, the user can explicitly request the process for generating the tab group, for example, via menu options (e.g., browser menu or tab context menu, etc.). In some implementations, if the tab bar is stable (e.g., the tabs in the tab bar remain unchanged for a given (predetermined) time range), then the browser (e.g., ...) will automatically generate the tab group. Figures 1A to 1GA browser application (108) can proactively trigger the process for generating tab groups. Such proactive tab groups may not be used until the user has indicated the intention to generate the group, for example, by selecting label visibility. When triggered, the client sends the tabs and their signals (e.g., page content, page title, URL, and / or behavioral signals) to the server. In some examples, the server then performs an algorithm (e.g., clustering) to group the tabs and generate labels, and if the quality of the generated group (e.g., the group's clustering quality score) meets a quality threshold (e.g., above a threshold level), the generated group is sent back to the client. In some examples, tab group clustering and / or label generation are performed on the user's device. Depending on what triggers the tab group generation process, the browser UI may, for example, display a suggestion to organize the relevant tabs by invoking feature visibility, and the browser may, for example, display the suggested group as a tab group interface, or it may cache the group.

[0124] Clustering can consider semantic and / or behavioral signals. Semantic signals represent the content of a webpage (e.g., page content, title, URL, main entity extraction, etc.). Semantic signals measure the content similarity between two tabs, for example, by using embedding vectors computed by a machine learning (ML) model that projects content into a vector space where similar content is placed close to each other. The similarity score between two tabs can then be calculated as the dot product of the tabs' embedding vectors.

[0125] Behavioral signals represent attributes of tabs within a browser context. These attributes can be based on user behavior interacting with the tabs, the tab's properties, and / or the properties of the webpage represented by the tab. Behavioral signals can include navigation chains (e.g., signals indicating that two tabs are in the same navigation chain). In a navigation chain, two tabs may be in the same chain because the first tab was opened from a link in the second tab. However, when the webpage associated with the first tab changes, the link between the two tabs weakens. If an unrelated webpage is opened in either the first or second tab (e.g., a user types a resource locator in the address bar / omnibox), this can be interpreted as a weak link in the signal, or it can completely break the navigation chain, so the two tabs are no longer considered to be in the same navigation chain.

[0126] Behavioral signals can include link clicks, for example, one tab being created by clicking a link in another tab. Behavioral signals can include proximity (time) signals. Proximity signals can include the interval between the last activity times of two tabs, the interval between the creation times of two tabs, and / or whether one tab was created while the other tab was active. Behavioral signals can include tab position or proximity. For example, the distance between two tabs (based on their position in the tab bar) can be used, where tabs that are closer to each other can be considered more similar.

[0127] Behavioral signals can include historical tab grouping and browsing signals, such as estimated tab usage probabilities relative to other tabs. For example, tabs that match a vertical / category / domain pairing may have a higher similarity if a user has historically opened or grouped tabs in the same vertical / category / domain together. Any attributes of the website represented by tabs historically grouped together or opened together can be used in the embedding to determine whether tabs in the current tab bar (e.g., the webpage associated with the tab) should be grouped together. Behavioral signals can include bookmarking signals, such as two tabs being similar when they are in the same bookmark subfolder. Behavioral signals can include domains, such as two tabs being similar when they are in the same domain.

[0128] In some implementations, one clustering algorithm may use semantic signals to generate clusters, while another may use behavioral signals. Clustering quality determines which of these clusters to select. In some implementations, the clustering algorithm may use both types of signals. The system may define a set of signals between tab pairs. Semantic or behaviorally relevant signals may be used, for example, to calculate a similarity / link score between two tabs via a machine learning model. The system may then cluster the groups based on the tab similarity score (e.g., via a clustering algorithm).

[0129] For example, given a representation of each tab to be clustered, the clustering algorithm can compute pairwise similarity scores for all tab pairs. Using these similarity scores, the system can use an unsupervised clustering algorithm to assign each tab to at most one group, i.e., such that each suggested group comprises a subset of the tabs. Implementations can utilize various clustering algorithms, such as affinity propagation, DBSCAN, agglomerative clustering, etc. Typically, the clustering process involves iteratively merging tabs into groups / clusters. In some implementations, the system can provide the ability to generate clusters that shuffle the priorities or weights of the clustering algorithm between two signal types (semantic and behavioral). This allows for the generation of clusters with different structures—some structures primarily based on semantic signals, and some structures based on behavioral signals. This allows the UI (e.g., a tab group interface) to allow users to request re-clustering or variations of clustering that best suit their tab group preferences.

[0130] In some implementations, the system can use a generative model (e.g., a language model) to generate clusters. For example, tabs and signals can be provided to the language model, with hints for grouping (or clustering) the tabs. In some implementations, the language model can be prompted to recommend clusters on behavioral or semantic signals, or to weight behavioral signals more than semantic signals, to weight them equally, or to weight semantic signals more than behavioral signals. In some implementations, the language model can provide the proposed groups in JSON format.

[0131] For each cluster, the system can estimate the quality of the cluster based on several criteria, which can limit the number of tab groups that users may be dissatisfied with. Scores can be based on overall cluster similarity. Scores can be based on cluster size. Scores can be based on a weighted average of the core topics determined by the page content. Scores can be based on two or more of these factors. Clusters with quality scores that fail to meet the quality threshold can be discarded.

[0132] The system can also generate one or more human-readable tags for each cluster with a sufficient quality score, which can then be presented to the user. Tag generation can use a language model that takes several signals about the tabs within a group as input to generate tags. These tab signals can include content signals such as tab fields and URLs, tab page titles, tab page content, indications of whether the tab content includes form fields, the number of images on the webpage, and / or indications of whether the cluster was created primarily based on content signals. Behavioral signals can include indications of whether the tab group was created primarily based on behavioral signals.

[0133] In some implementations, and with the user's consent, the signals may include user history signals, such as whether the user selects emojis as labels more frequently than words, or whether the user chooses more general suggestions (e.g., travel) rather than more specialized suggestions (e.g., hotels). With the user's permission, these historical signals may be stored in local user profile data. The language model may output structured labels that ensure they fit the tab group UI (e.g., one or two words, fewer than four words, etc.). Based on the underlying input context, the language model may also provide emojis as part of a label or as separate labels. The language model can be fine-tuned (specially trained) to meet the desired output structure. In some implementations, a single call to the language model may generate several candidate labels for a cluster. These suggested labels may be provided in an ordered list, as discussed in this paper.

[0134] although Figure 15 Not shown, but browser clients may include local user profile data. With user permission, browsers can store user history, which can help personalize when to proactively recommend tag visibility, which tags are ranked highest, and how clusters are scored. For example, the user history context can be provided to the language model that generates the tags, causing the model to favor tags that align with previously selected tags and give them higher scores.

[0135] Figure 16 A data diagram of a sample system 1600 for generating tab group suggestions, based on its implementation, is shown. Figure 16 In the example, tab service 1645 can be used as a tab organization service (e.g., Figures 1A to 1G The tab service 1645 acts as a central coordinator for tab organization services (e.g., services). Tab service 1645 can be responsible for detecting and logging triggers. A series of different triggers 1625 can be invoked (e.g., retrieved, activated, etc.) to tab service 1645 to notify that a trigger action has occurred. In some examples, tab service 1645 can calculate decisions and log metrics using tab organization metrics 1647. Tab service 1645 can be responsible for controlling the visibility / enabled state of UI elements. For example, tab service 1645 can determine when to display suggested UI 1611. Tab service 1645 can create and store organization sessions. For example, when initiated, tab service 1645 can create an organization session that is mapped to the browser window that initiated it. In some examples, the tab organization service can be activated or deactivated via settings preferences 1680 (e.g., browser settings), which can be displayed via settings page 1682.

[0136] When a suggestion is requested, the tab service 1645 can create a structured session. In some implementations, the backend response data can be in the form of an array of suggested groups. Each suggested group can have several properties, such as a tab identifier (e.g., tab id), suggested labels, and metadata used to associate server / client data together. The tab identifier (e.g., tab id) can be an array of integers or other identifiers representing the identifiers of the tabs associated with that group. The suggested labels can be an array of strings representing the labels generated for that group. The metadata can be an integer representing a unique identifier for that group. The response data can be used to populate a list of suggested groups for the user to select from. After receiving the response data from the API handler 1615, the response data can be transformed into a mutable object stored in the service, which can include additional data required to perform user actions such as changing the name to a different suggested name or accepting / rejecting the suggestion. The mutable data object for a tab can be a tab data object. A tab data object can represent a tab in a suggested group and includes data from the original state (e.g., the content in the tab bar when the request to generate the tab group is initiated). A tab data object can contain an identifier associated with the actual web content object contained within the tab. In some examples, this identifier can be derived from a tab identifier object. The tab data object can also contain the original URL at the time of the request, which can be used to check whether the tab should be added to the group after a suggestion is presented to the UI.

[0137] The original URL can also be used to check the validity of a tab. If the tab is updating its URL during the transition from the suggested group to the actual group within the tab bar, the tab service 1645 can remove the tab from the grouping action. The tab data object may contain the tab's original index at the time the request was created, which can be used to attempt to return the tab to its position before the suggested group was added to the tab bar. If the tab index is invalidated, it means the tab bar has been changed in a way that the system cannot restore the tab to its original state. The tab data object may contain the tab's source context; in implementations that retrieve tabs from other browser windows, the tab data may maintain a reference to the browser window in which the tab was located before the request was created.

[0138] API handler 1615 can be responsible for adjusting the request parameters from tab service 1645 into the correct protocol structure (e.g., protos) and then sending the request to the intelligent backend. The intelligent backend can be located at, for example... Figures 1A to 1G Service computer 160 and / or Figure 15The server is on the server. The intelligent backend can be on a device, such as user device 102 and / or Figure 15 The browser client. The intelligent backend includes clustering and tagging intelligence. When requesting suggestions, API handler 1615 can accept callbacks that can be invoked upon request completion. The intelligent backend can accept a potentially groupable list of tabs, create one or more clusters, and return them to the user device. Once API handler 1615 receives the results, it can parse them and invoke the response callbacks provided by tab service 1645 using request tokens.

[0139] In some implementations, the tab bar model 1631 can be the source of tabs in a browser window. The tab bar model 1631 can have a single tab group model, which contains groups within the tab bar. When a group is suggested, the tab service 1645 can create a tab group on the tab group model in the browser window (e.g., the browser window that initiated the tab group suggestion). In some examples, this can move the tabs to the edge of the tab bar (e.g., the leading or trailing edge). The tab service 1645 can then create a group containing all tabs with the label of the first suggested group.

[0140] When the service's suggestion API completion callback occurs, the tab service 1645 can create the first group in the suggestion model. First, it can verify that the tab is still groupable (if the URL changes or the tab disappears, the tab should not be included in the group, and this may also invalidate the grouping suggestion). The tab service 1645 can then invoke the move and set group on the tab bar model 1631 with the corresponding tab index mapped to the suggested group and the correct index.

[0141] Figure 17 This is a flowchart 1700 illustrating an example operation of a system for organizing browser tabs according to a usage model. Flowchart 1700 can depict the operation of a computer-implemented method. Flowchart 1700 can be applied to any of the implementations discussed herein. Although Figure 17 Flowchart 1700 illustrates the operations in sequence; however, it should be understood that this is merely an example and may include additional or alternative operations. Furthermore, Figure 17 The operations and related operations can be performed in a different order than those shown, or in a parallel or overlapping manner.

[0142] Operation 1702 includes generating tab information about browser tabs open on the user's device. In some examples, browser tabs may be replaced with tabs, which would encompass both browser tabs and non-browser tabs (e.g., any application that can render a tab interface). Operation 1704 includes identifying a tab group from the browser tabs, the tab group comprising at least two browser tabs determined to be related based on the tab information. Operation 1706 includes generating labels for the tab group based on at least a portion of the tab information. Operation 1708 includes modifying the tab bar to include labels and tab groups.

[0143] Clause 1. A method comprising: generating tab information about tabs opened on a user device; identifying a tab group from the tabs, the tab group including at least two tabs determined to be related based on the tab information; generating a label for the tab group based on at least a portion of the tab information; and modifying a tab bar to include the label and the tab group.

[0144] Clause 2. The method as described in Clause 1 further comprises: initiating the display of a tab group interface, the tab group interface identifying the tab group and a new tab group, the tab group interface identifying a new tab to be included in the tab group, the new tab having been created after the tab group was created.

[0145] Clause 3. The method as described in Clause 1 further comprises: initiating the display of a tab group interface, the tab group interface identifying a tab group suggestion, the tab group suggestion including an editable field filled with the label, the tab group suggestion including information identifying the at least two tabs, the tab group suggestion including a control configured to create the tab group; and in response to a selection of the control, modifying the tab bar to include the label and the tab group.

[0146] Clause 4. The method as described in Clause 1, wherein identifying the tab group comprises: using the tab information to generate an embedding; calculating a similarity score based on the embedding; clustering a subset of the tabs based on the similarity score; and identifying the subset as the tab group.

[0147] Clause 5. The method as described in Clause 1, wherein generating the label comprises: generating a prompt for the language model, the prompt including at least a portion of the tab information; and receiving a model response from the language model, the model response including the label.

[0148] Clause 6. The method as described in Clause 1, wherein generating the label comprises: generating one or more words describing the tab group; and generating an icon representing the tab group.

[0149] Clause 7. The method as described in Clause 1, wherein modifying the tab bar comprises: inserting the label into the tab bar; and identifying the tab group in the tab bar that is close to the label, wherein selecting the label causes the tab group to collapse or expand.

[0150] Clause 8. The method of Clause 1 further comprises: receiving a selection of an organization control displayed in a browser window including at least one of the tabs; and in response to the selection of the organization control, initiating the identification of the tab group from the tabs.

[0151] Clause 9. The method of Clause 1 further includes: detecting a sorting event of the tab bar; and in response to detecting the sorting event, displaying a control in the tab bar, the control being configured, when selected, to initiate the identification of the tab group from the tabs.

[0152] Clause 10. The method as described in Clause 9, wherein detecting the sorting event includes determining that the suggested tab group in the tab bar has a quality score that meets a quality threshold.

[0153] Clause 11. The method as described in Clause 1, wherein the tab information includes the page title and resource locator associated with the tab.

[0154] Clause 12. An apparatus comprising: at least one processor; and a non-transitory computer-readable medium storing executable instructions that cause the at least one processor to perform operations including: generating tab information about tabs opened on a user device; identifying a tab group from the tabs, the tab group including at least two tabs determined to be related based on the tab information; generating a label for the tab group based on at least a portion of the tab information; and modifying a tab bar to include the label and the tab group.

[0155] Clause 13. The device as described in Clause 12, wherein the operation further comprises: initiating the display of a tab group interface, the tab group interface identifying a tab group suggestion, the tab group suggestion including an editable field filled with the label, the tab group suggestion including information identifying the at least two tabs, the tab group suggestion including a control configured to create the tab group; and in response to a selection of the control, modifying the tab bar to include the label and the tab group.

[0156] Clause 14. The device as described in Clause 12, wherein the operation further comprises: using the tab information to generate an embedding; calculating a similarity score based on the embedding; clustering a subset of the tabs based on the similarity score; and identifying the subset as the tab group.

[0157] Clause 15. The device as described in Clause 12, wherein the operation further comprises: generating a prompt for a language model, the prompt including at least a portion of the tab information; and receiving a model response from the language model, the model response including the tab.

[0158] Clause 16. The device as described in Clause 12, wherein the operation further comprises: generating one or more words describing the tab group; and generating an icon representing the tab group.

[0159] Clause 17. The device as described in Clause 12, wherein the operation further comprises: inserting the label into the tab bar; and identifying the tab group in the tab bar adjacent to the label, wherein selection of the label causes the tab group to collapse or expand.

[0160] Clause 18. A non-transitory computer-readable medium storing executable instructions that cause at least one processor to perform operations including: generating tab information about tabs opened on a user device; identifying a tab group from the tabs, the tab group including at least two tabs determined to be related based on the tab information; generating a label for the tab group based on at least a portion of the tab information; and modifying a tab bar to include the label and the tab group.

[0161] Clause 19. A non-transitory computer-readable medium as described in Clause 18, wherein the operation further comprises: initiating the display of a tab group interface that identifies the tab group and a new tab group, the tab group interface identifying a new tab for inclusion in the tab group, the new tab having been created after the tab group was created.

[0162] Clause 20. A non-transitory computer-readable medium as described in Clause 18, wherein the operation further comprises: initiating the display of a tab group interface, the tab group interface identifying a tab group suggestion, the tab group suggestion including an editable field filled with the label, the tab group suggestion including information identifying the at least two tabs, the tab group suggestion including a control configured to create the tab group; and modifying the tab bar to include the label and the tab group in response to a selection of the control.

[0163] Various implementations of the systems and techniques described herein can be implemented in digital electronic circuit systems, integrated circuit systems, 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 that can be executed and / or interpreted on a programmable system, which includes at least one programmable processor, which may be dedicated or general-purpose, and is coupled to receive data and instructions from and to the storage system, at least one input device, and at least one output device.

[0164] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and can be implemented using 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, device, and / or apparatus (e.g., disk, optical disk, memory, programmable logic device (PLD)) used to provide machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.

[0165] 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, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, verbal, or tactile input.

[0166] The systems and technologies described herein can be implemented in computing systems that include back-end components (e.g., as data servers), or middleware components (e.g., application servers), or front-end components (e.g., client computers with graphical user interfaces or web browsers through which users can interact with the implementations of the systems and technologies described herein), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected via digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), and the Internet.

[0167] A computing system may include clients and servers. Clients and servers are generally located far apart and typically interact through a communication network. The client-server relationship is established by computer programs running on the respective computers that establish a client-server relationship between them.

[0168] In this specification and the appended claims, unless the context clearly indicates otherwise, the singular forms “a,” “an,” and “the” include plural indicators. Furthermore, unless the context clearly specifies otherwise, conjunctions such as “and,” “or,” and “and / or” are inclusive. For example, “A and / or B” includes only A, only B, and A and B. Further, the connecting lines or connectors shown in the various figures are intended to represent exemplary functional relationships and / or physical or logical couplings between various elements. In actual installations, many alternative or additional functional relationships, physical connections, or logical connections may exist. Moreover, unless an element is specifically described as “essential” or “critical,” no item or component is essential to the practice of the implementations disclosed herein.

[0169] This document uses terms such as, but not limited to, approximate, substantially, and generally to indicate values ​​or ranges for which precise specification is not required or necessary. As used herein, the terms discussed above have ready and immediate meanings to those skilled in the art.

[0170] Furthermore, the use of terms such as upper, lower, top, bottom, side, end, front, and rear in this document is with reference to the orientation currently considered or shown. If these terms are considered with respect to another orientation, it should be understood that such terms must be modified accordingly.

[0171] Furthermore, in this specification and the appended claims, unless the context clearly indicates otherwise, the singular forms “a,” “an,” “the,” and “the” include plural indicators. Additionally, unless the context clearly indicates otherwise, conjunctions such as “and,” “or,” and “and / or” are inclusive. For example, “A and / or B” includes only A, only B, and A and B.

[0172] Although certain example methods, apparatuses, and articles have been described herein, the scope of this patent is not limited thereto. It should be understood that the terminology used herein is for the purpose of describing particular aspects and is not intended to be limiting. Rather, this patent covers all methods, apparatuses, and articles that fairly fall within the scope of the claims of this patent.

Claims

1. A method comprising: Generate tab information about the tabs opened on the user's device; A tab group is identified from the tabs, the tab group comprising at least two tabs determined to be related based on the tab information; Generate labels for the tab group based on at least a portion of the tab information; as well as Modify the tab bar to include the label and the tab group.

2. The method of claim 1, further comprising: The tab group interface is initiated to display. The tab group interface identifies the tab group and the new tab group. The tab group interface identifies the new tab to be included in the tab group. The new tab was created after the tab group was created.

3. The method of claim 1 or 2, further comprising: The tab group interface is initiated to display, the tab group interface identifies tab group suggestions, the tab group suggestions include editable fields filled with the labels, the tab group suggestions include information identifying the at least two tabs, and the tab group suggestions include controls configured to create the tab group; as well as In response to the selection of the control, the tab bar is modified to include the label and the tab group.

4. The method according to any one of claims 1 to 3, wherein, The tab group is identified by: Use the tab information to generate the embedding; The similarity score is calculated based on the embedding. Clustering subsets of the tabs based on the similarity scores; and The subset is identified as the tab group.

5. The method according to any one of claims 1 to 4, wherein, Generating the tags includes: Generate suggestions for the language model, the suggestions including at least a portion of the tab information; and Receive a model response from the language model, the model response including the label.

6. The method according to any one of claims 1 to 5, wherein, Generating the tags includes: Generate one or more words to describe the tab group; and Generate an icon representing the tab group.

7. The method according to any one of claims 1 to 6, wherein, Modifying the tab bar includes: Insert the label into the tab bar; and Identify the tab group in the tab bar that is close to the label, wherein selecting the label causes the tab group to collapse or expand.

8. The method of any one of claims 1 to 7, further comprising: Receive selection of an organization control displayed in a browser window that includes at least one of the tabs; as well as In response to the selection of the organization control, an initiation is made to identify the tab group from the tabs.

9. The method of any one of claims 1 to 8, further comprising: Detect the organization event of the tab bar; as well as In response to the detection of the sorting event, a control is displayed in the tab bar, which, when selected, is configured to initiate the identification of the tab group from the tabs.

10. The method of claim 9, wherein, Detecting the sorting event includes determining that the suggested tab group in the tab bar has a quality score that meets a quality threshold.

11. The method according to any one of claims 1 to 10, wherein, The tab information includes the page title and resource locator associated with the tab.

12. An apparatus comprising: At least one processor; as well as A non-transitory computer-readable medium storing executable instructions that cause the at least one processor to perform operations, the operations including: Generate tab information about the tabs opened on the user's device; A tab group is identified from the tabs, the tab group comprising at least two tabs determined to be related based on the tab information; Generate labels for the tab group based on at least a portion of the tab information; and Modify the tab bar to include the label and the tab group.

13. The device as claimed in claim 12, wherein, The operation further includes: The tab group interface is initiated and displayed. The tab group interface identifies a tab group suggestion, which includes an editable field populated with the labels, information identifying the at least two tabs, and a control configured to create the tab group. In response to the selection of the control, the tab bar is modified to include the label and the tab group.

14. The device as claimed in claim 12 or 13, wherein, The operation further includes: Use the tab information to generate the embedding; The similarity score is calculated based on the embedding. Clustering subsets of the tabs based on the similarity scores; and The subset is identified as the tab group.

15. The device as claimed in any one of claims 12 to 14, wherein, The operation further includes: Generate suggestions for the language model, the suggestions including at least a portion of the tab information; and Receive a model response from the language model, the model response including the label.

16. The device as claimed in any one of claims 12 to 15, wherein, The operation further includes: Generate one or more words to describe the tab group; and Generate an icon representing the tab group.

17. The device as claimed in any one of claims 12 to 16, wherein, The operation further includes: Insert the label into the tab bar; and Identify the tab group in the tab bar that is close to the label, wherein selecting the label causes the tab group to collapse or expand.

18. A non-transitory computer-readable medium storing executable instructions that cause at least one processor to perform operations, the operations including: Generate tab information about the tabs opened on the user's device; A tab group is identified from the tabs, the tab group comprising at least two tabs determined to be related based on the tab information; Generate labels for the tab group based on at least a portion of the tab information; as well as Modify the tab bar to include the label and the tab group.

19. The non-transitory computer-readable medium of claim 18, wherein, The operation further includes: The tab group interface is initiated to display. The tab group interface identifies the tab group and the new tab group. The tab group interface identifies the new tab to be included in the tab group. The new tab was created after the tab group was created.

20. The non-transitory computer-readable medium as claimed in claim 18 or 19, wherein, The operation further includes: The tab group interface is initiated and displayed. The tab group interface identifies a tab group suggestion, which includes an editable field populated with the labels, information identifying the at least two tabs, and a control configured to create the tab group. In response to the selection of the control, the tab bar is modified to include the label and the tab group.