eyeling 1.5.35 → 1.5.37

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.
@@ -0,0 +1,498 @@
1
+ @prefix : <http://example.org/brewclub#> .
2
+ @prefix genid: <https://eyereasoner.github.io/.well-known/genid/> .
3
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
4
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
5
+
6
+ # ----------------------------------------------------------------------
7
+ # Proof for derived triple:
8
+ # :bob :age 16 .
9
+ # It holds because the following instance of the rule body is provable:
10
+ # :bob :profileJson """{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON .
11
+ # ("""{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON "/age") string:jsonPointer 16 .
12
+ # ("""{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON "/name") string:jsonPointer "Bob" .
13
+ # ("""{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON "/city") string:jsonPointer "Brussels" .
14
+ # via the schematic forward rule:
15
+ # {
16
+ # ?p :profileJson ?j .
17
+ # (?j "/age") string:jsonPointer ?age .
18
+ # (?j "/name") string:jsonPointer ?name .
19
+ # (?j "/city") string:jsonPointer ?city .
20
+ # } => {
21
+ # ?p :age ?age .
22
+ # ?p :name ?name .
23
+ # ?p :city ?city .
24
+ # } .
25
+ # with substitution (on rule variables):
26
+ # ?age = 16
27
+ # ?city = "Brussels"
28
+ # ?j = """{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON
29
+ # ?name = "Bob"
30
+ # ?p = :bob
31
+ # Therefore the derived triple above is entailed by the rules and facts.
32
+ # ----------------------------------------------------------------------
33
+
34
+ :bob :age 16 .
35
+
36
+ # ----------------------------------------------------------------------
37
+ # Proof for derived triple:
38
+ # :bob :name "Bob" .
39
+ # It holds because the following instance of the rule body is provable:
40
+ # :bob :profileJson """{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON .
41
+ # ("""{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON "/age") string:jsonPointer 16 .
42
+ # ("""{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON "/name") string:jsonPointer "Bob" .
43
+ # ("""{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON "/city") string:jsonPointer "Brussels" .
44
+ # via the schematic forward rule:
45
+ # {
46
+ # ?p :profileJson ?j .
47
+ # (?j "/age") string:jsonPointer ?age .
48
+ # (?j "/name") string:jsonPointer ?name .
49
+ # (?j "/city") string:jsonPointer ?city .
50
+ # } => {
51
+ # ?p :age ?age .
52
+ # ?p :name ?name .
53
+ # ?p :city ?city .
54
+ # } .
55
+ # with substitution (on rule variables):
56
+ # ?age = 16
57
+ # ?city = "Brussels"
58
+ # ?j = """{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON
59
+ # ?name = "Bob"
60
+ # ?p = :bob
61
+ # Therefore the derived triple above is entailed by the rules and facts.
62
+ # ----------------------------------------------------------------------
63
+
64
+ :bob :name "Bob" .
65
+
66
+ # ----------------------------------------------------------------------
67
+ # Proof for derived triple:
68
+ # :bob :city "Brussels" .
69
+ # It holds because the following instance of the rule body is provable:
70
+ # :bob :profileJson """{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON .
71
+ # ("""{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON "/age") string:jsonPointer 16 .
72
+ # ("""{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON "/name") string:jsonPointer "Bob" .
73
+ # ("""{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON "/city") string:jsonPointer "Brussels" .
74
+ # via the schematic forward rule:
75
+ # {
76
+ # ?p :profileJson ?j .
77
+ # (?j "/age") string:jsonPointer ?age .
78
+ # (?j "/name") string:jsonPointer ?name .
79
+ # (?j "/city") string:jsonPointer ?city .
80
+ # } => {
81
+ # ?p :age ?age .
82
+ # ?p :name ?name .
83
+ # ?p :city ?city .
84
+ # } .
85
+ # with substitution (on rule variables):
86
+ # ?age = 16
87
+ # ?city = "Brussels"
88
+ # ?j = """{ "name": "Bob", "age": 16, "city": "Brussels" }"""^^rdf:JSON
89
+ # ?name = "Bob"
90
+ # ?p = :bob
91
+ # Therefore the derived triple above is entailed by the rules and facts.
92
+ # ----------------------------------------------------------------------
93
+
94
+ :bob :city "Brussels" .
95
+
96
+ # ----------------------------------------------------------------------
97
+ # Proof for derived triple:
98
+ # :alice :age 23 .
99
+ # It holds because the following instance of the rule body is provable:
100
+ # :alice :profileJson """{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON .
101
+ # ("""{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON "/age") string:jsonPointer 23 .
102
+ # ("""{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON "/name") string:jsonPointer "Alice" .
103
+ # ("""{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON "/city") string:jsonPointer "Brussels" .
104
+ # via the schematic forward rule:
105
+ # {
106
+ # ?p :profileJson ?j .
107
+ # (?j "/age") string:jsonPointer ?age .
108
+ # (?j "/name") string:jsonPointer ?name .
109
+ # (?j "/city") string:jsonPointer ?city .
110
+ # } => {
111
+ # ?p :age ?age .
112
+ # ?p :name ?name .
113
+ # ?p :city ?city .
114
+ # } .
115
+ # with substitution (on rule variables):
116
+ # ?age = 23
117
+ # ?city = "Brussels"
118
+ # ?j = """{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON
119
+ # ?name = "Alice"
120
+ # ?p = :alice
121
+ # Therefore the derived triple above is entailed by the rules and facts.
122
+ # ----------------------------------------------------------------------
123
+
124
+ :alice :age 23 .
125
+
126
+ # ----------------------------------------------------------------------
127
+ # Proof for derived triple:
128
+ # :alice :name "Alice" .
129
+ # It holds because the following instance of the rule body is provable:
130
+ # :alice :profileJson """{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON .
131
+ # ("""{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON "/age") string:jsonPointer 23 .
132
+ # ("""{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON "/name") string:jsonPointer "Alice" .
133
+ # ("""{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON "/city") string:jsonPointer "Brussels" .
134
+ # via the schematic forward rule:
135
+ # {
136
+ # ?p :profileJson ?j .
137
+ # (?j "/age") string:jsonPointer ?age .
138
+ # (?j "/name") string:jsonPointer ?name .
139
+ # (?j "/city") string:jsonPointer ?city .
140
+ # } => {
141
+ # ?p :age ?age .
142
+ # ?p :name ?name .
143
+ # ?p :city ?city .
144
+ # } .
145
+ # with substitution (on rule variables):
146
+ # ?age = 23
147
+ # ?city = "Brussels"
148
+ # ?j = """{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON
149
+ # ?name = "Alice"
150
+ # ?p = :alice
151
+ # Therefore the derived triple above is entailed by the rules and facts.
152
+ # ----------------------------------------------------------------------
153
+
154
+ :alice :name "Alice" .
155
+
156
+ # ----------------------------------------------------------------------
157
+ # Proof for derived triple:
158
+ # :alice :city "Brussels" .
159
+ # It holds because the following instance of the rule body is provable:
160
+ # :alice :profileJson """{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON .
161
+ # ("""{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON "/age") string:jsonPointer 23 .
162
+ # ("""{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON "/name") string:jsonPointer "Alice" .
163
+ # ("""{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON "/city") string:jsonPointer "Brussels" .
164
+ # via the schematic forward rule:
165
+ # {
166
+ # ?p :profileJson ?j .
167
+ # (?j "/age") string:jsonPointer ?age .
168
+ # (?j "/name") string:jsonPointer ?name .
169
+ # (?j "/city") string:jsonPointer ?city .
170
+ # } => {
171
+ # ?p :age ?age .
172
+ # ?p :name ?name .
173
+ # ?p :city ?city .
174
+ # } .
175
+ # with substitution (on rule variables):
176
+ # ?age = 23
177
+ # ?city = "Brussels"
178
+ # ?j = """{ "name": "Alice", "age": 23, "city": "Brussels" }"""^^rdf:JSON
179
+ # ?name = "Alice"
180
+ # ?p = :alice
181
+ # Therefore the derived triple above is entailed by the rules and facts.
182
+ # ----------------------------------------------------------------------
183
+
184
+ :alice :city "Brussels" .
185
+
186
+ # ----------------------------------------------------------------------
187
+ # Proof for derived triple:
188
+ # genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 a :MembershipCard .
189
+ # It holds because the following instance of the rule body is provable:
190
+ # :alice a :Adult .
191
+ # :alice :name "Alice" .
192
+ # :run :now "2000-01-01T00:00:00+00:00"^^xsd:dateTime .
193
+ # (:alice) log:skolem genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 .
194
+ # ("Brew Club card for " "Alice") string:concatenation "Brew Club card for Alice" .
195
+ # via the schematic forward rule:
196
+ # {
197
+ # ?p a :Adult .
198
+ # ?p :name ?name .
199
+ # :run :now ?now .
200
+ # (?p) log:skolem ?card .
201
+ # ("Brew Club card for " ?name) string:concatenation ?label .
202
+ # } => {
203
+ # ?card a :MembershipCard .
204
+ # ?card :holder ?p .
205
+ # ?card :issuedAt ?now .
206
+ # ?card rdfs:label ?label .
207
+ # } .
208
+ # with substitution (on rule variables):
209
+ # ?card = genid:9e06e026-ada3-9430-3e11-8dd8c37dac24
210
+ # ?label = "Brew Club card for Alice"
211
+ # ?name = "Alice"
212
+ # ?now = "2000-01-01T00:00:00+00:00"^^xsd:dateTime
213
+ # ?p = :alice
214
+ # Therefore the derived triple above is entailed by the rules and facts.
215
+ # ----------------------------------------------------------------------
216
+
217
+ genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 a :MembershipCard .
218
+
219
+ # ----------------------------------------------------------------------
220
+ # Proof for derived triple:
221
+ # genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 :holder :alice .
222
+ # It holds because the following instance of the rule body is provable:
223
+ # :alice a :Adult .
224
+ # :alice :name "Alice" .
225
+ # :run :now "2000-01-01T00:00:00+00:00"^^xsd:dateTime .
226
+ # (:alice) log:skolem genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 .
227
+ # ("Brew Club card for " "Alice") string:concatenation "Brew Club card for Alice" .
228
+ # via the schematic forward rule:
229
+ # {
230
+ # ?p a :Adult .
231
+ # ?p :name ?name .
232
+ # :run :now ?now .
233
+ # (?p) log:skolem ?card .
234
+ # ("Brew Club card for " ?name) string:concatenation ?label .
235
+ # } => {
236
+ # ?card a :MembershipCard .
237
+ # ?card :holder ?p .
238
+ # ?card :issuedAt ?now .
239
+ # ?card rdfs:label ?label .
240
+ # } .
241
+ # with substitution (on rule variables):
242
+ # ?card = genid:9e06e026-ada3-9430-3e11-8dd8c37dac24
243
+ # ?label = "Brew Club card for Alice"
244
+ # ?name = "Alice"
245
+ # ?now = "2000-01-01T00:00:00+00:00"^^xsd:dateTime
246
+ # ?p = :alice
247
+ # Therefore the derived triple above is entailed by the rules and facts.
248
+ # ----------------------------------------------------------------------
249
+
250
+ genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 :holder :alice .
251
+
252
+ # ----------------------------------------------------------------------
253
+ # Proof for derived triple:
254
+ # genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 :issuedAt "2000-01-01T00:00:00+00:00"^^xsd:dateTime .
255
+ # It holds because the following instance of the rule body is provable:
256
+ # :alice a :Adult .
257
+ # :alice :name "Alice" .
258
+ # :run :now "2000-01-01T00:00:00+00:00"^^xsd:dateTime .
259
+ # (:alice) log:skolem genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 .
260
+ # ("Brew Club card for " "Alice") string:concatenation "Brew Club card for Alice" .
261
+ # via the schematic forward rule:
262
+ # {
263
+ # ?p a :Adult .
264
+ # ?p :name ?name .
265
+ # :run :now ?now .
266
+ # (?p) log:skolem ?card .
267
+ # ("Brew Club card for " ?name) string:concatenation ?label .
268
+ # } => {
269
+ # ?card a :MembershipCard .
270
+ # ?card :holder ?p .
271
+ # ?card :issuedAt ?now .
272
+ # ?card rdfs:label ?label .
273
+ # } .
274
+ # with substitution (on rule variables):
275
+ # ?card = genid:9e06e026-ada3-9430-3e11-8dd8c37dac24
276
+ # ?label = "Brew Club card for Alice"
277
+ # ?name = "Alice"
278
+ # ?now = "2000-01-01T00:00:00+00:00"^^xsd:dateTime
279
+ # ?p = :alice
280
+ # Therefore the derived triple above is entailed by the rules and facts.
281
+ # ----------------------------------------------------------------------
282
+
283
+ genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 :issuedAt "2000-01-01T00:00:00+00:00"^^xsd:dateTime .
284
+
285
+ # ----------------------------------------------------------------------
286
+ # Proof for derived triple:
287
+ # genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 rdfs:label "Brew Club card for Alice" .
288
+ # It holds because the following instance of the rule body is provable:
289
+ # :alice a :Adult .
290
+ # :alice :name "Alice" .
291
+ # :run :now "2000-01-01T00:00:00+00:00"^^xsd:dateTime .
292
+ # (:alice) log:skolem genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 .
293
+ # ("Brew Club card for " "Alice") string:concatenation "Brew Club card for Alice" .
294
+ # via the schematic forward rule:
295
+ # {
296
+ # ?p a :Adult .
297
+ # ?p :name ?name .
298
+ # :run :now ?now .
299
+ # (?p) log:skolem ?card .
300
+ # ("Brew Club card for " ?name) string:concatenation ?label .
301
+ # } => {
302
+ # ?card a :MembershipCard .
303
+ # ?card :holder ?p .
304
+ # ?card :issuedAt ?now .
305
+ # ?card rdfs:label ?label .
306
+ # } .
307
+ # with substitution (on rule variables):
308
+ # ?card = genid:9e06e026-ada3-9430-3e11-8dd8c37dac24
309
+ # ?label = "Brew Club card for Alice"
310
+ # ?name = "Alice"
311
+ # ?now = "2000-01-01T00:00:00+00:00"^^xsd:dateTime
312
+ # ?p = :alice
313
+ # Therefore the derived triple above is entailed by the rules and facts.
314
+ # ----------------------------------------------------------------------
315
+
316
+ genid:9e06e026-ada3-9430-3e11-8dd8c37dac24 rdfs:label "Brew Club card for Alice" .
317
+
318
+ # ----------------------------------------------------------------------
319
+ # Proof for derived triple:
320
+ # :order1 :eligibleDiscount true .
321
+ # It holds because the following instance of the rule body is provable:
322
+ # :order1 a :Order .
323
+ # :order1 a :BigOrder .
324
+ # :order1 :by :alice .
325
+ # :alice a :Adult .
326
+ # via the schematic forward rule:
327
+ # {
328
+ # ?o a :Order .
329
+ # ?o a :BigOrder .
330
+ # ?o :by ?p .
331
+ # ?p a :Adult .
332
+ # } => {
333
+ # ?o :eligibleDiscount true .
334
+ # } .
335
+ # with substitution (on rule variables):
336
+ # ?o = :order1
337
+ # ?p = :alice
338
+ # Therefore the derived triple above is entailed by the rules and facts.
339
+ # ----------------------------------------------------------------------
340
+
341
+ :order1 :eligibleDiscount true .
342
+
343
+ # ----------------------------------------------------------------------
344
+ # Proof for derived triple:
345
+ # genid:fbd10997-9fd6-99ce-fa19-a82424656d08 a :Receipt .
346
+ # It holds because the following instance of the rule body is provable:
347
+ # :order2 a :Order .
348
+ # :order2 :id "ORD-2025-002" .
349
+ # ("ORD-2025-002") log:skolem genid:fbd10997-9fd6-99ce-fa19-a82424656d08 .
350
+ # via the schematic forward rule:
351
+ # {
352
+ # ?o a :Order .
353
+ # ?o :id ?id .
354
+ # (?id) log:skolem ?receipt .
355
+ # } => {
356
+ # ?receipt a :Receipt .
357
+ # ?receipt :forOrder ?o .
358
+ # ?receipt :receiptId ?id .
359
+ # } .
360
+ # with substitution (on rule variables):
361
+ # ?id = "ORD-2025-002"
362
+ # ?o = :order2
363
+ # ?receipt = genid:fbd10997-9fd6-99ce-fa19-a82424656d08
364
+ # Therefore the derived triple above is entailed by the rules and facts.
365
+ # ----------------------------------------------------------------------
366
+
367
+ genid:fbd10997-9fd6-99ce-fa19-a82424656d08 a :Receipt .
368
+
369
+ # ----------------------------------------------------------------------
370
+ # Proof for derived triple:
371
+ # genid:fbd10997-9fd6-99ce-fa19-a82424656d08 :forOrder :order2 .
372
+ # It holds because the following instance of the rule body is provable:
373
+ # :order2 a :Order .
374
+ # :order2 :id "ORD-2025-002" .
375
+ # ("ORD-2025-002") log:skolem genid:fbd10997-9fd6-99ce-fa19-a82424656d08 .
376
+ # via the schematic forward rule:
377
+ # {
378
+ # ?o a :Order .
379
+ # ?o :id ?id .
380
+ # (?id) log:skolem ?receipt .
381
+ # } => {
382
+ # ?receipt a :Receipt .
383
+ # ?receipt :forOrder ?o .
384
+ # ?receipt :receiptId ?id .
385
+ # } .
386
+ # with substitution (on rule variables):
387
+ # ?id = "ORD-2025-002"
388
+ # ?o = :order2
389
+ # ?receipt = genid:fbd10997-9fd6-99ce-fa19-a82424656d08
390
+ # Therefore the derived triple above is entailed by the rules and facts.
391
+ # ----------------------------------------------------------------------
392
+
393
+ genid:fbd10997-9fd6-99ce-fa19-a82424656d08 :forOrder :order2 .
394
+
395
+ # ----------------------------------------------------------------------
396
+ # Proof for derived triple:
397
+ # genid:fbd10997-9fd6-99ce-fa19-a82424656d08 :receiptId "ORD-2025-002" .
398
+ # It holds because the following instance of the rule body is provable:
399
+ # :order2 a :Order .
400
+ # :order2 :id "ORD-2025-002" .
401
+ # ("ORD-2025-002") log:skolem genid:fbd10997-9fd6-99ce-fa19-a82424656d08 .
402
+ # via the schematic forward rule:
403
+ # {
404
+ # ?o a :Order .
405
+ # ?o :id ?id .
406
+ # (?id) log:skolem ?receipt .
407
+ # } => {
408
+ # ?receipt a :Receipt .
409
+ # ?receipt :forOrder ?o .
410
+ # ?receipt :receiptId ?id .
411
+ # } .
412
+ # with substitution (on rule variables):
413
+ # ?id = "ORD-2025-002"
414
+ # ?o = :order2
415
+ # ?receipt = genid:fbd10997-9fd6-99ce-fa19-a82424656d08
416
+ # Therefore the derived triple above is entailed by the rules and facts.
417
+ # ----------------------------------------------------------------------
418
+
419
+ genid:fbd10997-9fd6-99ce-fa19-a82424656d08 :receiptId "ORD-2025-002" .
420
+
421
+ # ----------------------------------------------------------------------
422
+ # Proof for derived triple:
423
+ # genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4 a :Receipt .
424
+ # It holds because the following instance of the rule body is provable:
425
+ # :order1 a :Order .
426
+ # :order1 :id "ORD-2025-001" .
427
+ # ("ORD-2025-001") log:skolem genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4 .
428
+ # via the schematic forward rule:
429
+ # {
430
+ # ?o a :Order .
431
+ # ?o :id ?id .
432
+ # (?id) log:skolem ?receipt .
433
+ # } => {
434
+ # ?receipt a :Receipt .
435
+ # ?receipt :forOrder ?o .
436
+ # ?receipt :receiptId ?id .
437
+ # } .
438
+ # with substitution (on rule variables):
439
+ # ?id = "ORD-2025-001"
440
+ # ?o = :order1
441
+ # ?receipt = genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4
442
+ # Therefore the derived triple above is entailed by the rules and facts.
443
+ # ----------------------------------------------------------------------
444
+
445
+ genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4 a :Receipt .
446
+
447
+ # ----------------------------------------------------------------------
448
+ # Proof for derived triple:
449
+ # genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4 :forOrder :order1 .
450
+ # It holds because the following instance of the rule body is provable:
451
+ # :order1 a :Order .
452
+ # :order1 :id "ORD-2025-001" .
453
+ # ("ORD-2025-001") log:skolem genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4 .
454
+ # via the schematic forward rule:
455
+ # {
456
+ # ?o a :Order .
457
+ # ?o :id ?id .
458
+ # (?id) log:skolem ?receipt .
459
+ # } => {
460
+ # ?receipt a :Receipt .
461
+ # ?receipt :forOrder ?o .
462
+ # ?receipt :receiptId ?id .
463
+ # } .
464
+ # with substitution (on rule variables):
465
+ # ?id = "ORD-2025-001"
466
+ # ?o = :order1
467
+ # ?receipt = genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4
468
+ # Therefore the derived triple above is entailed by the rules and facts.
469
+ # ----------------------------------------------------------------------
470
+
471
+ genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4 :forOrder :order1 .
472
+
473
+ # ----------------------------------------------------------------------
474
+ # Proof for derived triple:
475
+ # genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4 :receiptId "ORD-2025-001" .
476
+ # It holds because the following instance of the rule body is provable:
477
+ # :order1 a :Order .
478
+ # :order1 :id "ORD-2025-001" .
479
+ # ("ORD-2025-001") log:skolem genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4 .
480
+ # via the schematic forward rule:
481
+ # {
482
+ # ?o a :Order .
483
+ # ?o :id ?id .
484
+ # (?id) log:skolem ?receipt .
485
+ # } => {
486
+ # ?receipt a :Receipt .
487
+ # ?receipt :forOrder ?o .
488
+ # ?receipt :receiptId ?id .
489
+ # } .
490
+ # with substitution (on rule variables):
491
+ # ?id = "ORD-2025-001"
492
+ # ?o = :order1
493
+ # ?receipt = genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4
494
+ # Therefore the derived triple above is entailed by the rules and facts.
495
+ # ----------------------------------------------------------------------
496
+
497
+ genid:35d6c1c8-ee0c-5a7a-8ec2-654c5e1b34b4 :receiptId "ORD-2025-001" .
498
+