> For the complete documentation index, see [llms.txt](https://docs.etiq.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.etiq.ai/core-concepts.md).

# Core Concepts

### Lineage Graph

The lineage graph is the derived graph showing relationships between functions and lineage objects. It is based on both static analysis and runtime tracing.&#x20;

The default format is `dot`. Use `json` when another program or agent needs to consume the graph output.

### Lineage Object Nodes

Lineage object nodes are the common concept for objects captured by Etiq and represented in the lineage graph. Today this includes dataset/dataframe lineage objects and model lineage objects. The lineage object concept is intentionally broader because Etiq will support more object types over time.

#### Dataset Lineage Objects

Dataset lineage objects are dataframe-like objects captured during the run.&#x20;

#### Model Lineage Objects

Model lineage objects are model states captured during the run.&#x20;

### Code Nodes And Source

Each captured state stores a source node. The node points back to the code Etiq associated with that captured object.

Use the node when you need source-level evidence, such as:

* the code snippet for a captured object
* whether the object was captured at module level or inside a function
* the scope that contains the captured object

Example captured state:

```python
{
    "state_type": "DataframeState",
    "names": {"adf"},
    "line_no": 4,
    "value_type": "DataFrame",
    "node_type": "FunctionDef",
    "node_source": """
def add_one(adf):
    new_df = adf + 1
    return new_df
""",
    "scope_type": "FunctionDef",
    "scope_repr_first_line": "FunctionDef(",
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.etiq.ai/core-concepts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
