Label-type user interface

By automatically organizing tags in a tag-style user interface and providing application-specific controls, the problem of confusing tag navigation is solved, improving user experience and efficiency.

CN119156590APending Publication Date: 2024-12-17MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380038915.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-05-27
Filing Date
2023-04-20
Publication Date
2024-12-17

AI Technical Summary

Technical Problem

In a tagged user interface, multiple open tag navigation can easily become confusing, reducing efficiency and affecting the user experience.

Method used

By organizing tags into tag groups, automatically grouping with applications or other grouping criteria associated with tags, it provides application-specific controls for quick access and management of tags, including hidden and automatic folding features to reduce visual confusion.

Benefits of technology

Significantly improves the user experience, by reducing the visual confusion of the user interface and the use of computing resources, and improving the efficiency and concentration of users' navigation among multiple tags.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119156590A_ABST
    Figure CN119156590A_ABST
Patent Text Reader

Abstract

A data processing system implements displaying a tagged user interface comprising a plurality of tags for navigating between a plurality of electronic documents; determining that a first tag of the plurality of tags is associated with a first tag group according to a first grouping criterion; and causing a first tag group control element to be displayed proximate to the first tag, the first tag group control element providing a set of tools for accessing content associated with the first tag group and for creating a new tag associated with the first tag group.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Tabbed user interfaces enable users to have multiple documents, web pages, web applications, and / or other types of electronic files open in a browser application. The flexibility provided by tabbed interfaces often results in users opening multiple tabs. However, navigating through multiple open tabs can quickly become confusing, thereby reducing efficiency and negatively impacting the user experience. Therefore, there is a need for improved systems and methods that provide technical solutions for improving the ability to organize tabs in a tabbed interface to facilitate navigation of tabs. Summary of the invention

[0002] An example data processing system according to the present disclosure may include a processor and a machine-readable medium storing executable instructions. The instructions, when executed, cause the processor to perform operations, including displaying a tabbed user interface including multiple tags for navigating between multiple electronic documents; determining that a first tag in the multiple tags is associated with a first tag group according to a first grouping criterion; and causing a first tag group control element to be displayed near the first tag, the first tag group control element providing a tool set for accessing content associated with the first tag group and a tool set for creating a new tag associated with the first tag group.

[0003] An example method implemented in a data processing system for providing a tabbed user interface includes displaying a tabbed user interface including a plurality of tabs for navigating between a plurality of electronic documents; determining, based on a first grouping criterion, that a first tab of the plurality of tabs is associated with a first tab group; and causing a first tab group control element to be displayed proximate to the first tab, the first tab group control element providing a tool set for accessing content associated with the first tab group and for creating a new tab associated with the first tab group.

[0004] An example machine-readable medium storing instructions. The instructions, when executed, cause a processor of a programmable device to perform operations of displaying a tabbed user interface including a plurality of tabs for navigating between a plurality of electronic documents; determining that a first tab of the plurality of tabs is associated with a first tab group according to a first grouping criterion; and causing a first tab group control element to be displayed proximate to the first tab, the first tab group control element providing a tool set for accessing content associated with the first tab group and for creating a new tab associated with the first tab group.

[0005] This summary is provided to introduce a series of concepts in a simplified form, which will be further described in the following detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. In addition, the claimed subject matter is not limited to implementations that solve any or all of the shortcomings mentioned in any part of this disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] The accompanying drawings depict one or more implementations consistent with the present specification by way of example only, and not by way of limitation. In the drawings, like reference numerals refer to the same or similar elements. In addition, it should be understood that the accompanying drawings are not necessarily to scale.

[0007] Figure 1 is a diagram showing an example tabbed user interface that can be implemented in accordance with the techniques described herein.

[0008] Figure 2 is a diagram showing an example computing environment in which the techniques disclosed herein may be implemented.

[0009] Figure 3A and Figure 3B can be used, at least in part, to achieve Figure 2 An example of the architecture of client devices, application services, and recommendation services shown in .

[0010] Figure 4A , Figure 4B , Figure 4C , Figure 4D , Figure 4E , Figure 4F , Figure 4G and Figure 4H An example tabbed user interface is shown that can be implemented according to the techniques described herein.

[0011] Figure 5A , Figure 5B , Figure 5C , Figure 5D , Figure 5E , Fig. 5F and Figure 5G An example tabbed user interface is shown that can be implemented according to the techniques described herein.

[0012] Figure 6 is a diagram showing an example of information that may be exchanged between a recommendation service, an application service, and a browser application.

[0013] Figure 7 is a flow diagram of a process for providing a tabbed user interface that may be implemented by a language analysis service.

[0014] Figure 8 is a block diagram showing an example software architecture, various portions of which may be used in conjunction with the various hardware architectures described herein, which may implement any of the described features.

[0015] Fig. 9 is a block diagram showing components of an example machine configured to read instructions from a machine-readable medium and perform any of the features described herein. DETAILED DESCRIPTION

[0016] In the following detailed description, many specific details are provided by way of example to provide a thorough understanding of the relevant description. However, it should be clear that the present description can be practiced without these details. In other cases, well-known methods, processes, components and / or circuit arrangements have been described at a relatively high level without details to avoid unnecessarily obscuring aspects of the present description.

[0017] The technology for implementing a tabbed user interface is provided to simplify, among other benefits, navigation through such a tabbed user interface and improve user workflow. When processing documents in multiple tags, users may quickly become overwhelmed. This situation may be aggravated when users process documents associated with multiple applications. These technologies provide tools for organizing tags of tabbed user interfaces and for quickly accessing application-specific tools to improve the generation rate of users. Specifically, these technologies organize tags into tag groups based on applications and / or other group standards associated with tags. In some implementations, these technologies organize tags into application-specific tag groups by automatically identifying applications associated with each tag and grouping tags by application. In other implementations, other grouping criteria can be used outside of an application or in place of an application, including but not limited to subject content or content associated with a tag or a specific project, tasks associated with content, or a user's browsing history. Users do not need explicit actions. Users do not need to install browser extensions or other software for organizing tags into tag groups. In addition, users do not need to explicitly take any action, such as creating tags for a tag group or for moving tags into a tag group.

[0018] Each tab group is also associated with a tab group control element on the tabbed user interface, which provides application-specific controls. These controls facilitate the rapid opening of labels for performing various application-specific tasks, including but not limited to creating, accessing, viewing and / or modifying application-specific content. The control also includes a function for hiding labels associated with the application to reduce visual clutter on the tabbed user interface, and a function for selectively displaying hidden labels. The control also includes a function for configuring tab group properties, for example, whether the tab group will automatically fold when navigating away from the tab group. In addition, a tab group associated with the application and not associated with the currently selected label in the tabbed user interface may be automatically hidden. The term "auto-hiding" as used herein refers to an application detecting that the user has navigated away from the label associated with the tab group and actively folding the tab group. Navigating away from the tab group includes but is not limited to creating a new label or selecting a label outside the tab group.

[0019] These techniques can significantly improve the user experience by reducing visual clutter on the user interface to allow the user to focus on the tabs associated with a particular application. In addition, placing application-specific controls close to the tabs associated with the application can help users maintain their attention on a specific task and save on the use of computer processing resources by reducing the number of clicks or other user inputs required to navigate a tabbed user interface. These and other technical advantages of the techniques disclosed herein will be apparent from the discussion of the example implementations below.

[0020] Figure 1An example of a horizontal tabbed user interface 105 that can be implemented according to the technology described herein is shown. The user interface 105 can be generated by a web-enabled native application of a browser application's tag management unit or a client device. The user interface 105 includes an address bar 190, which can be used to input a uniform resource locator (URL) for a document or web-based application and / or display the URL associated with the content displayed in the currently selected tag of the tabbed user interface 105. The tags 110a and 110b in this example display the content associated with the web-based word processing application, respectively, and the tag 110b is the currently selected or "active" tag. The user interface 105 also includes a content pane 195, in which the first content associated with the active tag 110b is displayed. The user interface 105 also includes a tag group control element 115 near the tags 110a and 110b on the tag bar. The tag group control element 115 provides application-specific controls, including but not limited to creating, accessing, viewing and / or modifying application-specific content. The tab group control element 115 can be automatically added to the tabbed user interface 105 in response to one or more tabs associated with an application being opened. The following example shows how a user can interact with the tab group control element 115 to improve user workflow and experience.

