Status: Accepted
Date: 2026-09-25 (proposed), 2026-09-25 (accepted)
Related: ADR-A03 (condition taxonomy), ADR-A06 (wildcard semantics),
ADR-A85 (scoped and temporal binding resolution), ADR-A86 (ontology semantic
versioning)
Unit: applied-ontology-readiness
ADR-A03 gives every condition a match strategy, but until commit 9a12da4
Eligibility had no property naming the concepts an ExactMatch,
SetMembership or HierarchicalMatch condition matches against, and no way
to state an exception. Applied ontologies need both. A clinical-trial
protocol admits “any solid tumour except those of the central nervous
system”. An employment policy grants a benefit to “every job family except
contractor grades”. Neither can be written as a union of ranges, which is how
IntervalContainment already expresses gaps.
Commit 9a12da4 added elg:requiredConcept, elg:excludedConcept, the
elg:StaticConstraint law register, laws L10 to L13, two warning shapes and a
decision table in ontology/eligibility/README.md §4. It landed without an
ADR. This ADR records the decision so it can be ratified or amended, and
corrects one defect found since.
ExactMatch, SetMembership or
HierarchicalMatch states its concepts with elg:requiredConcept and
elg:excludedConcept. Several required concepts are alternatives. Each
excluded concept excludes independently. Match is equality for the first
two strategies and “at or below, in the bound scheme’s ordering” for
HierarchicalMatch, with the scheme resolved under ADR-A85.Undetermined (L11), and a
condition with exclusions only admits every other member of its bound
scheme (L12).elg:ReachableExclusionShape).elg:ConceptConditionDeclarationShape). This warning applies to
conditions that match candidates directly. It does not apply to an
elg:AdmissionProfile, which ADR-A03 makes a condition but whose concepts
belong to the conditions it composes. The shape as committed in 9a12da4
also fires on profiles. Excluding a focus node that has elg:hasCondition
corrects it.sh:Warning. A graph that conformed before 9a12da4
still conforms.9a12da4 change is MINOR under ADR-A86, as recorded in that commit.
The profile correction in item 4 is a PATCH to eligibility/spec (a shape
brought into line with documented intent), with the import cascade the
policy requires.elg:candidateValue
ranges over qnt:Value. ADR-A89 addresses this.