Extensible object model and graphical user interface enabling modeling - Patents.com

An extensible object model with a knowledge graph and probabilistic relationships addresses the challenge of representing complex enterprise data in IoT platforms, enabling efficient and scalable enterprise performance management and data-driven insights.

JP7617258B2Active Publication Date: 2025-01-17HONEYWELL INTERNATIONAL INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023521872
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-16
Filing Date
2021-10-15
Publication Date
2025-01-17
Estimated Expiration
2041-10-15

AI Technical Summary

Technical Problem

Existing systems lack an efficient and scalable method for creating and updating extensible object models that can accurately represent complex relationships between various entities in a networked computing environment, particularly in IoT platforms, limiting their ability to provide a comprehensive view of enterprise processes and operations.

Method used

The implementation of an extensible object model (EOM) with a knowledge graph that includes application programming interfaces, allowing for the construction of customer-specific models, and supports probabilistic relationships between nodes, enabling dynamic updates and visual representation of enterprise data.

Benefits of technology

This approach provides a portable and scalable IoT platform that offers real-time, accurate models for enterprise performance management, delivering intelligent recommendations and transforming data into actionable insights, enhancing operational efficiency and decision-making.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007617258000001
    Figure 0007617258000001
  • Figure 0007617258000002
    Figure 0007617258000002
  • Figure 0007617258000003
    Figure 0007617258000003
Patent Text Reader

Abstract

The method includes obtaining a relationship model, the relationship model including a plurality of nodes and a plurality of links, each link of the plurality of links connecting one or more nodes of the plurality of nodes, and each link corresponding to a relationship between a first node and a second node; receiving a request to update the relationship model, the request including information corresponding to the added and / or edited first node; determining a first probability that the first node is in a relationship with the second node and a second probability that the first node is in a relationship with a third node; and updating the relationship model to include the relationship between the first node and the second node at the first probability and the relationship between the first node and the third node at the second probability.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Provisional Patent Application No. 63 / 093,121, filed October 16, 2020, which is incorporated by reference in its entirety.

[0002] FIELD OF THEINVENTION Various embodiments of the present disclosure relate generally to extensible object models, and more specifically, certain embodiments of the present disclosure relate to systems and methods for obtaining, creating, and updating extensible object models. Summary of the Invention

[0003] According to some aspects of the present disclosure, a system and method for obtaining and updating an extensible object model is disclosed.

[0004] The method includes obtaining a relationship model, the relationship model including a plurality of nodes and a plurality of links, each of the plurality of links connecting one or more nodes of the plurality of links, each link corresponding to a relationship between a first node and a second node; receiving a request to update the relationship model, the request including information corresponding to the added and / or edited first node; determining a first probability that the first node is in a relationship with the second node and a second probability that the first node is in a relationship with a third node; and updating the relationship model to include the relationship between the first node and the second node at the first probability and the relationship between the first node and the third node at the second probability.

[0005] 1. A system including a processor and a memory, wherein the processor performs the following operations: obtain a relationship model, the relationship model including a plurality of nodes and a plurality of links, each of the plurality of links connecting one or more of the plurality of nodes, each link corresponding to a relationship between a first node and a second node; receive a request to update the relationship model, the request including information corresponding to an added and / or edited first node; determine a first probability that the first node is in a relationship with the second node and a second probability that the first node is in a relationship with a third node; and update the relationship model to include the relationship between the first node and the second node at the first probability and the relationship between the first node and the third node at the second probability.

[0006] 11. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to: obtain a relationship model, the relationship model including a plurality of nodes and a plurality of links, each of the plurality of links connecting one or more of the plurality of nodes, each link corresponding to a relationship between a first node and a second node; receive a request to update the relationship model, the request including information corresponding to the added and / or edited first node; determine a first probability that the first node is in a relationship with the second node and a second probability that the first node is in a relationship with a third node; and update the relationship model to include the relationship between the first node and the second node at the first probability and the relationship between the first node and the third node at the second probability.

[0007] It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosed embodiments as claimed. [Brief description of the drawings]

[0008] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various exemplary embodiments and, together with the description, serve to explain the principles of the disclosed embodiments. [Figure 1] 1 depicts an exemplary networked computing system environment in accordance with one or more embodiments. [Diagram 2] FIG. 1 depicts a schematic block diagram of an Internet-of-Things (IoT) platform framework for a networked computing system environment, the IoT platform comprising one or more extensible object models ("EOMs"). [Diagram 3] 3 illustrates an example schematic diagram of nodes and links of an example extensible object model (EOM) of the type depicted in FIG. 2, according to an example embodiment. [Figure 4] 1 depicts an exemplary flowchart illustrating a method for obtaining and updating a relational model to define an extensible object model, according to an exemplary embodiment. [Diagram 5] 1 depicts an exemplary flowchart illustrating a method for determining a first probability between nodes of an extensible object model, according to an exemplary embodiment. [Figure 6] 1 depicts an exemplary flowchart illustrating a method for populating and cleaning data fed into a relational model, according to an exemplary embodiment. [Figure 7] 1 depicts an example flowchart illustrating a method for defining an analytical model and providing the analytical model to one or more edge devices of a network, according to an example embodiment. [Figure 8] 1 depicts an exemplary diagram of a first mode of defining and editing nodes and relationships of a relational model, according to an exemplary embodiment; [Figure 9]1 depicts an exemplary diagram of a second mode of defining and editing nodes and relationships of a relational model, in which multiple groups of nodes and links may be edited at once, according to an exemplary embodiment. [Figure 10] 1 depicts an exemplary flowchart illustrating a method for switching between a first mode and a second mode of a relationship model editor based on user input, according to an exemplary embodiment. [Figure 11] 1 depicts an example system that can implement the techniques presented herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] Reference will now be made in detail to the embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various described embodiments. However, those skilled in the art will understand that the various described embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.

[0010] Generally, the present disclosure provides an "Internet of Things" or "IoT" platform for enterprise performance management that uses real-time accurate models and visual analytics to deliver intelligent, actionable recommendations for sustained peak performance of an enterprise or organization. The IoT platform is a portable, extensible platform for deployment in any cloud or data center environment to provide a complete view of the entire enterprise displaying the status of processes, nodes, people, and safety. Additionally, the IoT platform of the present disclosure supports end-to-end capabilities to run digital twins on process data and transform the output into actionable insights, as detailed in the following description.

