US 11,769,065 B2
Distributed system generating rule compiler engine by determining a best matching rule based on concrete parameterization with declarative rules syntax
Yadong Li, Basking Ridge, NJ (US)
Assigned to Julius Technologies LLC, Old Tappan, NJ (US)
Filed by Yadong Li, Basking Ridge, NJ (US)
Filed on Mar. 12, 2020, as Appl. No. 16/816,367.
Claims priority of provisional application 62/894,001, filed on Aug. 30, 2019.
Claims priority of provisional application 62/892,085, filed on Aug. 27, 2019.
Claims priority of provisional application 62/818,318, filed on Mar. 14, 2019.
Prior Publication US 2020/0293916 A1, Sep. 17, 2020
Int. Cl. G06N 5/025 (2023.01); H04L 67/10 (2022.01); G06F 9/50 (2006.01)
CPC G06N 5/025 (2013.01) [G06F 9/5066 (2013.01); G06F 9/5072 (2013.01); H04L 67/10 (2013.01); G06F 2209/5018 (2013.01); G06F 2209/5019 (2013.01)] 41 Claims
OG exemplary drawing
 
40. A rule compiler processor-readable non-transitory physical medium for generating a distributed system storing processor-issuable instructions to:
(a) obtain, via the processor, a distributed system execution request data structure;
(b) determine, via the processor, an output rule structured to comprise a declaration implementing polymorphic parameterization via a declarative rules syntax and a set of rule parameters specifying concrete parameterization for the declaration in accordance with the declarative rules syntax associated with the output rule specified via the distributed system execution request data structure for a requested calculation, wherein a current rule is initialized to the output rule;
(c) query, via the processor, a rule lookup table data structure to determine a set of matching rules, corresponding to the current rule, based on an identification tuple associated with the current rule;
(d) select, via the processor, a best matching rule from the set of matching rules, wherein a set of rule parameters associated with the best matching rule best corresponds to a set of rule parameters associated with the current rule;
(e) generate, via the processor, a logical dependency graph data structure by adding logical dependency graph nodes and logical dependency graph edges corresponding to the best matching rule, precedent rules of the best matching rule, and precedent rules of each of the precedent rules of the best matching rule;
(f) determine, via the processor, an execution complexity gauge value associated with the generated logical dependency graph data structure;
(g) determine, via the processor, a set of distributed worker processes to be utilized to execute the requested calculation;
(h) divide, via the processor, the generated logical dependency graph data structure into a set of subgraphs based on the execution complexity gauge value, wherein each worker process in the set of distributed worker processes is assigned a subgraph from the set of subgraphs;
(i) initialize, via the processor, each respective worker process in the set of distributed worker processes with the subgraph assigned to the respective worker process;
(j) coordinate, via the processor, execution of the requested calculation by worker processes in the set of distributed worker processes, wherein each respective worker process calculates results for logical dependency graph nodes in the subgraph assigned to the respective worker process; and
(k) obtain, via the processor, a computation result of a logical dependency graph node from the logical dependency graph nodes corresponding to the output rule, from the worker process in the set of distributed worker processes that is assigned the subgraph that contains the logical dependency graph node corresponding to the output rule.