eyeling 1.24.7 → 1.24.9

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 (184) hide show
  1. package/HANDBOOK.md +35 -35
  2. package/dist/browser/eyeling.browser.js +14 -1
  3. package/examples/act-alarm-bit-interoperability.n3 +5 -3
  4. package/examples/act-barley-seed-lineage.n3 +5 -3
  5. package/examples/act-docking-abort.n3 +5 -3
  6. package/examples/act-gravity-mediator-witness.n3 +5 -3
  7. package/examples/act-isolation-breach.n3 +5 -3
  8. package/examples/act-photosynthetic-exciton-transfer.n3 +5 -3
  9. package/examples/act-sensor-memory-reset.n3 +5 -3
  10. package/examples/act-tunnel-junction-wake-switch.n3 +5 -3
  11. package/examples/act-yeast-self-reproduction.n3 +5 -3
  12. package/examples/annotation.n3 +5 -0
  13. package/examples/auroracare.n3 +29 -29
  14. package/examples/backward-recursion.n3 +5 -0
  15. package/examples/barley-seed-becoming.n3 +5 -3
  16. package/examples/bmi.n3 +5 -3
  17. package/examples/builtin-coverage.n3 +5 -0
  18. package/examples/calidor.n3 +3 -3
  19. package/examples/collection.n3 +5 -0
  20. package/examples/complex-matrix-stability.n3 +5 -3
  21. package/examples/context-association.n3 +1 -9
  22. package/examples/control-system.n3 +5 -3
  23. package/examples/deep-taxonomy-10.n3 +5 -3
  24. package/examples/deep-taxonomy-100.n3 +5 -3
  25. package/examples/deep-taxonomy-1000.n3 +5 -3
  26. package/examples/deep-taxonomy-10000.n3 +5 -3
  27. package/examples/deep-taxonomy-100000.n3 +3 -1
  28. package/examples/delfour.n3 +3 -3
  29. package/examples/digital-product-passport.n3 +2 -0
  30. package/examples/dijkstra-risk-path.n3 +1 -2
  31. package/examples/easter.n3 +6 -4
  32. package/examples/eco-route-insight.n3 +1 -2
  33. package/examples/flandor.n3 +3 -3
  34. package/examples/french-cities.n3 +5 -3
  35. package/examples/fundamental-theorem-arithmetic.n3 +5 -3
  36. package/examples/genetic-algorithm-knapsack.n3 +1 -1
  37. package/examples/genetic-algorithm.n3 +1 -1
  38. package/examples/genetic-knapsack-selection.n3 +1 -2
  39. package/examples/gps.n3 +5 -3
  40. package/examples/harborsmr.n3 +5 -3
  41. package/examples/input/ontology-question-generation.trig +79 -0
  42. package/examples/input/rdf-message-flow.trig +10 -10
  43. package/examples/input/rdf-messages.trig +6 -6
  44. package/examples/interop-demo.n3 +3 -1
  45. package/examples/matrix-mechanics.n3 +3 -3
  46. package/examples/medior.n3 +3 -3
  47. package/examples/n3-speaks-for-itself.n3 +5 -0
  48. package/examples/odrl-dpv-ehds-risk-ranked.n3 +1 -1
  49. package/examples/odrl-dpv-healthcare-risk-ranked.n3 +1 -1
  50. package/examples/odrl-dpv-risk-ranked.n3 +1 -1
  51. package/examples/odrl-risk-mitigation.n3 +1 -1
  52. package/examples/odrl-risk.n3 +1 -1
  53. package/examples/ontology-question-generation.n3 +409 -0
  54. package/examples/output/{act-alarm-bit-interoperability.txt → act-alarm-bit-interoperability.md} +23 -17
  55. package/examples/output/act-barley-seed-lineage.md +31 -0
  56. package/examples/output/{act-docking-abort.txt → act-docking-abort.md} +25 -19
  57. package/examples/output/{act-gravity-mediator-witness.txt → act-gravity-mediator-witness.md} +27 -21
  58. package/examples/output/{act-isolation-breach.txt → act-isolation-breach.md} +30 -24
  59. package/examples/output/{act-photosynthetic-exciton-transfer.txt → act-photosynthetic-exciton-transfer.md} +23 -17
  60. package/examples/output/{act-sensor-memory-reset.txt → act-sensor-memory-reset.md} +23 -17
  61. package/examples/output/{act-tunnel-junction-wake-switch.txt → act-tunnel-junction-wake-switch.md} +24 -18
  62. package/examples/output/{act-yeast-self-reproduction.txt → act-yeast-self-reproduction.md} +26 -20
  63. package/examples/output/annotation.md +7 -0
  64. package/examples/output/auroracare.md +154 -0
  65. package/examples/output/backward-recursion.md +11 -0
  66. package/examples/output/barley-seed-becoming.md +31 -0
  67. package/examples/output/bmi.md +26 -0
  68. package/examples/output/builtin-coverage.md +7 -0
  69. package/examples/output/calidor.md +35 -0
  70. package/examples/output/collection.md +7 -0
  71. package/examples/output/{complex-matrix-stability.txt → complex-matrix-stability.md} +17 -11
  72. package/examples/output/context-association.md +12 -0
  73. package/examples/output/{control-system.txt → control-system.md} +23 -17
  74. package/examples/output/deep-taxonomy-10.md +21 -0
  75. package/examples/output/deep-taxonomy-100.md +21 -0
  76. package/examples/output/{deep-taxonomy-1000.txt → deep-taxonomy-1000.md} +18 -12
  77. package/examples/output/{deep-taxonomy-10000.txt → deep-taxonomy-10000.md} +18 -12
  78. package/examples/output/{deep-taxonomy-100000.txt → deep-taxonomy-100000.md} +18 -12
  79. package/examples/output/delfour.md +36 -0
  80. package/examples/output/digital-product-passport.md +7 -0
  81. package/examples/output/dijkstra-risk-path.md +16 -0
  82. package/examples/output/{easter.txt → easter.md} +156 -150
  83. package/examples/output/eco-route-insight.md +25 -0
  84. package/examples/output/flandor.md +37 -0
  85. package/examples/output/{french-cities.txt → french-cities.md} +17 -11
  86. package/examples/output/{fundamental-theorem-arithmetic.txt → fundamental-theorem-arithmetic.md} +18 -12
  87. package/examples/output/genetic-algorithm-knapsack.md +7 -0
  88. package/examples/output/genetic-algorithm.md +7 -0
  89. package/examples/output/genetic-knapsack-selection.md +18 -0
  90. package/examples/output/{gps.txt → gps.md} +18 -12
  91. package/examples/output/harborsmr.md +26 -0
  92. package/examples/output/interop-demo.md +7 -0
  93. package/examples/output/matrix-mechanics.md +20 -0
  94. package/examples/output/medior.md +38 -0
  95. package/examples/output/n3-speaks-for-itself.md +58 -0
  96. package/examples/output/{odrl-dpv-ehds-risk-ranked.txt → odrl-dpv-ehds-risk-ranked.md} +20 -15
  97. package/examples/output/{odrl-dpv-healthcare-risk-ranked.txt → odrl-dpv-healthcare-risk-ranked.md} +17 -12
  98. package/examples/output/{odrl-dpv-risk-ranked.txt → odrl-dpv-risk-ranked.md} +21 -16
  99. package/examples/output/{odrl-risk-mitigation.txt → odrl-risk-mitigation.md} +21 -16
  100. package/examples/output/{odrl-risk.txt → odrl-risk.md} +10 -5
  101. package/examples/output/ontology-question-generation.md +31 -0
  102. package/examples/output/parcellocker.md +26 -0
  103. package/examples/output/pn-junction-tunneling.md +29 -0
  104. package/examples/output/queens.md +27 -0
  105. package/examples/output/rc-discharge-envelope.md +16 -0
  106. package/examples/output/rdf-dataset.md +12 -0
  107. package/examples/output/rdf-message-flow.md +12 -0
  108. package/examples/output/rdf-messages.md +12 -0
  109. package/examples/output/{resto.txt → resto.md} +23 -17
  110. package/examples/output/school-placement-audit.md +16 -0
  111. package/examples/output/smoke-arithmetic.md +12 -0
  112. package/examples/output/sqrt2-cauchy.md +19 -0
  113. package/examples/output/sqrt2-dedekind.md +37 -0
  114. package/examples/output/sudoku.md +49 -0
  115. package/examples/output/transcendental-numbers-stretched.md +266 -0
  116. package/examples/output/transistor-switch.md +30 -0
  117. package/examples/output/triple-terms.md +12 -0
  118. package/examples/output/{tunnel-junction-wake-switch-becoming.txt → tunnel-junction-wake-switch-becoming.md} +24 -18
  119. package/examples/output/{wind-turbine.txt → wind-turbine.md} +21 -15
  120. package/examples/parcellocker.n3 +3 -1
  121. package/examples/pn-junction-tunneling.n3 +3 -3
  122. package/examples/queens.n3 +1 -0
  123. package/examples/rc-discharge-envelope.n3 +1 -1
  124. package/examples/rdf-dataset.n3 +5 -0
  125. package/examples/rdf-message-flow.n3 +1 -2
  126. package/examples/rdf-messages.n3 +1 -2
  127. package/examples/resto.n3 +5 -3
  128. package/examples/school-placement-audit.n3 +1 -2
  129. package/examples/smoke-arithmetic.n3 +1 -1
  130. package/examples/sqrt2-cauchy.n3 +2 -0
  131. package/examples/sqrt2-dedekind.n3 +2 -0
  132. package/examples/sudoku.n3 +14 -14
  133. package/examples/transcendental-numbers-stretched.n3 +5 -0
  134. package/examples/transistor-switch.n3 +3 -3
  135. package/examples/triple-terms.n3 +5 -0
  136. package/examples/tunnel-junction-wake-switch-becoming.n3 +5 -3
  137. package/examples/wind-turbine.n3 +5 -3
  138. package/eyeling.js +14 -1
  139. package/lib/explain.js +14 -1
  140. package/package.json +1 -1
  141. package/test/examples.test.js +44 -13
  142. package/test/package.test.js +43 -7
  143. package/examples/output/act-barley-seed-lineage.txt +0 -25
  144. package/examples/output/annotation.n3 +0 -0
  145. package/examples/output/auroracare.txt +0 -149
  146. package/examples/output/backward-recursion.n3 +0 -4
  147. package/examples/output/barley-seed-becoming.txt +0 -25
  148. package/examples/output/bmi.txt +0 -20
  149. package/examples/output/builtin-coverage.n3 +0 -0
  150. package/examples/output/calidor.txt +0 -29
  151. package/examples/output/collection.n3 +0 -0
  152. package/examples/output/context-association.n3 +0 -9
  153. package/examples/output/deep-taxonomy-10.txt +0 -15
  154. package/examples/output/deep-taxonomy-100.txt +0 -15
  155. package/examples/output/delfour.txt +0 -30
  156. package/examples/output/digital-product-passport.txt +0 -1
  157. package/examples/output/dijkstra-risk-path.n3 +0 -3
  158. package/examples/output/eco-route-insight.n3 +0 -3
  159. package/examples/output/flandor.txt +0 -31
  160. package/examples/output/genetic-algorithm-knapsack.txt +0 -1
  161. package/examples/output/genetic-algorithm.txt +0 -1
  162. package/examples/output/genetic-knapsack-selection.n3 +0 -3
  163. package/examples/output/harborsmr.txt +0 -20
  164. package/examples/output/interop-demo.txt +0 -1
  165. package/examples/output/matrix-mechanics.txt +0 -14
  166. package/examples/output/medior.txt +0 -32
  167. package/examples/output/n3-speaks-for-itself.txt +0 -52
  168. package/examples/output/parcellocker.txt +0 -20
  169. package/examples/output/pn-junction-tunneling.txt +0 -23
  170. package/examples/output/queens.txt +0 -21
  171. package/examples/output/rc-discharge-envelope.n3 +0 -9
  172. package/examples/output/rc-discharge-envelope.txt +0 -9
  173. package/examples/output/rdf-dataset.n3 +0 -5
  174. package/examples/output/rdf-message-flow.n3 +0 -7
  175. package/examples/output/rdf-messages.n3 +0 -7
  176. package/examples/output/school-placement-audit.n3 +0 -3
  177. package/examples/output/smoke-arithmetic.n3 +0 -5
  178. package/examples/output/smoke-arithmetic.txt +0 -5
  179. package/examples/output/sqrt2-cauchy.txt +0 -13
  180. package/examples/output/sqrt2-dedekind.txt +0 -31
  181. package/examples/output/sudoku.txt +0 -43
  182. package/examples/output/transcendental-numbers-stretched.txt +0 -260
  183. package/examples/output/transistor-switch.txt +0 -24
  184. package/examples/output/triple-terms.n3 +0 -5