[0011] An IoT platform may include several layers, including, for example, an extensible object model (EOM) that includes one or more knowledge graphs. The EOM may be a collection of application programming interfaces (APIs) that allow the seeded semantic object model to be extended. The extensible object model further allows a customer's knowledge graph to be built according to the constraints expressed in the customer's semantic object model. The knowledge graph describes real-world entities and their interrelationships, organized in a graph. The knowledge graph defines possible classes and associations of entities in a schema, potentially allowing any entity to be interrelated, and (iv) covers various topic domains. The knowledge graph may include a large network of entities, their semantic types, properties, and relationships between the entities. The entities may be physical entities or non-physical entities such as data.

[0012] Figure 1 illustrates an exemplary networked computing system environment 100 according to the present disclosure. As shown in Figure 1, the networked computing system environment 100 is comprised of multiple tiers, including a cloud tier 105, a network tier 110, and an edge tier 115. Components of the edge 115 communicate with components of the cloud 105 via the network 110, as described in further detail below.

[0013] Network 110 may be any suitable network or combination of networks and may support any suitable protocol suitable for communication of data between components of cloud 105 and between various other components (e.g., components of edge 115) in networked computing system environment 100. Network 110 may include a public network (e.g., the Internet), a private network (e.g., a network within an organization), or a combination of public and / or private networks. Network 110 may be configured to provide communication between the various components shown in FIG. 1. Network 110 may comprise one or more networks that connect devices and / or components in a network layout to enable communication between the devices and / or components. For example, network 110 may be implemented as the Internet, a wireless network, a wired network (e.g., Ethernet), a local area network (LAN), a wide area network (WAN), Bluetooth, Near Field Communication (NFC), or any other type of network that provides communication between one or more components of a network layout. In some embodiments, network 110 may be implemented using a cellular network, satellite, licensed wireless, or a combination of cellular, satellite, licensed wireless, and / or unlicensed wireless networks.

[0014] Components of the cloud 105 include one or more computer systems 120 that form a so-called “Internet of Things” or “IoT” platform 125. It should be understood that “IoT platform” is an optional term describing a platform that connects any type of Internet-connected devices and should not be construed as limiting the types of computing systems that can be used within the IoT platform 125. In particular, the computer system 120 may include any type or quantity of one or more processors and one or more data storage devices with memory for storing and executing applications or software modules of the networked computing system environment 100. In one embodiment, the processors and data storage devices are embodied in server class hardware, such as an enterprise-level server. For example, the processors and data storage devices may comprise any type or combination of application servers, communication servers, web servers, supercomputing servers, database servers, file servers, mail servers, proxy servers, and / or virtual servers. Additionally, the one or more processors are configured to access the memory and execute processor-readable instructions that, when executed by the processor, configure the processor to perform a number of functions of the networked computing system environment 100.

[0015] Computer system 120 further includes one or more software components of IoT platform 125. For example, the software components of computer system 120 may include one or more software modules for communicating with user devices and / or other computing devices over network 110. For example, the software components may include one or more modules 141, models 142, engines 143, databases 144, services 145, and / or applications 146, which may be stored in / by computer system 120 (e.g., stored on memory), as described in more detail with respect to FIG. 2 below. One or more processors may be configured to utilize one or more of modules 141, models 142, engines 143, databases 144, services 145, and / or applications 146 when performing various methods described in this disclosure.

[0016] As such, computer system 120 may execute a cloud computing platform (e.g., IoT platform 125) with scalable resources for computation and / or data storage and may execute one or more applications on the cloud computing platform to perform various computer-implemented methods described in this disclosure. In some embodiments, some of modules 141, models 142, engines 143, databases 144, services 145, and / or applications 146 may be combined to form fewer modules, models, engines, databases, services, and / or applications. In some embodiments, some of modules 141, models 142, engines 143, databases 144, services 145, and / or applications 146 may be separated into separate, more numerous modules, models, engines, databases, services, and / or applications. In some embodiments, some of modules 141, models 142, engines 143, databases 144, services 145, and / or applications 146 may be removed, while others may be added.

[0017] Computer system 120 is configured to receive data from other components of networked computing system environment 100 (e.g., components of edge 115) via network 110. Computer system 120 is further configured to utilize the received data to generate a result. Information indicative of the result may be transmitted to a user via a user computing device over network 110. In some embodiments, computer system 120 may be referred to as a server system that provides one or more services including providing the received data and / or information indicative of the result to a user. Computer system 120 is part of an entity, which may include any type of company, organization, or institution that implements one or more IoT services. In some examples, the entity may be an IoT platform provider.

[0018] Components of edge 115 include one or more enterprises 160a-160n, each including one or more edge devices 161a-161n and one or more edge gateways 162a-162n. For example, a first enterprise 160a includes a first edge device 161a and a first edge gateway 162a, a second enterprise 160b includes a second edge device 161b and a second edge gateway 162b, and an nth enterprise 160n includes an nth edge device 161n and an nth edge gateway 162n. As used herein, enterprises 160a-160n may represent any type of entity, facility, or vehicle, such as, for example, a company, a department, a building, a manufacturing plant, a warehouse, a real estate facility, a research lab, an aircraft, a spacecraft, an automobile, a ship, a boat, a military vehicle, an oil and gas facility, or any other type of entity, facility, and / or vehicle including any number of local devices.

[0019] Edge devices 161a-161n may represent any of a variety of different types of devices that may be found within enterprises 160a-160n. Edge devices 161a-161n are any type of device configured to access network 110 or accessed by other devices through network 110, such as via edge gateways 162a-162n. Edge devices 161a-161n may, in some cases, be referred to as "IoT devices" and thus may include any type of network-connected (e.g., Internet-connected) device. For example, edge devices 161a-161n may include sensors, actuators, processors, computers, valves, pumps, ducts, vehicle components, cameras, displays, doors, windows, security components, HVAC components, factory equipment, and / or any other device that may be connected to network 110 to collect, transmit, and / or receive information. Each edge device 161a-161n includes or otherwise communicates with one or more controllers for selectively controlling the respective edge device 161a-161n and / or for sending / receiving information between the edge device 161a-161n and the cloud 105 via the network 110. Referring to FIG. 2, the edge 115 may also include operational technology (OT) systems 163a-163n and information technology (IT) applications 164a-164n of each enterprise 161a-161n. The OT systems 163a-163n include hardware and software for detecting and / or causing changes through direct monitoring and / or control of industrial equipment (e.g., edge devices 161a-161n), nodes, processes, and / or events. The IT applications 164a-164n include network, storage, and computing resources for the generation, management, storage, and distribution of data throughout and between organizations.

