Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Entailment Rule Inventory

This file is generated. Do not edit it by hand. It is emitted by cargo run -p purrdf-entail --example gen_rule_inventory from purrdf_entail::RuleId, rules(regime) and implemented(regime), and scripts/check-generated.sh fails the build when the committed copy and a fresh run disagree. Regenerate with make metadata.

Defined is the rule table the specification defines the regime by (rules(regime)). Implemented is the subset this workspace’s evaluator actually fires (implemented(regime)). Their difference is the regime’s gap, and it is the same set a ReasoningReport names under missing.

Neither column counts an extension — a rule this workspace fires that no specification table states. Those are listed in their own section below (extensions(regime)), never folded into a coverage number, so a figure like OWL-RL 78 / 78 stays a claim about OWL 2 Profiles §4.3 Tables 4–9 and about nothing else.

78 / 78 and 50 / 50 are two different measurements

This page is the RULE INVENTORY: 78 / 78 says every rule OWL 2 Profiles §4.3 Tables 4–9 states is one the chase fires. It says nothing about how many published entailments that reaches, and the two figures are measured against different things and can move independently.

The second measurement is ENTAILMENT CONFORMANCE, over the vendored W3C OWL 2 RL entailment corpus: 50 of 50 cases agree with W3C’s published verdict, 27 of 27 positive and 23 of 23 negative, with an empty divergence ledger. That figure is crates/sparql-conformance/entailment-suite/w3c-owl2-rl/’s and is bounded by what is vendored there — see docs/CONFORMANCE.md, which carries it beside the corpus it was measured on.

Fifteen of those 50 are reached by a mechanism that exists because the rule table DECIDES no conclusion of that shape: refutation, freeze-and-chase, comprehension, reflexivity and datatype containment, each documented on purrdf_entail::EntailmentMechanism. NONE of them adds a rule, which is why this inventory is byte-for-byte what it was before they existed — they change how many times the table is run and what its false is read as, not what the table states.

The five COMPOSE. A conclusion graph is a conjunction and entailment is monotone over one, so a conclusion stating a negative fact beside a schema axiom is entailed when each half is: purrdf_entail::entails() threads the residual through every lane in turn and matches only what survives, and an answer that needed two or more of them renders as composite rather than as any single constituent’s name. No vendored case needs it — each of the 50 is reached by one lane or by none — so the corpus does not measure it and the crate’s own tests do.

Coverage by regime

Regime--regimeDefinedImplemented
Simplesimple00
RDFrdf33
RDFSrdfs1818
OWL-RLowl-rl7878
OWL-Directowl-direct00
RIFrif00
Dd55

A regime with a zero-length rule table is one this crate does not enumerate rules for: Simple is the identity closure, and OWL-Direct and RIF are served by a tableau and by a caller-supplied rule set respectively, neither of which is a fixed table.

Extensions

A rule this workspace’s evaluator fires that no specification table states. An extension appears in neither column above, for any regime: rules(regime) and implemented(regime) name only specification rules, and extensions(regime) names only these. RuleId::is_extension decides which is which, and a ReasoningReport renders the list under extension beside the missing list — so a caller that must act only on normative conclusions can tell from the report rather than from prose.

Every entry is sound under the semantics of the vocabulary it reads; that is the only standard a rule with no specification to appeal to can meet.

Regime--regimeRule
OWL-RLowl-rlext-eq-diff-sym

RDF — 3 of 3 rules implemented

RuleSpecificationImplemented
rdfD1RDF 1.2 Semantics §8.1.1 (RDF patterns)yes
rdfD1aRDF 1.2 Semantics §8.1.1 (RDF patterns)yes
rdfD2RDF 1.2 Semantics §8.1.1 (RDF patterns)yes

RDFS — 18 of 18 rules implemented

