# US 11,443,098 B1 · Federated recursive user interface element rendering

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

- Number: US 11,443,098 B1
- Document ID: US11443098B1
- Status: Granted
- Kind: B1
- Application number: 15/427,615
- Filed: 2017-02-08
- Granted: 2022-09-13
- Earliest claimed: 2017-02-08
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Mansi Goel; Nilanjan Basu; Ravi Sekhar Chilmakuri; Shreekanth Pandurang Lakshmeshwar; Pramod Kumar Singh
- Web page: https://patentgrep.com/patent/US11443098B1

## CPC

- G06F 40/106: Display of layout of documents; Previewing
- G06F 40/143: Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
- G06F 9/451: Execution arrangements for user interfaces
- G06F 16/958: Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F 40/123: Storage facilities
- G06F 40/14: Tree-structured documents (parsing G06F40/205; validation G06F40/226)
- G06F 40/151: Transformation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A rendering engine is disclosed that provides to federation of user interface elements and recursive execution of user interface elements. By federating user interface elements, the code for maintaining the various elements can be separately maintained, created, and updated without affecting other elements or the page layout of a particular page in a site.

## Claims

### Claim 1

A method, comprising:
obtaining, via at least one computing device, a request to render a page on behalf of a client device, the request being generated in response to the client device requesting the page;
identifying, via the at least one computing device, a page layout corresponding to the page, the page layout defining a plurality of locations within the page layout;
for each of the plurality of locations within the page layout:
identifying a user interface element assigned to a particular one of the plurality of locations;
retrieving a configuration associated with the user interface element, the user interface element specifying a configuration for rendering of the user interface element, wherein the configuration comprises a render predicate and a layout, the layout specifies at least one child user interface element of a plurality of child user interface elements, the at least one child user interface element comprises a respective configuration, a respective render predicate, a respective layout, and code that, when executed, generates respective markup language for placement within the respective layout;
determining, based upon the render predicate, that the user interface element should be rendered, wherein the render predicate is based at least in part upon a contextual variable of a user session in which the page is requested, wherein the contextual variable is based at least in part upon a product identifier that identifies a product represented within the page;
in response to determining, based upon the render predicate, that the user interface element should be rendered, retrieving data elements declared within the configuration, the data elements being retrieved externally from the user session, wherein the data elements are based at least in part upon an attribute of the product represented within the page;
rendering, according to the layout specified by the configuration, the user interface element within the particular one of the locations based upon the data elements declared within the configuration; and
recursively rendering, according to the layout and the respective layout, the at least one child user interface element referenced by the layout specified by the configuration of the user interface element.

### Claim 2 (depends on 1)

The method of claim 1, wherein the user interface element is federated from the page layout.

### Claim 3 (depends on 1)

The method of claim 1, wherein the at least one child user interface element is federated from the user interface element.

### Claim 4 (depends on 1)

The method of claim 1, wherein the user interface element is referenced, using a user interface element identifier, by markup language defining the particular one of the plurality of locations.

### Claim 5 (depends on 4)

The method of claim 4, wherein the configuration identifies at least one child identifier by referencing at least one user interface element identifier corresponding to the at least one child identifier.

### Claim 6 (depends on 1)

The method of claim 1, wherein recursively rendering the at least one child user interface element referenced by the layout specified by the configuration of the user interface element comprises:
determining, based upon the render predicate and the respective render predicate within the respective configuration, that the at least one child user interface element of the plurality of child user interface elements should be rendered.

### Claim 7 (depends on 1)

The method of claim 1, further comprising determining, based upon the respective render predicate being not satisfied, that the at least one child user interface element should not be rendered within the layout.

### Claim 8

