IP Library Granted Patent US 11,514,346
Granted Patent B2
US 11,514,346 · App. 16/607,021 · Granted Nov 29, 2022

Contextual situation analysis

Inventor: Thomas Fischbacher (Gattikon, CH)
Assignee: Google LLC
G06N5/045G06F8/10G06F8/41G06F16/9027
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,514,346
App. No.
16/607,021
Granted
Nov 29, 2022
Kind
B2
Abstract

A system and method includes receiving a first context update for an application. The method determines whether one or more of multiple rules has been satisfied in view of the first context update. The multiple rules include a multiple conditions and are associated with multiple contextual situations. The determining includes minimizing a number of the multiple conditions to be evaluated to determine whether a particular rule of the multiple rules has been satisfied. The method responsive to determining a first rule of the multiple rules has been satisfied, identifies a first contextual situation of the multiple contextual situations that is associated with the first rule. The method also determines at least one action that is associated with the first contextual situation.

Claims (60)

1. A method comprising:

receiving, by a compiler executed by a processing device, source code comprising a plurality of rules,

wherein each of the plurality of rules comprises one or more of a plurality of conditions and is associated with one of a plurality of contextual situations;

generating, by the compiler using the source code, a decision tree for the plurality of rules, wherein generating the decision tree comprises:

determining a condition from the plurality of conditions as a root node of the decision tree,

wherein determining the condition as the root node comprises determining a first number of conditions of the plurality of conditions where an outcome is implied in view of an evaluation of a respective condition as true; and

generating a callable function that implements the decision tree,

wherein the callable function is configured to receive a context update of an application, minimize a number of the plurality of conditions to be evaluated to determine whether a particular rule of the plurality of rules has been satisfied based on the context update, and identify one of the plurality of contextual situations that corresponds to a satisfied rule and a state of the application interacted with by a user.

2. The method of claim 1 , wherein the determined condition optimizes a number of the plurality of conditions that are eliminated from subsequent evaluations.

3. The method of claim 2 , wherein determining the condition from the plurality of conditions as the root node of the decision tree comprises:

for each condition of the plurality of conditions:

evaluating the condition of the plurality of conditions as false to determine a second number of conditions where the outcome is implied in view of an evaluation of the condition as false; and

determining a condition from the plurality of conditions to be the root node based on the first number of conditions and the second number of conditions.

4. The method of claim 1 , wherein generating the decision tree for the plurality of rules comprises:

organizing the decision tree with a plurality of nodes that are associated with the plurality of conditions, wherein the plurality of nodes are organized so that a condition of the plurality of conditions having an outcome that is implied by an outcome of an evaluation of a previous node is not subsequently evaluated.

5. The method of claim 1 , wherein the source code is a domain-specific language that allows a satisfaction of a subset of conditions of the plurality of conditions to be implied from a satisfaction of other conditions of the plurality of conditions.

6. The method of claim 1 , wherein in the source code, conditions for a particular rule of the plurality of rules are related by a logical conjunction, and the each of the conditions comprises a feature compared to a constant using a comparison operator.

7. A method comprising:

receiving, by a processing device, a first context update for an application;

determining whether one or more of a plurality of rules has been satisfied in view of the first context update, wherein the plurality of rules comprise a plurality of conditions and are associated with a plurality of contextual situations, and wherein the determining comprises minimizing a number of the plurality of conditions to be evaluated to determine whether a particular rule of the plurality of rules has been satisfied;

responsive to determining a first rule of the plurality of rules has been satisfied, identifying a first contextual situation of the plurality of contextual situations that is associated with the first rule; and

determining a playlist of media items that is associated with the first contextual situation.

8. The method of claim 7 , further comprising:

causing playback of a first media item of the playlist of media items to accompany the first contextual situation identified for the application.

9. The method of claim 7 , further comprising:

receiving a second context update for the application;

determining whether one or more of the plurality of rules has been satisfied in view of the second context update;

responsive to determining a second rule of the plurality of rules has been satisfied in view of the second context update, identifying a second contextual situation of the plurality of contextual situations that is associated with the second rule; and

retrieving another playlist of media items for the second contextual situation associated with the second rule.

