Canonical public semantic mapping IR.
All Ash-first and ontology-first entry paths normalize into these structures before R2RML serialization. Renderers are forbidden from rediscovering Ash relationships, storage columns, semantic identities, or datatype decisions.
Summary
Functions
@spec mapping_identity(AshR2RML.Mapping.Resource.t()) :: String.t()
@spec normalize(AshR2RML.Mapping.Resource.t()) :: AshR2RML.Mapping.Resource.t()
@spec normalize(AshR2RML.Mapping.Bundle.t()) :: AshR2RML.Mapping.Bundle.t()
@spec stable_subject_identity?(AshR2RML.Mapping.Resource.t()) :: boolean()
@spec subject_identity_columns(AshR2RML.Mapping.Resource.t()) :: [String.t()]
@spec validate(AshR2RML.Mapping.Resource.t() | AshR2RML.Mapping.Bundle.t()) :: :ok | {:error, [AshR2RML.Refusal.t()]}