@@ -0,0 +1,31 @@
1
+ # barley-seed-becoming
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../barley-seed-becoming.n3)
6
+
7
+ Barley seed lineage — becoming
8
+
9
+ ## Answer
10
+ YES for the viable barley lineage.
11
+ NO for the contrast lineages when digital heredity, repair, protected dormancy, or heritable variation are missing.
12
+
13
+ ## Reason Why
14
+ 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.
15
+
16
+ ## Check
17
+ B1 OK - no-design laws are assumed
18
+ B2 OK - the viable genome can become accurately copied
19
+ B3 OK - the viable seed can become a protected dormant phase
20
+ B4 OK - the viable seed can become a germinating stage
21
+ B5 OK - the viable adult can become a next dormant seed stage
22
+ B6 OK - the viable lineage can become an accurately reproduced next generation
23
+ B7 OK - the viable lineage can become a closed life cycle
24
+ B8 OK - the viable lineage can become a novel variant lineage
25
+ B9 OK - the viable lineage can become adaptively persistent
26
+ B10 OK - the viable lineage is an evolvable becoming
27
+ B11 OK - the non-digital lineage cannot become an accurately reproduced next generation
28
+ B12 OK - the repair-deficient lineage cannot become an accurately reproduced next generation
29
+ B13 OK - the coatless lineage cannot become a closed life cycle
30
+ B14 OK - the static lineage cannot become an adaptive lineage
31
+ B15 OK - the static lineage cannot become an evolvable becoming
@@ -0,0 +1,26 @@
1
+ # bmi
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../bmi.n3)
6
+
7
+ BMI — ARC-style Body Mass Index example
8
+
9
+ ## Answer
10
+ BMI = 22.72
11
+ Category = Normal
12
+ At height 178 cm, a healthy-weight range is about 58.6–78.9 kg (BMI 18.5–24.9).
13
+
14
+ ## Reason Why
15
+ BMI is defined as weight in kilograms divided by height in meters squared. This program first normalizes the input to SI units, computes BMI, and then applies WHO adult categories as half-open intervals. The healthy-weight band is the weight range at the same height that corresponds to BMI 18.5 through 24.9.
16
+
17
+ ## Check
18
+ C1 OK - the input was normalized into positive SI values.
19
+ C2 OK - height squared was reconstructed from the normalized height.
20
+ C3 OK - the BMI value matches the BMI = kg / m² formula.
21
+ C4 OK - a BMI of 18.49 stays below the normal-weight threshold.
22
+ C5 OK - the lower boundary is half-open: BMI 18.5 is classified as Normal.
23
+ C6 OK - BMI 25.0 starts the Overweight category.
24
+ C7 OK - BMI 30.0 starts the Obesity I category.
25
+ C8 OK - classification behavior is monotonic across representative BMI values.
26
+ C9 OK - the healthy-weight band was reconstructed from BMI 18.5 to 24.9 at the same height.
@@ -0,0 +1,7 @@
1
+ # builtin-coverage
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../builtin-coverage.n3)
6
+ - [Input TriG](../input/builtin-coverage.trig)
7
+
@@ -0,0 +1,35 @@
1
+ # calidor
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../calidor.n3)
6
+
7
+ ## Answer
8
+ The city is allowed to use a narrow heatwave-response insight and recommends Calidor Priority Cooling Bundle for this household.
9
+ case : calidor
10
+ decision : Allowed
11
+ municipality : Calidor
12
+ recommended package : Calidor Priority Cooling Bundle
13
+
14
+ ## Reason Why
15
+ The gateway desensitizes local heat, vulnerability, and prepaid-energy stress into an expiring municipal support insight, and the city consumes that envelope only for heatwave response.
16
+ metric : active_need_count
17
+ threshold : 3.0
18
+ scope : household-gateway @ heat-alert-window
19
+ required capabilities: bill_credit, cooling_kit, transport, welfare_check
20
+ signature alg : HMAC-SHA256
21
+ expires at : 2026-07-18T21:00:00+00:00
22
+ reason.txt : The gateway keeps raw indoor heat, vulnerability, and prepaid-energy data local, derives a priority-support signal, and shares only a scoped heatwave-response envelope with expiry.
23
+ dispatches logged : 1
24
+
25
+ ## Check
26
+ signature verifies : yes
27
+ payload hash matches : yes
28
+ minimization strips sensitive terms: yes
29
+ scope complete : yes
30
+ authorization allowed : yes
31
+ heat-alert active : yes
32
+ unsafe indoor heat : yes
33
+ recommended package eligible : yes
34
+ duty timing consistent : yes
35
+ tenant screening prohibited : yes
@@ -0,0 +1,7 @@
1
+ # collection
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../collection.n3)
6
+ - [Input TriG](../input/collection.trig)
7
+
@@ -1,14 +1,20 @@
1
- Complex Matrix Stability — ARC-style
1
+ # complex-matrix-stability
2
2
 
