# Semantic relationships

> How semantic relationships connect concepts in your ontology.

**Category:** Core Concepts | **Tab:** features

---

Semantic relationships connect concepts to each other, transforming a flat list of terms into a structured, navigable ontology.

## What is a semantic relationship?

A semantic relationship is a typed link between two concepts. For example:

- "Creator Starter" **hasFeature** "MIDI Editor"
- "MIDI Editor" **isFeatureOf** "Creator Starter"

Relationships give your ontology structure and meaning — they express how concepts relate to each other in your product domain. Without relationships, concepts are isolated entries. With them, your data becomes a connected knowledge system that reflects real product architecture.

## Relationship types

Before creating relationships between concepts, you define **relationship types** at the workspace level. Navigate to **Relationships** in the sidebar to manage them.

Each relationship type has:

| Field | Description |
|-------|-------------|
| **Label** | The forward label (e.g., "hasFeature") |
| **Inverse label** | The reverse label shown from the target's perspective (e.g., "isFeatureOf") |
| **Value** | A machine-readable key used in exports (e.g., "hasfeature") |
| **Directionality** | Whether the relationship works in one or both directions |
| **Description** | What this relationship type represents |

### Common relationship types

| Label | Inverse | Use case |
|-------|---------|----------|
| `hasFeature` | `isFeatureOf` | A plan includes a feature |
| `hasPillar` | `isPillarOf` | A platform has a core domain |
| `hasPlan` | `isPartOfPlanGroup` | A plan group contains a pricing plan |
| `isRelatedTo` | `isRelatedTo` | General association between concepts |
| `requiresDisclaimer` | — | A concept requires a legal disclaimer |
| `dependsOn` | `isDependencyOf` | A feature depends on another |

## Bidirectional vs. unidirectional

This is one of the most important decisions when defining a relationship type.

### Bidirectional relationships

When a relationship is **bidirectional**, creating a link from A → B **automatically creates the inverse** from B → A. You don't need to create both manually.

For example, if you define a bidirectional type with label `hasFeature` and inverse label `isFeatureOf`:

- You link "Creator Starter" → "MIDI Editor" using `hasFeature`
- Black Ice automatically shows "MIDI Editor" → "Creator Starter" using `isFeatureOf`

Both links are visible in the Concept Detail view and the Knowledge Graph. The inverse relationship appears with a **bidirectional badge** so you can distinguish auto-created links from manually created ones.

### Unidirectional relationships

When a relationship is **unidirectional**, only the direction you explicitly create exists. Creating A → B does **not** create B → A.

Use unidirectional relationships when the reverse direction isn't meaningful — for example, `requiresDisclaimer` makes sense from concept to disclaimer, but not the other way around.

## Inverse labels

The **inverse label** defines how a relationship reads from the target concept's perspective. This is what makes your ontology readable from any entry point:

| From concept A | Label | From concept B | Inverse label |
|----------------|-------|----------------|---------------|
| "Pro Plan" | `hasFeature` | "Analytics" | `isFeatureOf` |
| "Platform" | `hasPillar` | "Music Creation" | `isPillarOf` |

When you view "Analytics" in the concept detail, you'll see the inverse: `isFeatureOf → Pro Plan`. This lets every team member navigate the ontology naturally, regardless of which concept they start from.

> **Tip:** For symmetric relationships like `isRelatedTo`, set the inverse label to the same value as the forward label.

## Creating relationships

1. Open a concept's detail view
2. Scroll to the **Semantic Relationships** section
3. Click **Add Relationship**
4. Select the relationship type from the dropdown
5. Search and select the target concept
6. Click **Create** — done

For bidirectional types, the inverse link is created automatically. You'll see it immediately on the target concept's detail page.

## Deleting relationships

Hover over any relationship row and click the delete icon. For bidirectional relationships, deleting the forward link also removes the auto-created inverse.

## Managing relationship types

Navigate to **Relationships** in the sidebar to view, create, edit, or delete relationship types.

> **Warning:** Deleting a relationship type removes **all relationships of that type** across your entire ontology. This action cannot be undone.

## How relationships power the Knowledge Graph

Every relationship you create becomes an edge in the [Knowledge Graph](/docs/features/knowledge-graph). The graph uses your relationship types as edge labels and your concept classes as node colors, giving you an interactive, visual map of your entire product ontology.

Relationships also appear in structured exports (JSON, CSV), making them available to downstream tools, AI prompts, and content systems.