Skip to content

docs(ontology): AIF Virtues export — companion to #828 (double V-A/V-B modelling, read-only) - #829

Merged
jsboige merged 4 commits into
masterfrom
docs/aif-virtues-export
Jul 21, 2026
Merged

docs(ontology): AIF Virtues export — companion to #828 (double V-A/V-B modelling, read-only)#829
jsboige merged 4 commits into
masterfrom
docs/aif-virtues-export

Conversation

@jsboige

@jsboige jsboige commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

What

Companion to #828 (Fallacies AIF export). Extends the AIF export to the Virtues Taxonomy — autonomous post-tag-safe follow-up as invited by ai-01 (msg-wfk7jq: "ne stalle pas, ouvre des PRs autonomes"). Read-only on sources (CSV + argumentum_virtues.owl), 0 write, does not touch the release.

Honest verdict — DOUBLE AIF modelling of the Virtues

The 222 virtues carry two complementary AIF views of the same population, never merged:

View Source Edges Semantics
V-A attack-graph Virtues CSV (AIF_attackType + AIF_attackedNode) 222 how the virtue ATTACKS a bad reasoning (bipartite: virtue → node-TYPE RA/I/CA)
V-B good-tenor argumentum_virtues.owl (aif#goodTenorOf) 222 how the virtue EMBODIES a canonical AIF argument SCHEME
  • V-A: 222/222 axiom respected (undercut→RA 206, undermine→I 13, rebut→CA 3, 0 violations).
  • V-B: 222 virtues → 14 canonical schemes (Rule 50, Commitment 40, Bias 27, Sign 26, Verbal Classification 21, Cause 11, Witness 10, Position 8, Values 8, Analogy 7, Expert 6, Example 4, Consequences 3, Danger 1).
  • Same 14-scheme vocabulary, different predicates. Not redundant, not contradictory.

Contrast with Fallacies (#828)

Fallacies carry only the attack-graph (V-A) — no goodTenorOf in argumentum.owl. The Virtues are the dual (carry BOTH views). Do NOT fuse Fallacies-attacks + Virtues-attacks — Virtues-attacks encode counter-arguments to fallacies, a different semantics.

Artefacts (docs/ontology/aif-export/)

File Rows
aif-virtues-attack-edges.csv 222
aif-virtues-good-tenor.csv 222
aif-virtues-canonical-concepts.csv 14
aif-virtues-schemes.csv 14
README.md + Virtues companion section

tools/aif-virtues-export.py — reproducible (Python stdlib, ~1s, idempotent, 0 write to sources).

Post-tag-safe

Docs + generated CSVs + one tool script. No source change. No release impact. Gate (b)/(d) untouched.

Refs

🤖 Generated with Claude Code

Your and others added 4 commits July 19, 2026 16:59
…B modelling, read-only)

Extends the AIF export (#828, Fallacies) to the Virtues Taxonomy. Companion to
aif-attack-graph-export.py. Read-only on sources, post-tag-safe.

Honest verdict: the 222 virtues carry a DOUBLE AIF modelling of the same
population — two complementary views, never merged:
- V-A (CSV): 222 bipartite attack-edges (virtue -> node-TYPE RA/I/CA), 0 axiom
  violations (undercut->RA 206, undermine->I 13, rebut->CA 3).
- V-B (OWL aif#goodTenorOf): 222 virtue -> canonical argument-scheme edges
  (14 schemes: Rule 50, Commitment 40, Bias 27, Sign 26, ...).
Same 14-scheme vocabulary, different predicates. Not redundant, not contradictory.

Contrast with Fallacies (#828): Fallacies carry ONLY the attack-graph (V-A), no
goodTenorOf. Virtues are the dual (BOTH views). Do NOT fuse Fallacies-attacks +
Virtues-attacks — Virtues-attacks encode counter-arguments to fallacies.

Artefacts (docs/ontology/aif-export/):
- aif-virtues-attack-edges.csv       222 V-A bipartite attack-edges (PK-keyed)
- aif-virtues-good-tenor.csv         222 V-B virtue->scheme edges
- aif-virtues-canonical-concepts.csv 14 AIF schemes (skos refs)
- aif-virtues-schemes.csv            14 schemes distribution
- README.md                          + Virtues companion section

tools/aif-virtues-export.py: reproducible (Python stdlib, ~1s, 0 write to sources).

Refs: #828 (Fallacies AIF export), CoursIA ICT #7289, Layer C #790.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…es↔Virtues vocabularies disjoint)

Empirical finding (read-only, no fabrication): Fallacies (#828) and Virtues
(#829) reference DISJOINT AIF vocabularies (intersection = 0).
- Fallacies: 60 concepts, "<Topic>_<Type>" suffix (_Inference/_Conflict/_Scheme)
- Virtues: 14 concepts, "Argument from <Topic>" readable form

Both conventions co-exist as declared classes in the source AIF ontology
(Ontology/Resources/AIF.owl: 125 _Type forms + 15 "Argument from X" forms).
A lexical alignment is inferrable in several cases but NO materialised mapping
table exists in the source data. The export therefore does NOT unify the two
vocabularies — documented to prevent the false assumption that the two concept
spaces are pre-aligned. A consumer needing a unified AIF space must build that
mapping explicitly (modelling decision, not export).

Same lane (Cards/AIF), post-tag-safe, 0 write to sources. Amend to PR #829.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…bility)

The ontology README (§2 Layer 3) documents the AIF attack-typed counts
(Fallacies 145, Virtues 222) but did not reference the consumable CSV exports
in aif-export/ added by #828 + #829. Add a short pointer in §3 so downstream
consumers (CoursIA ICT #7289, Layer C #790) can discover the bipartite
attack-edges, good-tenor edges, canonical concepts, taxonomy tree, and
inter-fallacy relations CSVs + the reproducible export scripts.

Same lane (Cards/AIF docs), post-tag-safe, 0 write to sources. Amend to PR #829.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… README 1985 raw)

Resolves the crossLink delta tracked at tick 49 (README §2 Layer 2 = 1985 vs
aif-relations-graph.csv = 1734). Read-only investigation finding — NOT a bug,
a counting-methodology difference:

- README 1985 = RAW emitted assertions (pre-dedup).
- Raw OWL parse = 1977 (= README 1985 minus 8 schema self-definitions, one
  per verb across the 8 relation verbs).
- 1977 raw - 1734 distinct = 243 EXACT-duplicate triples (OWLSharp serializer
  idempotency quirk, not a data issue). The dedup is correct for a consumer.
- Symmetric verbs (mirrors/isRelatedTo/inverts/opposes) are emitted
  bidirectionally as two distinct triples (A,p,B)+(B,p,A) — both kept (not
  duplicates).

Added a count-reconciliation note to the aif-relations-graph.csv section of
the export README so consumers understand the 1734 vs 1985 difference.

Same lane (Cards/AIF docs), post-tag-safe, 0 write to sources. Amend to PR #829.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jsboige
jsboige merged commit f8b02c6 into master Jul 21, 2026
3 checks passed
@jsboige
jsboige deleted the docs/aif-virtues-export branch July 21, 2026 10:46
jsboige added a commit that referenced this pull request Jul 21, 2026
…ract (#7289 Phase-B) (#833)

* docs(ontology): AIF export — directed/typed spectral consumption contract (#7289 Phase-B)

Bridge note (tertiary deliverable of ai-01 dispatch #497/#498/bridge
deep-queue) for CoursIA ICT #7289 strate-6 Phase-B consumers, and the
nit raised in notebook #7341 review: the AIF attack graph is DIRECTED
(attacker -> abstract node-TYPE, bipartite) and TYPED
(undercut/undermine/rebut). A spectral/Laplacian consumer must preserve
both, or collapse the mode-of-attack signal the analysis wants to surface.

- Directed, not symmetric: standard L_sym on an undirected projection
  treats attacker and attacked node-type as interchangeable (they are not;
  direction is the semantics).
- Typed edges carry distinct modes: do not binarise undercut/undermine/rebut
  (RA-node / I-node / CA-node = three argumentative operations).
- Complementary graphs have different symmetries: aif-relations-graph.csv
  (bidirectional mirrors/isRelatedTo) vs aif-attack-edges.csv (typed
  directed) -- pick the graph matching the question, do not merge.
- Recommended (consumer choice, not exported): directed / magnetic hermitian
  Laplacian, or type-weighted / multi-channel edges.

Consumption contract only -- CSVs unchanged, 0 data change, 0 fabrication.
Read-only docs lane (same as #828/#829), post-tag-safe. Verdict QA = ai-01.

Refs: dispatch ai-01 -> po-2024 (msg-20260721T174854-ucdwi7).

Co-Authored-By: Claude-Code <noreply@anthropic.com>

* docs(ontology): clarify rebut→CA is export's mode-marker, not canonical AIF target (#833 review)

Addresses NanoClaw's structural-review nit on the #7289 Phase-B consumption
contract: the new "Typed edges" bullet said `rebut` "attacks the conclusion,
CA-node", conflating the canonical semantic target (an I-node) with the
export's node-type marker (`CA-node`).

Verified against aif-attack-edges.csv: the export genuinely emits
`rebut → CA-node` (5 rows, node_type_axiom_ok=1), consistent with the
already-merged verdict table (#828). Reworded the bullet to state that `CA`
here is the export's *conflicting-application* mode-marker (keeping the three
attack types on distinct node-types = separable spectral channels), NOT the
canonical AIF target — in canonical AIF/ASPIC+ a rebuttal targets the
conclusion I-node. Consumer should read it as a type channel, not a node
instance.

Additive docs-only clarification; CSVs unchanged, 0 data change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Your <your.email@example.com>
Co-authored-by: Claude-Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant