# The relation ranges

> The relation ranges say which kinds each edge relation may point at.

Page: Ontology · Schema
Canonical: https://banes-lab.com/ontology/schema#the-relation-ranges

The relation ranges say which kinds each edge relation may point at. The polarity law says that one relation, conflicts with, points only at anti-patterns, and the slots the ranges constrain are derived in [principles are typed](https://banes-lab.com/software-architecture/principles/principles-are-typed.md) on the architecture page.

Relations diagram

Which kinds each relation may point at.

```mermaid
flowchart LR
n_relation_conflicts_with["conflicts_with"]
n_relation_enables["enables"]
n_relation_reinforces["reinforces"]
n_relation_requires["requires"]
n_relation_tensions_with["tensions_with"]
n_anti_pattern["anti-pattern"]
n_metric["metric"]
n_quality_attribute["quality-attribute"]
n_principle["principle"]
n_constraint["constraint"]
n_capability["capability"]
n_activity["activity"]
n_pattern["pattern"]
n_mechanism["mechanism"]
n_technique["technique"]
n_approach["approach"]
n_model["model"]
n_artifact["artifact"]
n_style["style"]
n_relation_conflicts_with --> n_anti_pattern
n_relation_enables --> n_metric
n_relation_enables --> n_quality_attribute
n_relation_enables --> n_principle
n_relation_enables --> n_constraint
n_relation_enables --> n_capability
n_relation_enables --> n_activity
n_relation_enables --> n_pattern
n_relation_enables --> n_mechanism
n_relation_enables --> n_technique
n_relation_enables --> n_approach
n_relation_enables --> n_model
n_relation_enables --> n_artifact
n_relation_enables --> n_style
n_relation_reinforces --> n_metric
n_relation_reinforces --> n_quality_attribute
n_relation_reinforces --> n_principle
n_relation_reinforces --> n_constraint
n_relation_reinforces --> n_capability
n_relation_reinforces --> n_activity
n_relation_reinforces --> n_pattern
n_relation_reinforces --> n_mechanism
n_relation_reinforces --> n_technique
n_relation_reinforces --> n_approach
n_relation_reinforces --> n_model
n_relation_reinforces --> n_artifact
n_relation_reinforces --> n_style
n_relation_requires --> n_metric
n_relation_requires --> n_quality_attribute
n_relation_requires --> n_principle
n_relation_requires --> n_constraint
n_relation_requires --> n_capability
n_relation_requires --> n_activity
n_relation_requires --> n_pattern
n_relation_requires --> n_mechanism
n_relation_requires --> n_technique
n_relation_requires --> n_approach
n_relation_requires --> n_model
n_relation_requires --> n_artifact
n_relation_requires --> n_style
n_relation_tensions_with --> n_metric
n_relation_tensions_with --> n_quality_attribute
n_relation_tensions_with --> n_principle
n_relation_tensions_with --> n_constraint
n_relation_tensions_with --> n_capability
n_relation_tensions_with --> n_activity
n_relation_tensions_with --> n_pattern
n_relation_tensions_with --> n_mechanism
n_relation_tensions_with --> n_technique
n_relation_tensions_with --> n_approach
n_relation_tensions_with --> n_model
n_relation_tensions_with --> n_artifact
n_relation_tensions_with --> n_style
```

### conflicts_with

Details

Kinds in range
[anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)

### enables

Details

Kinds in range
[metric](https://banes-lab.com/records/kind/metric.md), [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md), [principle](https://banes-lab.com/records/kind/principle.md), [constraint](https://banes-lab.com/records/kind/constraint.md), [capability](https://banes-lab.com/records/kind/capability.md), [activity](https://banes-lab.com/records/kind/activity.md), [pattern](https://banes-lab.com/records/kind/pattern.md), [mechanism](https://banes-lab.com/records/kind/mechanism.md), [technique](https://banes-lab.com/records/kind/technique.md), [approach](https://banes-lab.com/records/kind/approach.md), [model](https://banes-lab.com/records/kind/model.md), [artifact](https://banes-lab.com/records/kind/artifact.md), [style](https://banes-lab.com/records/kind/style.md)

### reinforces

Details

Kinds in range
[metric](https://banes-lab.com/records/kind/metric.md), [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md), [principle](https://banes-lab.com/records/kind/principle.md), [constraint](https://banes-lab.com/records/kind/constraint.md), [capability](https://banes-lab.com/records/kind/capability.md), [activity](https://banes-lab.com/records/kind/activity.md), [pattern](https://banes-lab.com/records/kind/pattern.md), [mechanism](https://banes-lab.com/records/kind/mechanism.md), [technique](https://banes-lab.com/records/kind/technique.md), [approach](https://banes-lab.com/records/kind/approach.md), [model](https://banes-lab.com/records/kind/model.md), [artifact](https://banes-lab.com/records/kind/artifact.md), [style](https://banes-lab.com/records/kind/style.md)

### requires

Details

Kinds in range
[metric](https://banes-lab.com/records/kind/metric.md), [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md), [principle](https://banes-lab.com/records/kind/principle.md), [constraint](https://banes-lab.com/records/kind/constraint.md), [capability](https://banes-lab.com/records/kind/capability.md), [activity](https://banes-lab.com/records/kind/activity.md), [pattern](https://banes-lab.com/records/kind/pattern.md), [mechanism](https://banes-lab.com/records/kind/mechanism.md), [technique](https://banes-lab.com/records/kind/technique.md), [approach](https://banes-lab.com/records/kind/approach.md), [model](https://banes-lab.com/records/kind/model.md), [artifact](https://banes-lab.com/records/kind/artifact.md), [style](https://banes-lab.com/records/kind/style.md)

### tensions_with

Details

Kinds in range
[metric](https://banes-lab.com/records/kind/metric.md), [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md), [principle](https://banes-lab.com/records/kind/principle.md), [constraint](https://banes-lab.com/records/kind/constraint.md), [capability](https://banes-lab.com/records/kind/capability.md), [activity](https://banes-lab.com/records/kind/activity.md), [pattern](https://banes-lab.com/records/kind/pattern.md), [mechanism](https://banes-lab.com/records/kind/mechanism.md), [technique](https://banes-lab.com/records/kind/technique.md), [approach](https://banes-lab.com/records/kind/approach.md), [model](https://banes-lab.com/records/kind/model.md), [artifact](https://banes-lab.com/records/kind/artifact.md), [style](https://banes-lab.com/records/kind/style.md)

## Links to

- [Principles are typed](https://banes-lab.com/software-architecture/principles/principles-are-typed.md)
- [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- [metric](https://banes-lab.com/records/kind/metric.md)
- [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- [principle](https://banes-lab.com/records/kind/principle.md)
- [constraint](https://banes-lab.com/records/kind/constraint.md)
- [capability](https://banes-lab.com/records/kind/capability.md)
- [activity](https://banes-lab.com/records/kind/activity.md)
- [pattern](https://banes-lab.com/records/kind/pattern.md)
- [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- [technique](https://banes-lab.com/records/kind/technique.md)
- [approach](https://banes-lab.com/records/kind/approach.md)
- [model](https://banes-lab.com/records/kind/model.md)
- [artifact](https://banes-lab.com/records/kind/artifact.md)
- [style](https://banes-lab.com/records/kind/style.md)

## Linked from

- [Principles are typed](https://banes-lab.com/software-architecture/principles/principles-are-typed.md)