[0021] Figure 2 2 is a diagram showing an example computing environment 200 in which the technology disclosed herein can be implemented for providing an improved tabbed user interface. The computing environment 200 may include a recommendation service 210. The example computing environment 200 may also include client devices 205a, 205b, and 205c (collectively referred to as client devices 205) and application services 225a and 225b (collectively referred to as application services 225). The client devices 205a, 205b, and 205c may communicate with the recommendation service 210 and / or the application service 225 via a network 220. The network 220 may be a combination of one or more public and / or private networks and may be implemented at least in part by the Internet.

[0022] exist Figure 2In the example shown in , the recommendation service 210 is implemented as a cloud-based service or service collection. The recommendation service 210 can be configured to receive a request for a recommendation for an electronic document, which can be presented on a tabbed user interface of a browser application or other web-enabled native application on client devices 205a, 205b, and 205c. The term "electronic document" as used herein can be a representation of any document or component in electronic form, which can be created by a computing device, stored in a machine-readable storage medium, and / or transmitted between computing devices via a network connection or via a machine-readable storage medium. Examples of such electronic documents include, but are not limited to, word processing documents, presentations, electronic forms, websites (e.g., SharePoint websites), digital drawings, media files, and components thereof, etc. Native applications or other web-enabled native applications can be used to access web-based content available from various sources, including but not limited to application services 225a and 225b. In some implementations, the recommendation service 210 or at least part of its functionality can be implemented by application services 225a and 225b to provide content recommendations to users of application services.

[0023] Application services 225a and 225b can provide cloud-based software and services accessible to users via client devices 205a, 205b and 205c. Application services 225a and 225b can include various types of applications, such as but not limited to communication and / or collaboration platforms, word processing applications, presentation design applications and / or other types of applications. Application services 225a and 225b can provide functions to users to consume, create, share, collaborate and / or modify various types of electronic content, such as but not limited to text content, images, presentation content, web-based content, forms and / or other structured electronic content and other types of electronic content. Application services 225a and 225b can provide functions to users to collaborate on the creation of electronic content. Application services 225a and 225b can also provide communication platforms to users to communicate as part of communication sessions via email, text messages, audio and / or video streams.

[0024] Application services 225a and 225b and / or client devices 205a, 205b, and 205c may submit contextual information to obtain content recommendations to be presented to users of client devices 205a, 205b, and 205c. Contextual information may include information identifying the user for whom recommendations are to be provided, and may include application information identifying the application for which recommendations are being requested. The following example implementation demonstrates how these recommendations are determined by recommendation service 210 and presented on the user interface of client devices 205a, 205b, and 205c.

[0025] Client devices 205a, 205b, and 205c are each computing devices that may be implemented as portable electronic devices, such as mobile phones, tablet computers, notebook computers, portable digital assistant devices, portable game consoles, and / or other such devices. Client devices 205a, 205b, and 205c may also be implemented in computing devices having other form factors, such as desktop computers, vehicle-mounted computing systems, self-service terminals, point-of-sale systems, video game consoles, and / or other types of computing devices. Although Figure 2 The example implementation shown in includes three client devices, but other implementations may include different numbers of client devices that can utilize application service 225 and / or recommendation service 210. In addition, in some implementations, the application functionality provided by application service 225 can be implemented by native applications installed on client devices 205a, 205b, and 205c, and client devices 205a, 205b, and 205c can communicate directly with recommendation service 210 through a network connection.

[0026] exist Figure 2 In the example shown in , the recommendation service 210 is shown as a cloud-based service that can be accessed via a network. However, other implementations of the recommendation service 210 can be obtained by the application service 225 or by the client devices 205a, 205b, and 205c. In other implementations, the functions of the recommendation service 210 and / or the application service 225 described herein can be executed on the client devices 205a, 205b, and 205c.

[0027] Figure 3A 2 is a diagram showing additional features of the recommendation service 210, the client device 205, and the application service 225. The recommendation service 210 may include a request processing unit 305, a recently accessed document unit 310, a shared document unit 315, a document recommendation unit 320, one or more language processing models 325, and an authentication unit 335.

[0028] The request processing unit 305 can be configured to receive requests for electronic documents to be recommended to a user of the client device 205. The recommendations can be presented to a web browser, such as the browser application 355, or presented in a web-enabled native application, such as the native application 350, which can provide functionality to the user to access, modify, create, and / or otherwise consume multiple electronic documents and / or other content in a tabbed user interface. The request processing unit 305 can provide various types of recommendations to the user. The request processing unit 305 can obtain recommendations from the recently accessed documents unit 310, the shared documents unit 315, and the document recommendation unit 320.

[0029] The recently accessed documents unit 310 can be configured to suggest one or more documents that the user recently accessed. In some implementations, the recently accessed documents unit 310 can obtain recently accessed documents associated with a particular application. The request received by the request processing unit 305 can identify the particular application for which the recently accessed file is requested. An application service, such as application service 225, can maintain a list of documents that the user recently accessed. The application service can implement an application programming interface (API) that provides functionality for querying data associated with the application service, including functionality for querying recently accessed documents. The recently accessed documents unit 310 can query the API associated with the application service for which the request was received. In some implementations, the API can be provided by Microsoft The recently accessed document unit 310 may obtain a list of documents that are responsive to the query and provide the documents to the request processing unit 305 to be provided to the client device 205 for presentation to the user. The recently accessed document unit 310 may be configured to pre-process the list of documents before providing the documents to the request processing unit 305. Such pre-processing may include, but is not limited to, discarding documents that have been recently accessed more than a threshold and / or sorting the documents based on how recently the documents were last accessed.

[0030] In some implementations, the recently accessed documents unit 310 can utilize the user's browser history when determining recently accessed documents. The browser history can be used in addition to or instead of querying the application service 225 for recently accessed documents.

[0031] The shared document unit 315 may be configured to suggest one or more electronic documents that have been shared with or by a user. The shared document unit 315 may query an API provided by the application service 225 and / or other such application services. The shared document unit 315 may be configured to limit queries for shared documents to documents of a type that can be created and / or consumed using an application for which a document recommendation has been requested.

[0032] The document recommendation unit 320 may be configured to provide document recommendations that have not been previously accessed by the user and / or shared with each other. The document recommendation unit 320 may rely on one or more recommendation models 325 to predict electronic content that may be relevant to the user of the client device 205. One or more recommendation models 325 may be configured to receive contextual information identifying the user and / or application for which the recommendation is being requested as input and may output a list of documents relevant to the user. One or more recommendation models 325 may be trained to determine that a document may be relevant based on several factors, including but not limited to the subject content of the document recently contributed and / or consumed by the user, the type of work or role associated with the user, one or more professional fields associated with the user, one or more organizations to which the user belongs or employs the user, and / or other factors indicating that a particular document may be relevant to the user. In an enterprise environment, documents may be selected from a corpus of documents created by others within the enterprise. In other implementations, documents may be extracted from a corpus of publicly available documents. Documents may be limited to one or more specific content types that may be created and / or consumed by applications for which document recommendations have been requested.

[0033] In some implementations, the document recommendation unit 320 is configured to obtain relevant document information from a search history associated with the user. The user's recent searches can be used to identify subject matter that the user is interested in. The document recommendation unit 320 can provide the search history information to one or more recommendation models 325 as input for identifying relevant documents. Documents can be identified from a corpus of enterprise documents, from available documents from one or more third-party content sources (available via the Internet), or from one or more additional sources.

[0034] The application service 225 may include an application service unit 360 and / or an authentication unit 335. The application service unit 360 may be configured to provide functionality to users to consume, create, share, collaborate, and / or modify various types of electronic content. The application service unit 360 may provide a web-based interface to enable users to access at least a portion of the services provided by the application service 225. In other implementations, users may access the services provided by the application service 225 via one or more native applications 350. The application service unit 360 may in turn obtain various readability services provided by the recommendation service 210.

