eyeprolog 0.5.15 → 0.5.17

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # EyeProlog
2
2
 
3
3
  <p align="center">
4
- <img src="eyeprolog-logo.png" alt="EyeProlog logo" width="520">
4
+ <img src="eyeprolog-logo.svg" alt="EyeProlog logo" width="520">
5
5
  </p>
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/eyeprolog.svg)](https://www.npmjs.com/package/eyeprolog)
@@ -0,0 +1,148 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="80 220 1320 520" role="img" aria-labelledby="title desc">
2
+ <title id="title">EyeProlog</title>
3
+ <desc id="desc">A luminous cyan and gold EyeProlog wordmark with an eye, conversation bubble, and connected reasoning nodes.</desc>
4
+
5
+ <defs>
6
+ <linearGradient id="bg" x1="0" y1="0" x2="0" y2="1024" gradientUnits="userSpaceOnUse">
7
+ <stop stop-color="#666769"/>
8
+ <stop offset=".18" stop-color="#444748"/>
9
+ <stop offset=".52" stop-color="#252D2A"/>
10
+ <stop offset=".82" stop-color="#47494A"/>
11
+ <stop offset="1" stop-color="#6B6C6E"/>
12
+ </linearGradient>
13
+ <radialGradient id="vignette" cx="0" cy="0" r="1" gradientTransform="translate(770 500) scale(850 570)" gradientUnits="userSpaceOnUse">
14
+ <stop offset=".42" stop-color="#101514" stop-opacity="0"/>
15
+ <stop offset="1" stop-color="#101314" stop-opacity=".36"/>
16
+ </radialGradient>
17
+ <radialGradient id="cyan-haze" cx="0" cy="0" r="1" gradientTransform="translate(355 475) scale(350 275)" gradientUnits="userSpaceOnUse">
18
+ <stop stop-color="#00ECFF" stop-opacity=".67"/>
19
+ <stop offset=".35" stop-color="#00D9EF" stop-opacity=".21"/>
20
+ <stop offset="1" stop-color="#00CEE8" stop-opacity="0"/>
21
+ </radialGradient>
22
+ <radialGradient id="lime-haze" cx="0" cy="0" r="1" gradientTransform="translate(488 430) scale(270 260)" gradientUnits="userSpaceOnUse">
23
+ <stop stop-color="#F5F231" stop-opacity=".57"/>
24
+ <stop offset=".42" stop-color="#E7EC21" stop-opacity=".16"/>
25
+ <stop offset="1" stop-color="#E6E800" stop-opacity="0"/>
26
+ </radialGradient>
27
+ <radialGradient id="gold-haze" cx="0" cy="0" r="1" gradientTransform="translate(1060 500) scale(535 275)" gradientUnits="userSpaceOnUse">
28
+ <stop stop-color="#FFE200" stop-opacity=".56"/>
29
+ <stop offset=".38" stop-color="#FFD900" stop-opacity=".18"/>
30
+ <stop offset="1" stop-color="#FFD500" stop-opacity="0"/>
31
+ </radialGradient>
32
+ <linearGradient id="eye-rim" x1="157" y1="348" x2="546" y2="638" gradientUnits="userSpaceOnUse">
33
+ <stop stop-color="#00F0FF"/>
34
+ <stop offset=".44" stop-color="#05D7EC"/>
35
+ <stop offset=".72" stop-color="#CBE94A"/>
36
+ <stop offset="1" stop-color="#FFE700"/>
37
+ </linearGradient>
38
+ <linearGradient id="eye-body" x1="195" y1="418" x2="484" y2="576" gradientUnits="userSpaceOnUse">
39
+ <stop stop-color="#053A69"/>
40
+ <stop offset=".55" stop-color="#063B48"/>
41
+ <stop offset="1" stop-color="#29411E"/>
42
+ </linearGradient>
43
+ <radialGradient id="bubble" cx="0" cy="0" r="1" gradientTransform="translate(292 449) rotate(47) scale(123)" gradientUnits="userSpaceOnUse">
44
+ <stop stop-color="#187F8A"/>
45
+ <stop offset=".54" stop-color="#11424A"/>
46
+ <stop offset="1" stop-color="#183428"/>
47
+ </radialGradient>
48
+ <radialGradient id="orb" cx="0" cy="0" r="1" gradientTransform="translate(.32 .25) scale(.82)" gradientUnits="objectBoundingBox">
49
+ <stop stop-color="#FFFFFF"/>
50
+ <stop offset=".13" stop-color="#C9FFF1"/>
51
+ <stop offset=".48" stop-color="#43CDB1"/>
52
+ <stop offset="1" stop-color="#159487"/>
53
+ </radialGradient>
54
+ <linearGradient id="eye-word" x1="590" y1="400" x2="890" y2="560" gradientUnits="userSpaceOnUse">
55
+ <stop stop-color="#00E9FF"/>
56
+ <stop offset=".48" stop-color="#19D2E7"/>
57
+ <stop offset="1" stop-color="#4DD4AF"/>
58
+ </linearGradient>
59
+ <linearGradient id="prolog-word" x1="891" y1="400" x2="1398" y2="560" gradientUnits="userSpaceOnUse">
60
+ <stop stop-color="#FFF151"/>
61
+ <stop offset=".34" stop-color="#FFE400"/>
62
+ <stop offset="1" stop-color="#FFD900"/>
63
+ </linearGradient>
64
+ <linearGradient id="text-gloss" x1="0" y1="0" x2="0" y2="1">
65
+ <stop stop-color="#FFFFFF" stop-opacity=".82"/>
66
+ <stop offset=".25" stop-color="#FFFFFF" stop-opacity=".15"/>
67
+ <stop offset="1" stop-color="#FFFFFF" stop-opacity="0"/>
68
+ </linearGradient>
69
+ <pattern id="ribs" width="22" height="22" patternUnits="userSpaceOnUse">
70
+ <path d="M0 22V0" stroke="#FFFFFF" stroke-opacity=".022"/>
71
+ </pattern>
72
+ <filter id="wide-glow" x="-70%" y="-70%" width="240%" height="240%" color-interpolation-filters="sRGB">
73
+ <feGaussianBlur stdDeviation="19" result="b"/>
74
+ <feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
75
+ </filter>
76
+ <filter id="glow" x="-55%" y="-55%" width="210%" height="210%" color-interpolation-filters="sRGB">
77
+ <feGaussianBlur stdDeviation="7" result="b"/>
78
+ <feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
79
+ </filter>
80
+ <filter id="soft-glow" x="-50%" y="-50%" width="200%" height="200%" color-interpolation-filters="sRGB">
81
+ <feGaussianBlur stdDeviation="3" result="b"/>
82
+ <feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
83
+ </filter>
84
+ <clipPath id="eye-word-clip">
85
+ <text x="585" y="565" font-family="DejaVu Sans, Arial, sans-serif" font-size="174" font-weight="400" letter-spacing="-9">Eye</text>
86
+ </clipPath>
87
+ <clipPath id="prolog-word-clip">
88
+ <text x="876" y="565" font-family="DejaVu Sans, Arial, sans-serif" font-size="174" font-weight="400" letter-spacing="-10">Prolog</text>
89
+ </clipPath>
90
+ </defs>
91
+
92
+ <!-- Eye-shaped reasoning emblem. -->
93
+ <g stroke-linecap="round" stroke-linejoin="round">
94
+ <path d="M158 470c52-91 129-134 220-134 58 0 106 17 145 47-69-15-145 11-201 87 56 76 132 102 201 87-39 30-87 47-145 47-91 0-168-43-220-134Z"
95
+ fill="url(#eye-body)" stroke="#00E9FF" stroke-width="10" filter="url(#glow)"/>
96
+ <path d="M198 470c45-68 105-105 180-105 47 0 88 14 123 38-53-10-111 13-153 67 42 54 100 77 153 67-35 24-76 38-123 38-75 0-135-37-180-105Z"
97
+ fill="none" stroke="url(#eye-rim)" stroke-width="7"/>
98
+ <path d="M159 470c52-88 129-128 219-128 50 0 98 14 139 40" fill="none" stroke="#D9FFFF" stroke-width="3.2" opacity=".9"/>
99
+ <path d="M199 474c45 64 105 96 179 96 46 0 87-12 123-35" fill="none" stroke="#FFF276" stroke-width="3" opacity=".66"/>
100
+ </g>
101
+
102
+ <!-- Conversation bubble at the center of the eye. -->
103
+ <g filter="url(#glow)">
104
+ <path d="M416 468c0 56-45 101-101 101-18 0-36-5-51-13l-47 23 23-44c-17-18-27-41-27-67 0-56 46-101 102-101s101 45 101 101Z"
105
+ fill="url(#bubble)" stroke="url(#eye-rim)" stroke-width="8"/>
106
+ <path d="M232 456c7-38 38-66 76-72" fill="none" stroke="#FFFFFF" stroke-width="4" opacity=".68"/>
107
+ </g>
108
+ <g filter="url(#soft-glow)" stroke="#FFFFFF" stroke-width="3">
109
+ <circle cx="278" cy="468" r="12" fill="#ECFFFF"/>
110
+ <circle cx="316" cy="468" r="12" fill="#CBEA78"/>
111
+ <circle cx="354" cy="468" r="12" fill="#FFF05C"/>
112
+ </g>
113
+
114
+ <!-- Logic graph emerging from the eye. -->
115
+ <g fill="none" stroke="url(#eye-rim)" stroke-width="8" stroke-linejoin="round" stroke-linecap="round" filter="url(#soft-glow)">
116
+ <path d="m383 393 69-69"/>
117
+ <path d="M415 468h101"/>
118
+ <path d="m383 543 69 69"/>
119
+ <path d="M405 399h82l38 40" opacity=".76"/>
120
+ <path d="M405 537h82l38-40" opacity=".76"/>
121
+ <path d="M431 421h65l30 47-30 47h-65" stroke="#FFE300" opacity=".67"/>
122
+ </g>
123
+ <g stroke="#FFF970" stroke-width="5" filter="url(#glow)">
124
+ <circle cx="465" cy="310" r="33" fill="url(#orb)"/>
125
+ <circle cx="532" cy="468" r="37" fill="url(#orb)"/>
126
+ <circle cx="465" cy="626" r="33" fill="url(#orb)"/>
127
+ </g>
128
+ <g fill="none" stroke="#FFFFFF" stroke-width="3" stroke-linecap="round" opacity=".88">
129
+ <path d="M452 298c7-9 18-12 29-8"/>
130
+ <path d="M518 454c8-9 20-12 31-7"/>
131
+ <path d="M452 614c7-9 18-12 29-8"/>
132
+ </g>
133
+ <path d="m485 384 23-27 23 27-23 27Z" fill="#FFE700" stroke="#FFFFB8" stroke-width="3" filter="url(#soft-glow)"/>
134
+ <circle cx="505" cy="548" r="6" fill="#F1FFF4" filter="url(#soft-glow)"/>
135
+ <path d="m519 468 10 10 21-26" fill="none" stroke="#FFFCEB" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" filter="url(#soft-glow)"/>
136
+
137
+ <!-- Wordmark depth, color, outline, and glass highlight. -->
138
+ <g font-family="DejaVu Sans, Arial, sans-serif" font-size="174" font-weight="400">
139
+ <text x="585" y="573" fill="#071718" opacity=".86" letter-spacing="-9">Eye</text>
140
+ <text x="876" y="573" fill="#241F06" opacity=".86" letter-spacing="-10">Prolog</text>
141
+ <text x="585" y="565" fill="url(#eye-word)" stroke="#8BFAFF" stroke-width="2.3" letter-spacing="-9" filter="url(#soft-glow)">Eye</text>
142
+ <text x="876" y="565" fill="url(#prolog-word)" stroke="#FFF58C" stroke-width="2.3" letter-spacing="-10" filter="url(#soft-glow)">Prolog</text>
143
+ </g>
144
+ <g opacity=".65">
145
+ <path d="M574 381h328v47c-95-18-210-14-328 17Z" fill="url(#text-gloss)" clip-path="url(#eye-word-clip)"/>
146
+ <path d="M861 381h555v47c-167-18-361-14-555 17Z" fill="url(#text-gloss)" clip-path="url(#prolog-word-clip)"/>
147
+ </g>
148
+ </svg>
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.5.15",
6
+ "version": "0.5.17",
7
7
  "description": "EyeProlog turns facts and rules into answers and proofs.",
8
8
  "type": "module",
9
9
  "main": "./index.js",
@@ -31,7 +31,7 @@
31
31
  "index.js",
32
32
  "index.d.ts",
33
33
  "playground.html",
34
- "eyeprolog-logo.png",
34
+ "eyeprolog-logo.svg",
35
35
  "bin",
36
36
  "src",
37
37
  "tools",
package/playground.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <link rel="icon" type="image/png" href="eyeprolog-logo.png">
6
+ <link rel="icon" type="image/png" href="eyeprolog-logo.svg">
7
7
  <title>EyeProlog Playground</title>
8
8
  <style>
9
9
  :root {
@@ -1858,7 +1858,7 @@ function bookBuiltinNames() {
1858
1858
 
1859
1859
  function bookEyePrologLibraryNames() {
1860
1860
  const book = fs.readFileSync(path.join(packageRoot, 'the-art-of-eyeprolog.md'), 'utf8');
1861
- return documentedBuiltinNames(between(book, '<!-- eyeprolog-library-catalog:start -->', '<!-- eyeprolog-library-catalog:end -->'), 1);
1861
+ return documentedBuiltinNames(between(book, '<!-- eyeprolog-library-catalog:start -->', '<!-- eyeprolog-library-catalog:end -->'), 2);
1862
1862
  }
1863
1863
 
1864
1864
  function bookBuiltinSummary() {
@@ -3,7 +3,7 @@
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
- <img src="eyeprolog-logo.png" alt="EyeProlog logo joining ISO Prolog rules with RDF linked data." width="420">
6
+ <img src="eyeprolog-logo.svg" alt="EyeProlog logo joining ISO Prolog rules with RDF linked data." width="420">
7
7
  </p>
8
8
 
9
9
  **Copyright © 2021–2026 Jos De Roo, KNoWS office of IDLab, Ghent University –
@@ -5220,9 +5220,6 @@ contains 115 name/arity entries across 94 names.
5220
5220
  | Term output | `write/1`, `write/2`, `writeq/1`, `writeq/2`, `write_canonical/1`, `write_canonical/2`, `write_term/2`, `write_term/3` |
5221
5221
  | Arithmetic | `is/2`, `=:=/2`, `=\=/2`, `</2`, `=</2`, `>/2`, `>=/2` |
5222
5222
 
5223
- `false/0` and `fail/0` both fail as goals. `false/0` is a protected static
5224
- procedure and cannot be defined by source clauses or declared dynamic.
5225
-
5226
5223
  ### Reading the built-in reference
5227
5224
 
5228
5225
  The call patterns below use `+` for an argument that must be sufficiently
@@ -5530,27 +5527,15 @@ standard fallback relation.
5530
5527
 
5531
5528
  <!-- eyeprolog-library-catalog:start -->
5532
5529
 
5533
- | EyeProlog library predicates |
5534
- | --- |
5535
- | `append/3`, `member/2`, `select/3`, `last/2` |
5536
- | `nth0/3`, `nth1/3`, `set_nth0/4`, `take/3`, `drop/3`, `slice/4` |
5537
- | `reverse/2`, `length/2`, `sum_list/2` |
5538
- | `min_list/2`, `max_list/2` |
5539
- | `list_to_set/2`, `sort_unique/2` |
5540
- | `string_concat/3`, `contains/2`, `matches/2` |
5541
- | `join/3`, `substring/4` |
5542
- | `countall/2`, `sumall/3` |
5543
- | `aggregate_min/5`, `aggregate_max/5` |
5544
- | `between/3`, `smallest_divisor_from/3`, `random/3` |
5545
- | `apply/3` |
5546
- | `maplist/3` |
5547
- | `acos/2`, `asin/2`, `atan2/3`, `tan/2` |
5548
- | `lt/2`, `le/2`, `gt/2`, `ge/2` |
5549
- | `uuid/3`, `difference/3` |
5550
- | `matches/3` |
5551
- | `split/3`, `replace/4` |
5552
- | `lowercase/2`, `uppercase/2`, `trim/2` |
5553
- | `number_string/2`, `atom_string/2`, `term_string/2` |
5530
+ | Family | Registered predicate indicators |
5531
+ | --- | --- |
5532
+ | Meta-call and mapping | `apply/3`, `maplist/3` |
5533
+ | Arithmetic and generation | `tan/2`, `asin/2`, `acos/2`, `atan2/3`, `between/3`, `smallest_divisor_from/3`, `random/3` |
5534
+ | Comparison | `lt/2`, `le/2`, `gt/2`, `ge/2` |
5535
+ | Identifiers and dates | `uuid/3`, `difference/3` |
5536
+ | Lists | `append/3`, `member/2`, `select/3`, `last/2`, `nth0/3`, `nth1/3`, `set_nth0/4`, `take/3`, `drop/3`, `slice/4`, `reverse/2`, `length/2`, `sum_list/2`, `min_list/2`, `max_list/2`, `list_to_set/2`, `sort_unique/2` |
5537
+ | Text and pattern matching | `string_concat/3`, `contains/2`, `matches/2`, `matches/3`, `split/3`, `join/3`, `substring/4`, `replace/4`, `lowercase/2`, `uppercase/2`, `trim/2`, `number_string/2`, `atom_string/2`, `term_string/2` |
5538
+ | Aggregation | `countall/2`, `sumall/3`, `aggregate_min/5`, `aggregate_max/5` |
5554
5539
 
5555
5540
  <!-- eyeprolog-library-catalog:end -->
5556
5541
 
Binary file