> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cognite.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Property graph

> Understand how property graphs in CDF use nodes, edges, and properties to model complex industrial systems.

In graph modeling, a **property graph** represents a well-defined structure consisting of **nodes** and **edges**, which can be associated with **properties**. These fundamental elements form a simple toolkit for modeling complex systems intuitively and powerfully.

### Nodes

**Nodes** serve as fundamental building blocks and can be used to represent anything, for example, real-world objects like *pumps*:

```mermaid theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
graph LR;
Pump((Pump))
```

### Edges

**Edges** denote relationships between nodes. This example adds a *valve* node and an edge to illustrate their connection:

```mermaid theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
graph LR;
Pump((Pump))
Valve((Valve))
Pump-- flows-to -->Valve
```

### Properties

Nodes and edges can have **properties** that provide additional context or information. These properties can include **types**, such as `Pump` or `flows-to`, but they can also include other attributes describing the nodes and edges. For example:

```mermaid theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
graph LR;
Pump(("Pump<br>equipmentId: xyz123"))
Valve(("Valve<br>state: OPEN"))
Pump--"flows-to<br>maxPressure: 60"-->Valve
```
