eyeling 1.6.11 → 1.6.13

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.
@@ -4,20 +4,8 @@
4
4
  # Proof for derived triple:
5
5
  # ex:checks ex:firstUserNameOk true .
6
6
  # It holds because the following instance of the rule body is provable:
7
- # ex:doc ex:json """{
8
- # "users": [
9
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
10
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
11
- # ],
12
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
13
- # }"""^^rdf:JSON .
14
- # ("""{
15
- # "users": [
16
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
17
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
18
- # ],
19
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
20
- # }"""^^rdf:JSON "/users/0/profile~1name") string:jsonPointer "Ada Lovelace" .
7
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
8
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users/0/profile~1name") string:jsonPointer "Ada Lovelace" .
21
9
  # via the schematic forward rule:
22
10
  # {
23
11
  # ex:doc ex:json ?J .
@@ -26,13 +14,7 @@
26
14
  # ex:checks ex:firstUserNameOk true .
27
15
  # } .
28
16
  # with substitution (on rule variables):
29
- # ?J = """{
30
- # "users": [
31
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
32
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
33
- # ],
34
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
35
- # }"""^^rdf:JSON
17
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
36
18
  # Therefore the derived triple above is entailed by the rules and facts.
37
19
  # ----------------------------------------------------------------------
38
20
 
@@ -42,27 +24,9 @@ ex:checks ex:firstUserNameOk true .
42
24
  # Proof for derived triple:
43
25
  # <urn:example:user:u1> a ex:AllowedUser .
44
26
  # It holds because the following instance of the rule body is provable:
