superseded by https://github.com/semantic-namespace/atlas
This module provides a declarative way to define system functions as semantic entities. Functions become part of the compound-identity registry and can be queried, inspected, validated, and composed using ontology tags. No DSL or macro layer is required.
A function is defined as a contract instance with five fields:
:function/implThe implementation. Receives one map containing the merged semantic context.:function/contextA set of compound-identity keys that must be present in the input map. If a key refers to another function identity, its:function/responseis merged.:function/responseA set of compound-identity keys that the function provides in its output.:function.execution/beforeOptional pre-handler (defaults toidentity).:function.execution/afterOptional post-handler (defaults toidentity).
The function identity is expressed entirely through compound-identity axes
(e.g. :domain/*, :operation/*, :resource/*, :effect/*, :integration/*,
:tier/*, or any project-specific ontology keys).
- Semantic reasoning over functions
- Minimal test-context derivation
- Consumer/producer graph construction
- Cross-domain dependency analysis
- Semantic composition of contexts
- Static detection of missing producers or unused outputs
- Architectural constraints via axioms
- Alignment with DI and endpoint modules
- Full participation in the compound-identity registry
- Zero DSL, only data
- Semantic first, runtime second
- Ontology-driven composition
- Declarative system behavior
- Full introspection from definitions
- Uniform identity vocabulary across modules
https://clojars.org/com.github.semantic-namespace/contract.function