Defeasibility View¶
The Defeasibility View presents how a case resolves competition between professional obligations. It is reached at /cases/<id>/defeasibility and renders the defeasibility edges that the extraction pipeline materializes into each case ontology.
Background¶
Professional ethics cases frequently turn on obligations that cannot all be satisfied at once. One obligation prevails, and the competing obligation is defeated under a specific circumstance. ProEthica records this structure with three object properties from proethica-core rather than as narrative prose:
| Property | Relation | Characteristic |
|---|---|---|
competesWith |
Obligation to Obligation | Symmetric |
prevailsOver |
Winning Obligation to losing Obligation | Asymmetric, irreflexive |
defeasibleUnder |
Losing Obligation to the licensing State | Directed |
A resolved conflict reads as a triple: when obligation O1 competesWith O2, and a state S obtains, then O1 prevailsOver O2, which is defeasibleUnder S. Each edge carries a PROV-O derivation node that attributes it to a verbatim quote from a source field. The property reference is in Ontology Properties, and the materialization step is described in System Architecture.
Reading the View¶
The view reads edges directly from the committed case ontologies, not from temporary extraction storage, so it reflects the same graph that OntServe serves. It is organized into two bands, with an additional record for cases resolved without defeat.
Band 1: Resolved Conflicts in the Case¶
The first band shows the conflicts internal to the case being viewed. For each conflict it presents the competing obligations, the obligation that prevails, the state under which the losing obligation is defeated, and the board conclusions that the resolution supports. This band is derived from the anchor case's own committed ontology.
Resolved Without Defeat¶
Board analyses resolve most apparent duty tensions without allowing one obligation to defeat another: the analysis defines a duty's boundary so that only one duty applies (specification), or finds that the apparent conflict does not exist on the facts (dissolution). Where a resolution pattern in the committed ontology records such a mode, it carries a resolutionKind marker, and the view lists these resolutions with the resolving passage and the conclusion each one supports. A case with only boundary-setting resolutions still reaches this view; its record states that no obligation was overridden. Override markers on defeat edges render through Band 1.
Band 2: Cross-Case Comparison¶
The second band places the central tension of the case beside the same tension as it appears in other cases. The comparison set is selected by matching the obligation-defeat pattern of the case against every other case: candidates are scored pairwise on both sides of the resolution (the mean label similarity of the winning and yielding obligations, combined with the similarity of their licensing State contexts), and up to five rows above a calibrated similarity floor are shown. When no candidate clears the floor, the band states that no sufficiently similar resolution is indexed. The ranking reads from an index built at commit time from the committed case ontologies, so the band reflects the current corpus without re-reading every case at view time. Each row links to the corresponding case and its ontology.
The matching key is the extracted formalism, not the case subject tags: two cases are judged comparable because their obligation-defeat structure aligns, not because they share a topic label.
Entity Definitions¶
Labels in both bands have hover popovers sourced from the committed case ontologies: the entity label, its definition or comment, and its concept category. Because the lookup is built from the committed TTL of each case in the view, the definitions match what OntServe stores and cover every case shown, not only the anchor case.
Related Documentation¶
- Ontology Properties - The defeasibility properties and their domains
- System Architecture - Edge materialization and the conformance gate
- Nine-Component Framework - The component types the edges connect