[0020] The edge gateways 162a-162n include devices for facilitating communication between the edge devices 161a-161n and the cloud 105 over the network 110. For example, the edge gateways 162a-162n include one or more communication interfaces for communicating with the edge devices 161a-161n and with the cloud 105 over the network 110. The communication interfaces of the edge gateways 162a-162n may include one or more cellular radio, Bluetooth, WiFi, short-range communication radio, Ethernet, or other suitable communication devices for transmitting and receiving information. Multiple communication interfaces may be included in each gateway 162a-162n to provide multiple forms of communication between the edge devices 161a-161n, the gateways 162a-162n, and the cloud 105 over the network 110. For example, communication with edge devices 161a-161n and / or network 110 may be achieved through wireless communication (e.g., WiFi, wireless communication, etc.) and / or wired data connections (e.g., Universal Serial Bus, on-board diagnostic systems, etc.) or other communication modes, such as a local area network (LAN), a wide area network (WAN) such as the Internet, a telecommunications network, a data network, or any other type of network.

[0021] The edge gateways 162a-162n may also include processors and memory for storing and executing program instructions to facilitate data processing. For example, the edge gateways 162a-162n may be configured to receive data from the edge devices 161a-161n and process the data before transmitting the data to the cloud 105. As such, the edge gateways 162a-162n may include one or more software modules or components for providing data processing services and / or other services or methods of the present disclosure. With reference to FIG. 2, each edge gateway 162a-162n includes an edge service 165a-165n and an edge connector 166a-166n. The edge service 165a-165n may include hardware and software components for processing data from the edge devices 161a-161n. The edge connectors 166a-166n may include hardware and software components for facilitating communication between the edge gateways 162a-162n and the cloud 105 over the network 110, as described in detail above. In some cases, any of the edge devices 161 a-n, edge connectors 166 a-n, and edge gateways 162 a-n may combine, omit, or separate their functions into any combination of devices. In other words, the edge devices and their connectors and gateways are not necessarily separate devices.

[0022] FIG. 2 illustrates a schematic block diagram of a framework 200 of an IoT platform 125 according to the present disclosure. The IoT platform 125 of the present disclosure is a platform for enterprise performance management that uses real-time accurate models and visual analytics to deliver intelligent and actionable recommendations for sustained peak performance of the enterprise 160a-160n. The IoT platform 125 is a portable and extensible platform for deployment in any cloud or data center environment to provide a complete view of the entire enterprise displaying the status of processes, nodes, people, and safety. Additionally, the IoT platform 125 supports end-to-end capabilities, running digital twins on process data and converting the output into actionable insights using the framework 200, which is further detailed below.

[0023] As shown in FIG. 2, the framework 200 of the IoT platform 125 comprises several layers, including, for example, an IoT layer 205, an enterprise integration layer 210, a data pipeline layer 215, a data insight layer 220, an application services layer 225, and an application layer 230. The IoT platform 125 also comprises a core services layer 235 and an extensible object model (EOM) 250 comprising one or more knowledge graphs 251. The layers 205-235 further comprise various software components that together form each layer 205-235. For example, each layer 205-235 may include one or more of a module 141, a model 142, an engine 143, a database 144, a service 145, an application 146, or a combination thereof. In some embodiments, the layers 205-235 may be combined to form fewer layers. In some embodiments, some of the layers 205-235 may be separated into separate, more numerous layers. In some embodiments, some of the layers 205-235 may be removed while other layers may be added.

[0024] The IoT platform 125 is a model-driven architecture, whereby an extensible object model 250 communicates with each tier 205-230 to contextualize the site data of the enterprises 160a-160n using an extensible object model (or "node model") and a knowledge graph 251, in which the equipment (e.g., edge devices 161a-161n) and processes of the enterprises 160a-160n are modeled. The knowledge graph 251 of the EOM 250 is configured to store the model in a central location. The knowledge graph 251 defines a collection of nodes and links that describe real-world connections that enable smart systems. As used herein, the knowledge graph 251 (i) describes real-world entities (e.g., edge devices 161a-161n) and their interrelationships organized in a graphical interface, (ii) defines possible classes and relationships of entities in a schema, (iii) allows any entities to be related to each other, and (iv) targets various topic domains. In other words, knowledge graph 251 defines a large network of entities (e.g., edge devices 161a-161n), semantic types of entities, properties of entities, and relationships between entities. Knowledge graph 251 thereby describes a network of “things” related to a particular domain or enterprise or organization. Knowledge graph 251 is not limited to abstract concepts and relationships, but may also include instances of objects, such as documents and data sets. In some embodiments, knowledge graph 251 may include a resource description framework (RDF) graph. As used herein, an “RDF graph” is a graph data model that formally describes the semantics or meaning of information. An RDF graph may also represent metadata (e.g., data that describes data). Knowledge graph 251 may also include a semantic object model. A semantic object model is a subset of knowledge graph 251 that defines the semantics of knowledge graph 251.For example, the semantic object model defines the schema of the knowledge graph 251.

[0025] As used herein, EOM 250 is a collection of application programming interfaces (APIs) that allow a seeded semantic object model to be extended. For example, EOM 250 of the present disclosure allows a customer's knowledge graph 251 to be constructed according to constraints expressed in the customer's semantic object model. Thus, knowledge graph 251 is generated by a customer (e.g., a business or organization) to create a model of edge devices 161a-161n of the enterprise 160a-160n, and knowledge graph 251 is input into EOM 250 to visualize the model (e.g., nodes and links).

[0026] The model describes the nodes (e.g., nodes) of the enterprise (e.g., edge devices 161a-161n) and describes the relationships between the nodes and other entities (e.g., links). The model also describes the schema (e.g., describes what the data is), and thus the model is self-validating. For example, the model can describe the types of sensors attached to any given node (e.g., edge devices 161a-161n) and the type of data being sensed by each sensor. A key performance indicator (KPI) framework can be used to bind the properties of the nodes in the extensible object model 250 to the inputs of a KPI framework. Thus, the IoT platform 125 is an extensible model-driven end-to-end stack that includes bidirectional model synchronization and secure data exchange between the edge 115 and the cloud 105, metadata-driven data processing (e.g., rules, calculations, and aggregations), and model-driven visualization and applications. As used herein, "extensible" refers to the ability to extend the data model to include new properties / columns / fields, new classes / tables, and new associations. Thus, the IoT platform 125 is extensible with respect to the edge devices 161a-161n and the applications 146 that handle those devices 161a-161n. For example, when new edge devices 161a-161n are added to the enterprise 160a-160n system, the new devices 161a-161n will automatically appear in the IoT platform 125 such that the corresponding applications 146 can understand and use data from the new devices 161a-161n.