[0035] The authentication unit 335 may provide functionality for verifying whether a user is allowed to access services and / or documents provided by the application service 225 and / or the recommendation service 210. The authentication unit 335 may provide functionality for receiving authentication credentials for a user from its respective client device 205. The authentication unit 335 may be configured to verify that the authentication credentials are valid, and to grant the user access to services and / or documents provided by the application service 225 and / or the recommendation service 210 in response to the authentication credentials being valid.

[0036] The client device 205 may include one or more native applications 350 and / or browser applications 355. One or more native applications 350 may include applications developed for use on the client device 205 and / or applications that can communicate with application services 225a and 225b to enable users to consume, create, share, collaborate and / or modify electronic content. The browser application 355 may be an application for accessing and viewing web-based content. Application services 225a and 225b may provide web applications that enable users to consume, create, share, collaborate and / or modify content. Users of the client device 205 may access the web application and present a user interface for interacting with the application services 225a and 225b in the browser application 355. Application services 225a and 225b and / or recommendation service 210 may simultaneously support one or more web-enabled native applications 350 and one or more web applications 290, and users may select the method that best suits their needs. The recommendation service 210 may also provide support to one or more native applications 350 , browser applications 355 , or both to provide functionality to users of the client devices 205 to obtain services provided by the recommendation service 210 .

[0037] Figure 3B 350 is a diagram showing an example implementation of a browser application 355 of a client device 205. The browser application 355 may include a tag management unit 370, a tag group determination unit 375, a document recommendation unit 380, and an identity authentication unit 385. The native application 350 may also implement Figure 3B Elements similar to those shown in .

[0038] The label management unit 370 can be configured to manage the application-specific label grouping function described herein. The label management unit 370 can obtain instructions on how to group labels of the label user interface from the label grouping determination unit 375 based on the content being accessed by the user. Then, the label management unit 370 can determine whether there are any other labels associated with the group indicated by the label grouping determination unit 375 presented by the label user interface and / or whether the label group control element for the application-specific grouping is currently displayed. The label group control element is configured to provide controls for quickly and effectively consuming and / or creating content related to the application. The label group control element can significantly improve the user experience in the label application environment by providing a function for automatically organizing labels associated with the same application. The label group control element can also provide controls for creating new application-specific content and / or for accessing existing application-specific content. The label management unit 370 can automatically organize the labels of multiple applications being accessed by the label user interface into a label group, and the label group control element can be provided to each application in these applications. The tab management unit 370 can be configured to cause the browser application 355 or the web-enabled native application 350 to present application-specific tab control elements proximate to tabs associated with the application to simplify navigation through the tabbed user interface by providing application-associated functionality proximate to the tabs associated with the application. 4A to 4H and Figure 5A-5G Examples of tabbed user interfaces and application-specific control elements are provided in .

[0039] In some implementations, the tab management unit 370 is configured to prompt the user before grouping tabs. For example, the tab management unit 370 may be configured to present a query to the user on a tabbed user interface: "We noticed that you have several tabs open associated with application X? Should we group these tabs for you?". If the user responds affirmatively that the tabs should be grouped, then the tab management unit 370 groups the tabs into tab groups. In some implementations, the tab management unit 370 will prompt the user to approve or disapprove the grouping of tabs for each application encountered in a particular browsing session. The tab management unit 370 may store information identifying applications that the user has approved for automatic grouping in a user profile or other persistent data store. The tab management unit 370 may access this stored information across sessions using the browser application 355 or the web-enabled native application 350.

[0040] The tag grouping determination unit 375 is configured to determine the grouping for the tag based on the application associated with the content of the tag and / or other grouping criteria, and is configured to provide an indication of the grouping to the tag management unit 370. In some implementations, the tag grouping determination unit 375 is configured to organize the tags into application-specific tag groups by automatically identifying the application associated with each tag and grouping the tags by application. In other implementations, the tag grouping determination unit 375 uses other grouping criteria that can be used in addition to or in place of the application, including but not limited to the subject matter or content associated with the tag or specific projects or tasks associated with the content. In implementations where criteria other than applications are used to determine tag groupings, tag groupings may include content from multiple applications.

[0041] In an implementation where tags are grouped by application, the tag grouping determination unit 375 is configured to determine an application associated with content that has been accessed via a tag of a tabbed user interface provided by a browser application 355 or a web-enabled native application 350, and to provide an indication that the tag will be added to an application-specific tag group to the tag management unit 370. The tag grouping determination unit 375 can be configured to identify an application based on a URL. A user of the client device 205 can enter a URL in an address bar of a browser application 355 or a web-enabled native application 350. The user can also click on or otherwise activate a link in the content being displayed in the tag of the tabbed user interface. In some implementations, the link can be displayed in another application or document, and the user can click on or otherwise activate the link so that the browser application 355 displays the content associated with the URL in the tag. The URL can be associated with a specific web-based application, or can be associated with an electronic document that is associated with a web-based application. The tag management unit 370 can be configured to analyze the URL to determine the application associated with the URL. The tag grouping determination unit 375 may also be configured to analyze web-based content associated with a URL to determine an application associated with the URL. In some implementations, the web-based application may be configured to include a tag that identifies the web-based application in a markup language provided by the application service 225 to the client device 205 for presenting the web-based application on the browser application 355. In other implementations, the tag grouping determination unit 375 is configured to analyze the content of the web page or other content displayed in the content pane 195 using one or more machine learning models that are trained to analyze the content and predict the application or content type to recommend to the tag management unit 370 for grouping tags.

[0042] In some implementations, where tags are grouped by application, the tag grouping determination unit 375 is configured to identify the source application from which content has been accessed for determining a tag group for a tag. For example, a user may receive a link to a file or a file attached to an email. The user may activate the link or attachment to the file to view the link or attachment in a tag of the tabbed user interface. In this case, the tag grouping determination unit 375 may indicate that the application is the user's email program, and the tag management unit 370 may present the file in the email program group. Although this example is related to an email application, the tag grouping determination unit 375 may be implemented for other types of applications or content sources, such as, but not limited to, messaging applications, collaboration platforms, or websites (e.g., SharePoint). This approach may improve user workflow by grouping together electronic documents that the user is working on, even if the documents are not associated with the same application or extension as in the previous example.

[0043] In some implementations, the tag grouping determination unit 375 is configured to group tags based on the user's browsing history. For example, the application determination unit 273 may indicate that all tags originating from a particular web page should be grouped into a single tag group. In such an implementation, the tag grouping determination unit 375 may provide the name or title of the web page to the tag management unit 370, and the tag management unit 370 may create a new tag group based on the name or title of the web page.

[0044] The tag grouping determination unit 375 is configured to group tags associated with a particular project or task in some implementations. In such an implementation, the tag grouping determination unit 375 can utilize a machine learning model that is trained to analyze the user's activities within the browser application and recognize patterns in use to predict that a particular tag is associated with a particular project or task. The machine learning model can analyze the user's browsing history when predicting whether a particular tag is associated with a particular project or task. The tag grouping determination unit 375 can provide the tag management unit 370 with the name of the project or task for the tag group, and the tag management unit 370 can create a new tag group based on the name.

[0045] In some implementations, the tag grouping determination unit 375 is configured to determine the application associated with the content that has been accessed via the tag of the tabbed user interface based on the file type associated with the content or extension to the browser application 355 or the web-enabled native application 350. For example, a tag can be opened to display a scalable vector graphics (SVG) file. In this example, the electronic document being opened in the tag is not associated with a specific web-based application. In this implementation, the tag grouping determination unit 375 can identify the SVG file as being associated with the SVG extension, and the tag management unit 370 can group the tags associated with the extension together. In another non-limiting example, a tag can be opened to display a portable document format (PDF) file, which can be displayed in the tag of the browser using a browser extension that is configured to support the presentation of PDF documents in the tag. Other types of documents can be associated with other types of extensions, and these documents can also be identified by the tag grouping determination unit 375 and grouped together by the tag management unit 370.

