C3 AI Documentation Home

Use of the C3 AI Graph Engine

Graphs are ubiquitous in the IoT space: electrical networks, networks of suppliers, networks of merchandise traveling throughout the world, graph of people wearing health monitoring devices, to name a few. Graphs are highly dynamic and can be large.

The C3 Agentic AI Platform provides capabilities to analyze medium to large graphs.

The C3 AI Graph Engine provides features to construct graphs in memory for a variety of use cases. Graph Engine APIs are provided to:

  • Construct the graph from a set of nodes with connectivity defined between them.
  • Dynamically reconstruct itself, based on a slow evolving known structure and a history of connectivity changes.
  • Answer graph queries like connectivity and shortest path at a given point in time.
  • Evaluate how a certain metric evolved over a given time range for example, traffic, values at nodes, and faults.

Typical use cases

C3 AI ApplicationDescription of the role of graphsQuestions asked to the graph
Predictive Maintenance for DistributionDifferent assets in the electrical network are vertices in a graph. Connectivity between those assets are edges. Connectivity evolves as the network adapts to load or faults. Graph must be up to date.Island detection: Given an attribute value for a node to be beginning/end, what are all the nodes in the subgraph isolated by such beginning/end nodes. Information about the graph is only partial, only certain nodes sense the information we care about, the rest of the information must be inferred. Value of a subgraph: What is the "value" of all the consumers attached to a given graph? Can inform the risk of failure (probability * impact) Graph connectivity at any point in time: What devices were connected together at a given point in time in the past. Graph validity: If information transmitted is incoherent, alarm should be raised to indicate data issue Simulation: What would happen if that node failed?
Sensor Health Monitoring (that is, AMI Ops)Sensors rarely directly communicate to the Data Center that processes their information. Data Center talks to hubs who then talk to meshes of sensors on the field. Information for one sensor in that mesh might go to a different.Number of hops between sensor and data center. Latencies in parts of the network
Supply ChainSuppliers operate in certain areas of the world. Assembly is in a different part of the world. Consumers are also in a different location. Inventory in storage locations are nodes in that graph.Storage status. Expected time to arrival / delays. Impact of Weather, Riots, etc. on the network
Fleet ManagementAll the roads the truck/boat can take are edges in a graph.Fastest/Cheapest route under certain constraints.

Graph Engine

C3 AI Graph Engine has following C3 AI Types.

Graph

A Graph can be defined for a set of nodes with relationships amongst the nodes. The nodes can be the vertices and relationships can be the edges. For a set of vertices and edges, this Type provides APIs to define the graph an act on that graph.

Some associated Types are:

LoadGraphSpec

The LoadGraphSpec allows for specifying a vertexFilter, vertexInclude expression, edgeFilter, edgeInclude expression, bindings, batchSize and number of parallel threads.

GraphDataSpec

The GraphDataSpec allows for specifying a Filter expression for which Obj instances to return and include expression which specifies the fields to bring back values for in the returned Obj instances in the loadGraph().

TraverseGraphSpec

The TraverseGraphSpec is a specialized LoadGraphSpec and is the required spec for the filteredDirectedSubGraph() method. It allows specifying the direction during graph traversal, depth of traversal and also whether cycles are to be ignored when traversing in the graph.

InMemoryGraph

The InMemoryGraph Type allows an instance of a graph to be created in memory.

CachedGraph

The CachedGraph persists the graph to the file system.

See also

Was this page helpful?