IP Library Granted Patent US 12,602,212
Granted Patent B1
US 12,602,212 · App. 19/370,567 · Granted Apr 14, 2026

Compiling and executing structured data

Inventors: Ian James Micallef (London, GB); Lucian Huluta (London, GB); Kranti Midha (London, GB); Wayne Liao (London, GB); Richard Stephen Saunders (London, GB); Michael David Scott (London, GB); Kyrylo Kniazev (London, GB)
Assignee: Citibank, N.A.
G06F8/427G06F8/425G06F11/3636
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 12,602,212
App. No.
19/370,567
Granted
Apr 14, 2026
Kind
B1
Abstract

Techniques are provided for processing rules expressed in a domain-specific language. A computing system may receive a rule including an entity identifier, a property of the entity, and one or more logical operators delimited by syntactic tokens of the language. The rule is parsed into an abstract syntax tree (AST) representation that structurally represents entities, properties, and conditional logic, and the AST is transformed into an executable function configured to evaluate input data objects defined according to a machine-readable data model. Execution of the function on input data produces a logical outcome along with intermediate results corresponding to evaluations of individual conditions and logical operators. The computing system generates an execution trace comprising the logical outcome and the intermediate results, the trace being stored in a structured log retrievable to provide evidence of how outcomes were determined.

Claims (42)

1 . A computer-implemented method comprising:

receiving, by a computing system, a rule, condition set, or other expression expressed in a domain-specific language, the expression comprising:

an entity identifier of an entity delimited by a first syntactic token,

a property of the entity delimited by a second syntactic token, and

one or more logical operators delimiting relationships between the entity identifier and the property;

parsing the expression into an abstract syntax tree (AST) representation that structurally represents entities, properties, and conditional logic of the expression;

transforming the AST into an executable function, the executable function being configured to evaluate an input data object against the expression;

executing the executable function on the input data object that is structured according to a machine-readable data model defining attributes of the entity, executing the executable function on the input data object producing a logical outcome indicating whether the input data object satisfies the expression; and

generating an execution trace that provides a record of how the logical outcome was determined, the record comprising:

the logical outcome of the expression, and

one or more intermediate results corresponding to evaluations of individual conditions and logical operators within the expression.

2 . The computer-implemented method of claim 1 , wherein the first syntactic token comprises a pair of delimiters selected from a predefined set of symbols, and the second syntactic token comprises a distinct pair of delimiters from the predefined set, the delimiters distinguishing entity identifiers from entity properties in the domain-specific language.

3 . The computer-implemented method of claim 1 , wherein parsing the expression into the abstract syntax tree comprises validating the expression against a grammar of the domain-specific language and rejecting the expression when the entity identifier or property is not defined in the grammar.

4 . The computer-implemented method of claim 1 , wherein the input data object is defined according to a JavaScript Object Notation (JSON) schema, and transforming the AST into the executable function comprises mapping the entity identifier and property in the AST to attributes of the JSON schema.

5 . The computer-implemented method of claim 1 , wherein generating the execution trace further comprises storing, for each intermediate result, the corresponding entity identifier, the property evaluated, and the logical operator applied.

6 . A computing system, comprising:

one or more processors; and

one or more non-transitory memory computer-readable mediums comprising computer-executable instructions recorded thereon that, if executed by the one or more processors, cause the computing system to:

receive, via a user interface, a rule expressed in a domain-specific language, the rule comprising an entity identifier of an entity delimited by a first syntactic token, a property of the entity delimited by a second syntactic token, and one or more logical operators delimiting relationships between the entity identifier and the property;

parse the rule into an abstract syntax tree (AST) representation that structurally represents the entity identifier, the property, and the logical operators of the rule;

transform the AST into an executable function configured to evaluate an input data object against the rule;

execute the executable function on the input data object, the input data object being structured according to a machine-readable data model defining attributes of the entity, executable function on the input data object producing a logical outcome indicating whether the input data object satisfies the rule; and

generate an execution trace comprising the logical outcome of the rule and one or more intermediate results corresponding to evaluations of individual conditions and logical operators within the rule.

7 . The computing system of claim 6 , wherein the first syntactic token comprises a pair of delimiters selected from a predefined set of symbols, and the second syntactic token comprises a distinct pair of delimiters from the predefined set, the delimiters distinguishing the entity identifier from the property in the domain-specific language.

8 . The computing system of claim 6 , wherein parsing the rule into the abstract syntax tree comprises validating the rule against a grammar of the domain-specific language and rejecting the rule when the entity identifier, the property, or the logical operator is not defined in the grammar.