A method, comprising:
obtaining, via at least one computing device, a request to generate a content page;
identifying, via the at least one computing device, a page layout corresponding to the content page;
identifying, via the at least one computing device, a reference in the page layout that identifies a user interface element identifier corresponding to a user interface element;
retrieving, via the at least one computing device, a configuration for the user interface element, wherein the configuration comprises a render predicate and a layout, the layout specifies at least one child user interface element of a plurality of child user interface elements, the at least one child user interface element comprises a respective configuration, a respective render predicate, a respective layout, and code that, when executed, generates respective markup language for placement within the respective layout;
evaluating, via the at least one computing device, that the render predicate specifies that the user interface element should be rendered within the content page, wherein the render predicate is based at least in part upon a contextual variable of a user session in which the content page is requested, wherein the contextual variable is based at least in part upon a product identifier, wherein the render predicate is further based at least in part upon the product identifier identifying a product that meets at least one of a product name, a product class, or a product category;
determining, via the at least one computing device and based upon the respective render predicate being not satisfied, that the at least one child user interface element should not be rendered within the layout;
executing, via the at least one computing device, code associated with the user interface element to generate markup language in response to the render predicate being met; and
placing, via the at least one computing device, the markup language within the content page at a location corresponding to the reference in the page layout.

### Claim 9 (depends on 8)

The method of claim 8, wherein the render predicate specifies conditions that determine that the user interface element should generate markup language for placement in the content page.

### Claim 10 (depends on 8)

The method of claim 8, wherein the page layout further comprises a tag comprising an identifier that uniquely identifies the user interface element with respect to other user interface elements.

### Claim 11 (depends on 10)

The method of claim 10, wherein the tag identifies a plurality of user interface elements for placement within the page layout.

### Claim 12 (depends on 8)

The method of claim 8, further comprising obtaining, via the at least one computing device, data referenced by the configuration from a data provider accessible to the at least one computing device, wherein the data is retrieved externally from the user session.

### Claim 13 (depends on 12)

The method of claim 12, wherein the data is identified by a data identifier within the configuration.

### Claim 14 (depends on 8)

The method of claim 8, further comprising recursively rendering the user interface element and at least one of the plurality of child user interface elements to generate the markup language for placement within the page layout.

### Claim 15 (depends on 8)

The method of claim 8, wherein the user interface element is federated relative to the page layout corresponding to the content page.

### Claim 16

A system comprising:
at least one computing device; and
a rendering engine executed by the at least one computing device, the rendering engine, when executed, causing the at least one computing device to at least:
obtain a request to generate a content page;
identify a page layout corresponding to the content page;
identify a reference in the page layout corresponding to a user interface element;
retrieve a configuration for the user interface element, wherein the configuration comprises a render predicate and a layout, the layout specifies at least one child user interface element of a plurality of child user interface elements, the at least one child user interface element comprises a respective configuration, a respective render predicate, a respective layout, and code that, when executed, generates respective markup language for placement within the respective layout;
determine that the render predicate specifies that the user interface element should be rendered within the content page, wherein the render predicate is based at least in part upon a contextual variable of a user session in which the content page is requested, wherein the contextual variable is based at least in part upon a product identifier, wherein the render predicate is further based at least in part upon the product identifier identifying a product that meets at least one of a product name, a product class, or a product category;
determine, based upon the respective render predicate being not satisfied, that the at least one child user interface element should not be rendered within the layout;
execute the code associated with the user interface element to generate markup language; and
place the markup language within the content page at a location corresponding to a tag in the page layout.

### Claim 17 (depends on 16)

The system of claim 16, wherein the user interface element references another child user interface element, and the rendering engine causes the at least one computing device to at least retrieve a second configuration for the other child user interface element and execute the code associated with the other child user interface element prior to completing execution of the code associated with the user interface element.

### Claim 18 (depends on 17)

The system of claim 17, wherein the code associated with the other child user interface element is separately maintained from the code corresponding to the user interface element.

### Claim 19 (depends on 16)

The system of claim 16, wherein the code associated with the user interface element is separately maintained from the page layout.

### Claim 20 (depends on 16)

The system of claim 16, wherein the rendering engine causes the at least one computing device to evaluate the render predicate, wherein the evaluation of the render predicate returns a Boolean value that specifies that the code associated with the user interface element should execute to generate the markup language.