[0046] The browser application 355 and / or the web-enabled native application 350 provide a configuration user interface that enables the user to configure how the label grouping determination unit 375 groups labels within the label user interface in some implementations. The configuration user interface enables the user to turn on or off automatic grouping, turn on or off the automatic collapse of the currently inactive label group, and / or other aspects of the functionality associated with automatic label grouping. The configuration user interface provides a control for selectively enabling or disabling the automatic grouping of labels for a particular type of grouping criteria. In a non-limiting example, the user can enable application-specific grouping, but disable grouping by browsing history and by task or project. In addition, the configuration user interface can allow the user to sort the order of the various grouping criteria applied by the label grouping determination unit 375. In another non-limiting example, the user can determine that grouping by project or task is more important than sorting by application. The label grouping determination unit 375 will first try to determine whether the label is associated with a specific project or task and group the labels accordingly. If the label grouping determination unit 375 cannot determine the project or task, the label grouping determination unit 375 then groups the labels by application. Other possible configurations may depend on the grouping criteria options enabled by the user and how those grouping criteria are ordered by the user.

[0047] The document recommendation unit 380 may be configured to send a request to the application service 225 and / or the recommendation service 210 for content recommendations that may be presented to the user in the application-specific tab group user interface element. The application service 225 may route the request for content recommendations to the recommendation service 210 for processing, and may also route the recommendations provided by the recommendation service 210 to the client device 205. As discussed above with respect to the recommendation service 210, the recommendation service 210 may provide various types of recommendations, including, but not limited to, recently accessed documents, documents shared with the user, and / or other document recommendations.

[0048] The authentication unit 385 may provide functionality for verifying whether a user is permitted to access services and / or documents provided by the application service 225 and / or the recommendation service 210. The authentication unit 335 may provide functionality for receiving authentication credentials for a user from the user's respective client device 205. The authentication unit 335 may be configured to verify that the authentication credentials are valid, and to permit the user to access services and / or documents provided by the application service 225 and / or the recommendation service 210 in response to the authentication credentials being valid. In some implementations, the user may be authenticated by the application service 225 and the authentication unit 385 may obtain an authentication token or other functionality for authenticating the user with the application service 225 and / or the recommendation service 210.

[0049] Figure 4A , Figure 4B , Figure 4C , Figure 4D , Figure 4E , Figure 4F , Figure 4G and Figure 4H An example of a horizontal tabbed user interface 405 that can be implemented according to the techniques described herein is shown. Figure 4A , Figure 4B , Figure 4C , Figure 4D , Figure 4E , Figure 4F , Figure 4G and Figure 4H In the example shown, the tags are grouped according to application, but other grouping criteria may be used in other implementations. Figure 4A , Figure 4B , Figure 4C , Figure 4D , Figure 4E , Figure 4F , Figure 4G and Figure 4H The example user interface 405 shown in Figure 1. The user interface 405 may be generated by the tab management unit 370 of the browser application 355 of the client device 205. The user interface 405 may include an address bar 490 that may be used to enter a URL for a document or web-based application and / or display a URL associated with content being displayed in the currently selected tab 410 b of the tabbed user interface 405. The user interface 405 also includes a content pane 495 in which the first content associated with the active tab 410 b is displayed. The second tab 410 a associated with the second content is also displayed in the content pane 495. Figure 4A The second content is not visible in the tabbed user interface 405 because the second tab 410a is not currently an active tab. The user interface 405 also includes a new tab control 420, which, when activated, can be used to cause the browser application 355 or the web-enabled native application 350 to display a new blank tab.

[0050] Figure 4B An example of user interface 405 is shown in which a tab group control element 415 has been added. In some implementations, user interface 405 displays tab group control element 415 in response to one or more tabs associated with an application being opened. In other implementations, user interface 405 displays tab group control element 415 in response to multiple tabs associated with an application being opened. Tab management unit 370 may determine that a new tab has been opened or that the content displayed in an open tab has changed, and request an indication of an application associated with the tab from tab grouping determination unit 375.

[0051] The label group control element 415 can be added by the label management unit 370. The label group control element 415 is grouped together with the label 410a and 410b that are used to access the document using the same web-based word processing program provided by the application service 225a or 225b. The label management unit 370 can determine that the label 410a and 410b are associated with the same web-based application and the label is grouped together on the label user interface. The label management unit 370 can also be configured to make the label group control element 415 be displayed as near the label group. The non-restrictive technical benefit of the method is that the user experience can be improved by simplifying the navigation of the label of the label type user interface 405 by grouping the label associated with the same web-based application and providing the application-specific tool of the label group on the tab bar near the label type user interface 405 in the label group control element 415. The method places controls associated with each application next to the tab group associated with the application so that the user does not need to locate and navigate through multiple menus associated with the web-based application to perform actions provided by the application-specific tools in the tab group control element 415. Thus, the tab group control element 415 provides web-based applications with improved human-computer interaction. Figure 4B The example shown in FIG. 4 includes two tabs, but the tab group control element 415 may be connected to Figure 4B The single label or more than two labels shown in are associated.

[0052] The label group control element 415 can include an icon, logo or other representation of the application associated with the label group, so that the user can easily distinguish that the label group control element 415 is associated with a specific web-based application. Other implementations can include text descriptions and / or utilize the color scheme associated with the application, which is in addition to or in place of an icon to associate the label group control element 415. The label group control element 415 can also include a new label control 450 that is similar to the new label control 420 for opening a new label. The label group control element 415 is configured to automatically open a new label specific to web-based application and automatically add a label to the label group. Automatically as used herein, refer to the label grouping (for example, not requiring manual user action) performed by the label management unit 370 in response to the new label being opened. The label group control element 415 can make the default start page for application be loaded in the newly created label. In addition, the label group control element 415 can make the new electronic document be opened in the newly created label, rather than navigating to the default start page. In a non-limiting example, if the application associated with the tab group control element 415 is a word processing application, the tab group control element 415 may cause a new tab to be opened presenting a new word processing document.

[0053] Figure 4CAn example of user interface 405 is shown in which a user has activated tab group control element 415. The user may activate tab group control element 415 by clicking or touching tab group control element 415, hovering a pointer or cursor over tab group control element 415, and / or otherwise providing input for activating tab group control element 415. In some implementations, the user may activate tab control element 415 using a voice command. For example, the user may speak such a command: "New [APP] tab?", where "[APP]" represents the name of the application for which the new tab will be opened.

[0054] exist Figure 4C In the example shown in , activating the tag group control element 415 causes the tag group control pane 430 to be displayed on the user interface 405. The tag group control pane 430 in this example presents a list of files 435 that have been recently accessed, a list of files that have been shared with the user by other users 440, and a list of file recommendations 445 that can be obtained from the recommendation service 210. The files presented on the tag group control pane 465 are files that have been created using a word processing application, or files that a word processing application can be used to view and / or modify files for. The user can click or otherwise select a file to open the file in a new tag on the user interface 405. After opening, the new tag is grouped together with tags 410a and 410b because all tags are associated with the word processing application.

[0055] Figure 4D An example of an alternative configuration of user interface 405 is shown in which tab group control element 415 does not include new tab control 450, and new tab control 450 is instead included on tab group control pane 430. Other configurations of tab group control pane 430 and tab group control element 415 are also possible.

[0056] Figure 4EAn example of user interface 405 is shown, wherein a label 460 for a second application has been opened. Label 460 is associated with a demonstration application provided by application service 225a or application service 225b. The label management unit 370 of the browser application 355 of client device 205 has identified the application and added a label group control element 455 associated with the demonstration application. The label group control element 455 has been placed near the label 460 associated with the demonstration application. The label group control element 455 includes an icon representing the demonstration application. Other implementations may include text descriptions and / or utilize a color scheme associated with the demonstration application in addition to or in place of an icon. The label group control element 455 includes a new label control 485 similar to the new label control 450 provided by the label group control element 415. The new label control 485 may be used to open a new label associated with the demonstration application on the tabbed user interface 405. The new label will be grouped together with the label 460, which is associated with the demonstration application.

[0057] Figure 4F An example of user interface 405 is shown in which a user has activated tab group control element 455. The user may activate tab group control element 455 by clicking or touching tab group control element 455, hovering a pointer or cursor over tab group control element 455, and / or otherwise activating tab group control element 455. The user may activate tab group control element 455 using a voice command.

