Semantic contract layered on top of Ash.Type.
AshR2RML.Type preserves the original datatype/lexical callbacks while
generalizing the contract to RDF terms whose semantics are not XSD literals.
The public ontology remains authoritative. Implementing this behaviour only describes one executable Ash projection; it does not prove equivalence or grant persistence/actuation authority.
Summary
Types
Callbacks
@callback class_iri() :: String.t() | nil
@callback concept_scheme_iri() :: String.t() | nil
@callback datatype_iri() :: String.t() | nil
@callback semantic_kind() :: semantic_kind()
@callback xsd_datatype() :: String.t() | nil