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

# Ontology

> Define the entity types and relationships that structure your knowledge graph

## Overview

The ontology defines the schema of your knowledge graph — the types of entities (nodes) and relationships (edges) that Experio uses to organize extracted knowledge. A well-designed ontology ensures that information from different sources is connected meaningfully.

At runtime the graph may be backed by **Neo4j** or **FalkorDB** depending on **`GRAPH_PROVIDER`** in System Settings.
The ontology editor and schema semantics are the same; provider-specific behavior (for example certain analytics queries)
is summarized in [Graph backend (Neo4j & FalkorDB)](/admin-guide/graph-backend).

Navigate to **Admin > Graph > Ontology**.

## Visual Editor

The ontology is managed through an interactive visual editor:

* **Entity type nodes** are displayed as draggable boxes on a canvas
* **Relationship edges** connect entity types with labeled arrows
* **Zoom and pan** to navigate the schema
* **Drag nodes** to arrange the layout

### Permissions

* **Read-only users** can view the ontology but cannot make changes
* **Write users** can add, edit, and remove entity types and relationships

## Entity Types

Entity types represent the categories of things in your knowledge graph. Common examples:

| Entity Type      | Description                                         |
| ---------------- | --------------------------------------------------- |
| **Person**       | Individuals in your organization or client contacts |
| **Project**      | Consulting engagements or internal projects         |
| **Client**       | Organizations your firm serves                      |
| **Skill**        | Competencies and areas of expertise                 |
| **Document**     | Processed files and their metadata                  |
| **Organization** | Companies, agencies, or institutions                |

Each entity type has:

* **Name** — A unique identifier for the type
* **Properties** — Attributes that instances of this type can have (e.g., Person has "name", "email", "title")

## Relationships

Relationships define how entity types connect to each other. Examples:

| Relationship    | From    | To       | Description                        |
| --------------- | ------- | -------- | ---------------------------------- |
| **WORKS\_ON**   | Person  | Project  | A person is assigned to a project  |
| **HAS\_SKILL**  | Person  | Skill    | A person possesses a skill         |
| **MANAGED\_BY** | Project | Client   | A project is for a specific client |
| **AUTHORED**    | Person  | Document | A person created a document        |

## Saving Changes

After modifying the ontology:

1. Click **Save Schema** to persist changes to the backend
2. The layout (node positions) is saved separately so your visual arrangement is preserved

<Warning>
  Modifying the ontology affects how future documents are processed. Removing an entity type or relationship does not delete existing data in the knowledge graph, but new ingestion will no longer create instances of removed types.
</Warning>

## Related: Inference Rules

After ingestion populates the graph, you can use [Enrichment Rules](/admin-guide/enrichment-rules) to enrich it further. Enrichment rules process existing nodes and create new attributes, nodes, or relationships — all defined using the entity types and relationships in your ontology.

## Best Practices

* Start with a small, focused ontology and expand as needed
* Use clear, descriptive names for entity types
* Define relationships that reflect real-world connections in your organization
* Review the ontology periodically as your data sources grow
