scientific-method
The parts of the scientific method used to define and evaluate experiments.
scientific-method models questions, hypotheses, predictions, independent and dependent variables, controls, observations, measurements, criteria, and conclusions. It does not run experiments or know about repositories, commands, files, or benchmarks.
Criteria are machine-evaluable and can be composed. A method evaluates its declared criteria against observations and concludes supported, not_supported, or inconclusive. That scientific conclusion is intentionally separate from any later decision to accept, promote, or retain an implementation.
use ;
let method = new
.criterion;
let observations = new
.with
.with;
let evaluation = method.evaluate?;
assert!;
# Ok::
Serde
Serialization is optional:
= { = "0.2", = ["serde"] }
The crate keeps serialization separate from execution so experiment frameworks can choose their own file formats and storage.
Releasing
Bump version in Cargo.toml, add a dated ## <version> (YYYY-MM-DD) entry to CHANGELOG.md, and push to main. CI tests stable and Rust 1.89, runs clippy, and publishes a version that is not already on crates.io through trusted publishing.
Ownership
Developed and published by James Hunt. Repository: https://github.com/jameshuntt/scientific-method.
License
MIT OR Apache-2.0