# Metadata / Self-Description / Declarative Systems

> Every term in this category is listed as one record, with its kind, its definition and its aliases, the principles whose relations name it, the principle or…

Page: Ontology · Lexicon
Canonical: https://banes-lab.com/ontology/lexicon#lex-category-metadata-self-description-declarative-systems

Every term in this category is listed as one record, with its kind, its definition and its aliases, the principles whose relations name it, the principle or contract that carries the same name where one exists, and the layer its category belongs to.

### Client Generation

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The ability to generate client code automatically from an API's self-description.

Referenced by
[Self-Describing API](https://banes-lab.com/records/arch/self-describing-api.md)

### Declaration Drift

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The degree to which a declared capability set drifts out of sync with the actual behavior.

Referenced by
[Capability Declaration](https://banes-lab.com/records/arch/capability-declaration.md)

### Dynamic Complexity

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The degree to which interpreting declarative configuration at runtime adds hidden dynamic complexity.

Referenced by
[Declarative Configuration](https://banes-lab.com/records/arch/declarative-configuration.md)

### Dynamic Processing

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The ability to process data generically by reading its self-describing structure.

Referenced by
[Self-Describing Structures](https://banes-lab.com/records/arch/self-describing-structures.md)

### Excessive Configuration

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
Requiring explicit configuration for everything instead of relying on sensible conventions.

Referenced by
[Convention over Configuration](https://banes-lab.com/records/arch/convention-over-configuration.md)

### Explicit Semantics

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The requirement that declarative configuration carry an explicit, defined meaning.

Referenced by
[Declarative Configuration](https://banes-lab.com/records/arch/declarative-configuration.md)

### Explicitness

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The degree to which relying on conventions reduces the explicitness of how a system is configured.

Referenced by
[Convention over Configuration](https://banes-lab.com/records/arch/convention-over-configuration.md)

### Hardcoded Behavior

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
Hardcoding behavior in code instead of driving it from declarative metadata.

Referenced by
[Metadata-Driven Design](https://banes-lab.com/records/arch/metadata-driven-design.md)

### Hardcoded Registration

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
Registering components with hardcoded wiring instead of declaring them in a manifest.

Referenced by
[Manifest-Based Design](https://banes-lab.com/records/arch/manifest-based-design.md)

### HATEOAS-style Navigation

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The ability for clients to navigate an API by following links it returns in its responses.

Referenced by
[Self-Describing API](https://banes-lab.com/records/arch/self-describing-api.md)

### Hidden Runtime Behavior

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
Behavior that is opaque at runtime because the system does not describe its own structure.

Referenced by
[Self-Describing Architecture](https://banes-lab.com/records/arch/self-describing-architecture.md)

### Implicit Capability

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
Leaving what a component can do implicit and undiscoverable instead of declaring it.

Referenced by
[Capability Declaration](https://banes-lab.com/records/arch/capability-declaration.md)

### Manifest

- Kind: [artifact](https://banes-lab.com/records/kind/artifact.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
A declarative document listing a component's capabilities and metadata.

Referenced by
[Capability Declaration](https://banes-lab.com/records/arch/capability-declaration.md)

### Manifest Drift

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The degree to which a manifest drifts out of sync with the components it declares.

Referenced by
[Manifest-Based Design](https://banes-lab.com/records/arch/manifest-based-design.md)

### Manifest Schema

- Kind: [artifact](https://banes-lab.com/records/kind/artifact.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
A formal definition of the structure a manifest must follow.

Referenced by
[Manifest-Based Design](https://banes-lab.com/records/arch/manifest-based-design.md)

### Metadata Drift

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The degree to which self-describing metadata drifts out of sync with the actual system.

Referenced by
[Self-Describing Architecture](https://banes-lab.com/records/arch/self-describing-architecture.md)

### Metadata Schema

- Kind: [artifact](https://banes-lab.com/records/kind/artifact.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
A formal definition of the metadata fields that drive a system's behavior.

Referenced by
[Metadata-Driven Design](https://banes-lab.com/records/arch/metadata-driven-design.md)

### Opaque API

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
An API that does not describe itself, so clients must rely on external, out-of-band documentation.

Referenced by
[Self-Describing API](https://banes-lab.com/records/arch/self-describing-api.md)

### Opaque Binary/Untyped Structures

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
Using opaque binary or untyped data that carries no description of its own structure.

Referenced by
[Self-Describing Structures](https://banes-lab.com/records/arch/self-describing-structures.md)

### Payload Verbosity

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The degree to which embedding self-description in responses enlarges their payloads.

Referenced by
[Self-Describing API](https://banes-lab.com/records/arch/self-describing-api.md)

### Plugin Loading

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The ability to discover and load plugins declared in manifests at runtime.

Referenced by
[Manifest-Based Design](https://banes-lab.com/records/arch/manifest-based-design.md)

### Reduced Boilerplate

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The ability to avoid repetitive boilerplate by relying on conventions.

Referenced by
[Convention over Configuration](https://banes-lab.com/records/arch/convention-over-configuration.md)

### Runtime Configuration without Code Change

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The ability to change a system's behavior by editing configuration rather than code.

Referenced by
[Declarative Configuration](https://banes-lab.com/records/arch/declarative-configuration.md)

### Self-Description

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The degree to which a component exposes its own capabilities and structure for inspection.

Referenced by
[Capability Declaration](https://banes-lab.com/records/arch/capability-declaration.md)

### Size Overhead

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The degree to which embedding structural descriptions in data increases its size.

Referenced by
[Self-Describing Structures](https://banes-lab.com/records/arch/self-describing-structures.md)

### Stable Conventions

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Metadata / Self-Description / Declarative Systems](https://banes-lab.com/ontology/lexicon/lex-category-metadata-self-description-declarative-systems.md)
- Layer: [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)

Details

Definition
The requirement that the conventions a system relies on stay stable and well-known.

Referenced by
[Convention over Configuration](https://banes-lab.com/records/arch/convention-over-configuration.md)

## Links to

- [capability](https://banes-lab.com/records/kind/capability.md)
- [Declarative Core](https://banes-lab.com/records/layer/declarative-core.md)
- [Self-Describing API](https://banes-lab.com/records/arch/self-describing-api.md)
- [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- [Capability Declaration](https://banes-lab.com/records/arch/capability-declaration.md)
- [Declarative Configuration](https://banes-lab.com/records/arch/declarative-configuration.md)
- [Self-Describing Structures](https://banes-lab.com/records/arch/self-describing-structures.md)
- [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- [Convention over Configuration](https://banes-lab.com/records/arch/convention-over-configuration.md)
- [constraint](https://banes-lab.com/records/kind/constraint.md)
- [Metadata-Driven Design](https://banes-lab.com/records/arch/metadata-driven-design.md)
- [Manifest-Based Design](https://banes-lab.com/records/arch/manifest-based-design.md)
- [Self-Describing Architecture](https://banes-lab.com/records/arch/self-describing-architecture.md)
- [artifact](https://banes-lab.com/records/kind/artifact.md)