RuleSpecificationImplemented
rdfD1RDF 1.2 Semantics §8.1.1 (RDF patterns)yes
rdfD1aRDF 1.2 Semantics §8.1.1 (RDF patterns)yes
rdfD2RDF 1.2 Semantics §8.1.1 (RDF patterns)yes
rdfs1RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs2RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs3RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs4RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs5RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs6RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs7RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs8RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs9RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs10RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs11RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs12RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs13RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs14RDF 1.2 Semantics §9.2.1 (RDFS patterns)yes
rdfs14aRDF 1.2 Semantics §9.2.1 (RDFS patterns)yes

OWL-RL — 78 of 78 rules implemented

RuleSpecificationImplemented
eq-refOWL 2 Profiles §4.3 Table 4 (Equality)yes
eq-symOWL 2 Profiles §4.3 Table 4 (Equality)yes
eq-transOWL 2 Profiles §4.3 Table 4 (Equality)yes
eq-rep-sOWL 2 Profiles §4.3 Table 4 (Equality)yes
eq-rep-pOWL 2 Profiles §4.3 Table 4 (Equality)yes
eq-rep-oOWL 2 Profiles §4.3 Table 4 (Equality)yes
eq-diff1OWL 2 Profiles §4.3 Table 4 (Equality)yes
eq-diff2OWL 2 Profiles §4.3 Table 4 (Equality)yes
eq-diff3OWL 2 Profiles §4.3 Table 4 (Equality)yes
prp-apOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-domOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-rngOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-fpOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-ifpOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-irpOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-sympOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-asypOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-trpOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-spo1OWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-spo2OWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-eqp1OWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-eqp2OWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-pdwOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-adpOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-inv1OWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-inv2OWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-keyOWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-npa1OWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
prp-npa2OWL 2 Profiles §4.3 Table 5 (Property Axioms)yes
cls-thingOWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-nothing1OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-nothing2OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-int1OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-int2OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-uniOWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-comOWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-svf1OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-svf2OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-avfOWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-hv1OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-hv2OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-maxc1OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-maxc2OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-maxqc1OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-maxqc2OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-maxqc3OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-maxqc4OWL 2 Profiles §4.3 Table 6 (Classes)yes
cls-ooOWL 2 Profiles §4.3 Table 6 (Classes)yes
cax-scoOWL 2 Profiles §4.3 Table 7 (Class Axioms)yes
cax-eqc1OWL 2 Profiles §4.3 Table 7 (Class Axioms)yes
cax-eqc2OWL 2 Profiles §4.3 Table 7 (Class Axioms)yes
cax-dwOWL 2 Profiles §4.3 Table 7 (Class Axioms)yes
cax-adcOWL 2 Profiles §4.3 Table 7 (Class Axioms)yes
dt-type1OWL 2 Profiles §4.3 Table 8 (Datatypes)yes
dt-type2OWL 2 Profiles §4.3 Table 8 (Datatypes)yes
dt-eqOWL 2 Profiles §4.3 Table 8 (Datatypes)yes
dt-diffOWL 2 Profiles §4.3 Table 8 (Datatypes)yes
dt-not-typeOWL 2 Profiles §4.3 Table 8 (Datatypes)yes
scm-clsOWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-scoOWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-eqc1OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-eqc2OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-opOWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-dpOWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-spoOWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-eqp1OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-eqp2OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-dom1OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-dom2OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-rng1OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-rng2OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-hvOWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-svf1OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-svf2OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-avf1OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-avf2OWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-intOWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes
scm-uniOWL 2 Profiles §4.3 Table 9 (Schema Vocabulary)yes

D — 5 of 5 rules implemented

RuleSpecificationImplemented
dt-type1OWL 2 Profiles §4.3 Table 8 (Datatypes)yes
dt-type2OWL 2 Profiles §4.3 Table 8 (Datatypes)yes
dt-eqOWL 2 Profiles §4.3 Table 8 (Datatypes)yes
dt-diffOWL 2 Profiles §4.3 Table 8 (Datatypes)yes
dt-not-typeOWL 2 Profiles §4.3 Table 8 (Datatypes)yes