3
- Answer
4
- We compare three diagonal 2x2 complex matrices for discrete-time stability: A_unstable = [[(1,1),(0,0)],[(0,0),(2,0)]], A_stable = [[(1,0),(0,0)],[(0,0),(-1,0)]], and A_damped = [[(0,0),(0,0)],[(0,0),(0,0)]]. Their spectral radii are ρ(A_unstable) = 2, ρ(A_stable) = 1, and ρ(A_damped) = 0. So A_unstable is unstable, A_stable is marginally stable, and A_damped is damped.
3
+ ## Source files
5
4
 
6
- Reason Why
7
- For a discrete-time linear system x_{k+1} = A x_k, the eigenvalues of A govern the behaviour of the modes. Because these matrices are diagonal, the eigenvalues are just the diagonal entries. The spectral radius is the maximum modulus of the eigenvalues: if it is greater than 1 a mode grows, if it equals 1 the modes remain bounded without decaying, and if it is less than 1 all modes decay to zero. Here the diagonal entries give radii 2, 1, and 0 respectively, which explains the three classifications.
5
+ - [N3 rules](../complex-matrix-stability.n3)
8
6
 
9
- Check
10
- C1 OK - A_unstable has eigenvalues (1,1) and (2,0) with spectral radius 2, so it is unstable.
11
- C2 OK - A_stable has eigenvalues (1,0) and (-1,0) with spectral radius 1, so it is marginally stable.
12
- C3 OK - A_damped has eigenvalues (0,0) and (0,0) with spectral radius 0, so every mode decays to zero.
13
- C4 OK - for z = (1,2) and w = (0,1), the squared modulus of z*w equals the product of the squared moduli.
14
- C5 OK - the spectral-radius-squared of 2*A_unstable is four times that of A_unstable.
7
+ Complex Matrix Stability — ARC-style
8
+
9
+ ## Answer
10
+ We compare three diagonal 2x2 complex matrices for discrete-time stability: A_unstable = [[(1,1),(0,0)],[(0,0),(2,0)]], A_stable = [[(1,0),(0,0)],[(0,0),(-1,0)]], and A_damped = [[(0,0),(0,0)],[(0,0),(0,0)]]. Their spectral radii are ρ(A_unstable) = 2, ρ(A_stable) = 1, and ρ(A_damped) = 0. So A_unstable is unstable, A_stable is marginally stable, and A_damped is damped.
11
+
12
+ ## Reason Why
13
+ For a discrete-time linear system x_{k+1} = A x_k, the eigenvalues of A govern the behaviour of the modes. Because these matrices are diagonal, the eigenvalues are just the diagonal entries. The spectral radius is the maximum modulus of the eigenvalues: if it is greater than 1 a mode grows, if it equals 1 the modes remain bounded without decaying, and if it is less than 1 all modes decay to zero. Here the diagonal entries give radii 2, 1, and 0 respectively, which explains the three classifications.
14
+
15
+ ## Check
16
+ C1 OK - A_unstable has eigenvalues (1,1) and (2,0) with spectral radius 2, so it is unstable.
17
+ C2 OK - A_stable has eigenvalues (1,0) and (-1,0) with spectral radius 1, so it is marginally stable.
18
+ C3 OK - A_damped has eigenvalues (0,0) and (0,0) with spectral radius 0, so every mode decays to zero.
19
+ C4 OK - for z = (1,2) and w = (0,1), the squared modulus of z*w equals the product of the squared moduli.
20
+ C5 OK - the spectral-radius-squared of 2*A_unstable is four times that of A_unstable.
@@ -0,0 +1,12 @@
1
+ # Context association
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../context-association.n3)
6
+ - [Input TriG](../input/context-association.trig)
7
+
8
+ ## Entailment
9
+ The RDF dataset associates Bob's data graph with a Data Integrity proof graph and a second metadata proof graph.
10
+
11
+ ## Explanation
12
+ The 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.
@@ -1,20 +1,26 @@
1
- Control System — ARC explanation of two control signals
1
+ # control-system
2
2
 
