# US 2018/0322176 A1 · Data delivery architecture for transforming client response data

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

- Number: US 2018/0322176 A1
- Document ID: US20180322176A1
- Status: Published application
- Kind: A1
- Application number: 15/584,134
- Filed: 2017-05-02
- Published: 2018-11-08
- Earliest claimed: 2017-05-02
- Assignees: Home Box Office, Inc.
- Applicants: Home Box Office, Inc.
- Inventors: Sata Busayarat; Brandon C. Furtwangler; Allen Arthur Gay; Jonathan David Lutz; Steven N. Furtwangler
- Web page: https://patentgrep.com/patent/US20180322176A1

## CPC

- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 16/168: {Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs (query results presentation G06F16/156)}
- G06F 16/738: Presentation of query results
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- H04L 65/764: {at the destination (reformatting of additional data in video clients H04N21/4355)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The described technology is directed towards a data transformation pipeline architecture of a data service that processes generalized datasets into datasets (e.g., video data or graph nodes) customized for a particular client device. Described herein is maintaining a set of data transformation models at a data service, and upon receiving a client request for data, selecting a relevant subset of the transformation models and arranging the subset into a data transformation pipeline. In general, the pipeline of transformation models transforms the generalized data into the format and shape that each client device expects. The subset may be selected based upon device type, device class and/or software version information (and possibly state data) sent with each data request. The transformation models may be maintained in a hierarchical data store such as files in a file system to facilitate retrieval by searching the hierarchy for appropriate transformation models.

## Claims

### Claim 1

A system comprising,
a request handling component that receives a request from a client device for data having associated data type information, and obtains generalized data corresponding to that request, the request having associated client-specific information;
a data transformation pipeline comprising one or more transformation models, each transformation model in the data transformation pipeline corresponding to the client-specific information of the client device and the data type information; and
the request handling component coupled to the data transformation pipeline to provide the generalized data for input into the data transformation pipeline, and to receive transformed output data from the data transformation pipeline, the transformed output data transformed by the one or more transformation models of the data transformation pipeline into customized data for the client device according to the client-specific information, and the request handling component configured to return the customized data in response to the client request.

### Claim 2 (depends on 1)

The system of claim 1 wherein the data transformation pipeline comprises a template transformation model that formats data based upon the client-specific information, or shapes data based upon the client-specific information, or both formats and shapes data based upon the client-specific information.

### Claim 3 (depends on 1)

The system of claim 1 wherein the transformation pipeline comprises a video transformation model, a template transformation model, a filtering transformation model, a namespace transformation model, a user state-based transformation model, a custom transformation model or a data expansion transformation model, or any combination of a video transformation model, a template transformation model, a filtering transformation model, a namespace transformation model, a user state-based transformation model, a custom transformation model or a data expansion transformation model.

### Claim 4 (depends on 1)

The system of claim 1 wherein the transformation pipeline is maintained as a transformation pipeline instance that is useable for a plurality of client requests.

### Claim 5 (depends on 1)

The system of claim 1 wherein the transformation models are maintained in a hierarchy arranged according to a plurality of different client-specific information combinations, and wherein the transformation pipeline is built for the client request by searching the hierarchy using the client-specific information associated with the request and the data type information associated with the request to select a subset of the transformation models in the hierarchy for the transformation pipeline.

### Claim 6 (depends on 5)

The system of claim 5 wherein the transformation pipeline is built with transformation models, in which based on the client-specific information and the data type information, a more-specific transformation model overrides a less-specific transformation model.

### Claim 7 (depends on 5)

The system of claim 5 wherein the hierarchy comprises a file system having folders with folder paths corresponding to the plurality of different client-specific information combinations, and wherein the data type information corresponds to a file type maintained within the folders.

### Claim 8 (depends on 1)

The system of claim 1 wherein the request handling component is part of a front-end data service, and wherein the request handling component obtains the generalized data from a back-end data service.

### Claim 9 (depends on 1)

The system of claim 1 wherein the data type information corresponds to video data or corresponds to a user interface data item.

### Claim 10 (depends on 1)

The system of claim 1 wherein the associated data type information corresponds to a graph node data structure containing data that represents an interactive menu, or a graph node data structure containing data that represents an item of selectable content.

### Claim 11 (depends on 1)

The system of claim 1 wherein the associated client-specific information comprises device type information.

### Claim 12 (depends on 1)

The system of claim 1 wherein the associated client-specific information comprises device class information or information from which a device class is determinable.

### Claim 13 (depends on 1)

The system of claim 1 wherein the associated client-specific information comprises client state data.

### Claim 14

A method comprising:
receiving a request from a client device for data having associated data type information, the request associated with client-specific information;
obtaining generalized data corresponding to the requested data type;
determining if a data transformation pipeline comprising one or more transformation models corresponding to the client-specific information and the data type exists, and if a data transformation pipeline does not exist, building the data transformation pipeline comprising one or more transformation models, each transformation model of the transformation pipeline corresponding to the client-specific information and the data type information;
inputting the generalized data into the data transformation pipeline;
receiving output data from the data transformation pipeline, the output data transformed by the one or more transformation models into customized data for the client device according to the client-specific information; and
returning the customized data in response to the client request.

### Claim 15 (depends on 14)

The method of claim 14 wherein obtaining the generalized data comprises communicating with a data service back-end, communicating with one or more data sources, or searching a cache of generalized data, or any combination of communicating with a data service back-end, communicating with one or more data sources, or searching a cache of generalized data.

### Claim 16 (depends on 14)

The method of claim 14 further comprising, maintaining a hierarchy of transformation models, in which the hierarchy is arranged according to combinations of client-specific information, and wherein building the data transformation pipeline comprises accessing the hierarchy of transformation models based upon the data type and the client client-specific information associated with the request to select at least one transformation model for the client request.

### Claim 17 (depends on 16)

The method of claim 16 wherein accessing the hierarchy of data structures comprises building a path order in the hierarchy, and searching via the path order until at least one transformation model is found that is a most specific transformation model available based upon the client-specific information.

### Claim 18 (depends on 14)

The method of claim 14 further comprising determining the type of the data item by matching an identifier of the data item to a regular expression.

### Claim 19

One or more machine-readable storage media having machine-executable instructions, which when executed perform steps, comprising:
receiving a client request for a requested data item, in which the data item has an associated type and the client request is associated with client-specific information;
obtaining a transformation pipeline for the data type, in which the transformation pipeline contains one or more transformation models that correspond to the client-specific information;
obtaining the data item having data in a generalized form;
processing the data item through the transformation pipeline to obtain transformed data; and
returning the transformed data in response in response to the client request.

### Claim 20 (depends on 19)

The one or more machine-readable storage media of claim 19 wherein obtaining the transformation pipeline comprises determining if a transformation pipeline instance for the data type already exists that corresponds to the client-specific information, and if so, obtaining that transformation pipeline instance, and if not, building a pipeline instance for the data type, including locating one or more transformation models that correspond to the client-specific information.
