Patent Publication Number: US-2023152762-A1

Title: Building data platform with artificial intelligence service requirement analysis

Description:
CROSS-REFERENCE TO RELATED PATENT APPLICATIONS 
     This application claims the benefit of and priority to U.S. Provisional Pat. Application No. 63/279,759 filed November 16 th , 2021, the entirety of which is incorporated by reference herein. 
    
    
     BACKGROUND 
     This application relates generally to a building system of a building. This application relates more particularly to artificial intelligence solutions run by the building system. 
     A building may run various artificial intelligence solutions, e.g., applications, machine learning solutions, artificial intelligence solutions, etc. for managing a building. However, the equipment, layout, and configurations of various buildings may be different and therefore the artificial intelligence solutions may not always be applicable for various buildings. Therefore, it is desirable for a building system to understand which artificial intelligence solutions are appropriate for which buildings. Furthermore, it would be desirable to understand what changes could be made to a building so that an artificial intelligence solution could run for the building. 
     SUMMARY 
     One implementation of the present disclosure is a building system of a building including one or more memory devices storing instructions thereon that, when executed by one or more processors, cause the one or more processors to receive a requirement to implement an artificial intelligence (AI) service. The requirement can include an indication of a type of an entity, wherein the AI service is configured to generate an analytic for the entity of the type of the entity or a control setting for the entity of the type of the entity. The requirement can include a data element that the AI service is configured to operate on to generate the analytic or the control setting. The instructions can cause the one or more processors to determine that the building system meets the requirement to implement the AI service responsive to a determination that a digital twin of the building system includes the entity of the entity type and the data element. The instructions can cause the one or more processors to implement the AI service responsive to a determination that the building system meets the requirement. 
     In some embodiments, the instructions cause the one or more processors to receive an indication of a metric indicating a level of performance of the AI service. In some embodiments, the instructions cause the one or more processors to retrieve the data element from the digital twin and generate a value of the metric indicating the level of performance of the AI service based on the data element. 
     In some embodiments, the data element including a data value of equipment of the building. In some embodiments, the AI service including a model configured to generate, based on the data value, the analytic for the entity of the type of the entity or the control setting for entity of the type of the entity. 
     In some embodiments, the instructions cause the one or more processors to determine that the AI service does not meet the requirement, identify one or more equipment updates for the building, the one or more equipment updates including installing equipment in the building, the equipment producing the data element, and generate a recommendation including the one or more equipment updates for the building. 
     In some embodiments, the instructions cause the one or more processors to receive a second requirement for the AI service, the second requirement indicating one or more child entities dependent on the entity, wherein the entity is a parent entity and determine that the building system meets the second requirement responsive to a determination that the digital twin includes the parent entity and the one or more child entities dependent on the parent entity. 
     In some embodiments, the data element includes at least one of a characteristic of the entity of the building or a data point of the entity of the building. 
     In some embodiments, the digital twin is a knowledge graph including nodes representing entities of the building and edges between the nodes indicating relationships between entities of the building. In some embodiments, the instructions cause the one or more processors to determine that the building system meets the requirement to implement the AI service by searching the nodes and the edges to determine that a first node of the nodes represents the entity of the entity type and a second node, related to the first node by an edge of the edges, represents or includes the data element. 
     In some embodiments, the instructions cause the one or more processors to receive a substitute requirement for the AI service, the substitute requirement indicating one or more data elements that substitute for the data element. In some embodiments, the instructions cause the one or more processors to determine that the digital twin includes the one or more data elements that substitute for the data element and determine that the building system meets the substitute requirement to implement the AI service responsive to a determination that the digital twin of the building system includes the one or more data elements. 
     In some embodiments, the instructions cause the one or more processors to determine that the building system meets the requirement to implement the AI service by determining that the digital twin includes the one or more data elements that substitute for the data element. 
     In some embodiments, the instructions cause the one or more processors to determine that the building system meets the requirement to implement the AI service by determining that the data element can be derived from the one or more data elements of the digital twin. 
     In some embodiments, the instructions cause the one or more processors to determine that the building system meets the substitute requirement to implement the AI service by determining that the data element can be derived from information of another building. 
     Another implementation of the present disclosure is a method. The method can include receiving, by one or more processing circuits, a requirement to implement an artificial intelligence (AI) service. The requirement can include an indication of a type of an entity of a building, wherein the AI service is configured to generate an analytic for the entity of the type of the entity or a control setting for the entity of the type of the entity and a data element that the AI service is configured to operate on to generate the analytic or the control setting. The method can include determining, by the one or more processing circuits, that the one or more processing circuits meet the requirement to implement the AI service responsive to a determination that a digital twin of the building includes the entity of the entity type and the data element and implementing, by the one or more processing circuits, the AI service responsive to a determination that the one or more processing circuits meet the requirement. 
     In some embodiments, the data element including a data value of equipment of the building. In some embodiments, the AI service including a model configured to generate, based on the data value, the analytic for the entity of the type of the entity or the control setting for entity of the type of the entity. 
     In some embodiments, the method includes determining, by the one or more processing circuits, that the AI service does not meet the requirement. In some embodiments, the method includes identifying, by the one or more processing circuits, one or more equipment updates for the building, the one or more equipment updates including installing equipment in the building, the equipment producing the data element and generating, by the one or more processing circuits, a recommendation including the one or more equipment updates for the building. 
     In some embodiments, the method includes receiving, by the one or more processing circuits, a second requirement for the AI service, the second requirement indicating one or more child entities dependent on the entity, wherein the entity is a parent entity and determining, by the one or more processing circuits, that the one or more processing circuits meet the second requirement responsive to a determination that the digital twin includes the parent entity and the one or more child entities dependent on the parent entity. 
     In some embodiments, the digital twin is a knowledge graph including nodes representing entities of the building and edges between the nodes indicating relationships between entities of the building. The method can include determining, by the one or more processing circuits, that the one or more processing circuits meet the requirement to implement the AI service by searching the nodes and the edges to determine that a first node of the nodes represents the entity of the entity type and a second node, related to the first node by an edge of the edges, represents or includes the data element. 
     The method can include receiving, by the one or more processing circuits, a substitute requirement for the AI service, the substitute requirement indicating one or more data elements that substitute for the data element. The method can include determining, by the one or more processing circuits, that the digital twin includes the one or more data elements that substitute for the data element and determining, by the one or more processing circuits, that the one or more processing circuits meet the substitute requirement to implement the AI service responsive to a determination that the digital twin of the building includes the one or more data elements. 
     Another implementation of the present disclosure includes one or more storage media storing instructions thereon, that, when executed by one or more processors, cause the one or more processors to receive a requirement to implement an artificial intelligence (AI) service. The requirement can include an indication of a type of an entity of a building, wherein the AI service is configured to generate an analytic for the entity of the type of the entity or a control setting for the entity of the type of the entity and a data element that the AI service is configured to operate on to generate the analytic or the control setting. The instructions can cause the one or more processors to determine that the one or more processors meet the requirement to implement the AI service responsive to a determination that a digital twin of the building includes the entity of the entity type and the data element and implement the AI service responsive to a determination that the one or more processors meet the requirement. 
     In some embodiments, the instructions cause the one or more processors to determine that the AI service does not meet the requirement, identify one or more equipment updates for the building, the one or more equipment updates including installing equipment in the building, the equipment producing the data element, and generate a recommendation including the one or more equipment updates for the building. 
     In some embodiments, the instructions cause the one or more processors to receive a second requirement for the AI service, the second requirement indicating one or more child entities dependent on the entity, wherein the entity is a parent entity and determine that the one or more processors meet the second requirement responsive to a determination that the digital twin includes the parent entity and the one or more child entities dependent on the parent entity. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the detailed description taken in conjunction with the accompanying drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. 
         FIG.  1    is a block diagram of a building data platform including an edge platform, a cloud platform, and a twin manager, according to an exemplary embodiment. 
         FIG.  2    is a graph projection of the twin manager of  FIG.  1    including application programming interface (API) data, capability data, policy data, and services, according to an exemplary embodiment. 
         FIG.  3    is another graph projection of the twin manager of  FIG.  1    including application programming interface (API) data, capability data, policy data, and services, according to an exemplary embodiment. 
         FIG.  4    is a graph projection of the twin manager of  FIG.  1    including equipment and capability data for the equipment, according to an exemplary embodiment. 
         FIG.  5    is a block diagram of a system for managing a digital twin where an artificial intelligence agent can be executed to infer information for an entity of a graph, according to an exemplary embodiment. 
         FIG.  6    is a block diagram of an artificial intelligence manager that determines whether an artificial intelligence service is appropriate for a building based on a knowledge graph, according to an exemplary embodiment. 
         FIG.  7    is a flow diagram of a process of determining whether an artificial intelligence service is appropriate for a building based on the knowledge graph, according to an exemplary embodiment. 
         FIG.  8    is a block diagram of requirements and value metrics of a clean air optimization solution, according to an exemplary embodiment. 
         FIG.  9    is a block diagram of requirements and value metrics of an energy prediction model solution, according to an exemplary embodiment. 
         FIG.  10    is a block diagram of requirements and value metrics of a meeting room comfort control solution, according to an exemplary embodiment. 
         FIG.  11    is a block diagram of a process of checking requirements of an artificial intelligence service against the knowledge graph to determine whether the artificial intelligence service can be implemented for a particular building, according to an exemplary embodiment. 
         FIG.  12    is a block diagram of the clean air optimization solution being checked against the knowledge graph to determine whether the clean air optimization solution can be implemented, according to an exemplary embodiment. 
         FIG.  13    is a block diagram of the energy prediction modeling solution being checked against the knowledge graph to determine whether the energy prediction modeling solution can be implemented, according to an exemplary embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     Referring generally to the FIGURES, systems and methods for artificial intelligence service requirement analysis is shown, according to various exemplary embodiments. A building system can be configured to model a building with a digital twin. The digital twin, e.g., a knowledge graph, can include certain sets of configurations and/or historical data (e.g., timeseries data). Furthermore, the building system can run various software applications, e.g., artificial intelligence (AI) solutions, machine learning solutions, etc. In some embodiments, the artificial intelligence service discussed herein is a software application, e.g., a building control application and/or analytics application. The artificial intelligence service can improve building performance and/or report on building performance. The artificial intelligence service can address occupant comfort, energy usage, data point predictions, etc. 
     In some embodiments, the artificial intelligence service may have a minimum or required set of data necessary to run. In some embodiments, the artificial intelligence service, or another data file, can include the sets of requirements necessary for the various artificial intelligence service to run. The data that the artificial intelligence service runs on can be stored in the digital twin. The building system can analyze the requirements of available artificial intelligence services and the available data of the digital twin to determine whether the requirements are met, satisfied, or fulfilled and that a particular artificial intelligence service can run for the building, run on a building system, run against a particular digital twin, etc. In this regard, the building system can fit the data points to the artificial intelligence service instead of fitting the artificial intelligence service to the data. 
     In some embodiments, the building system runs through multiple different artificial intelligence services to test each of the artificial intelligence services and determine whether each of the artificial intelligence services can be implemented and run, e.g., whether the building system, processors, processing systems, database systems, memory systems meet or satisfy the requirements of the artificial intelligence services. Furthermore, in some embodiments, the building system can quantify a benefit resulting from the implementation of the artificial intelligence services and present only those artificial intelligence services that quantitatively benefit the owner of the built-environment. In some embodiments, responsive to testing all of the artificial intelligence services, the building system can present recommended artificial intelligence services applicable for the building and allow the user to confirm that they want one, some, all, or none of the artificial intelligence services to be implemented and run by the building system. 
     In some embodiments, the building system can record what pieces of data are missing for each artificial intelligence service. In some embodiments, the building system can identify what software and/or hardware improvements would be necessary for the artificial intelligence service to be implemented. For example, one or more sensors could be installed by a building owner which would allow a particular artificial intelligence service to run. In this regard, the building system could present recommendations to a user indicating that if a particular sensor was installed to gather additional data, or a specific data point (e.g., sensor data point, setpoint, etc.) was stored and trended in a database, one or multiple artificial intelligence services could run. 
     In some embodiments, the building system can determine whether a data point can be simulated if the data point is missing from the digital twin. For example, if a particular artificial intelligence service requires the data point but the data point does not exist in the digital twin, the building system can simulate the data point from other data points in the digital twin. This can enable the building system to run the particular artificial intelligence service even if the required data is not present. 
     In some embodiments, after the building system has been running the artificial intelligence services for a particular period of time, the building system can analyze the accuracy and performance of the artificial intelligence services. In some embodiments, the building system can determine whether to stop implementing an artificial intelligence service or implement the output of an artificial intelligence service that is running in the background for testing purposes. 
     Referring now to  FIG.  1   , a building data platform  100  including an edge platform  102 , a cloud platform  106 , and a twin manager  108  are shown, according to an exemplary embodiment. The edge platform  102 , the cloud platform  106 , and the twin manager  108  can each be separate services deployed on the same or different computing systems. In some embodiments, the cloud platform  106  and the twin manager  108  are implemented in off premises computing systems, e.g., outside a building. The edge platform  102  can be implemented on-premises, e.g., within the building. However, any combination of on-premises and off-premises components of the building data platform  100  can be implemented. 
     The building data platform  100  includes applications  110 . The applications  110  can be various applications that operate to manage the building subsystems  122 . The applications  110  can be remote or on-premises applications (or a hybrid of both) that run on various computing systems. The applications  110  can include an alarm application  168  configured to manage alarms for the building subsystems  122 . The applications  110  include an assurance application  170  that implements assurance services for the building subsystems  122 . In some embodiments, the applications  110  include an energy application  172  configured to manage the energy usage of the building subsystems  122 . The applications  110  include a security application  174  configured to manage security systems of the building. 
     In some embodiments, the applications  110  and/or the cloud platform  106  interacts with a user device  176 . In some embodiments, a component or an entire application of the applications  110  runs on the user device  176 . The user device  176  may be a laptop computer, a desktop computer, a smartphone, a tablet, and/or any other device with an input interface (e.g., touch screen, mouse, keyboard, etc.) and an output interface (e.g., a speaker, a display, etc.). 
     The applications  110 , the twin manager  108 , the cloud platform  106 , and the edge platform  102  can be implemented on one or more computing systems, e.g., on processors and/or memory devices. For example, the edge platform  102  includes processor(s)  118  and memories  120 , the cloud platform  106  includes processor(s)  124  and memories  126 , the applications  110  include processor(s)  164  and memories  166 , and the twin manager  108  includes processor(s)  148  and memories  150 . 
     The processors can be a general purpose or specific purpose processors, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable processing components. The processors may be configured to execute computer code and/or instructions stored in the memories or received from other computer readable media (e.g., CDROM, network storage, a remote server, etc.). 
     The memories can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. The memories can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. The memories can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. The memories can be communicably connected to the processors and can include computer code for executing (e.g., by the processors) one or more processes described herein. 
     The edge platform  102  can be configured to provide connection to the building subsystems  122 . The edge platform  102  can receive messages from the building subsystems  122  and/or deliver messages to the building subsystems  122 . The edge platform  102  includes one or multiple gateways, e.g., the gateways  112 - 116 . The gateways  112 - 116  can act as a gateway between the cloud platform  106  and the building subsystems  122 . The gateways  112 - 116  can be the gateways described in U.S. Provisional Pat. Application No. 62/951,897 filed December 20 th , 2019, the entirety of which is incorporated by reference herein. In some embodiments, the applications  110  can be deployed on the edge platform  102 . In this regard, lower latency in management of the building subsystems  122  can be realized. 
     The edge platform  102  can be connected to the cloud platform  106  via a network  104 . The network  104  can communicatively couple the devices and systems of building data platform  100 . In some embodiments, the network  104  is at least one of and/or a combination of a Wi-Fi network, a wired Ethernet network, a ZigBee network, a Bluetooth network, and/or any other wireless network. The network  104  may be a local area network or a wide area network (e.g., the Internet, a building WAN, etc.) and may use a variety of communications protocols (e.g., BACnet, IP, LON, etc.). The network  104  may include routers, modems, servers, cell towers, satellites, and/or network switches. The network  104  may be a combination of wired and wireless networks. 
     The cloud platform  106  can be configured to facilitate communication and routing of messages between the applications  110 , the twin manager  108 , the edge platform  102 , and/or any other system. The cloud platform  106  can include a platform manager  128 , a messaging manager  140 , a command processor  136 , and an enrichment manager  138 . In some embodiments, the cloud platform  106  can facilitate messaging between the building data platform  100  via the network  104 . 
     The messaging manager  140  can be configured to operate as a transport service that controls communication with the building subsystems  122  and/or any other system, e.g., managing commands to devices (C2D), commands to connectors (C2C) for external systems, commands from the device to the cloud (D2C), and/or notifications. The messaging manager  140  can receive different types of data from the applications  110 , the twin manager  108 , and/or the edge platform  102 . The messaging manager  140  can receive change on value data  142 , e.g., data that indicates that a value of a point has changed. The messaging manager  140  can receive timeseries data  144 , e.g., a time correlated series of data entries each associated with a particular time stamp. Furthermore, the messaging manager  140  can receive command data  146 . All of the messages handled by the cloud platform  106  can be handled as an event, e.g., the data  142 - 146  can each be packaged as an event with a data value occurring at a particular time (e.g., a temperature measurement made at a particular time). 
     The cloud platform  106  includes a command processor  136 . The command processor  136  can be configured to receive commands to perform an action from the applications  110 , the building subsystems  122 , the user device  176 , etc. The command processor  136  can manage the commands, determine whether the commanding system is authorized to perform the particular commands, and communicate the commands to the commanded system, e.g., the building subsystems  122  and/or the applications  110 . The commands could be a command to change an operational setting that control environmental conditions of a building, a command to run analytics, etc. 
     The cloud platform  106  includes an enrichment manager  138 . The enrichment manager  138  can be configured to enrich the events received by the messaging manager  140 . The enrichment manager  138  can be configured to add contextual information to the events. The enrichment manager  138  can communicate with the twin manager  108  to retrieve the contextual information. In some embodiments, the contextual information is an indication of information related to the event. For example, if the event is a timeseries temperature measurement of a thermostat, contextual information such as the location of the thermostat (e.g., what room), the equipment controlled by the thermostat (e.g., what VAV), etc. can be added to the event. In this regard, when a consuming application, e.g., one of the applications  110  receives the event, the consuming application can operate based on the data of the event, the temperature measurement, and also the contextual information of the event. 
     The enrichment manager  138  can solve a problem that when a device produces a significant amount of information, the information may contain simple data without context. An example might include the data generated when a user scans a badge at a badge scanner of the building subsystems  122 . This physical event can generate an output event including such information as “DeviceBadgeScannerID,” “BadgeID,” and/or “Date/Time.” However, if a system sends this data to a consuming application, e.g., Consumer A and a Consumer B, each customer may need to call the building data platform knowledge service to query information with queries such as, “What space, build, floor is that badge scanner in?” or “What user is associated with that badge?” 
     By performing enrichment on the data feed, a system can be able to perform inferences on the data. A result of the enrichment may be transformation of the message “DeviceBadgeScannerId, BadgeId, Date/Time,” to “Region, Building, Floor, Asset, DeviceId, BadgeId, UserName, EmployeeId, Date/Time Scanned.” This can be a significant optimization, as a system can reduce the number of calls by ⅟n, where n is the number of consumers of this data feed. 
     By using this enrichment, a system can also have the ability to filter out undesired events. If there are 100 building in a campus that receive 100,000 events per building each hour, but only 1 building is actually commissioned, only ⅒ of the events are enriched. By looking at what events are enriched and what events are not enriched, a system can do traffic shaping of forwarding of these events to reduce the cost of forwarding events that no consuming application wants or reads. 
     An example of an event received by the enrichment manager  138  may be:  
     
       
         
           
               
            
               
                 { 
               
               
                                    “id”: “someguid”, 
               
               
                                     “eventType”: “Device_Heartbeat”, 
               
               
                                     “eventTime”: “2018-01-27T00:00:00+00:00” 
               
               
                                     “eventValue”: 1, 
               
               
                                     “deviceID”: “someguid” 
               
               
                                    } 
               
            
           
         
       
     
     An example of an enriched event generated by the enrichment manager  138  may be: 
     
       
         
           
               
            
               
                                    { 
               
               
                                    “id”: “someguid”, 
               
               
                                    “eventType”: “Device_Heartbeat”, 
               
               
                                    “eventTime”: “2018-01-27T00:00:00+00:00” 
               
               
                                    “eventValue”: 1, 
               
               
                                    “deviceID”: “someguid”, 
               
               
                                    “buildingName”: “Building-48”, 
               
               
                                    “buildingID”: “SomeGuid”, 
               
               
                                    “panelID”: “SomeGuid”, 
               
               
                                    “panelName”: “Building-48-Panel-13”, 
               
               
                                    “cityID”: 371, 
               
               
                                    “cityName”: “Milwaukee”, 
               
               
                                    “stateID”: 48, 
               
               
                                    “stateName”: “Wisconsin (WI)”, 
               
               
                                    “countryID”: 1, 
               
               
                                    “countryName”: “United States” 
               
               
                                    } 
               
            
           
         
       
     
     By receiving enriched events, an application of the applications  110  can be able to populate and/or filter what events are associated with what areas. Furthermore, user interface generating applications can generate user interfaces that include the contextual information based on the enriched events. 
     The cloud platform  106  includes a platform manager  128 . The platform manager  128  can be configured to manage the users and/or subscriptions of the cloud platform  106 . For example, what subscribing building, user, and/or tenant utilizes the cloud platform  106 . The platform manager  128  includes a provisioning service  130  configured to provision the cloud platform  106 , the edge platform  102 , and the twin manager  108 . The platform manager  128  includes a subscription service  132  configured to manage a subscription of the building, user, and/or tenant while the entitlement service  134  can track entitlements of the buildings, users, and/or tenants. 
     The twin manager  108  can be configured to manage and maintain a digital twin. The digital twin can be a digital representation of the physical environment, e.g., a building. The twin manager  108  can include a change feed generator  152 , a schema and ontology  154 , a projection manager  156 , a policy manager  158 , an entity, relationship, and event database  160 , and a graph projection database  162 . 
     The graph projection manager  156  can be configured to construct graph projections and store the graph projections in the graph projection database  162 . Examples of graph projections are shown in  FIGS.  11 - 13   . Entities, relationships, and events can be stored in the database  160 . The graph projection manager  156  can retrieve entities, relationships, and/or events from the database  160  and construct a graph projection based on the retrieved entities, relationships and/or events. In some embodiments, the database  160  includes an entity-relationship collection for multiple subscriptions. Subscriptions can be subscriptions of a particular tenant as described in  FIG.  24   . 
     In some embodiment, the graph projection manager  156  generates a graph projection for a particular user, application, subscription, and/or system. In this regard, the graph projection can be generated based on policies for the particular user, application, and/or system in addition to an ontology specific for that user, application, and/or system. In this regard, an entity could request a graph projection and the graph projection manager  156  can be configured to generate the graph projection for the entity based on policies and an ontology specific to the entity. The policies can indicate what entities, relationships, and/or events the entity has access to. The ontology can indicate what types of relationships between entities the requesting entity expects to see, e.g., floors within a building, devices within a floor, etc. Another requesting entity may have an ontology to see devices within a building and applications for the devices within the graph. 
     The graph projections generated by the graph projection manager  156  and stored in the graph projection database  162  can be a knowledge graph and is an integration point. For example, the graph projections can represent floor plans and systems associated with each floor. Furthermore, the graph projections can include events, e.g., telemetry data of the building subsystems  122 . The graph projections can show application services as nodes and API calls between the services as edges in the graph. The graph projections can illustrate the capabilities of spaces, users, and/or devices. The graph projections can include indications of the building subsystems  122 , e.g., thermostats, cameras, VAVs, etc. The graph projection database  162  can store graph projections that keep up a current state of a building. 
     The graph projections of the graph projection database  162  can be digital twins of a building. Digital twins can be digital replicas of physical entities that enable an in-depth analysis of data of the physical entities and provide the potential to monitor systems to mitigate risks, manage issues, and utilize simulations to test future solutions. Digital twins can play an important role in helping technicians find the root cause of issues and solve problems faster, in supporting safety and security protocols, and in supporting building managers in more efficient use of energy and other facilities resources. Digital twins can be used to enable and unify security systems, employee experience, facilities management, sustainability, etc. 
     In some embodiments the enrichment manager  138  can use a graph projection of the graph projection database  162  to enrich events. In some embodiments, the enrichment manager  138  can identify nodes and relationships that are associated with, and are pertinent to, the device that generated the event. For example, the enrichment manager  138  could identify a thermostat generating a temperature measurement event within the graph. The enrichment manager  138  can identify relationships between the thermostat and spaces, e.g., a zone that the thermostat is located in. The enrichment manager  138  can add an indication of the zone to the event. 
     Furthermore, the command processor  136  can be configured to utilize the graph projections to command the building subsystems  122 . The command processor  136  can identify a policy for a commanding entity within the graph projection to determine whether the commanding entity has the ability to make the command. For example, the command processor  136 , before allowing a user to make a command, determine, based on the graph projection database  162 , to determine that the user has a policy to be able to make the command. 
     In some embodiments, the policies can be conditional based policies. For example, the building data platform  100  can apply one or more conditional rules to determine whether a particular system has the ability to perform an action. In some embodiments, the rules analyze a behavioral based biometric. For example, a behavioral based biometric can indicate normal behavior and/or normal behavior rules for a system. In some embodiments, when the building data platform  100  determines, based on the one or more conditional rules, that an action requested by a system does not match a normal behavior, the building data platform  100  can deny the system the ability to perform the action and/or request approval from a higher level system. 
     For example, a behavior rule could indicate that a user has access to log into a system with a particular IP address between 8A.M. through 5 P.M. However, if the user logs in to the system at 7 P.M., the building data platform  100  may contact an administrator to determine whether to give the user permission to log in. 
     The change feed generator  152  can be configured to generate a feed of events that indicate changes to the digital twin, e.g., to the graph. The change feed generator  152  can track changes to the entities, relationships, and/or events of the graph. For example, the change feed generator  152  can detect an addition, deletion, and/or modification of a node or edge of the graph, e.g., changing the entities, relationships, and/or events within the database  160 . In response to detecting a change to the graph, the change feed generator  152  can generate an event summarizing the change. The event can indicate what nodes and/or edges have changed and how the nodes and edges have changed. The events can be posted to a topic by the change feed generator  152 . 
     The change feed generator  152  can implement a change feed of a knowledge graph. The building data platform  100  can implement a subscription to changes in the knowledge graph. When the change feed generator  152  posts events in the change feed, subscribing systems or applications can receive the change feed event. By generating a record of all changes that have happened, a system can stage data in different ways, and then replay the data back in whatever order the system wishes. This can include running the changes sequentially one by one and/or by jumping from one major change to the next. For example, to generate a graph at a particular time, all change feed events up to the particular time can be used to construct the graph. 
     The change feed can track the changes in each node in the graph and the relationships related to them, in some embodiments. If a user wants to subscribe to these changes and the user has proper access, the user can simply submit a web API call to have sequential notifications of each change that happens in the graph. A user and/or system can replay the changes one by one to reinstitute the graph at any given time slice. Even though the messages are “thin” and only include notification of change and the reference “id/seq id,” the change feed can keep a copy of every state of each node and/or relationship so that a user and/or system can retrieve those past states at any time for each node. Furthermore, a consumer of the change feed could also create dynamic “views” allowing different “snapshots” in time of what the graph looks like from a particular context. While the twin manager  108  may contain the history and the current state of the graph based upon schema evaluation, a consumer can retain a copy of that data, and thereby create dynamic views using the change feed. 
     The schema and ontology  154  can define the message schema and graph ontology of the twin manager  108 . The message schema can define what format messages received by the messaging manager  140  should have, e.g., what parameters, what formats, etc. The ontology can define graph projections, e.g., the ontology that a user wishes to view. For example, various systems, applications, and/or users can be associated with a graph ontology. Accordingly, when the graph projection manager  156  generates an graph projection for a user, system, or subscription, the graph projection manager  156  can generate a graph projection according to the ontology specific to the user. For example, the ontology can define what types of entities are related in what order in a graph, for example, for the ontology for a subscription of “Customer A,” the graph projection manager  156  can create relationships for a graph projection based on the rule: 
     
       
         
           
             Region 
             Building 
             Floor 
             Space 
             Asset 
           
         
       
     
     For the ontology of a subscription of “Customer B,” the graph projection manager  156  can create relationships based on the rule: 
     
       
         
           
             Building 
             Floor 
             Asset 
           
         
       
     
     The policy manager  158  can be configured to respond to requests from other applications and/or systems for policies. The policy manager  158  can consult a graph projection to determine what permissions different applications, users, and/or devices have. The graph projection can indicate various permissions that different types of entities have and the policy manager  158  can search the graph projection to identify the permissions of a particular entity. The policy manager  158  can facilitate fine grain access control with user permissions. The policy manager  158  can apply permissions across a graph, e.g., if “user can view all data associated with floor 1” then they see all subsystem data for that floor, e.g., surveillance cameras, HVAC devices, fire detection and response devices, etc. 
     The twin manager  108  includes a query manager  165  and a twin function manager  167 . The query manger  164  can be configured to handle queries received from a requesting system, e.g., the user device  176 , the applications  110 , and/or any other system. The query manager  165  can receive queries that include query parameters and context. The query manager  165  can query the graph projection database  162  with the query parameters to retrieve a result. The query manager  165  can then cause an event processor, e.g., a twin function, to operate based on the result and the context. In some embodiments, the query manager  165  can select the twin function based on the context and/or perform operates based on the context. In some embodiments, the query manager  165  is configured to perform the operations described with reference to  FIGS.  5 - 10   . 
     The twin function manager  167  can be configured to manage the execution of twin functions. The twin function manager  167  can receive an indication of a context query that identifies a particular data element and/or pattern in the graph projection database  162 . Responsive to the particular data element and/or pattern occurring in the graph projection database  162  (e.g., based on a new data event added to the graph projection database  162  and/or change to nodes or edges of the graph projection database  162 , the twin function manager  167  can cause a particular twin function to execute. The twin function can execute based on an event, context, and/or rules. The event can be data that the twin function executes against. The context can be information that provides a contextual description of the data, e.g., what device the event is associated with, what control point should be updated based on the event, etc. The twin function manager  167  can be configured to perform the operations of the  FIGS.  11 - 15   . 
     Referring now to  FIG.  2   , a graph projection  200  of the twin manager  108  including application programming interface (API) data, capability data, policy data, and services is shown, according to an exemplary embodiment. The graph projection  200  includes nodes  202 - 240  and edges  250 - 272 . The nodes  202 - 240  and the edges  250 - 272  are defined according to the key  201 . The nodes  202 - 240  represent different types of entities, devices, locations, points, persons, policies, and software services (e.g., API services). The edges  250 - 272  represent relationships between the nodes  202 - 240 , e.g., dependent calls, API calls, inferred relationships, and schema relationships (e.g., BRICK relationships). 
     The graph projection  200  includes a device hub  202  which may represent a software service that facilitates the communication of data and commands between the cloud platform  106  and a device of the building subsystems  122 , e.g., door actuator  214 . The device hub  202  is related to a connector  204 , an external system  206 , and a digital asset “Door Actuator”  208  by edge  250 , edge  252 , and edge  254 . 
     The cloud platform  106  can be configured to identify the device hub  202 , the connector  204 , the external system  206  related to the door actuator  214  by searching the graph projection  200  and identifying the edges  250 - 254  and edge  258 . The graph projection  200  includes a digital representation of the “Door Actuator,” node  208 . The digital asset “Door Actuator”  208  includes a “DeviceNameSpace” represented by node  207  and related to the digital asset “Door Actuator”  208  by the “Property of Object” edge  256 . 
     The “Door Actuator”  214  has points and timeseries. The “Door Actuator”  214  is related to “Point A”  216  by a “has_a” edge  260 . The “Door Actuator”  214  is related to “Point B”  218  by a “has_A” edge  258 . Furthermore, timeseries associated with the points A and B are represented by nodes “TS”  220  and “TS”  222 . The timeseries are related to the points A and B by “has_a” edge  264  and “has_a” edge  262 . The timeseries “TS”  220  has particular samples, sample  210  and  212  each related to “TS”  220  with edges  268  and  266  respectively. Each sample includes a time and a value. Each sample may be an event received from the door actuator that the cloud platform  106  ingests into the entity, relationship, and event database  160 , e.g., ingests into the graph projection  200 . 
     The graph projection  200  includes a building  234  representing a physical building. The building includes a floor represented by floor  232  related to the building  234  by the “has_a” edge from the building  234  to the floor  232 . The floor has a space indicated by the edge “has_a”  270  between the floor  232  and the space  230 . The space has particular capabilities, e.g., is a room that can be booked for a meeting, conference, private study time, etc. Furthermore, the booking can be canceled. The capabilities for the floor  232  are represented by capabilities  228  related to space  230  by edge  280 . The capabilities  228  are related to two different commands, command “book room”  224  and command “cancel booking”  226  related to capabilities  228  by edge  284  and edge  282  respectively. 
     If the cloud platform  106  receives a command to book the space represented by the node, space  230 , the cloud platform  106  can search the graph projection  200  for the capabilities for the  228  related to the space  230  to determine whether the cloud platform  106  can book the room. 
     In some embodiments, the cloud platform  106  could receive a request to book a room in a particular building, e.g., the building  234 . The cloud platform  106  could search the graph projection  200  to identify spaces that have the capabilities to be booked, e.g., identify the space  230  based on the capabilities  228  related to the space  230 . The cloud platform  106  can reply to the request with an indication of the space and allow the requesting entity to book the space  230 . 
     The graph projection  200  includes a policy  236  for the floor  232 . The policy  236  is related set for the floor  232  based on a “To Floor” edge  274  between the policy  236  and the floor  232 . The policy  236  is related to different roles for the floor  232 , read events  238  via edge  276  and send command  240  via edge  278 . The policy  236  is set for the entity  203  based on has edge  251  between the entity  203  and the policy  236 . 
     The twin manager  108  can identify policies for particular entities, e.g., users, software applications, systems, devices, etc. based on the policy  236 . For example, if the cloud platform  106  receives a command to book the space  230 . The cloud platform  106  can communicate with the twin manager  108  to verify that the entity requesting to book the space  230  has a policy to book the space. The twin manager  108  can identify the entity requesting to book the space as the entity  203  by searching the graph projection  200 . Furthermore, the twin manager  108  can further identify the edge has  251  between the entity  203  and the policy  236  and the edge  1178  between the policy  236  and the command  240 . 
     Furthermore, the twin manager  108  can identify that the entity  203  has the ability to command the space  230  based on the edge  1174  between the policy  236  and the edge  270  between the floor  232  and the space  230 . In response to identifying the entity  203  has the ability to book the space  230 , the twin manager  108  can provide an indication to the cloud platform  106 . 
     Furthermore, if the entity makes a request to read events for the space  230 , e.g., the sample  210  and the sample  212 , the twin manager  108  can identify the edge has  251  between the entity  203  and the policy  236 , the edge  1178  between the policy  236  and the read events  238 , the edge  1174  between the policy  236  and the floor  232 , the “has_a” edge  270  between the floor  232  and the space  230 , the edge  268  between the space  230  and the door actuator  214 , the edge  260  between the door actuator  214  and the point A  216 , the “has_a” edge  264  between the point A  216  and the TS  220 , and the edges  268  and  266  between the TS  220  and the samples  210  and  212  respectively. 
     Referring now to  FIG.  3   , a graph projection  300  of the twin manager  108  including application programming interface (API) data, capability data, policy data, and services is shown, according to an exemplary embodiment. The graph projection  300  includes the nodes and edges described in the graph projection  200  of  FIG.  2   . The graph projection  300  includes a connection broker  399  related to capabilities  228  by edge  398   a . The connection broker  399  can be a node representing a software application configured to facilitate a connection with another software application. In some embodiments, the cloud platform  106  can identify the system that implements the capabilities  228  by identifying the edge  398   a  between the capabilities  228  and the connection broker  399 . 
     The connection broker  399  is related to an agent that optimizes a space  373  via edge  398   b . The agent represented by the node  356  can book and cancel bookings for the space represented by the node  230  based on the edge  398   b  between the connection broker  399  and the node  356  and the edge  398   a  between the capabilities  228  and the connection broker  399 . 
     The connection broker  399  is related to a cluster  308  by edge  398   c . Cluster  308  is related to connector B  302  via edge  398   e  and connector A  306  via edge  398   d . The connector A  306  is related to an external email service  304 . A connection broker  310  is related to cluster  308  via an edge  311  representing a rest call that the connection broker represented by node  310  can make to the cluster represented by cluster  308 . 
     The connection broker  310  is related to a virtual meeting platform  312  by an edge  354 . The node  312  represents an external system that represents a virtual meeting platform. The connection broker represented by node  310  can represent a software component that facilitates a connection between the cloud platform  106  and the virtual meeting platform represented by node  312 . When the cloud platform  106  needs to communicate with the virtual meeting platform represented by the node  312 , the cloud platform  106  can identify the edge  354  between the connection broker  310  and the virtual meeting platform  312  and select the connection broker represented by the node  310  to facilitate communication with the virtual meeting platform represented by the node  312 . 
     A capabilities node  318  can be connected to the connection broker  310  via edge  360 . The capabilities  318  can be capabilities of the virtual meeting platform represented by the node  312  and can be related to the node  312  through the edge  360  to the connection broker  310  and the edge  354  between the connection broker  310  and the node  312 . The capabilities  318  can define capabilities of the virtual meeting platform represented by the node  312 . The node  320  is related to capabilities  318  via edge  362 . The capabilities may be an invite bob command represented by node  316  and an email bob command represented by node  314 . The capabilities  318  can be linked to a node  320  representing a user, Bob. The cloud platform  106  can facilitate email commands to send emails to the user Bob via the email service represented by the node  304 . The node  304  is related to the connect a node  306  via edge  398   f . Furthermore, the cloud platform  106  can facilitate sending an invite for a virtual meeting via the virtual meeting platform represented by the node  312  linked to the node  318  via the edge  358 . 
     The node  320  for the user Bob can be associated with the policy  236  via the “has” edge  364 . Furthermore, the node  320  can have a “check policy” edge  366  with a portal node  324 . The device API node  328  has a check policy edge  370  to the policy node  236 . The portal node  324  has an edge  368  to the policy node  236 . The portal node  324  has an edge  323  to a node  326  representing a user input manager (UIM). The portal node  324  is related to the UIM node  326  via an edge  323 . The UIM node  326  has an edge  323  to a device API node  328 . The UIM node  326  is related to the door actuator node  214  via edge  372 . The door actuator node  214  has an edge  374  to the device API node  328 . The door actuator  214  has an edge  335  to the connector virtual object  334 . The device hub  332  is related to the connector virtual object via edge  380 . The device API node  328  can be an API for the door actuator  214 . The connector virtual object  334  is related to the device API node  328  via the edge  331 . 
     The device API node  328  is related to a transport connection broker  330  via an edge  329 . The transport connection broker  330  is related to a device hub  332  via an edge  378 . The device hub represented by node  332  can be a software component that hands the communication of data and commands for the door actuator  214 . The cloud platform  106  can identify where to store data within the graph projection  300  received from the door actuator by identifying the nodes and edges between the points  216  and  218  and the device hub node  332 . Similarly, the cloud platform  308  can identify commands for the door actuator that can be facilitated by the device hub represented by the node  332 , e.g., by identifying edges between the device hub node  332  and an open door node  352  and an lock door node  350 . The door actuator  114  has an edge “has mapped an asset”  280  between the node  214  and a capabilities node  348 . The capabilities node  348  and the nodes  352  and  350  are linked by edges  396  and  394 . 
     The device hub  332  is linked to a cluster  336  via an edge  384 . The cluster  336  is linked to connector A  340  and connector B  338  by edges  386  and the edge  389 . The connector A  340  and the connector B  338  is linked to an external system  344  via edges  388  and  390 . The external system  344  is linked to a door actuator  342  via an edge  392 . 
     Referring now to  FIG.  4   , a graph projection  400  of the twin manager  108  including equipment and capability data for the equipment is shown, according to an exemplary embodiment. The graph projection  400  includes nodes  402 - 456  and edges  360 - 498   f . The cloud platform  106  can search the graph projection  400  to identify capabilities of different pieces of equipment. 
     A building node  404  represents a particular building that includes two floors. A floor 1 node  402  is linked to the building node  404  via edge  460  while a floor 2 node  406  is linked to the building node  404  via edge  462 . The floor 2 includes a particular room  2023  represented by edge  464  between floor 2 node  406  and room  2023  node  408 . Various pieces of equipment are included within the room  2023 . A light represented by light node  416 , a bedside lamp node  414 , a bedside lamp node  412 , and a hallway light node  410  are related to room  2023  node  408  via edge  466 , edge  472 , edge  470 , and edge  468 . 
     The light represented by light node  416  is related to a light connector  426  via edge  484 . The light connector  426  is related to multiple commands for the light represented by the light node  416  via edges  484 ,  486 , and  488 . The commands may be a brightness setpoint  424 , an on command  425 , and a hue setpoint  428 . The cloud platform  106  can receive a request to identify commands for the light represented by the light  416  and can identify the nodes  424 - 428  and provide an indication of the commands represented by the node  424 - 428  to the requesting entity. The requesting entity can then send commands for the commands represented by the nodes  424 - 428 . 
     The bedside lamp node  414  is linked to a bedside lamp connector  481  via an edge  413 . The connector  481  is related to commands for the bedside lamp represented by the bedside lamp node  414  via edges  492 ,  496 , and  494 . The command nodes are a brightness setpoint node  432 , an on command node  434 , and a color command  436 . The hallway light  410  is related to a hallway light connector  446  via an edge  498   d . The hallway light connector  446  is linked to multiple commands for the hallway light node  410  via edges  498   g ,  498   f , and  498   e . The commands are represented by an on command node  452 , a hue setpoint node  450 , and a light bulb activity node  448 . 
     The graph projection  400  includes a name space node  422  related to a server A node  418  and a server B node  420  via edges  474  and  476 . The name space node  422  is related to the bedside lamp connector  481 , the bedside lamp connector  444 , and the hallway light connector  446  via edges  482 ,  480 , and  478 . The bedside lamp connector  444  is related to commands, e.g., the color command node  440 , the hue setpoint command  438 , a brightness setpoint command  456 , and an on command  454  via edges  498   c ,  498   b ,  498   a , and  498 . 
     Referring now to  FIG.  5   , a system  500  for managing a digital twin where an artificial intelligence agent can be executed to infer and/or predict information for an entity of a graph is shown, according to an exemplary embodiment. The system  500  can be components of the building data platform  100 , e.g., components run on the processors and memories of the edge platform  102 , the cloud platform  106 , the twin manager  108 , and/or the applications  110 . The system  500  can, in some implementations, implement a digital twin with artificial intelligence. 
     A digital twin (or a shadow) may be a computing entity that describes a physical thing (e.g., a building, spaces of a building, devices of a building, people of the building, equipment of the building, etc.) through modeling the physical thing through a set of attributes that define the physical thing. A digital twin can refer to a digital replica of physical assets (a physical device twin) and can be extended to store processes, people, places, systems that can be used for various purposes. The digital twin can include both the ingestion of information and actions learned and executed through artificial intelligence agents. 
     In  FIG.  5   , the digital twin can be a graph  529  managed by the twin manager  108  and/or artificial intelligence agents  570 . In some embodiments, the digital twin is the combination of the graph  529  with the artificial intelligence agents  570 . In some embodiments, the digital twin enables the creation of a chronological time-series database of telemetry events for analytical purposes. In some embodiments, the graph  529  uses the BRICK schema. 
     The twin manager  108  stores the graph  529  which may be a graph data structure including various nodes and edges interrelating the nodes. The graph  529  may be the same as, or similar to, the graph projections described herein with reference to  FIGS.  1 - 4   . The graph  529  includes nodes  510 - 526  and edges  528 - 546 . The graph  529  includes a building node  526  representing a building that has a floor indicated by the “has” edge  546  to the floor node  522 . The floor node  522  is relate to a zone node  510  via a “has” edge  544  indicating that the floor represented by the node  522  has a zone represented by the zone  510 . 
     The floor node  522  is related to the zone node  518  by the “has” edge  540  indicating that the floor represented by the floor node  522  has another zone represented by the zone node  518 . The floor node  522  is related to another zone node  524  via a “has” edge  542  representing that the floor represented by the floor node  522  has a third zone represented by the zone node  524 . 
     The graph  529  includes an AHU node  514  representing an AHU of the building represented by the building node  526 . The AHU node  514  is related by a “supplies” edge  530  to the VAV node  512  to represent that the AHU represented by the AHU node  514  supplies air to the VAV represented by the VAV node  512 . The AHU node  514  is related by a “supplies” edge  536  to the VAV node  520  to represent that the AHU represented by the AHU node  514  supplies air to the VAV represented by the VAV node  520 . The AHU node  514  is related by a “supplies” edge  532  to the VAV node  516  to represent that the AHU represented by the AHU node  514  supplies air to the VAV represented by the VAV node  516 . 
     The VAV node  516  is related to the zone node  518  via the “serves” edge  534  to represent that the VAV represented by the VAV node  516  serves (e.g., heats or cools) the zone represented by the zone node  518 . The VAV node  520  is related to the zone node  524  via the “serves” edge  538  to represent that the VAV represented by the VAV node  520  serves (e.g., heats or cools) the zone represented by the zone node  524 . The VAV node  512  is related to the zone node  510  via the “serves” edge  528  to represent that the VAV represented by the VAV node  512  serves (e.g., heats or cools) the zone represented by the zone node  510 . 
     Furthermore, the graph  529  includes an edge  533  related to a timeseries node  564 . The timeseries node  564  can be information stored within the graph  529  and/or can be information stored outside the graph  529  in a different database (e.g., a timeseries database). In some embodiments, the timeseries node  564  stores timeseries data (or any other type of data) for a data point of the VAV represented by the VAV node  516 . The data of the timeseries node  564  can be aggregated and/or collected telemetry data of the timeseries node  564 . 
     Furthermore, the graph  529  includes an edge  537  related to a timeseries node  566 . The timeseries node  566  can be information stored within the graph  529  and/or can be information stored outside the graph  529  in a different database (e.g., a timeseries database). In some embodiments, the timeseries node  566  stores timeseries data (or any other type of data) for a data point of the VAV represented by the VAV node  516 . The data of the timeseries node  564  can be inferred information, e.g., data inferred by one of the artificial intelligence agents  570  and written into the timeseries node  564  by the artificial intelligence agent  570 . In some embodiments, the timeseries  564  and/or  566  are stored in the graph  529  but are stored as references to timeseries data stored in a timeseries database. 
     The twin manager  108  includes various software components. For example, the twin manager  108  includes a device management component  548  for managing devices of a building. The twin manager  108  includes a tenant management component  550  for managing various tenant subscriptions. The twin manager  108  includes an event routing component  552  for routing various events. The twin manager  108  includes an authentication and access component  554  for performing user and/or system authentication and grating the user and/or system access to various spaces, pieces of software, devices, etc. The twin manager  108  includes a commanding component  556  allowing a software application and/or user to send commands to physical devices. The twin manager  108  includes an entitlement component  558  that analyzes the entitlements of a user and/or system and grants the user and/or system abilities based on the entitlements. The twin manager  108  includes a telemetry component  560  that can receive telemetry data from physical systems and/or devices and ingest the telemetry data into the graph  529 . Furthermore, the twin manager  108  includes an integrations component  562  allowing the twin manager  108  to integrate with other applications. 
     The twin manager  108  includes a gateway  506  and a twin connector  508 . The gateway  506  can be configured to integrate with other systems and the twin connector  508  can be configured to allow the gateway  506  to integrate with the twin manager  108 . The gateway  506  and/or the twin connector  508  can receive an entitlement request  502  and/or an inference request  504 . The entitlement request  502  can be a request received from a system and/or a user requesting that an AI agent action be taken by the AI agent  570 . The entitlement request  502  can be checked against entitlements for the system and/or user to verify that the action requested by the system and/or user is allowed for the user and/or system. The inference request  504  can be a request that the AI agent  570  generates an inference, e.g., a projection of information, a prediction of a future data measurement, an extrapolated data value, etc. 
     The cloud platform  106  is shown to receive a manual entitlement request  586 . The request  586  can be received from a system, application, and/or user device (e.g., from the applications  110 , the building subsystems  122 , and/or the user device  176 ). The manual entitlement request  586  may be a request for the AI agent  570  to perform an action, e.g., an action that the requesting system and/or user has an entitlement for. The cloud platform  106  can receive the manual entitlement request  586  and check the manual entitlement request  586  against an entitlement database  584  storing a set of entitlements to verify that the requesting system has access to the user and/or system. The cloud platform  106 , responsive to the manual entitlement request  586  being approved, can create a job for the AI agent  570  to perform. The created job can be added to a job request topic  580  of a set of topics  578 . 
     The job request topic  580  can be fed to AI agents  570 . For example, the topics  580  can be fanned out to various AI agents  570  based on the AI agent that each of the topics  580  pertains to (e.g., based on an identifier that identifies an agent and is included in each job of the topic  580 ). The AI agents  570  include a service client  572 , a connector  574 , and a model  576 . The model  576  can be loaded into the AI agent  570  from a set of AI models stored in the AI model storage  568 . The AI model storage  568  can store models for making energy load predictions for a building, weather forecasting models for predicting a weather forecast, action/decision models to take certain actions responsive to certain conditions being met, an occupancy model for predicting occupancy of a space and/or a building, etc. The models of the AI model storage  568  can be neural networks (e.g., convolutional neural networks, recurrent neural networks, deep learning networks, etc.), decision trees, support vector machines, and/or any other type of artificial intelligence, machine learning, and/or deep learning category. In some embodiments, the models are rule based triggers and actions that include various parameters for setting a condition and defining an action. 
     The AI agent  570  can include triggers  595  and actions  597 . The triggers  595  can be conditional rules that, when met, cause one or more of the actions  597 . The triggers  595  can be executed based on information stored in the graph  529  and/or data received from the building subsystems  122 . The actions  597  can be executed to determine commands, actions, and/or outputs. The output of the actions  597  can be stored in the graph  529  and/or communicated to the building subsystems  122 . 
     The AI agent  570  can include a service client  572  that causes an instance of an AI agent to run. The instance can be hosted by the artificial intelligence service client  588 . The client  588  can cause a client instance  592  to run and communicate with the AI agent  570  via a gateway  590 . The client instance  592  can include a service application  594  that interfaces with a core algorithm  598  via a functional interface  596 . The core algorithm  598  can run the model  576 , e.g., train the model  576  and/or use the model  576  to make inferences and/or predictions. 
     In some embodiments, the core algorithm  598  can be configured to perform learning based on the graph  529 . In some embodiments, the core algorithm  598  can read and/or analyze the nodes and relationships of the graph  529  to make decisions. In some embodiments, the core algorithm  598  can be configured to use telemetry data (e.g., the timeseries data  564 ) from the graph  529  to make inferences on and/or perform model learning. In some embodiments, the result of the inferences can be the timeseries  566 . In some embodiments, the timeseries  564  is an input into the model  576  that predicts the timeseries  566 . 
     Referring now to  FIG.  6   , a system  600 , such as a building system, of an AI service manager  610  that determines whether an artificial intelligence service is appropriate for a building based on a knowledge graph  608  is shown, according to an exemplary embodiment. The AI service manager  610  includes processors  626  and memory devices  628 . The AI service manager  610  can be a building system or a component of a buildign system. The processors  626  and the memory devices  628  can be the same as, or similar to, the processors and memory devices described with reference to  FIG.  1   . The AI service manager  610  can perform operations via the processors  626  based on instructions stored in the memory devices  628 . The system  600 , e.g., the AI service manager  610 , can be implemented as components in the edge platform  102 , the cloud platform  106 , and the twin manager  108  or can be separate components that are in communication with the edge platform  102 , the cloud platform  106 , and/or the twin manager  108 . 
     The AI service manager  610  can receive the knowledge graph  608  created, stored, and/or otherwise managed by the twin manager  108 . The twin manager  108  can generate the knowledge graph  608  for a particular building based on metadata  602  received for the building and equipment of the building and the timeseries data  604  received from equipment of the building. Techniques for generating a knowledge graph from building data, which can be performed by the AI service manager  610 , are described in U.S. Pat. Application No. 16/663,623 filed October 25 th , 2019, U.S. Pat. Application No. 16/885,968 filed May 28 th , 2020, and U.S. Pat. Application No. 16/885,959 filed May 28 th , 2020, the entireties of which are incorporated by reference herein. 
     In some embodiments, the knowledge graph  608  is a graph data structure. The knowledge graph  608  may utilize the BRICK schema, in some embodiments. The knowledge graph  608  can be similar to, or the same as, the graphs described with reference to  FIGS.  1 - 5   . The knowledge graph  608  can include nodes representing entities such as buildings, building spaces, equipment, data, events, data points, and/or data values. The knowledge graph  608  can include edges interrelating the nodes representing relationships between the entities. The edges can include words, sentence, and/or phrases that describe a type of relationship between two entities. The edges can include predicates and can form subject, predicate, and object (SPO) relationships between a node representing the subject and another node representing the object. 
     The AI service manager  610  includes a graph analyzer  611  that can analyze AI services of an AI services database  616  against the knowledge graph  608 . The graph analyzer  611  can query the knowledge graph  608  for information and/or receive at least part of the knowledge graph  608 . The graph analyzer  611  can receive data requirements  620  from the AI services database  616 . 
     The data requirements  620  can be requirements that a particular model, e.g., the models  618  has to be properly trained and/or ran. The data requirements  620  can indicate types of data, types of entities (e.g., types of devices, types of spaces, etc.) necessary for a particular analytics solution to run properly. The graph analyzer  611  can receive the data requirements  620  from the AI services database  616  and determine whether the knowledge graph  608  stores the required data. In some embodiments, the models  618  require a certain configuration (e.g., a building must have a zone and a thermostat for a particular artificial intelligence service to run), value or data type (e.g., zone temperature, outdoor ambient temperature, etc.), and/or a certain amount of historical data for data points (e.g., needs at least a week of historical zone temperature and outdoor ambient temperature measurements). 
     In some embodiments, the data requirements  620  can include both required and recommend data points for analytics solution. In some embodiments, an analytics solution can run on a minimum level of data, e.g., required data points. However, additional data may increase the performance and may be included as recommend data points but not mandatory data points. 
     In some embodiments, the graph analyzer  611  can identify that substitute data is available in the knowledge graph  608  that may not meet the ideal requirements of the artificial intelligence services but would permit the artificial intelligence services to run. In this regard, the graph analyzer  611  can cause the artificial intelligence services to be trained and/or run based on the substitute data. The substitute data could be traffic data, crowd data, weather data, etc. In some embodiments, the graph analyzer  611  can identify that although required data for an artificial intelligence service is not stored in the knowledge graph  608 , the AI service manager  610  could simulate the data from other information in the knowledge graph  608 . In this regard, the graph analyzer  611  can cause the AI service manager  610  to train and/or otherwise implement the artificial intelligence service based on the simulated data. 
     In some embodiments, the graph analyzer  611  can identify data points needed for a particular artificial intelligence service based on the data requirements  620 . The graph analyzer  611  can query the knowledge graph  608  for each required data point to verify that all of the data points needed for the artificial intelligence service are present and the appropriate amount of historical data is present. Responsive to determining that all required data points are present or appropriate substitutions and/or simulations are available to replace missing data points, the graph analyzer  611  can identify that the analytics solution can be trained and/or run. 
     The graph analyzer  611  could make a query for outdoor air temperature for a particular artificial intelligence service. The artificial intelligence service may require outdoor air temperature measured by an outdoor air temperature sensor. Whether a timeseries of historical outdoor air temperature measurements is present may be an optional requirement of the analytics solution. A query that the graph analyzer  611  could make on the knowledge graph  608  could be:  
     
       
         
           
               
            
               
                 SELECT ?oat ?tsid 
               
               
                                WHERE { 
               
               
                                   ?oat a brick:Outside_Air_Temperature_Sensor 
               
               
                                   OPTIONAL { 
               
               
                                     ?oat brick:timeseries [brick:hasTimeseriesId ?tsid] 
               
               
                                } } 
               
            
           
         
       
     
     In some embodiments, the graph analyzer  611  can analyze each artificial intelligence service of the AI services database  616  to determine whether the analytics solution can run based on the existing information of the knowledge graph  608 . In some embodiments, the graph analyzer  611  can present artificial intelligence services that have all (or at least a sufficient number) of their data requirements met or satisfied to a user device  176  via the recommendation manager  612 . The recommendation manager  612  can cause a user interface to be displayed on the user device  176  allowing a user to accept and/or approve the analytics solutions causing them to be trained and/or implemented by the AI service manager  610 . 
     In some embodiments, the recommendation manager  612  can provide recommendations to a user via the user device  176  recommending that the user install new sensors and/or pieces of equipment (e.g., an outdoor-air flow sensor, a flow controller, etc.) in a building so that data points needed for a particular artificial intelligence service are present and the analytics manager can run the particular artificial intelligence service. In some embodiments, the recommendation manager  612  can cause a user interface to be displayed on the user device  176  instructing the user to install the new sensor and/or piece of equipment or allowing the user to contact a technician and instruct them to install the new sensor and/or piece of equipment. 
     The graph analyzer  611  can provide an indication to the model trainer  614  that the data requirements  620  have been met and that a model of the models  618  associated with the data requirements  620  can be trained and/or implemented. The model trainer  614  can be configured to train the models  618  based on knowledge from the knowledge graph  608 . In some embodiments, the model trainer  614  can run various optimization and/or learning algorithms (e.g., regressions, gradient descent, etc.) to train the models  618  based on the data of the knowledge graph  608 . The models  618  can be neural networks (e.g., sequence to sequence neural networks, recurrent neural networks, convolutional neural networks, etc.), Decision Trees, Support Vector Machines, Bayesian networks, linear regression models, etc. 
     A model evaluator  624  can evaluate the trained models  622  and determine performance metrics based on the trained models  622 . For example, if the trained models  622  predict a future value of a data point, the model evaluator  624  could retrieve the data value once it is measured and compare the actual data value against the predicted data value. As data is added to the knowledge graph  608  by the twin manager  108 , the model evaluator  624  can retrieve the measured data from the knowledge graph  608  and compare the actual data values against predictions made by the trained models  622 . The result of the evaluation by the model evaluator  624  could be accuracy and/or precision metrics. In some embodiments, the recommendation manager  612  can present evaluation metrics determined by the model evaluator  624  to the user via the user device  176  (e.g., via a user interface). 
     Referring now to  FIG.  7   , a process  700  of determining whether an artificial intelligence service is appropriate for a building based on the knowledge graph  608  is shown, according to an exemplary embodiment. The process  700  can be performed by the twin manager  108  and/or the AI service manager  610 . Furthermore, any computing system, component, and/or device described herein can be configured to perform the process  700 , in some embodiments. While the process  700  is described with reference to determining whether one artificial intelligence service is applicable to run, the process  700  can be repeated to determine whether multiple different artificial intelligence services can be implemented for a particular building. Each of the AI services can include different requirements, e.g., different required equipment, parameters, measurements, trend data length, and/or data measurement intervals. The process  700  can be performed for each analytics service with the appropriate requirements. 
     In step  702 , the twin manager  108  can receive metadata and timeseries data for a building, e.g., the metadata  602  and the timeseries data  604 . The metadata can include information such as floor plan drawings, HVAC system drawings, building information model (BIM) data, building automation system (BAS) data, etc. The timeseries data can include data point variables (e.g., sensor measurements, configuration settings, actuator commands, etc.) and/or various trends of the data point variables. The data point variables can be data points of various different subsystems installed in the building. 
     In step  704 , the twin manager  108  can generate the knowledge graph  608  based on the received data of the step  702 . The knowledge graph  608  can be the same as, or similar to, the graph data structures described with reference to  FIGS.  1 - 5   . The knowledge graph  608  can be a BRICK model and/or utilize the BRICK schema. 
     In step  706 , the AI service manager  610  can receive an AI service, e.g., from the AI services database  616 . In step  708 , the AI service manager  610  can determine if there are any AI services that have not been checked by the AI service manager  610 . In response to determining that the analytics service has not yet been checked, the process can continue to step  710 . Responsive to determining that there are not any AI services that have not been checked by the AI service manager  610 , the AI service manager  610  can wait until a new analytics service needs to be checked. 
     In step  710 , the AI service manager  610  can perform trend data processing, e.g., getting data requirements for an analytics service to be checked, performing resampling on the timeseries data, removing outlier data in the timeseries data, perform interpolation on the timeseries data, performing consolidation on the timeseries data, etc. 
     In step  712 , the AI service manager  610  can determine whether the data available in the knowledge graph  608  and/or the timeseries data  604  is sufficient for the analytics service to be trained and/or implemented. The AI service manager  610  can perform a knowledge graph suitability search on the knowledge graph  608  to determine whether the knowledge graph  608  is suitable for the analytics service. Furthermore, the AI service manager  610  can perform a trend data suitability check to determine whether the trended data of the trend data processing of step  710  is suitable for the analytics service. If the data is not sufficient, the process can proceed to step  714 . If the data is sufficient, the process  700  can proceed to the step  720 . 
     In step  714 , the AI service manager  610  can determine whether the required data is predictable from other variables of the building. For example, in some embodiments, data that is missing from the knowledge graph  608  and/or the timeseries data  604  can be predicted from other data points. For example, if a third floor of a building does not have occupancy sensors but an occupancy level of the third floor is needed for a control algorithm, the occupancy of the third floor could be predicted by averaging the occupancy from the first floor, the second floor, and the fourth floor. If the data cannot be predicted, the process can proceed to the step  716 . If the data can be predicted, the process can proceed to the step  720 . 
     In step  716 , the AI service manager  610  can determine whether the data can be predicted from variables of other buildings. For example, if the required data is a water consumption data point but the building does not have any sensor to measure water usage by the building, the AI service manager  610  could identify a building of a similar size with a similar number of occupants (e.g., via searching a database of buildings and pieces of building information, e.g., the knowledge graph  529 ) that does have sensors to measure water usage. The AI service manager  610  could predict the water usage for the building based on the water usage measured for the other building. If the data can be predicted from other buildings, the process  700  can proceed to the step  720 . If the data cannot be predicted, the process  700  can proceed to the step  718 . In some embodiments, an AI model may require one year of data to train and/or execute but a site that the AI model is being implemented for may only have a few months of data. In some embodiments, data from a similar building could be used to build a dataset to use for the AI model until the full year of data for the site is collected. In some embodiments, both building sites are owned by the same entity and/or built by the same entity. 
     In step  718 , the AI service manager  610  can determine whether the data can be simulated by a physical model. For example, if the required data point is an electric load data point but there are no load sensors in the building, the AI service manager  610  could simulate an electric load of the building based on the number and type of building equipment that are operating in the building. The AI service manager  610  can store a repository of physical model simulation software which simulate various data points. The AI service manager  610  can consult the repository and select an appropriate physical model simulation software if it exists in the repository. If the data can be simulated the process  700  proceeds to the step  720 . If the data cannot be simulated the process  700  can proceed to the steps  721  and  722 . 
     In step  720 , the AI service manager  610  can predict the data (e.g., the prediction of the steps  714  and  716 ) or simulate the data (e.g., the simulation of the step  718 ). In step  721 , the analytics manager can generate an unsuitability report. The unsuitability report can indicate why the artificial intelligence service cannot be implemented. The unsuitability report can include a data quality score indicating a level or percentage of required data that has been met for the artificial intelligence service. Furthermore, the unsuitability report can indicate suggestions for installing equipment or devices (e.g., sensors) in the building in order to provide data that would enable the artificial intelligence service to run. In step  722 , the artificial intelligence service can be excluded from running and/or can be added to an exclusion list and/or flagged as unsuitable by the AI service manager  610 . 
     In step  724 , the AI service manager  610  can train the artificial intelligence service to run. In some embodiments, the AI service manager  610  can train a model of the artificial intelligence service, e.g., the models  618 . The AI service manager  610  can train and tune parameters of the model, in some embodiments. In some embodiments, the artificial intelligence service is trained by the AI service manager  610  based on the received metadata and/or timeseries data of the step  702  and/or the knowledge graph  608 . 
     In step  726 , the AI service manager  610  can run the trained artificial intelligence service. For example, if the artificial intelligence service is a control algorithm, the AI service manager  610  can run the control algorithm to control a physical pieces of equipment of a building. If the artificial intelligence service generates metrics or other information, the trained artificial intelligence service can run to generate the metrics or other information. If the artificial intelligence service predicts or infers information, the AI service manager  610  can run the trained artificial intelligence service to predict or infer the information. In some embodiments, the trained artificial intelligence service is run based on the received metadata and/or timeseries data of the step  702  and/or the knowledge graph  608 . In some embodiments, the AI service manager  610  can run the trained artificial intelligence service for a predefined length of time. 
     In step  728 , the AI service manager  610  can determine whether the trained artificial intelligence service provides an optimization. If the trained artificial intelligence service provides an optimization, the process  700  can proceed to step  730 . If the trained artificial intelligence service does not provide an optimization, the process  700  can proceed to step  732 . The AI service manager  610  can check the value of the trained artificial intelligence service and/or can select the appropriate value metrics based on the type of the artificial intelligence service. 
     In step  730 , the AI service manager  610  can estimate the savings provided by the artificial intelligence service and generate a report to include and/or cause the report to include an indication of the estimated savings. The AI service manager  610  can determine how much energy or money has been saved based on an optimization run by the artificial intelligence service. For example, if the artificial intelligence service runs to optimize chiller, boiler, and/or AHU control, the resulting energy savings and/or comfort can be quantified and presented to the user in the report. Furthermore, if the AI service manager  610  is not set to run by a user, in some embodiments, the AI service manager  610  can identify an estimated savings if the AI service manager  610  had been run. For example, if the user has not enabled the service at a particular point in time, the AI service manager  610  could simulate the hypothetical performance of the building with and without the AI service manager  610  and include estimated savings in a report. 
     In step  732 , the AI service manager  610  can check the accuracy of the analytics service and generate the report and/or cause the report to include the accuracy. For example, the AI service manager  610  can compare inferred and/or predicted values to actual values recorded by the building data platform  100 . The AI service manager  610  can determine an average error between the predicted and/or inferred values and the actual values. In step  734 , the AI service manager  610  can provide the report including the estimated monetary savings, estimated comfort improvement, the accuracy, and/or any other value metrics to a user via the user device. For example, cause a user interface of the user device  176  to display the report. 
     Referring now to  FIG.  8   , requirements and value metrics of a clean air optimization  800  are shown, according to an exemplary embodiment. The clean air optimization  800  can be an artificial intelligence service that is configured to analyze building information and make control decisions that optimize air quality and make the air clean. The clean air optimization  800  can be one of the artificial intelligence services of the AI services database  616 , in some embodiments. The clean air optimization  800  can include one or more models, e.g., the models  618 . The clean air optimization  800  can include data requirements  620 , e.g., the requirements shown and described in  FIG.  8   . Furthermore, in some embodiments, the clean air optimization  800  may require configuration parameters and measurements but may not require model training. 
     The clean air optimization  800  includes requirements  802 , e.g., required equipment and equipment parameters that are necessary to run the clean air optimization  800 . The requirements  802  can indicate a parent AHU  808  that includes design flow  810  and coil capabilities  812 . The design flow  810  could be particular air flow characteristics of the AHU and the coil capabilities  812  could indicate capabilities of a coil of the AHU. 
     The requirements  802  include a fan  814 . The fan may be required to have a specific power requirement, e.g., the design power  816 . The requirements  802  include an economizer  818  and a specific type  820  for the economizer  818 . The requirements  802  include downstream rooms  822 , e.g., rooms that are fed by air of the AHU. The downstream rooms may have specific requirements, e.g., the space type  824 , design occupancy  826 , square footage  828 , and/or ceiling height  830 . 
     The required measurements and substitute measurements  804  can be required data types that are measured for the specific building. The requirements  804  include return air temperature  832  which can be replaced with an average of downstream air temperatures  834  if the return air temperature of the AHU is unavailable. The AI service manager  610  can calculate the average of the downstream air temperatures if the knowledge graph  608  includes the downstream air temperatures but does not include a data point for the average of the downstream air temperatures. 
     The requirements  804  include return humidity  836 . The return humidity  836  is the return humidity of the parent AHU  808 . The requirements  804  include return humidity  836  which can be replaced with an average of downstream air humidities  838  if the return air humidity of the AHU is unavailable. The AI service manager  610  can calculate the average of the downstream air humidities if the knowledge graph  608  includes the downstream air humidities but does not include a data point for the average of the downstream air humidities. 
     The requirements  804  include supply air flow  840 . The supply air flow  840  is the supply air flow of the parent AHU  808 . The requirements  804  include supply air flow  840  which can be replaced with a sum of downstream VAV air flows  842  if the supply air flow of the AHU is unavailable. The AI service manager  610  can calculate the sum of the downstream VAV air flows if the knowledge graph  608  includes the downstream VAV air flows but does not include a data point for the average of the downstream VAV air flows. 
     The requirements  804  can include a supply temperature  844 . The supply temperature  844  can be a data measurement type that is necessary and cannot be substituted for. The requirements  804  can include outdoor air flow  846 . If the outdoor air flow  846  does not exist, the outdoor air flow  846  can be replaced with a mixed-air temperature  848  and/or economizer suitable temperature  850 . Optimized setpoints  856  can be produced by the clean air optimization  800 . The setpoints  856  can include a supply air temperature setpoint  856 , a minimum outdoor air flow setpoint  857 , and/or an economizer suitable temperatures setpoint  858 . 
     The clean air optimization  800  can generate value metrics  806 . Alternatively, the AI service manager  610  can generate the value metrics  806  for the clean air optimization  800 . The value metrics  806  can include a reduced energy consumption  852  indicating how much energy consumption of the building has been reduced based on the clean air optimization  800 . The value metrics  806  can include a reduced airborne infection risk  854 . The reduced airborne infection risk  854  can indicate a level of which airborne infection risk has been reduced by the clean air optimization  800 . The value metrics  806  can indicate an improved indoor air quality  855 . The improved indoor air quality  855  can indicate how well indoor air quality has been improved, e.g., how well particulate, carbon dioxide, volatile organic compounds, etc. have been reduced. The value metrics  806  can generally indicate energy consumption, infection risk level, and/or indoor air quality. 
     Referring now to  FIG.  9   , requirements and value metrics of an energy prediction model  900  are shown, according to an exemplary embodiment. The energy prediction model  900  can be an artificial intelligence service of the AI services database  616 . The energy prediction model  900  can be a model of the models  618  and can include data requirements  620 . The energy prediction model  900  can require configuration parameters and measurements. In some embodiments, the energy prediction model  900  may need to be trained by the AI service manager  610  before being implemented. The AI service manager  610  can use existing energy prediction models for similar buildings as a starting point to reduce the amount of training data required to train the energy prediction model  900 . 
     The energy prediction model  900  can include requirements  902  indicating required equipment and/or equipment parameters for the energy prediction model  900 . The requirements  902  can include a parent energy meter  908 . The equipment can further indicate a specific forecast frequency  910  of the parent energy meter  908 . The energy prediction model  900  can have requirements  904  for measurements and substitute measurements. The requirements  904  can include an energy meter reading  912  for reading the parent energy meter. Furthermore, the requirements  904  can include an occupancy schedule  914  indicating an occupancy schedule for a building and/or part of a building. In some embodiments, the requirements  914  further includes a weather forecast  918  (e.g., forecast of outdoor temperature or forecast of outdoor humidity). A historian log of measurements of outdoor air temperature  920  and outdoor humidity measurements  922  can be used to estimate forecasted outdoor temperature or humidity, in some embodiments, when the weather forecast  918  is not available. In some embodiments, the energy prediction model  900  can generate optimized analytics  918 , e.g., time-varying energy consumption  924  and/or predicted peak energy demand  926 . The energy prediction model  900  includes value metrics  906 . The value metrics  906  include an energy prediction accuracy metrics  916  indicating how accurate the energy predictions of the energy prediction model  900  are. 
     Referring now to  FIG.  10   , requirements and value metrics of a meeting room comfort control  1000  are shown, according to an exemplary embodiment. The meeting room comfort control  1000  can be an artificial intelligence service of the AI services database  616 . The meeting room comfort control  1000  can be a model of the models  618  and can include data requirements  620 . The AI service manager  610  can implement a rule-based policy for an initial suitability check of the meeting room comfort control  1000 . The AI service manager  610  can determine which rooms would benefit (or benefit in at least a particular amount) from having the meeting room comfort control  1000  implemented. The AI service manager  610  can train the meeting room comfort control  1000  for specific rooms of a building. 
     The meeting room comfort control  1000  include requirements, e.g., the required equipment and equipment parameters  1002 . The required equipment and equipment parameters  1002  include a VAV  1008 . The VAV  1008  may have a specific design flow  1010 . Furthermore, the requirements  1002  include a parent meeting room  1012 . The parent meeting room  1012  may have required characteristics such as design occupancy  1014  (e.g., how many occupants the meeting room can safely hold), square footage  1016 , ceiling height  1018 , occupied comfort bounds  1020  (e.g., upper and/or lower temperature and/or humidity for the room when it is occupied), and/or unoccupied comfort bounds  1022  (e.g., upper and/or lower temperature and/or humidity for the room when it is unoccupied). 
     The requirements  1004  can indicate required measurements and substitute measurements for the meeting room comfort control  1000 . The requirements  1004  can include an occupancy schedule  1024 . The requirements  1004  can indicate a VAV discharge air flow  1026 . The VAV discharge air flow  1026  can have a substitute, e.g., VAV damper command  1028 . The requirements  1004  further indicate a zone air temperature  1030 . The requirements  1004  indicate a zone heating setpoint  1032 , in some embodiments. The requirements  1004  indicate a zone cooling setpoint  1034 , in some embodiments. Optimized setpoints  1040  indicate setpoints determined by the meeting room comfort control  1000 . The setpoints  1040  include a meeting room heating temperature setpoint  1042  and a meeting room cooling temperature setpoint  1044  for a meeting room. 
     The meeting room comfort control  1000  can generate value metrics  1006 . Alternatively, the AI service manager  610  can generate the value metrics  1006  for the meeting room comfort control  1000 . The value metrics  1006  can include a reduced energy consumption  1036  indicating how much energy consumption of the building has been reduced based on the meeting room comfort control  1000 . The value metrics  1006  can indicate an improved occupant comfort  1038 . The improved occupant comfort  1038  can indicate how well occupant comfort has been improved. The value metrics  1006  can generally indicate energy consumption, occupant comfort, and/or various other metrics. 
     Referring now to  FIG.  11   , a process  1100  of checking requirements of an artificial intelligence service against the knowledge graph  608  to determine whether the artificial intelligence service can be implemented for a particular building is shown, according to an exemplary embodiment. The process  1100  can be performed by the AI service manager  610 . The process  1100  can be performed by any computing system or device as described herein. 
     In some embodiments, the knowledge graph  608  can include parent and/or child entities (e.g., nodes of particular types) which may be BRICK classes or other schema classes. The AI service manager  610  can search the knowledge graph  608  for specific instances of classes within the knowledge graph  608 . The AI service manager  610  can search the knowledge graph  608  with various queries, e.g., SPARQL queries. 
     In step  1102 , the AI service manager  610  can identify artificial intelligence service inputs required for an artificial intelligence service. The inputs can include parent entities, child entities, and/or substitute child entity mappings. The parent entities could include an AHU. The child entities could include a VAV that is fed by the AHU. Another child entity could be a zone that the VAV manages. Another child entity could be a zone temperature of the zone. The substitute child entities can be child entities that can be substituted for required child entities. The requirements of parent entities, required child entities, and substitute child entities can be the same as or similar to the requirements described in  FIGS.  6 - 10   . 
     In step  1104 , the AI service manager  610  can initialize an empty suitable instances list and an unsuitable instances list. The empty suitable instances list can be an indication of suitable instances of the knowledge graph  608  for implementing the artificial intelligence service. The unsuitable instances list can indicate instances of the knowledge graph  608  that the artificial intelligence service cannot be implemented for. 
     In step  1106 , the AI service manager  610  can identify each instance of the parent entity of the space in the knowledge graph  608  and perform the steps  1108 - 1128 . In step  1108 , the AI service manager  610  can initialize an empty missing entities list to store a list of missing child entities that are missing for the parent entity. In steps  1110 - 1112 , the AI service manager  610  can search the knowledge graph  608  for the child entities. In step  1114 , if the child entity is found, the process  1100  can proceed to step  1116 . If the child entities are not found, the process  1100  proceeds to the step  1118 . In step  1116 , the AI service manager  610  can proceed to searching for the next child entity. 
     In step  1118 , the AI service manager  610  can find a suitable substitute child entity if the original child entity is not present in the knowledge graph  608 . The substitute child entities can be found by the AI service manager  610  by searching the knowledge graph  608 . In some embodiments, multiple substitute child entities are found that, when combined in some manner (e.g., have values averaged or are used to infer another value), can act as a substitute for the missing child entity. 
     In step  1120 , if a suitable child entity is found, the process  1100  will proceed to the step  1110 . If the suitable child entity is not found, the process  1100  will proceed to the step  1122 . In step  1122 , the AI service manager  610  can add the missing child entity to the missing entities list. In step  1124 , if the entities list is empty, the process  1100  can proceed to the step  1128 . If the entities list is not empty, the process  1100  can proceed to the step  1126 . 
     In step  1128 , the AI service manager  610  can add the parent entity instance to the suitable instances list. In step  1126 , the AI service manager  610  can add the parent entity instance to the unsuitable instances list. In step  1130 , the AI service manager  610  can return the suitable instances list and/or the unsuitable instances list. In some embodiments, the AI service manager  610  can generate recommendations for implementing the analytics. 
     The recommendations can indicate levels of suitability of each of the artificial intelligence services (e.g., the number of child entities that need substitution). In some embodiment, the recommendations can include a list of available substitutions for child entities, the list can be prioritized. In some embodiments, the recommendations can indicate equipment or devices that could be installed in the building to measure pieces of information that would allow a particular artificial intelligence service to run. 
     Referring now to  FIG.  12   , a system  1200  including the clean air optimization  800  being checked against the knowledge graph  608  to determine whether the clean air optimization solution can be implemented is shown, according to an exemplary embodiment. In  FIG.  12   , the knowledge graph  608  includes nodes  1202 - 1246  and/or edges  1248 - 1292 . The nodes  1202 - 1246  can be interrelated by the edges  1248 - 1292 . The nodes  1202 - 1246  can represent entities, e.g., buildings, spaces, equipment, data points, characteristics, etc. The edges  1248 - 1292  can interrelate the entities. 
     The knowledge graph  608  includes a building  1202  that includes a first floor  1208  and a second floor  1204  indicated by the edges  1248  and  1250 . The building  1202  further includes an electricity meter  1206  indicated by edge  1254 . The floor  1208  includes an AHU  1222  indicated by edge  1257 . The AHU  1222  includes an economizer  1210  indicated by edge  1258 . The economizer  1210  includes an outdoor flow data point  1212  indicated by edge  1256 . The AHU  1222  manages air for a room  1224  indicated by edge  1274 . The room  1224  includes an occupancy data point  1226  indicated by edge  1276 . The room  1224  further includes a square footage characteristic  1228  indicated by edge  1277 . The floor  1208  can include the room  1224  indicated by the edge  1252  between the floor  1208  and the room  1224 . 
     The AHU  1222  includes data points indicated by the nodes  1214 - 1220 , i.e., a return humidity  1214 , a supply flow  1216 , a supply temperature  1218 , and a return temperature  1220 . The data points  1214 - 1220  are related to the AHU  1222  via the edges  1260 - 1266 . Each of the data points can be measured via a sensor of the AHU  1222 . The AHU  1222  serves a room  1231  indicated by edge  1270 . The floor  1208  includes the room  1231  indicated by edge  1272 . The room  1231  includes data points for occupancy and square footage, occupancy  1230  and square footage  1232 . The data points are related to the room  1231  via the edges  1269  and  1268 . 
     The floor  1204  is served by an AHU  1234  indicated by edge  1278 . The floor  1204  includes a room  1236  indicated by edge  1280 . The AHU  1234  serves the room  1236  indicated by edge  1286 . The AHU  1234  includes data points supply flow  1238  and supply temperature  1240  indicated by edges  1282  and  1284 . The room  1236  includes a characteristic square footage  1242  indicated by edge  1288 . The room  1236  indicates data points zone temperature  1244  and zone humidity  1246  related to the room  1236  via edges  1290  and  1292 . The zone temperature  1244  and zone humidity  1246  can be measured via sensors of the room  1236 . 
     The knowledge graph  608  can be searched by the AI service manager  610  to identify parent entities that apply to the clean air optimization  800  and whether those parent entities include the proper child entities. The requirements for the clean air optimization  800  is described in greater detail in  FIG.  8   . The AI service manager  610  can identify the AHU  1222  and the AHU  1234  as potential targets (e.g., as the parent entities) for deploying the clean air optimization  800 . However, the dependent child entities of the AHU  1222  can meet the requirements of the clean air optimization  800  while the AHU  1234  may not have dependent child entities meeting those requirements. 
     For example, the AI service manager  610  can identify the AHU  1222  as a required parent AHU  808 . The AI service manager  610  can identify edges between the AHU  1222  and other nodes that indicate whether required measurements  804  are met by the AHU represented by AHU  1222 . For example, the AI service manager  610  can determine whether the return air temperature requirement  832  is met. The AI service manager  610  can identify the edge  1266  relating the AHU  1222  to the return temperature node  1220 . Responsive to identifying the edge  1266  between the AHU  1222  and the return temperature node  1220 , the AI service manager  610  can determine that the requirement  832  is met. 
     The AI service manager  610  can determine if the return humidity requirement  836  is met by the AHU represented by the AHU  1222 . The AI service manager  610  can identify the edge  1260  relating the AHU  1222  to the return humidity node  1214 . Responsive to identifying the edge  1260  between the AHU  1222  and the return humidity node  1214 , the AI service manager  610  can determine that the return humidity requirement  836  is met. 
     The AI service manager  610  can determine if the supply air flow requirement  840  is met by the AHU represented by the AHU  1222 . The AI service manager  610  can identify the edge  1262  relating the AHU  1222  to the supply flow node  1216 . Responsive to identifying the edge  1262  between the AHU  1222  and the supply flow node  1216 , the AI service manager  610  can determine that the supply air flow requirement  840  is met. 
     The AI service manager  610  can determine if the supply temperature requirement  844  is met by the AHU represented by the AHU  1222 . The AI service manager  610  can identify the edge  1264  relating the AHU  1222  to the supply temperature node  1218 . Responsive to identifying the edge  1264  between the AHU  1222  and the supply temperature node  1218 , the AI service manager  610  can determine that the supply temperature requirement  844  is met. 
     The AI service manager  610  can determine if the outdoor air flow requirement  846  is met by the AHU represented by the AHU  1222 . The AI service manager  610  can identify the edge  1258  relating the AHU  1222  to the economizer node  1210  and the edge  1256  relating the economizer node  1210  to the outdoor flow node  1212 . Responsive to identifying the edges  1258  between the AHU  1222  and the economizer  1210  and the edge  1256  between the economizer node  1210  and the outdoor flow node  1212 , the AI service manager  610  can determine that the outdoor air flow requirement  846  is met. Responsive to determining that all of the requirements  804  are satisfied or met (and responsive to determine that the requirements  802  are satisfied or met), the AI service manager  610  can determine that the clean air optimization  800  can be implemented for the AHU  1222 . 
     Furthermore, the AI service manager  610  can identify the AHU  1234  as a required parent AHU  808 . The AI service manager  610  can identify edges between the AHU  1234  and other nodes that indicate whether required measurements  804  are met by the AHU represented by AHU  1234 . For example, the AI service manager  610  can determine if the return air temperature requirement  832  is met by the AHU represented by the AHU  1234 . The AI service manager  610  can determine that there is no node representing return air temperature related to the AHU  1234 . Responsive to determining that the requirement  832  is not satisfied, the AI service manager  610  can determine whether a substitute requirement  834 , indicating that an average of downstream zone air temperatures can be substituted for the return air temperature  832 , is satisfied by the AHU  1234 . The AI service manager  610  can identify an edge  1286  between the AHU  1234  and the room  1236 . The AI service manager  610  can identify an edge  1290  between the room  1236  and the zone temperature node  1244 . The AI service manager  610  can determine that the zone temperature represented by the zone temperature node  1244  alone, or averaged with other zone temperature readings, can substitute for the return air temperature responsive to identifying the edge  1286  between the AHU  1234  and the room  1236  and responsive to identifying the edge  1290  between the room  1236  and the zone temperature  1244 . 
     The AI service manager  610  can determine if the return humidity requirement  836  is met by the AHU represented by the AHU  1234 . The AI service manager  610  can determine that there is no node representing return humidity related to the AHU  1234 . Responsive to determining that the requirement  836  is not satisfied, the AI service manager  610  can determine whether a substitute requirement  838 , indicating that an average of downstream zone air humidities can be substituted for the return humidity, is satisfied by the AHU  1234 . The AI service manager  610  can identify an edge  1286  between the AHU  1234  and the room  1236 . The AI service manager  610  can identify an edge  1292  between the room  1236  and the zone humidity node  1246 . The AI service manager  610  can determine that the zone humidity represented by the zone humidity node  1246  alone, or averaged with other zone humidity readings, can substitute for the return humidity responsive to identifying the edge  1286  between the AHU  1234  and the room  1236  and responsive to identifying the edge  1292  between the room  1236  and the zone humidity  1246 . 
     The AI service manager  610  can determine whether the AHU  1234  meets the supply temperature requirement  844 . The AI service manager  610  can identify the edge  1282  between the AHU  1234  and the supply temperature node  1240 . The AI service manager  610  can determine whether the AHU  1234  meets the outdoor air flow requirement  846 . The AI service manager  610  can search the nodes and edges related to the AHU node  1234  to see if the AHU  1234  is related to a node representing outdoor air flow. However, the AI service manager  610  may determine that the AHU  1234  does not have an outdoor air flow measurement or sensor system. Responsive to determining that the AHU  1234  does not have an outdoor air flow measurement, the AI service manager  610  can check the substitute requirements  848  and  850 . The AI service manager  610  can determine whether the AHU  1234  includes a mixed-air temperature by searching nodes and edges linked to the AHU  1234 . Responsive to identifying that none of the nodes or edges indicate that the AHU  1234  includes a mixed-air temperature measurement, the AI service manager  610  can determine whether the economizer suitable temperature requirement  850  is met. The AI service manager  610  can determine whether the AHU  1234  includes a economizer suitable temperature by searching nodes and edges linked to the AHU  1234 . Responsive to determining that no nodes or edges linked to the AHU  1234  indicate that the AHU  1234  includes an economizer suitable temperature, the AI service manager  610  can determine that the AHU  1234  does not meet the requirement  850 . Responsive to determining that the AHU  1234  does not meet the requirement  846  or the substitute requirements  848  and  850 , the AI service manager  610  can determine that the clean air optimization  800  cannot be implemented for the AHU  1234 . The AI service manager  610  can generate at least one recommendation to be surfaced to a user to install a sensor to measure outdoor air flow so that the clean air optimization  800  can be implemented for the AHU  1234 . 
     Referring now to  FIG.  13   , a system  1300  including the energy prediction model  900  being checked against the knowledge graph to determine whether the energy prediction modeling solution can be implemented, according to an exemplary embodiment. The AI service manager  610  can identify that the energy prediction model  900  can be implemented for a building based on the knowledge graph  608  and the requirements of  FIG.  9   . The AI service manager  610  can identify that the energy prediction model  900  can be implemented for the electricity meter  1206 , e.g., the parent entity for the energy prediction model  900 . 
     The construction and arrangement of the systems and methods as shown in the various exemplary embodiments are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements may be reversed or otherwise varied and the nature or number of discrete elements or positions may be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes, and omissions may be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosure. 
     The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such connection is properly termed a machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions. 
     Although the figures show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps. 
     In various implementations, the steps and operations described herein may be performed on one processor or in a combination of two or more processors. For example, in some implementations, the various operations could be performed in a central server or set of central servers configured to receive data from one or more devices (e.g., edge computing devices/controllers) and perform the operations. In some implementations, the operations may be performed by one or more local controllers or computing devices (e.g., edge devices), such as controllers dedicated to and/or located within a particular building or portion of a building. In some implementations, the operations may be performed by a combination of one or more central or offsite computing devices/servers and one or more local controllers/computing devices. All such implementations are contemplated within the scope of the present disclosure. Further, unless otherwise indicated, when the present disclosure refers to one or more computer-readable storage media and/or one or more controllers, such computer-readable storage media and/or one or more controllers may be implemented as one or more central servers, one or more local controllers or computing devices (e.g., edge devices), any combination thereof, or any other combination of storage media and/or controllers regardless of the location of such devices.