[0027] In some cases, node templates are used to facilitate configuration of edge device 161a-161n instances in the model with a common structure. Node templates define typical properties for edge devices 161a-161n of a given enterprise 160a-160n for a particular type of device. For example, a node template for a pump includes modeling a pump with inlet and outlet pressures, speed, flow rate, etc. Templates may also include hierarchies or derived types of edge devices 161a-161n to accommodate variations of the base type of device 161a-161n. For example, a reciprocating pump is a specialization of the base pump type and includes additional properties in the template. Edge device 161a-161n instances in the model are configured to match the actual physical devices of the enterprise 160a-160n using templates to define the expected attributes of the device 161a-161n. Each attribute is configured as a static value (e.g., capacity is 1000 BPH) or with a reference to a time-series tag that provides the value. The knowledge graph 251 can automatically map tags to attributes based on naming conventions, syntax analysis, and matching of tag and attribute descriptions, and / or by comparing the behavior of the time series data with expected behavior.

[0028] The modeling phase includes an onboarding process to synchronize models between the edge 115 and the cloud 105. For example, the onboarding process can include a simple onboarding process, a complex onboarding process, and / or a standardized rollout process. The simple onboarding process includes the knowledge graph 251 receiving raw model data from the edge 115 and running a context discovery algorithm to generate a model. The context discovery algorithm reads the context of the edge naming rules of the edge devices 161a-161n and determines what the naming rules refer to. For example, the knowledge graph 251 can receive "TMP" during the modeling phase and determine that "TMP" is related to "temperature". The generated model is then published. The complex onboarding process includes the knowledge graph 250 receiving raw model data, receiving location history data, and receiving fieldwork data. The knowledge graph 251 can then use these inputs to run a context discovery algorithm. The generated model can be edited and then the model is published. The standardized rollout process involves manually defining a standard model in the cloud 105 and pushing the model to the edge 115.

[0029] The IoT layer 205 includes one or more components for device management, data ingestion, and / or command / control of the edge devices 161a-161n. The components of the IoT layer 205 allow data to be ingested or otherwise received at the IoT platform 125 from various sources. For example, data can be ingested from the edge devices 161a-161n through a process historian or laboratory information management system. The IoT layer 205 communicates with edge connectors 165a-165n located on the edge gateways 162a-162n through the network 110, which securely transmit data to the IoT platform 205. In some embodiments, only authorized data is transmitted to the IoT platform 125, and the IoT platform 125 only accepts data from authorized edge gateways 162a-162n and / or edge devices 161a-161n. Data may be sent from the edge gateways 162a-162n to the IoT platform 125 via direct streaming and / or via batch delivery. Additionally, after any network or system outage, data transfer resumes once communications are re-established, and any data lost during the outage is backfilled from the source system or from the cache of the IoT platform 125. The IoT layer 205 may also include components for accessing time series data, alarm and event data, and transactional data via various protocols.

[0030] The enterprise integration layer 210 includes one or more components for events / messaging, file upload, and / or REST / OData. The components of the enterprise integration layer 210 enable the IoT platform 125 to communicate with third party cloud applications 211, such as any applications operated by an enterprise in association with its edge devices. For example, the enterprise integration layer 210 connects with enterprise databases, such as guest databases, customer databases, financial databases, patient databases, etc. The enterprise integration layer 210 provides third parties with standard application programming interfaces (APIs) to access the IoT platform 125. The enterprise integration layer 210 also enables the IoT platform 125 to communicate with the OT systems 163a-163n and IT applications 164a-164n of the enterprises 160a-160n. Thus, the enterprise integration layer 210 enables the IoT platform 125 to receive data from the third party applications 211, rather than directly from the edge devices 161a-161n or in combination with the edge devices 161a-161n.

[0031] The data pipeline layer 215 includes one or more components for data cleansing / enrichment, data transformation, data calculation / aggregation, and / or APIs for data streams. As such, the data pipeline layer 215 can pre-process and / or perform initial analysis on the received data. The data pipeline layer 215 performs advanced data cleansing routines including, for example, data correction, mass balancing, data reconciliation, component balancing, and simulation to ensure that the desired information is used as the basis for further processing. The data pipeline layer 215 also performs advanced and high-speed calculations. For example, the cleansed data is run through the company-specific digital twin. The company-specific digital twin can include a reliability advisor including a process model to determine the current operation and a fault model to trigger any early detection and determine the appropriate resolution. The digital twin can also include an optimization advisor that integrates real-time economic data with real-time process data to select the correct feed for the process and determine the optimal process conditions and product yields.

[0032] The data pipeline layer 215 may also use models and templates to define computations and analyses and how they relate to nodes (e.g., edge devices 161a-161n). For example, a pump template may define a pump efficiency calculation so that a standard efficiency calculation is automatically performed for a pump whenever the pump is configured. Computation models define various types of computations, the type of engine on which the computations should be performed, input and output parameters, pre-processing requirements and prerequisites, schedules, etc. The actual computation logic or analysis logic may be defined or referenced in the template. This allows computation models to be used to describe and control the execution of various different process models. Computation templates may be linked with node templates so that when a node (e.g., edge device 161a-161n) instance is created, any associated computation instances are also created with their input and output parameters linked to the appropriate attributes of the node (e.g., edge device 161a-161n).

[0033] The IoT platform 125 can support a variety of different analytical models, including, for example, first principles models, empirical models, engineering models, user-defined models, machine learning models, built-in functions, and / or any other type of analytical model. Although fault models and predictive maintenance models are described herein as examples, any type of model may be applied.

[0034] Fault models are used to compare current and predicted performance of the enterprises 160a-160n to identify problems or opportunities and potential causes or drivers of the problems or opportunities. The IoT platform 125 includes a rich set of hierarchical symptom-fault models to identify abnormal conditions and their potential consequences. For example, the IoT platform 125 can drill down from high-level conditions to understand contributing factors and determine the potential impact that lower-level conditions may have. There may be multiple fault models for a given enterprise 160a-160n that look at different aspects of the process, equipment, controls, and / or operations. Each fault model may identify problems and opportunities in their domains or may look at the same core problem from different perspectives. An overall fault model may be layered on top to synthesize the different perspectives from each fault model into a holistic assessment of the situation and point to the true root cause.

[0035] Once a fault or opportunity is identified, the IoT platform 125 can make recommendations on the best corrective action to take. Initially, recommendations are based on expertise pre-programmed into the system by process and equipment experts. The recommendation service module presents this information in a consistent manner regardless of source and supports workflows to track, complete and document recommendation follow-up. Recommendation follow-up can be used to improve the overall knowledge of the system over time, as existing recommendations are validated (or not) or new causal relationships are learned by users and / or analytics.

