Expand description
Modal-predicate identifier-KIND resolution (task #22; the hybrid-modality decision).
The OPEN, extensible set of identifier kinds / namespaces lives in the graph as a
modal predicate <identifier> <hasModalityKind> <kind>, NOT in the inline object
tag (the top nibble is reserved for the small CLOSED set of structural datatypes —
see frame_layout “Tag policy”). Two payoffs:
- an identifier keeps its FULL 64-bit width (the inline-tag path must spend the top nibble on a datatype tag; this path does not), so non-dictionary identifiers (content hashes, topological/did:q42 pointers, cluster-node ids) lose no entropy;
- the kind emerges from a relation (identifiers-not-identity), resolved via a
zero-alloc
QuinIndex::object_ofpoint lookup at the CPU/logic layer — never in the SIMD/GPU vectorized loop.
The lexicon is the collision backstop underneath: a handle resolves to a full value, so a handle collision is detectable, not silent.
Constants§
- HAS_
MODALITY_ KIND - The modal predicate that scopes an identifier’s kind.
- KIND_
CLUSTER_ NODE - KIND_
CONTENT_ HASH - KIND_
DICTIONARY - KIND_
DID - KIND_
DID_ Q42 - KIND_
WEBIZEN
Functions§
- kind_
name - Human-readable name for a known kind constant (
Nonefor an extension kind not in the seed vocabulary — those are still valid, just not built-in). - resolve_
kind - Resolve an identifier’s kind via a zero-alloc point lookup.
- tag_
kind - Build the modal-kind quin asserting
identifieris ofkind.