Skip to main content

Module modal_kind

Module modal_kind 

Source
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_of point 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 (None for 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 identifier is of kind.