3
- Answer
4
- Send both actuator commands now.
5
- Actuator 1 command: 39.27346198678276
6
- Actuator 2 command: 26.08
3
+ ## Source files
7
4
 
8
- Reason Why
9
- The first sensor pair is 6 and 11, so the reading is rising and the controller normalizes the gap 5 into 2.23606797749979. That normalized value creates a feedforward term of 43.82693235899588, while the known disturbance 35766 contributes a compensation term of 4.553470372213121. Subtracting that compensation gives actuator 1 the command 39.27346198678276. For actuator 2, the target is 5 units above the measured output, so the tracking error is positive. The observed state is -2 relative units below the measured output, so the differential correction is negative. That yields a proportional feedback part of 29, a nonlinear factor of 1.46, and a differential contribution of -2.92. Together they produce actuator 2 command 26.08.
5
+ - [N3 rules](../control-system.n3)
10
6
 
11
- Check
12
- C1 OK - the first sensor pair is rising, so the normalization uses the rising-branch rule.
13
- C2 OK - the normalized measurement is positive and smaller than the raw gap, which is consistent with a square-root normalization.
14
- C3 OK - actuator 1 is lower than its proportional feedforward term because disturbance compensation is subtracted.
15
- C4 OK - the target is above the measured output, so the tracking error is positive.
16
- C5 OK - the observed state is below the measured output, so the differential error is negative.
17
- C6 OK - actuator 2 is lower than its pure proportional term because the differential part reduces it.
18
- C7 OK - actuator 1 matches an independently reconstructed feedforward calculation.
19
- C8 OK - actuator 2 matches an independently reconstructed feedback calculation.
20
- C9 OK - both actuator commands stay positive.
7
+ Control System — ARC explanation of two control signals
8
+
9
+ ## Answer
10
+ Send both actuator commands now.
11
+ Actuator 1 command: 39.27346198678276
12
+ Actuator 2 command: 26.08
13
+
14
+ ## Reason Why
15
+ The first sensor pair is 6 and 11, so the reading is rising and the controller normalizes the gap 5 into 2.23606797749979. That normalized value creates a feedforward term of 43.82693235899588, while the known disturbance 35766 contributes a compensation term of 4.553470372213121. Subtracting that compensation gives actuator 1 the command 39.27346198678276. For actuator 2, the target is 5 units above the measured output, so the tracking error is positive. The observed state is -2 relative units below the measured output, so the differential correction is negative. That yields a proportional feedback part of 29, a nonlinear factor of 1.46, and a differential contribution of -2.92. Together they produce actuator 2 command 26.08.
16
+
17
+ ## Check
18
+ C1 OK - the first sensor pair is rising, so the normalization uses the rising-branch rule.
19
+ C2 OK - the normalized measurement is positive and smaller than the raw gap, which is consistent with a square-root normalization.
20
+ C3 OK - actuator 1 is lower than its proportional feedforward term because disturbance compensation is subtracted.
21
+ C4 OK - the target is above the measured output, so the tracking error is positive.
22
+ C5 OK - the observed state is below the measured output, so the differential error is negative.
23
+ C6 OK - actuator 2 is lower than its pure proportional term because the differential part reduces it.
24
+ C7 OK - actuator 1 matches an independently reconstructed feedforward calculation.
25
+ C8 OK - actuator 2 matches an independently reconstructed feedback calculation.
26
+ C9 OK - both actuator commands stay positive.
@@ -0,0 +1,21 @@
1
+ # deep-taxonomy-10
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../deep-taxonomy-10.n3)
6
+
7
+ Deep Taxonomy - deep classification benchmark
8
+
9
+ ## Answer
10
+ The test succeeds: starting from one individual classified as N0, the rules eventually classify it as N10 and then as A2.
11
+
12
+ ## Reason Why
13
+ Each rule moves the same individual one level deeper in the taxonomy and also adds two side labels. Because that chain continues all the way from N0 to N10, the final rule deriving A2 fires, and that in turn makes the test true.
14
+
15
+ ## Check
16
+ C1 OK - the starting classification N0 is present.
17
+ C2 OK - the first expansion produced N1 together with side labels I1 and J1.
18
+ C3 OK - the chain reaches the midpoint N5 and still carries both side-label branches.
19
+ C4 OK - the final taxonomy step from N9 to N10 was completed.
20
+ C5 OK - once N10 is reached, the terminal class A2 is derived.
21
+ C6 OK - the success flag is raised only after the terminal class A2 is present.
@@ -0,0 +1,21 @@
1
+ # deep-taxonomy-100
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../deep-taxonomy-100.n3)
6
+
7
+ Deep Taxonomy - deep classification benchmark
8
+
9
+ ## Answer
10
+ The test succeeds: starting from one individual classified as N0, the rules eventually classify it as N100 and then as A2.
11
+
12
+ ## Reason Why
13
+ Each rule moves the same individual one level deeper in the taxonomy and also adds two side labels. Because that chain continues all the way from N0 to N100, the final rule deriving A2 fires, and that in turn makes the test true.
14
+
15
+ ## Check
16
+ C1 OK - the starting classification N0 is present.
17
+ C2 OK - the first expansion produced N1 together with side labels I1 and J1.
18
+ C3 OK - the chain reaches the midpoint N50 and still carries both side-label branches.
19
+ C4 OK - the final taxonomy step from N99 to N100 was completed.
20
+ C5 OK - once N100 is reached, the terminal class A2 is derived.
21
+ C6 OK - the success flag is raised only after the terminal class A2 is present.
@@ -1,15 +1,21 @@
1
- Deep Taxonomy - deep classification benchmark
1
+ # deep-taxonomy-1000
2
2
 
