eyeling 1.24.8 → 1.24.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/HANDBOOK.md +2 -2
  2. package/README.md +1 -1
  3. package/dist/browser/eyeling.browser.js +10 -10
  4. package/examples/act-alarm-bit-interoperability.n3 +4 -4
  5. package/examples/act-barley-seed-lineage.n3 +4 -4
  6. package/examples/act-docking-abort.n3 +4 -4
  7. package/examples/act-gravity-mediator-witness.n3 +4 -4
  8. package/examples/act-isolation-breach.n3 +4 -4
  9. package/examples/act-photosynthetic-exciton-transfer.n3 +4 -4
  10. package/examples/act-sensor-memory-reset.n3 +4 -4
  11. package/examples/act-tunnel-junction-wake-switch.n3 +4 -4
  12. package/examples/act-yeast-self-reproduction.n3 +4 -4
  13. package/examples/annotation.n3 +1 -1
  14. package/examples/auroracare.n3 +22 -22
  15. package/examples/backward-recursion.n3 +1 -1
  16. package/examples/barley-seed-becoming.n3 +4 -4
  17. package/examples/bmi.n3 +4 -4
  18. package/examples/builtin-coverage.n3 +1 -1
  19. package/examples/calidor.n3 +1 -1
  20. package/examples/collection.n3 +1 -1
  21. package/examples/complex-matrix-stability.n3 +4 -4
  22. package/examples/context-association.n3 +1 -1
  23. package/examples/control-system.n3 +4 -4
  24. package/examples/deck/faltings-genus2-finiteness.md +1 -1
  25. package/examples/deck/high-trust-rdf-bloom-envelope.md +1 -1
  26. package/examples/deck/odrl-dpv-risk-ranked.md +1 -1
  27. package/examples/deck/schema-foaf-mapping.md +1 -1
  28. package/examples/deep-taxonomy-10.n3 +4 -4
  29. package/examples/deep-taxonomy-100.n3 +4 -4
  30. package/examples/deep-taxonomy-1000.n3 +4 -4
  31. package/examples/deep-taxonomy-10000.n3 +4 -4
  32. package/examples/deep-taxonomy-100000.n3 +2 -2
  33. package/examples/delfour.n3 +1 -1
  34. package/examples/digital-product-passport.n3 +1 -1
  35. package/examples/dijkstra-risk-path.n3 +1 -1
  36. package/examples/easter.n3 +4 -4
  37. package/examples/eco-route-insight.n3 +1 -1
  38. package/examples/flandor.n3 +1 -1
  39. package/examples/french-cities.n3 +4 -4
  40. package/examples/fundamental-theorem-arithmetic.n3 +4 -4
  41. package/examples/genetic-algorithm-knapsack.n3 +1 -1
  42. package/examples/genetic-algorithm.n3 +1 -1
  43. package/examples/genetic-knapsack-selection.n3 +1 -1
  44. package/examples/gps.n3 +4 -4
  45. package/examples/harborsmr.n3 +4 -4
  46. package/examples/input/ontology-question-generation.trig +79 -0
  47. package/examples/interop-demo.n3 +1 -1
  48. package/examples/matrix-mechanics.n3 +1 -1
  49. package/examples/medior.n3 +1 -1
  50. package/examples/n3-speaks-for-itself.n3 +1 -1
  51. package/examples/odrl-dpv-ehds-risk-ranked.n3 +1 -1
  52. package/examples/odrl-dpv-healthcare-risk-ranked.n3 +1 -1
  53. package/examples/odrl-dpv-risk-ranked.n3 +1 -1
  54. package/examples/odrl-risk-mitigation.n3 +1 -1
  55. package/examples/odrl-risk.n3 +1 -1
  56. package/examples/ontology-question-generation.n3 +409 -0
  57. package/examples/output/act-alarm-bit-interoperability.md +7 -3
  58. package/examples/output/act-barley-seed-lineage.md +7 -3
  59. package/examples/output/act-docking-abort.md +7 -3
  60. package/examples/output/act-gravity-mediator-witness.md +7 -3
  61. package/examples/output/act-isolation-breach.md +7 -3
  62. package/examples/output/act-photosynthetic-exciton-transfer.md +7 -3
  63. package/examples/output/act-sensor-memory-reset.md +7 -3
  64. package/examples/output/act-tunnel-junction-wake-switch.md +7 -3
  65. package/examples/output/act-yeast-self-reproduction.md +7 -3
  66. package/examples/output/annotation.md +20 -0
  67. package/examples/output/auroracare.md +25 -21
  68. package/examples/output/backward-recursion.md +5 -0
  69. package/examples/output/barley-seed-becoming.md +7 -3
  70. package/examples/output/bmi.md +7 -3
  71. package/examples/output/builtin-coverage.md +6 -0
  72. package/examples/output/calidor.md +4 -0
  73. package/examples/output/collection.md +6 -0
  74. package/examples/output/complex-matrix-stability.md +7 -3
  75. package/examples/output/context-association.md +5 -0
  76. package/examples/output/control-system.md +7 -3
  77. package/examples/output/deep-taxonomy-10.md +7 -3
  78. package/examples/output/deep-taxonomy-100.md +7 -3
  79. package/examples/output/deep-taxonomy-1000.md +7 -3
  80. package/examples/output/deep-taxonomy-10000.md +7 -3
  81. package/examples/output/deep-taxonomy-100000.md +7 -3
  82. package/examples/output/delfour.md +4 -0
  83. package/examples/output/digital-product-passport.md +4 -0
  84. package/examples/output/dijkstra-risk-path.md +5 -0
  85. package/examples/output/easter.md +34 -30
  86. package/examples/output/eco-route-insight.md +5 -0
  87. package/examples/output/flandor.md +4 -0
  88. package/examples/output/french-cities.md +7 -3
  89. package/examples/output/fundamental-theorem-arithmetic.md +7 -3
  90. package/examples/output/genetic-algorithm-knapsack.md +4 -0
  91. package/examples/output/genetic-algorithm.md +4 -0
  92. package/examples/output/genetic-knapsack-selection.md +5 -0
  93. package/examples/output/gps.md +7 -3
  94. package/examples/output/harborsmr.md +7 -3
  95. package/examples/output/interop-demo.md +4 -0
  96. package/examples/output/matrix-mechanics.md +4 -0
  97. package/examples/output/medior.md +4 -0
  98. package/examples/output/n3-speaks-for-itself.md +4 -0
  99. package/examples/output/odrl-dpv-ehds-risk-ranked.md +4 -0
  100. package/examples/output/odrl-dpv-healthcare-risk-ranked.md +4 -0
  101. package/examples/output/odrl-dpv-risk-ranked.md +4 -0
  102. package/examples/output/odrl-risk-mitigation.md +4 -0
  103. package/examples/output/odrl-risk.md +4 -0
  104. package/examples/output/ontology-question-generation.md +31 -0
  105. package/examples/output/parcellocker.md +7 -3
  106. package/examples/output/pn-junction-tunneling.md +4 -0
  107. package/examples/output/queens.md +4 -0
  108. package/examples/output/rc-discharge-envelope.md +5 -0
  109. package/examples/output/rdf-dataset.md +5 -0
  110. package/examples/output/rdf-message-flow.md +5 -0
  111. package/examples/output/rdf-messages.md +5 -0
  112. package/examples/output/resto.md +7 -3
  113. package/examples/output/school-placement-audit.md +5 -0
  114. package/examples/output/smoke-arithmetic.md +5 -0
  115. package/examples/output/sqrt2-cauchy.md +4 -0
  116. package/examples/output/sqrt2-dedekind.md +4 -0
  117. package/examples/output/sudoku.md +4 -0
  118. package/examples/output/transcendental-numbers-stretched.md +4 -0
  119. package/examples/output/transistor-switch.md +4 -0
  120. package/examples/output/triple-terms.md +5 -0
  121. package/examples/output/tunnel-junction-wake-switch-becoming.md +7 -3
  122. package/examples/output/wind-turbine.md +7 -3
  123. package/examples/parcellocker.n3 +2 -2
  124. package/examples/pn-junction-tunneling.n3 +1 -1
  125. package/examples/queens.n3 +1 -1
  126. package/examples/rc-discharge-envelope.n3 +1 -1
  127. package/examples/rdf-dataset.n3 +1 -1
  128. package/examples/rdf-message-flow.n3 +1 -1
  129. package/examples/rdf-messages.n3 +1 -1
  130. package/examples/resto.n3 +4 -4
  131. package/examples/school-placement-audit.n3 +1 -1
  132. package/examples/smoke-arithmetic.n3 +1 -1
  133. package/examples/sqrt2-cauchy.n3 +1 -1
  134. package/examples/sqrt2-dedekind.n3 +1 -1
  135. package/examples/sudoku.n3 +5 -5
  136. package/examples/transcendental-numbers-stretched.n3 +1 -1
  137. package/examples/transistor-switch.n3 +1 -1
  138. package/examples/triple-terms.n3 +1 -1
  139. package/examples/tunnel-junction-wake-switch-becoming.n3 +4 -4
  140. package/examples/wind-turbine.n3 +4 -4
  141. package/eyeling.js +10 -10
  142. package/lib/engine.js +4 -4
  143. package/lib/entry.js +2 -2
  144. package/lib/printing.js +1 -1
  145. package/lib/trace.js +1 -1
  146. package/package.json +1 -1
  147. package/test/api.test.js +1 -1
  148. package/test/playground.test.js +45 -15
  149. package/tools/bundle.js +2 -2
package/HANDBOOK.md CHANGED
@@ -1818,7 +1818,7 @@ Some N3 workflows treat IRIs as pointers to more knowledge. Eyeling supports thi
1818
1818
  - in practice, any non-http IRI is treated as a local path for convenience.
1819
1819
 
1820
1820
  - In **browser/worker**, dereferencing uses synchronous XHR (HTTP(S) only), subject to CORS.
1821
- - Many browsers restrict synchronous XHR on the main thread; use a worker (as in `demo.html`) to avoid UI blocking.
1821
+ - Many browsers restrict synchronous XHR on the main thread; use a worker (as in `playground.html`) to avoid UI blocking.
1822
1822
 
1823
1823
  ### 12.2 Caching
1824
1824
 
@@ -2004,7 +2004,7 @@ For browser apps, prefer running Eyeling in a **Web Worker** and importing `eyel
2004
2004
  `lib/entry.js` exports:
2005
2005
 
2006
2006
  - public APIs: `reasonStream`, `reasonRdfJs`, `rdfjs`, `main`, `version`
2007
- - plus a curated set of internals used by the demo (`lex`, `Parser`, `forwardChain`, etc.)
2007
+ - plus a curated set of internals used by the playground (`lex`, `Parser`, `forwardChain`, etc.)
2008
2008
 
2009
2009
  `rdfjs` is a small built-in RDF/JS `DataFactory`, so browser / worker code can construct quads without pulling in another package first.
2010
2010
 
package/README.md CHANGED
@@ -16,5 +16,5 @@ echo '@prefix : <http://example.org/> .
16
16
  ## Read more
17
17
 
18
18
  - [Handbook](https://eyereasoner.github.io/eyeling/HANDBOOK)
19
- - [Playground](https://eyereasoner.github.io/eyeling/demo)
19
+ - [Playground](https://eyereasoner.github.io/eyeling/playground)
20
20
  - [Conformance report](https://codeberg.org/phochste/notation3tests/src/branch/main/reports/report.md)
@@ -8898,10 +8898,10 @@ function main() {
8898
8898
  }
8899
8899
 
8900
8900
  // ---------------------------------------------------------------------------
8901
- // Internals (exposed for demo.html)
8901
+ // Internals (exposed for playground.html)
8902
8902
  // ---------------------------------------------------------------------------
8903
8903
  // The original monolithic eyeling.js exposed many internal functions and flags
8904
- // as globals. demo.html (web worker) still relies on a subset of these.
8904
+ // as globals. playground.html (web worker) still relies on a subset of these.
8905
8905
 
8906
8906
  function getEnforceHttpsEnabled() {
8907
8907
  return deref.getEnforceHttpsEnabled();
@@ -8946,12 +8946,12 @@ module.exports = {
8946
8946
  N3SyntaxError,
8947
8947
  Parser,
8948
8948
  lex,
8949
- // demo internals
8949
+ // playground internals
8950
8950
  forwardChain,
8951
8951
  materializeRdfLists,
8952
8952
  isGroundTriple,
8953
8953
  printExplanation,
8954
- // used by demo worker to stringify derived triples with prefixes
8954
+ // used by playground worker to stringify derived triples with prefixes
8955
8955
  tripleToN3,
8956
8956
  tripleToRdfCompatible,
8957
8957
  // pretty log:query output (when proof comments are disabled)
@@ -8985,7 +8985,7 @@ module.exports = {
8985
8985
  'use strict';
8986
8986
 
8987
8987
  // Entry point for the bundled eyeling.js.
8988
- // We intentionally re-export a small set of internals so demo.html (worker)
8988
+ // We intentionally re-export a small set of internals so playground.html (worker)
8989
8989
  // can call into the reasoner like the original monolithic build did.
8990
8990
 
8991
8991
  const engine = require('./engine');
@@ -8999,7 +8999,7 @@ module.exports = {
8999
8999
  main: engine.main,
9000
9000
  version: engine.version,
9001
9001
 
9002
- // internals for demo.html
9002
+ // internals for playground.html
9003
9003
  lex: engine.lex,
9004
9004
  Parser: engine.Parser,
9005
9005
  forwardChain: engine.forwardChain,
@@ -12283,7 +12283,7 @@ module.exports = {
12283
12283
  * Eyeling Reasoner — printing
12284
12284
  *
12285
12285
  * Pretty-printing / serialization helpers for terms, triples, and formulas.
12286
- * Used by the CLI, demo, and explanations.
12286
+ * Used by the CLI, playground, and explanations.
12287
12287
  */
12288
12288
 
12289
12289
  'use strict';
@@ -13813,7 +13813,7 @@ module.exports = {
13813
13813
  'use strict';
13814
13814
 
13815
13815
  // Small module for debug/trace printing (log:trace) and its run-level state.
13816
- // Kept separate from engine.js so browser demo + CLI can share behavior.
13816
+ // Kept separate from engine.js so browser playground + CLI can share behavior.
13817
13817
 
13818
13818
  let tracePrefixes = null;
13819
13819
 
@@ -13899,9 +13899,9 @@ module.exports = {
13899
13899
  try { if (__outerModule && __outerModule.exports) __outerModule.exports = __api; } catch (ignoredError) {}
13900
13900
  try { if (__outerSelf) __outerSelf.eyeling = __api; } catch (ignoredError) {}
13901
13901
 
13902
- // ---- demo.html compatibility ----
13902
+ // ---- playground.html compatibility ----
13903
13903
  // The original monolithic eyeling.js exposed internal functions/flags as globals.
13904
- // demo.html still uses these via importScripts(...) inside a web worker.
13904
+ // playground.html still uses these via importScripts(...) inside a web worker.
13905
13905
  try {
13906
13906
  if (__outerSelf && __entry) {
13907
13907
  if (typeof __entry.lex === "function") __outerSelf.lex = __entry.lex;
@@ -15,7 +15,7 @@
15
15
  @prefix arc: <https://example.org/arc#> .
16
16
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
17
17
 
18
- :000_md_title log:outputString "# act-alarm-bit-interoperability\n\n" .
18
+ :000_md_title log:outputString "# act-alarm-bit-interoperability\n\n## Source files\n\n- [N3 rules](../act-alarm-bit-interoperability.n3)\n\n" .
19
19
 
20
20
  :case a arc:Case ;
21
21
  arc:question "Can the harbor alarm bit be copied between an optical beacon and a relay register, and what exactly can't be done for a quantum-like token?" .
@@ -160,14 +160,14 @@
160
160
  {
161
161
  :out log:outputString """ACT harbor alarm bit interoperability
162
162
 
163
- Answer
163
+ ## Answer
164
164
  YES for the classical alarm bit.
165
165
  NO for universal cloning and unrestricted fan-out of the quantum-like token.
166
166
 
167
- Reason Why
167
+ ## Reason Why
168
168
  The alarm state is modeled as an abstract bit carried by two unlike classical substrates. Because both the optical beacon and the relay register are information media for the same variable, local permutation and copying in both directions are possible. By contrast, the quantum-like token is treated as a superinformation medium, so universal cloning of all of its states is impossible, and unrestricted classical-style fan-out is blocked as well.
169
169
 
170
- Check
170
+ ## Check
171
171
  C1 OK - the optical beacon is an information medium
172
172
  C2 OK - the relay register is an information medium
173
173
  C3 OK - both substrates encode the same abstract variable: AlarmBit
@@ -22,7 +22,7 @@
22
22
  @prefix arc: <https://example.org/arc#> .
23
23
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
24
24
 
25
- :000_md_title log:outputString "# act-barley-seed-lineage\n\n" .
25
+ :000_md_title log:outputString "# act-barley-seed-lineage\n\n## Source files\n\n- [N3 rules](../act-barley-seed-lineage.n3)\n\n" .
26
26
 
27
27
  :case a arc:Case ;
28
28
  arc:question "Can a barley seed lineage achieve accurate self-reproduction, dormancy, development, and adaptive persistence under no-design laws — and what exactly can't happen when key ingredients are missing?" .
@@ -540,14 +540,14 @@
540
540
  {
541
541
  :out log:outputString """ACT barley seed lineage — can and can't
542
542
 
543
- Answer
543
+ ## Answer
544
544
  YES for the viable barley lineage.
545
545
  NO for the contrast lineages when digital heredity, repair, protected dormancy, or heritable variation are missing.
546
546
 
547
- Reason Why
547
+ ## Reason Why
548
548
  The main lineage can achieve genome copying under no-design laws because its hereditary information is digitally instantiated. It can also pass through protected dormancy, germinate, produce propagules, reproduce accurately, close its life cycle, and adaptively persist under saline selection. But the contrast lineages show the "can't" side: non-digital heredity blocks accurate genome copying under no-design laws, lack of repair blocks accurate self-reproduction, lack of dormancy protection blocks lineage closure through a protected seed phase, and lack of heritable variation blocks adaptive evolution and thus blocks evolvability.
549
549
 
550
- Check
550
+ ## Check
551
551
  C1 OK - no-design laws are assumed
552
552
  C2 OK - the viable genome can be copied under no-design laws
553
553
  C3 OK - the viable seed can achieve protected dormancy
@@ -16,7 +16,7 @@
16
16
  @prefix arc: <https://example.org/arc#> .
17
17
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
18
18
 
19
- :000_md_title log:outputString "# act-docking-abort\n\n" .
19
+ :000_md_title log:outputString "# act-docking-abort\n\n## Source files\n\n- [N3 rules](../act-docking-abort.n3)\n\n" .
20
20
 
21
21
  :case a arc:Case ;
22
22
  arc:question "Can a docking-abort token be propagated, permuted, measured and audited across unlike classical media, and what exactly can't be done with the quantum authenticity seal?" .
@@ -263,14 +263,14 @@
263
263
  {
264
264
  :out log:outputString """ACT docking abort token — constructor-theory coverage case
265
265
 
266
- Answer
266
+ ## Answer
267
267
  YES for the classical abort token.
268
268
  NO for universal cloning and unrestricted audit fan-out of the quantum seal.
269
269
 
270
- Reason Why
270
+ ## Reason Why
271
271
  The docking-abort token is treated as an abstract information variable carried by unlike classical media: lamp state, PLC register, radio frame, and audit display. Because those substrates are information media for the same variable, the token can be permuted locally, cloned locally, copied across media, measured into an output record, and embedded in serial and parallel task networks. By contrast, the quantum authenticity seal is treated as a superinformation medium, so cloning all of its states is impossible and unrestricted audit fan-out is blocked.
272
272
 
273
- Check
273
+ ## Check
274
274
  C1 OK - the abort lamp is a computation medium
275
275
  C2 OK - the abort lamp distinguishes the abort bit
276
276
  C3 OK - permutation of the abort bit is possible on the abort lamp
@@ -16,7 +16,7 @@
16
16
  @prefix arc: <https://example.org/arc#> .
17
17
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
18
18
 
19
- :000_md_title log:outputString "# act-gravity-mediator-witness\n\n" .
19
+ :000_md_title log:outputString "# act-gravity-mediator-witness\n\n## Source files\n\n- [N3 rules](../act-gravity-mediator-witness.n3)\n\n" .
20
20
 
21
21
  :case a arc:Case ;
22
22
  arc:question "If two quantum sensors become entangled only through a gravitational mediator, while locality and interoperability hold, what can be concluded, and what can't a purely classical mediator model do?" .
@@ -211,14 +211,14 @@
211
211
  {
212
212
  :out log:outputString """ACT gravity mediator witness
213
213
 
214
- Answer
214
+ ## Answer
215
215
  YES for the mediator-only witness run.
216
216
  NO for a purely classical mediator model under the same mediator-only conditions.
217
217
 
218
- Reason Why
218
+ ## Reason Why
219
219
  The positive run assumes locality and interoperability, excludes direct coupling between the two quantum systems, and records an entanglement witness after interaction through the mediator alone. Under those constructor-theoretic conditions, the mediator must be non-classical, so the run rules out a purely classical mediator model. The contrast run keeps the same locality, interoperability, and mediator-only structure but assigns the mediator a purely classical model. In that case the mediator-only entanglement witness is blocked, so the run cannot support the same non-classicality conclusion.
220
220
 
221
- Check
221
+ ## Check
222
222
  C1 OK - locality is assumed in the positive run
223
223
  C2 OK - interoperability is assumed in the positive run
224
224
  C3 OK - direct coupling between the two quantum systems is excluded
@@ -17,7 +17,7 @@
17
17
  @prefix arc: <https://example.org/arc#> .
18
18
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
19
19
 
20
- :000_md_title log:outputString "# act-isolation-breach\n\n" .
20
+ :000_md_title log:outputString "# act-isolation-breach\n\n## Source files\n\n- [N3 rules](../act-isolation-breach.n3)\n\n" .
21
21
 
22
22
  :case a arc:Case ;
23
23
  arc:question "Can an isolation-breach token be prepared, permuted, copied, measured, and audited across unlike classical media, and what exactly can't be done with the quantum provenance seal?" .
@@ -327,14 +327,14 @@
327
327
  {
328
328
  :out log:outputString """ACT isolation-breach token — broad constructor-theory coverage case
329
329
 
330
- Answer
330
+ ## Answer
331
331
  YES for the classical isolation-breach token.
332
332
  NO for universal cloning and unrestricted fan-out of the quantum provenance seal.
333
333
 
334
- Reason Why
334
+ ## Reason Why
335
335
  The isolation-breach token is treated as an abstract information variable carried by unlike classical media: a door beacon, a containment PLC, a nurse pager, and an incident board. Because those substrates are information media for the same variable, the token can be prepared, permuted, reversed, cloned locally, copied across media, measured into an output record, and composed into serial and parallel task networks. By contrast, the specimen seal is treated as a superinformation medium, so cloning all of its states is impossible and unrestricted parallel fan-out is blocked.
336
336
 
337
- Check
337
+ ## Check
338
338
  C1 OK - the door beacon is an information medium
339
339
  C2 OK - the containment PLC is an information medium
340
340
  C3 OK - the nurse pager is an information medium
@@ -22,7 +22,7 @@
22
22
  @prefix arc: <https://example.org/arc#> .
23
23
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
24
24
 
25
- :000_md_title log:outputString "# act-photosynthetic-exciton-transfer\n\n" .
25
+ :000_md_title log:outputString "# act-photosynthetic-exciton-transfer\n\n## Source files\n\n- [N3 rules](../act-photosynthetic-exciton-transfer.n3)\n\n" .
26
26
 
27
27
  :case a arc:Case ;
28
28
  arc:question "Can a tuned photosynthetic antenna deliver excitation efficiently to a reaction center by short-lived quantum-assisted transfer, while a detuned contrast complex cannot?" .
@@ -225,14 +225,14 @@
225
225
  {
226
226
  :out log:outputString """ACT photosynthetic exciton transfer
227
227
 
228
- Answer
228
+ ## Answer
229
229
  YES for the tuned antenna complex.
230
230
  NO for the detuned, strongly decohered contrast complex.
231
231
 
232
- Reason Why
232
+ ## Reason Why
233
233
  The tuned complex can sample exciton pathways coherently, use vibronically assisted transfer, and exploit short-lived quantum assistance along a downhill route to the reaction center. That makes efficient exciton transfer and reaction-center delivery possible in this case. The detuned contrast complex lacks the same alignment: coherent pathway sampling is blocked, vibronic assistance is unavailable, and the energy landscape is mismatched, so efficient reaction-center delivery is not possible in the same operating picture.
234
234
 
235
- Check
235
+ ## Check
236
236
  C1 OK - the tuned complex can sample exciton pathways coherently
237
237
  C2 OK - the tuned complex can use vibronically assisted transfer
238
238
  C3 OK - short-lived quantum assistance is enough in the tuned downhill regime
@@ -19,7 +19,7 @@
19
19
  @prefix arc: <https://example.org/arc#> .
20
20
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
21
21
 
22
- :000_md_title log:outputString "# act-sensor-memory-reset\n\n" .
22
+ :000_md_title log:outputString "# act-sensor-memory-reset\n\n## Source files\n\n- [N3 rules](../act-sensor-memory-reset.n3)\n\n" .
23
23
 
24
24
  :case a arc:Case ;
25
25
  arc:question "Can a radiation sensor's alarm memory be reliably reset with a battery pack, and can the same reset be done using only an ambient heat bath?" .
@@ -170,14 +170,14 @@
170
170
  {
171
171
  :out log:outputString """ACT sensor memory reset
172
172
 
173
- Answer
173
+ ## Answer
174
174
  YES with the battery pack.
175
175
  NO with the ambient heat bath alone.
176
176
 
177
- Reason Why
177
+ ## Reason Why
178
178
  The alarm latch is a one-bit memory that must be reset to its standard clear state before the radiation sensor can be reused. In this case, the charged battery pack is treated as a work medium, so it can drive a controlled reset and prepare the latch in its reusable standard state. The ambient bath is treated as a heat medium, so by itself it cannot perform the same reliable directed reset. The example also shows an irreversibility pattern: useful work can be degraded into dissipated heat during reset, but the ambient heat bath alone cannot reconstruct the charged work resource.
179
179
 
180
- Check
180
+ ## Check
181
181
  C1 OK - the battery pack can drive a controlled reset
182
182
  C2 OK - the alarm latch can be reliably reset from work
183
183
  C3 OK - the latch can be prepared in its standard reusable state
@@ -18,7 +18,7 @@
18
18
  @prefix arc: <https://example.org/arc#> .
19
19
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
20
20
 
21
- :000_md_title log:outputString "# act-tunnel-junction-wake-switch\n\n" .
21
+ :000_md_title log:outputString "# act-tunnel-junction-wake-switch\n\n## Source files\n\n- [N3 rules](../act-tunnel-junction-wake-switch.n3)\n\n" .
22
22
 
23
23
  :case a arc:Case ;
24
24
  arc:question "Can a tunnel-junction wake switch trigger a low-bias leak alarm in a regime where a conventional PN junction cannot?" .
@@ -204,14 +204,14 @@
204
204
  {
205
205
  :out log:outputString """ACT tunnel-junction wake switch
206
206
 
207
- Answer
207
+ ## Answer
208
208
  YES for the tunnel junction.
209
209
  NO for the conventional low-bias PN junction in the same wake-switch regime.
210
210
 
211
- Reason Why
211
+ ## Reason Why
212
212
  The tunnel junction is modeled as a heavily doped narrow PN junction with overlapping states, so quantum barrier transfer is possible. That makes sub-threshold current possible in the low-forward-bias regime, which in turn makes ultra-low-bias switching possible for the wake circuit. Because the device is also scanned through a peak-to-valley window, a negative differential response is possible as well. By contrast, the conventional junction lacks the structural conditions for the same transfer mode, so it cannot deliver the same low-bias switching task in this case.
213
213
 
214
- Check
214
+ ## Check
215
215
  C1 OK - the tunnel junction can support quantum barrier transfer
216
216
  C2 OK - the tunnel junction is classified as tunneling-dominant
217
217
  C3 OK - the tunnel junction can deliver sub-threshold current
@@ -19,7 +19,7 @@
19
19
  @prefix arc: <https://example.org/arc#> .
20
20
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
21
21
 
22
- :000_md_title log:outputString "# act-yeast-self-reproduction\n\n" .
22
+ :000_md_title log:outputString "# act-yeast-self-reproduction\n\n## Source files\n\n- [N3 rules](../act-yeast-self-reproduction.n3)\n\n" .
23
23
 
24
24
  :case a arc:Case ;
25
25
  arc:question "Can a yeast starter culture self-reproduce accurately under no-design laws, and what exactly can't happen for a non-digital contrast lineage?" .
@@ -225,14 +225,14 @@
225
225
  {
226
226
  :out log:outputString """ACT yeast self-reproduction
227
227
 
228
- Answer
228
+ ## Answer
229
229
  YES for the viable starter culture.
230
230
  NO for accurate self-reproduction in the non-digital contrast lineage.
231
231
 
232
- Reason Why
232
+ ## Reason Why
233
233
  The starter genome is treated as a replicator storing digital hereditary information, while the cell machinery is treated as the vehicle that enables metabolism and copying support. Under no-design laws, digital information makes accurate genome copying possible. Because the replicator is accurate and paired with a vehicle, the whole starter cell qualifies as a self-reproducer. With a variation source and a selection environment, natural selection also becomes possible. By contrast, the non-digital lineage cannot support accurate genome copying under the same no-design-laws assumption, so it cannot sustain the same accurate self-reproduction or natural-selection story.
234
234
 
235
- Check
235
+ ## Check
236
236
  C1 OK - no-design laws are assumed
237
237
  C2 OK - digital information is physically instantiated for the viable lineage
238
238
  C3 OK - a viable replicator is present
@@ -8,5 +8,5 @@
8
8
 
9
9
 
10
10
  # Markdown rendering via log:outputString.
11
- :__md_output :text "# annotation\n" .
11
+ :__md_output :text "# annotation\n\n## Source files\n\n- [N3 rules](../annotation.n3)\n- [Input TriG](../input/annotation.trig)\n\nRDF 1.2 annotation evidence is loaded from the TriG sidecar and represented as ordinary facts.\n\n## Answer\nYES — the annotated statement says `:a :name \"Alice\"` and gives that statement the identifier `:t`.\n\n## Reason Why\nThe input evidence contains the statement that Alice has the name \"Alice\" and records metadata for the named statement `:t`. In RDF compatibility mode, the named graph form is represented with `log:nameOf`, so `:t` names the statement while `:statedBy` and `:recorded` keep its provenance metadata.\n\n## Check\nC1 OK - the statement `:a :name \"Alice\"` is present\nC2 OK - `:t` names the annotated statement\nC3 OK - the statement is attributed to `:bob`\nC4 OK - the statement is recorded as `2021-07-07`\nC5 OK - the RDF/TriG input sidecar is linked as source evidence\n" .
12
12
  { :__md_output :text ?text } log:query { :__md_output log:outputString ?text } .