9 . The computing system of claim 6 , wherein the machine-readable data model comprises a JavaScript Object Notation (JSON) schema, and transforming the AST into the executable function comprises mapping the entity identifier and the property in the AST to attributes defined in the JSON schema.

10 . The computing system of claim 6 , wherein the executable function is generated by traversing nodes of the AST and emitting program instructions corresponding to conditional logic of the rule.

11 . The computing system of claim 6 , wherein executing the executable function further comprises producing intermediate values for each condition and logical operator, and storing the intermediate values in the execution trace.

12 . The computing system of claim 6 , wherein the execution trace comprises entries associating each intermediate result with a corresponding entity identifier, property, and logical operator.

13 . The computing system of claim 6 , wherein the execution trace is stored in a structured log that is indexed by a unique execution identifier to enable retrieval of traces for specific executions.

14 . One or more non-transitory computer-readable storage media comprising computer-executable instructions recorded thereon that, if executed by one or more processors, cause the one or more processors to:

receive, via a user interface, a rule expressed in a domain-specific language, the rule comprising an entity identifier of an entity delimited by a first syntactic token, a property of the entity delimited by a second syntactic token, and one or more logical operators delimiting relationships between the entity identifier and the property;

parse the rule into an abstract syntax tree (AST) representation that structurally represents the entity identifier, the property, and the logical operators of the rule;

transform the AST into an executable function configured to evaluate an input data object against the rule;

execute the executable function on the input data object, the input data object being structured according to a machine-readable data model defining attributes of the entity, executing the executable function on the input data object producing a logical outcome indicating whether the input data object satisfies the rule; and

generate an execution trace comprising the logical outcome of the rule and one or more intermediate results corresponding to evaluations of individual conditions and logical operators within the rule.

15 . The one or more non-transitory computer-readable storage media of claim 14 , wherein the first syntactic token comprises a pair of delimiters selected from a predefined set of symbols, and the second syntactic token comprises a distinct pair of delimiters from the predefined set, the delimiters distinguishing the entity identifier from the property in the domain-specific language.

16 . The one or more non-transitory computer-readable storage media of claim 14 , wherein parsing the rule into the abstract syntax tree comprises validating the rule against a grammar of the domain-specific language and rejecting the rule when the entity identifier, the property, or the logical operator is not defined in the grammar.

17 . The one or more non-transitory computer-readable storage media of claim 14 , wherein the machine-readable data model comprises a JavaScript Object Notation (JSON) schema, and transforming the AST into the executable function comprises mapping the entity identifier and the property in the AST to attributes defined in the JSON schema.

18 . The one or more non-transitory computer-readable storage media of claim 14 , wherein executing the executable function further comprises producing intermediate values for each condition and logical operator, and storing the intermediate values in the execution trace.

19 . The one or more non-transitory computer-readable storage media of claim 14 , wherein the execution trace comprises entries associating each intermediate result with a corresponding entity identifier, property, and logical operator, and the execution trace is stored in a structured log indexed by a unique execution identifier to enable retrieval of traces for specific executions.

20 . The one or more non-transitory computer-readable storage media of claim 14 , wherein transforming the abstract syntax tree into the executable function comprises traversing nodes of the abstract syntax tree and emitting program instructions corresponding to conditional logic of the rule.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2025
From: MICALLEF, IAN JAMES; HULUTA, LUCIAN; MIDHA, KRANTI; LIAO, WAYNE; SAUNDERS, RICHARD STEPHEN; SCOTT, MICHAEL DAVID; KNIAZEV, KYRYLO
To: CITIBANK, N.A.
Reel/Frame 073340/0570 →
References Cited (11)
US 8473897B2 · Box · 2013 [cited by examiner]
US 9582491B2 · Bernelas · 2017 [cited by examiner]
US 11822908B1 · Hatti · 2023 [cited by examiner]
US 12333392B2 · Sivakumar · 2025 [cited by examiner]
US 12500909B1 · Westenberger · 2025 [cited by applicant]
US 20170060602A1 · Self et al. · 2017 [cited by applicant]
US 20180314622A1 · Lowe et al. · 2018 [cited by applicant]
US 20220329558A1 · Khan · 2022 [cited by applicant]
US 20230252077A1 · Kapp · 2023 [cited by examiner]
US 20250378001A1 · Fedoruk et al. · 2025 [cited by applicant]
USPTO Non-Final Office Action datd Jan. 12, 2026, U.S. Appl. No. 19/370,560, 22 pages. [cited by applicant]