|
Download spec/contract.md from Snapkitty/bio-semantics: direct link, hf CLI and curl.
- Browser
- Download file 4.39 kB
-
https://huggingface.co/Snapkitty/bio-semantics/resolve/main/spec/contract.md
- Command line
-
hf download hf://Snapkitty/bio-semantics/spec/contract.md
-
curl -L -o contract.md https://huggingface.co/Snapkitty/bio-semantics/resolve/main/spec/contract.md
4.39 kB
Bio-Semantics Integration Contract β Gate 1
Version: bio-semantics/1.0.0 Status: Gate 1 candidate β contract specification only. Not implemented or tested.
Integration Pipeline
Python β Validation β Normalization β Model Inputs β Stan β MiniZinc β Quipper β Artifact Validation β Visualization/Reporting
Each stage result carries:
| Field | Type |
|---|---|
| run_id, stage_id, semantic_stage | identifiers |
| status | blocked / not_run / running / succeeded / failed / timeout |
| reason | string |
| input_artifact_ids[], output_artifact_ids[] | references |
| tool_name, tool_version, command_arguments[], working_directory | execution |
| started_at, ended_at, exit_code | timing |
| stdout_artifact_id, stderr_artifact_id | logs |
| random_seed | value / not_applicable / unavailable |
Solver outcome is separate from process status:
solver_outcome: feasible | optimal | infeasible | unknown | timeout | failed | not_run
A successful process exit is insufficient evidence of successful inference, a feasible solution, convergence, or quantum execution.
Quantity Kinds
| Kind | Meaning |
|---|---|
| observed | Measurement with source record locator |
| inferred | Posterior quantity with model/run references and uncertainty |
| derived | Deterministic transformation with algorithm and input references |
| predicted | Unobserved modeled quantity with model/run references |
| constrained | Declared permitted relation or solver result |
| encoded | Representation with semantic source, codec identifier, and bit length |
| executed | Actual execution event with run evidence |
Validator Rules (10)
- Reject unsupported versions, unknown discriminants, contradictory variants, empty identifiers, duplicate observation IDs
- Require exactly one of present value or missing reason
- Raw counts: canonical unsigned decimal only (no negatives, fractions, exponents, whitespace)
- Decimal quantities: reject NaN/infinity, require declared units
- Require sample/gene references to resolve
- Reject inferred/predicted/constrained quantities labeled observed
- Preserve excluded rows with explicit inclusion map
- Missing source bytes block verified-ingestion claims
- Synthetic-origin propagation through every descendant artifact
- Never create model-result objects merely because a process was scheduled
Binary Semantics Profiles
- u32-checked/1: unsigned 32-bit, big-endian, range 0..4294967295; overflow traps
- i32-checked/1: signed two's-complement, big-endian; overflow traps; MIN_INT/-1 traps
PTM: ptm-bit-parity/1
Input alphabet: {0,1}. Tape alphabet: {0,1,_}. States: {q_even, q_odd, q_accept, q_reject}.
| State | Read | Write | Move | Next |
|---|---|---|---|---|
| q_even | 0 | 0 | R | q_even |
| q_even | 1 | 1 | R | q_odd |
| q_odd | 0 | 0 | R | q_odd |
| q_odd | 1 | 1 | R | q_even |
| q_even | _ | 0 | Stay | q_accept |
| q_odd | _ | 1 | Stay | q_accept |
For input length n: exactly n+1 transitions, n+1 tape cells, constant auxiliary storage.
Gated Phases
- Contract gate: Contracts and validators accepted; encodings/arithmetic/PTM documented; provenance validated
- Engine gate: Stan/MiniZinc/Quipper sources exist; native validation evidence recorded; failures preserved
- Integration/release gate: All panels rendered with lineage; WORM loaded first; governance checks preserved
Acceptance Tests (specified, not run)
| Case | Expected |
|---|---|
| Present raw count "0" | Valid observed zero |
| Missing count with not_measured | Valid missing; never zero-filled |
| Missing variant also contains value | Invalid |
| Raw count "-1", "1.5", "1e3" | Invalid |
| Count above native backend range | Adapter rejects conversion |
| Normalized measurement labeled observed | Invalid |
| Posterior relabeled observed | Invalid |
| Missing source/hash | Provenance incomplete |
| Synthetic input -> posterior -> report | Synthetic marker propagated |
| Two records with duplicate identity | Invalid |
| u32 maximum plus one | Overflow fault |
| Integer divide by zero | Arithmetic fault |
| Encode/decode present zero versus missing | Distinct round trips |
| PTM "", "0", "1", "1011" | Output 0, 0, 1, 1; transitions 1, 2, 2, 5 |
| Fortran summation | Expected sum=5050 |