US 11,750,682 B2
Messaging system with circumstance configuration framework for hardware
Michael Ronald Cieslak, Los Angeles, CA (US); Jiayao Yu, Venice, CA (US); Kai Chen, Manhattan Beach, CA (US); Farnaz Azmoodeh, Venice, CA (US); Michael David Marr, Monroe, WA (US); Jun Huang, Beverly Hills, CA (US); Zahra Ferdowsi, Marina del Rey, CA (US); and Dhritiman Sagar, Marina del Rey, CA (US)
Assigned to Snap Inc., Santa Monica, CA (US)
Filed by Snap Inc., Santa Monica, CA (US)
Filed on Jan. 24, 2022, as Appl. No. 17/582,998.
Application 17/582,998 is a continuation of application No. 16/803,025, filed on Feb. 27, 2020, granted, now 11,290,576.
Claims priority of provisional application 62/954,268, filed on Dec. 27, 2019.
Prior Publication US 2022/0150330 A1, May 12, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 67/01 (2022.01); G06F 3/12 (2006.01); H04L 51/04 (2022.01); H04N 21/41 (2011.01); H04W 8/22 (2009.01); G06N 3/045 (2023.01)
CPC H04L 67/01 (2022.05) [G06F 3/1204 (2013.01); G06N 3/045 (2023.01); H04L 51/04 (2013.01); H04N 21/4126 (2013.01); H04W 8/22 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A computer-implemented method of enabling a client feature, comprising:
transmitting to a server from a first client device, a request to access a client feature on the first client device;
receiving a pruned rule and a partial decision at the first client device from the server, wherein the pruned rule and partial decision are generated by the server by determining an applicable rule for the access, the applicable rule having a plurality of nodes, determining nodes that can be executed based on data of first client device capabilities, the nodes that can be executed including device hardware capabilities and the nodes that cannot be executed including real-time device capabilities, executing the determined nodes to reach a partial decision, and pruning the applicable rule to remove executed nodes;
executing the pruned rule on the first client device, using a client circumstance engine, with the partial decision to generate a final decision; and
configuring the client feature based on the final decision.