@@ -350,19 +350,19 @@
350
350
  # Emit one complete output block per scenario to avoid ordering issues between
351
351
  # separately derived log:outputString facts.
352
352
 
353
- :out_000_intro log:outputString "# auroracare\n\nAuroraCare — Purpose-based Medical Data Exchange\n\n" .
353
+ :out_000_intro log:outputString "# auroracare\n\n## Source files\n\n- [N3 rules](../auroracare.n3)\n\nAuroraCare — Purpose-based Medical Data Exchange\n\n" .
354
354
 
355
355
  { :scenario_A :decision "PERMIT" . } => {
356
356
  :out_010_A log:outputString """## A – Primary care visit
357
357
  Clinician in the patient's care team accessing the patient summary for primary care management.
358
358
 
359
- Answer
359
+ ## Answer
360
360
  PERMIT
361
361
 
362
- Reason Why
362
+ ## Reason Why
363
363
  Permitted: clinician in the patient's care team, and the primary-care policy matched.
364
364
 
365
- Check
365
+ ## Check
366
366
  C1 SKIPPED - not a prohibited purpose
367
367
  C2 OK - clinician
368
368
  C3 OK - care-team linked
@@ -381,13 +381,13 @@ C10 INFO - matched policy: urn:policy:primary-care-001
381
381
  :out_020_B log:outputString """## B – Quality improvement (in scope)
382
382
  QI analyst using lab results + summary in a secure environment.
383
383
 
384
- Answer
384
+ ## Answer
385
385
  PERMIT
386
386
 
387
- Reason Why
387
+ ## Reason Why
388
388
  Permitted: ODRL/DPV policy matched for secondary use.
389
389
 
390
- Check
390
+ ## Check
391
391
  C1 SKIPPED - not a prohibited purpose
392
392
  C2 SKIPPED
393
393
  C3 SKIPPED
@@ -406,13 +406,13 @@ C10 INFO - matched policy: urn:policy:qi-2025-aurora
406
406
  :out_030_C log:outputString """## C – Quality improvement (out of scope)
407
407
  QI analyst with only lab results; policy expects labs + summary.
408
408
 
409
- Answer
409
+ ## Answer
410
410
  DENY
411
411
 
412
- Reason Why
412
+ ## Reason Why
413
413
  Denied: no policy matched (purpose, environment, TOMs, or categories out of scope).
414
414
 
415
- Check
415
+ ## Check
416
416
  C1 SKIPPED - not a prohibited purpose
417
417
  C2 SKIPPED
418
418
  C3 SKIPPED
@@ -431,13 +431,13 @@ C10 SKIPPED - no matched policy
431
431
  :out_040_D log:outputString """## D – Insurance management
432
432
  Insurance bot attempting to use health data for insurance management (prohibited purpose).
433
433
 
434
- Answer
434
+ ## Answer
435
435
  DENY
436
436
 
437
- Reason Why
437
+ ## Reason Why
438
438
  Denied: the requested purpose (insurance management) is prohibited by policy.
439
439
 
440
- Check
440
+ ## Check
441
441
  C1 OK - denied prohibited purpose
442
442
  C2 SKIPPED
443
443
  C3 SKIPPED
@@ -456,13 +456,13 @@ C10 SKIPPED - no matched policy
456
456
  :out_050_E log:outputString """## E – GP checks labs
457
457
  GP for the same patient checking lab results via the API gateway.
458
458
 
459
- Answer
459
+ ## Answer
460
460
  PERMIT
461
461
 
462
- Reason Why
462
+ ## Reason Why
463
463
  Permitted: clinician in the patient's care team, and the primary-care policy matched.
464
464
 
465
- Check
465
+ ## Check
466
466
  C1 SKIPPED - not a prohibited purpose
467
467
  C2 OK - clinician
468
468
  C3 OK - care-team linked
@@ -481,13 +481,13 @@ C10 INFO - matched policy: urn:policy:primary-care-001
481
481
  :out_060_F log:outputString """## F – Research on anonymised dataset
482
482
  Researcher using anonymised labs + summary in a secure environment, with opt-in.
483
483
 
484
- Answer
484
+ ## Answer
485
485
  PERMIT
486
486
 
487
- Reason Why
487
+ ## Reason Why
488
488
  Permitted: subject opted in and an ODRL/DPV policy matched (anonymised dataset in secure environment).
489
489
 
490
- Check
490
+ ## Check
491
491
  C1 SKIPPED - not a prohibited purpose
492
492
  C2 SKIPPED
493
493
  C3 SKIPPED
@@ -506,13 +506,13 @@ C10 INFO - matched policy: urn:policy:research-aurora-diabetes
506
506
  :out_070_G log:outputString """## G – AI training (opt-out)
507
507
  Data user wants to train AI, but the subject opted out of AI training.
508
508
 
509
- Answer
509
+ ## Answer
510
510
  DENY
511
511
 
512
- Reason Why
512
+ ## Reason Why
513
513
  Denied: you opted out of your data being used to train AI systems.
514
514
 
515
- Check
515
+ ## Check
516
516
  C1 SKIPPED - not a prohibited purpose
517
517
  C2 SKIPPED
518
518
  C3 SKIPPED
@@ -11,5 +11,5 @@
11
11
 
12
12
 
13
13
  # Markdown rendering via log:outputString.
14
- :__md_output :text "# backward-recursion\n\n@prefix : <urn:example#> .\n\n:a :reaches :b .\n:a :reaches :c .\n" .
14
+ :__md_output :text "# backward-recursion\n\n## Source files\n\n- [N3 rules](../backward-recursion.n3)\n- [Input TriG](../input/backward-recursion.trig)\n\n@prefix : <urn:example#> .\n\n:a :reaches :b .\n:a :reaches :c .\n" .
15
15
  { :__md_output :text ?text } log:query { :__md_output log:outputString ?text } .
@@ -21,7 +21,7 @@
21
21
  @prefix arc: <https://example.org/arc#> .
22
22
  @prefix log: <http://www.w3.org/2000/10/swap/log#> .
23
23
 
24
- :000_md_title log:outputString "# barley-seed-becoming\n\n" .
24
+ :000_md_title log:outputString "# barley-seed-becoming\n\n## Source files\n\n- [N3 rules](../barley-seed-becoming.n3)\n\n" .
25
25
 
26
26
  :case a arc:Case ;
27
27
  arc:question "Can a barley seed lineage become a self-renewing and adaptively persistent cycle under no-design laws — and what blocks that becoming when digital heredity, repair, protected dormancy, or variation are missing?" .
@@ -472,14 +472,14 @@
472
472
  {
473
473
  :out log:outputString """Barley seed lineage — becoming
474
474
 
475
- Answer
475
+ ## Answer
476
476
  YES for the viable barley lineage.
477
477
  NO for the contrast lineages when digital heredity, repair, protected dormancy, or heritable variation are missing.
478
478
 
479
- Reason Why
479
+ ## Reason Why
480
480
  The main lineage can be read as a becoming: a protected dormant seed can germinate, an adult plant can become a next seed stage, and the lineage can therefore become a self-renewing cycle. Because its hereditary information is digitally instantiated and repair is available, it can also become an accurately reproduced next generation under no-design laws. And because heritable variation is present under a matching selection environment, it can become an adaptively persistent lineage. The contrast lineages mark blocked becomings: non-digital heredity blocks accurate copying, lack of repair blocks reliable renewal, lack of dormancy protection blocks closure through the seed phase, and lack of heritable variation blocks adaptive becoming.
481
481
 
482
- Check
482
+ ## Check
483
483
  B1 OK - no-design laws are assumed
484
484
  B2 OK - the viable genome can become accurately copied
485
485
  B3 OK - the viable seed can become a protected dormant phase
package/examples/bmi.n3 CHANGED
@@ -15,7 +15,7 @@
15
15
  @prefix math: <http://www.w3.org/2000/10/swap/math#> .
16
16
  @prefix string: <http://www.w3.org/2000/10/swap/string#> .
17
17
 
18
- :000_md_title log:outputString "# bmi\n\n" .
18
+ :000_md_title log:outputString "# bmi\n\n## Source files\n\n- [N3 rules](../bmi.n3)\n\n" .
19
19
 
20
20
  # --------------
21
21
  # Editable input
@@ -198,15 +198,15 @@
198
198
  :Check :c9 ?C9.
199
199
  (
200
200
  "BMI — ARC-style Body Mass Index example\n\n"
201
- "Answer\n"
201
+ "## Answer\n"
202
202
  "BMI = " ?BmiRounded "\n"
203
203
  "Category = " ?Category "\n"
204
204
  "At height " ?CmRounded " cm, a healthy-weight range is about " ?HealthyMinRounded "–" ?HealthyMaxRounded " kg (BMI 18.5–24.9).\n\n"
205
- "Reason Why\n"
205
+ "## Reason Why\n"
206
206
  "BMI is defined as weight in kilograms divided by height in meters squared. "
207
207
  "This program first normalizes the input to SI units, computes BMI, and then applies WHO adult categories as half-open intervals. "
208
208
  "The healthy-weight band is the weight range at the same height that corresponds to BMI 18.5 through 24.9.\n\n"
209
- "Check\n"
209
+ "## Check\n"
210
210
  "C1 " ?C1 "\n"
211
211
  "C2 " ?C2 "\n"
212
212
  "C3 " ?C3 "\n"
@@ -69,5 +69,5 @@
69
69
 
70
70
 
71
71
  # Markdown rendering via log:outputString.
72
- :__md_output :text "# builtin-coverage\n" .
72
+ :__md_output :text "# builtin-coverage\n\n## Source files\n\n- [N3 rules](../builtin-coverage.n3)\n- [Input TriG](../input/builtin-coverage.trig)\n\n" .
73
73
  { :__md_output :text ?text } log:query { :__md_output log:outputString ?text } .
@@ -419,7 +419,7 @@
419
419
  # ARC rendering through log:outputString
420
420
  # --------------------------------------
421
421
 
422
- :out01 log:outputString "# calidor\n\n## Answer\n" .
422
+ :out01 log:outputString "# calidor\n\n## Source files\n\n- [N3 rules](../calidor.n3)\n\n## Answer\n" .
423
423
 
424
424
  {
425
425
  :case :recommendedPackage ?pkg .
@@ -4,5 +4,5 @@ _:b2 :p :q .
4
4
 
5
5
 
6
6
  # Markdown rendering via log:outputString.
7
- :__md_output :text "# collection\n" .
7
+ :__md_output :text "# collection\n\n## Source files\n\n- [N3 rules](../collection.n3)\n- [Input TriG](../input/collection.trig)\n\n" .
8
8
  { :__md_output :text ?text } log:query { :__md_output log:outputString ?text } .
@@ -17,7 +17,7 @@
17
17
  @prefix math: <http://www.w3.org/2000/10/swap/math#> .
18
18
  @prefix string: <http://www.w3.org/2000/10/swap/string#> .
19
19
 
20
- :000_md_title log:outputString "# complex-matrix-stability\n\n" .
20
+ :000_md_title log:outputString "# complex-matrix-stability\n\n## Source files\n\n- [N3 rules](../complex-matrix-stability.n3)\n\n" .
21
21
 
22
22
  # --------------
23
23
  # Editable input
@@ -256,7 +256,7 @@
256
256
  "Complex Matrix Stability — ARC-style
257
257
 
258
258
  "
259
- "Answer
259
+ "## Answer
260
260
  "
261
261
  "We compare three diagonal 2x2 complex matrices for discrete-time stability: "
262
262
  "A_unstable = " ?MuS ", A_stable = " ?MsS ", and A_damped = " ?MdS ". "
@@ -264,7 +264,7 @@
264
264
  "So A_unstable is unstable, A_stable is marginally stable, and A_damped is damped.
265
265
 
266
266
  "
267
- "Reason Why
267
+ "## Reason Why
268
268
  "
269
269
  "For a discrete-time linear system x_{k+1} = A x_k, the eigenvalues of A govern the behaviour of the modes. "
270
270
  "Because these matrices are diagonal, the eigenvalues are just the diagonal entries. "
@@ -273,7 +273,7 @@
273
273
  "Here the diagonal entries give radii 2, 1, and 0 respectively, which explains the three classifications.
274
274
 
275
275
  "
276
- "Check
276
+ "## Check
277
277
  "
278
278
  "C1 " ?C1 "
279
279
  "
@@ -46,6 +46,6 @@
46
46
  }
47
47
  =>
48
48
  {
49
- :report log:outputString "# Context association\n\n## Entailment\nThe RDF dataset associates Bob's data graph with a Data Integrity proof graph and a second metadata proof graph.\n\n## Explanation\nThe input TriG names three graph contexts. The data graph states Bob's name. The signature graph links to that data graph with a proof and records an ecdsa-rdfc-2019 Data Integrity proof from the university issuer. The metadata graph then signs the signature graph itself, giving a chained context association.".
49
+ :report log:outputString "# Context association\n\n## Source files\n\n- [N3 rules](../context-association.n3)\n- [Input TriG](../input/context-association.trig)\n\n## Entailment\nThe RDF dataset associates Bob's data graph with a Data Integrity proof graph and a second metadata proof graph.\n\n## Explanation\nThe input TriG names three graph contexts. The data graph states Bob's name. The signature graph links to that data graph with a proof and records an ecdsa-rdfc-2019 Data Integrity proof from the university issuer. The metadata graph then signs the signature graph itself, giving a chained context association.".
50
50
  }.
51
51