45
- # ex:doc ex:json """{
46
- # "users": [
47
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
48
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
49
- # ],
50
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
51
- # }"""^^rdf:JSON .
52
- # ("""{
53
- # "users": [
54
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
55
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
56
- # ],
57
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
58
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
59
- # ("""{
60
- # "users": [
61
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
62
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
63
- # ],
64
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
65
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
27
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
28
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
29
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
66
30
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (0 """{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON) .
67
31
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/id") string:jsonPointer "u1" .
68
32
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/email") string:jsonPointer "ada@example.org" .
@@ -97,13 +61,7 @@ ex:checks ex:firstUserNameOk true .
97
61
  # ?EmailDomain = "example.org"
98
62
  # ?Id = "u1"
99
63
  # ?Idx = 0
100
- # ?J = """{
101
- # "users": [
102
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
103
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
104
- # ],
105
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
106
- # }"""^^rdf:JSON
64
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
107
65
  # ?Name = "Ada Lovelace"
108
66
  # ?UriStr = "urn:example:user:u1"
109
67
  # ?User = <urn:example:user:u1>
@@ -118,27 +76,9 @@ ex:checks ex:firstUserNameOk true .
118
76
  # Proof for derived triple:
119
77
  # <urn:example:user:u1> ex:name "Ada Lovelace" .
120
78
  # It holds because the following instance of the rule body is provable:
121
- # ex:doc ex:json """{
122
- # "users": [
123
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
124
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
125
- # ],
126
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
127
- # }"""^^rdf:JSON .
128
- # ("""{
129
- # "users": [
130
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
131
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
132
- # ],
133
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
134
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
135
- # ("""{
136
- # "users": [
137
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
138
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
139
- # ],
140
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
141
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
79
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
80
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
81
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
142
82
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (0 """{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON) .
143
83
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/id") string:jsonPointer "u1" .
144
84
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/email") string:jsonPointer "ada@example.org" .
@@ -173,13 +113,7 @@ ex:checks ex:firstUserNameOk true .
173
113
  # ?EmailDomain = "example.org"
174
114
  # ?Id = "u1"
175
115
  # ?Idx = 0
176
- # ?J = """{
177
- # "users": [
178
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
179
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
180
- # ],
181
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
182
- # }"""^^rdf:JSON
116
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
183
117
  # ?Name = "Ada Lovelace"
184
118
  # ?UriStr = "urn:example:user:u1"
185
119
  # ?User = <urn:example:user:u1>
@@ -194,27 +128,9 @@ ex:checks ex:firstUserNameOk true .
194
128
  # Proof for derived triple:
195
129
  # <urn:example:user:u1> ex:email "ada@example.org" .
196
130
  # It holds because the following instance of the rule body is provable:
197
- # ex:doc ex:json """{
198
- # "users": [
199
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
200
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
201
- # ],
202
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
203
- # }"""^^rdf:JSON .
204
- # ("""{
205
- # "users": [
206
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
207
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
208
- # ],
209
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
210
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
211
- # ("""{
212
- # "users": [
213
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
214
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
215
- # ],
216
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
217
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
131
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
132
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
133
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
218
134
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (0 """{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON) .
219
135
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/id") string:jsonPointer "u1" .
220
136
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/email") string:jsonPointer "ada@example.org" .
@@ -249,13 +165,7 @@ ex:checks ex:firstUserNameOk true .
249
165
  # ?EmailDomain = "example.org"
250
166
  # ?Id = "u1"
251
167
  # ?Idx = 0
252
- # ?J = """{
253
- # "users": [
254
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
255
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
256
- # ],
257
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
258
- # }"""^^rdf:JSON
168
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
259
169
  # ?Name = "Ada Lovelace"
260
170
  # ?UriStr = "urn:example:user:u1"
261
171
  # ?User = <urn:example:user:u1>
@@ -270,27 +180,9 @@ ex:checks ex:firstUserNameOk true .
270
180
  # Proof for derived triple:
271
181
  # <urn:example:user:u1> ex:emailDomain "example.org" .
272
182
  # It holds because the following instance of the rule body is provable:
273
- # ex:doc ex:json """{
274
- # "users": [
275
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
276
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
277
- # ],
278
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
279
- # }"""^^rdf:JSON .
280
- # ("""{
281
- # "users": [
282
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
283
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
284
- # ],
285
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
286
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
287
- # ("""{
288
- # "users": [
289
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
290
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
291
- # ],
292
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
293
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
183
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
184
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
185
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
294
186
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (0 """{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON) .
295
187
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/id") string:jsonPointer "u1" .
296
188
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/email") string:jsonPointer "ada@example.org" .
@@ -325,13 +217,7 @@ ex:checks ex:firstUserNameOk true .
325
217
  # ?EmailDomain = "example.org"
326
218
  # ?Id = "u1"
327
219
  # ?Idx = 0
328
- # ?J = """{
329
- # "users": [
330
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
331
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
332
- # ],
333
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
334
- # }"""^^rdf:JSON
220
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
335
221
  # ?Name = "Ada Lovelace"
336
222
  # ?UriStr = "urn:example:user:u1"
337
223
  # ?User = <urn:example:user:u1>
@@ -346,27 +232,9 @@ ex:checks ex:firstUserNameOk true .
346
232
  # Proof for derived triple:
347
233
  # <urn:example:user:u1> ex:userIndex 0 .
348
234
  # It holds because the following instance of the rule body is provable:
349
- # ex:doc ex:json """{
350
- # "users": [
351
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
352
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
353
- # ],
354
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
355
- # }"""^^rdf:JSON .
356
- # ("""{
357
- # "users": [
358
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
359
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
360
- # ],
361
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
362
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
363
- # ("""{
364
- # "users": [
365
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
366
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
367
- # ],
368
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
369
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
235
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
236
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
237
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
370
238
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (0 """{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON) .
371
239
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/id") string:jsonPointer "u1" .
372
240
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON "/email") string:jsonPointer "ada@example.org" .
@@ -401,13 +269,7 @@ ex:checks ex:firstUserNameOk true .
401
269
  # ?EmailDomain = "example.org"
402
270
  # ?Id = "u1"
403
271
  # ?Idx = 0
404
- # ?J = """{
405
- # "users": [
406
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
407
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
408
- # ],
409
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
410
- # }"""^^rdf:JSON
272
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
411
273
  # ?Name = "Ada Lovelace"
412
274
  # ?UriStr = "urn:example:user:u1"
413
275
  # ?User = <urn:example:user:u1>
@@ -422,27 +284,9 @@ ex:checks ex:firstUserNameOk true .
422
284
  # Proof for derived triple:
423
285
  # <urn:example:user:u2> a ex:BlockedUser .
424
286
  # It holds because the following instance of the rule body is provable:
425
- # ex:doc ex:json """{
426
- # "users": [
427
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
428
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
429
- # ],
430
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
431
- # }"""^^rdf:JSON .
432
- # ("""{
433
- # "users": [
434
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
435
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
436
- # ],
437
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
438
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
439
- # ("""{
440
- # "users": [
441
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
442
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
443
- # ],
444
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
445
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
287
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
288
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
289
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
446
290
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (1 """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
447
291
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/id") string:jsonPointer "u2" .
448
292
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/email") string:jsonPointer "bob@evil.invalid" .
@@ -477,13 +321,7 @@ ex:checks ex:firstUserNameOk true .
477
321
  # ?EmailDomain = "evil.invalid"
478
322
  # ?Id = "u2"
479
323
  # ?Idx = 1
480
- # ?J = """{
481
- # "users": [
482
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
483
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
484
- # ],
485
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
486
- # }"""^^rdf:JSON
324
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
487
325
  # ?Name = "Bob Mallory"
488
326
  # ?UriStr = "urn:example:user:u2"
489
327
  # ?User = <urn:example:user:u2>
@@ -498,27 +336,9 @@ ex:checks ex:firstUserNameOk true .
498
336
  # Proof for derived triple:
499
337
  # <urn:example:user:u2> ex:name "Bob Mallory" .
500
338
  # It holds because the following instance of the rule body is provable:
501
- # ex:doc ex:json """{
502
- # "users": [
503
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
504
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
505
- # ],
506
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
507
- # }"""^^rdf:JSON .
508
- # ("""{
509
- # "users": [
510
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
511
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
512
- # ],
513
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
514
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
515
- # ("""{
516
- # "users": [
517
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
518
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
519
- # ],
520
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
521
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
339
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
340
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
341
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
522
342
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (1 """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
523
343
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/id") string:jsonPointer "u2" .
524
344
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/email") string:jsonPointer "bob@evil.invalid" .
@@ -553,13 +373,7 @@ ex:checks ex:firstUserNameOk true .
553
373
  # ?EmailDomain = "evil.invalid"
554
374
  # ?Id = "u2"
555
375
  # ?Idx = 1
556
- # ?J = """{
557
- # "users": [
558
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
559
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
560
- # ],
561
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
562
- # }"""^^rdf:JSON
376
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
563
377
  # ?Name = "Bob Mallory"
564
378
  # ?UriStr = "urn:example:user:u2"
565
379
  # ?User = <urn:example:user:u2>
@@ -574,27 +388,9 @@ ex:checks ex:firstUserNameOk true .
574
388
  # Proof for derived triple:
575
389
  # <urn:example:user:u2> ex:email "bob@evil.invalid" .
576
390
  # It holds because the following instance of the rule body is provable:
577
- # ex:doc ex:json """{
578
- # "users": [
579
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
580
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
581
- # ],
582
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
583
- # }"""^^rdf:JSON .
584
- # ("""{
585
- # "users": [
586
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
587
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
588
- # ],
589
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
590
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
591
- # ("""{
592
- # "users": [
593
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
594
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
595
- # ],
596
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
597
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
391
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
392
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
393
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
598
394
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (1 """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
599
395
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/id") string:jsonPointer "u2" .
600
396
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/email") string:jsonPointer "bob@evil.invalid" .
@@ -629,13 +425,7 @@ ex:checks ex:firstUserNameOk true .
629
425
  # ?EmailDomain = "evil.invalid"
630
426
  # ?Id = "u2"
631
427
  # ?Idx = 1
632
- # ?J = """{
633
- # "users": [
634
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
635
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
636
- # ],
637
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
638
- # }"""^^rdf:JSON
428
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
639
429
  # ?Name = "Bob Mallory"
640
430
  # ?UriStr = "urn:example:user:u2"
641
431
  # ?User = <urn:example:user:u2>
@@ -650,27 +440,9 @@ ex:checks ex:firstUserNameOk true .
650
440
  # Proof for derived triple:
651
441
  # <urn:example:user:u2> ex:emailDomain "evil.invalid" .
652
442
  # It holds because the following instance of the rule body is provable:
653
- # ex:doc ex:json """{
654
- # "users": [
655
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
656
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
657
- # ],
658
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
659
- # }"""^^rdf:JSON .
660
- # ("""{
661
- # "users": [
662
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
663
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
664
- # ],
665
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
666
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
667
- # ("""{
668
- # "users": [
669
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
670
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
671
- # ],
672
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
673
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
443
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
444
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
445
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
674
446
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (1 """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
675
447
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/id") string:jsonPointer "u2" .
676
448
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/email") string:jsonPointer "bob@evil.invalid" .
@@ -705,13 +477,7 @@ ex:checks ex:firstUserNameOk true .
705
477
  # ?EmailDomain = "evil.invalid"
706
478
  # ?Id = "u2"
707
479
  # ?Idx = 1
708
- # ?J = """{
709
- # "users": [
710
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
711
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
712
- # ],
713
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
714
- # }"""^^rdf:JSON
480
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
715
481
  # ?Name = "Bob Mallory"
716
482
  # ?UriStr = "urn:example:user:u2"
717
483
  # ?User = <urn:example:user:u2>
@@ -726,27 +492,9 @@ ex:checks ex:firstUserNameOk true .
726
492
  # Proof for derived triple:
727
493
  # <urn:example:user:u2> ex:userIndex 1 .
728
494
  # It holds because the following instance of the rule body is provable:
729
- # ex:doc ex:json """{
730
- # "users": [
731
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
732
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
733
- # ],
734
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
735
- # }"""^^rdf:JSON .
736
- # ("""{
737
- # "users": [
738
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
739
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
740
- # ],
741
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
742
- # }"""^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
743
- # ("""{
744
- # "users": [
745
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
746
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
747
- # ],
748
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
749
- # }"""^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
495
+ # ex:doc ex:json "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON .
496
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/policy/allowedDomains") string:jsonPointer ("example.org" "example.com") .
497
+ # ("{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON "/users") string:jsonPointer ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
750
498
  # ("""{"id":"u1","email":"ada@example.org","profile/name":"Ada Lovelace"}"""^^rdf:JSON """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) list:iterate (1 """{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON) .
751
499
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/id") string:jsonPointer "u2" .
752
500
  # ("""{"id":"u2","email":"bob@evil.invalid","profile/name":"Bob Mallory"}"""^^rdf:JSON "/email") string:jsonPointer "bob@evil.invalid" .
@@ -781,13 +529,7 @@ ex:checks ex:firstUserNameOk true .
781
529
  # ?EmailDomain = "evil.invalid"
782
530
  # ?Id = "u2"
783
531
  # ?Idx = 1
784
- # ?J = """{
785
- # "users": [
786
- # { "id": "u1", "email": "ada@example.org", "profile/name": "Ada Lovelace" },
787
- # { "id": "u2", "email": "bob@evil.invalid", "profile/name": "Bob Mallory" }
788
- # ],
789
- # "policy": { "allowedDomains": ["example.org", "example.com"] }
790
- # }"""^^rdf:JSON
532
+ # ?J = "{\n \"users\": [\n { \"id\": \"u1\", \"email\": \"ada@example.org\", \"profile/name\": \"Ada Lovelace\" },\n { \"id\": \"u2\", \"email\": \"bob@evil.invalid\", \"profile/name\": \"Bob Mallory\" }\n ],\n \"policy\": { \"allowedDomains\": [\"example.org\", \"example.com\"] }\n}"^^rdf:JSON
791
533
  # ?Name = "Bob Mallory"
792
534
  # ?UriStr = "urn:example:user:u2"
793
535
  # ?User = <urn:example:user:u2>