[0036] The models can be used to accurately predict what will happen before it happens and interpret the status of the installed base. Thus, the IoT platform 125 enables operators to quickly initiate maintenance actions when anomalies occur. The digital twin architecture of the IoT platform 125 can use various modeling techniques. The modeling techniques can include, for example, regolas models, fault detection and diagnostics (FDD), descriptive models, predictive maintenance, prescriptive maintenance, process optimization, and / or any other modeling technique.

[0037] Ligolas models can be converted from process design simulations. In this way, process designs are integrated with feed conditions and production requirements. Process changes and technology improvements provide business opportunities that allow for more effective maintenance schedules and resource deployment in the context of production needs. Fault detection and diagnosis include generalized rule sets that are specified based on industrial experience and domain knowledge and can be easily incorporated and used to work together with equipment models. Descriptive models can identify problems and then predictive models can determine possible damage levels and maintenance options. Descriptive models can include models for defining operating windows for edge devices 161a-161n.

[0038] Predictive maintenance involves predictive analytical models developed based on rigorous and statistical models such as, for example, principal component analysis (PCA) and partial least squares (PLS). Machine learning techniques can be applied to train the models for failure prediction. Predictive maintenance can leverage FDD-based algorithms to continuously monitor the performance of individual controls and equipment. Predictive modeling is then applied to selected condition indicators that degrade over time. Prescriptive maintenance involves determining what is the best maintenance option and when it should be performed based on actual conditions rather than time-based maintenance schedules. Prescriptive analysis can select the correct solution based on the company's capital, operational, and / or other requirements. Process optimization is the determination of optimal conditions by adjusting set points and schedules. The optimized set points and schedules can be directly communicated to the underlying controller, allowing for automatic closing of the loop from analysis to control.

[0039] The data insight layer 220 includes one or more components for a time series database (TDSB), a relational / document database, a data lake, blobs, files, images, and videos, and / or an API for data queries. When raw data is received at the IoT platform 125, it can be stored as time series tags or events in warm storage (e.g., in a TSDB) to support interactive queries, and in cold storage for archival purposes. The data can further be sent to a data lake for offline analytics development. The data pipeline layer 215 can access the data stored in the databases of the data insight layer 220 to perform analytics, as detailed above.

[0040] The application services layer 225 includes one or more components for a rules engine, workflow / notification, KPI framework, BI, machine learning, and / or APIs for application services. The application services layer 225 enables the building of applications 146a-d. The application layer 230 includes one or more applications 146a-d of the IoT platform 125. For example, the applications 146a-d can include a building application 146a, a plant application 146b, an aero application 146c, and other enterprise applications 146d. The applications 146 can include generic applications 146 for portfolio management, node management, autonomous control, and / or any other custom application. The portfolio management can include a KPI framework and a flexible user interface (UI) builder. The node management can include node performance and node health. The autonomous control can include energy optimization and predictive maintenance. As described above, the general-purpose application 146 may be extensible such that each application 146 may be configurable for different types of enterprises 160a-160n (e.g., a buildings application 146a, a plants application 146b, an aero application 146c, and another enterprise application 146d).

[0041] The application layer 230 also enables visualization of the performance of the enterprises 160a-160n. For example, dashboards provide high-level overviews with drill-downs to support deeper investigation. Recommended summaries empower users with prioritized actions to address current or potential issues and opportunities. Data analysis tools support ad-hoc data exploration to facilitate troubleshooting and process improvement.

[0042] The core services layer 235 includes one or more services of the IoT platform 125. The core services 235 can include data visualization, data analysis tools, security, scaling, and monitoring. The core services 235 can also include services for tenant provisioning, single login / common portal, self-service management, UI libraries / UI tiles, identity / access / entitlements, logging / monitoring, usage metering, API gateway / dev portal, and IoT platform 125 streams.

[0043] As discussed above, the EOM 250 and knowledge graph 251 of Figure 2 can be central to defining relationships between devices and nodes of a network. As such, example functionality and features of an example EOM consistent with this disclosure will now be described with reference to Figures 3-11.

[0044] FIG. 3 depicts an exemplary diagram of nodes and connectors of knowledge graph 251 of EOM 250, according to an exemplary embodiment. For example, nodes 301-306 may be connected together by links 312-316 (e.g., connectors). Each of nodes 301-306 may correspond to a node of an enterprise (e.g., edge devices 161a-161n), and each of links 312-316 may describe a relationship between two or more of the nodes. For example, node 301 may correspond to a first node that is connected to one or more second nodes 302-306. The relationship between the first node and each second node may be defined using connectors (e.g., links 312-316). Nodes may be physical entities and / or non-physical entities. Non-limiting examples of physical entities may be chillers, air handling units (AHUs), fans, dampers, coils, sensors, zone control systems, wall modules, return air fans, and cooling / heating coils, etc. Non-limiting examples of virtual or non-physical entities may be data, such as information technology (IT) data, or a virtual machine or its components and modules. Additionally, when relationships are defined, a probability for each relationship may also be defined (e.g., such that the relationship is a "probabilistic relationship" as opposed to a "deterministic relationship"). Thus, each relationship may have a probability associated with it, where the nature, strength, etc. of the relationship are uncertain, and are defined by the probability (i.e., likelihood) that the defined relationship is true.

