# US 12,113,642 B2 · Space graph based dynamic control for buildings

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

- Number: US 12,113,642 B2
- Document ID: US12113642B2
- Status: Granted
- Kind: B2
- Application number: 18/486,857
- Filed: 2023-10-13
- Published: 2024-02-29
- Granted: 2024-10-08
- Earliest claimed: 2017-02-10
- Assignees: Johnson Controls Technology Company
- Applicants: Johnson Controls Technology Company
- Inventors: Youngchoon Park; Sudhi Sinha
- Web page: https://patentgrep.com/patent/US12113642B2

## CPC

- H04L 12/2827: {Reporting to a device within the home network; wherein the reception of the information reported automatically triggers the execution of a home appliance functionality}
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- H04L 12/2809: {indicating that an appliance service is present in a home automation network (monitoring functionality H04L43/0817; discovery or management thereof, e.g. service location protocol [SLP] or web services, H04L67/51)}
- H04L 12/2812: {describing content present in a home automation network, e.g. audio video content (retrieval from the Internet G06F16/95)}
- H04L 12/2832: {Interconnection of the control functionalities between home networks (single bridge functionality H04L12/4625)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A building system including one or more memory devices configured to store instructions that cause one or more processors to store a graph data structure in a data storage device including a plurality of nodes representing a plurality of entities and a plurality of edges between the plurality of nodes representing a plurality of relationships between the plurality of entities, wherein the plurality of entities include a first entity representing one of a person, place, or piece of equipment of the building, wherein a second entity of the plurality of entities represents a software component, wherein the software component performs operations for the person, place, or piece of equipment of the building indicated by one or more edges of the plurality of edges relating the first entity to the second entity and cause the software component to execute and perform the operations for the person, place, or piece of equipment.

## Claims

### Claim 1

A building system, comprising one or more memory devices to store instructions thereon, the instructions causing one or more processors to:
store a space graph on the one or more memory devices, wherein the space graph is a graph data structure comprising a plurality of nodes representing a plurality of entities and a plurality of edges between the plurality of nodes representing a plurality of relationships between the plurality of entities;
execute a control algorithm based on the space graph to operate one or more pieces of equipment;
update the space graph to store a new edge or a new node; and
update the control algorithm based on the new edge or the new node of the space graph.

### Claim 2 (depends on 1)

The building system of claim 1, wherein the instructions cause the one or more processors to:
generate the space graph based on building data, wherein at least one relationships of the plurality of relationships are between the plurality of entities and data values of the building data associated with the plurality of entities;
generate the control algorithm based on the space graph;
receive second building data from one or more data sources;
generate one or more new relationships between a first entity of the plurality of entities and a second entity of the plurality of entities;
update the space graph to store the new edge between a first node of the plurality of nodes representing the first entity and a second node of the plurality of nodes representing the second entity; and
update the control algorithm based on the new edge.

### Claim 3 (depends on 1)

The building system of claim 1, wherein the instructions cause the one or more processors to:
identify, based on new building data, one or more new entities; and
update the space graph with the one or more new entities to store one or more new nodes.

### Claim 4 (depends on 1)

The building system of claim 1, wherein the instructions cause the one or more processors to:
update the control algorithm based on the new edge and the new node.

### Claim 5 (depends on 1)

The building system of claim 1, wherein:
the plurality of entities include an agent; and
the instructions cause the one or more processors to update the control algorithm via the agent by querying, via the agent, the space graph for information, wherein the information comprises at least some of the plurality of entities, at least some of the plurality of relationships.

### Claim 6 (depends on 5)

The building system of claim 5, wherein the instructions cause the one or more processors to:
query, via the agent, the space graph at a predefined time interval.

### Claim 7 (depends on 1)

The building system of claim 1, wherein the instructions cause the one or more processors to:
receive a query for information of the space graph from a requesting device, wherein the information is included by one of the plurality of nodes of the space graph;
retrieve the information from the space graph by traversing at least some of the plurality of entities and at least some of the plurality of edges to identify the information without traversing other entities or other relationships of a data structure other than the space graph; and
provide the information to the requesting device.

### Claim 8 (depends on 7)

The building system of claim 7, wherein the query comprises an indication of the at least some of the plurality of nodes and the at least some of the plurality of entities to traverse to identify the information.

### Claim 9 (depends on 1)

The building system of claim 1, wherein the instructions cause the one or more processors to:
determine whether a plurality of events are triggered by analyzing a plurality of rules with new building data, wherein each of the plurality of events is associated with one of the plurality of rules; and
determine, based on a pattern of the plurality of events that are triggered, the new edge.

### Claim 10 (depends on 9)

The building system of claim 9, wherein the instructions cause the one or more processors to:
determine whether a number of the plurality of events that are triggered is greater than a predefined amount; and
determine, based on the pattern of the plurality of events that are triggered, the new edge responsive to a determination that the number of the plurality of events is greater than the predefined amount.

### Claim 11 (depends on 9)

The building system of claim 9, wherein each of the plurality of rules is a conditional rule based on whether operational data of the plurality of entities exists and that at least some of the plurality of relationships exist, wherein the new building data is the operational data.

### Claim 12

A method, comprising:
storing, by one or more processing circuits, a space graph on one or more memory devices, wherein the space graph is a graph data structure comprising a plurality of nodes representing a plurality of entities and a plurality of edges between the plurality of nodes representing a plurality of relationships between the plurality of entities;
executing, by the one or more processing circuits, a control algorithm based on the space graph to operate one or more pieces of equipment;
updating, by the one or more processing circuits, the space graph to store a new edge or a new node; and
updating, by the one or more processing circuits, the control algorithm based on the new edge or the new node of the space graph.

### Claim 13 (depends on 12)

The method of claim 12, comprising
generating, by the one or more processing circuits, the space graph based on building data, wherein at least one relationships of the plurality of relationships are between the plurality of entities and data values of the building data associated with the plurality of entities;
generating, by the one or more processing circuits, the control algorithm based on the space graph;
receiving, by the one or more processing circuits, second building data from one or more data sources;
generating, by the one or more processing circuits, one or more new relationships between a first entity of the plurality of entities and a second entity of the plurality of entities;
updating, by the one or more processing circuits, the space graph to store the new edge between a first node of the plurality of nodes representing the first entity and a second node of the plurality of nodes representing the second entity; and
updating, by the one or more processing circuits, the control algorithm based on the new edge.

### Claim 14 (depends on 12)

The method of claim 12, comprising:
identifying, by the one or more processing circuits, based on new building data, one or more new entities; and
updating, by the one or more processing circuits, the space graph with the one or more new entities to store one or more new nodes.

### Claim 15 (depends on 12)

The method of claim 12, comprising:
updating, by the one or more processing circuits, the control algorithm based on the new edge and the new node.

### Claim 16 (depends on 12)

The method of claim 12, wherein:
the plurality of entities include an agent; and
the method comprising updating, by the one or more processing circuits, the control algorithm via the agent by querying, via the agent, the space graph for information, wherein the information comprises at least some of the plurality of entities, at least some of the plurality of relationships.

### Claim 17 (depends on 12)

The method of claim 12, comprising:
receiving, by the one or more processing circuits, a query for information of the space graph from a requesting device, wherein the information is included by one of the plurality of nodes of the space graph;
retrieving, by the one or more processing circuits, the information from the space graph by traversing at least some of the plurality of entities and at least some of the plurality of edges to identify the information without traversing other entities or other relationships of a data structure other than the space graph; and
providing, by the one or more processing circuits, the information to the requesting device.

### Claim 18 (depends on 17)

The method of claim 17, wherein the query comprises an indication of the at least some of the plurality of nodes and the at least some of the plurality of entities to traverse to identify the information.

### Claim 19

One or more non-transitory storage media to store instructions thereon, the instructions causing one or more processors to:
store a space graph on at least one memory device, wherein the space graph is a graph data structure comprising a plurality of nodes representing a plurality of entities and a plurality of edges between the plurality of nodes representing a plurality of relationships between the plurality of entities;
execute a control algorithm based on the space graph to operate one or more pieces of equipment;
update the space graph to store a new edge or a new node; and
update the control algorithm based on the new edge or the new node of the space graph.

### Claim 20 (depends on 19)

The one or more non-transitory storage media of claim 19, wherein the instructions cause the one or more processors to:
determine whether a plurality of events are triggered by analyzing a plurality of rules with new building data, wherein each of the plurality of events is associated with one of the plurality of rules; and
determine, based on a pattern of the plurality of events that are triggered, the new edge.
