Control application usage based on context
By receiving contextual input signals to generate output results and using rule logic and machine training models to manage the interaction between users and applications, it solves the problem that existing technologies cannot adapt to the development of user interaction methods, and realizes flexible interaction control and non-compliant behavior reminders.
Patent Information
- Application Number
- CN202080091110.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-30
- Filing Date
- 2020-11-06
- Publication Date
- 2025-09-23
- Estimated Expiration
- 2040-11-06
AI Technical Summary
Existing technologies are unable to effectively monitor and control how users interact with computing devices, especially unable to adapt to the continuous evolution of users' interactions with their applications and devices.
Through computer-implemented technology, location-determining devices and mobile detection devices are used to receive contextual input signals, generate output results to control the interaction time between users and applications, use rule logic to express rule logic and machine training models to manage the interaction time between users and applications, and provide a flexible control mechanism.
It enables fine-grained control over user interactions with applications, adapts to new applications and devices, automatically detects and adapts to interaction methods in different contexts, and alerts supervisors to non-compliant behavior.
Smart Images

Figure CN114902213B_ABST
Abstract
Description
Background Art
[0001] Computer-implemented tools currently exist for monitoring and controlling the way users interact with computing technology. However, these tools may provide relatively crude and inflexible control mechanisms that cannot adequately keep pace with the introduction of new applications and computing devices into the market. These tools may also provide code that cannot adapt to the ever-evolving ways users interact with their applications and computing devices. Summary of the Invention
[0002] This paper describes a computer-implemented technology that allows a supervisor (e.g., a parent) to control the consumption of applications by a supervised party (e.g., the parent's child). In one implementation, it is assumed that the supervised party attempts to interact with an application. In response, the technology receives contextual input signals from one or more input devices (such as a location determination device, a movement detection device, etc.). The contextual input signals collectively provide contextual information that describes the current context affecting the supervised party. The technology then generates an output result based on the current context information and the rules expressed by the rule logic. The output result specifies the amount of time the supervised party is allowed to interact with the candidate application in the current context (in some cases, this time can be zero). The technology then controls the interaction of the supervised party with the application based on the output result. The control can take the form of allowing the supervised party to interact with the application, prohibiting the supervised party from interacting with the application, and / or reporting the supervised party's non-compliant interaction with the application. Through this process, the technology manages the amount of time the supervised party interacts with the application ("screen time").
[0003] According to another illustrative aspect, a given rule expressed by rule logic specifies an amount of time a supervised party is permitted to interact with a candidate application at a specified location (such as a school-related location, a home-related location, etc.).
[0004] According to another illustrative aspect, a given rule expressed by rule logic specifies an amount of time a supervised party is allowed to interact with a candidate application at specified times of the day and / or on a given day of the week, and so on.
[0005] According to another illustrative aspect, a given rule expressed by rule logic specifies an amount of time a supervised party is allowed to interact with an application while engaging in a specified activity. In many cases, the allowed amount of time is zero, effectively preventing the supervised party from interacting with the application. This may be appropriate when the specified activity involves driving a vehicle.
[0006] According to another illustrative aspect, the current context affecting the supervised party may include information about recently completed tasks by the supervised party, such as exercise-related tasks, homework-related tasks, etc. In some cases, the technology may determine the amount of screen time to grant the supervised party based on the supervised party's previous actions.
[0007] According to another illustrative aspect, the rule logic may correspond to a discrete set of rules, and / or a machine-trained model that implicitly expresses the rules.
[0008] According to another illustrative aspect, the technology uses machine-trained models and / or heuristic logic to automatically classify identified new applications. The technology performs this task based on multiple application classification features associated with the new application. Application classification features may include, but are not limited to, information collected from the new application itself (e.g., reflected in its metadata and other attributes), information obtained from external descriptions of the new application (e.g., provided by an application marketplace service), and information describing how users have previously interacted with the new application in different contextual settings.
[0009] According to another illustrative aspect, the technology involves generating a report describing the amount of time a supervised party interacted with at least one application in different respective contexts.A supervisory party can review the report and take appropriate action.
[0010] According to one advantage, the technology is expected to provide a control mechanism that flexibly and automatically adapts to new applications and devices introduced to the market. The technology can also automatically detect and adapt to new ways in which different supervised parties use applications and devices in different contexts. By doing so, the technology provides granular control over supervised parties' consumption of applications, for example, by considering the case where applications are used as part of a supervised party's curriculum in a school setting. The technology can also provide an effective mechanism for alerting supervisors to non-compliant behavior by supervised parties on a context-by-context basis.
[0011] The above-described techniques may be embodied in various types of systems, devices, components, methods, computer-readable storage media, data structures, graphical user interface presentations, articles of manufacture, and the like.
[0012] This Summary is provided to introduce a selection of concepts in a simplified form; these concepts are further described below in the 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. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Figure 1 An illustrative computing environment for managing interaction with an application by a supervised party (eg, a child) is shown.
[0014] Figure 2 Shown for implementation Figure 1 Illustrative computing devices of a computing environment.
[0015] Figures 3 to 5Three different user interface presentations are shown that allow a supervisor to view and modify the Figure 1 Rules automatically generated by the computing environment.
[0016] Figure 6 A user interface presentation is shown that provides an application usage report. The report shows the context-specific consumption of applications by a supervised party over a specified time period and indicates whether the consumption complies with a rule set.
[0017] Figure 7 A user interface presentation providing map-based application usage reporting is shown.
[0018] Figure 8 and Figure 9 Two notifications are shown that alert a supervisory party (eg, a parent) to non-compliant usage of an application by a supervised party.
[0019] Figure 10 is a diagram that shows how the threats faced by a supervised party (e.g., a child) evolve as the supervised party grows.
[0020] Figure 11 Shown as Figure 1 An implementation of an application classification component of another element of a computing environment.
[0021] Figure 12 Shown as Figure 1 An implementation of a usage control component for another element of a computing environment.
[0022] Figure 13 Shows that it can be used to implement Figure 1 A neural network function in terms of one or more components of a computing environment.
[0023] Figure 14 Shown by Figure 1 An overview of the training system is provided in the computing environment.
[0024] Figure 15 An illustrative architecture for distributing training tasks between client-side and server-side training functions is shown.
[0025] Figure 16 According to one illustrative implementation, Figure 1 An overview of the operations of the computing environment.
[0026] Figure 17 Shown with Figure 16 A box within a box corresponds to an overview of the control operation.
[0027] Figure 18Illustrative types of computing devices are shown that may be used to implement any aspect of the features shown in the preceding figures.
[0028] Throughout the disclosure and drawings, like numbers are used to refer to similar components and features. Figure 1 The series 200 numbers refer to features originally found in Figure 2 The series 300 numbers refer to features originally found in Figure 3 , and so on. DETAILED DESCRIPTION
[0029] This disclosure is organized as follows. Section A describes a computing environment for managing interactions of a supervised party (e.g., a child) with multiple applications in multiple contexts. Section B sets forth an illustrative method illustrating the operation of the computing environment of Section A. Section C describes an illustrative computing device that can be used to implement any aspect of the features described in Sections A and B.
[0030] As a preliminary matter, the term "hardware logic circuitry" corresponds to a processing mechanism that includes one or more hardware processors (e.g., CPUs, GPUs, etc.) that execute machine-readable instructions stored in memory, and / or one or more other hardware logic units (e.g., FPGAs) that use a task-specific set of fixed and / or programmable logic gates to perform operations. Section C provides additional information about one implementation of the hardware logic circuitry. In certain contexts, each of the terms "component," "engine," and "tool" refers to a portion of the hardware logic circuitry that performs a specific function.
[0031] In one instance, the illustrative separation of various parts in the figures into distinct units may reflect the use of corresponding distinct physical and tangible parts in an actual implementation. Alternatively or additionally, any single component shown in the figures may be implemented by multiple actual physical components. Alternatively or additionally, the depiction of any two or more separate components in the figures may reflect different functions performed by a single actual physical component.
[0032] Other figures describe these concepts in the form of flow charts. In this form, certain operations are described as constituting different blocks that are executed in a specific order. Such an implementation is illustrative and not restrictive. Certain blocks described herein can be combined together and executed in a single operation, certain blocks can be decomposed into multiple constituent blocks, and certain blocks can be executed in an order different from the order described herein (including in a manner of executing blocks in parallel). In one implementation, the blocks associated with the processing-related functions shown in the flow chart can be implemented by the hardware logic circuit system described in Part C, which can in turn be implemented by one or more hardware processors and / or other logic units comprising a task-specific set of logic gates.
[0033] As for terminology, the phrase "configured to" encompasses various physical and tangible mechanisms for performing the identified operations. These mechanisms may be configured to perform the operations using hardware logic circuitry in Part C. The term "logic" similarly encompasses various physical and tangible mechanisms for performing tasks. For example, each processing-related operation shown in a flowchart corresponds to a logic component for performing that operation. A logic component may perform its operation using hardware logic circuitry in Part C. When implemented by a computing device, a logic component represents an electrical element that is a physical part of the computing system, regardless of how it is implemented.
[0034] Any storage resource or any combination of storage resources described herein may be considered a computer-readable medium. In many cases, a computer-readable medium refers to some form of physical and tangible entity. The term computer-readable medium also includes propagated signals, such as those transmitted or received via physical conduits and / or air or other wireless media. However, the specific term "computer-readable storage medium" explicitly excludes propagated signals themselves, while including all other forms of computer-readable media.
[0035] The following explanation may identify one or more features as “optional”. This type of statement should not be interpreted as an exhaustive description of features that may be considered optional; that is, other features may be considered optional even though this is not explicitly stated in the text. Furthermore, any description of a single entity is not intended to exclude the use of multiple such entities; likewise, a description of multiple entities is not intended to exclude the use of a single entity. Furthermore, while the description may explain certain features as alternative ways of performing the identified function or implementing the identified mechanism, these features may also be combined together in any combination. Furthermore, unless expressly stated otherwise, the term “multiple” refers to two or more items and does not necessarily imply “all” items of a particular kind. Unless otherwise stated, the descriptors “first”, “second”, “third”, etc. are used to distinguish between different items and do not indicate an ordering between items. Finally, the term “exemplary” or “illustrative” refers to one implementation among many potential implementations.
[0036] A. Illustrative Computing Environment
[0037] A.1. Overview
[0038] Figure 1 An illustrative computing environment 102 is shown through which a supervisor can manage a supervised party's interaction with an application. It performs this task by automatically or semi-automatically managing the amount of time ("screen time") provided to the supervised party for interacting with the application in different contexts.
[0039] In most of the examples presented below, the supervised party corresponds to a parent and the supervised party corresponds to the parent's child. However, the principles described herein can be applied to any person or entity that is assigned a role of monitoring and / or controlling the application-related behavior of another person or entity. An "application" corresponds to a computer-accessible function and / or content with which the supervised party can interact. An application can correspond to a locally downloaded program, a server-side program, a program with logic distributed across two or more locations, network-accessible static or dynamic content (e.g., a website), etc., or any combination thereof.
[0040] The following will first refer to Figure 1 Provides a logical description of the computing environment 102. Then reference will be made to Figure 2 A description is provided of computing devices that may implement computing environment 102 .
[0041] from Figure 1Starting at the top of Figure 1, the context determination component 104 can receive context input signals from multiple sources 106 of context information. Context information refers to any information related to a current situation affecting the supervised party. A context input signal refers to any electronic signal that conveys context information. The context determination component 104 can receive context input signals using any technology or combination of technologies, including push-based technologies (where sources independently forward context input signals to the context determination component 104), pull-based technologies (where the context determination component 104 requests sources 106 to provide context input signals), and the like.
[0042] More specifically, the context determination component 104 can collect at least two types of context information: short-term context information 108 and long-term context information 110. The short-term context information 108 is distinguished from the long-term context information 110 in that the short-term context information 108 is expected to change more frequently than the long-term context information. Without limitation, the short-term context information 108 may include information about the following items: the current location of the supervised party; the type of institution or site associated with the current location; the current behavior of the supervised party (e.g., whether the supervised party is moving); information about the user computing device with which the supervised party is currently interacting; the current time; the current date; the current weather; other people within a specified distance of the supervised party, etc. Without limitation, the long-term context information 110 may include information about the following items: the current age of the supervised party; the city or town in which the supervised party resides; the school attended by the supervised party; user computing devices frequently visited by the supervised party, etc.
[0043] In general, the functionality described herein may employ various mechanisms to ensure that any user data is processed in a manner consistent with applicable laws, social norms, and the expectations and preferences of individual users (including supervisory and supervised parties). For example, the functionality may allow any user to explicitly opt-in (and then explicitly opt-out) of the functionality's provisions. The functionality may also provide appropriate security mechanisms to ensure the privacy of user data (such as data anonymization mechanisms, encryption mechanisms, password protection mechanisms, etc.). The functionality may also provide appropriate mechanisms to allow users to delete previously provided data.
[0044] The source 106 of context signals may include a location determination device (not shown) for determining the location of the supervised party. For example, the location determination device may correspond to a mechanism provided by a user computing device (e.g., a smartphone) carried by the supervised party. The mechanism may determine the location of the supervised party based on triangulation of satellite and / or terrestrial signals, based on the proximity of the user computing device to a wireless beacon signal transmitter, based on dead reckoning techniques, etc. The context determination component 104 may determine the type of institution at which the supervised party is currently located based on a lookup table that maps location information to institution type information. The source 106 may also include a movement determination device (not shown) for determining the type of movement exhibited by the supervised party. For example, the movement determination device may include an inertial measurement unit (IMU) provided by the user computing device carried by the supervised party. The IMU may provide movement signals reflecting how the user computing device moves in space, for example, using one or more accelerometers, one or more gyroscopes, one or more magnetometers, etc., or any combination thereof.
[0045] The movement determination device may also include analysis logic for classifying the type of motion exhibited by the movement signal. For example, the analysis logic may include a machine-trained classification model that determines the type of movement exhibited by the movement signal stream, for example, indicating whether the supervised party is likely to be walking, riding in a car, standing still, running, jumping, riding a bicycle, etc. The analysis logic may determine whether the user is exercising by determining whether the movement of the supervised party matches the movement patterns typically exhibited by people performing different types of exercise. The analysis logic may determine whether the supervised party is likely to be riding public transportation by determining whether the movement of the supervised party corresponds to known routes and movement patterns associated with different modes of public transportation. The machine-trained classification model used by the analysis logic may correspond to any type of deep neural network (DNN) (e.g., recurrent neural network, etc.), hidden Markov model, etc.
[0046] Source 106 may also originate from more specialized equipment that monitors the behavior of the supervised party. Without limitation, source 106 may include monitoring mechanisms provided by exercise equipment, a car, any Internet of Things (IoT) smart devices in the supervised party's home, or other environments visited by the supervised party.
[0047] Sources 106 may also include one or more data repositories that store profile information about the supervised party. This profile information may include metadata describing the supervised party's current age, city and state of residence, school, user computing device, etc. The profile information may be provided by the supervised party themselves or by a supervisor of the supervised party. Sources 106 may also include any of the following: a timekeeping component for identifying the current date and current time; a calendar application for maintaining information about the supervised party's scheduled activities; a web-accessible social networking service for providing information about the supervised party's friends and other contacts; a web-accessible service for providing information about current weather and expected future weather, etc. These sources of contextual information and associated instances are described by way of example and not limitation.
[0048] As a further illustration, the above explanations set forth examples where "context information" is defined by the user's current state, e.g., describing what the supervised party is currently doing, where the user is currently located, etc. In some cases, the current state of the supervised party may also be described by a series of actions that the supervised party has recently completed for any time window of interest; these actions may be said to be inherent to the current state of the supervised party because they inform the supervised party's current state. For example, assume that one or more monitoring devices provide context signals indicating that the supervised party has completed various tasks that day, such as exercising for at least 30 minutes. In this case, the current state of the supervised party will reflect that the supervised party has completed these actions. In another case, one or more monitoring devices provide context signals indicating that the supervised party has traversed a particular path to reach the current location. In this case, the current state of the supervised party will reflect not only the user's current location, but also the trajectory that terminates at the current location, and so on.
[0049] As will be described below, in some cases, the computing environment 102 may determine the amount of screen time to grant the supervised party based on historical considerations present in the supervised party's current state. For example, if the computing environment 102 determines that the supervised party has run three miles that day, and / or if the supervised party has interacted with education-related applications for a specified amount of time that day, etc., the computing environment 102 may provide the supervised party with thirty more minutes of time to interact with a gaming application.
[0050] The computing environment 102 includes at least two primary decision-making elements: an application classification (“app classification”) component 112 and a usage control component 114 . Figure 1 These two components are illustrated as separate and distinct decision-making elements. However, as will be explained below, the computing environment 102 may alternatively provide a single decision-making component that performs multiple decision-making functions, such as those attributed to the app classification component 112 and the usage control component 114.
[0051] The app classifier component 112 assigns at least one label to the application that describes the primary function it performs. In some cases, the app classifier component 112 performs this operation for a new application, meaning an application that it has never encountered before (e.g., because it is newly introduced to the market). In other cases, the app classifier component 112 performs this operation to update or confirm a previous classification provided to the application.
[0052] Different environments may employ different sets of categories for categorizing applications. Without limitation, in one such environment, the app categorization component 112 may apply at least the following tags to applications: education, entertainment, gaming, social networking, transportation, safety, etc. Applications tagged with the "education" tag primarily serve education-related functions. Applications tagged with the "entertainment" tag provide any type of entertainment-related media content (such as movies, videos, songs, etc.) to the supervised party. Applications tagged with the "gaming" tag provide gaming functionality. Applications tagged with the "social networking" tag provide a wide range of services typically offered by social media sites. Applications tagged with the "transportation" tag provide assistance to the supervised party when operating a vehicle (such as by providing directions). Applications tagged with the "safety" tag provide emergency assistance to the supervised party, for example, by calling the police upon request. These tags are to be understood as illustrative and not limiting; similarly, other environments may categorize applications in other ways. In some cases, an application provides two or more functions. In such cases, the app categorization component 112 may assign two or more different tags to the application.
[0053] Additionally or alternatively, the app classification component 122 can add labels to the application that describe the age appropriateness of the application, i.e., by describing the types of users who can appropriately interact with the application. These labels can also explicitly identify the likelihood that the application will expose the supervised party to objectionable content, such as adult content, depictions of violence, etc. The labels can also identify the risk that the application may expose the supervised party to certain threats, such as opportunities to interact with strangers, opportunities to make purchases, opportunities to share personal information, etc.
[0054] In one implementation, the app classification component 112 operates by mapping information about a new application (referred to herein as "app classification information") to at least one label associated with the new application. The app classification information originates from one or more sources 116. The app classification component 112 then stores the label it applies in an app information data repository 118. More specifically, in one implementation, the app classification component 112 performs its classification function based on a heuristic rule set or algorithm. Alternatively or additionally, the app classification component 112 performs its function based on a machine-trained model 120. As described in more detail below in Section A.4, the training system 122 generates the machine-trained model 120 based on a set of training examples stored in a data repository 124.
[0055] Sources 116 include the new application itself. For example, sources 116 may include metadata files associated with the new application, code associated with the new application (if available for review), information revealed by static analysis of the code, information revealed by execution of the new application, and the like. Other sources 116 are external to the new application. For example, such sources may correspond to marketplace sites from which supervised parties download new applications. Another external source may correspond to sites that provide reviews of new applications.
[0056] Additionally or alternatively, source 116 may include a data store that provides application usage information. This information, if available, describes the scenarios in which different users have used the new application in the past. For example, application usage information may reveal that the new application is commonly used in a school environment, which is strong evidence that the new application serves an education-related function. Additionally or alternatively, source 116 may include a data repository that provides information that a supervisor has manually provided on one or more previous occasions. This information, if available, may reveal, among other things, labels that a supervisor has manually applied to the new application, and / or constraints that a supervisor has manually applied to the new application. Other sources of app classification information are also possible.
[0057] The computing environment 102 can invoke the services of the app classification component 112 in response to various triggering events. In one instance, the computing environment 102 invokes the new app classification component 112 when a supervised party downloads or activates a new application that has not been previously assigned a label. Alternatively or additionally, the app classification component 112 can periodically revisit the application's previous classification to ensure that it remains accurate in light of new evidence collected. This updating behavior is particularly useful for addressing situations where application usage patterns evolve over time. Changes in usage may expose users to new threats.
[0058] Given the current context in which a supervised party seeks to interact with an application, usage control component 114 performs the function of controlling the supervised party's interaction with the application. To perform this task, usage control component 114 maps usage control input information to output results. The output results provide an indication of whether the supervised party is allowed to interact with the application, and if so, the conditions under which the supervised party is allowed to interact with the application.
[0059] The usage control input information includes all the data needed by the usage control component 114 to make its decision. For example, the usage control input information includes all or some of the current context information provided by the context determination component 104. As described above, the current context information describes the current environment in which the supervised party seeks to interact with the application, including but not limited to the current location of the supervised party, the current time, the current behavior exhibited by the supervised party, relevant previous behaviors that lead to and inform the current state of the supervised party, etc. The current context information also describes the long-term context, such as the current age of the supervised party. The usage control input information may also include any information about the application that the supervised party is attempting to call, as provided by the app information data repository 118. The usage control input information also includes information about the amount of time (if any) that the supervised party interacted with the application under consideration within a specified time span (such as, within the last week). This information originates from the usage information data repository 126.
[0060] In some implementations, the usage control component 114 also operates based on a set of rules provided in the rules data store 128. At least some of the rules specify the amount of time a supervised party is allowed to interact with the application in question within a specified time span (e.g., within a week) in different corresponding contexts. For example, in one case, the rules data store 128 may provide a rule specifying that a supervised party is allowed to interact with the application for four hours within a week in any context (e.g., regardless of time, location, etc.). In another case, the rules data store 128 may include a rule specifying that a supervised party is allowed to interact with the application for four hours, but only when the supervised party is at a specific location and / or only when the supervised party interacts with the application within a specific time span (e.g., within a specific time of day). In yet another case, the rules data store 128 may include a rule granting the supervised party four hours to interact with the application; but it may also include another rule prohibiting the supervised party from interacting with the application while in a moving vehicle. In yet another case, the rules data store 128 may include multiple rules applicable to supervised parties with different corresponding age ranges. These kinds of rules are mentioned here by way of example, not limitation; the rules data store 128 may include more complex rule sets suitable for the application in question.
[0061] The computing environment 102 can implement the rules in the rules data store 128 in different respective ways. In a first approach, the computing environment 102 can provide a predetermined manually crafted rule set, eg, as specified by any supervisory party(ies) and / or other entity.
[0062] In a second approach, the training system 122 provides a rule generation component ( Figure 1 ). For example, in a preliminary rule generation operation, the rule generation component may enumerate a set of popular scenarios by pairing each candidate application with multiple contexts in which the application may be consumed. For each scenario, the rule generation component may use heuristics and / or machine-trained models to assign an amount of time that the supervised party is allowed to interact with the application, given the context associated with the scenario. In other words, in this case, the rule generation component generates a parameterized set of rules and uses heuristics and / or machine-trained models to assign values to the variables in those rules. A merely illustrative rule may indicate that teenagers aged 13-17 are allowed to use any combination of social networking applications for a total of 5 hours per week, but not while driving.
[0063] In the third approach, the rule generation component generates a general machine-trained model rather than explicitly providing a discrete set of rules (as in the second approach). The usage control component 114 uses the model to map usage control input information to a screen time value. The screen time value indicates the amount of time (if any) the supervised party is allowed to interact with the identified application within a specified time span. In other words, in the third approach, the model corresponds to a set of weights and bias values learned by the training system 122. The weights and bias values implicitly capture the rules that were explicitly expressed in the second approach. Other ways of implementing rule logic in the data repository 128 are also possible.
[0064] Each of the above approaches has its own potential advantages. For example, the second technique makes it easier for both the supervisor and the supervised party to understand the restrictions that apply to the supervised party's consumption of the application. This, in turn, allows the supervisor to manually customize any of these rules. The third approach may be more general and flexible than the first and second approaches. This is because, as opposed to discrete rule sets, general machine-trained models may express a richer range of possibilities.
[0065] The usage control component 114 itself operates in different ways depending on how the rules are implemented. Consider the case where the rule data repository 128 provides a discrete set of rules. The usage control component 114 can operate by using the current context information as a search keyword to find one or more rules applicable to the current situation in the rule data repository 128. Given the current context, the usage control component 114 then applies (multiple) rules to determine whether the supervised party is allowed to interact with the application in question. For example, assume that a supervised party aged 13 to 17 attempts to interact with an entertainment-related application in her home. The usage control component 114 can use this context information to identify one or more rules that apply to this particular context. Assume that one such identification rule indicates that the supervised party is allowed to interact with the application for four hours in a week, but not if the supervised party is currently riding in a moving vehicle. When applying this rule, the usage control component 114 can first consult the information provided by the movement determination device to determine whether the supervised party's user computing device is currently displaying movement indicating that the supervised party is currently riding in a vehicle. If the supervised party is not moving, the usage control component 114 can check the usage information provided in the data repository 126 to determine whether the supervised party has used up his or her allotted screen time for the application. If these tests show that the supervised party has not used up his or her remaining time and the supervised party is not riding in a vehicle, the usage control component 114 can allow the supervised party to call and use the application. If these conditions are not met, the usage control component 114 can prohibit the supervised party from calling the application, or allow the supervised party to interact with the application while marking the use as non-compliant. The computing environment 102 can immediately notify the supervisor of such non-compliant use and / or simply record it for the supervisor to consider later.
[0066] The usage control component 114 can prohibit the use of an application in various ways, for example, by sending an application blocking instruction to an operating system component; the operating system component can execute the instruction by preventing the supervised party from launching the application. The usage control component 114 can also warn the supervised party currently using the application that the amount of time available for the supervised party to use the application is about to expire. Once the available time reaches zero, the usage control component 108 can notify the supervised party and close the application.
[0067] In another implementation, it is assumed that the rules governing the decisions made by usage control component 114 are encapsulated in a unified machine learning model rather than a discrete set of rules. Here, usage control component 114 feeds usage control input information to the model. The model provides a screen time value that indicates the amount of time the supervised party is allowed to interact with the application. Usage control component 114 can then determine whether to allow the supervised party to interact with the application in the same manner as described above to provide a final output result.
[0068] In some implementations, usage control component 114 may also make its decisions based on additional logic, such as, for example, as shown in a heuristic algorithm and / or another machine-trained model 130. For example, the additional logic may handle a situation where usage control component 114 identifies two different discrete rules that match the current context. This may occur in different situations, such as when the application under consideration has two or more labels associated with different respective functions that it performs. The additional logic may address this situation by generating a combined constraint that represents the logical union of the two or more rules. In some cases, this may be reduced to selecting a rule that imposes a stricter constraint on the behavior of the supervised party.
[0069] Note that, in general, Figure 1 The computing environment 102 is shown as potentially applying at least three types of heuristic algorithms and / or machine-trained models. For example, a first logic (e.g., associated with the machine-trained model 120) classifies new applications. A second logic corresponds to the rule logic in the rule data repository 128. A third logic (e.g., associated with the machine-trained model 130) can assist in the decision-making performed by the usage control component 114. However, in another implementation, the usage control component 114 can use a single machine-trained component that overlaps all three of the aforementioned functions.
[0070] Assuming that the supervised party is allowed to interact with the application, the usage monitoring component 132 monitors and records the amount of time the supervised party interacts with the application. As use continues, the usage monitoring component 132 may also periodically decrement the remaining time value. This value reflects the remaining time for the supervised party to interact with the application. In some cases, the usage monitoring component 132 may manage usage information for two or more contexts of the same application. For example, the usage monitoring component 132 may record the amount of time the supervised party interacts with the same application at two corresponding locations, two corresponding times of the week, etc. The computer environment 102 may apply two corresponding time limits to these two contexts. In another implementation, the usage monitoring component 132 may maintain a single log describing the use of each application, as well as metadata describing the context associated with each use. The usage monitoring component 132 may reconstruct the amount of time a user spends interacting with the application in a specific context by extracting context-related usage information and then aggregating the time values specified therein.
[0071] The computing environment 102 can invoke the services of the usage control component 114 based on different triggering events. In one case, the computing environment 102 can invoke the usage control component 114 when the supervised party attempts to activate an application (referred to herein as a candidate application). In another case, it is assumed that the supervised party has access to the application set 134, for example, these applications are loaded on the supervised party's user computing device or are otherwise accessible to the supervised party. Here, the computing environment 102 can proactively determine the subset of applications currently available to the supervised party and then notify the supervised party of the subset. For example, given the current context, the computing environment 102 can hide or otherwise de-emphasize icons associated with applications that are not available to the supervised party.
[0072] Usage control component 114 can also update its conclusions as the supervised party continues to interact with the application. This may be appropriate because the context affecting the supervised party may change. For example, the supervised party may move from a first location to a second location while interacting with the application. Usage control component 114 can apply a first set of rules at the first location and a second set of rules at the second location. More generally, usage control component 114 can recalculate its output results in response to any changes in context, including location, time of day, proximity to other people, etc.
[0073] The user interface (UI) component 136 enables a supervisory party to interact with the computing environment 102 to perform various tasks. For example, the UI component 136 can provide at least one user interface (UI) presentation that allows the supervisory party to modify any rule automatically selected by the rule generation function. The UI component 136 can also provide at least one UI presentation that allows the supervisory party to view a report that conveys the supervised party's consumption of applications within a specified time span (e.g., the past 7 days). The supervisory party can interact with the UI component 136 via a user computing device 138. Subsection A.2 below provides additional information regarding illustrative user interface presentations that can be presented by the user interface component 136.
[0074] Although not shown, computing environment 102 may include another user interface (UI) component that provides screen time management information and control options to the supervised party. For example, the UI component may remind the supervised party of the remaining available time allocated to him or her for interacting with the application.
[0075] Figure 2 Shown for implementation Figure 11. An illustrative computing device 202 of the computing environment 102 is shown. The computing device 202 includes one or more servers 204 (including a representative server 206) coupled to a plurality of user computing devices 208 (including a representative user computing device 210) via a computer network 212. It is assumed that a supervised party uses the user computing device 208 to interact with a plurality of applications. It is assumed that a supervising party can use other user computing devices 214 (including a representative user computing device 216) to interact with the computing environment 102 via the computer network 212. Although not shown, the computing device 202 may also include any number and variety of specialized devices, such as fitness equipment, smart home appliances, etc.
[0076] At least some of the applications with which the supervised parties interact may be installed locally on the supervised parties' user computing devices 208. For example, a representative user computing device 210 includes a collection of locally stored applications 218. Additionally or alternatively, any supervised party may use its respective user computing device 208 to interact with server-side applications, for example, using browser functionality provided by the user computing device 208. For example, one or more servers 204 provide server-side applications 220. Still other applications provide logic distributed between the servers 204 and the user computing devices 208.
[0077] Any user computing device may correspond to a fixed workstation-type computing device, a laptop computing device, any type of handheld computing device (e.g., a smartphone, a tablet-type computing device, etc.), a wearable computing device, a mixed reality computing device, an Internet of Things (IoT) device, etc., or any combination thereof. Computer network 212 may correspond to a local area network, a wide area network (e.g., the Internet), etc., or any combination thereof.
[0078] Each user computing device may include mechanisms to facilitate contextual information. For example, a representative user computing device 210 operated by a supervised party includes a location determination device 222 that determines the current location of the user computing device 210. For example, the location determination device 222 may correspond to a global positioning system device, a base station signal triangulation device, a beacon signal detection device, or the like. The representative user computing device 210 also includes a movement determination device 224 for determining the type of movement exhibited by the user computing device 10. As described above, the movement determination device 224 may include one or more accelerometers, one or more gyroscopes, one or more magnetometers, or the like. The movement determination device 224 may also include analysis logic for classifying movement signals provided by the movement determination device 224, optionally based on signals provided by the location determination device 222.
[0079] Although not shown, each user computing device may also include other context sensing devices. For example, the representative user computing device 210 may include a near field communication (NFC) mechanism that senses a beacon signal emitted by another user computing device. Based on the identity information in the beacon signal, the NFC mechanism may determine that a specific person is within a specified distance of the supervised party using the representative user computing device 210.
[0080] The above components of computing environment 102 can be distributed in various ways. Figure 2 Between the devices shown. Figure 2 This is illustrated by showing that the representative server 206 may include any server-side application management functionality 226 , the representative supervised user computing device 210 may include any client-side application management functionality 228 , and the representative supervisory user computing device 216 may likewise include any client-side application management functionality 230 .
[0081] For example, in one implementation, each supervised user computing device can implement the context determination component 104, the app classification component 112, and the usage monitoring component 132. Each supervising user computing device implements the UI component 136. One or more servers implement the training system 122 and the associated data repository 124. In this implementation, the training system 122 updates the model and downloads the model to each supervised user computing device.
[0082] In another implementation, any component of the computing environment 102 can be distributed in any manner between the user computing devices (208, 214) and the server 204. For example, as described below, each supervised user computing device can implement a local version of the training system 122. The local training system can personalize the default model received from the server-side training system. Similarly, the information provided in the app information data store 118, the rule data store 128, and the usage information data store 126 can be distributed in any manner between the client device and the server-side device.
[0083] A2. Illustrative User Interface Experience
[0084] This subsection describes illustrative user interface (UI) presentations that a user interface (UI) component 136 can present to a supervisory party (e.g., a parent) or any other authorized user or entity. These UI presentations are presented in the spirit of illustration, not limitation. Other implementations of the UI component 136 can produce UI presentations that differ from the UI presentations described in this subsection in terms of the information presented in the UI presentation, the organization of that information, and / or the control features through which a supervisory party can interact with the UI presentation. The UI component 136 can represent logic provided by each supervisory party user computing device and / or by one or more server-side computing devices.
[0085] first, Figure 3 A UI presentation 302 is shown that allows a supervisor to view and modify the rules provided in the rule data repository 128. In one case, these rules correspond to discrete rules generated by a rule generation component, for example, by enumerating different rules and then providing values for the variables expressed by these rules. In another case, the rules correspond to examples generated by a general machine-trained model (generated by the rule generation component). That is, in this case, the UI component 136 generates rules by mapping different instances of input information describing different corresponding contexts to output information (e.g., screen time values) using a machine-trained model.
[0086] The UI presentation 302 optionally includes a portion 304 identifying the supervised party. Here, it is assumed that the supervised party is a teenager between the ages of 13 and 17. The UI presentation 302 includes another portion 306 describing a set of rules that govern the supervised party's consumption of different applications. More specifically, the UI presentation 302 includes a tabbed control feature 308 that allows the supervisor to select a filter factor. In response, the UI component 136 presents information about the rules from the perspective or pivot point defined by the selected filter factor.
[0087] exist Figure 3 , the supervisory party has activated the "by application" filter factor. In response, the UI component 136 presents a list of applications in the leftmost column 310. For example, the UI component 136 can list all applications identified in the app information data repository 118. In another implementation, the UI component 136 lists a subset of the applications identified in the app information data repository 118, such as only applications that have been downloaded by the supervised party to his or her user computing device, and / or any applications that the supervisory party has previously approved for use by the supervised party. The UI component 136 can rank these applications based on any factor or combination of factors. For example, the UI component 136 can rank these applications by how often the supervised party has accessed these applications on previous occasions, or in alphabetical order, or by category, etc.
[0088] The UI component 136 can annotate any information item in the UI presentation 302 with an indicator (here, an asterisk "*") to indicate that the information item has been automatically selected by the computing environment 102. For example, consider the first row 312 of information items in the UI presentation 302 associated with an application named "MathHelp". In the second column 314, the app classification component 112 has previously classified the application as education-related. In the third column 316, the rule generation component has specified a set of constraints that apply to the supervised party's consumption of the application for different possible contextual conditions. The fourth column 318 provides a key for interpreting the information items in the third column 316. For example, the first constraint in the row 312 indicates that the supervised party is prohibited from using the Math Help program while riding in a vehicle, regardless of any other contextual factors that may apply. The second restriction is that the supervised party can use the Math Help program indefinitely within a specified reporting period (e.g., within a week), provided that such use occurs while the supervised party is in school. The third constraint listed indicates that the supervised party may use the math help program at locations other than school, provided that her use does not exceed five hours during the reporting period.
[0089] Each of these information items in row 312 is annotated with an asterisk. This indicates that some component in computing environment 102 has automatically selected this information item. UI component 136 allows the supervisor to change any information item in UI presentation 302 using UI control techniques. For example, UI component 136 can allow the supervisor to activate an information item presented on a touch-sensitive display screen and / or to click on an information item presented on any display screen using a mouse device, etc. UI component 135 can be used to change the information item by displaying an edit control box ( Figure 3 The supervised party can enter new information in the edit control box, for example, by selecting a new category for the application category from the drop-down list of categories, by selecting a new time limit in the third column 316, etc. Figure 3 In the example of FIG, it is assumed that the supervised party has changed the constraint-related information associated with information items 320 and 322; therefore, these information items are no longer marked with an asterisk.
[0090] The usage control component 136 can enforce the second listed constraint by setting a geo-fence perimeter around the geographic location associated with the supervised party's school. The usage control component 136 can then determine at each instant whether the location signal obtained from the location determination device 222 indicates that the supervised party's user computing device is currently located within the perimeter.
[0091] Note that the time limit specified in third column 316 can change dynamically over time based on different contextual signals and based on different evaluations of those contextual signals by the rule logic. For example, UI presentation 302 includes annotation 324 that reminds the supervising party that the supervised party has been provided with more than half an hour for interacting with the entertainment-related application because the contextual signals revealed that the supervised party has met certain exercise-related goals.
[0092] Go forward to Figure 4 , when the supervised party selects the "By Category" tab in the tabbed control feature 308, the UI component 136 displays the UI presentation 402. In the first column 404, the UI component 136 presents a set of application categories. In the second and third columns (406, 408), the UI component 136 presents the default constraints that the computing environment 102 selects and assigns to all applications in each category, unless an exception applies to one or more applications in the category. In the fourth column 410, the UI component 136 identifies the applications associated with each category. Although not shown, the UI component 136 can also alert the supervisory party to applications that are exceptions to the default constraints identified in the UI presentation 402. Applications that are exceptions to the default constraints are governed by their own set of constraints; the supervisory party can Figure 3 The UI 302 shown views these constraints.
[0093] Figure 5 502 is shown as the UI presentation displayed by the UI component 136 when the supervising party selects the "By Location" tab in the tabbed control feature 308. In the first column 504, the UI component 136 presents map snippets associated with different geographic areas that play a role in the constraints applied to the application. For example, the first map snippet 506 shows the perimeter around the supervised party's school. When the location determining device 222 indicates that the supervised party's user computing device is within the perimeter, the supervised party is considered to be at school. The second map snippet 508 shows the perimeter around the supervised party's home. When the location determining device 222 indicates that the supervised party's user computing device is within the perimeter, the supervised party is considered to be at home.
[0094] In the second column 510, the UI component 136 lists a group of applications that have constraints that depend on the presence or absence of the corresponding location identified by the supervised party in the first column 504. In the third column 512, the UI component 136 provides the name of the location identified in the first column 504. In the fourth column 514, the UI component 136 identifies the corresponding category of the application. And in the fifth column 516, the UI component 136 describes the constraints that apply to the corresponding application when the supervised party is at the specified location. For example, the first row 518 in the UI presentation 502 indicates that no time restrictions apply to the supervised party's interaction with the math help application as long as the supervised party is within the geographic perimeter associated with the supervised party's school. Note, however, that the UI component 136 can define other restrictions that apply to the program when it is consumed at other locations. That is, Figure 5 It is understood to provide a filtered view of the constraints applicable to application consumption within a specific location.
[0095] As previously described, the restrictions applicable to an application relate to the amount of time that a supervised party is allowed to interact with the application within a specified time span. If the amount of time allowed is zero, then the computing environment 102 effectively blocks the supervised party from interacting with the application. Additionally or alternatively, the computing environment 102 may generate and apply other constraints applicable to the supervised party's consumption of the application. Possible additional constraints may include: the amount of money spent by the supervised party via the application; the number of messages sent by the supervised party via the application; the number of new contacts (e.g., new "friends") established by the supervised party via the application, etc. For example, the computing environment 102 has defined a money-related restriction for the application PizzaOrder, which indicates that a supervised party cannot make purchases exceeding $20 via the application during a given reporting period, where such purchases are made from the supervised party's home. Information item 520 conveys this constraint.
[0096] Figure 6 A UI presentation 602 is shown that the UI component 136 generates to report the supervised party's consumption of different applications within a reporting period (for example, here a time span of one week). In a merely illustrative case, the UI component 136 constructs the UI presentation 602 in the same general manner as the UI presentations previously discussed. That is, the UI presentation 602 includes a first portion 604 that identifies the supervised party, and a second portion 606 that provides information about the supervised party's consumption of applications within the reporting period. However, instead of providing constraint information, the second portion 606 in the UI presentation 602 presents information describing the amount of time the supervised party spent interacting with different applications. Although not shown, the UI component 136 can also present information about other consumption metrics, such as the number of messages sent by the supervised party, the amount of money spent by the supervised party, etc.
[0097] More specifically, the UI presentation 602 includes a tabbed control feature 608 that allows the supervisor to select different filter factors. Figure 6 , the supervisor has selected the "By App" tab. In response, in a first column 610, the UI component 136 presents a list of applications that the supervised party interacted with during the reporting period. A sort control feature 612 allows the supervisor to instruct the UI component 136 to sort the applications in a particular manner. Here, the supervisor has selected a sort option that causes the UI component 136 to sort the applications by the total amount of time that the applications were used during the reporting period, from largest to smallest. That is, the UI component 136 displays the application with which the supervised party interacted for the largest amount of time at the top of the list, displays the application with which the supervised party interacted for the next largest amount of time as the second entry in the list, and so on.
[0098] In the second column 614, the UI component 136 shows the categories associated with the applications in the first column 610. In the third column 616, the UI component 136 shows the amount of time the supervised party spent interacting with the applications in the first column 610. More specifically, it is noted that the UI component 136 can show different entries for different corresponding contexts in which the supervised party consumed each application. For example, consider the math helper program identified in the first row 618 of the UI presentation 602. Assume that the (multiple) rules applicable to the program convey that the supervised party can freely interact with the program for an unlimited time, provided that the supervised party interacts with the program at school. However, the (multiple) rules may also limit the supervised party's interaction with the program at all locations outside the perimeter associated with the supervised party's school. The UI component 136 accordingly reports the supervised party's consumption at the same granularity, for example, by indicating that the supervised party spent seven hours interacting with the program at school and one hour interacting with the program outside of school. In another implementation, the UI component 136 can aggregate usage information by location and / or any other contextual factor(s) in the data store 128. It can then use the entries in the UI presentation 602 for the most popular clusters. Although not shown, the UI component 136 can also provide an entry for each application that shows the total amount of time the supervised party spent interacting with the application across all contexts.
[0099] The fifth column 620 shows comments that help the supervisor interpret the usage information presented in the fourth column 616. For example, the UI component 136 can display comments when the supervised party's consumption is commendable (such as in the case of the supervised party's consumption of a math helper app) and when the supervised party's consumption is unsatisfactory (such as the supervised party's consumption of an Instagram app while moving in a vehicle). The UI component 136 can generate each message using a separate set of rules, for example, by using a lookup table to map input information related to the supervised party's consumption of an application to an appropriate message; the input information indicates the application under consideration, the relevant context, the restrictions applicable to the situation, and the amount of time the supervised party used the application during the reporting period.
[0100] The UI component 136 may provide various tools that allow the supervisor to interact with the information presented in the UI presentation 602. As a first tool, the UI component 136 may allow the supervisor to click or otherwise activate an entry in the UI presentation 602, for example, by activating an entry associated with the YouTube application. In response, the UI component 136 may present additional information 622 that shows a breakdown of the supervised party's consumption of the application during the reporting period (here, a week). The UI component 136 may also present a command feature 624 that allows the supervisor to view and / or edit restrictions applicable to the application.
[0101] In addition, the UI component 136 provides a command feature 626 that allows the supervisor to contact the supervised party, for example, to provide praise for satisfactory application consumption behavior and negative criticism for unsatisfactory application consumption behavior. In response to the supervisor's activation of the command feature 626, the computing environment 102 can contact the supervised party by opening any type of chat session, by sending an email message, by making a phone call, etc.
[0102] The UI component 136 may present other UI presentations for viewing usage information that are similar to Figure 4 and Figure 5 etc. are parallel to the types of UI presentation shown in . For example, the UI component 136 can present a map to the supervisory party that shows the common locations of applications consumed by the supervised party. The UI component 136 can annotate the map with usage information, particularly highlighting non-compliant usage. Additionally or alternatively, the UI component 136 can present a list of locations and usage information associated therewith. The UI component 136 can also provide various control features that allow the supervisory party to interact with the map. For example, the UI component 136 can allow the user to select an area within the map (e.g., by drawing the perimeter of the area). In response, the UI component 136 can show the supervised party's consumption of applications within the area, highlighting non-compliant usage.
[0103] For example, Figure 7 A UI presentation 702 is shown that summarizes the supervised party's consumption of applications at the school. A map fragment display 704 shows a perimeter associated with the supervised party's school. The UI presentation 702 may provide control features that allow the supervising party to move the perimeter, change its size, change its shape, etc. The UI presentation 702 also provides usage information describing the amount of time the supervised party spends consuming different applications at the school. The usage information highlights two instances (706, 708) that do not comply with the rules.
[0104] Figure 8 and Figure 9 1 shows an example of a more targeted manner in which the UI component 136 can alert the supervisory party to unsatisfactory (or satisfactory) behavior of the supervised party and then allow the supervisory party to respond immediately to the behavior. Figure 8 , the UI component 136 presents a real-time notification 802 within a UI presentation 804 provided by a user computing device 138 used by a supervising party. The notification 802 alerts the parent that her child has just exceeded the amount of time allocated for interacting with the Netflix program during the reporting period. The notification 802 also provides the supervising party with various options for extending the limit. In response to the supervising party activating one of these options, the computing environment 102 can increase the time limit for the program by the requested amount. Although not shown, the notification 802 can allow the supervising party to respond in other ways, for example, by blocking access to the application, contacting the supervised party, etc.
[0105] Figure 9 The UI component 136 is shown presenting a notification 802 within the UI presentation 904 that alerts the supervised party to a potentially more concerning threat (as with Figure 8 ). That is, notification 902 indicates that the supervised party recently (and possibly currently) interacted with the photo wall application in a moving vehicle. This could pose a risk to the supervised party if she happened to be driving. However, if the supervised party was not the vehicle operator, the reported usage might be acceptable. Notification 902 also provides various options for responding to the alert message, for example, by blocking access to the application, calling the supervised party, and so on.
[0106] Although not shown, a user interface (UI) component may present one or more UI presentations to the supervised party. For example, these UI presentations may remind the supervised party of the time limits applicable to his or her consumption of applications in different contexts, the remaining available time for interacting with applications in different contexts, and the like. The UI presentation may also provide control features that allow the supervised party to interact with his or her supervisor, for example, to request more time, to raise objections to restrictions, and the like. The UI presentation may also provide the supervised party with guidance on how he or she can increase screen time for a particular application. For example, the UI component may consult rule logic to determine that if he or she performs certain tasks, such as a prescribed amount of time exercising, a prescribed amount of time interacting with an education-related presentation, and the like, the supervised party may be given an additional 20 minutes to interact with a gaming application.
[0107] This section also generally highlights how computing environment 102 facilitates the task of assigning constraints to applications. Specifically, computing environment 102 can automatically generate rules that are applicable to applications in different contexts, eliminating or reducing the need for supervisors to manually perform this task. This capability is particularly useful when introducing new applications to the market. Computing environment 102 can also automatically modify existing rules based on changes in the supervised party's environment. At the same time, computing environment 102 still provides supervisors with the opportunity to customize the automatically generated rules.
[0108] Most of the examples presented so far have been related to short-term changes in context. But the computing environment 102 also effectively adapts to more profound long-term changes in context. To expand on the above points, consider Figure 10 , Figure 10A diagram 1002 is shown that divides a child's development into different periods, including preschool, elementary school, junior high, and high school. Diagram 1002 also shows representative milestones in a child's development, which are related to how the child interacts with applications and other computing resources. For example, in the preschool period, a child may only have limited access to dedicated computing devices and applications authorized by their parents. In the elementary school period, the child may still have limited access to computing devices and applications. For example, the child may still rely on other people's computing devices to access a limited set of applications. However, the child's improved literacy skills enable him or her to interact with a browser to perform web searches and access websites. In the junior high period, parents may provide the child with his or her own user computing device (e.g., a smartphone), but may still closely monitor and restrict the child's use of the device. During this period, the child may also set up one or more accounts using social networking applications. In the high school period, the child may start driving. At some point, the child may also start earning income to give him or her some autonomy to purchase his or her own devices. These events in the child's development process are presented here only for the purpose of illustration and not limitation. The above-mentioned information technology-related developmental milestones for children may vary depending on the child's culture, where the child lives (and the associated community), the parents' parenting philosophy, etc.
[0109] Similarly, it can be expected that the threats children face will change throughout their development. For example, a child in middle school may begin interacting with social networking apps but may not have developed sufficient judgment skills to avoid contact with unknown and potentially inappropriate people. A child who begins driving in high school may be at high risk for interacting with a smartphone while driving.
[0110] As a general goal, the computing environment 102 described above addresses these evolving threats by automatically and dynamically changing the rules it applies to children as they grow older. The computing environment 102 specifically accounts for the introduction of new computing devices and applications into a child's life. It also accounts for changes in behavior patterns as a child grows older, as well as the evolution of a child's ability to make sound judgments. The computing environment 102 achieves these results by providing rule logic that expresses the knowledge shown in diagram 1002.
[0111] A.3.app classification component and usage control component.
[0112] Figure 11 An implementation of the app classification component 112 is shown. Figure 1As already described above, the function of the app classification component 112 is to assign at least one tag to an application, the tag identifying the primary function(s) performed by the application and / or other characteristics of the application (such as its age suitability, etc.). The computing environment 102 may invoke the app classification component 112 when a new application is introduced to the market or when it is appropriate to revisit a previous classification given to a known application (e.g., this may be performed on an event-driven basis, periodically, etc.).
[0113] Figure 11 The implementation of the app classification component shown uses a machine-trained model 120. The model 120 can be implemented as any type of machine-trained logic, such as a support vector machine (SVM) model, a decision tree model, a logistic regression model, (multiple) any type of neural network model (such as a fully connected feedforward network, a convolutional neural network, etc.), etc.
[0114] More specifically, feature encoding component 1102 first receives a set of app classification input features describing the application under consideration. These features may include, without limitation, information about how the application is described in one or more sources external to the application itself; information provided by the application itself (e.g., in metadata files associated with the application); information about how others use the application (if available); and so on. Feature encoding component 1102 then converts these features into a format that can be processed by machine-trained model 120. For example, feature encoding component 1102 may consult a lookup table to convert different information items into discrete values or input vectors. In the case of linguistic information (such as keywords), feature encoding component 1102 may convert each linguistic item (e.g., each word) into a one-hot vector (with 1 entry in the dimension of the vector associated with the word and 0 entries in other dimensions). Alternatively, it may convert the linguistic item into a vector that encodes n-gram information (with 1 entry for n-grams present in the input word and 0 entries in other dimensions).
[0115] The transformation component 1104 can then use the model 120 to map the input features into the final output. For example, the transformation component 1104 can map the input features into a numerical output. It can then consult a lookup table or other mapping mechanism to convert the numerical output into a specific label.
[0116] Alternatively or additionally, the app classification component 112 may use one or more heuristic rules to classify applications. One such rule may specify that applications with descriptions containing one or more descriptive keywords will be given a particular label. For example, an application with a description containing the word "algebra" will be labeled as an education-related application. Another rule may indicate that applications associated with information indicating common usage in school-related settings will be labeled as education-related applications, etc. Such rules may use any context-specific thresholds to determine when a pattern is considered statistically significant.
[0117] Figure 12 An implementation of a usage control component 114 is shown. This component 114 maps a set of usage control input features into an output result. The output result indicates whether the supervised party is allowed to interact with the identified application. More specifically, the usage control input features include information about the supervised party (such as the supervised party's age, place of residence, school, etc.), information about the candidate application with which the supervised party is attempting to interact (such as the application's category, etc.), and information about the current environment in which the supervised party is currently operating (such as the current time, the current location where the supervised party is seeking to interact with the candidate application, etc.). As described above, the input features may also include information revealing the supervised party's most recently completed actions, which can be said to exist in the current context. The application scoring component 1202 assigns a screen time value to the application, which reflects whether the application is suitable for use by the supervised party in the current context. In some implementations, the screen time value may more specifically describe the amount of time the supervised party is allowed to interact with the application within a specified time span given the current context. A value of zero indicates that the supervised party should not use the application at all given the current context. In some cases, screen time is non-zero and depends primarily on what a supervised party of a certain age is currently doing, and / or where the supervised party is currently located, and / or who the supervised party is currently associated with, etc. Additionally or alternatively, screen time is non-zero and depends on the most recently completed tasks of the supervised party.
[0118] The decision component 1204 can make a final decision on whether the supervised party should be allowed to interact with the application to provide a final output result. For example, the decision component 1204 can refer to ( Figure 1 The decision component 1204 may determine the amount of time the supervised party has spent interacting with the application by using usage information in the (data repository 126) of the supervised party's application. If this amount of time is less than the allotted screen time specified by the application scoring component, the decision component 1204 may indicate that interaction with the application is permitted. The decision component 1204 may revisit its decision during the supervised party's interaction with the application. As the interaction continues, the decision component 1204 will eventually reach a point where the supervised party has no more time to interact with the application.
[0119] The decision component 1204 can consult one or more policy rules to determine how to act based on its conclusion as to whether the relevant time limit has been exceeded. According to one rule, the decision component 1204 can prohibit the supervised party from interacting with the application if the time limit has been exceeded (or is initially zero). In another case, the decision component 1204 can allow the supervised party to interact with the application in this case, but it will mark such use as non-compliant.
[0120] Application scoring component 1202 uses ( Figure 1 The screen time value is generated using rule logic in the () data repository 128. As described above, the rule logic can take different forms in different corresponding implementations. In the first case, the rule logic corresponds to a discrete set of rules. Each rule is associated with a specific contextual situation, for example, involving the consumption of a specific application by a specific type of supervised party at a specific time and / or a specific place. In one non-limiting implementation, such a rule identifies the amount of time (if any) that the supervised party is allowed to interact with the application in a given reporting period. Here, the application scoring component 1202 operates by matching the set of usage control input features to at least one rule associated with the same features. It then outputs the time limit associated with the rule.
[0121] In a second implementation, the rule logic may correspond to a machine-trained model rather than a discrete rule set. Here, the application scoring component 1202 may use Figure 11 12. The application scoring component 1202 may use the same type of architecture as shown in FIG. That is, the application scoring component 1202 may use a feature encoding component to convert its input features into a form for further processing. It may then use a transformation component to map the input features into output results. In one embodiment, the output results specify the amount of time a supervised party is allowed to interact with a given application, given the current specified context.
[0122] Although not in Figure 12 , but in some implementations, usage control component 114 can also make its decisions based on additional logic, such as, for example, a heuristic algorithm and / or another machine-trained model 130. For example, the additional logic can handle the case where usage control component 114 identifies two different discrete rules that match the current context. The additional logic can determine which rule applies to the case, or whether the union of multiple rules applies to the case. Alternatively, this additional logic can be incorporated into the rule logic itself.
[0123] Figure 13Function 1302 is shown, which generally summarizes how the machine-trained model maps input information to output information. Here, feature encoding component 1304 converts the input features into a suitable form for further processing, for example, by converting the features into a set of input vectors. Neural network component 1306 uses any type of neural network to convert the input vectors into a set of output vectors provided by the last layer of neurons. The neural network can include one or more layers of neurons. The value in any layer j of the feedforward network can be given by the formula z j =f(W j z j-1 + b j ) is given by, where j = 2, ... N. Symbol W j represents the weight matrix of the jth machine learning, and the symbol b j refers to the optional jth machine learning bias vector. The activation function f(x) can be represented in various ways, such as a tanh function or a rectified linear unit (ReLU) function. Post-processing component 1308 converts the output value provided by the last layer into a final output result. For example, post-processing component 1308 may correspond to a softmax function.
[0124] A.4. Illustrative training function
[0125] Figure 14 Shown by Figure 1 1. The training system 122 includes a classifier generation component 1402 for generating logic that manages the operation of the app classification component 112. For example, the classifier generation component 1402 can include machine learning functionality that generates a machine-trained model 120 used by the app classification component 112.
[0126] The classifier generation component 1402 can generate the model 120 based on the set of training examples in the training data repository 124. Each positive training example can correspond to information about the application (including its associated metadata and other attributes, descriptions of it by external sources, how others use it, etc.), and an appropriate label associated with the application. Each negative training example can correspond to an incorrect pairing of application information and a label associated with the application. The classifier generation component 1402 can iteratively adjust the weight values and bias values associated with the model 120 to gradually increase the probability that the model 120 assigns the correct label to the application and reduce the probability that the model 120 assigns the incorrect label to the application. The classifier generation component 1402 can use any training technique to perform this operation, such as stochastic gradient descent, the known ADAM algorithm, etc. Alternatively or additionally, the classifier generation component 1402 provides heuristic rules of the type described above.
[0127] The training system 122 also includes a rule generation component 1404 for generating the aforementioned rule logic stored in the data repository 128. In the first embodiment, the rule logic comprises a parameterized set of discrete rule sets. In this implementation, the rule generation component 1404 selects the rules and defines values for the variables in the rules. In the second embodiment, the rule logic comprises a machine-trained model. In this case, the rule generation component 1404 generates the model.
[0128] More specifically, with respect to the first case, the rule generation component 1404 can begin by enumerating a plurality of discrete scenarios associated with corresponding rules. For example, the rule generation component 1404 can define groups of rules that consider the use of a given application in various popular contexts in which the application is expected to be used. For example, a first context can indicate the use of the application at home, a second context can correspond to the use of the application at school, a third context can correspond to the use of the application at any other location, a fourth context can consider the use of the application while the supervised party is in a moving vehicle, and so on. The rule generation component 1404 can also extend this grouping to different age groups and / or other significant characteristics of the supervised party that is expected to interact with the application. Different environments can perform this enumeration at any level of granularity based on environment-specific heuristic rules.
[0129] After this enumeration operation, the rule generation component 1404 can assign one or more values to each rule. In some cases, given the contextual scenario associated with the rule, the value can specify the amount of time the supervised party is allowed to interact with the application. For example, consider a rule related to a scenario where supervised parties aged 13 to 17 interact with a particular application at home. The rule generation component 1404 can use a machine-trained model and / or one or more heuristic rules to assign a value to the rule to indicate the amount of time a supervised party in that age range is allowed to use the application in the specified context.
[0130] The model used to calculate the time limit value can correspond to any kind of machine trained function, such as a logistic regression model, any type of neural network, etc. The rule generation component 1404 can train such a model using a set of training examples in the data repository 124. Each positive training example can correspond to information about a scenario and be paired with an appropriate time limit for that scenario. Each negative training example can correspond to a description of a scenario and an inappropriate time limit associated with that scenario. The rule generation component 1404 can iteratively train the model by increasing the probability that it will assign a correct time limit to a scenario and decreasing the probability that it will assign an incorrect time limit to a scenario. The rule generation component 1404 can use any training technique to perform this task, such as the techniques mentioned above. In one case, these training examples can be obtained from a data store that identifies manual time limit decisions made by a supervisory party.
[0131] Alternatively or additionally, the rule generation component 1404 can use one or more heuristic rules to assign time limit values to scenarios. For example, the rule generation component 1404 can employ a rule indicating that children should not be allowed to use an application in a moving car unless the application has been marked as a navigation-related application.
[0132] In the second implementation described above, the rule generation component 1404 develops a machine-trained model for computing time limits, i.e., without first generating a discrete set of rules. In this context, the general model includes a set of weights and bias values that implicitly embody the set of rules, without explicitly enumerating these rules. Here, the rule generation component 1404 can generate such a model based on the set of training examples in the training data repository 124 in much the same manner as described above for the first-mentioned scenario.
[0133] The two implementations described above can be viewed as different in terms of the stage at which they use machine learning to calculate the time limits for scenarios. The first implementation (using discrete rules) uses a machine-trained model in the offline rule creation stage to define time limits associated with different popular scenarios. The second implementation uses a machine-trained model in the real-time application stage to calculate the time limits for the identified current context. The first implementation can help the supervisor (and supervised party) better understand the constraints applicable to application consumption. It also provides a paradigm that allows the supervisor to easily modify rules. It can also efficiently utilize resources in the real-time application stage. Compared to the first implementation, the second implementation can provide greater versatility at runtime.
[0134] As mentioned above, note that the second implementation (using a machine-trained model at runtime) can also be implemented via Figures 3 to 5The UI presentation type shown populates the rule set for review by the supervisor. The computing environment 102 can perform this task by feeding different instances of input information associated with different popular input scenarios into the machine-trained model and then displaying the different instances of input information along with the output results generated by the machine-trained model. The computing environment 102 can account for supervisory modifications to the rules by retraining the machine-trained model or by logically partitioning and storing discrete exceptions to the rules contained in the machine-trained model.
[0135] Figure 15 shows how aspects of the training system 122 may optionally be distributed across ( Figure 2 ) between the user computing device 208 and the server 204. In this implementation, the server-side training system 1502 generates one or more machine-trained models 1504 of the above-described type based on the training data provided in the data store 1506. For example, the models 1504 may include the models 120 used by the app classification component 112 and / or the models used by the usage control component 114 (where the models implement the rule logic in the data repository 128). The server-side training system 1502 can then distribute these models 1504 to the respective user computing devices 208 used by the supervised parties. Once installed on the respective user computing devices 208, the server-side models 1504 can thereafter be considered client-side models.
[0136] Figure 15 Specifically shown is a client model set 1508 provided by a particular user computing device operated by a particular supervised party. The user computing device uses its client model set 1508 to make local decisions, for example, by assigning tags to newly downloaded applications, by determining whether the use of an application is appropriate in a given context, etc.
[0137] Optionally, each user computing device may also include a local training system 1510. The local training system 1510 may personalize the client model 1508 based on the behavior of the supervised party using the model 1508. For example, assume that the supervised party regularly requests permission from their parents to use a particular application in a school environment, and the parents regularly approve the requested use. The local training system 1510 may adjust the weights and bias values in the rule logic to increase the probability that the application will be automatically approved the next time the supervised party attempts to access the application at school. Alternatively, the local training system 1510 may define discrete exceptions and save them to the rule logic associated with the client model 1508.
[0138] The user computing device may also include an anonymization component 1512 for sending data to the server-side training system 1502. The data may convey the amount of time the supervised party used different applications in different contexts. The data may also report occasions when the supervisory party modified the rule logic provided by the client-side model 1508, etc. The anonymization component 1512 may first establish permission to send the data to the server-side training system 1502, which permission may be provided by the supervisory party and / or the supervised party. If permission is given, the anonymization component 1512 may remove information from the data that associates the data with a specific person with a specific identity. For example, the anonymization component 1512 may change the data so that it generally reflects the behavioral patterns of supervised parties within a specific age range who live in a specific area of the country, without additionally providing information that associates the patterns with a specific person.
[0139] Upon receiving data from multiple user computing devices, the server-side training system 1502 uses the data to update the server-side model 1504. More specifically, in one implementation, the server-side training system 1502 can update the server-side model 1504 periodically and / or on an event-driven basis. After each update, the server-side training system 1502 distributes the updated model to the user computing devices 208. This approach ensures that each local computing device has the latest version of the model.
[0140] B. Illustrative Process
[0141] Figure 16 and Figure 17 The process of explaining the operation of computing environment 102 in Section A is shown in flowchart form. Since the basic principles of computing environment 102 operation have been described in Section A, certain operations will be discussed in a general manner in this section. As described in the introduction to the detailed description, each flowchart shows a series of operations performed in a specific order. However, the order of these operations is representative and can be changed in any manner.
[0142] More specifically, Figure 16 Process 1602 is shown, which represents Figure 1 16. The present invention provides an overview of one mode of operation of the computing environment 102. In block 1604, the computing environment 102 automatically classifies a plurality of applications using the machine-trained model 120 and / or heuristic logic to provide a plurality of classified applications. In block 1606, the computing environment 102 automatically controls access to the classified applications by a particular supervised party based on the current context affecting the supervised party and based on rule logic provided by the training system 122. In block 1608, the computing environment 102 generates a report describing the amount of time the supervised party interacted with at least one classified application in different corresponding contexts.
[0143] Figure 17 A process 1702 is shown that provides information about Figure 16 1606 . In block 1704 , the computing environment 102 automatically receives rule logic. For example, the rule logic may be received from the server-side training system 1502 , which automatically generates the rule logic using a rule generation component. The rule logic specifies an amount of time allocated to different types or categories of supervised parties for interacting with multiple applications in multiple contexts. In block 1706 , the computing environment 102 receives an application input signal identifying a candidate application, for example, in response to a particular supervised party attempting to invoke a candidate application. In block 1708 , the computing environment 102 receives context input signals from one or more input devices. The context input signals collectively provide current context information that describes a current context affecting the supervised party. At least one context input signal identifies a classification associated with the candidate application. In block 1710 , the computing environment 102 generates an output result based on the current context information and the rule logic. The output result specifies an amount of time that the supervised party is allowed to interact with the candidate application in the current context. In block 1712 , the computing environment 102 controls the supervised party's interaction with the candidate application based on the output results.
[0144] C. Representative computing devices
[0145] Figure 18 A computing device 1802 is shown that can be used to implement any aspect of the mechanisms described in the above figures. For example, referring to Figure 18 , Figure 18 A computing device 1802 of the type shown may be used to implement any server, any user computing device, etc. In all cases, the computing device 1802 represents a physical and tangible processing mechanism.
[0146] The computing device 1802 may include one or more hardware processors 1804. The hardware processor(s) 1804 may include, but are not limited to, one or more central processing units (CPUs) and / or one or more graphics processing units (GPUs) and / or one or more application-specific integrated circuits (ASICs), etc. More generally, any hardware processor may correspond to a general-purpose processing unit or a special-purpose processor unit.
[0147] Computing device 1802 may also include computer-readable storage media 1806, corresponding to one or more computer-readable media hardware units. Computer-readable storage media 1806 retains any type of information 1808, such as machine-readable instructions, settings, data, and the like. For example, and without limitation, computer-readable storage media 1806 may include one or more solid-state devices, one or more magnetic hard disks, one or more optical disks, magnetic tape, and the like. Any instance of computer-readable storage media 1806 may utilize any technology for storing and retrieving information. Furthermore, any instance of computer-readable storage media 1806 may represent a fixed or removable unit of computing device 1802. Furthermore, any instance of computer-readable storage media 1806 may provide for volatile or non-volatile retention of information.
[0148] Computing device 1802 can utilize any instance of computer-readable storage medium 1806 in different ways. For example, any instance of computer-readable storage medium 1806 can represent a hardware memory unit (such as random access memory (RAM)) for storing transient information during execution of a program by computing device 1802 and / or a hardware storage unit (such as a hard disk) for more permanently retaining / archiving information. In the latter case, computing device 1802 also includes one or more drive mechanisms (not shown, such as a hard disk drive mechanism) for storing and retrieving information from instances of computer-readable storage medium 1806. As described above, computing device 1802 can include any context sensing devices, such as one or more mobile and / or position determination devices 1810.
[0149] Computing device 1802 may perform any of the functions described above when hardware processor(s) 1804 execute computer-readable instructions stored in any instance of computer-readable storage medium 1806. For example, computing device 1802 may execute computer-readable instructions to perform each of the process blocks described in Section B.
[0150] Alternatively or additionally, the computing device 1802 may rely on one or more other hardware logic units 1812 to perform operations using a task-specific set of logic gates. For example, the hardware logic unit(s) 1812 may include a fixed configuration of hardware logic gates, e.g., hardware logic gates that are created and set at the time of manufacture and cannot be changed thereafter. Alternatively or additionally, the other hardware logic unit(s) 1812 may include a set of programmable hardware logic gates that can be set to perform different application-specific tasks. The latter class of devices includes, but is not limited to, programmable array logic devices (PALs), general array logic devices (GALs), complex programmable logic devices (CPLDs), field programmable gate arrays (FPGAs), and the like.
[0151] Figure 18Hardware logic circuitry 1814 is generally indicated to include any combination of hardware processor(s) 1804, computer-readable storage medium 1806, and / or other hardware logic unit(s) 1812. That is, computing device 1802 may employ any combination of hardware processor(s) 1804 that execute machine-readable instructions provided in computer-readable storage medium 1806 and / or one or more other hardware logic units 1812 that perform operations using fixed and / or programmable sets of hardware logic gates. More generally, hardware logic circuitry 1814 corresponds to one or more hardware logic units of any type that perform operations based on logic stored and / or otherwise embodied in the hardware logic unit(s).
[0152] In some cases (e.g., where computing device 1802 represents a user computing device), computing device 1802 also includes input / output interfaces 1816 for receiving various inputs (via input devices 1818) and for providing various outputs (via output devices 1820). Exemplary input devices include a keyboard, a mouse input device, a touch screen input device, a digitizer tablet, one or more still image cameras, one or more video cameras, one or more depth camera systems, one or more microphones, a voice recognition mechanism, any motion detection mechanism (e.g., an accelerometer, a gyroscope, etc.), and the like. One particular output mechanism may include a display device 1822 and an associated graphical user interface presentation (GUI) 1824. Display device 1822 may correspond to a liquid crystal display device, a light emitting diode display (LED) device, a cathode ray tube device, a projection mechanism, and the like. Other output devices include a printer, one or more speakers, a tactile output mechanism, an archiving mechanism (for storing output information), and the like. Computing device 1802 may also include one or more network interfaces 1826 for exchanging data with other devices via one or more communication conduits 1828. One or more communication buses 1830 communicatively couple the above-mentioned units together.
[0153] The communication conduit(s) 1828 may be implemented in any manner, for example, via a local area network, a wide area computer network (e.g., the Internet), a point-to-point connection, etc., or any combination thereof. The communication conduit(s) 1828 may include any combination of hardwired links, wireless links, routers, gateway functions, name servers, etc., managed by any protocol or combination of protocols.
[0154] Figure 18 Computing device 1802 is shown as being composed of a discrete collection of separate units. In some cases, the collection of units may correspond to discrete hardware units provided in a computing device chassis having any form factor. Figure 18An illustrative form factor is shown at its bottom. In other cases, computing device 1802 may include an integrated Figure 1 For example, computing device 1802 may include a hardware logic unit that combines the functions of two or more units shown. Figure 18 An integrated circuit that combines the functions of two or more of the units shown corresponds to a system on a chip (SoC or SOC).
[0155] The following summary provides non-exhaustive illustrative examples of the techniques set forth herein.
[0156] According to a first example, one or more computing devices for controlling the interaction of a supervised party with an application are described. The device(s) include hardware logic circuitry, which in turn includes: (a) one or more hardware processors that perform operations by executing machine-readable instructions stored in a memory, and / or (b) one or more other hardware logic units that perform operations using a task-specific set of logic gates. The operations include: receiving rule logic that specifies an amount of time allocated to different categories of supervised parties for interaction with multiple applications in multiple contexts; receiving application input signals that identify candidate applications; receiving context input signals from one or more input devices that collectively provide current context information that describes a current context affecting a particular supervised party; generating an output result based on the current context information and the rule logic, the output result specifying an amount of time the supervised party is allowed to interact with the candidate application in the current context; and controlling the interaction by the supervised party with the candidate application based on the output result.
[0157] According to a second example, at least one context input signal originates from a location determining device and identifies the current location of the supervised party, and at least one other context input signal originates from a movement determining device and identifies whether the supervised party is currently moving.
[0158] According to a third example, the context input signal comprises two context input signal sets describing a current context affecting the supervised party, the two context input signal sets evaluating the context with respect to two different time spans.
[0159] According to a fourth example, the rule logic corresponds to a discrete set of rules.
[0160] According to a fifth example, the rule logic corresponds to a machine-trained model that implicitly expresses the rule set.
[0161] According to a sixth example, a given rule expressed by rule logic specifies an amount of time a supervised party is allowed to interact with a candidate application at a specified location.
[0162] According to a seventh example, the designated location referenced in the sixth example is a school-related setting.
[0163] According to an eighth example, a given rule expressed by rule logic specifies an amount of time a supervised party is allowed to interact with a candidate application at a specified time.
[0164] According to a ninth example, a given rule expressed by rule logic specifies an amount of time a supervised party is permitted to interact with a candidate application while engaging in a specified activity.
[0165] According to a tenth example, the specified activity referenced in the ninth example is operating a vehicle.
[0166] According to an eleventh example, a given rule expressed by the rule logic specifies an amount of time a supervised party is permitted to interact with a candidate application based on an indication that the supervised party has completed a prescribed task.
[0167] According to a twelfth example, a given rule expressed by the rule logic depends on the age of the supervised party and the category of the application associated with the candidate application.
[0168] According to a thirteenth example, the operations further include: receiving application classification input features related to the new application under consideration; and automatically identifying a classification for the new application based on the application classification input features using a machine-trained model. The application classification input features provide: information expressed by the new application itself; and / or information describing the new application obtained from one or more sources different from the new application; and / or information describing how users use the new application in different contexts.
[0169] According to the fourteenth example, the operation also includes: providing a user interface presentation to a supervisor of the supervised party, the user interface presentation showing representations of multiple rules expressed by rule logic; and receiving a correction input signal from the supervisory party in response to the supervisory party's interaction with the user interface presentation, the correction input signal specifying a change to at least one of the multiple rules.
[0170] According to the fifteenth example, the operations further include generating a report describing an amount of time the supervised party interacted with the at least one application in different respective contexts; and providing the report to a supervisor of the supervised party.
[0171] According to a sixteenth example, a computer-implemented method for controlling the interaction of a supervised party with an application is described. The method includes: receiving rule logic that specifies the amount of time allocated to different types of supervised parties for interacting with multiple applications in multiple contexts, the rule logic being automatically generated by a training system; receiving an application input signal that identifies a candidate application; and receiving context input signals from one or more input devices, the context input signals collectively providing current context information that describes the current context affecting the specific supervised party. The context input signals include at least one context input signal originating from a location determination device and identifying the current location of the supervised party, at least one other context input signal originating from a movement determination device and identifying whether the supervised party is currently moving, and at least one other context input signal originating from a machine-trained model and identifying a classification associated with the candidate application. The method also includes: generating an output result based on the current context information and the rule logic, the output result specifying the amount of time the supervised party is allowed to interact with the candidate application in the current context; and controlling the interaction of the supervised party with the candidate application based on the output result.
[0172] According to a seventeenth example related to the sixteenth example, a given rule expressed by the rule logic specifies an amount of time a supervised party is allowed to interact with the candidate application at a specified location.
[0173] According to an eighteenth example related to the sixteenth example, a given rule expressed by rule logic specifies an amount of time a supervised party is allowed to interact with a candidate application while engaging in a specified activity.
[0174] According to a nineteenth example related to the sixteenth example, the method further includes: generating a report describing an amount of time the supervised party interacted with the at least one classified application in different respective contexts; and providing the report to a supervisor of the supervised party.
[0175] According to a twentieth example, a computer-readable storage medium for storing computer-readable instructions is described. The computer-readable instructions, when executed by one or more hardware processors, perform a method comprising: automatically classifying a plurality of applications using a machine-trained model to provide a plurality of classified applications; receiving rule logic that specifies an amount of time allocated to different categories of supervised parties for interacting with the plurality of applications in a plurality of contexts; receiving application input signals that identify candidate applications; receiving context input signals from one or more input devices that collectively provide current context information that describes a current context affecting a particular supervised party, the context input signals including at least one context input signal derived from the machine-trained model and identifying a classification associated with the candidate application; generating an output result based on the current context information and the rule logic, the output result specifying an amount of time the supervised party is allowed to interact with the candidate application in the current context; controlling the supervised party's interaction with the candidate application based on the output result; and generating a report that describes the amount of time the supervised party interacted with at least one classified application in different corresponding contexts.
[0176] The twenty-first example corresponds to any combination (eg, any logically consistent arrangement or subset) of the first to twentieth examples described above.
[0177] The twenty-second example corresponds to any method counterparts, device counterparts, system counterparts, apparatus plus function counterparts, computer-readable storage medium counterparts, data structure counterparts, product counterparts, graphical user interface presentation counterparts, etc. associated with the first to twenty-first examples.
[0178] Finally, the description has presented various concepts in the context of illustrative challenges or problems. This interpretation is not intended to imply that others have understood and / or addressed the challenge or problem in the manner specified herein. Furthermore, this interpretation is not intended to imply that the subject matter recited in the claims is limited to addressing only the identified challenges or problems; that is, the subject matter in the claims may be applicable in the context of other challenges or problems beyond those described herein.
[0179] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Claims
1. One or more computing devices for controlling the interaction between a supervised party and an application, the computing devices comprising: Hardware logic circuitry, the hardware logic circuitry comprising: (a) one or more hardware processors that perform operations by executing machine-readable instructions stored in a memory, and / or (b) one or more other hardware logic units that use a collection of configured logic gates to perform the operations, the operations comprising: automatically enumerating different input information instances, the different input information instances describing different corresponding contexts in which a supervised party can interact with a specific application, at least two of the different corresponding contexts identifying different locations where the supervised party can interact with the specific application; mapping, using a machine-trained model, for the different input information instances associated with the different corresponding contexts, each of the different input information instances associated with a specific context to a specific time limit value, the specific time limit value specifying an amount of time the supervised party is allowed to interact with the specific application in the specific context, the specific time limit value being automatically generated by the machine-trained model by converting input features describing the specific context into the specific time limit value, and generating a plurality of time limit values associated with the different corresponding contexts using the machine-trained model; generating a report describing the plurality of time limit values generated by the machine-trained model for the specific application of the different corresponding contexts; providing the report to the supervisor of the supervised party; detecting a current context of the supervised party; and Interaction of the supervised party with the current application is controlled based on an identified time limit value generated by the machine-trained model and applied to the current context and the current application.
2. The one or more computing devices of claim 1 , wherein a training system generates the machine-trained model based on a set of training examples, each positive training example specifying information about a particular scenario, the information paired with a specified time limit value for the scenario.
3. One or more computing devices according to claim 1, wherein the machine-trained model determines the specific time limit value for the specific application based in part on a context signal provided by another machine-trained model that describes a category associated with the specific application. 4 . The one or more computing devices of claim 1 , wherein the report comprises different user interface presentations that present information about the different respective contexts and associated time limit values in different respective manners.
5. One or more computing devices according to claim 1, wherein the report further displays a map on a user interface presentation, the map specifying different areas associated with the different corresponding contexts that have been enumerated, and time limit values associated with the different areas generated by the machine-trained model.
6. One or more computing devices according to claim 1, wherein the report distinguishes time values that have been generated by the machine-trained model from at least one time limit value that has been manually selected by a supervisory party.
7. A computer-implemented method for controlling interaction between a supervised party and an application, comprising: automatically enumerating different input information instances, the different input information instances describing different corresponding contexts in which a supervised party can interact with a specific application, at least two of the different corresponding contexts identifying different locations where the supervised party can interact with the specific application; mapping, using a machine-trained model, for the different input information instances associated with the different corresponding contexts, each of the different input information instances associated with a specific context to a specific time limit value, the specific time limit value specifying an amount of time the supervised party is allowed to interact with the specific application in the specific context, the specific time limit value being automatically generated by the machine-trained model by converting input features describing the specific context into the specific time limit value, and generating a plurality of time limit values associated with the different corresponding contexts using the machine-trained model; generating a report describing the plurality of time limit values generated by the machine-trained model for the specific application of the different corresponding contexts; providing the report to the supervisor of the supervised party; detecting a current context of the supervised party; as well as Interaction of the supervised party with the current application is controlled based on an identified time limit value generated by the machine-trained model and applied to the current context and the current application.
8. The method of claim 7, wherein a training system generates the machine-trained model based on a set of training examples, each positive training example specifying information about a particular scenario, the particular scenario being paired with a specified time limit value for the scenario.
9. The method of claim 7, wherein the machine-trained model determines the specific time limit value for the specific application based in part on a context signal provided by another machine-trained model that describes a category associated with the specific application.
10. The method of claim 7, wherein the report comprises different user interface presentations that present information about the different respective contexts and associated time limit values in different respective manners.
11. The method of claim 7, wherein the report further displays a map on a user interface presentation, the map specifying different regions associated with the different corresponding contexts that have been enumerated, and time limit values associated with the different regions generated by the machine-trained model.
12. The method of claim 7, wherein the reporting distinguishes time values that have been generated by the machine-trained model from at least one time limit value that has been manually selected by a supervisory party.
13. A computer-readable storage medium storing computer-readable instructions that, when executed by one or more hardware processors, perform a method comprising: automatically enumerating different input information instances, each of which describes a different corresponding context in which a supervised party can interact with a specific application, wherein at least two of the different corresponding contexts identify different locations in which the supervised party can interact with the specific application; mapping, using a machine-trained model, for the different input information instances associated with the different corresponding contexts, each of the different input information instances associated with a specific context to a specific time limit value, the specific time limit value specifying an amount of time the supervised party is allowed to interact with the specific application in the specific context, the specific time limit value being automatically generated by the machine-trained model by converting input features describing the specific context into the specific time limit value, and generating a plurality of time limit values associated with the different corresponding contexts using the machine-trained model; generating a report describing the plurality of time limit values generated by the machine-trained model for the specific application of the different corresponding contexts; providing the report to the supervisor of the supervised party; detecting a current context of the supervised party; as well as Interaction of the supervised party with the current application is controlled based on an identified time limit value generated by the machine-trained model and applied to the current context and the current application.
14. The computer-readable storage medium of claim 13, wherein a training system generates the machine-trained model based on a set of training examples, each positive training example specifying information about a particular scenario, the particular scenario paired with a specified time limit value for the scenario.
15. The computer-readable storage medium of claim 13, wherein the machine-trained model determines the specific time limit value for the specific application based in part on a context signal provided by another machine-trained model that describes a category associated with the specific application.
16. The computer-readable storage medium of claim 13, wherein the report comprises different user interface presentations that present information about the different respective contexts and associated time limit values in different respective manners.
17. The computer-readable storage medium of claim 13, wherein the report further displays a map on a user interface presentation, the map specifying different regions associated with the different corresponding contexts that have been enumerated, and time limit values associated with the different regions generated by the machine-trained model.
18. The computer-readable storage medium of claim 13, wherein the report distinguishes time values that have been generated by the machine-trained model from at least one time limit value that has been manually selected by a supervisory party.
Citation Information
Patent Citations
User interface functionality for facilitating interaction between users and their environments
CN107111473A
Authorization of access to a data resource in addition to specific actions to be performed on the data resource based on an authorized context enforced by a use policy
US20170034217A1