[0045] FIG. 4 depicts an exemplary flowchart illustrating a method 400 of updating a relational model (e.g., knowledge graph 251, property graph) to define an extensible object model of nodes across a network or enterprise, according to an exemplary embodiment. According to one embodiment, the method includes one or more of the following steps: In step 401, the method includes obtaining a relational model. The relational model includes a plurality of nodes (e.g., a logical representation of one or more attributes of a physical device, its current state, and one or more calculations that may be performed using the node's data and the data of other nodes) and a plurality of connectors, each of which connects one or more of the plurality of nodes, each of which corresponds to a node (e.g., a physical entity, a source entity that supplies a target entity, a target entity that is supplied by the source entity, information technology (IT) data, etc.), and each of which corresponds to a relationship between a first node and a second node. For example, in a heating, ventilation, and air conditioning (HVAC) system, a relationship between a first node (e.g., an air handling unit (AHU)) and a second node (e.g., a zone of a building) may be that the first node supplies an entity, material, and / or substance, etc. (e.g., air) to the second node. As another example, a chiller may supply chilled water to an air handling unit. The chilled water may be cooled a few degrees below a desired temperature of the occupants in the building. Other examples of nodes in an HVAC system may be fans, dampers, coils, sensors, zone control systems, and / or wall modules, etc. Another example of a relationship may be that the first node encompasses the second node. The embodiments are not limited to the above examples.

[0046] In step 402, the method includes determining whether a request to update the relationship model has been received, the request including information corresponding to a first node that has been added and / or edited. For example, a new node may be added to the relationship model and / or a previously defined node may be edited and / or updated.

[0047] If a request to update the relationship model is received (e.g., step 402-Y), the method 400 may include determining a first probability that a first node is in a relationship with a second node (e.g., step 403). For example, if the first node is an AHU and the second node is a fan, a probability that the AHU contains the fan may be determined. The probability may be provided by a user and / or derived using an algorithm. The algorithm may use building semantics to derive relationships between devices. For example, a building management system (BMS) may generate different types of event data (e.g., alarm data). The event data (e.g., alarm data) may be used to determine possible relationships between two devices. The algorithm may enumerate all possible relationships between devices by searching a group of records (e.g., alarm records) within a given time window. In that time window, the algorithm may select different events (e.g., alarm types) and identify devices that generated events (e.g., alarms) in that time window. The algorithm can refer to the relationship template to determine whether any two devices within that time window can potentially be involved in a relationship. The combinations of source device, target device and relationship type can be saved in a list. When the algorithm completely traverses a list of records (e.g., alarm records), the same combinations may be repeated several times. The frequency of occurrence of combinations of source device, target device and / or relationship type may also be recorded. Thus, the algorithm has a list of probable relationships along with the frequency. The algorithm can determine the probability of every relationship.

[0048] If the first probability is determined (e.g., step 403-Y), the method may include determining a second probability that the first node is in a relationship with a third node (e.g., step 404). For example, if the third node is a damper, a probability that the AHU contains a damper may be determined.

[0049] If a second probability is determined (e.g., step 404-Y), the method may include updating the relationship model to include a relationship between the first node and the second node in the first probability and a relationship between the first node and the third node in the second probability (e.g., step 405). To build the relationship model (e.g., knowledge graph 251), probabilities may be determined for all nodes and all relationships between nodes in the relationship model. Although first and second probabilities are detailed in the exemplary embodiment, it is understood that any number of probabilities may be determined as needed.

[0050] Additionally, the method may include providing a graphical user interface including a visual representation of the nodes and connectors of the relationship model, and receiving and processing a request to update the relationship model based on a user input to the graphical user interface. An exemplary method may further include responding to a query regarding the nodes. For example, a request may be made by, for example, a user to provide a list of all chillers on the west side of a building and their efficiency over a particular time period (e.g., weekdays). Furthermore, when an action is performed on a first node (e.g., the chiller temperature is adjusted), each other node in the relationship model may be adjusted to take into account the action performed on the first node. In some cases, the visual representation between the nodes and connectors, as well as the queries received and the information generated regarding the nodes and connectors, may be a function of probabilities calculated regarding the relationships between the nodes of the network. The probabilities may be calculated as a function of occurrence of each other between the nodes of the network, as well as the type of data transmitted between the nodes of the network, as described in more detail below.

[0051] FIG. 5 depicts an example method 500 for determining such a probability based on occurrences and data type, for example, when receiving a request to update a relationship model, according to an example embodiment. According to one embodiment, the method includes one or more of the following steps: In step 501, the method includes receiving a request to update a relationship model. In step 502, the method includes comparing a number of occurrences in a relationship model in which a first node is in a relationship with a second node to a number of occurrences in a relationship model in which the first node is in a relationship with another node. For example, if the first node is an AHU, the second node is a fan, and the third node is a damper, the method may include determining a number of occurrences in which the AHU includes a fan and determining a number of occurrences in which the AHU includes a damper. The probability that the AHU includes a fan and / or a damper may be based on the comparison of the number of occurrences.

[0052] In step 503, the method includes identifying a type of data coming from the first node and / or the second node. For example, a numerical range of the data may provide information about the first node and / or the second node. For example, if the data is in the range of 50-100, the node may be determined to be a thermostat. If the data is in the range of 2000-5000, the node may be determined to be a motor. As another example, a frequency of the data may provide information about the first node and / or the second node. For example, if the data identifies that an event occurs during working hours, the node may be determined to be an occupancy sensor. If the data identifies that an event occurs once or twice a day, the node may be determined to be a light switch. As another example, metadata in the name of the first node and / or the name of the second node may provide information about the first node and / or the second node. For example, if the metadata references "XYZpump," the method may include determining that the node is a pump. As another example, if the metadata references "ABCchiller," the method may include determining that the node is a chiller.

[0053] At step 504, the method includes determining a first probability based on at least one of comparing the number of occurrences and identifying a type of data and / or a frequency of data based on metadata. For example, a probability that a first node is in a relationship with a second node and / or a third node may be determined based on comparing the number of occurrences between the nodes and / or identifying a type of data and / or a frequency of data using metadata.

[0054] According to one or more embodiments, data input to the system may be received from many different sources and the data may not initially be ready for use by the system. For example, an Indian subsidiary and a U.S. subsidiary may both purchase materials from a supplier and use different terms to describe the same goods and / or services. According to one or more embodiments, the data received from many different sources is ingested and cleaned for use by the system.

[0055] FIG. 6 depicts an exemplary method 600 for ingesting and cleaning data according to an exemplary embodiment. According to one embodiment, the method includes one or more of the following steps: In step 601, the method includes receiving data, the received data being in a first syntax. For example, data having a syntax of "temp1234" may be received. In step 602, the method includes comparing the first syntax to a uniform syntax. For example, for a temperature sensor, the uniform syntax may be "temperature1234". The first syntax may be compared to the data for each node and each connector in the entire relationship model. In step 603, the method includes determining a third probability that the first syntax corresponds to a second syntax and a fourth probability that the first syntax corresponds to a third syntax (e.g., the probability that the intended node is "temperature1234" vs. "temporary1234") based on the comparing. That is, a determination may be made as to whether "temp1234" is intended to refer to "temperature1234" or "temporary1234". This process may be performed for each node in the relational model. In step 604, the method includes converting the first syntax to a second syntax or a third syntax based on the third probability and the fourth probability. For example, the intended node may be selected based on the determined probabilities.

[0056] After the data is ingested and cleaned, the data can be pushed to the edge devices 161a-161n. FIG. 7 depicts an example method 700 for providing data to one or more edge devices 161a-161n according to an example embodiment. According to one embodiment, the method includes one or more of the following steps: In step 701, the method includes defining (e.g., using metadata) an analytical algorithm for the operation of one or more edge devices 161a-161n at one or more of the nodes. By optimizing the data between the cloud 105 and the edge devices 161a-161n, throughput can be increased and latency can be reduced.

[0057] In step 702, the method includes sending an analytic algorithm to a fourth one of the nodes based on metadata associated with the fourth node. For example, the metadata may be used to determine that the fourth node is a thermal camera. In step 703, the method includes triggering an event in response to a predetermined condition being met based on the analytic algorithm of the fourth node. For example, if a person with a body temperature higher than a certain value walks by a thermal camera, the method may include identifying a measurement of how dangerous the building is. In step 704, the method includes displaying the relationship model updated to include the triggered event. Exemplary embodiments are not limited to the above examples.

[0058] FIG. 8 depicts an exemplary diagram 800 of a first mode of defining and editing nodes and relationships, according to an exemplary embodiment. For example, in library mode (e.g., icon 801), a relationship model 802 may include several nodes and connectors for defining the nodes and relationships between the nodes. For example, the exemplary relationship model 802 may identify that a chilled water supply may supply water to an AHU. The AHU may (1) be located on a floor, (2) have a sensor for return air carbon dioxide, (3) have a sensor for detecting mixed air temperature, (4) have a sensor for detecting return air flow rate, (5) have a sensor for detecting supply air fan status, and / or (6) service a supply zone. A graphical user interface (GUI) area 803 may be used to define and edit the nodes and / or node types. For example, a type name may be entered by a user or a node type may be selected from a drop-down menu. In the GUI area 804, the relationships of each node may be defined and / or edited. For example, an AHU may be edited to include the relationships illustrated in the relationship model 802. Additionally, for each node and each relationship, the user can enter the probability that a node is in a relationship with the other node. The GUI is dynamic in nature, making the interface adaptable to any type of data.

[0059] 9 depicts an example diagram 900 of a second mode of defining nodes and relationships, according to an example embodiment. For example, in the builder mode (e.g., icon 901), multiple groups of nodes and connectors can be edited at once. For example, group 902 can define a first set of air handling units that are connected to each other. Group 903 can define a second set of air handling units that are connected to each other. GUI area 904 can be used to define relationships between the nodes, and GUI area 905 can be used to define properties for each group node and / or group of nodes. Additionally, for each group node and each relationship, the user can enter a probability that the group of nodes is in a relationship with another group of nodes.

[0060] 10 depicts an example method 1000 of providing a first mode and a second mode according to an example embodiment. According to one embodiment, the first mode is a library mode 800 and the second mode is a builder mode 900. The method includes one or more of the following steps: In step 1001, the method includes receiving a user input on a graphical user interface to select between the first mode and the second mode (e.g., library mode 800 vs. builder mode 900). In response to the user input selecting the first mode (e.g., library mode), the method includes displaying a relationship model on the graphical user interface to include each node and each connector corresponding to the first node (e.g., step 1003). In response to user input selecting a second mode (e.g., a builder mode), the method includes displaying a relationship model on a graphical user interface to include each node and each connector corresponding to the first node, and a plurality of potential nodes and a plurality of potential connectors corresponding to the first node (e.g., step 1004), and displaying a prompt for the user to edit the relationship model (e.g., step 1005). Additionally, the user may edit or add a probability for each relationship for each node in the relationship model.

[0061] FIG. 11 depicts an exemplary system 1100 that may execute the techniques presented herein. FIG. 11 is a simplified functional block diagram of a computer that may be configured to execute the techniques described herein, according to an exemplary embodiment of the present disclosure. Specifically, the computer (or "platform," since it may not be a single physical computer infrastructure) may include a data communication interface 1160 for packet data communication. The platform may also include a central processing unit ("CPU") 1120 in the form of one or more processors for executing program instructions. The platform may include an internal communication bus 1110, and the platform may also include program storage and / or data storage for various data files processed and / or communicated by the platform, such as ROM 1130 and RAM 1140, although the system 1100 may receive programming and data via network communication. The system 1100 may also include input / output ports 1150 for connecting with input / output devices, such as a keyboard, mouse, touch screen, monitor, display, etc. Of course, various system functions may be implemented in a distributed manner on several similar platforms to distribute the processing load. Alternatively, the system may be implemented by suitable programming of a single computer hardware platform.

[0062] The general discussion of this disclosure provides a brief general description of a suitable computing environment in which the disclosure may be implemented. In an embodiment, any of the disclosed systems, methods, and / or graphical user interfaces may be executed or implemented by a computing system consistent with or similar to that depicted and / or described in this disclosure. Although not required, aspects of the disclosure are described in the context of computer-executable instructions, such as routines executed by a data processing device, e.g., a server computer, a wireless device, and / or a personal computer. Those skilled in the art will appreciate that aspects of the disclosure may be implemented with other communication, data processing, or computer system configurations, including Internet appliances, handheld devices (including personal digital assistants, "PDAs"), wearable computers, cellular or mobile phones of any kind (including voice over IP (VoIP) phones), dumb terminals, media players, gaming devices, virtual reality devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, set-top boxes, network PCs, minicomputers, mainframe computers, and the like. Indeed, the terms "computer," "server," and the like are generally used interchangeably herein to refer to any of the above devices and systems, as well as any data processor.

[0063] Aspects of the present disclosure may be embodied in special purpose computers and / or data processors specifically programmed, configured, and / or constructed to execute one or more of the computer-executable instructions detailed herein. Although aspects of the present disclosure, such as certain functions, are described as being performed exclusively on a single device, the present disclosure may also be practiced in a distributed environment in which functions or modules are shared among heterogeneous processing devices linked through a communications network, such as a local area network ("LAN"), a wide area network ("WAN"), and / or the Internet. Similarly, techniques presented herein as involving multiple devices may be implemented in a single device. In a distributed computing environment, program modules may be located both in local and / or remote memory storage devices.

[0064] Aspects of the present disclosure may be stored and / or distributed on non-transitory computer readable media, including magnetically or optically readable computer disks, hardwired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other data storage media. Alternatively, computer-implemented instructions, data structures, screen displays, and other data under aspects of the present disclosure may be distributed over a period of time on a propagating signal on a propagating medium (e.g., electromagnetic waves, sound waves, etc.), via the Internet and / or other networks (including wireless networks), and / or provided over any analog or digital network (packet-switched, circuit-switched, or other manner).

[0065] The program aspects of the technology may be considered as a "product" or "article of manufacture" in the form of executable code and / or associated data typically carried on or embodied in some type of machine-readable medium. "Storage" type media includes any or all of the various semiconductor memories, tape drives, disk drives, etc., tangible memories of a computer, processor, etc., or their associated modules, which may provide non-transitory storage at any time for software programming. All or part of the software may be communicated from time to time over the Internet or various other telecommunications networks. Such communication may enable loading of the software, for example, from one computer or processor to another, for example, from a management server or host computer of a mobile communications network to a server's computer platform, and / or from a server to a mobile device. Thus, another type of media that may carry software elements includes optical, electrical, and electromagnetic waves, such as those used across physical interfaces between local devices, through wired and optical landline networks, and over various air links. Physical elements that carry such waves, such as wired or wireless links, optical links, etc., may also be considered as media that carry software. As used herein, unless limited to non-transitory tangible "storage" media, terms such as computer or machine "readable medium" refer to any medium that participates in providing instructions to a processor for execution.

[0066] "One or more" includes functions performed by a single element, functions performed by two or more elements, e.g., in a distributed manner, several functions performed by one element, several functions performed by several elements, or any combination of the above.

[0067] Terms such as first, second, etc. are sometimes used herein to describe various elements, but it will be understood that these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first contact can be called a second contact, and similarly, a second contact can be called a first contact, without departing from the scope of the various embodiments described. Although a first contact and a second contact are both contacts, they are not the same contact.

[0068] The terms used in the description of the various embodiments described herein are intended to describe particular embodiments only and are not intended to be limiting. When used in the description of the various embodiments described and in the appended claims, the singular forms "a", "an" and "the" are intended to include the plural forms unless the context clearly indicates otherwise. It will also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes", "including", "comprises" and / or "comprising" as used herein specify the presence of stated features, integers, steps, operations, elements and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or groups thereof.

[0069] As used herein, the term "if" is optionally interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context. Similarly, the phrase "when determined" or "when [the stated condition or event] is detected" is optionally interpreted to mean "at the time of determining" or "in response to determining" or "upon detection of [the stated condition or event]" or "in response to detecting [the stated condition or event]," depending on the context.

[0070] The systems, apparatus, devices, and methods disclosed herein are described in detail by way of examples and with reference to the drawings. The examples discussed herein are merely examples and are provided to aid in the description of the apparatus, devices, systems, and methods described herein. None of the features or components shown in the drawings or discussed below should be construed as essential to any particular implementation of any of these apparatus, devices, systems, or methods, unless specifically designated as essential. For ease of reading and clarity, some components, modules, or methods may only be described in conjunction with certain figures. In this disclosure, any identification of specific techniques, configurations, etc., is either related to the specific examples presented or is merely a general description of such techniques, configurations, etc. Any identification of specific details or examples is not intended to be, and should not be, construed as essential or limiting, unless specifically designated as such. Failure to specifically describe a combination or subcombination of components should not be understood as indicating that any combination or subcombination is not possible. It will be understood that modifications to the disclosed and described examples, arrangements, configurations, components, elements, apparatus, devices, systems, methods, etc. can be made and may be desired for a particular application. Also, with respect to any method described, whether or not the method is described in conjunction with a flow diagram, unless otherwise specified or required by context, it will be understood that any explicit or implied ordering of steps performed in performing the method does not imply that those steps must be performed in the order presented, but instead may be performed in a different order or in parallel.

[0071] Throughout this disclosure, references to components or modules generally refer to items that may be logically grouped together to perform a function or a group of related functions. Like reference numbers are generally intended to refer to the same or similar components. The components and modules may be implemented in software, hardware, or a combination of software and hardware. The term "software" is used expansively to include executable code, e.g., machine-executable or machine-interpretable instructions, as well as data structures, data stores, and computing instructions stored in any suitable electronic format, including firmware and embedded software. The terms "information" and "data" are used expansively to include a wide variety of electronic information, including executable code, content, particularly text, video data, and audio data, as well as various codes or flags. The terms "information," "data," and "content" may be used interchangeably where the context permits.

[0072] It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.

Claims

1. A computer-implemented method comprising: obtaining a relational model, the relational model including a plurality of nodes and a plurality of links, each of the links of the plurality of links connecting one or more nodes of the plurality of nodes, each link corresponding to a relation between a first node and a second node; receiving a request to update the relationship model, the request including information corresponding to an added and / or edited first node; determining a first probability that the first node is in a relationship with a second node and a second probability that the first node is in a relationship with a third node, wherein determining the first probability includes: comparing a number of occurrences in the relationship model where the first node is in a relationship with the second node to a number of occurrences in the relationship model where the first node is in a relationship with another node; identifying the types of data coming from the first node and the second node and the frequency of data from the first node and the second node based on metadata in the names of the first node and the second node; determining the first probability based on at least one of comparing the number of occurrences and identifying the type of data and / or a frequency of the data; updating the relationship model to include the relationship between the first node and the second node at the first probability and the relationship between the first node and the third node at the second probability.

2. 1. A system comprising: A processor; A memory, The processor, obtaining a relational model, the relational model including a plurality of nodes and a plurality of links, each of the links of the plurality of links connecting one or more nodes of the plurality of nodes, each link corresponding to a relation between a first node and a second node; receiving a request to update the relationship model, the request including information corresponding to an added and / or edited first node; determining a first probability that the first node is in a relationship with a second node and a second probability that the first node is in a relationship with a third node; updating the relationship model to include the relationship between the first node and the second node at the first probability and the relationship between the first node and the third node at the second probability; Determining the first probability includes: comparing a number of occurrences in the relationship model where the first node is in a relationship with the second node to a number of occurrences in the relationship model where the first node is in a relationship with another node; at least one of: identifying the type of data coming from the first node and / or the second node and / or the frequency of data of the first node and / or the second node based on metadata in the name of the first node and / or the name of the second node; determining the first probability based on at least one of comparing the number of occurrences and identifying the type of data and / or the frequency of the data; Including, the system.

3. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to: obtaining a relational model, the relational model including a plurality of nodes and a plurality of links, each of the links of the plurality of links connecting one or more nodes of the plurality of nodes, each link corresponding to a relation between a first node and a second node; receiving a request to update the relationship model, the request including information corresponding to an added and / or edited first node; determining a first probability that the first node is in a relationship with a second node and a second probability that the first node is in a relationship with a third node; updating the relationship model to include the relationship between the first node and the second node at the first probability and the relationship between the first node and the third node at the second probability; Determining the first probability includes: comparing a number of occurrences in the relationship model where the first node is in a relationship with the second node to a number of occurrences in the relationship model where the first node is in a relationship with another node; at least one of: identifying the type of data coming from the first node and / or the second node and / or the frequency of data of the first node and / or the second node based on metadata in the name of the first node and / or the name of the second node; determining the first probability based on at least one of comparing the number of occurrences and identifying the type of data and / or the frequency of the data; A non-transitory computer readable storage medium comprising:

Citation Information

Patent Citations

  • Method and system for diagnosing abnormality of apparatus

    JP2010122847A

  • Decision support system and decision support method

    JP2017194730A

  • Causal relationship model verification method and system, and failure cause extraction system

    JP2018181158A

  • Building system with semantic modeling based custom logic generation

    US20200159173A1