Expand description
QISP typed function registry (Phase 4) — the concrete descriptor table that
makes the §4.2 “no untyped u64 -> u64 public function contract” real.
Every QISP extension function (qispf:) is registered here with its typed
[ImmersiveFunctionDescriptor]: argument kinds, result kind, execution class,
determinism, exactness, and I/O byte budgets. The SPARQL evaluator can look a
function up by the q_hash of its IRI (the Function::Custom(iri_hash) path)
and apply admission control — reject an inline FILTER/BIND use of an
async/table-producing function, or an over-budget call — before dispatch,
instead of discovering the problem mid-execution (plan §4.2, §6.1).
Where GeoSPARQL already defines an operation for 2D geometry, the QISP function
defers to the geof: name (plan §4.1 “GeoSPARQL names and semantics take
precedence”); the QISP descriptor exists for the mesh / volumetric / tensor /
higher-dimensional cases GeoSPARQL does not define. The deference is recorded in
FunctionEntry::defers_to so a planner can route a 2D call to the GeoSPARQL
engine and a 3D/mesh call to the native kernel.
This is the typed registry; binding a descriptor to a live geometry/tensor
kernel over resolved DenseAssetRefs is
the next Phase-4 increment (it needs the asset registry populated with real
ingested geometry). The registry + admission contract land first so the boundary
is typed and honest.
Structs§
- Function
Entry - One registered QISP function: its provisional IRI, typed descriptor, and the GeoSPARQL name it defers to for the 2D case (if any).
- Tensor
Neighbor - One bounded nearest-neighbour result.
indexidentifies the input slice slot;distanceis the canonicalTensor10D::full_distancevalue.
Constants§
- FUNCTIONS
- The registered QISP function set (plan §4.1). Ordered by family. A predicate over
two geometries takes
(GeometryRef, GeometryRef); the trailing exactness selector in the surface syntax (e.g.qisp:Exact) is a per-call modifier, not a descriptor argument — the descriptor’sexactnessis the registered default.
Functions§
- admit_
inline - Admission check for an inline expression (
FILTER/BIND) use of a QISP function identified byiri_hash: - entry_
for_ iri - Look a registered function up by its absolute IRI.
- entry_
for_ iri_ hash - Look a registered function up by the
q_hashof its IRI (the value carried inFunction::Custom(iri_hash)). ReturnsNonefor an unregistered function — the caller then returns a normal SPARQL “unknown function” expression error (never a fabricated result, plan §7.4). - tensor_
distance - Exact, allocation-free Tensor10D distance using the resident substrate’s canonical topology-aware metric.
- tensor_
knn_ into - Deterministic, allocation-free bounded k-nearest-neighbour scan.
- tensor_
within - Exact radius predicate. Invalid/non-finite radii fail as profile errors rather
than silently producing
false.