Skip to main content

Module functions

Module functions 

Source
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§

FunctionEntry
One registered QISP function: its provisional IRI, typed descriptor, and the GeoSPARQL name it defers to for the 2D case (if any).
TensorNeighbor
One bounded nearest-neighbour result. index identifies the input slice slot; distance is the canonical Tensor10D::full_distance value.

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’s exactness is the registered default.

Functions§

admit_inline
Admission check for an inline expression (FILTER/BIND) use of a QISP function identified by iri_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_hash of its IRI (the value carried in Function::Custom(iri_hash)). Returns None for 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.