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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eyeling",
3
- "version": "1.28.1",
3
+ "version": "1.28.3",
4
4
  "description": "A minimal Notation3 (N3) reasoner in JavaScript.",
5
5
  "main": "./index.js",
6
6
  "keywords": [
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 },