[0058] In this example, activating the tag group control element 455 causes the tag group control pane 465 to be displayed on the user interface 405. The tag group control pane 465 presents a recently accessed file list 470, a file list shared with the user by other users 475, and a file recommendation list 480 that can be obtained from the recommendation service 210. The file presented on the tag group control pane 465 is a file created using the demonstration application, or a file that the demonstration application can be used to view and / or modify a file. The user can click or otherwise select a file to open the file in a new label on the user interface 405. The new label will be grouped together with a label 460, which is associated with the demonstration application.

[0059] Figure 4G An example of an alternative configuration of user interface 405 is shown in which tab group control element 455 does not include new tab control 485, and new tab control 485 is instead included on tab group control pane 465. Other configurations of tab group control pane 465 and tab group control element 460 are also possible.

[0060] Figure 4HAn example of user interface 405 is shown, wherein label management unit 370 is configured to hide labels associated with currently inactive label groups, so as to reduce visual clutter on screen and make user interface 405 easier for user navigation. The method can also improve user productivity by providing a simple entry point for starting a new web-based application in a label group from the label bar of user interface 405. Therefore, label management unit 370 provides improved human-computer interaction with user interface 405. In this example, label 460 associated with demonstration application has been selected and is active. The content associated with label 460 is visible in content pane 495. Label management unit 370 can automatically fold labels associated with currently inactive label groups. In a non-limiting example, a user can navigate away from a label group by selecting a label that is not associated with the currently active label group or creating a new label that is not associated with the currently active label group. Then, label management unit 370 can classify the previously currently active label group as inactive and hide the label group. Alternatively, tab management unit 370 may be configured to collapse a tab group in response to a user clicking or otherwise activating a tab group control element associated with the tab group.

[0061] Label management unit 370 can be configured to display hidden labels in response to user activation of the label group control element associated with the label group that the user wants to expand.In some implementations, label management unit 370 can be configured to, if the user hovers a pointer or cursor over the label group control element rather than the group control pane, then temporarily display hidden labels.If the user clicks label group control element 415, hidden labels 410a and 410b will not be hidden.In this implementation, the existence of label group control element 415 indicates the existence of hidden labels 410a and 415b.If labels 410a and 415b are closed and no longer opened but hidden, label group control element 415 will no longer be displayed.Alternatively, if the user hovers a pointer or cursor over label group control element 415 when the label group is folded, then when the pointer or cursor continues to hover over the label group control element 415, hidden labels 410a and 410b will be temporarily displayed. A non-limiting technical benefit of this approach is that hiding groups of tabs that a user is not actively using reduces the visual clutter of numerous tabs being simultaneously displayed on the tabbed user interface 405 while enabling the user to quickly view and / or access the hidden tabs as needed.

[0062] Figure 5A , Figure 5B , Figure 5C , Figure 5D , Figure 5E , Fig. 5F and Figure 5GAn example of a vertical tabbed user interface 505 that can be implemented according to the techniques described herein is shown. The user interface includes a content pane 595 similar to content pane 495 and a 4A to 4H The address bar 590 of the address bar 490 shown in FIG. Figure 5A , Figure 5B , Figure 5C , Figure 5D , Figure 5E , Fig. 5F and Figure 5G In the example shown in , tags are grouped according to application, but other grouping criteria may be used in other implementations.

[0063] Figure 5A A vertical configuration for the tabs is shown instead of a horizontal configuration, where tabs 510a and 510b are vertically aligned along the edge of the user interface 505. Tabs 510a and 510b are similar to Figure 4A 4. Labels 410a and 410b are shown in FIG. Figure 5B Displays something like Figure 4B 4. The tab group control element 515 of the tab group control element 415 shown in FIG. The tab group control element 515 is presented adjacent to the tabs 510a and 510b associated with the tab group control element 515. Figure 5B In the example implementation shown in , tab group control element 515 is shown positioned above tabs 510a and 510b, but tab group control element 515 may be placed below the tabs of the group or in another position proximate to the tabs in the group.

[0064] Figure 5C An example of user interface 505 is shown, wherein the user has activated a tag group control element 515. The tag group control element 515 can be similar to the function of the tag group control element 515, and when activated, a tag group control pane 530 is displayed. The user can activate the tag group control element 515 by clicking or touching the tag group control element 515, hovering a pointer or cursor over the tag group control element 515, issuing a voice command and / or otherwise providing an input for activating the tag group control element 515. The tag group control pane 530 can present a recently accessed file list 535, a file list shared with the user by other users 540, and a file recommendation list 545 that can be obtained from the recommendation service 210. The file presented on the tag group control pane 530 is a file created using a word processing application, or a word processing application can be used to view and / or modify a file for it. The user can click or otherwise select a file to open the file in a new label on the user interface 405. The new label will be grouped together with labels 510a and 510b, and these two labels are associated with the word processing application.

[0065] Figure 5D An example of an alternative configuration of user interface 505 is shown in which tab group control element 515 does not include new tab control 450, and new tab control 450 is instead included on tab group control pane 530. Other configurations of tab group control pane 530 and tab group control element 415 are also possible.

[0066] Figure 5E An example of user interface 505 is shown, wherein the second application has been opened. Label 560 is associated with the demonstration application provided by application service 225a or application service 225b. The label management unit 370 of the browser application 355 of client device 205 has identified the application and added the label group control element 555 associated with the demonstration application. The label group control element 555 has been placed near the label 460 associated with the demonstration application. The label group control element 555 includes an icon representing the demonstration application. Other implementations may include text descriptions and / or utilize a color scheme associated with the demonstration application in addition to or in place of an icon. The label group control element 555 includes a new label control 585 that is similar to a new label control 485. The new label control 485 can be used to open a new label associated with the demonstration application on the user interface 405. The new label will be grouped together with the label 560, and the label 560 is associated with the demonstration application.

[0067] The tabs 510a and 510b associated with the tab group control element 515 have also been hidden. Figure 5E . By clicking or touching the tab group control element 515, hovering a pointer or cursor over the tab group control element 515, issuing a voice command and / or providing an input for activating the tab group control element 515 in a manner similar to the tab group control element 415 discussed in the above example, the tabs 510a and 510b can be displayed. The tab management unit 370 can automatically hide the currently inactive tab groups in the vertical tabbed user interface 505 in a manner similar to the tabs displayed in the horizontal tabbed user interface 405.

[0068] Fig. 5FThe example of user interface 505 is shown, wherein the user has activated the tag group control element 555. The user can activate the tag group control element 555 by clicking the tag group control element 555, hovering a pointer or cursor on the tag group control element 555 and / or activating the tag group control element 555 in other ways. In this example, the activation tag group control element 555 makes the tag group control pane 565 be displayed on the user interface 505. The tag group control pane 565 presents the file list 570 that has been accessed recently, the file list that has been shared with the user by other users 575, and the file recommendation list 580 that can be obtained from the recommendation service 210. The file presented on the tag group control pane 565 is the file that creates using the demonstration application, or the demonstration application can be used to view and / or modify the file for it. The user can click or otherwise select a file so that the file is opened in the new label on the user interface 505. The new label will be grouped together with the label 560, and the label 560 is associated with the demonstration application.

[0069] Figure 5G An example of an alternative configuration of user interface 505 is shown in which tab group control element 555 does not include new tab control 585, and new tab control 585 is instead included on tab group control pane 565. Other configurations of tab group control pane 565 and tab group control element 560 are also possible.

[0070] Figure 6 6 is a diagram showing an example of information that can be exchanged between recommendation service 210, application service 225, and browser application 355 to provide recommendations to be presented to a user on a tab group control pane of user interface 405 or 505. Browser application 355 can provide context information 625 to application service 225 in response to a user activating a tab group control element on user interface 405 or 505. Context information 625 can include information identifying a user for whom recommendations are to be provided, and can include application information identifying an application for which recommendations are being requested. Context information 625 can include authentication credentials, such as, but not limited to, an authentication token, which can be used to authenticate a user of browser application 355 using application service 225 and / or recommendation service 210. Application service 225 can forward context information 630 to recommendation service 210. Recommendation service 210 can provide context information 630 to request processing unit 305 of recommendation service 210. The browser application 355 may include a request for a recommendation with context information 625 , and the application service 225 may forward the request with context information 630 to the recommendation service 210 .

[0071] The recommendation service 210 can analyze the context information 630 and the request information (if provided) to generate recommendation information 635. The recommendation information 635 can include one or more types of document suggestions as discussed in the previous examples. The application service 225 can receive the recommendation information 635 and send the recommendation information 640 to the browser application 355 on the client device 205. In some implementations, the browser application 355 can communicate directly with the recommendation service 210 through a network connection, rather than having a web browser such as a web browser. Figure 6 The application service 225 acts as an intermediary as in the example implementation shown in FIG.

[0072] Figure 7 2 is an example flow chart of an example process 700 for providing a tabbed user interface that can be implemented by a browser application 355 or a native application 350 of a client device 205. The process 700 may include an operation 710 of displaying a tabbed user interface that includes a plurality of tabs for navigating between a plurality of electronic documents. The tabbed user interface may be presented by a browser application 355 or a native application 350 of a client device 205 to enable a user to access, create, and / or otherwise consume electronic content. The electronic content may be accessed via one or more web-based applications provided by application services 225a and / or 225b.

[0073] Process 700 can include determining that a first tab in the plurality of tabs is associated with a first tab group according to a first grouping criterion 720. As discussed in the previous example, tab grouping determination unit 375 of browser application 355 can determine a web-based application associated with a particular tab of a tabbed user interface.

[0074] Process 700 may include an operation 730 of causing a first tab group control element to be displayed adjacent to the first tab. The first tab group control element provides a tool set for accessing content associated with the first tab group and for creating a new tab associated with the first tab group. The first tab group control element may provide a tool set for accessing content associated with the first application and for creating a new tab associated with the first application. 4A to 4H and FIG. 5A to FIG. 5G As shown in , tabbed user interfaces 305 and 405 can display a tab group control element near a label associated with a first application. The tab group control element is displayed together with the label in the tabbed user interface. The tab group control element is placed near the label associated with the first tab group and provides a convenient tool for creating a new label associated with one or more applications associated with the tab group, for accessing content associated with one or more applications, and / or for performing other actions associated with one or more applications.

[0075] and Figures 1 to 7 Detailed examples of relatedly described systems, devices, and techniques are presented herein for illustration of the disclosure and its benefits. The examples used should not be construed as limitations on the logical process embodiments of the disclosure, nor should variations of the user interface methods from those described herein be considered outside the scope of the disclosure. It should be understood that references to displaying or presenting an item (for example, but not limited to, presenting an image on a display device, presenting audio via one or more speakers, and / or a vibrating device) include issuing instructions, commands, and / or signals that cause or are reasonably expected to cause a device or system to display or present the item. In some embodiments, Figures 1 to 7 The various features described in the invention are implemented in respective modules, which may also be referred to as and / or include logic, components, units and / or mechanisms. A module may be composed of a software module (eg, code embedded in a machine-readable medium) or a hardware module.

[0076] In some examples, the hardware module can be implemented mechanically, electronically, or in any suitable combination thereof. For example, the hardware module may include a dedicated circuit device or logic configured to perform certain operations. For example, the hardware module may include a dedicated processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). The hardware module may also include a programmable logic or circuit device temporarily configured by software to perform certain operations, and a portion of machine-readable medium data and / or instructions for such configuration may be included. For example, the hardware module may include software contained in a programmable processor configured to execute a set of software instructions. It will be understood that the decision to mechanically implement the hardware module in a dedicated and permanently configured circuit device, or in a temporarily configured circuit device (e.g., configured by software) may be driven by cost, time, support, and engineering considerations.

[0077] Therefore, the phrase "hardware module" should be understood to include a tangible entity that can perform certain operations and can be configured or arranged in a certain physical manner, which is a physically constructed, permanently configured (e.g., hard-wired) and / or temporarily configured (e.g., programmed) entity to operate in a certain way or perform certain operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering the example in which the hardware module is temporarily configured (e.g., programmed), each hardware module in the hardware module does not need to be configured or instantiated over time at any one instance. For example, a programmable processor can be configured as different special-purpose processors (e.g., including different hardware modules) at different times, wherein the hardware module includes a programmable processor configured by software to become a special-purpose processor. The software can configure one or more processors accordingly, for example, to constitute a specific hardware module at one time instance, and to constitute different hardware modules at different time instances. A hardware module implemented using one or more processors can be referred to as "processor-implemented" or "computer-implemented".

[0078] A hardware module can provide information to other hardware modules, and receive information from other hardware modules. Therefore, the described hardware modules can be considered as communicatively coupled. In the case where multiple hardware modules exist simultaneously, communication can be achieved by signal transmission (e.g., through appropriate circuits and buses) between or in the middle of two or more hardware modules in the hardware module. In an embodiment where multiple hardware modules are configured or instantiated at different times, communication between these hardware modules can be achieved, such as by the storage and retrieval of information in a memory device accessed by multiple hardware modules. For example, a hardware module can perform an operation and store an output in a memory device, and then another hardware module can access the memory device to retrieve and process the stored output.

[0079] In some examples, at least some of the operations of the method can be performed by one or more processors or modules implemented by the processors. In addition, one or more processors can also operate in a "cloud computing" environment or as a "software as a service" (SaaS) to support the execution of related operations. For example, at least some of the operations in the operation can be performed by multiple computers (as an example of a machine including a processor) and / or performed between the multiple computers, and these operations are accessible via a network (e.g., the Internet) and / or via one or more software interfaces (e.g., application programming interface (API)). The execution of some operations in the operation can be distributed between processors, which not only reside in a single machine, but also are deployed across several machines. The processor or the module implemented by the processor can be in a single geographical location (e.g., in a home or office environment, or in a server cluster), or can be distributed across multiple geographical locations.

[0080] Figure 8 8 is a block diagram 800 illustrating an example software architecture 802, various portions of which may be used in conjunction with the various hardware architectures described herein, which may implement any of the features described above. Figure 8 is a non-limiting example of a software architecture, and it should be understood that many other architectures may be implemented to facilitate the functionality described herein. Software architecture 802 may be implemented in, for example, Fig. 9 900, which includes, among other things, a processor 910, a memory 930, and input / output (I / O) components 950. Representative hardware layers 804 are shown and may represent, for example, Fig. 9 The machine 900 of the embodiment of the present invention. The representative hardware layer 804 includes a processing unit 806 and associated executable instructions 808. The executable instructions 808 represent executable instructions of the software architecture 802, including implementations of the methods, modules, etc. described herein. The hardware layer 804 also includes a memory / storage device 810, which also includes executable instructions 808 and accompanying data. The hardware layer 804 may also include other hardware modules 812. The instructions 808 stored by the processing unit 806 may be part of the instructions 808 stored by the memory / storage device 810.

[0081] The example software architecture 802 can be conceptualized as layers, each providing various functions. For example, the software architecture 802 may include layers and components, such as an operating system (OS) 814, a library 816, a framework 818, an application 820, and a presentation layer 844. Operationally, the application 820 and / or other components within a layer may invoke API calls 824 to other layers and receive corresponding results 826. The layers shown are representative in nature, and other software architectures may include additional or different layers. For example, some mobile or dedicated operating systems may not provide a framework / middleware 818.

[0082] OS 814 can manage hardware resources and provide public services. For example, OS 814 can include, for example, kernel 828, service 830 and driver 832. Kernel 828 can serve as an abstraction layer between hardware layer 804 and other software layers. For example, kernel 828 can be responsible for memory management, processor management (e.g., scheduling), component management, network, security settings, etc. Service 830 can provide other public services to other software layers. Driver 832 can be responsible for controlling the underlying hardware layer 804 or interface with it. For example, driver 832 can include display driver, camera driver, memory / storage device driver, peripheral device driver (e.g., via universal serial bus (USB)), network and / or wireless communication driver, audio driver, etc., which depends on hardware and / or software configuration.

[0083] The library 816 can provide a common infrastructure that can be used by the application 820 and / or other components and / or layers. The library 816 generally provides functions for use by other software modules to perform tasks, rather than directly interacting with the OS 814. The library 816 may include a system library 834 (e.g., a C standard library), which may provide functions such as memory allocation, string operations, and file operations. In addition, the library 816 may include an API library 836, such as a media library (e.g., supporting the presentation and operation of image, sound, and / or video data formats), a graphics library (e.g., an OpenGL library for presenting 2D and 3D graphics on a display), a database library (e.g., SQLite or other related database functions), and a web library (e.g., WebKit, which may provide web browsing functions). The library 816 may also include a variety of other libraries 838 to provide many functions to the application 820 and other software modules.

