Experiment Dossiers and Result Records
The experiment-depth API turns the family, scaling, and reproduction registries
into one ordered contract. It is useful when generating study plans, validating
result metadata, or extending a family without losing its source boundary.
Inspect a Dossier
from silva_networks import silva_experiment_dossier
dossier = silva_experiment_dossier("silva_fno_deq")
print(dossier.equation)
print(dossier.preserved_mechanisms)
print(dossier.configurable_parts)
for stage in dossier.stages:
print(stage.name, stage.evidence_status)
Every dossier contains six progressive stages:
\[
\mathcal E_{\mathrm{contract}}
\subset
\mathcal E_{\mathrm{primitive}}
\subset
\mathcal E_{\mathrm{equivalence}}
\subset
\mathcal E_{\mathrm{compact}}
\subset
\mathcal E_{\mathrm{subset}}
\subset
\mathcal E_{\mathrm{source}}.
\]
Later stages require additional evidence and artifacts. A compact result does
not automatically satisfy subset or source-scale requirements.
Validate a Result Record
from silva_networks import SILVAResultRecord
record = SILVAResultRecord(
family="silva_fno_deq",
evidence_status="compact-verified",
dataset="analytic periodic field",
dataset_version="v1",
split="seeded four-sample fixture",
configuration="field-comparison-v1",
seed=122,
metrics=(("mse", 0.145),),
data_fingerprint="sha256:...",
code_revision="working-tree-revision",
hardware="CPU; float32",
deviations=("compact 8 by 8 grid",),
)
assert record.validate() == ()
Public Objects
silva_networks.research_depth
Experiment dossiers and evidence records for SILVA model families.
The reproduction registry describes source obligations. This module turns
those obligations into an ordered experiment ladder that can be inspected,
serialized, and used by documentation or experiment runners without hiding
which evidence has actually been collected.
SILVAExperimentStage
dataclass
One falsifiable stage in a family reproduction ladder.
Source code in src/silva_networks/research_depth.py
| @dataclass(frozen=True)
class SILVAExperimentStage:
"""One falsifiable stage in a family reproduction ladder."""
name: str
objective: str
procedure: tuple[str, ...]
acceptance_checks: tuple[str, ...]
evidence_status: EvidenceStatus
|
SILVAExperimentDossier
dataclass
Complete source-to-scale experiment contract for one family.
Source code in src/silva_networks/research_depth.py
| @dataclass(frozen=True)
class SILVAExperimentDossier:
"""Complete source-to-scale experiment contract for one family."""
family: str
title: str
domain: str
task_contract: str
source_relation: str
equation: str
constructor_signature: str
paper_refs: tuple[int, ...]
repositories: tuple[str, ...]
datasets: tuple[str, ...]
data_sources: tuple[str, ...]
data_access: tuple[str, ...]
storage_plan: tuple[str, ...]
preprocessing: tuple[str, ...]
metrics: tuple[str, ...]
compact_data: tuple[str, ...]
preserved_mechanisms: tuple[str, ...]
configurable_parts: tuple[str, ...]
source_scale_steps: tuple[str, ...]
benchmark_requirements: tuple[str, ...]
notebooks: tuple[str, ...]
tests: tuple[str, ...]
compact_defaults: tuple[tuple[str, str], ...]
full_defaults: tuple[tuple[str, str], ...]
stages: tuple[SILVAExperimentStage, ...]
required_artifacts: tuple[str, ...]
def as_dict(self) -> dict[str, Any]:
"""Return a JSON-compatible dossier record."""
return asdict(self)
|
as_dict
Return a JSON-compatible dossier record.
Source code in src/silva_networks/research_depth.py
| def as_dict(self) -> dict[str, Any]:
"""Return a JSON-compatible dossier record."""
return asdict(self)
|
SILVAResultRecord
dataclass
Minimum reproducibility metadata required for a measured family result.
Source code in src/silva_networks/research_depth.py
| @dataclass(frozen=True)
class SILVAResultRecord:
"""Minimum reproducibility metadata required for a measured family result."""
family: str
evidence_status: EvidenceStatus
dataset: str
dataset_version: str
split: str
configuration: str
seed: int
metrics: tuple[tuple[str, float], ...]
data_fingerprint: str
code_revision: str
hardware: str
deviations: tuple[str, ...] = ()
def validate(self) -> tuple[str, ...]:
"""Return missing or inconsistent result-record fields."""
errors: list[str] = []
if self.family not in available_silva_families():
errors.append(f"unknown family: {self.family}")
for name in (
"dataset",
"dataset_version",
"split",
"configuration",
"data_fingerprint",
"code_revision",
"hardware",
):
if not getattr(self, name).strip():
errors.append(f"empty result-record field: {name}")
if not self.metrics:
errors.append("at least one measured metric is required")
if self.evidence_status == "source-scale-reproduced" and self.deviations:
errors.append(
"source-scale-reproduced records cannot contain undeclared protocol deviations"
)
return tuple(errors)
def as_dict(self) -> dict[str, Any]:
"""Return a JSON-compatible reproducibility record."""
return asdict(self)
|
validate
Return missing or inconsistent result-record fields.
Source code in src/silva_networks/research_depth.py
| def validate(self) -> tuple[str, ...]:
"""Return missing or inconsistent result-record fields."""
errors: list[str] = []
if self.family not in available_silva_families():
errors.append(f"unknown family: {self.family}")
for name in (
"dataset",
"dataset_version",
"split",
"configuration",
"data_fingerprint",
"code_revision",
"hardware",
):
if not getattr(self, name).strip():
errors.append(f"empty result-record field: {name}")
if not self.metrics:
errors.append("at least one measured metric is required")
if self.evidence_status == "source-scale-reproduced" and self.deviations:
errors.append(
"source-scale-reproduced records cannot contain undeclared protocol deviations"
)
return tuple(errors)
|
as_dict
Return a JSON-compatible reproducibility record.
Source code in src/silva_networks/research_depth.py
| def as_dict(self) -> dict[str, Any]:
"""Return a JSON-compatible reproducibility record."""
return asdict(self)
|
silva_experiment_dossier
silva_experiment_dossier(family)
Return the complete progressive experiment dossier for a family or alias.
Source code in src/silva_networks/research_depth.py
| def silva_experiment_dossier(family: str) -> SILVAExperimentDossier:
"""Return the complete progressive experiment dossier for a family or alias."""
key = canonical_silva_family(family)
spec = silva_reproduction_spec(key)
guide = silva_family_guide(key)
return SILVAExperimentDossier(
family=key,
title=guide.role,
domain=_domain_for(key),
task_contract=guide.data_contract,
source_relation=spec.source_relation,
equation=spec.equation,
constructor_signature=spec.constructor_signature,
paper_refs=spec.paper_refs,
repositories=spec.repositories,
datasets=spec.datasets,
data_sources=spec.data_sources,
data_access=spec.data_access,
storage_plan=spec.storage_plan,
preprocessing=spec.preprocessing,
metrics=spec.metrics,
compact_data=spec.compact_data,
preserved_mechanisms=spec.preserved_mechanisms,
configurable_parts=spec.configurable_parts,
source_scale_steps=spec.source_scale_steps,
benchmark_requirements=spec.benchmark_requirements,
notebooks=spec.notebooks,
tests=spec.tests,
compact_defaults=_defaults(key, "smoke"),
full_defaults=_defaults(key, "full"),
stages=_stage_ladder(spec),
required_artifacts=_REQUIRED_ARTIFACTS,
)
|
all_silva_experiment_dossiers
all_silva_experiment_dossiers()
Return experiment dossiers in canonical family order.
Source code in src/silva_networks/research_depth.py
| def all_silva_experiment_dossiers() -> tuple[SILVAExperimentDossier, ...]:
"""Return experiment dossiers in canonical family order."""
return tuple(silva_experiment_dossier(name) for name in available_silva_families())
|
audit_silva_experiment_dossiers
audit_silva_experiment_dossiers()
Return completeness errors for the progressive experiment registry.
Source code in src/silva_networks/research_depth.py
| def audit_silva_experiment_dossiers() -> tuple[str, ...]:
"""Return completeness errors for the progressive experiment registry."""
errors: list[str] = []
dossiers = all_silva_experiment_dossiers()
if len(dossiers) != len(available_silva_families()):
errors.append("experiment dossier count does not match the family registry")
for dossier in dossiers:
if len(dossier.stages) != 6:
errors.append(f"{dossier.family}: expected six experiment stages")
if dossier.stages[-1].evidence_status != "planned":
errors.append(f"{dossier.family}: source-scale stage must remain explicitly planned")
for field in (
"title",
"domain",
"task_contract",
"equation",
"constructor_signature",
"paper_refs",
"repositories",
"datasets",
"metrics",
"compact_defaults",
"full_defaults",
"required_artifacts",
):
if not getattr(dossier, field):
errors.append(f"{dossier.family}: empty dossier field {field}")
return tuple(errors)
|
Where to Go Next