Joshua Shay Kricheli NeuroSymbolic AI
v2 v1

Release · v3.4.0

PyEDCR example suite + multi-dataset explainer

feat(v3): PyEDCR example suite + multi-dataset explainer

feat v3.4.0 July 2, 2026 Claude 90a44e1

Details

Two new real HMC examples join the paper's Military Vehicles walkthrough,
switchable live in the explainer:
- CIFAR-100 (canonical HMC: official 20-superclass taxonomy; 9 fine
  classes across aquatic_mammals / fish / flowers) — predictions from two
  logistic heads on 8×8 RGB pixels of a 936-image slice pulled from the
  fast.ai mirror. The rules recover the textbook exclusions on their own:
  dolphin ⋢ fish, shark ⋢ aq-mammal.
- 20 Newsgroups (text HMC: hierarchy from the group names; 7 groups
  across comp / sci / soc / talk) — tf-idf + logistic heads on a
  945-post slice of the by-date archive (figshare, sklearn's source),
  headers stripped. The classic soc.religion.christian /
  talk.religion.misc border confusion emerges naturally.
pyedcr-examples/ is the staging copy of the PyEDCR repo's examples/ dir:
per-dataset download_mini.py (slices a tiny portion of the source) and
make_mini_example.py (trains the small per-granularity heads, curates a
16-train/5-test table of REAL predictions, validates: ≥2 rules over the
F1 floor, 100%-precision recovery, a flaggable error and a hierarchy-
consistent miss in the test rows — generation fails loudly rather than
invent a row), a shared edcr_mini.py implementing the same
RatioDetRuleLearn the browser runs, schema.md, and push_to_pyedcr.sh to
land it all in the PyEDCR repo as examples/ (this session has no push
access to that repo).
The widget now sources examples from the PyEDCR repo when it carries the
suite (raw.githubusercontent, lab-v2 then krichelj), falling back to the
copy committed under assets/edcr-examples/. Military stays embedded for
instant paint. All captions, headers, the Recover bipartite graph and the
honest-limit annotation are dataset-driven; the Retrain phase shows the
paper's Table-2 numbers, clearly attributed to the military benchmark
when another dataset is on stage.
Tests: 38 (was 22) — every shipped example JSON is re-validated through
the compiled widget core: schema, hierarchy consistency, learnability,
recovery precision, flagged + consistent-miss test rows, and embedded-
vs-exported military equality.

Files changed (22)

.gitignore +4 −0
frontend/client/tests/edcr-core.test.mjs +64 −2
frontend/client/ts/effects/edcr-core.ts +81 −0
frontend/client/ts/effects/neurosymbolic-explainer.ts +175 −59
frontend/jekyll/_includes/v3/explainer.html +14 −6
frontend/jekyll/_sass/v3/_explainer.scss +43 −0
frontend/jekyll/assets/edcr-examples/cifar100.json +312 −0
frontend/jekyll/assets/edcr-examples/military-vehicles.json +287 −0
frontend/jekyll/assets/edcr-examples/newsgroups.json +321 −0
pyedcr-examples/README.md +70 −0
pyedcr-examples/cifar100/download_mini.py +83 −0
pyedcr-examples/cifar100/make_mini_example.py +133 −0
pyedcr-examples/common/edcr_mini.py +318 −0
pyedcr-examples/common/schema.md +46 −0
pyedcr-examples/military_vehicles/make_mini_example.py +101 −0
pyedcr-examples/newsgroups/download_mini.py +84 −0
pyedcr-examples/newsgroups/make_mini_example.py +150 −0
pyedcr-examples/push_to_pyedcr.sh +46 −0
pyedcr-examples/requirements.txt +3 −0
pyedcr-examples/web/cifar100.json +312 −0
pyedcr-examples/web/military-vehicles.json +287 −0
pyedcr-examples/web/newsgroups.json +321 −0