[0084] Framework 818 (sometimes also referred to as middleware) provides a higher level common infrastructure that can be used by applications 820 and / or other software modules. For example, framework 818 can provide various graphical user interface (GUI) functions, high-level resource management, or high-level location services. Framework 818 can provide a wide range of other APIs to applications 820 and / or other software modules.

[0085] Applications 820 include built-in applications 840 and / or third-party applications 842. Examples of built-in applications 840 may include, but are not limited to, contact applications, browser applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 842 may include any application developed by an entity other than a specific platform provider. Applications 820 may use the functionality available via OS 814, library 816, framework 818, and presentation layer 844 to create a user interface that interacts with a user.

[0086] Some software architectures use virtual machines, as shown by virtual machine 848. Virtual machine 848 provides an execution environment in which applications / modules can execute as if they were executing on a hardware machine (e.g., Fig. 9 The virtual machine 848 may be hosted by a host OS (e.g., OS 814) or a hypervisor, and may have a virtual machine monitor 846 that manages the operation of the virtual machine 848 and interoperates with the host operating system. A software architecture that may be different from the software architecture 802 external to the virtual machine is executed within the virtual machine 848 (e.g., operating system 850, library 852, framework 854, application 856, and / or presentation layer 858).

[0087] Fig. 9 900 is a block diagram showing components of an example machine 900 configured to read instructions from a machine-readable medium (e.g., a machine-readable storage medium) and to perform any of the features described herein. The example machine 900 is in the form of a computer system in which instructions 916 (e.g., in the form of software components) for causing the machine 900 to perform any of the features described herein can be executed. As such, the instructions 916 can be used to implement the modules or components described herein. The instructions 916 cause the unprogrammed and / or unconfigured machine 900 to operate as a specific machine configured to perform the described features. The machine 900 can be configured to operate as a standalone device, or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 900 can operate in the capacity of a server machine or a client machine in a server-client network environment, or as a node in a peer-to-peer or distributed network environment. For example, the machine 900 may be embodied as a server computer, a client computer, a personal computer (PC), a tablet computer, a notebook computer, a netbook, a set-top box (STB), a gaming and / or entertainment system, a smart phone, a mobile device, a wearable device (e.g., a smart watch), and an Internet of Things (IoT) device. In addition, although only a single machine 900 is shown, the term "machine" includes a collection of machines that individually or jointly execute instructions 916.

[0088] The machine 900 may include a processor 910, a memory 930, and I / O components 950, which may be communicatively coupled via, for example, a bus 902. The bus 902 may include multiple buses that couple various elements of the machine 900 via various bus technologies and protocols. In an example, the processor 910 (including, for example, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, or a suitable combination thereof) may include one or more processors 912a to 912n, which may execute instructions 916 and process data. In some examples, one or more processors 910 may execute instructions provided or identified by one or more other processors 910. The term "processor" includes a multi-core processor, which includes cores that can execute instructions simultaneously. Although Fig. 9 Multiple processors are shown, but machine 900 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors each with a single core, multiple processors each with multiple cores, or any combination thereof. In some examples, machine 900 may include multiple processors distributed among multiple machines.

[0089] The memory / storage 930 may include a main memory 932, a static memory 934, or other memory and storage unit 936, all of which are accessible to the processor 910, for example, via the bus 902. The storage unit 936 and the memory 932, 934 store instructions 916 that embody any one or more of the functions described herein. The memory / storage 930 may also store temporary, intermediate, and / or long-term data for the processor 910. The instructions 916 may also reside, in whole or in part, within the memory 932, 934, within the storage unit 936, within at least one of the processors 910 (e.g., within a command buffer or cache memory), within at least one memory in the I / O component 950, or within any suitable combination thereof during execution thereof. Therefore, the memory 932, 934, the storage unit 936, the memory in the processor 910, and the memory in the I / O component 950 are examples of machine-readable media.

[0090] As used herein, "machine-readable medium" refers to a device capable of temporarily or permanently storing instructions and data that cause the machine 900 to operate in a particular manner, and may include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical storage media, magnetic storage media and devices, cache memory, network accessible or cloud storage, other types of storage devices, and / or any suitable combination thereof. The term "machine-readable medium" applies to a single medium or a combination of multiple media that are used to store instructions (e.g., instructions 916) for execution by the machine 900, so that the instructions, when executed by one or more processors 910 of the machine 900, cause the machine 900 to perform one or more of the features described herein. Thus, a "machine-readable medium" may refer to a single storage device, as well as a "cloud-based" storage system or storage network that includes multiple memory devices or devices. The term "machine-readable medium" excludes the signal itself.

[0091] I / O components 950 may include a wide variety of hardware components suitable for receiving input, providing output, generating output, transmitting information, exchanging information, capturing measurements, etc. The specific I / O components 950 included in a particular machine will depend on the type and / or function of the machine. For example, a mobile device such as a mobile phone may include a touch input device, while a headless server or IoT device may not include such a touch input device. Fig. 9 The specific examples of I / O components shown in are not intended to be limiting, and other types of components may be included in the machine 900. The grouping of the I / O components 950 is intended only to simplify the discussion, and the grouping is not intended to be limiting. In various examples, the I / O components 950 may include a user output component 952 and a user input component 954. The user output component 952 may include, for example, a display component (e.g., a liquid crystal display (LCD) or a projector) for displaying information, an acoustic component (e.g., a speaker), a tactile component (e.g., a vibration motor or a force feedback device), and / or other signal generators. The user input component 954 may include, for example, an alphanumeric input component (e.g., a keyboard or a touch screen), an indication component (e.g., a mouse device, a touch pad, or another indication instrument), and / or a tactile input component (e.g., a physical button or touch screen that provides a position and / or a touch force or a touch gesture) configured to receive various user inputs, such as user commands and / or selections.

[0092] In some examples, the I / O component 950 may include a biometric component 956, a motion component 958, an environmental component 960, and / or a positioning component 962, as well as various other physical sensor components. The biometric component 956 may include, for example, components that detect body expressions (e.g., facial expressions, vocal expressions, gestures or body postures or eye tracking), measure biosignals (e.g., heart rate or brain waves), and identify people (e.g., via sound, retina, fingerprint, and / or face-based identification). The motion component 958 may include, for example, an acceleration sensor (e.g., an accelerometer) and a rotation sensor (e.g., a gyroscope). The environmental component 960 may include, for example, an illumination sensor, a temperature sensor, a humidity sensor, a pressure sensor (e.g., a barometer), an acoustic sensor (e.g., a microphone used to detect ambient noise), a proximity sensor (e.g., infrared sensing of nearby objects), and / or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. Positioning component 962 may include, for example, a position sensor (e.g., a global positioning system (GPS) receiver), an altitude sensor (e.g., a barometric pressure sensor from which altitude can be derived), and / or an orientation sensor (e.g., a magnetometer).

[0093] The I / O components 950 may include a communication component 964 that implements various technologies that are operable to couple the machine 900 to network(s) 970 and / or device(s) 980 via respective communication couplings 972 and 982. The communication component 964 may include one or more network interface components or other suitable devices to interface with the network 970. The communication component 964 may include, for example, components suitable for providing wired communication, wireless communication, cellular communication, near field communication (NFC), Bluetooth communication, Wi-Fi, and / or communication via other forms. The device(s) 980 may include other machines or various peripheral devices (e.g., via USB coupling).

[0094] In some examples, the communication component 964 can detect the identifier or include a component suitable for detecting the identifier. For example, the communication component 964 can include a radio frequency identification (RFID) tag reader, an NFC detector, an optical sensor (e.g., a one-dimensional or multi-dimensional barcode or other optical code), and / or an acoustic detector (e.g., a microphone that identifies the tagged audio signal). In some examples, the location information can be determined based on information from the communication component 962, such as, but not limited to, geolocation via an Internet Protocol (IP) address, location via Wi-Fi, cellular, NFC, Bluetooth or other wireless station identification and / or signal triangulation.

[0095] Although various embodiments have been described, the description is intended to be exemplary, not restrictive, and it is understood that more embodiments and implementations are possible within the scope of the embodiments. Although many possible combinations of features are shown in the drawings and discussed in this detailed description, many other combinations of the disclosed features are possible. Unless specifically limited, any feature of any embodiment may be used in combination with any other feature or element in any other embodiment or replaced by any other feature or element in any other embodiment. Therefore, it will be understood that any feature of the features shown and / or discussed in this disclosure may be implemented together in any appropriate combination. Therefore, the embodiments are not limited except in accordance with the appended claims and their equivalents. In addition, various modifications and changes may be made within the scope of the appended claims.

[0096] Although what has been described above is considered to be the best mode and / or other examples, it is understood that various modifications may be made therein, and the subject matter disclosed herein may be implemented in various forms and examples, and the description may be applied to many applications, only some of which have been described herein. The following claims are intended to claim any and all applications, modifications and variations that fall within the true scope of this description.

[0097] Unless otherwise indicated, all measurements, values, levels, positions, sizes, dimensions and other specifications set forth in this specification (including in the claims that follow) are approximate and not exact. They are intended to have a reasonable range consistent with the functions to which they relate and with customary practice in the art to which they are related.

[0098] The scope of protection is limited only by the following claims. When interpreted in light of this specification and the subsequent litigation history, the scope is intended and should be interpreted to be as broad as consistent with the ordinary meaning of the language used in the claims and to include all structural and functional equivalents. Notwithstanding the foregoing, no claims are intended to include subject matter that fails to meet the requirements of Sections 101, 102, or 103 of the Patent Act, nor should they be interpreted in such a manner. Any unexpected inclusion of such subject matter is hereby disclaimed.

[0099] Except as stated above, nothing that has been stated or shown is intended or should be construed as causing any component, step, feature, object, benefit, advantage, or equivalent to be exclusive to the public regardless of whether it is recited in the claims.

[0100] It will be understood that, except that the specific meaning has been stated in addition in this article, the terms and expressions used in this article have the general meaning given to the terms and expressions in the corresponding respective fields of its investigation and research.Terms such as the first relationship and the second relationship can only be used to distinguish an entity or action from another entity or action, without requiring or implying any actual such relationship or order between these entities or actions.The term "include", "comprise" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process, method, article or device including the list of elements not only include those elements, but also can include other elements that are not clearly listed or inherent in such process, method, article or device.In the absence of further limitation, the element carried out by "one" or "an" does not exclude the existence of additional identical elements in the process, method, article or device including the element.

[0101] The abstract of the present disclosure is provided to allow the reader to quickly ascertain the nature of the present technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the above-mentioned detailed description, it can be seen that various features are grouped together in various examples for the purpose of streamlining the present disclosure. This method of disclosure is not interpreted as reflecting the intention that the claims require more features than the features explicitly listed in each claim. On the contrary, as reflected in the following claims, the creative subject matter lies in less than all the features of the disclosed single example. Therefore, the following claims are hereby incorporated into the detailed description, and each claim adheres to itself as a separately claimed subject matter.

Claims

1. A data processing system, comprising: processor, and A machine-readable storage medium storing executable instructions that, when executed, cause the processor to perform operations comprising: displaying a tabbed user interface including a plurality of tabs on a tab bar for navigating between a plurality of electronic content items; determining that a first tab of the plurality of tabs is associated with a first web-based application; and A first application-specific tab group control element is displayed on the tab bar adjacent to the first tab, and when activated, the first application-specific tab group control element provides a tool set associated with the first application-specific tab group, and the tool set associated with the first application-specific tab group is used to access application-specific content associated with the first application and to create a new tab associated with the first application.

2. The data processing system of claim 1 , wherein the machine-readable storage medium includes instructions configured to cause the processor to: grouping a first subset of the plurality of tags associated with the first application into a first tag group; causing the tabs in the first tab group to be displayed adjacent to each other on the tabbed user interface; and The first application-specific tab group control element is caused to be displayed on the tabbed user interface proximate to the tab of the first tab group.

3. The data processing system of claim 2, wherein the machine-readable storage medium includes instructions configured to cause the processor to: determining that a second tab in the plurality of tabs is associated with a second web-based application; and A second application-specific tab group control element is caused to be displayed proximate to the second tab of the plurality of tabs, the second application-specific tab group control element providing a set of tools for accessing content associated with the second application and for creating a new tab associated with the second application.

4. The data processing system of claim 3, wherein the machine-readable storage medium includes instructions configured to cause the processor to: determining that the second tab is a currently active tab of the tabbed user interface; and In response to determining that the second tab is currently active, hiding the tabs in the first tab group.

5. The data processing system of claim 4, wherein the machine-readable storage medium includes instructions configured to cause the processor to: receiving a first user input to activate the first application-specific tab group control element; and The tabs in the first tab group are caused to be displayed on the tabbed user interface proximate to the first application-specific tab group control element.

6. The data processing system of claim 4, wherein the machine-readable storage medium includes instructions configured to cause the processor to: receiving a first user input indicating that a pointer is positioned over the first application specific tab group control element without clicking or otherwise interacting with the first application specific tab group control element; as well as while the pointer is positioned over the first application-specific tab group control element, causing the tabs in the first tab group to be displayed on the tabbed user interface proximate to the first application-specific tab group control element; as well as Once the pointer is no longer positioned over the first application specific tab group control element, the tabs in the first tab group are caused to be hidden.

7. The data processing system of claim 4, wherein the machine-readable storage medium includes instructions configured to cause the processor to: receiving a first user input to activate the first application-specific tab group control element; and A control panel associated with the first application-specific tab group control element is caused to be displayed proximate to the first application-specific tab group control element, the control panel including one or more controls for controlling various functions of the first application.

8. A method implemented in a data processing system for providing a tabbed user interface, the method comprising: displaying the tabbed user interface, the tabbed user interface comprising a plurality of tabs on a tab bar for navigating between a plurality of electronic content items; determining that a first tag among the plurality of tags is associated with a first web-based application; as well as A first application-specific tab group control element is displayed on the tab bar adjacent to the first tab among the multiple tabs, and when activated, the first application-specific tab group control element provides a tool set associated with the first application-specific tab group, and the tool set associated with the first application-specific tab group is used to access application-specific content associated with the first application and to create a new tab associated with the first application.

9. The method according to claim 8, further comprising: grouping a first subset of the plurality of tags associated with the first application into a first tag group; causing the tabs in the first tab group to be displayed adjacent to each other on the tabbed user interface; as well as The first application-specific tab group control element is caused to be displayed on the tabbed user interface proximate to the tab in the first tab group.

10. The method according to claim 9, further comprising: determining that a second tab of the plurality of tabs is associated with a second web-based application; as well as A second application-specific tab group control element is caused to be displayed proximate to the second tab of the plurality of tabs, the second application-specific tab group control element providing a set of tools for accessing content associated with the second application and for creating a new tab associated with the second application.

11. The method according to claim 10, further comprising: determining that the second tab is a currently active tab of the tabbed user interface; as well as In response to determining that the second tab is currently active, hiding the tabs in the first tab group.

12. The method according to claim 11, further comprising: receiving a first user input to activate the first application-specific tab group control element; as well as The tabs in the first tab group are caused to be displayed on the tabbed user interface proximate to the first application-specific tab group control element.

13. The method according to claim 12, further comprising: receiving a first user input indicating that a pointer is positioned over the first application specific tab group control element without clicking or otherwise interacting with the first application specific tab group control element; as well as while the pointer is positioned over the first application-specific tab group control element, causing the tabs in the first tab group to be displayed on the tabbed user interface proximate to the first application-specific tab group control element; as well as Once the pointer is no longer positioned over the first application specific tab group control element, the tabs of the first tab group are caused to be hidden.

14. The method according to claim 12, further comprising: receiving a first user input to activate the first application-specific tab group control element; as well as A control panel associated with the first application-specific tab group control element is caused to be displayed proximate to the first application-specific tab group control element, the control panel including one or more controls for controlling various functions of the first application.