eyeprolog 0.5.3 → 0.5.5
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.
- package/book-assets/aggregation-market.svg +6 -6
- package/book-assets/and-or-binding-trace.svg +8 -8
- package/book-assets/arithmetic-binding-flow.svg +3 -3
- package/book-assets/auditable-decision-service.svg +3 -3
- package/book-assets/bounded-experimental-math.svg +4 -4
- package/book-assets/cli-observation-loop.svg +2 -2
- package/book-assets/context-data-boundary.svg +4 -4
- package/book-assets/correctness-obligations.svg +3 -3
- package/book-assets/debugging-four-lenses.svg +7 -7
- package/book-assets/example-landscape.svg +10 -10
- package/book-assets/finite-search-funnel.svg +11 -11
- package/book-assets/herbrand-world.svg +10 -10
- package/book-assets/integrity-check-control-panel.svg +5 -5
- package/book-assets/iso-control-board.svg +7 -7
- package/book-assets/iso-state-operator-console.svg +7 -7
- package/book-assets/iso-stream-roundtrip.svg +6 -6
- package/book-assets/iso-term-prism.svg +6 -6
- package/book-assets/knowledge-engineering-workflow.svg +5 -5
- package/book-assets/laboratory-progression.svg +2 -2
- package/book-assets/lists-train.svg +4 -4
- package/book-assets/logic-and-control.svg +16 -16
- package/book-assets/negation-guest-registry.svg +4 -4
- package/book-assets/part-1-relations.svg +14 -14
- package/book-assets/part-2-search.svg +8 -8
- package/book-assets/part-3-trustworthy-reasoning.svg +9 -9
- package/book-assets/part-4-craft.svg +13 -13
- package/book-assets/part-5-relational-design.svg +6 -6
- package/book-assets/part-6-mathematics.svg +10 -10
- package/book-assets/part-7-laboratory.svg +8 -8
- package/book-assets/part-8-standard-prolog.svg +14 -14
- package/book-assets/pattern-selection-map.svg +2 -2
- package/book-assets/program-construction-loop.svg +3 -3
- package/book-assets/program-transformation-workbench.svg +8 -8
- package/book-assets/proof-and-search.svg +9 -9
- package/book-assets/proof-as-computation.svg +3 -3
- package/book-assets/rdf-adapter-pipeline.svg +5 -5
- package/book-assets/recursion-induction-ladder.svg +7 -7
- package/book-assets/recursion-tabling-railway.svg +3 -3
- package/book-assets/reference-navigation.svg +3 -3
- package/book-assets/relational-test-spectrum.svg +2 -2
- package/book-assets/review-lenses.svg +2 -2
- package/book-assets/sockets-providers.svg +3 -3
- package/book-assets/syntax-relations.svg +7 -7
- package/book-assets/termination-map.svg +3 -3
- package/book-assets/title-page.svg +53 -53
- package/book-assets/unification.svg +9 -9
- package/package.json +1 -1
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
<title id="title">Aggregation at a produce market</title>
|
|
3
3
|
<desc id="desc">Baskets with measured weights pass over a market counter into count, sum, minimum, and maximum result cards.</desc>
|
|
4
4
|
<style>
|
|
5
|
-
.wall{fill:#
|
|
6
|
-
.card{fill:#
|
|
7
|
-
.flow{fill:none;stroke:#
|
|
5
|
+
.wall{fill:#FFF3D8}.counter{fill:#D69C18}.basket{fill:#E5B23B;stroke:#8B6500;stroke-width:3}.fruit{stroke:#008EAA;stroke-width:2}
|
|
6
|
+
.card{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.text{fill:#17324D;font:15px ui-monospace,monospace}
|
|
7
|
+
.flow{fill:none;stroke:#A96800;stroke-width:3}.result{fill:#DDF7FB;stroke:#008EAA;stroke-width:3}
|
|
8
8
|
</style>
|
|
9
9
|
<rect width="900" height="380" class="wall"/><rect y="235" width="900" height="145" class="counter"/>
|
|
10
|
-
<g transform="translate(65 120)"><path class="basket" d="M0 40 H140 L120 130 H20Z"/><path d="M30 40 Q70-35 110 40" fill="none" stroke="#
|
|
11
|
-
<g transform="translate(245 130) scale(.85)"><path class="basket" d="M0 40 H140 L120 130 H20Z"/><path d="M30 40 Q70-35 110 40" fill="none" stroke="#
|
|
12
|
-
<g transform="translate(395 135) scale(.78)"><path class="basket" d="M0 40 H140 L120 130 H20Z"/><path d="M30 40 Q70-35 110 40" fill="none" stroke="#
|
|
10
|
+
<g transform="translate(65 120)"><path class="basket" d="M0 40 H140 L120 130 H20Z"/><path d="M30 40 Q70-35 110 40" fill="none" stroke="#8B6500" stroke-width="5"/><circle class="fruit" cx="48" cy="55" r="25" fill="#C47D00"/><circle class="fruit" cx="91" cy="57" r="27" fill="#F2C94C"/><rect class="card" x="38" y="93" width="65" height="30"/><text class="text" x="70" y="114" text-anchor="middle">2 kg</text></g>
|
|
11
|
+
<g transform="translate(245 130) scale(.85)"><path class="basket" d="M0 40 H140 L120 130 H20Z"/><path d="M30 40 Q70-35 110 40" fill="none" stroke="#8B6500" stroke-width="5"/><circle class="fruit" cx="48" cy="55" r="25" fill="#C47D00"/><circle class="fruit" cx="91" cy="57" r="27" fill="#F2C94C"/><rect class="card" x="38" y="93" width="65" height="30"/><text class="text" x="70" y="114" text-anchor="middle">5 kg</text></g>
|
|
12
|
+
<g transform="translate(395 135) scale(.78)"><path class="basket" d="M0 40 H140 L120 130 H20Z"/><path d="M30 40 Q70-35 110 40" fill="none" stroke="#8B6500" stroke-width="5"/><circle class="fruit" cx="48" cy="55" r="25" fill="#C47D00"/><circle class="fruit" cx="91" cy="57" r="27" fill="#F2C94C"/><rect class="card" x="38" y="93" width="65" height="30"/><text class="text" x="70" y="114" text-anchor="middle">3 kg</text></g>
|
|
13
13
|
<path class="flow" d="M520 190 C575 190 575 95 630 95 M520 190 C575 190 575 165 630 165 M520 190 C575 190 575 235 630 235 M520 190 C575 190 575 305 630 305"/>
|
|
14
14
|
<rect class="result" x="630" y="67" width="210" height="55" rx="8"/><text class="text" x="735" y="100" text-anchor="middle">count = 3</text>
|
|
15
15
|
<rect class="result" x="630" y="137" width="210" height="55" rx="8"/><text class="text" x="735" y="170" text-anchor="middle">sum = 10 kg</text>
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
<desc id="desc">An ancestor query chooses between clauses, completes every goal in a recursive clause, carries bindings from left to right, and rewinds to the latest choice after failure.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.paper{fill:#
|
|
7
|
-
.choice{fill:#
|
|
8
|
-
.title{fill:#
|
|
9
|
-
.prose{fill:#
|
|
10
|
-
.line{fill:none;stroke:#
|
|
6
|
+
.paper{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.goal{fill:#E8FAFC;stroke:#008EAA;stroke-width:2}
|
|
7
|
+
.choice{fill:#FFF4BF;stroke:#C88900;stroke-width:2}.fail{fill:#FFF1D8;stroke:#A96800;stroke-width:2}
|
|
8
|
+
.title{fill:#A96800;font:bold 24px Georgia,serif}.label{fill:#17324D;font:bold 17px Georgia,serif}
|
|
9
|
+
.prose{fill:#405E70;font:16px Georgia,serif}.code{fill:#102A3A;font:15px ui-monospace,SFMono-Regular,Consolas,monospace}
|
|
10
|
+
.line{fill:none;stroke:#537487;stroke-width:2}.dash{fill:none;stroke:#A96800;stroke-width:2;stroke-dasharray:6 5}
|
|
11
11
|
</style>
|
|
12
|
-
<marker id="arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#
|
|
13
|
-
<marker id="redarrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#
|
|
12
|
+
<marker id="arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#537487"/></marker>
|
|
13
|
+
<marker id="redarrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#A96800"/></marker>
|
|
14
14
|
</defs>
|
|
15
|
-
<rect width="900" height="510" fill="#
|
|
15
|
+
<rect width="900" height="510" fill="#FFF9E8"/>
|
|
16
16
|
<text class="title" x="450" y="34" text-anchor="middle">READING ONE COMPUTATION</text>
|
|
17
17
|
<rect class="paper" x="25" y="55" width="540" height="420" rx="10"/>
|
|
18
18
|
<text class="label" x="295" y="84" text-anchor="middle">AND-OR SEARCH</text>
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
<title id="title">Binding values before arithmetic</title>
|
|
3
3
|
<desc id="desc">A finite generator binds N, arithmetic computes its square, and a comparison filters the result; reversing the first two steps leaves arithmetic without an input.</desc>
|
|
4
4
|
<defs><style>
|
|
5
|
-
.bg{fill:#
|
|
6
|
-
.title{fill:#
|
|
7
|
-
</style><marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#
|
|
5
|
+
.bg{fill:#FFF9E8}.box{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.green{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}.gold{fill:#FFF4BF;stroke:#C88900;stroke-width:2}.rose{fill:#FFF0D6;stroke:#A96800;stroke-width:2}
|
|
6
|
+
.title{fill:#A96800;font:bold 24px Georgia,serif}.label{fill:#17324D;font:bold 17px Georgia,serif}.code{fill:#102A3A;font:15px ui-monospace,monospace}.prose{fill:#405E70;font:15px Georgia,serif}.line{fill:none;stroke:#537487;stroke-width:3}
|
|
7
|
+
</style><marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#537487"/></marker></defs>
|
|
8
8
|
<rect class="bg" width="900" height="420"/><text class="title" x="450" y="38" text-anchor="middle">ARITHMETIC RUNS ON BOUND VALUES</text>
|
|
9
9
|
<rect class="green" x="45" y="95" width="220" height="150" rx="12"/><text class="label" x="155" y="128" text-anchor="middle">1 · GENERATE</text><text class="code" x="155" y="166" text-anchor="middle">between(1,10,N)</text><text class="prose" x="155" y="202" text-anchor="middle">binds N to one finite</text><text class="prose" x="155" y="225" text-anchor="middle">candidate at a time</text>
|
|
10
10
|
<rect class="gold" x="340" y="95" width="220" height="150" rx="12"/><text class="label" x="450" y="128" text-anchor="middle">2 · COMPUTE</text><text class="code" x="450" y="166" text-anchor="middle">S is N * N</text><text class="prose" x="450" y="202" text-anchor="middle">reads bound N</text><text class="prose" x="450" y="225" text-anchor="middle">and binds S</text>
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
<title id="title">An auditable decision service keeps evidence, policy, decision, and proof connected</title>
|
|
3
3
|
<desc id="desc">Versioned evidence and policy flow through integrity checks and reasoning to a permit decision. A proof bundle points back to every source and theory version, while an explicit integrity query exposes invalid inputs.</desc>
|
|
4
4
|
<defs><style>
|
|
5
|
-
.bg{fill:#
|
|
6
|
-
.title{fill:#
|
|
7
|
-
</style><marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#
|
|
5
|
+
.bg{fill:#FFF9E8}.paper{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.green{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}.blue{fill:#DCEFF7;stroke:#537487;stroke-width:2}.rose{fill:#FFF0D6;stroke:#A96800;stroke-width:2}.dark{fill:#2C657A;stroke:#17324D;stroke-width:3}
|
|
6
|
+
.title{fill:#A96800;font:bold 24px Georgia,serif}.label{fill:#17324D;font:bold 16px Georgia,serif}.code{fill:#102A3A;font:13px ui-monospace,monospace}.light{fill:#FFFDF8;font:14px ui-monospace,monospace}.prose{fill:#405E70;font:14px Georgia,serif}.line{fill:none;stroke:#537487;stroke-width:3}
|
|
7
|
+
</style><marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#537487"/></marker></defs>
|
|
8
8
|
<rect class="bg" width="900" height="460"/><text class="title" x="450" y="38" text-anchor="middle">THE AUDIT TRAIL IS PART OF THE DECISION</text>
|
|
9
9
|
<rect class="paper" x="30" y="90" width="195" height="105" rx="10"/><text class="label" x="127" y="120" text-anchor="middle">SOURCE FACTS</text><text class="code" x="127" y="151" text-anchor="middle">person · badge</text><text class="code" x="127" y="176" text-anchor="middle">source_version(v7)</text>
|
|
10
10
|
<rect class="blue" x="30" y="245" width="195" height="105" rx="10"/><text class="label" x="127" y="275" text-anchor="middle">POLICY</text><text class="code" x="127" y="306" text-anchor="middle">standing · limits</text><text class="code" x="127" y="331" text-anchor="middle">theory_version(t3)</text>
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
<title id="title">Finite search as experimental mathematics</title>
|
|
3
3
|
<desc id="desc">A universal conjecture is restricted to a declared finite domain. Search either returns a counterexample, which refutes the conjecture, or exhausts the box, which supplies bounded evidence but not a universal proof.</desc>
|
|
4
4
|
<defs><style>
|
|
5
|
-
.bg{fill:#
|
|
6
|
-
.title{fill:#
|
|
7
|
-
</style><marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#
|
|
5
|
+
.bg{fill:#FFF9E8}.paper{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.domain{fill:#DCEFF7;stroke:#537487;stroke-width:3}.bad{fill:#FFF0D6;stroke:#A96800;stroke-width:2}.good{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}
|
|
6
|
+
.title{fill:#A96800;font:bold 24px Georgia,serif}.label{fill:#17324D;font:bold 17px Georgia,serif}.code{fill:#102A3A;font:14px ui-monospace,monospace}.prose{fill:#405E70;font:15px Georgia,serif}.line{fill:none;stroke:#537487;stroke-width:3}
|
|
7
|
+
</style><marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#537487"/></marker></defs>
|
|
8
8
|
<rect class="bg" width="900" height="440"/><text class="title" x="450" y="38" text-anchor="middle">FINITE SEARCH: REFUTATION AND BOUNDED EVIDENCE</text>
|
|
9
9
|
<rect class="paper" x="30" y="125" width="210" height="125" rx="10"/><text class="label" x="135" y="158" text-anchor="middle">CONJECTURE</text><text class="code" x="135" y="198" text-anchor="middle">∀ n . P(n)</text><text class="prose" x="135" y="227" text-anchor="middle">a universal claim</text>
|
|
10
|
-
<path class="line" marker-end="url(#a)" d="M240 187H292"/><rect class="domain" x="300" y="75" width="300" height="250" rx="16"/><text class="label" x="450" y="110" text-anchor="middle">DECLARED FINITE DOMAIN</text><text class="code" x="450" y="145" text-anchor="middle">between(-100,100,n)</text><circle cx="380" cy="205" r="12" fill="#
|
|
10
|
+
<path class="line" marker-end="url(#a)" d="M240 187H292"/><rect class="domain" x="300" y="75" width="300" height="250" rx="16"/><text class="label" x="450" y="110" text-anchor="middle">DECLARED FINITE DOMAIN</text><text class="code" x="450" y="145" text-anchor="middle">between(-100,100,n)</text><circle cx="380" cy="205" r="12" fill="#008EAA"/><circle cx="425" cy="235" r="12" fill="#008EAA"/><circle cx="480" cy="185" r="12" fill="#008EAA"/><circle cx="530" cy="245" r="12" fill="#A96800"/><text class="prose" x="450" y="295" text-anchor="middle">test every generated point</text>
|
|
11
11
|
<path class="line" marker-end="url(#a)" d="M600 150C645 135 650 125 680 125"/><rect class="bad" x="688" y="75" width="182" height="125" rx="10"/><text class="label" x="779" y="108" text-anchor="middle">FOUND n</text><text class="code" x="779" y="145" text-anchor="middle">¬ P(n)</text><text class="prose" x="779" y="175" text-anchor="middle">global refutation</text>
|
|
12
12
|
<path class="line" marker-end="url(#a)" d="M600 260C645 275 650 290 680 290"/><rect class="good" x="688" y="240" width="182" height="125" rx="10"/><text class="label" x="779" y="273" text-anchor="middle">NONE FOUND</text><text class="code" x="779" y="310" text-anchor="middle">P(-100..100)</text><text class="prose" x="779" y="340" text-anchor="middle">bounded evidence</text>
|
|
13
13
|
<text class="prose" x="450" y="410" text-anchor="middle">Exhaustion proves the bounded statement—not the unbounded theorem.</text>
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
<desc id="desc">A predicted result and an EyeProlog program enter the command line. It emits answers and proofs on standard output, warnings and statistics on standard error, and a process status. Comparison of prediction and evidence leads to a focused revision.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.bg{fill:#
|
|
7
|
-
.line{fill:none;stroke:#
|
|
6
|
+
.bg{fill:#FFF9E8}.source{fill:#FFF4BF;stroke:#C88900;stroke-width:2}.engine{fill:#17324D;stroke:#102A3A;stroke-width:3}.out{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}.diag{fill:#BFEAF1;stroke:#087F98;stroke-width:2}.status{fill:#FFE7BF;stroke:#A96800;stroke-width:2}.compare{fill:#FFFDF8;stroke:#537487;stroke-width:2}
|
|
7
|
+
.line{fill:none;stroke:#537487;stroke-width:3;stroke-linecap:round}.arrow{fill:#537487}.title{fill:#855400;font:bold 24px Georgia,serif}.label{fill:#102A3A;font:bold 17px Georgia,serif}.small{fill:#405E70;font:15px Georgia,serif}.code{fill:#FFFDF8;font:17px ui-monospace,SFMono-Regular,Consolas,monospace}.loop{fill:#855400;font:bold 16px Georgia,serif}
|
|
8
8
|
</style>
|
|
9
9
|
</defs>
|
|
10
10
|
<rect width="900" height="470" class="bg"/>
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
<title id="title">Text becomes structured context without becoming global fact</title>
|
|
3
3
|
<desc id="desc">Raw text is normalized into a message context. An ordinary relation inspects members inside that context, while a boundary prevents those members from becoming ambient facts.</desc>
|
|
4
4
|
<defs><style>
|
|
5
|
-
.bg{fill:#
|
|
6
|
-
.title{fill:#
|
|
7
|
-
</style><marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#
|
|
5
|
+
.bg{fill:#FFF9E8}.paper{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.ctx{fill:#DDF7FB;stroke:#008EAA;stroke-width:3}.warn{fill:#FFF0D6;stroke:#A96800;stroke-width:2}
|
|
6
|
+
.title{fill:#A96800;font:bold 24px Georgia,serif}.label{fill:#17324D;font:bold 17px Georgia,serif}.code{fill:#102A3A;font:14px ui-monospace,monospace}.prose{fill:#405E70;font:15px Georgia,serif}.line{fill:none;stroke:#537487;stroke-width:3}
|
|
7
|
+
</style><marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#537487"/></marker></defs>
|
|
8
8
|
<rect class="bg" width="900" height="430"/><text class="title" x="450" y="38" text-anchor="middle">STRUCTURE TEXT AT THE MODEL BOUNDARY</text>
|
|
9
9
|
<rect class="paper" x="30" y="105" width="210" height="150" rx="10"/><text class="label" x="135" y="138" text-anchor="middle">RAW INPUT</text><text class="code" x="135" y="178" text-anchor="middle">" TEMP 91 "</text><text class="prose" x="135" y="215" text-anchor="middle">trim · normalize · parse</text>
|
|
10
10
|
<path class="line" marker-end="url(#a)" d="M240 180H292"/>
|
|
11
11
|
<rect class="ctx" x="300" y="75" width="330" height="220" rx="16"/><text class="label" x="465" y="110" text-anchor="middle">MESSAGE CONTEXT · event_17</text><rect class="paper" x="340" y="135" width="250" height="38" rx="18"/><text class="code" x="465" y="159" text-anchor="middle">severity(high)</text><rect class="paper" x="340" y="183" width="250" height="38" rx="18"/><text class="code" x="465" y="207" text-anchor="middle">source(sensor_3)</text><rect class="paper" x="340" y="231" width="250" height="38" rx="18"/><text class="code" x="465" y="255" text-anchor="middle">reading(temp,91)</text>
|
|
12
12
|
<path class="line" marker-end="url(#a)" d="M630 185H680"/><rect class="paper" x="688" y="105" width="182" height="150" rx="10"/><text class="label" x="779" y="138" text-anchor="middle">INSPECT</text><text class="code" x="779" y="178" text-anchor="middle">context_member/2</text><text class="prose" x="779" y="211" text-anchor="middle">walks members</text><text class="prose" x="779" y="233" text-anchor="middle">inside this message</text>
|
|
13
|
-
<path d="M285 315H645" stroke="#
|
|
13
|
+
<path d="M285 315H645" stroke="#A96800" stroke-width="3" stroke-dasharray="8 6"/><text class="label" x="465" y="340" text-anchor="middle">CONTEXT BOUNDARY</text>
|
|
14
14
|
<rect class="warn" x="245" y="360" width="440" height="45" rx="9"/><text class="code" x="465" y="388" text-anchor="middle">inspection ≠ asserting severity(high) globally</text>
|
|
15
15
|
</svg>
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
<title id="title">Correctness, completeness, and termination are separate obligations</title>
|
|
3
3
|
<desc id="desc">Three overlapping circles represent no false answers, all intended answers, and finite computation. The dependable operational contract lies where all three overlap.</desc>
|
|
4
4
|
<defs><style>
|
|
5
|
-
.bg{fill:#
|
|
6
|
-
.title{fill:#
|
|
7
|
-
</style><marker id="arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#
|
|
5
|
+
.bg{fill:#FFF9E8}.sound{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}.complete{fill:#DCEFF7;stroke:#537487;stroke-width:2}.term{fill:#FFF4BF;stroke:#C88900;stroke-width:2}.contract{fill:#FFFDF8;stroke:#A96800;stroke-width:2.5}
|
|
6
|
+
.title{fill:#A96800;font:bold 24px Georgia,serif}.label{fill:#17324D;font:bold 17px Georgia,serif}.prose{fill:#405E70;font:15px Georgia,serif}.code{fill:#102A3A;font:14px ui-monospace,monospace}.center{fill:#855400;font:bold 17px Georgia,serif}.line{fill:none;stroke:#537487;stroke-width:3}
|
|
7
|
+
</style><marker id="arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#537487"/></marker></defs>
|
|
8
8
|
<rect class="bg" width="900" height="430"/><text class="title" x="450" y="38" text-anchor="middle">THREE PROMISES, THREE PROOF OBLIGATIONS</text>
|
|
9
9
|
<rect class="sound" x="35" y="85" width="250" height="155" rx="12"/><text class="label" x="160" y="120" text-anchor="middle">SOUNDNESS</text><text class="prose" x="160" y="157" text-anchor="middle">Every returned answer</text><text class="prose" x="160" y="181" text-anchor="middle">is justified.</text><text class="code" x="160" y="216" text-anchor="middle">no false answers</text>
|
|
10
10
|
<rect class="complete" x="325" y="85" width="250" height="155" rx="12"/><text class="label" x="450" y="120" text-anchor="middle">COMPLETENESS</text><text class="prose" x="450" y="157" text-anchor="middle">Every intended answer</text><text class="prose" x="450" y="181" text-anchor="middle">can be found.</text><text class="code" x="450" y="216" text-anchor="middle">none silently lost</text>
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
<desc id="desc">A disputed ground question passes through four diagnostic lenses in order: clarify its meaning, trace bindings left to right, inspect search behavior, and examine successful proof premises before preserving the repair as a regression.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.paper{fill:#
|
|
7
|
-
.gold{fill:#
|
|
8
|
-
.blue{fill:#
|
|
9
|
-
.label{fill:#
|
|
10
|
-
.code{fill:#
|
|
6
|
+
.paper{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.green{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}
|
|
7
|
+
.gold{fill:#FFF4BF;stroke:#C88900;stroke-width:2}.rose{fill:#FFF0D6;stroke:#A96800;stroke-width:2}
|
|
8
|
+
.blue{fill:#DCEFF7;stroke:#537487;stroke-width:2}.title{fill:#A96800;font:bold 24px Georgia,serif}
|
|
9
|
+
.label{fill:#17324D;font:bold 17px Georgia,serif}.prose{fill:#405E70;font:15px Georgia,serif}
|
|
10
|
+
.code{fill:#102A3A;font:14px ui-monospace,SFMono-Regular,Consolas,monospace}.line{fill:none;stroke:#537487;stroke-width:2.5}
|
|
11
11
|
</style>
|
|
12
|
-
<marker id="arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#
|
|
12
|
+
<marker id="arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#537487"/></marker>
|
|
13
13
|
</defs>
|
|
14
|
-
<rect width="900" height="500" fill="#
|
|
14
|
+
<rect width="900" height="500" fill="#FFF9E8"/>
|
|
15
15
|
<text class="title" x="450" y="35" text-anchor="middle">DEBUG THROUGH FOUR LENSES</text>
|
|
16
16
|
<rect class="paper" x="200" y="60" width="500" height="65" rx="10"/>
|
|
17
17
|
<text class="label" x="450" y="86" text-anchor="middle">SMALLEST DISPUTED GROUND QUESTION</text>
|
|
@@ -3,31 +3,31 @@
|
|
|
3
3
|
<desc id="desc">A map connects a central EyeProlog program to mathematics, search, planning, policy, science, program analysis, symbolic systems, and RDF, with paths to answers and proofs.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.bg{fill:#
|
|
7
|
-
.path{fill:none;stroke:#
|
|
8
|
-
.title{fill:#
|
|
9
|
-
.small{fill:#
|
|
6
|
+
.bg{fill:#FFF9E8}.region{stroke:#17324D;stroke-width:2}.core{fill:#17324D;stroke:#102A3A;stroke-width:3}
|
|
7
|
+
.path{fill:none;stroke:#FFFDF8;stroke-width:5;stroke-linecap:round;opacity:.9}.link{fill:none;stroke:#537487;stroke-width:2.5;stroke-dasharray:6 5}
|
|
8
|
+
.title{fill:#855400;font:bold 24px Georgia,serif}.label{fill:#102A3A;font:bold 17px Georgia,serif}
|
|
9
|
+
.small{fill:#405E70;font:16px Georgia,serif}.output{fill:#405E70;font:14px Georgia,serif}.code{fill:#DDF7FB;font:16px ui-monospace,SFMono-Regular,Consolas,monospace}
|
|
10
10
|
</style>
|
|
11
11
|
</defs>
|
|
12
12
|
<rect width="900" height="500" class="bg"/>
|
|
13
13
|
<text class="title" x="450" y="34" text-anchor="middle">THE EXAMPLES ARE A CONNECTED LANDSCAPE</text>
|
|
14
14
|
|
|
15
|
-
<path class="region" fill="#
|
|
15
|
+
<path class="region" fill="#DDF7FB" d="M35 65H270L300 155L245 220H45Z"/>
|
|
16
16
|
<text class="label" x="145" y="103" text-anchor="middle">MATHEMATICS</text>
|
|
17
17
|
<text class="small" x="145" y="130" text-anchor="middle">induction · algebra · number</text>
|
|
18
18
|
<text class="small" x="145" y="151" text-anchor="middle">theory · counterexamples</text>
|
|
19
19
|
|
|
20
|
-
<path class="region" fill="#
|
|
20
|
+
<path class="region" fill="#F6D978" d="M630 65H865V220H655L600 155Z"/>
|
|
21
21
|
<text class="label" x="755" y="103" text-anchor="middle">SEARCH & PLANNING</text>
|
|
22
22
|
<text class="small" x="755" y="130" text-anchor="middle">puzzles · routes · schedules</text>
|
|
23
23
|
<text class="small" x="755" y="151" text-anchor="middle">states · optimization</text>
|
|
24
24
|
|
|
25
|
-
<path class="region" fill="#
|
|
25
|
+
<path class="region" fill="#FFE7BF" d="M35 280H245L300 345L270 440H35Z"/>
|
|
26
26
|
<text class="label" x="145" y="326" text-anchor="middle">POLICY & TRUST</text>
|
|
27
27
|
<text class="small" x="145" y="353" text-anchor="middle">decisions · provenance</text>
|
|
28
28
|
<text class="small" x="145" y="374" text-anchor="middle">integrity · audit</text>
|
|
29
29
|
|
|
30
|
-
<path class="region" fill="#
|
|
30
|
+
<path class="region" fill="#BFEAF1" d="M655 280H865V440H630L600 345Z"/>
|
|
31
31
|
<text class="label" x="755" y="326" text-anchor="middle">SCIENCE & RDF</text>
|
|
32
32
|
<text class="small" x="755" y="353" text-anchor="middle">models · measurements</text>
|
|
33
33
|
<text class="small" x="755" y="374" text-anchor="middle">graphs · adapters</text>
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
<text class="code" x="450" y="268" text-anchor="middle">eyeprolog --goal 'Question' program.pl</text>
|
|
40
40
|
<text class="code" x="450" y="300" text-anchor="middle">rule :- evidence.</text>
|
|
41
41
|
|
|
42
|
-
<rect x="305" y="385" width="140" height="55" rx="10" fill="#
|
|
42
|
+
<rect x="305" y="385" width="140" height="55" rx="10" fill="#FFFDF8" stroke="#008EAA" stroke-width="2"/>
|
|
43
43
|
<text class="label" x="375" y="408" text-anchor="middle">ANSWERS</text><text class="output" x="375" y="428" text-anchor="middle">ground results</text>
|
|
44
|
-
<rect x="455" y="385" width="140" height="55" rx="10" fill="#
|
|
44
|
+
<rect x="455" y="385" width="140" height="55" rx="10" fill="#FFFDF8" stroke="#C88900" stroke-width="2"/>
|
|
45
45
|
<text class="label" x="525" y="408" text-anchor="middle">PROOFS</text><text class="output" x="525" y="428" text-anchor="middle">supporting steps</text>
|
|
46
46
|
<path class="link" d="M410 325L382 385M490 325L518 385"/>
|
|
47
47
|
<text class="small" x="450" y="474" text-anchor="middle">predict → run → compare → inspect → revise</text>
|
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
<desc id="desc">A finite generator creates candidates, ready constraints prune them, witness construction preserves useful evidence, and ordering chooses among survivors without reducing the original candidate space.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.paper{fill:#
|
|
7
|
-
.gold{fill:#
|
|
8
|
-
.title{fill:#
|
|
9
|
-
.prose{fill:#
|
|
10
|
-
.line{fill:none;stroke:#
|
|
6
|
+
.paper{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.green{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}
|
|
7
|
+
.gold{fill:#FFF4BF;stroke:#C88900;stroke-width:2}.rose{fill:#FFF0D6;stroke:#A96800;stroke-width:2}
|
|
8
|
+
.title{fill:#A96800;font:bold 24px Georgia,serif}.label{fill:#17324D;font:bold 17px Georgia,serif}
|
|
9
|
+
.prose{fill:#405E70;font:16px Georgia,serif}.code{fill:#102A3A;font:15px ui-monospace,SFMono-Regular,Consolas,monospace}
|
|
10
|
+
.line{fill:none;stroke:#537487;stroke-width:2.5}.cut{fill:none;stroke:#A96800;stroke-width:2}
|
|
11
11
|
</style>
|
|
12
|
-
<marker id="arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#
|
|
12
|
+
<marker id="arrow" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0L8 4L0 8Z" fill="#537487"/></marker>
|
|
13
13
|
</defs>
|
|
14
|
-
<rect width="900" height="500" fill="#
|
|
14
|
+
<rect width="900" height="500" fill="#FFF9E8"/>
|
|
15
15
|
<text class="title" x="450" y="35" text-anchor="middle">DESIGN THE SEARCH BEFORE RUNNING IT</text>
|
|
16
|
-
<path d="M80 85H820L690 360H210Z" fill="#
|
|
17
|
-
<path d="M80 85H820L780 170H120Z" fill="#
|
|
18
|
-
<path d="M120 170H780L740 255H160Z" fill="#
|
|
19
|
-
<path d="M160 255H740L700 340H200Z" fill="#
|
|
16
|
+
<path d="M80 85H820L690 360H210Z" fill="#FFFDF8" stroke="#17324D" stroke-width="2"/>
|
|
17
|
+
<path d="M80 85H820L780 170H120Z" fill="#DCEFF7"/>
|
|
18
|
+
<path d="M120 170H780L740 255H160Z" fill="#FFF0D6"/>
|
|
19
|
+
<path d="M160 255H740L700 340H200Z" fill="#DDF7FB"/>
|
|
20
20
|
<text class="label" x="450" y="113" text-anchor="middle">1 · GENERATE A FINITE DOMAIN</text>
|
|
21
21
|
<text class="code" x="450" y="142" text-anchor="middle">workers × tasks = 3 × 2 = 6 candidates</text>
|
|
22
22
|
<text class="label" x="450" y="199" text-anchor="middle">2 · APPLY THE EARLIEST READY CONSTRAINTS</text>
|
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
<desc id="desc">Ground terms form the Herbrand universe; ground atomic formulas form the Herbrand base; the formulas justified by facts and rules form the least model.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto">
|
|
6
|
-
<path d="M0,0 L0,6 L9,3 z" fill="#
|
|
6
|
+
<path d="M0,0 L0,6 L9,3 z" fill="#537487"/>
|
|
7
7
|
</marker>
|
|
8
8
|
<style>
|
|
9
|
-
.box{fill:#
|
|
10
|
-
.model{fill:#
|
|
11
|
-
.title{fill:#
|
|
12
|
-
.box-title{fill:#
|
|
13
|
-
.box-sub{fill:#
|
|
14
|
-
.text{fill:#
|
|
15
|
-
.prose{fill:#
|
|
16
|
-
.line{stroke:#
|
|
9
|
+
.box{fill:#FFFDF8;stroke:#17324D;stroke-width:2}
|
|
10
|
+
.model{fill:#E8FAFC;stroke:#008EAA;stroke-width:3}
|
|
11
|
+
.title{fill:#A96800;font:bold 19px Georgia,serif}
|
|
12
|
+
.box-title{fill:#A96800;font:bold 17px Georgia,serif}
|
|
13
|
+
.box-sub{fill:#405E70;font:15px Georgia,serif}
|
|
14
|
+
.text{fill:#102A3A;font:18px ui-monospace,SFMono-Regular,Consolas,monospace}
|
|
15
|
+
.prose{fill:#405E70;font:17px Georgia,serif}
|
|
16
|
+
.line{stroke:#537487;stroke-width:2;fill:none;marker-end:url(#arrow)}
|
|
17
17
|
</style>
|
|
18
18
|
</defs>
|
|
19
|
-
<rect width="900" height="500" fill="#
|
|
19
|
+
<rect width="900" height="500" fill="#FFF9E8"/>
|
|
20
20
|
<rect class="box" x="35" y="65" width="240" height="360" rx="10"/>
|
|
21
21
|
<text class="box-title" x="155" y="100" text-anchor="middle">HERBRAND UNIVERSE</text>
|
|
22
22
|
<text class="box-sub" x="155" y="125" text-anchor="middle">all constructible</text>
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
<title id="title">An integrity check on an engineering control panel</title>
|
|
3
3
|
<desc id="desc">Conflicting lower and upper limits produce an invalid-state result for the host to handle before operation.</desc>
|
|
4
4
|
<style>
|
|
5
|
-
.wall{fill:#
|
|
6
|
-
.text{fill:#
|
|
7
|
-
.wire{fill:none;stroke:#
|
|
5
|
+
.wall{fill:#EAF8FA}.panel{fill:#2C657A;stroke:#17324D;stroke-width:4}.screen{fill:#FFFDF8;stroke:#17324D;stroke-width:2}
|
|
6
|
+
.text{fill:#17324D;font:17px ui-monospace,monospace}.light{fill:#A96800;stroke:#855400;stroke-width:3}.safe{fill:#008EAA}
|
|
7
|
+
.wire{fill:none;stroke:#A96800;stroke-width:5}.lever{fill:#D6F3F7;stroke:#17324D;stroke-width:3}
|
|
8
8
|
</style>
|
|
9
9
|
<rect width="900" height="380" class="wall"/><rect class="panel" x="55" y="40" width="790" height="300" rx="15"/>
|
|
10
10
|
<rect class="screen" x="95" y="80" width="230" height="120" rx="7"/><text class="text" x="210" y="110" text-anchor="middle">LOWER LIMIT</text><text class="text" x="210" y="165" text-anchor="middle" font-size="30">80</text>
|
|
11
11
|
<rect class="screen" x="575" y="80" width="230" height="120" rx="7"/><text class="text" x="690" y="110" text-anchor="middle">UPPER LIMIT</text><text class="text" x="690" y="165" text-anchor="middle" font-size="30">60</text>
|
|
12
|
-
<path class="wire" d="M325 140 H390 M510 140 H575"/><circle class="light" cx="450" cy="140" r="48"/><text x="450" y="132" text-anchor="middle" fill="#
|
|
13
|
-
<rect class="screen" x="300" y="230" width="300" height="65" rx="8"/><text class="text" x="450" y="256" text-anchor="middle">invalid_limits(Low, High).</text><text x="450" y="280" text-anchor="middle" fill="#
|
|
12
|
+
<path class="wire" d="M325 140 H390 M510 140 H575"/><circle class="light" cx="450" cy="140" r="48"/><text x="450" y="132" text-anchor="middle" fill="#FFFDF8" font-family="Georgia,serif" font-weight="bold" font-size="18">INVALID</text><text x="450" y="157" text-anchor="middle" fill="#FFFDF8" font-family="ui-monospace,monospace" font-size="14">FOUND</text>
|
|
13
|
+
<rect class="screen" x="300" y="230" width="300" height="65" rx="8"/><text class="text" x="450" y="256" text-anchor="middle">invalid_limits(Low, High).</text><text x="450" y="280" text-anchor="middle" fill="#A96800" font-family="ui-monospace,monospace" font-size="16">reported to the host</text>
|
|
14
14
|
<circle cx="140" cy="265" r="16" class="safe"/><circle cx="760" cy="265" r="16" class="light"/>
|
|
15
15
|
</svg>
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<desc id="desc">A goal enters a control board, branches through choice and exception recovery, then solutions flow into findall, bagof, and setof collectors.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.bg{fill:#
|
|
7
|
-
.ok{fill:#
|
|
8
|
-
.title{fill:#
|
|
9
|
-
.code{fill:#
|
|
10
|
-
.line{fill:none;stroke:#
|
|
6
|
+
.bg{fill:#FFF9E8}.box{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.choice{fill:#FFEBC7;stroke:#A96800;stroke-width:2}
|
|
7
|
+
.ok{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}.group{fill:#DCEFF7;stroke:#537487;stroke-width:2}.gold{fill:#FFF4BF;stroke:#C88900;stroke-width:2}
|
|
8
|
+
.title{fill:#A96800;font:bold 23px Georgia,serif}.label{fill:#17324D;font:bold 16px Georgia,serif}
|
|
9
|
+
.code{fill:#102A3A;font:14px ui-monospace,SFMono-Regular,Consolas,monospace}.prose{fill:#405E70;font:15px Georgia,serif}
|
|
10
|
+
.line{fill:none;stroke:#537487;stroke-width:2.5}.error{fill:none;stroke:#A96800;stroke-width:2.5;stroke-dasharray:7 5}
|
|
11
11
|
</style>
|
|
12
|
-
<marker id="a" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#
|
|
13
|
-
<marker id="r" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#
|
|
12
|
+
<marker id="a" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#537487"/></marker>
|
|
13
|
+
<marker id="r" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#A96800"/></marker>
|
|
14
14
|
</defs>
|
|
15
15
|
<rect width="900" height="390" class="bg"/><text class="title" x="450" y="34" text-anchor="middle">FROM A GOAL TO A CONTROLLED ANSWER SET</text>
|
|
16
16
|
<rect class="box" x="30" y="145" width="130" height="70" rx="10"/><text class="label" x="95" y="174" text-anchor="middle">GOAL</text><text class="code" x="95" y="199" text-anchor="middle">route(A, B)</text>
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<desc id="desc">Initialization feeds an ordered dynamic task queue while an operator declaration changes readable notation that still decomposes to an ordinary reports term.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.bg{fill:#
|
|
7
|
-
.first{fill:#
|
|
8
|
-
.title{fill:#
|
|
9
|
-
.code{fill:#
|
|
10
|
-
.line{fill:none;stroke:#
|
|
6
|
+
.bg{fill:#EAF8FA}.panel{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.slot{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}
|
|
7
|
+
.first{fill:#FFEBC7;stroke:#A96800;stroke-width:2}.last{fill:#FFF4BF;stroke:#C88900;stroke-width:2}.blue{fill:#DCEFF7;stroke:#537487;stroke-width:2}
|
|
8
|
+
.title{fill:#A96800;font:bold 23px Georgia,serif}.label{fill:#17324D;font:bold 16px Georgia,serif}
|
|
9
|
+
.code{fill:#102A3A;font:14px ui-monospace,SFMono-Regular,Consolas,monospace}.prose{fill:#405E70;font:15px Georgia,serif}
|
|
10
|
+
.line{fill:none;stroke:#537487;stroke-width:2.5}.redline{fill:none;stroke:#A96800;stroke-width:2.5}
|
|
11
11
|
</style>
|
|
12
|
-
<marker id="a" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#
|
|
13
|
-
<marker id="r" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#
|
|
12
|
+
<marker id="a" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#537487"/></marker>
|
|
13
|
+
<marker id="r" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#A96800"/></marker>
|
|
14
14
|
</defs>
|
|
15
15
|
<rect width="900" height="410" class="bg"/><text class="title" x="450" y="34" text-anchor="middle">SOLVER-LOCAL STATE AND READABLE SYNTAX</text>
|
|
16
16
|
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
<desc id="desc">A structured event term is canonically written with a period, stored as text, read back with variable metadata, and followed to the end-of-stream state.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.bg{fill:#
|
|
7
|
-
.file{fill:#
|
|
8
|
-
.title{fill:#
|
|
9
|
-
.code{fill:#
|
|
10
|
-
.line{fill:none;stroke:#
|
|
6
|
+
.bg{fill:#FFF9E8}.term{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}.stream{fill:#DCEFF7;stroke:#537487;stroke-width:2}
|
|
7
|
+
.file{fill:#FFFDF8;stroke:#17324D;stroke-width:2}.eof{fill:#FFF4BF;stroke:#C88900;stroke-width:2}
|
|
8
|
+
.title{fill:#A96800;font:bold 23px Georgia,serif}.label{fill:#17324D;font:bold 16px Georgia,serif}
|
|
9
|
+
.code{fill:#102A3A;font:14px ui-monospace,SFMono-Regular,Consolas,monospace}.prose{fill:#405E70;font:15px Georgia,serif}
|
|
10
|
+
.line{fill:none;stroke:#537487;stroke-width:2.5}.unit{fill:#FFFDF8;stroke:#537487;stroke-width:1.5}
|
|
11
11
|
</style>
|
|
12
|
-
<marker id="a" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#
|
|
12
|
+
<marker id="a" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#537487"/></marker>
|
|
13
13
|
</defs>
|
|
14
14
|
<rect width="900" height="420" class="bg"/><text class="title" x="450" y="34" text-anchor="middle">TERM → TEXT STREAM → TERM</text>
|
|
15
15
|
<rect class="term" x="20" y="125" width="190" height="105" rx="12"/><text class="code" x="115" y="156" text-anchor="middle">STRUCTURED TERM</text><text class="code" x="115" y="184" text-anchor="middle">event(sensor_7,</text><text class="code" x="115" y="207" text-anchor="middle">online)</text>
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
<desc id="desc">The term event sensor seven reading temperature twenty-one is decomposed into functor, arguments, univ list, variables, atom characters, and codes.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.bg{fill:#
|
|
7
|
-
.blue{fill:#
|
|
8
|
-
.title{fill:#
|
|
9
|
-
.code{fill:#
|
|
10
|
-
.ray{fill:none;stroke:#
|
|
6
|
+
.bg{fill:#FFF9E8}.term{fill:#DDF7FB;stroke:#008EAA;stroke-width:2}.card{fill:#FFFDF8;stroke:#17324D;stroke-width:2}
|
|
7
|
+
.blue{fill:#DCEFF7;stroke:#537487;stroke-width:2}.gold{fill:#FFF4BF;stroke:#C88900;stroke-width:2}
|
|
8
|
+
.title{fill:#A96800;font:bold 23px Georgia,serif}.label{fill:#17324D;font:bold 16px Georgia,serif}
|
|
9
|
+
.code{fill:#102A3A;font:14px ui-monospace,SFMono-Regular,Consolas,monospace}.prose{fill:#405E70;font:15px Georgia,serif}
|
|
10
|
+
.ray{fill:none;stroke:#537487;stroke-width:2.2}
|
|
11
11
|
</style>
|
|
12
|
-
<marker id="a" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#
|
|
12
|
+
<marker id="a" markerWidth="7" markerHeight="7" refX="6" refY="3.5" orient="auto"><path d="M0 0L7 3.5L0 7Z" fill="#537487"/></marker>
|
|
13
13
|
</defs>
|
|
14
14
|
<rect width="900" height="400" class="bg"/><text class="title" x="450" y="34" text-anchor="middle">ONE TERM, SEVERAL STANDARD VIEWS</text>
|
|
15
15
|
<polygon class="term" points="350,95 500,75 555,200 455,285 325,220"/><text class="label" x="440" y="145" text-anchor="middle">TERM</text>
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="380" viewBox="0 0 900 380" role="img" aria-labelledby="title desc">
|
|
2
2
|
<title id="title">From observations to an accountable decision</title>
|
|
3
3
|
<desc id="desc">Sensor readings and records move through normalization, domain concepts, and a decision, with a proof folder retaining the evidence.</desc>
|
|
4
|
-
<defs><marker id="a" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto"><path d="M0 0 L0 6 L9 3Z" fill="#
|
|
4
|
+
<defs><marker id="a" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto"><path d="M0 0 L0 6 L9 3Z" fill="#2C657A"/></marker></defs>
|
|
5
5
|
<style>
|
|
6
|
-
.bg{fill:#
|
|
7
|
-
.text{fill:#
|
|
8
|
-
.arrow{fill:none;stroke:#
|
|
6
|
+
.bg{fill:#FFF3D8}.box{fill:#FFFDF8;stroke:#17324D;stroke-width:2.5}.concept{fill:#DDF7FB;stroke:#008EAA;stroke-width:3}
|
|
7
|
+
.text{fill:#17324D;font:16px ui-monospace,monospace}.title{fill:#855400;font:bold 17px Georgia,serif}
|
|
8
|
+
.arrow{fill:none;stroke:#2C657A;stroke-width:3;marker-end:url(#a)}.proof{fill:#F6D978;stroke:#C88900;stroke-width:2}
|
|
9
9
|
</style>
|
|
10
10
|
<rect width="900" height="380" class="bg"/>
|
|
11
11
|
<rect class="box" x="35" y="95" width="165" height="190" rx="8"/><text class="title" x="118" y="125" text-anchor="middle">SOURCE FACTS</text><text class="text" x="55" y="165">sensor(91)</text><text class="text" x="55" y="200">limit(80)</text><text class="text" x="55" y="235">device(b1)</text>
|
|
12
12
|
<path class="arrow" d="M200 190 H260"/><rect class="box" x="265" y="120" width="165" height="140" rx="8"/><text class="title" x="348" y="150" text-anchor="middle">NORMALIZE</text><text class="text" x="285" y="190">celsius(91)</text><text class="text" x="285" y="225">max_temp(80)</text>
|
|
13
13
|
<path class="arrow" d="M430 190 H490"/><rect class="concept" x="495" y="120" width="165" height="140" rx="8"/><text class="title" x="578" y="150" text-anchor="middle">CONCEPT</text><text class="text" x="520" y="195">overheated(b1)</text>
|
|
14
14
|
<path class="arrow" d="M660 190 H720"/><rect class="concept" x="725" y="120" width="145" height="140" rx="8"/><text class="title" x="798" y="150" text-anchor="middle">DECISION</text><text class="text" x="747" y="195">isolate(b1)</text><text class="text" x="755" y="225">cool(b1)</text>
|
|
15
|
-
<path class="arrow" d="M578 265 C578 315 665 315 715 300"/><path class="proof" d="M715 270 H845 V345 H715Z"/><path d="M715 270 H760 L775 285 H845" fill="#
|
|
15
|
+
<path class="arrow" d="M578 265 C578 315 665 315 715 300"/><path class="proof" d="M715 270 H845 V345 H715Z"/><path d="M715 270 H760 L775 285 H845" fill="#F2C94C" stroke="#C88900" stroke-width="2"/><text class="text" x="780" y="318" text-anchor="middle">why/2</text>
|
|
16
16
|
</svg>
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
<desc id="desc">Five connected stages group laboratories one and two as relational foundations, three and four as finite search, five through seven as mathematical and symbolic methods, eight through eleven as domain reasoning, and twelve as an integrated release-quality service.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<style>
|
|
6
|
-
.bg{fill:#
|
|
7
|
-
.line{fill:none;stroke:#
|
|
6
|
+
.bg{fill:#FFF9E8}.stage{stroke:#537487;stroke-width:2}.s1{fill:#DDF7FB}.s2{fill:#BFEAF1}.s3{fill:#FFF4BF}.s4{fill:#FFE7BF}.s5{fill:#17324D;stroke:#102A3A;stroke-width:3}
|
|
7
|
+
.line{fill:none;stroke:#537487;stroke-width:4;stroke-linecap:round}.arrow{fill:#537487}.title{fill:#855400;font:bold 24px Georgia,serif}.number{fill:#855400;font:bold 20px Georgia,serif}.label{fill:#102A3A;font:bold 17px Georgia,serif}.small{fill:#405E70;font:15px Georgia,serif}.white{fill:#FFFDF8}.thread{fill:#405E70;font:italic 16px Georgia,serif}
|
|
8
8
|
</style>
|
|
9
9
|
</defs>
|
|
10
10
|
<rect width="900" height="470" class="bg"/>
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
<title id="title">Lists as railway carriages</title>
|
|
3
3
|
<desc id="desc">A train of labeled carriages shows a list head, its tail, and two shorter trains joining through append.</desc>
|
|
4
4
|
<style>
|
|
5
|
-
.sky{fill:#
|
|
6
|
-
.car{fill:#
|
|
7
|
-
.wheel{fill:#
|
|
5
|
+
.sky{fill:#EAF8FA}.ground{fill:#FFF3D8}.rail{stroke:#2C657A;stroke-width:5}.tie{stroke:#8B6500;stroke-width:3}
|
|
6
|
+
.car{fill:#FFFDF8;stroke:#17324D;stroke-width:3}.head{fill:#DDF7FB;stroke:#008EAA;stroke-width:4}
|
|
7
|
+
.wheel{fill:#2C657A;stroke:#17324D;stroke-width:2}.text{fill:#17324D;font:18px ui-monospace,monospace}.brace{fill:none;stroke:#A96800;stroke-width:3}
|
|
8
8
|
</style>
|
|
9
9
|
<rect width="900" height="340" class="sky"/><rect y="230" width="900" height="110" class="ground"/>
|
|
10
10
|
<line class="rail" x1="40" y1="275" x2="860" y2="275"/><g class="tie"><line x1="70" y1="260" x2="70" y2="290"/><line x1="150" y1="260" x2="150" y2="290"/><line x1="230" y1="260" x2="230" y2="290"/><line x1="310" y1="260" x2="310" y2="290"/><line x1="390" y1="260" x2="390" y2="290"/><line x1="470" y1="260" x2="470" y2="290"/><line x1="550" y1="260" x2="550" y2="290"/><line x1="630" y1="260" x2="630" y2="290"/><line x1="710" y1="260" x2="710" y2="290"/><line x1="790" y1="260" x2="790" y2="290"/></g>
|
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
<g transform="translate(440 135)"><rect class="car" width="160" height="95" rx="8"/><text class="text" x="80" y="55" text-anchor="middle">blue</text><circle class="wheel" cx="40" cy="105" r="14"/><circle class="wheel" cx="120" cy="105" r="14"/></g>
|
|
14
14
|
<path class="brace" d="M70 112 Q150 78 230 112"/><text class="text" x="150" y="73" text-anchor="middle">Head</text>
|
|
15
15
|
<path class="brace" d="M255 112 Q425 45 600 112"/><text class="text" x="425" y="38" text-anchor="middle">Tail</text>
|
|
16
|
-
<path d="M230 185 H255 M415 185 H440" stroke="#
|
|
16
|
+
<path d="M230 185 H255 M415 185 H440" stroke="#17324D" stroke-width="5"/><text class="text" x="685" y="170">[Head | Tail]</text><text class="text" x="685" y="205">append joins trains</text>
|
|
17
17
|
</svg>
|