# US 12,118,373 B2 · Metadata driven guided rules editor

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,118,373 B2
- Document ID: US12118373B2
- Status: Granted
- Kind: B2
- Application number: 18/082,200
- Filed: 2022-12-15
- Published: 2024-05-23
- Granted: 2024-10-15
- Earliest claimed: 2022-11-23
- Assignees: Salesforce, Inc.
- Applicants: Salesforce, Inc.
- Inventors: Parth Vijay Vaishnav; Mitchell Christensen; Kevin Han
- Web page: https://patentgrep.com/patent/US12118373B2

## CPC

- G06F 9/453: {Help systems}
- G06F 8/427: {Parsing}
- G06Q 10/067: Enterprise or organisation modelling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Implementation of a guided rules editor comprises displaying a view of a user interface (UI) of the guided rules editor to a user on the client device. Metadata of an organization to which the user belongs is fetched and used to identify which data of the organization is eligible for rule creation and attributes of the metadata are used to determine a layout of the one or more UI selection elements. One or more UI selection elements are rendered in one or more positions in the view on a display screen according to the layout and at least a portion of the one or more UI selection elements are populated with the data of the organization. Responsive to receiving user input of the one or more UI selection elements, an organization-specific rule is generated and saved to a data repository for execution by a rules engine after rule compilation.

## Claims

### Claim 1

A method to be performed by a rules translator, wherein the method comprises:
identifying a first rule that is formatted in accordance with a first rule syntax;
generating, based on the first rule, an abstract syntax tree (AST), the AST including a plurality of nodes associated with a respective plurality of rule templates, each rule template containing a rule fragment that includes text and a placeholder;
traversing the plurality of nodes wherein for each node traversed, the placeholder of the rule fragment of the template associated with the node is populated with a value contained within or associated with the node;
combining rule fragments into a text string to thereby generate, based on the AST, a second rule that is formatted in accordance with a second rule syntax that is different than the first rule syntax; and
providing the second rule to a rule compiler.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first rule syntax is JavaScript Object Notation (JSON).

### Claim 3 (depends on 1)

The method of claim 1, wherein the second rule syntax is a rule language specification.

### Claim 4 (depends on 3)

The method of claim 3, wherein the rule language specification is Drools Rule Language (DRL).

### Claim 5 (depends on 1)

The method of claim 1, wherein respective nodes of the AST correspond to a construct that occurs in the first rule.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first rule relates to a process that is to be executed by a rules engine, and wherein the rules compiler is to perform the process based at least in part on the second rule.

### Claim 7 (depends on 6)

The method of claim 6, wherein the process relates to an organization that provides the first rule.

### Claim 8 (depends on 6)

The method of claim 6, wherein the first rule syntax relates to a business domain of the process.

### Claim 9 (depends on 1)

The method of claim 1, wherein the rule compiler is to store the second rule in a database that is communicatively coupled with the rule compiler.

### Claim 10

One or more non-transitory machine-readable storage media that provides instructions that, if executed by one or more processors, are configurable to cause a rules translator to perform operations comprising:
identifying a first rule that is formatted in accordance with a first rule syntax;
generating, based on the first rule, an abstract syntax tree (AST), the AST including a plurality of nodes associated with a respective plurality of rule templates, each rule template containing a rule fragment that includes text and a placeholder;
traversing the plurality of nodes wherein for each node traversed, the placeholder of the rule fragment of the template associated with the node is populated with a value contained within or associated with the node;
combining rule fragments into a text string to thereby generate, based on the AST, a second rule that is formatted in accordance with a second rule syntax that is different than the first rule syntax; and
providing the second rule to a rule compiler.

### Claim 11 (depends on 10)

The one or more non-transitory machine-readable storage media of claim 10, wherein the first rule syntax is JavaScript Object Notation (JSON).

### Claim 12 (depends on 10)

The one or more non-transitory machine-readable storage media of claim 10, wherein the second rule syntax is a rule language specification.

### Claim 13 (depends on 12)

The one or more non-transitory machine-readable storage media of claim 12, wherein the rule language specification is Drools Rule Language (DRL).

### Claim 14 (depends on 10)

The one or more non-transitory machine-readable storage media of claim 10, wherein respective nodes of the AST correspond to a construct that occurs in the first rule.

### Claim 15 (depends on 10)

The one or more non-transitory machine-readable storage media of claim 10, wherein the first rule relates to a process that is to be executed by a rules engine, and wherein the rules compiler is to perform the process based at least in part on the second rule.

### Claim 16 (depends on 15)

The one or more non-transitory machine-readable storage media of claim 15, wherein the process relates to an organization that provides the first rule.

### Claim 17 (depends on 15)

The one or more non-transitory machine-readable storage media of claim 15, wherein the first rule syntax relates to a business domain of the process.

### Claim 18 (depends on 10)

The one or more non-transitory machine-readable storage media of claim 10, wherein the rule compiler is to store the second rule in a database that is communicatively coupled with the rule compiler.

### Claim 19

An apparatus comprising:
one or more processors; and
one or more non-transitory machine-readable storage media that provides instructions that, if executed by one or more processors, are configurable to cause a rules translator to perform operations comprising:
identifying a first rule that is formatted in accordance with a first rule syntax;
generating, based on the first rule, an abstract syntax tree (AST), the AST including a plurality of nodes associated with a respective plurality of rule templates, each rule template containing a rule fragment that includes text and a placeholder;
traversing the plurality of nodes wherein for each node traversed, the placeholder of the rule fragment of the template associated with the node is populated with a value contained within or associated with the node;
combining rule fragments into a text string to thereby generate, based on the AST, a second rule that is formatted in accordance with a second rule syntax that is different than the first rule syntax; and
providing the second rule to a rule compiler.

### Claim 20 (depends on 19)

The apparatus of claim 19, wherein the first rule relates to a process that is to be executed by a rules engine, and wherein the rules compiler is to perform the process based at least in part on the second rule.
