Benchmarks¶
Benchmark ontology corpora for integration and conformance testing.
| Corpus | Source | In repo? | CI |
|---|---|---|---|
| Pizza | owlcs/pizza-ontology | Downloaded | Yes (download.sh) |
| Family | rexster family.swrl.owl | Vendored (family.owl) |
Checksum verified |
| GALEN, GO, SNOMED | See manifest | Manual | Optional #[ignore] stress tests |
SHA-256 pins live in checksums.sha256.
Manifest¶
See manifest.toml for the canonical list of ontologies, expected OWL profiles, source URLs, and licenses.
Downloading OWL corpora¶
This fetches Pizza and verifies checksums. family.owl is committed; refresh from upstream with:
./benchmarks/scripts/download.sh --update-family
# then update benchmarks/checksums.sha256 if the file changed
GALEN, Gene Ontology, and SNOMED subsets require manual download (see manifest notes).
Integration tests¶
| Test | When it runs |
|---|---|
mapping_fixtures.rs |
Always (synthetic minimal fixtures, all formats) |
manifest_integration.rs |
Always (Pizza + Family; requires download.sh) |
corpus_stress.rs |
cargo test -- --ignored when large files are present |
Hybrid profile contract¶
Profile classification uses mapped TBox shapes (parse_meta.profile_constructs). Diagnostics explain why EL/RL/QL do not apply (mapped violations) and may also report constructs seen in the full parse (parse_meta.constructs) that were not mapped into core. Pizza is detected as DL because mapped axioms mix EL and RL-forbidden shapes.
Manifest axiom_count_approx values (e.g. Pizza 658) are mapper output counts (ontology.axiom_count() / mapped_axiom_count), not raw OWL logical axiom totals from the source file.
Local testing¶
# Default CI-equivalent run
./benchmarks/scripts/download.sh
cargo fmt --all
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
# Parser integration only
cargo test -p ontologos-parser
# Optional stress (after manual download)
cargo test -p ontologos-parser --test corpus_stress -- --ignored
Criterion benchmarks¶
Results are written under target/criterion/.
EL benchmarks (v0.5)¶
| Script | Purpose |
|---|---|
scripts/compare-elk.sh |
Compare Pizza EL taxonomy against optional golden JSON |
scripts/generate-go-subset.sh |
Trim GO with ROBOT for <10s EL CI test |
EL integration tests: cargo test -p ontologos-el --test pizza_el