3
- Answer
4
- The test succeeds: starting from one individual classified as N0, the rules eventually classify it as N1000 and then as A2.
3
+ ## Source files
5
4
 
6
- Reason Why
7
- Each rule moves the same individual one level deeper in the taxonomy and also adds two side labels. Because that chain continues all the way from N0 to N1000, the final rule deriving A2 fires, and that in turn makes the test true.
5
+ - [N3 rules](../deep-taxonomy-1000.n3)
8
6
 
9
- Check
10
- C1 OK - the starting classification N0 is present.
11
- C2 OK - the first expansion produced N1 together with side labels I1 and J1.
12
- C3 OK - the chain reaches the midpoint N500 and still carries both side-label branches.
13
- C4 OK - the final taxonomy step from N999 to N1000 was completed.
14
- C5 OK - once N1000 is reached, the terminal class A2 is derived.
15
- C6 OK - the success flag is raised only after the terminal class A2 is present.
7
+ Deep Taxonomy - deep classification benchmark
8
+
9
+ ## Answer
10
+ The test succeeds: starting from one individual classified as N0, the rules eventually classify it as N1000 and then as A2.
11
+
12
+ ## Reason Why
13
+ Each rule moves the same individual one level deeper in the taxonomy and also adds two side labels. Because that chain continues all the way from N0 to N1000, the final rule deriving A2 fires, and that in turn makes the test true.
14
+
15
+ ## Check
16
+ C1 OK - the starting classification N0 is present.
17
+ C2 OK - the first expansion produced N1 together with side labels I1 and J1.
18
+ C3 OK - the chain reaches the midpoint N500 and still carries both side-label branches.
19
+ C4 OK - the final taxonomy step from N999 to N1000 was completed.
20
+ C5 OK - once N1000 is reached, the terminal class A2 is derived.
21
+ C6 OK - the success flag is raised only after the terminal class A2 is present.
@@ -1,15 +1,21 @@
1
- Deep Taxonomy - deep classification benchmark
1
+ # deep-taxonomy-10000
2
2
 
