Intent resolution across hierarchical user profiles
The cross-profile intent resolution mechanism addresses the challenge of intent management across hierarchical user profiles by using cross-profile filters to simplify and secure intent traversal, ensuring efficient and flexible intent resolution.
Patent Information
- Application Number
- JP2025519876
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-10-05
- Filing Date
- 2023-10-02
- Publication Date
- 2025-10-09
AI Technical Summary
Existing operating systems struggle to efficiently resolve intents across multiple user profiles while maintaining security and isolation, particularly when user profiles are arranged in hierarchical relationships, leading to complex and redundant intent filter configurations.
A cross-profile intent resolution mechanism that utilizes cross-profile intent filters to dynamically traverse user profile hierarchies, allowing intents to be resolved efficiently across nested user profiles without direct communication between each profile, thereby simplifying intent filter management and enhancing security.
The mechanism enables seamless intent resolution across hierarchically arranged user profiles, reducing configuration and maintenance complexity, and preventing unauthorized access by eliminating the need for individual intent filters between each profile, thus enhancing security and flexibility.
Smart Images

Figure 2025533879000001_ABST
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application No. 63 / 413,480, filed October 5, 2022, the entire contents of which are incorporated herein by reference. [Background technology]
[0002] Computing devices such as mobile phones, laptops, and tablets run operating systems that enable the creation of user profiles that provide users with a means for separating information and applications. For example, a user may establish one or more additional user profiles arranged in a parent-child relationship to the user. A user profile may be defined and configured for a specific purpose, such as a work profile or a children's profile. Applications within a user profile may utilize messaging objects available within the operating system known as intents that request actions from one or more applications available within the user profile. Summary of the Invention
[0003] Operating systems that support multiple user profiles often require a mechanism that enables intent resolution between different user profiles. In one exemplary mechanism for cross-profile intent resolution, when an intent request is received, the intent is initially resolved within the current user profile. Subsequently, if the intent request is resolved locally, the intent resolution mechanism of the present disclosure performs a graph traversal starting from the current user profile, resolving the intent in each linked profile (parent and child) along the path. The invoked user profiles then resolve themselves and propagate the intent to each linked user profile in turn, thereby resolving directly linked user profiles and user profiles linked through multiple intervening user profiles. Access to user profiles may be determined by the configuration of cross-profile intent filters for each intent request. Thus, for different intent requests, access to different paths or subsets of the graph may be dynamically permitted or denied based on the cross-profile intent filters. Similarly, the same intent request from two different user profiles may dynamically access different paths or subsets of the graph based on the cross-profile intent filters.
[0004] Cross-profile intent filter implementations maintain security by preventing unintentional reconfiguration of intent filters by adding intent filters, removing filters, and / or otherwise modifying intent filter permissions. Additionally, cross-profile intent filter implementations do not modify or extend access to or permissions of user profiles, which may expose the operating system to malicious agents and enable unwanted access to one or more of the user profiles.
[0005] In one example, a computing device is disclosed that includes at least one processor and a computer-readable storage device coupled to the at least one processor and having instructions stored thereon. The instructions, when executed by the at least one processor, cause the at least one processor to perform an operation in response to detecting a first user input associated with a first user profile stored on the computing device. The computing device further includes instructions for generating a first intent corresponding to the first user input and instructions for applying a set of cross-profile intent filters to traverse a user profile hierarchy from the first user profile to a second user profile stored on the computing device, the traversal of the user profile hierarchy being based on successful resolution of each cross-profile intent filter in the set of cross-profile intent filters. When the instructions are executed, the computing device identifies an application associated with the second user profile and configured to fulfill the first intent, and provides functionality from the application that fulfills the first intent via the first user profile.
[0006] In another example, a computer-implemented method is disclosed. The method includes, in response to detecting a first user input associated with a first user profile stored on a computing device, generating a first intent corresponding to the first user input and then applying a series of cross-profile intent filters to traverse a user profile hierarchy from the first user profile to a second user profile stored on the computing device, the traversal of the user profile hierarchy being based on successful resolution of each cross-profile intent filter in the series of cross-profile intent filters. The method further includes, on the computing device, identifying an application associated with the second user profile and configured to fulfill the first intent, and providing functionality from the application to fulfill the first intent via the first user profile.
[0007] In another example, a computer-readable medium having stored thereon instructions executable by a processor is disclosed. The computer-readable medium includes instructions executable by the processor to, in response to detecting a first user input associated with a first user profile stored on a computing device, generate a first intent corresponding to the first user input and apply a set of cross-profile intent filters to traverse a user profile hierarchy from the first user profile to a second user profile stored on the computing device, the traversal of the user profile hierarchy being based on successful resolution of each cross-profile intent filter in the set of cross-profile intent filters. The computer-readable medium further includes instructions for identifying an application associated with the second user profile and configured to satisfy the first intent, and for providing functionality from the application to satisfy the first intent via the first user profile.
[0008] In another example, a system for intent resolution is disclosed. The system includes a computing device including means for generating a first intent corresponding to a first user input in response to detecting a first user input associated with a first user profile stored on the computing device. The computing device further includes means for applying a series of cross-profile intent filters to traverse a user profile hierarchy from the first user profile to a second user profile stored on the computing device, the traversal of the user profile hierarchy being based on successful resolution of each cross-profile intent filter in the series of cross-profile intent filters. The computing device further includes means for identifying an application associated with the second user profile and configured to fulfill the first intent, and means for providing functionality from the application that fulfills the first intent via the first user profile.
[0009] The above summary is illustrative only and is not intended to be in any way limiting. In addition to the exemplary aspects, examples, and features described above, further aspects, examples, and features will become apparent by reference to the figures and the following detailed description, and the accompanying drawings. [Brief explanation of the drawings]
[0010] [Figure 1] Illustrates intent resolution between two user profiles. [Figure 2] Illustrates intent resolution across multiple user profiles. [Figure 3] 1 illustrates an example of intent resolution across multiple user profiles arranged in a hierarchical relationship. [Figure 4] A and B show examples of intent resolution paths according to the present disclosure. [Figure 5] 1 is an exemplary computing device configured to execute a mechanism for intent resolution between multiple user profiles. [Figure 6] FIG. 1 is a block diagram illustrating an exemplary computing device according to the present disclosure. [Figure 7] 1 is a flowchart of a method for intent resolution between multiple user profiles according to the present disclosure. [Figure 8] 10 is a flowchart of another method for intent resolution between multiple user profiles according to the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0011] overview In some operating systems that run as part of a computing device, an intent is a messaging object that can be configured to specify, invoke, and / or request an action from another application. Actions specified as part of an intent may include initiating an activity, such as opening a screen in an application, and initiating a service, such as downloading a file. An action may further specify delivering a broadcast or message containing data upon which a decision may be made by one or more other applications. An intent may be defined either specifically or generally to identify an application or application component associated with one of the specified activities, such as a start action, a receive action, and a broadcast action.
[0012] In one example, once an intent is defined, the operating system searches for accessible applications and application components to activate by comparing the content defined as part of the intent with one or more intent filters associated with applications or application components available on the computing device. The intent filters associated with an application or application component may be specified in metadata or a manifest created for each application or application component. The comparison process is called intent resolution. If the intent matches an intent filter, the operating system launches the application component and delivers an intent object to the application component. If the intent is found to satisfy multiple intent filters, the operating system may display a dialog allowing the user to select from the identified applications and application components. Intent resolution provides security and isolation between applications and application components. In many cases, maintaining isolation and security limits intent resolution to a single user profile.
[0013] While intents may often be resolved in the context of a single user profile, current operating systems are designed to support multiple user profiles. Therefore, providing a mechanism for addressing intent resolution across multiple user profiles defined within an operating system to address different use cases while maintaining security and isolation between applications, application components, and individual user profiles represents a significant technical improvement. To address additional requirements, in one example, the intent resolution mechanism utilizes cross-profile intent filters to arrange user profiles in a hierarchical format to provide dynamic access between individual user profiles. For example, with multiple user profiles, a primary user profile may include one or more additional user profiles arranged in a parent-child relationship relative to the primary user profile.
[0014] In some examples, computing devices and operating systems configured to execute multiple user profiles may organize two or more individual user profiles into a hierarchical relationship in which different user profiles are isolated and protected but may be accessible through cross-profile intent filters established between each profile or group of profiles. For example, a user may establish a primary profile on a computing device, such as a mobile phone, and then define multiple additional user profiles to address specific use cases. The user may further define additional user profiles to address use cases such as separating applications based on age, providing a secure trading or financial space, and running multiple instances of a single application. In some examples, an intent generated in any one of the user profiles is first resolved within that user profile. Once local intent resolution is complete, the intent traverses a path defined by the user profile hierarchy and accessible through a set of cross-profile intent filters. For example, the intent is resolved in each linked user profile based on the resolution of at least one of the set of cross-profile intent filters configured along the traversed path. In practice, linked user profiles resolve themselves individually, and then the intent continues to traverse the path defined by the user profile hierarchy until either no further linked user profiles remain or until resolution of at least one of the series of cross-profile intent filters fails and access to the user profile is denied. The overall path and complexity of the user profile hierarchy required to fully resolve any given intent can change dynamically based on the resolution of individual cross-profile intent filters established between user profiles or groups of user profiles defined within the user profile hierarchy.In this way, the cross-profile intent filter controls which paths are traversed between which individual user profiles and groups of user profiles within any given portion of the user profile hierarchy. This mechanism optimizes the intent resolution paths defined as part of the user profile hierarchy for each detected intent.
[0015] In some examples, any changes to the configuration of multiple user profiles provided by the computing device and operating system may be dynamically detected during traversal of the user profile hierarchy.
[0016] In some examples, a cross-profile intent filter can be configured to prevent cross-profile intent resolution when a local resolution is detected.
[0017] In some examples, the cross-profile intent filter can be configured to assign a higher priority to the invoked user profile compared to the current user profile.
[0018] In some examples, the cross-profile intent filter can be configured to prevent intent resolution unless the intent originates from a user profile that has a higher priority than the current user profile.
[0019] A mechanism for intent resolution FIG. 1 illustrates intent resolution between two user profiles configured within a computing device's operating system. For example, as shown in FIG. 1, resolution of intent requests between a first user profile 100 and a second user profile 110 may be achieved by configuring individual intent filters between the two profiles. An intent generated by the first user profile 100 may include information such as the name of the application or application component to invoke, the action to be performed, data associated with the action, and a category that identifies the type of application or application component that can fulfill the intent. The intent filter specifies the types of intents that the second user profile 110 is configured to receive and / or accept. The individual intent filters are then configured by the first user profile 100 and the second user profile 110 to control how intents exchanged between the user profiles are handled.
[0020] In some examples, the intent filter configuration is directional between two profiles, such that a first profile 100 may be permitted to share information with a second profile 110, but the second profile 110 may not be permitted similar access. For example, if a first profile 100 is configured as a primary profile and a second profile 110 is configured as a work profile, then the intent filter configured between the two profiles may be defined to allow files to be shared from the primary profile to the work profile, but files originating within the work profile may not be similarly shared outside the work profile.
[0021] The mechanism for intent resolution shown in Figure 1 provides a simple resolution that allows intent requests made in one user profile to be resolved in other directly connected user profiles via one or more intent filters. The intent filters in the illustrated resolution can be deployed and managed in a dynamic manner that allows the addition, removal, and modification of individual intent filters to be accomplished quickly. In some cases, the illustrated mechanism for intent resolution may not support resolution between user profiles arranged in a nested relationship, such as a parent-child relationship, or other hierarchical relationship.
[0022] Figure 2 illustrates another method for intent resolution that builds upon and extends the method and resolution mechanism illustrated in Figure 1. In particular, the second exemplary method for intent resolution illustrated in Figure 2 provides a mechanism for directly addressing intent resolution across multiple user profiles. The second example mechanism for intent resolution includes a first user profile 200, a second user profile 210, a third user profile 220, and a fourth user profile 230, each of which communicates directly with each of the other profiles via intent filters configured individually between each pair of user profiles.
[0023] In the exemplary configuration shown in FIG. 2 , individual intent filters can be configured between each pair of user profiles. Thus, each user profile configured according to the second example for intent resolution communicates directly with each of the other user profiles organized in this manner through a dedicated intent filter specifically configured for each user profile. For example, a first user profile 200 can be configured as a primary profile, a second user profile 210 can be configured as a clone of the primary profile, a third user profile 220 can be configured as a work profile, and a fourth user profile 230 can be configured as an age-dependent children's profile. Between each of these user profiles, intent filters can be configured to define how each profile interacts with the other profiles. For example, a children's profile can be individually configured to interact with the work profile, the clone profile, and the primary profile. In this configuration, an intent filter must be defined and maintained for each linked profile. Similarly, the clone profile and the work profile each have an individually configured intent filter established between them.
[0024] The exemplary intent resolution method illustrated in FIG. 2 provides a solution that allows intent invocations made between multiple user profiles to be resolved at one or more directly connected user profiles via a network of intent filters defined between each of the individual user profiles. These intent filters are managed and deployed separately for each user profile and for the connections between the user profiles. While this intent resolution method is complex and may include several redundant intent filters, it also allows the flexibility to quickly modify individual intent filters for each user profile. The direct connections utilized by the illustrated method for intent resolution may not support intent resolution between user profiles arranged in nested or other hierarchical relationships, such as parent-child relationships.
[0025] To address multiple user profiles in a hierarchical relationship, the illustrated solution may require that individual intent filters be configured between each user profile for which intent resolution is desired. Modifications to the illustrated method, including adding or removing user profiles, would require configuring and / or maintaining numerous associated intent filters for each direct connection. For example, if N user profiles are configured within a computing device's operating system, then there is an (N*(N-1)) / 2 list of intent filters that must be configured to ensure intent resolution propagates to each connected user profile. Thus, while this second example for intent resolution may resolve intent requests originating in other user profiles, in many cases this method requires maintaining and updating a complex and redundant network of intent filters for any changes to each linked user profile. Furthermore, while a web of direct connections between user profiles may enable intent resolution, this mechanism for intent resolution does not support efficient resolution between user profiles arranged in nested or other hierarchical relationships, such as parent-child relationships.
[0026] Mechanism for cross-profile intent resolution Figure 3 illustrates a cross-profile intent mechanism that addresses and overcomes the limitations described in connection with the example mechanisms and methods shown in Figures 1 and 2. The example cross-profile intent resolution mechanism described herein and illustrated in Figure 3 provides a uniform and scalable mechanism for dynamically resolving intents across multiple user profiles arranged in a nested relationship.
[0027] The exemplary cross-profile intent resolution mechanism, as illustrated in FIG. 3 , includes a first user profile 300 that directly connects with each of a second user profile 310, a third user profile 320, and a fourth user profile 330. This direct communication between the first user profile 300 and the remaining user profiles 310-330 defines a parent-child relationship. Similarly, the fourth user profile 330 is further arranged in direct communication with a fifth user profile 340, forming another parent-child relationship. The illustrated arrangement of user profiles, including multiple parent-child relationships existing between the first user profile 300 and the fourth user profile 330 and between the fourth user profile 330 and the fifth user profile 340, illustrates a simple nesting relationship between the user profiles. The exemplary cross-profile intent resolution mechanism provides for an intent generated in one of the user profiles to be resolved in each of the linked user profiles without requiring direct communication to be established with each user profile. Thus, the illustrated cross-profile intent resolution mechanism of Figure 3 is capable of resolving intents when user profiles are separated and arranged in a nested arrangement, it being understood that greater degrees of complexity may be implemented without departing from the principles disclosed herein.
[0028] In the exemplary cross-profile intent resolution mechanism shown in FIG. 3 , the intent filters currently used and configured between each individual user profile to control access to other user profiles are exchanged as shown. Replacing the individual intent filters with the disclosed cross-profile intent resolution mechanism reduces the configuration and maintenance complexity incurred using individual intent filters defined between each user profile. Furthermore, replacing the individual intent filters with the disclosed cross-profile intent resolution mechanism simplifies the process of adding and modifying user profiles. Replacing the individual intent filters with the disclosed cross-profile intent resolution mechanism alleviates security concerns arising from individual user profiles communicating with each other user profile to facilitate cross-profile communication. For example, by eliminating the need for direct communication between each user profile, the disclosed cross-profile intent resolution mechanism prevents malicious addition of new intent filters and / or modification of existing intent filters to provide unauthorized access. The exemplary cross-profile intent resolution mechanism replaces the individually configured intent filters defined for each user profile with one or more cross-profile intent filters that operate in conjunction with a cross-profile strategy.
[0029] In some examples, the first user profile 300 may be configured as a primary profile, the second user profile 310 may be configured as a clone profile of the primary profile, the third user profile 320 may be configured as a child profile, the fourth user profile 330 may be configured as a work profile, and may further include a fifth user profile 340 configured as a clone profile of the work profile. The fourth user profile 340 and the fifth user profile 350, as provided by the cross-profile intent resolution mechanism, allow the two profiles to be organized in a parent-child relationship. In this relationship, the clone profile may be organized with the work profile to enable seamless integration or communication between the two user profiles. In other examples, this relationship allows the intent that gives rise to the user profile to be communicated to the parent user profile and seamlessly resolved by both the parent user profile and the child user profile.
[0030] In the illustrated example, access between each of these user profiles may be controlled by a dedicated cross-profile strategy operating in conjunction with one or more cross-profile intent filters. For example, the disclosed cross-profile intent resolution mechanism enables the flexibility for each of the user profiles 300-340 to resolve intents according to one or more cross-profile intent filters and cross-profile strategies that may be configured to address the desired use case associated with the user profile. In a use case in which the second user profile 310 is a clone profile of the primary profile 300, the cross-profile strategy may ensure seamless communication between the two user profiles such that intent resolution is achieved identically for both the first user profile 300 and the second user profile 310. In another use case in which the third user profile is a children's profile associated with the first user profile 300, the cross-profile strategy may be configured to restrict access to age-prohibited applications and application components. For example, the cross-profile strategy may identify that certain applications may be designated as age-restricted or may be configured to identify applications or actions as age-restricted. In other use cases, where the fourth user profile 330 is a work profile associated with the first user profile 300, a cross-profile strategy between the primary profile and the work profile may be configured by a third-party administrator to control and / or restrict access to work applications and work application components. The fifth user profile 340 may be configured as a clone profile of the fourth user profile 330, and similar to the cross-profile strategy between the first user profile 300 and the second user profile 310, a cross-profile strategy between the work profile and the clone of the work profile may ensure seamless communication between the two user profiles.In one example, the fourth user profile 330 and the fifth user profile 340 may be organized in a parent-child relationship and configured to implement different strategies, such as (1) resolving the intent in both profiles, (2) resolving the current profile for the intent and omitting the adjacent profile, (3) omitting the current profile and resolving the intent in the adjacent profile, or (4) resolving the adjacent only if there is no application identified in the current profile. In some examples, the cross-profile strategy may be a duplication strategy for each of the clone profiles associated with the second user profile 310 and the fifth user profile 340. In a further example, the cross-profile strategy for the clone profiles may be stored in a first location and referenced by each user profile configured and identified as a clone profile.
[0031] In some examples, when an intent request originates within any user profile that is executed according to the disclosed cross-profile intent resolution mechanism, the intent is first resolved within the current user profile. Once intent resolution is completed within the current (i.e., local) user profile, the intent is communicated to any other linked user profiles as dictated by the nesting relationships between the current user profile and any other linked user profiles. Communication between each of the linked user profiles is facilitated by cross-profile intent filters operating in conjunction with a cross-profile strategy. For example, access to each user profile linked to the current user profile and subsequent intent resolution within each user profile linked to the current user profile depend on successful resolution of at least one of the cross-profile filters and routing or instruction of the intent request according to the cross-profile strategy. For example, upon successful resolution of a path between two user profiles, an appropriate cross-profile strategy may instruct the intent request to skip the next profile. However, if the intent is not resolved by one of the cross-profile intent filters, then a path for communication between the two linked user profiles is not permitted, and graph traversal along this path terminates without involving any nested relationships linked to the unresolved portion of the graph. In this manner, cross-profile intent filter resolution provides a dynamic mechanism for evaluating and accessing each of the hierarchically arranged linked user profiles. In operation, two intent requests originating within the same user profile in the hierarchy may be resolved along two different paths between the linked user profiles in the hierarchy, depending on their interactions with one or more cross-profile intent filters and the cross-profile strategy.
[0032] 4A and 4B illustrate possible paths that may be traversed in an exemplary user profile hierarchy in response to an intent request and resolved via the exemplary cross-profile intent resolution mechanism shown in FIG. 3. FIG. 4A illustrates a first path 400 along which an intent request originating in the second user profile 310 may be resolved. Upon resolution in the second user profile 310, the intent traverses to the first user profile 300 for further resolution. Because the second user profile 310 is configured as a clone of the first user profile 300, the intent may pass seamlessly between the second user profile 310 and the first user profile 300. At this point, the intent request may not be resolved by one of the cross-profile intent filters between the first user profile 300 and the fourth user profile 340, or the cross-profile strategy may disallow access to the fourth profile 340, thereby preventing access to the relevant portion of the user profile hierarchy. For example, a cross-profile intent filter and cross-profile strategy could prevent access between a primary profile and a work profile based on the previous resolution of the intent request in the primary profile. FIG. 4B illustrates a second path 410 along which a second intent detected in the second user profile 310 may be resolved. As described above, because the second user profile 310 is configured as a clone of the first user profile 300, intents may pass seamlessly between the second user profile 310 and the first user profile 300. Upon resolution in the second user profile 310, the intent traverses to the first user profile 300 for further resolution. At this point, the intent request may not resolve the cross-profile intent filter established between the first user profile 300 and the third user profile 320, which would then prevent access to the third user profile 320, configured as a child profile.If an intent request cannot be resolved by the cross-profile intent filter established between the first user profile 300 and the third user profile 320, then no path exists between the two profiles, and intent resolution does not occur in the third user profile 330 or any other profiles nested within the third user profile 330. Thus, graph traversal for any given intent may differ from graph traversal for other intents based on interactions with the cross-profile intent filters and cross-profile strategies implemented to secure and isolate multiple user profiles. Furthermore, paths for graph traversal may be updated in real time based on the configuration and arrangement of multiple user profiles. Advantageously, a cross-profile intent filter associated with one of the user profiles may be updated without affecting other linked user profiles and their associated cross-profile intent filters. Similarly, cross-profile strategies associated between a pair of user profiles may be updated without affecting the cross-profile filters and associated cross-profile intent filters of the other linked user profiles. For example, one or more cross-profile strategies may be configured to assign a higher priority to one of the other user profiles compared to the current user profile, and in some cases cross-profile intent resolution may be reserved for activities or actions identified as high priority and / or activities from user profiles identified as high priority user profiles. In this manner, cross-profile strategies may assign priorities to establish an order among user profiles, to create directional filters between high priority and low priority user profiles, and to filter activities between user profiles of different priorities.
[0033] Mechanism for cross-profile intent resolution A computing device is disclosed and described that includes hardware and software elements for implementing a cross-profile intent resolution mechanism between multiple user profiles arranged in a hierarchical relationship.
[0034] FIG. 5 illustrates an exemplary computing device 500 for implementing the disclosed mechanisms for intent resolution across multiple user profiles, according to one or more examples. The computing device 500 may include a touchscreen display 510 configured to display information and receive one or more provided inputs from a user interacting with the device. In some examples, the computing device 500 may be a laptop, desktop computer, smart television, electronic reading device, streaming content device, game console, tablet device, or other related computing device configured to execute software instructions and application programs. The computing device 500 may include an operating system 520 that includes the disclosed mechanisms for intent resolution across multiple user profiles. In some examples, the operating system 520 may execute a profile manager application 530. The profile manager 530 may provide the interfaces and tools needed to configure one or more user profiles, such as the user profiles 300-340 described in connection with FIG. 3 . The profile manager 530 may further provide tools for organizing and arranging the user profiles in a hierarchical arrangement, such that each pair of user profiles forms a parent-child relationship.
[0035] As used herein, the terms application and application component may refer to any computer program or function accessible by an operating system and configured to interact with a user of computing device 500. Example application programs may include a search application, an email application, a text message application, an instant messaging application, a web browsing application, a mapping application, a media playback application, a weather application, a phone application, a video communication application, a camera application, an application related to a service provider (e.g., finance, insurance, etc.), an application associated with a digital assistant (e.g., a home assistant), or any other application program configured to receive user input such as digital text input, alphanumeric input, character input, and / or digital image input.
[0036] The terms interaction or interact are used broadly to refer to any action, active or passive, performed by a user with computing device 500 or by an application or application component executing on computing device 500. For example, interactions can include viewing content, entering, editing, and / or modifying content (e.g., via keyboard, mouse, tap, etc.), sensory interactions (e.g., haptic, visual, auditory, tactile), scrolling interactions, voice interactions, user selections, etc. As another example, a user interaction with an email can be determined to be an interaction with an entire chain of emails and / or interactions with multiple email exchanges with a particular sender of the email.
[0037] Computing Device Architecture Figure 6 is a functional diagram of an example of a hardware configuration that may be implemented as part of the computing device 500 shown in Figure 5. In some examples, the computing device 500 configuration shown in Figure 6 supports the definition of multiple user profiles and the definition of relationships and hierarchies between multiple relationships, including the mechanisms for cross-profile intent resolution described herein. The exemplary computing device 500 may include at least a display controller 600, a communication interface 610, a processor 620, and a storage device 630, all of which may be in communication with each other via a system bus, network, or other connection mechanism 640.
[0038] The display controller 600 may be configured to control the touchscreen display 510 and generate a user interface 602 configured to receive input provided by a user. For example, the touchscreen display 510 may be configured to receive information from a user input and may receive input via a peripheral device such as a computer mouse, keyboard, keypad, touchpad, trackball, joystick, and other similar devices. The touchscreen display 510 may be further configured to display the generated graphical user interface 602, including data 632, and one or more applications 634 stored in a storage device 630. The touchscreen display 510 may be a liquid crystal display (LCD), a light emitting diode (LED), and other similar devices.
[0039] The communications interface 610 may include one or more devices providing a wireless interface 612 that may be configured to enable the computing device 500 to communicate over a network, and a wired interface 614. The wireless interface 612 may include any hardware and software necessary for wireless communication, such as, for example, a wireless transmitter, receiver, and / or transceiver such as a Bluetooth® transceiver, or any other wireless transceiver that may be configured to communicate over a wireless network. The wired interface 614 may include any hardware and software necessary for wired communication, such as, for example, a transmitter, receiver, and / or transceiver such as an Ethernet® transceiver, or any other similar transceiver that may be configured to communicate over a wired network.
[0040] The processor 620 may be a multi-core processor, a general-purpose processor, and / or a special-purpose processor such as a graphics processing unit (GPU). The processor 620 may be configured to execute an operating system 636, data 632, and one or more applications 634 stored in the storage device 630.
[0041] Storage device 630 may be configured to store operating system 636, data 632, and one or more applications 634 on computer-readable storage media including both volatile and non-volatile storage components such as optical disks, magnetic tape, or other storage technologies that may be integrated in whole or in part with processor 620. Storage device 630 may contain computer-readable instructions and data as needed to ensure operation of computing device 500.
[0042] Exemplary Methods of Operation FIG. 7 is a flowchart 700 of an example method for implementing a mechanism for cross-profile intent resolution according to one or more of the disclosed examples.
[0043] The exemplary method for cross-profile intent resolution described in flowchart 700 may be performed according to coded logic stored in storage device 630 and executed by processor 620. In some examples, results of the method may be presented in the user interface 602 portion of computing device 500. The boxes in the flowchart correspond to individual steps and / or elements of one exemplary method for cross-profile intent resolution.
[0044] At block 710, the method illustrated in flowchart 700 begins by generating a first intent corresponding to the first user input in response to detecting the first user input associated with a first user profile stored on the computing device.
[0045] At block 720, the method continues by applying a series of cross-profile intent filters to traverse a user profile hierarchy from the first user profile to a second user profile stored on the computing device, the traversal of the user profile hierarchy being based on successful resolution of each cross-profile intent filter in the series of cross-profile intent filters.
[0046] At block 730, the method continues by identifying an application associated with the second user profile and configured to satisfy the first intent.
[0047] At block 740, the method continues by providing functionality from the application to fulfill the first intent via the first user profile.
[0048] In some examples, the method includes displaying a user interface via a touchscreen display coupled to the processor and the storage device.
[0049] In some examples, the method includes receiving a first user input via a touchscreen display.
[0050] In some examples, the method includes displaying, within a graphical user interface, an element corresponding to a first action associated with the first intent.
[0051] In some examples, the method includes selecting a first action from a group consisting of an initiation action, a receive action, and a broadcast action.
[0052] In some examples, the application is associated with a first intent filter defined for each of a plurality of applications associated with the second user profile.
[0053] In some examples, the first filter is a manifest associated with each of the first plurality of applications.
[0054] In some examples, the set of cross-profile intent filters is selected from the group consisting of a priority filter, a directional filter, and an activity filter.
[0055] In some examples, the priority filter is configured to prevent low priority cross-profile traffic.
[0056] In some examples, the method includes applying a series of cross-profile intent filters to traverse a user profile hierarchy, the method further including resolving user profiles in a parent-child relationship.
[0057] In some examples, the method includes applying a series of cross-profile intent filters to traverse a user profile hierarchy, the method further including iterative graph traversal.
[0058] In some examples, the method further includes a cross-profile strategy associated with at least one of the set of cross-profile intent filters, the cross-profile strategy configured to control resolution with the second user profile based on successful resolution of the first intent with the first user profile.
[0059] In some examples, the method includes identifying an application associated with a second user profile and configured to satisfy the first intent, and the method further includes resolving the first intent by comparing the first action to a first filter associated with each of a plurality of applications included within the second user profile.
[0060] In some examples, the method includes identifying applications associated with the second user profile and configured to satisfy the first intent, and the method further includes providing a first list including the identified applications configured to satisfy the first intent.
[0061] In some examples, the method includes providing functionality from the application to fulfill the first intent via the first user profile and includes displaying the first list.
[0062] FIG. 8 is a flowchart 800 of another method for implementing a mechanism for cross-profile intent resolution according to one or more of the disclosed examples.
[0063] The method for cross-profile intent resolution described in flowchart 800 may be performed according to coded logic stored in storage device 630 and executed by processor 620 of computing device 500. The boxes in the flowchart correspond to individual steps and / or elements of one example method for cross-profile intent resolution.
[0064] At block 810, the method illustrated in flowchart 800 begins by generating a first intent corresponding to the first input and identifying a first action in response to detecting a first input associated with a first profile, the first profile including a first plurality of applications, each of the first plurality of applications specifying a first filter that identifies the first application action.
[0065] At block 820, the method continues by resolving the first intent by comparing the first action to a first filter associated with each of the first plurality of applications included in the first profile, where resolving the first intent includes providing a first list of first application actions to each of the first plurality of applications capable of achieving the first intent.
[0066] At block 830, the method continues by iteratively resolving the first intent in each of a plurality of profiles communicatively linked to the first profile, in response to resolving the first intent in the first profile, each of the plurality of profiles including a second plurality of applications, and each of the second plurality of applications specifying a second filter that identifies a second application action.
[0067] At block 840, the method continues by communicating the first intent to one of a plurality of profiles communicatively linked to the first profile based on successful resolution of the first intent to at least one of the first cross-profile intent filters.
[0068] At block 850, the method continues by comparing the first action identified in the first intent to each of a plurality of filters associated with each of a second plurality of applications included in one of the plurality of profiles.
[0069] At block 860, the method continues by providing a second list of second application actions to each of a second plurality of applications capable of satisfying the first intent.
[0070] At block 870, the method continues by updating the first list of first application actions with the second application actions included in each second list provided by the iterative resolution.
[0071] In another example, a system for intent resolution is disclosed. An exemplary system may be configured to perform one or more of the methods shown in FIGS. 7 and 8. One exemplary system may include a computing device including means for generating a first intent corresponding to a first user input in response to detecting a first user input associated with a first user profile stored on the computing device. The generating means may include a processor 620 responsive to a user interface 602 and a storage device 630. The system may further include means for applying a series of cross-profile intent filters to traverse a user profile hierarchy from the first user profile to a second user profile stored on the computing device, the traversal of the user profile hierarchy being based on successful resolution of each cross-profile intent filter in the series of cross-profile intent filters, and means for identifying an application associated with the second user profile and configured to fulfill the first intent, and providing functionality from the application to fulfill the first intent via the first user profile. Similarly, the means for applying and the means for identifying may include the processor 620 and the storage device 630 operating in conjunction to evaluate the application 634 stored on the storage device 630. The means for providing functionality may, in some examples, include the user interface 602 and selections presented via the touch screen 510 and / or the operating system 636.
[0072] The present disclosure should not be limited by the specific examples described in this application, which are intended as illustrations of various aspects. As will be apparent to those skilled in the art, many modifications and variations can be made without departing from its spirit and scope. Functionally equivalent methods and apparatuses within the scope of the present disclosure, in addition to those enumerated herein, will be apparent to those skilled in the art from the above description. Such modifications and variations are intended to be included within the scope of the appended claims.
[0073] The foregoing detailed description describes various features and functions of the disclosed systems, devices, and methods with reference to the accompanying drawings. In the figures, like symbols generally identify like components unless context dictates otherwise. The illustrative embodiments described in the detailed description, figures, and claims are not intended to be limiting. Other examples and configurations may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that aspects of the present disclosure, as generally described herein and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are expressly contemplated herein.
[0074] With respect to any or all of the ladder diagrams, scenarios, and flowcharts described herein, each block and / or communication may represent processing of information and / or transmission of information according to the disclosed examples. Alternative examples are within the scope of the provided disclosure. In some examples, for example, functions described as blocks, transmissions, communications, requests, responses, and / or messages may be executed out of the order shown or discussed, including substantially simultaneously or in reverse order, depending on the functionality involved. Furthermore, more or fewer blocks and / or functions may be used in any of the ladder diagrams, scenarios, and flowcharts discussed herein, and these ladder diagrams, scenarios, and flowcharts may be combined with each other, either in part or in whole.
[0075] The blocks representing processing of information may correspond to circuitry that can be configured to perform specific logical functions of the described methods or techniques. Alternatively or additionally, the blocks representing processing of information may correspond to modules, segments, or portions of program code (including associated data). The program code may include one or more instructions executable by a processor to perform specific logical functions or operations in the method or technique. The program code and / or associated data may be stored on any type of computer-readable medium, such as a storage device, including a disk, or hard drive, or other storage medium.
[0076] Computer-readable media may also include non-transitory computer-readable media, such as register memory, processor cache, and non-transitory computer-readable media that store data for a short period of time, such as random access memory (RAM). Computer-readable media may also include non-transitory computer-readable media that store program code and / or data for a longer period of time, such as secondary or permanent long-term storage devices, such as read-only memory (ROM), optical or magnetic disks, and compact disk read-only memory (CD-ROM). Computer-readable media may also be any other volatile or non-volatile storage system. Computer-readable media may be considered, for example, to be a computer-readable storage medium or a tangible storage device.
[0077] Additionally, blocks representing one or more transfers of information may correspond to transfers of information between software and / or hardware modules within the same physical device, although other transfers of information may be between software and / or hardware modules in different physical devices.
[0078] For examples involving messaging and device information and other user information stored on one of the exemplary computing devices, the stored information may be processed in one or more ways before being stored or used, such that personally identifiable information is removed. For example, the user's identity may be treated such that information that can personally identify the user cannot be determined, or if location information is obtained (such as to the city, zip code, or state level), the user's geographic location may be generalized so that the user's specific location cannot be determined. Thus, the user may control what information is communicated, collected, or otherwise made available about the user, how that information is used, and what information is provided to the user.
[0079] While various aspects and examples have been described herein, other aspects and examples will be apparent to those skilled in the art. The various aspects and examples disclosed herein are provided for purposes of illustration and are not intended to be limiting, with the true scope being indicated by the following claims.
Claims
1. 1. A computing device comprising at least one processor and a computer-readable storage device, the computer-readable storage device coupled to the at least one processor and storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations, the operations including: In response to detecting a first user input associated with a first user profile stored on the computing device, generating a first intent corresponding to the first user input; applying a series of cross-profile intent filters to traverse a user profile hierarchy from the first user profile to a second user profile stored on the computing device, the traversal of the user profile hierarchy being based on successful resolution of each cross-profile intent filter in the series of cross-profile intent filters, the operations further comprising: identifying an application associated with the second user profile and configured to satisfy the first intent; providing functionality from the application to fulfill the first intent via the first user profile; a computing device,
2. further comprising a touchscreen display coupled to the processor and the computer-readable storage device; The computing device of claim 1 , wherein the touchscreen display is configured to display a graphical user interface.
3. The computing device of claim 2 , wherein the touchscreen display is configured to receive the first user input.
4. The computing device of claim 2 , wherein the graphical user interface is configured to display an element corresponding to a first action associated with the first intent.
5. The computing device of claim 4 , wherein the first action is selected from the group consisting of a start action, a receive action, and a broadcast action.
6. The computing device of claim 1 , wherein the application is associated with a first intent filter defined for each of a plurality of applications associated with the second user profile.
7. The computing device of claim 1 , wherein the applications include a first intent filter that is a manifest associated with each of a first plurality of applications.
8. a cross-profile strategy associated with at least one of the set of cross-profile intent filters; 10. The computing device of claim 1, wherein the cross-profile strategy is configured to control resolution with the second user profile based on successful resolution of the first intent with the first user profile.
9. The computing device of claim 1 , wherein applying the set of cross-profile intent filters to traverse the user profile hierarchy includes resolving user profiles in parent-child relationships.
10. The computing device of claim 1 , wherein applying the series of cross-profile intent filters to traverse the user profile hierarchy comprises iterative graph traversal.
11. 10. The computing device of claim 1, wherein identifying an application associated with the second user profile and configured to satisfy the first intent includes resolving the first intent by comparing a first action to a first filter associated with each of a plurality of applications included in the second user profile.
12. 10. The computing device of claim 1, wherein identifying applications associated with the second user profile and configured to satisfy the first intent includes providing a first list including the identified applications configured to satisfy the first intent.
13. The computing device of claim 12 , wherein providing the application with the ability to fulfill the first intent via the first user profile includes displaying the first list.
14. 1. A computer-implemented method comprising: In response to detecting a first user input associated with a first user profile stored on the computing device, generating a first intent corresponding to the first user input; applying a series of cross-profile intent filters to traverse a user profile hierarchy from the first user profile to a second user profile stored on the computing device, the traversal of the user profile hierarchy being based on successful resolution of each cross-profile intent filter in the series of cross-profile intent filters, the computer-implemented method further comprising: identifying an application associated with the second user profile and configured to satisfy the first intent; providing functionality from the application to fulfill the first intent via the first user profile; A computer-implemented method comprising:
15. 15. The computer-implemented method of claim 14, wherein applying the set of cross-profile intent filters to traverse the user profile hierarchy includes resolving user profiles in parent-child relationships.
16. 15. The computer-implemented method of claim 14, wherein applying the series of cross-profile intent filters to traverse the user profile hierarchy comprises iterative graph traversal.
17. 15. The computer-implemented method of claim 14, wherein identifying an application associated with the second user profile and configured to satisfy the first intent includes resolving the first intent by comparing a first action to a first filter associated with each of a plurality of applications included in the second user profile.
18. 15. The computer-implemented method of claim 14, wherein identifying applications associated with the second user profile and configured to satisfy the first intent includes providing a first list of the identified applications configured to satisfy the first intent.
19. 1. An article of manufacture comprising at least one processor and a computer-readable storage device, the computer-readable storage device coupled to the at least one processor, the computer-readable storage device causing the computing device to perform functions when executed by the at least one processor of a computing device, the functions comprising: In response to detecting a first user input associated with a first user profile stored on the computing device, generating a first intent corresponding to the first user input; applying a series of cross-profile intent filters to traverse a user profile hierarchy from the first user profile to a second user profile stored on the computing device, the traversal of the user profile hierarchy being based on successful resolution of each of the cross-profile intent filters in the series of cross-profile intent filters, the function further comprising: identifying an application associated with the second user profile and configured to satisfy the first intent; providing functionality from the application to fulfill the first intent via the first user profile; Including, product.