10. The method of claim 7 , wherein determining whether one or more of the plurality of rules has been satisfied in view of the first context update comprises:

applying a data set associated with the first context update to a callable function that implements a decision tree, wherein parameters of a plurality of features identified by the data set are compared to conditions of the plurality of conditions that are associated with a plurality of nodes of the decision tree.

11. The method of claim 10 , wherein determining whether one or more of the plurality of rules has been satisfied in view of the first context update further comprises:

keeping a record of conditions of the plurality of conditions that have outcomes that are explicitly and implicitly determined from evaluated nodes of the plurality of nodes of the decision tree.

12. The method of claim 10 , wherein determining whether one or more of the plurality of rules has been satisfied in view of the first context update further comprises:

determining an initial condition of the plurality of conditions to evaluate by determining a root node of the plurality of nodes of the decision tree, wherein the root node indicates a feature and a condition associated with the feature; and

evaluating the initial condition identified by the root node in view of the data set of the first context update.

13. The method of claim 12 , wherein determining whether one or more of the plurality of rules has been satisfied in view of the first context update further comprises:

responsive to the evaluation of the initial condition, evaluating a subsequent node of the decision tree where a number of the plurality of conditions that have outcomes that are implied by the evaluation of the initial condition are eliminated from subsequent evaluation.

14. The method of claim 7 , wherein each of the plurality of rules comprise one or more conditions of the plurality of conditions, and wherein the one or more conditions for a particular rule of the plurality of rules are related by a logical conjunction, and each of the one or more conditions comprise a feature compared to a constant using an comparison operator.

15. A system comprising:

a memory; and

a processing device, coupled to the memory, to:

receive a first context update for an application;

determine whether one or more of a plurality of rules has been satisfied in view of the first context update, wherein the plurality of rules comprise a plurality of conditions and are associated with a plurality of contextual situations, and wherein the determining comprises minimizing a number of the plurality of conditions to be evaluated to determine whether a particular rule of the plurality of rules has been satisfied;

responsive to determining a first rule of the plurality of rules has been satisfied, identify a first contextual situation of the plurality of contextual situations that is associated with the first rule; and

determine a playlist of media items that is associated with the first contextual situation.

16. The system of claim 15 , the processing device further to:

cause playback of a first media item of the playlist of media items to accompany the first contextual situation identified for the application.

17. The system of claim 15 , the processing device further to:

receive a second context update for the application;

determine whether one or more of the plurality of rules has been satisfied in view of the second context update;

responsive to determining a second rule of the plurality of rules has been satisfied in view of the second context update, identify a second contextual situation of the plurality of contextual situations that is associated with the second rule; and

retrieve another playlist of media items for the second contextual situation associated with the second rule.

18. The system of claim 15 , wherein to determine whether one or more of the plurality of rules has been satisfied in view of the first context update, the processing device to:

apply a data set associated with the first context update to a callable function that implements a decision tree, wherein parameters of a plurality of features identified by the data set are compared to conditions of the plurality of conditions that are associated with a plurality of nodes of the decision tree.

19. The system of claim 18 , wherein to determine whether one or more of the plurality of rules has been satisfied in view of the first context update further, the processing device to:

determine an initial condition of the plurality of conditions to evaluate by determining a root node of the plurality of nodes of the decision tree, wherein the root node indicates a feature and a condition associated with the feature; and

evaluating the initial condition identified by the root node in view of the data set associated with the first context update.

20. The system of claim 19 , wherein to determine whether one or more of the plurality of rules has been satisfied in view of the first context update further, the processing device to:

responsive to the evaluation of the initial condition, evaluate a subsequent node of the decision tree where a number of the plurality of conditions that have outcomes that are implied by the evaluation of the initial condition are eliminated from subsequent evaluation.

Assignments (2)
CHANGE OF NAME Recorded May 1, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 052555/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2020
From: FISCHBACHER, THOMAS
To: GOOGLE INC.
Reel/Frame 052446/0346 →
Continuity (2)
Provisional Application 62489333 · Apr 24, 2017
Related Publication 20200050953A1 · Feb 13, 2020
Cited By (1)
US 12,223,442