3
- Answer
4
- The test succeeds: starting from one individual classified as N0, the rules eventually classify it as N10000 and then as A2.
3
+ ## Source files
5
4
 
6
- Reason Why
7
- Each rule moves the same individual one level deeper in the taxonomy and also adds two side labels. Because that chain continues all the way from N0 to N10000, the final rule deriving A2 fires, and that in turn makes the test true.
5
+ - [N3 rules](../deep-taxonomy-10000.n3)
8
6
 
9
- Check
10
- C1 OK - the starting classification N0 is present.
11
- C2 OK - the first expansion produced N1 together with side labels I1 and J1.
12
- C3 OK - the chain reaches the midpoint N5000 and still carries both side-label branches.
13
- C4 OK - the final taxonomy step from N9999 to N10000 was completed.
14
- C5 OK - once N10000 is reached, the terminal class A2 is derived.
15
- C6 OK - the success flag is raised only after the terminal class A2 is present.
7
+ Deep Taxonomy - deep classification benchmark
8
+
9
+ ## Answer
10
+ The test succeeds: starting from one individual classified as N0, the rules eventually classify it as N10000 and then as A2.
11
+
12
+ ## Reason Why
13
+ Each rule moves the same individual one level deeper in the taxonomy and also adds two side labels. Because that chain continues all the way from N0 to N10000, the final rule deriving A2 fires, and that in turn makes the test true.
14
+
15
+ ## Check
16
+ C1 OK - the starting classification N0 is present.
17
+ C2 OK - the first expansion produced N1 together with side labels I1 and J1.
18
+ C3 OK - the chain reaches the midpoint N5000 and still carries both side-label branches.
19
+ C4 OK - the final taxonomy step from N9999 to N10000 was completed.
20
+ C5 OK - once N10000 is reached, the terminal class A2 is derived.
21
+ C6 OK - the success flag is raised only after the terminal class A2 is present.
@@ -1,15 +1,21 @@
1
- Deep Taxonomy - very deep classification benchmark
1
+ # deep-taxonomy-100000
2
2
 
