Skip to content

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

./benchmarks/scripts/download.sh

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

cargo bench -p ontologos-core

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