eyeprolog 1.6.33 → 1.6.34
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/README.md +11 -11
- package/package.json +1 -1
- package/playground.html +3 -1
- package/test/regression/cases-documentation-sync.mjs +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ EyeProlog turns portable ISO Prolog programs into answers and inspectable proofs
|
|
|
12
12
|
<strong>Click the cover to read <em>The Art of EyeProlog</em>.</strong>
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
|
-
The single implementation reference is [*The Art of EyeProlog*](the-art-of-eyeprolog
|
|
15
|
+
The single implementation reference is [*The Art of EyeProlog*](https://eyereasoner.github.io/eyeprolog/the-art-of-eyeprolog).
|
|
16
16
|
It documents the language, built-ins, libraries, command line, JavaScript API,
|
|
17
17
|
examples, proofs, conformance profile, and implementation.
|
|
18
18
|
|
|
@@ -65,18 +65,18 @@ printf 'human(socrates).\nmortal(X) :- human(X).\n' |
|
|
|
65
65
|
- [The Art of EyeProlog](https://eyereasoner.github.io/eyeprolog/the-art-of-eyeprolog) — complete reference
|
|
66
66
|
- [Why EyeProlog?](https://eyereasoner.github.io/eyeprolog/why-eyeprolog) — project scope and design
|
|
67
67
|
- [ARC in EyeProlog](https://eyereasoner.github.io/eyeprolog/arc-in-eyeprolog) — answer, reason, check
|
|
68
|
-
- [SPEC.md](SPEC
|
|
68
|
+
- [SPEC.md](https://eyereasoner.github.io/eyeprolog/SPEC) — the answer, proof and check format, and the seven conditions C1–C7 a proof check establishes
|
|
69
69
|
- [Playground](https://eyereasoner.github.io/eyeprolog/playground) — run EyeProlog in a browser
|
|
70
70
|
- [Examples](examples) — runnable programs and checked output
|
|
71
|
-
- [Example decks](examples/deck/
|
|
71
|
+
- [Example decks](https://eyereasoner.github.io/eyeprolog/examples/deck/) — explainable RDF/Prolog scenarios with reproducible roundtrips
|
|
72
72
|
- [Introduction to EyeProlog](https://eyereasoner.github.io/eyeprolog/examples/deck/introduction-to-eyeprolog) — short presentation deck for first-time audiences
|
|
73
73
|
- [Symbiotic Knowledge Graphs](https://eyereasoner.github.io/eyeprolog/examples/deck/symbiotic-knowledge-graphs) — RDF ↔ Prolog heatwave-response demo for human/AI/KG co-evolution
|
|
74
74
|
- [rdf-prolog-interchange](https://github.com/eyereasoner/rdf-prolog-interchange) — standalone RDF 1.2 ↔ ISO Prolog bridge used by the RDF examples
|
|
75
|
-
- [RDF and Prolog: Two Standards-Based Legs](https://github.
|
|
76
|
-
- [ISO conformance review](test/conformance/ISO-COMPLIANCE
|
|
77
|
-
- [Latest Neumerkel conformity](test/conformance/NEUMERKEL-LATEST
|
|
78
|
-
- [Conformance report](conformance-report
|
|
79
|
-
- [OpenRuleBench](openrulebench/
|
|
75
|
+
- [RDF and Prolog: Two Standards-Based Legs](https://eyereasoner.github.io/rdf-prolog-interchange/why-rdf-prolog) — why W3C RDF and ISO Prolog form the foundation
|
|
76
|
+
- [ISO conformance review](https://eyereasoner.github.io/eyeprolog/test/conformance/ISO-COMPLIANCE) — supported Part 1 profile
|
|
77
|
+
- [Latest Neumerkel conformity](https://eyereasoner.github.io/eyeprolog/test/conformance/NEUMERKEL-LATEST) — tracked result from the current live upstream inventory
|
|
78
|
+
- [Conformance report](https://eyereasoner.github.io/eyeprolog/conformance-report) — generated executable conformance status, local corpus summary, and known deviations
|
|
79
|
+
- [OpenRuleBench](https://eyereasoner.github.io/eyeprolog/openrulebench/) — portable benchmark profile
|
|
80
80
|
## RDF, Prolog, and symbiotic knowledge graphs
|
|
81
81
|
|
|
82
82
|
EyeProlog can sit behind an RDF knowledge graph without inventing a private graph representation. [`rdf-prolog-interchange`](https://github.com/eyereasoner/rdf-prolog-interchange) converts RDF 1.2 datasets to ordinary `rdf(Subject, Predicate, Object, Graph)` facts, EyeProlog applies portable rules, and ground `rdf/4` results can be converted back to RDF.
|
|
@@ -86,8 +86,8 @@ The checked [Symbiotic Knowledge Graphs example](examples/symbiotic-knowledge-gr
|
|
|
86
86
|
The same RDF → Prolog → RDF boundary is exercised by five additional checked scenarios: [cross-organization data sharing](https://eyereasoner.github.io/eyeprolog/examples/deck/cross-organization-data-sharing), [explainable EV-depot configuration](https://eyereasoner.github.io/eyeprolog/examples/deck/explainable-ev-depot-configuration), [operational incident response](https://eyereasoner.github.io/eyeprolog/examples/deck/operational-incident-response), [software supply-chain vulnerability response](https://eyereasoner.github.io/eyeprolog/examples/deck/sbom-vulnerability-response), and a [scientific evidence graph](https://eyereasoner.github.io/eyeprolog/examples/deck/scientific-evidence-graph). Together they cover policy decisions, reversible configuration reasoning, dependency-graph diagnosis, transitive SBOM exposure, and evidence aggregation with explicit disagreement.
|
|
87
87
|
|
|
88
88
|
## Performance
|
|
89
|
-
EyeProlog does not carry a separate wall-clock benchmark harness. `npm test`'s own elapsed time, run across thousands of conformance, regression, and example programs, is the coarse performance indicator instead — a real slowdown shows up there. [OpenRuleBench](openrulebench/
|
|
90
|
-
For the project policy on post-ISO-standard and WG17 compatibility features such as digit separators, see [ISO/WG17 compatibility extensions](test/conformance/ISO-WG17-EXTENSIONS
|
|
89
|
+
EyeProlog does not carry a separate wall-clock benchmark harness. `npm test`'s own elapsed time, run across thousands of conformance, regression, and example programs, is the coarse performance indicator instead — a real slowdown shows up there. [OpenRuleBench](https://eyereasoner.github.io/eyeprolog/openrulebench/) remains a dedicated, checked correctness-and-scale benchmark for the Datalog rule-engine profile specifically.
|
|
90
|
+
For the project policy on post-ISO-standard and WG17 compatibility features such as digit separators, see [ISO/WG17 compatibility extensions](https://eyereasoner.github.io/eyeprolog/test/conformance/ISO-WG17-EXTENSIONS).
|
|
91
91
|
## Development
|
|
92
92
|
```sh
|
|
93
93
|
git clone https://github.com/eyereasoner/eyeprolog.git
|
|
@@ -100,6 +100,6 @@ The npm command list is deliberately small:
|
|
|
100
100
|
- `npm test` (or `npm run test`): run the release gate, including live upstream conformity checks (WG17 syntax among them).
|
|
101
101
|
- `npm run neumerkel`: re-fetch the upstream Neumerkel conformity sources and fail if the tracked report no longer matches them. The release gate reports that drift as a warning; this command makes it an error, so it answers "are we still current?" on its own.
|
|
102
102
|
|
|
103
|
-
Use `npm test -- --offline` for a network-free local pass (this also skips the live-discovered WG17 syntax check, since it has no offline snapshot). Focused checks remain available directly, for example `node test/run-regression.mjs docs`; see [test runners](test/
|
|
103
|
+
Use `npm test -- --offline` for a network-free local pass (this also skips the live-discovered WG17 syntax check, since it has no offline snapshot). Focused checks remain available directly, for example `node test/run-regression.mjs docs`; see [test runners](https://eyereasoner.github.io/eyeprolog/test/). The automatic version hooks rebuild generated library and book files, run the release gate, refresh and stage conformance reports, and push the release. Detailed upstream report maintenance is documented in the [conformance guide](https://eyereasoner.github.io/eyeprolog/test/conformance/).
|
|
104
104
|
|
|
105
105
|
EyeProlog is released under the [MIT License](LICENSE.md).
|
package/package.json
CHANGED
package/playground.html
CHANGED
|
@@ -435,6 +435,8 @@
|
|
|
435
435
|
</footer>
|
|
436
436
|
|
|
437
437
|
<script type="module">
|
|
438
|
+
import { goalsFromSource } from './src/goal-metadata.js';
|
|
439
|
+
|
|
438
440
|
const EXAMPLES = [
|
|
439
441
|
"abstract-interpretation",
|
|
440
442
|
"access-control-policy",
|
|
@@ -886,7 +888,7 @@
|
|
|
886
888
|
}
|
|
887
889
|
|
|
888
890
|
function suggestedGoalsFromSource(text) {
|
|
889
|
-
return
|
|
891
|
+
return goalsFromSource(text).map((text) => text.replace(/\s+/g, ' '));
|
|
890
892
|
}
|
|
891
893
|
|
|
892
894
|
function selectedGoals() {
|
|
@@ -588,7 +588,7 @@ ${profile}`;
|
|
|
588
588
|
'ISO-EVALUABLE-FUNCTOR-MATRIX.md',
|
|
589
589
|
]) assertIncludes(book, name, `book ${name}`);
|
|
590
590
|
assertIncludes(readme, 'implementation reference is [*The Art of EyeProlog*]', 'README book hand-off');
|
|
591
|
-
assertIncludes(readme, 'test/conformance/ISO-COMPLIANCE
|
|
591
|
+
assertIncludes(readme, 'test/conformance/ISO-COMPLIANCE', 'README concise review link');
|
|
592
592
|
for (const heading of ['## Tabling', '## Cleanup-aware control', '## Strict ISO',
|
|
593
593
|
'## Module and definite clause grammar', '## Trealla and Scryer interoperability']) {
|
|
594
594
|
assertNotIncludes(readme, heading, `README delegates ${heading} to the book`);
|