3
- Answer
4
- The test succeeds: starting from one individual classified as N0, the rules eventually classify it as N100000 and then as A2.
3
+ ## Source files
5
4
 
6
- Reason Why
7
- Each rule moves the same individual one level deeper in the taxonomy and also adds two side labels. Because that chain continues all the way from N0 to N100000, the final rule deriving A2 fires, and that in turn makes the test true.
5
+ - [N3 rules](../deep-taxonomy-100000.n3)
8
6
 
9
- Check
10
- C1 OK - the starting classification N0 is present.
11
- C2 OK - the first expansion produced N1 together with side labels I1 and J1.
12
- C3 OK - the chain reaches the midpoint N50000 and still carries both side-label branches.
13
- C4 OK - the final taxonomy step from N99999 to N100000 was completed.
14
- C5 OK - once N100000 is reached, the terminal class A2 is derived.
15
- C6 OK - the success flag is raised only after the terminal class A2 is present.
7
+ Deep Taxonomy - very deep classification benchmark
8
+
9
+ ## Answer
10
+ The test succeeds: starting from one individual classified as N0, the rules eventually classify it as N100000 and then as A2.
11
+
12
+ ## Reason Why
13
+ Each rule moves the same individual one level deeper in the taxonomy and also adds two side labels. Because that chain continues all the way from N0 to N100000, the final rule deriving A2 fires, and that in turn makes the test true.
14
+
15
+ ## Check
16
+ C1 OK - the starting classification N0 is present.
17
+ C2 OK - the first expansion produced N1 together with side labels I1 and J1.
18
+ C3 OK - the chain reaches the midpoint N50000 and still carries both side-label branches.
19
+ C4 OK - the final taxonomy step from N99999 to N100000 was completed.
20
+ C5 OK - once N100000 is reached, the terminal class A2 is derived.
21
+ C6 OK - the success flag is raised only after the terminal class A2 is present.
@@ -0,0 +1,36 @@
1
+ # delfour
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../delfour.n3)
6
+
7
+ ## Answer
8
+ The scanner is allowed to use a neutral shopping insight and recommends Low-Sugar Tea Biscuits instead of Classic Tea Biscuits.
9
+ case : delfour
10
+ decision : Allowed
11
+ scanned product : Classic Tea Biscuits
12
+ suggested alternative: Low-Sugar Tea Biscuits
13
+
14
+ ## Reason Why
15
+ The phone desensitizes a diabetes-related household condition into a scoped low-sugar need, wraps it in an expiring Insight + Policy envelope, signs it, and the scanner consumes that envelope for shopping assistance.
16
+ metric : sugar_g_per_serving
17
+ threshold : 10.0
18
+ scope : self-scanner @ pick_up_scanner
19
+ retailer : Delfour
20
+ signature alg : HMAC-SHA256
21
+ banner headline : Track sugar per serving while you scan
22
+ expires at : 2025-10-05T22:33:48.907185+00:00
23
+ reason.txt : Household requires low-sugar guidance (diabetes in POD). A neutral Insight is scoped to device 'self-scanner', event 'pick_up_scanner', retailer 'Delfour', and expires soon; the policy confines use to shopping assistance.
24
+ audit entries : 1
25
+ bus files written : 6
26
+
27
+ ## Check
28
+ signature verifies : yes
29
+ payload hash matches : yes
30
+ minimization strips sensitive terms: yes
31
+ scope complete : yes
32
+ authorization allowed : yes
33
+ high-sugar banner : yes
34
+ alternative lowers sugar : yes
35
+ duty timing consistent : yes
36
+ marketing prohibited : yes
@@ -0,0 +1,7 @@
1
+ # digital-product-passport
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../digital-product-passport.n3)
6
+
7
+ ACME X1000 SN123 | recycled=13% | lifecycle=52500 gCO2e | CRM=true | hint=http://example.org/dpp#repairFriendly
@@ -0,0 +1,16 @@
1
+ # dijkstra-risk-path
2
+
3
+ ## Source files
4
+
5
+ - [N3 rules](../dijkstra-risk-path.n3)
6
+ - [Input TriG](../input/dijkstra-risk-path.trig)
7
+
8
+ ## Answer
9
+ selected path : ClinicA -> DepotB -> LabD -> HubZ
10
+ raw cost : 10.00
11
+ risk sum : 0.55
12
+ risk-adjusted score : 11.10
13
+ edges in selected path : 3
14
+
15
+ ## Explanation
16
+ Each edge contributes its delivery cost plus the configured risk penalty. The N3 source enumerates the small graph's simple route candidates and compares the selected route against each alternative score. The selected route balances cost and risk through DepotB and LabD, while the apparently cheaper DepotC path is rejected once risk is priced in.