eyeling 1.28.1 → 1.28.3
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/dist/browser/eyeling.browser.js +580 -5
- package/eyeling.js +580 -5
- package/lib/engine.js +12 -5
- package/lib/fast_rdf.js +451 -0
- package/lib/lexer.js +103 -0
- package/lib/multisource.js +11 -0
- package/notes/rdf-message-logs.md +13 -14
- package/notes/rdf12-roundtrip.md +4 -6
- package/package.json +1 -1
- package/test/api.test.js +57 -0
package/package.json
CHANGED
package/test/api.test.js
CHANGED
|
@@ -2916,6 +2916,22 @@ _:b a ex:Person ; ex:name "B" .
|
|
|
2916
2916
|
expect: [/:observation\s+:entails\s+<<\(\s+:sensor\s+:needs\s+:inspection\s*\)>>\s*\./m],
|
|
2917
2917
|
},
|
|
2918
2918
|
|
|
2919
|
+
{
|
|
2920
|
+
name: 'RDF mode rejects object lists inside RDF 1.2 triple terms',
|
|
2921
|
+
opt: { proofComments: false, rdf: true },
|
|
2922
|
+
input: `VERSION "1.2"
|
|
2923
|
+
@prefix : <http://example.org/ns#> .
|
|
2924
|
+
@prefix coll: <http://example.org/collection#> .
|
|
2925
|
+
|
|
2926
|
+
:climateDataset coll:contains
|
|
2927
|
+
<<( :asiaDataset coll:contains
|
|
2928
|
+
<<( :China :avgTemp :18C )>>,
|
|
2929
|
+
<<( :Thailand :avgTemp :20C )>>
|
|
2930
|
+
)>> .
|
|
2931
|
+
`,
|
|
2932
|
+
expectError: true,
|
|
2933
|
+
},
|
|
2934
|
+
|
|
2919
2935
|
{
|
|
2920
2936
|
name: 'RDF mode accepts PREFIX and reified triple terms with reifiers',
|
|
2921
2937
|
opt: { proofComments: false, rdf: true },
|
|
@@ -3066,6 +3082,47 @@ _:b :value 2 .
|
|
|
3066
3082
|
],
|
|
3067
3083
|
},
|
|
3068
3084
|
|
|
3085
|
+
{
|
|
3086
|
+
name: 'RDF message fast path handles line-oriented nested collections',
|
|
3087
|
+
opt: { proofComments: false, rdf: true },
|
|
3088
|
+
input: {
|
|
3089
|
+
sources: [
|
|
3090
|
+
{
|
|
3091
|
+
label: 'rules.n3',
|
|
3092
|
+
text: `@prefix : <http://example.org/msgtest#>.
|
|
3093
|
+
@prefix eymsg: <https://eyereasoner.github.io/eyeling/vocab/message#>.
|
|
3094
|
+
@prefix log: <http://www.w3.org/2000/10/swap/log#>.
|
|
3095
|
+
@prefix list: <http://www.w3.org/2000/10/swap/list#>.
|
|
3096
|
+
|
|
3097
|
+
{
|
|
3098
|
+
?Envelope eymsg:payloadGraph ?Payload.
|
|
3099
|
+
?Payload log:nameOf ?G.
|
|
3100
|
+
?G log:includes { ?Record :record ?Fields. }.
|
|
3101
|
+
?Fields list:length ?Len.
|
|
3102
|
+
} log:query {
|
|
3103
|
+
?Envelope :fieldCount ?Len.
|
|
3104
|
+
}.
|
|
3105
|
+
`,
|
|
3106
|
+
},
|
|
3107
|
+
{
|
|
3108
|
+
label: 'message-log.nt',
|
|
3109
|
+
text: `VERSION "1.2-messages"
|
|
3110
|
+
@prefix : <http://example.org/msgtest#> .
|
|
3111
|
+
<http://example.org/record/1> a :Record.
|
|
3112
|
+
<http://example.org/record/1> :record (("001" "_" "_" "_" "42") ("245" "1" "0" "a" "Title, with comma")) .
|
|
3113
|
+
MESSAGE
|
|
3114
|
+
<http://example.org/record/2> a :Record.
|
|
3115
|
+
<http://example.org/record/2> :record (("001" "_" "_" "_" "43")) .
|
|
3116
|
+
`,
|
|
3117
|
+
},
|
|
3118
|
+
],
|
|
3119
|
+
},
|
|
3120
|
+
expect: [
|
|
3121
|
+
/<urn:eyeling:message-log:[0-9a-f]+#m001>\s+:fieldCount\s+2\s*\./m,
|
|
3122
|
+
/<urn:eyeling:message-log:[0-9a-f]+#m002>\s+:fieldCount\s+1\s*\./m,
|
|
3123
|
+
],
|
|
3124
|
+
},
|
|
3125
|
+
|
|
3069
3126
|
{
|
|
3070
3127
|
name: 'API empty input returns empty output',
|
|
3071
3128
|
opt: { proofComments: false },
|