@traqula/rules-sparql-1-2 0.0.1-alpha.143 → 0.0.1-alpha.145

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/lib/grammar.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  import type { RuleDefReturn, RuleDef } from '@traqula/core';
8
8
  import { gram as S11 } from '@traqula/rules-sparql-1-1';
9
9
  import type * as T11 from '@traqula/rules-sparql-1-1';
10
- import type { BaseQuadTerm, Expression, IGraphNode, Term, Triple, TripleCreatorS, TripleCreatorSP } from './sparql12Types';
10
+ import type { BaseQuadTerm, Expression, IGraphNode, Term, Triple } from './sparql12Types';
11
11
  /**
12
12
  * [[56]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject
13
13
  */
@@ -43,12 +43,12 @@ export declare const triplesSameSubjectPath: RuleDef<"triplesSameSubjectPath", T
43
43
  * OVERRIDING RULE: {@link S11.object}.
44
44
  * [[84]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList
45
45
  */
46
- export declare const object: RuleDef<"object", TripleCreatorSP[]>;
46
+ export declare const object: RuleDef<"object", Triple[], [Term, import("@rdfjs/types").Variable | T11.IriTerm<string> | T11.PropertyPath]>;
47
47
  /**
48
48
  * OVERRIDING RULE: {@link S11.objectPath}.
49
49
  * [[91]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath
50
50
  */
51
- export declare const objectPath: RuleDef<"objectPath", TripleCreatorSP[]>;
51
+ export declare const objectPath: RuleDef<"objectPath", Triple[], [Term, import("@rdfjs/types").Variable | T11.IriTerm<string> | T11.PropertyPath]>;
52
52
  /**
53
53
  * [[107]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)
54
54
  */
@@ -60,11 +60,11 @@ export declare const annotation: RuleDef<"annotation", IGraphNode[]>;
60
60
  /**
61
61
  * [[108]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)
62
62
  */
63
- export declare const annotationBlockPath: RuleDef<"annotationBlockPath", TripleCreatorS[]>;
63
+ export declare const annotationBlockPath: RuleDef<"annotationBlockPath", Triple[], [Term]>;
64
64
  /**
65
65
  * [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)
66
66
  */
67
- export declare const annotationBlock: RuleDef<"annotationBlock", TripleCreatorS[]>;
67
+ export declare const annotationBlock: RuleDef<"annotationBlock", Triple[], [Term]>;
68
68
  /**
69
69
  * OVERRIDING RULE: {@link S11.graphNode}.
70
70
  * [[111]](https://www.w3.org/TR/sparql12-query/#rGraphNode)
package/lib/grammar.js CHANGED
@@ -13,10 +13,10 @@ function reifiedTripleBlockImpl(name, allowPath) {
13
13
  name,
14
14
  impl: ({ ACTION, SUBRULE }) => () => {
15
15
  const triple = SUBRULE(reifiedTriple);
16
- const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList);
16
+ const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList, triple.node);
17
17
  return ACTION(() => [
18
18
  ...triple.triples,
19
- ...properties.map(partial => partial({ subject: triple.node })),
19
+ ...properties,
20
20
  ]);
21
21
  },
22
22
  };
@@ -89,24 +89,24 @@ export const triplesSameSubjectPath = triplesSameSubjectImpl('triplesSameSubject
89
89
  function objectImpl(name, allowPaths) {
90
90
  return {
91
91
  name,
92
- impl: ({ ACTION, SUBRULE, context }) => () => {
92
+ impl: ({ ACTION, SUBRULE, context }) => (subject, predicate) => {
93
93
  const objectVal = SUBRULE(allowPaths ? graphNodePath : graphNode);
94
94
  const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);
95
+ // This rule knows the annotation. And for each annotation node, we need to make a triple:
96
+ // <annotationNode, reifies, parsedSubjectAndObject>
95
97
  return ACTION(() => {
98
+ if ('type' in predicate && predicate.type === 'path' && annotationVal.length > 0) {
99
+ throw new Error('Note 17 violation');
100
+ }
96
101
  const result = [
97
102
  // You parse the object
98
- ({ subject, predicate }) => ({ subject, predicate, object: objectVal.node }),
103
+ { subject, predicate, object: objectVal.node },
99
104
  // You might get some additional triples from parsing the object (like when it's a collection)
100
- ...objectVal.triples.map(triple => () => triple),
105
+ ...objectVal.triples,
101
106
  ];
102
107
  for (const annotation of annotationVal) {
103
- result.push(({ subject, predicate }) => {
104
- if ('type' in predicate && predicate.type === 'path') {
105
- throw new Error('Note 17 violation');
106
- }
107
- return context.dataFactory.quad(annotation.node, context.dataFactory.namedNode(CommonIRIs.REIFIES), context.dataFactory.quad(subject, predicate, objectVal.node));
108
- });
109
- result.push(...annotation.triples.map(triple => () => triple));
108
+ result.push(context.dataFactory.quad(annotation.node, context.dataFactory.namedNode(CommonIRIs.REIFIES), context.dataFactory.quad(subject, predicate, objectVal.node)));
109
+ result.push(...annotation.triples);
110
110
  }
111
111
  return result;
112
112
  });
@@ -143,15 +143,18 @@ function annotationImpl(name, allowPaths) {
143
143
  currentReifier = node;
144
144
  } },
145
145
  { ALT: () => {
146
- const block = SUBRULE(allowPaths ? annotationBlockPath : annotationBlock);
147
- ACTION(() => {
146
+ let node;
147
+ const block = SUBRULE(allowPaths ? annotationBlockPath : annotationBlock, ACTION(() => {
148
148
  if (currentReifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {
149
149
  throw new Error('Cannot create blanknodes in current parse mode');
150
150
  }
151
- const node = currentReifier ?? context.dataFactory.blankNode();
151
+ node = currentReifier ?? context.dataFactory.blankNode();
152
+ return node;
153
+ }));
154
+ ACTION(() => {
152
155
  annotations.push({
153
156
  node,
154
- triples: block.map(partial => partial({ subject: node })),
157
+ triples: block,
155
158
  });
156
159
  currentReifier = undefined;
157
160
  });
@@ -176,9 +179,9 @@ export const annotation = annotationImpl('annotation', false);
176
179
  function annotationBlockImpl(name, allowPaths) {
177
180
  return {
178
181
  name,
179
- impl: ({ SUBRULE, CONSUME }) => () => {
182
+ impl: ({ SUBRULE, CONSUME }) => (subject) => {
180
183
  CONSUME(l12.annotationOpen);
181
- const res = SUBRULE(allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty);
184
+ const res = SUBRULE(allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty, subject);
182
185
  CONSUME(l12.annotationClose);
183
186
  return res;
184
187
  },
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["grammar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * This module will define patch rules that should be used in combination with the sparql11 grammar to create\n * a sparql12 grammar.\n * Rules in this module redefine the return type of core grammar rules.\n * It is therefore essential that the parser retypes the rules from the core grammar.\n */\n\nimport type { DirectionalLanguage } from '@rdfjs/types';\nimport type { NamedNode } from 'rdf-data-factory';\nimport * as l12 from './lexer';\nimport type { RuleDefReturn, RuleDef } from '@traqula/core';\nimport { funcExpr1, funcExpr3 } from '@traqula/rules-sparql-1-1';\nimport { gram as S11, lex as l11 } from '@traqula/rules-sparql-1-1';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { CommonIRIs } from '@traqula/core';\nimport type {\n BaseQuadTerm,\n Expression,\n IGraphNode,\n Term,\n Triple,\n TripleCreatorS,\n TripleCreatorSP,\n} from './sparql12Types';\n\nfunction reifiedTripleBlockImpl<T extends string>(name: T, allowPath: boolean): RuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE }) => () => {\n const triple = SUBRULE(reifiedTriple);\n const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList);\n\n return ACTION(() => [\n ...triple.triples,\n ...properties.map(partial => partial({ subject: triple.node })),\n ]);\n },\n };\n}\n/**\n * [[56]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject\n */\nexport const reifiedTripleBlock = reifiedTripleBlockImpl('reifiedTripleBlock', false);\n/**\n * [[57]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlockPath) Used by TriplesSameSubjectPath\n */\nexport const reifiedTripleBlockPath = reifiedTripleBlockImpl('reifiedTripleBlockPath', true);\n\n/**\n * OVERRIDING RULE: {@link S11.dataBlockValue}.\n * [[67]](https://www.w3.org/TR/sparql12-query/#rDataBlockValue)\n */\nexport const dataBlockValue:\nRuleDef<'dataBlockValue', RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm> = <const> {\n name: 'dataBlockValue',\n impl: $ => () => $.OR2<RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm>([\n { ALT: () => S11.dataBlockValue.impl($)() },\n { ALT: () => $.SUBRULE(tripleTermData) },\n ]),\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rReifier)\n */\nexport const reifier: RuleDef<'reifier', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'reifier',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION, context }) => () => {\n CONSUME(l12.tilde);\n const reifier = OPTION(() => SUBRULE(varOrReifierId));\n return ACTION(() => {\n if (reifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n return reifier ?? context.dataFactory.blankNode();\n });\n },\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rVarOrReifierId)\n */\nexport const varOrReifierId: RuleDef<'varOrReifierId', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'varOrReifierId',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(S11.blankNode) },\n ]),\n};\n\nfunction triplesSameSubjectImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: $ => () => $.OR2([\n { ALT: () => allowPaths ? S11.triplesSameSubjectPath.impl($)() : S11.triplesSameSubject.impl($)() },\n { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock) },\n ]),\n };\n}\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubject}\n * [[79]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubject)\n */\nexport const triplesSameSubject = triplesSameSubjectImpl('triplesSameSubject', false);\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubjectPath}\n * [[85]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath)\n */\nexport const triplesSameSubjectPath = triplesSameSubjectImpl('triplesSameSubjectPath', true);\n\nfunction objectImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, TripleCreatorSP[]> {\n return <const>{\n name,\n impl: ({ ACTION, SUBRULE, context }) => () => {\n const objectVal = SUBRULE(allowPaths ? graphNodePath : graphNode);\n const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);\n\n return ACTION(() => {\n const result: TripleCreatorSP[] = [\n // You parse the object\n ({ subject, predicate }) => ({ subject, predicate, object: objectVal.node }),\n // You might get some additional triples from parsing the object (like when it's a collection)\n ...objectVal.triples.map(triple => () => triple),\n ];\n for (const annotation of annotationVal) {\n result.push(({ subject, predicate }) => {\n if ('type' in predicate && predicate.type === 'path') {\n throw new Error('Note 17 violation');\n }\n return <Triple> context.dataFactory.quad(\n annotation.node,\n context.dataFactory.namedNode(CommonIRIs.REIFIES),\n context.dataFactory.quad(\n subject,\n <Exclude<typeof predicate, T11.PropertyPath>>predicate,\n objectVal.node,\n ),\n )\n });\n result.push(...annotation.triples.map(triple => () => triple));\n }\n return result;\n });\n },\n };\n}\n/**\n * OVERRIDING RULE: {@link S11.object}.\n * [[84]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList\n */\nexport const object = objectImpl('object', false);\n/**\n * OVERRIDING RULE: {@link S11.objectPath}.\n * [[91]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath\n */\nexport const objectPath = objectImpl('objectPath', true);\n\nfunction annotationImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, IGraphNode[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, OR, MANY, context }) => () => {\n const annotations: IGraphNode[] = [];\n let currentReifier: T11.BlankTerm | T11.VariableTerm | T11.IriTerm | undefined;\n\n function flush(): void {\n if (currentReifier) {\n annotations.push({ node: currentReifier, triples: []});\n currentReifier = undefined;\n }\n }\n\n MANY(() => {\n OR([\n { ALT: () => {\n const node = SUBRULE(reifier);\n ACTION(() => flush());\n currentReifier = node;\n } },\n { ALT: () => {\n const block = SUBRULE(allowPaths ? annotationBlockPath : annotationBlock);\n\n ACTION(() => {\n if (currentReifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n const node = currentReifier ?? context.dataFactory.blankNode();\n annotations.push({\n node,\n triples: block.map(partial => partial({ subject: node })),\n });\n currentReifier = undefined;\n });\n } },\n ]);\n });\n return ACTION(() => {\n flush();\n return annotations;\n });\n },\n };\n}\n/**\n * [[107]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)\n */\nexport const annotationPath = annotationImpl('annotationPath', true);\n/**\n * [[109]](https://www.w3.org/TR/sparql12-query/#rAnnotation)\n */\nexport const annotation = annotationImpl('annotation', false);\n\nfunction annotationBlockImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, TripleCreatorS[]> {\n return <const> {\n name,\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l12.annotationOpen);\n const res = <TripleCreatorS[]> SUBRULE(allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty);\n CONSUME(l12.annotationClose);\n\n return res;\n },\n };\n}\n/**\n * [[108]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)\n */\nexport const annotationBlockPath = annotationBlockImpl('annotationBlockPath', true);\n/**\n * [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)\n */\nexport const annotationBlock = annotationBlockImpl('annotationBlock', false);\n\n/**\n * OVERRIDING RULE: {@link S11.graphNode}.\n * [[111]](https://www.w3.org/TR/sparql12-query/#rGraphNode)\n */\nexport const graphNode: RuleDef<'graphNode', IGraphNode> = <const> {\n name: 'graphNode',\n impl: $ => () => $.OR2 <IGraphNode>([\n { ALT: () => S11.graphNode.impl($)() },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n};\n/**\n * OVERRIDING RULE: {@link S11.graphNodePath}.\n * [[112]](https://www.w3.org/TR/sparql12-query/#rGraphNodePath)\n */\nexport const graphNodePath: RuleDef<'graphNodePath', IGraphNode> = <const> {\n name: 'graphNodePath',\n impl: $ => () => $.OR2<IGraphNode>([\n { ALT: () => S11.graphNodePath.impl($)() },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.varOrTerm}.\n * [[113]](https://www.w3.org/TR/sparql12-query/#rVarOrTerm)\n */\nexport const varOrTerm: RuleDef<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ SUBRULE, OR, CONSUME, context }) => () => OR<Term>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n { ALT: () => {\n CONSUME(l11.terminals.nil);\n return context.dataFactory.namedNode(CommonIRIs.NIL);\n } },\n { ALT: () => SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[114]](https://www.w3.org/TR/sparql12-query/#rReifiedTriple)\n */\nexport const reifiedTriple:\nRuleDef<'reifiedTriple', IGraphNode & { node: T11.BlankTerm | T11.VariableTerm | T11.IriTerm }> = <const> {\n name: 'reifiedTriple',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION, context }) => () => {\n CONSUME(l12.reificationOpen);\n const subject = SUBRULE(reifiedTripleSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(reifiedTripleObject);\n const reifierVal = OPTION(() => SUBRULE(reifier));\n CONSUME(l12.reificationClose);\n\n return ACTION(() => {\n if (reifierVal === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n const reifier = reifierVal ?? context.dataFactory.blankNode();\n const tripleTerm = context.dataFactory.quad(subject.node, predicate, object.node);\n return {\n node: reifier,\n triples: [\n ...subject.triples,\n <Triple> context.dataFactory.quad(reifier, context.dataFactory.namedNode(CommonIRIs.REIFIES), tripleTerm),\n ...object.triples,\n ],\n };\n });\n },\n};\n\n/**\n * [[115]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleSubject)\n */\nexport const reifiedTripleSubject:\nRuleDef<'reifiedTripleSubject', IGraphNode> =\n <const> {\n name: 'reifiedTripleSubject',\n impl: ({ OR, SUBRULE }) => () => OR<IGraphNode>([\n { ALT: () => ({ node: SUBRULE(S11.var_), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.iri), triples: []}) },\n { ALT: () => ({ node: SUBRULE(rdfLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.numericLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.booleanLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.blankNode), triples: []}) },\n { ALT: () => SUBRULE(reifiedTriple) },\n ]),\n };\n\n/**\n * [[116]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleObject)\n */\nexport const reifiedTripleObject:\nRuleDef<'reifiedTripleObject', RuleDefReturn<typeof reifiedTripleSubject>> =\n <const> {\n name: 'reifiedTripleObject',\n impl: $ => () => $.OR2([\n { ALT: () => reifiedTripleSubject.impl($)() },\n { ALT: () => ({ node: $.SUBRULE(tripleTerm), triples: []}) },\n ]),\n };\n\n/**\n * [[117]](https://www.w3.org/TR/sparql12-query/#rTripleTerm)\n */\nexport const tripleTerm: RuleDef<'tripleTerm', BaseQuadTerm> = <const> {\n name: 'tripleTerm',\n impl: ({ CONSUME, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(tripleTermObject);\n CONSUME(l12.tripleTermClose);\n return context.dataFactory.quad(subject, predicate, object);\n },\n};\n\n/**\n * [[118]](https://www.w3.org/TR/sparql12-query/#rTripleTermSubject)\n */\nexport const tripleTermSubject:\nRuleDef<'tripleTermSubject', T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm> = <const> {\n name: 'tripleTermSubject',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n ]),\n};\n\n/**\n * [[119]](https://www.w3.org/TR/sparql12-query/#rTripleTermObject)\n */\nexport const tripleTermObject:\nRuleDef<'tripleTermObject', RuleDefReturn<typeof tripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermObject',\n impl: $ => () => $.OR2<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm | BaseQuadTerm>([\n { ALT: () => tripleTermSubject.impl($)() },\n { ALT: () => $.SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[120]](https://www.w3.org/TR/sparql12-query/#rTripleTermData)\n */\nexport const tripleTermData: RuleDef<'tripleTermData', BaseQuadTerm> = <const> {\n name: 'tripleTermData',\n impl: ({ ACTION, CONSUME, OR, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermDataSubject);\n const predicate = OR([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => {\n CONSUME(l11.a);\n return ACTION(() => context.dataFactory.namedNode(CommonIRIs.TYPE));\n } },\n ]);\n const object = SUBRULE(tripleTermDataObject);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => context.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[121]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataSubject)\n */\nexport const tripleTermDataSubject: RuleDef<'tripleTermDataSubject', T11.IriTerm | T11.LiteralTerm> = <const> {\n name: 'tripleTermDataSubject',\n impl: ({ OR, SUBRULE }) => () => OR<T11.IriTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n ]),\n};\n\n/**\n * [[122]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataObject)\n */\nexport const tripleTermDataObject:\nRuleDef<'tripleTermDataObject', RuleDefReturn<typeof tripleTermDataSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermDataObject',\n impl: $ => () => $.OR2<T11.IriTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => tripleTermDataSubject.impl($)() },\n { ALT: () => $.SUBRULE(tripleTermData) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.primaryExpression}.\n * [[134]](https://www.w3.org/TR/sparql12-query/#rPrimaryExpression)\n */\nexport const primaryExpression: RuleDef<'primaryExpression', Expression> = <const> {\n name: 'primaryExpression',\n impl: $ => () => $.OR2<Expression>([\n { ALT: () => S11.primaryExpression.impl($)() },\n { ALT: () => $.SUBRULE(exprTripleTerm) },\n ]),\n};\n\n/**\n * [[135]](https://www.w3.org/TR/sparql12-query/#rExprTripleTerm)\n */\nexport const exprTripleTerm: RuleDef<'exprTripleTerm', BaseQuadTerm> = <const> {\n name: 'exprTripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(exprTripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(exprTripleTermObject);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => context.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[136]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermSubject)\n */\nexport const exprTripleTermSubject:\nRuleDef<'exprTripleTermSubject', T11.IriTerm | T11.VariableTerm | T11.LiteralTerm> = <const> {\n name: 'exprTripleTermSubject',\n impl: ({ OR, SUBRULE }) => () =>\n OR<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.var_) },\n ]),\n};\n\n/**\n * [[137]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermObject)\n */\nexport const exprTripleTermObject:\nRuleDef<'exprTripleTermObject', RuleDefReturn<typeof exprTripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'exprTripleTermObject',\n impl: $ => () =>\n $.OR2<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => exprTripleTermSubject.impl($)() },\n { ALT: () => $.SUBRULE(exprTripleTerm) },\n ]),\n};\n\nexport const builtinLangDir = funcExpr1(l12.builtinLangDir);\nexport const builtinLangStrDir = funcExpr3(l12.builtinStrLangDir);\nexport const builtinHasLang = funcExpr1(l12.builtinHasLang);\nexport const builtinHasLangDir = funcExpr1(l12.builtinHasLangDir);\nexport const builtinIsTriple = funcExpr1(l12.builtinIsTRIPLE);\nexport const builtinTriple = funcExpr3(l12.builtinTRIPLE);\nexport const builtinSubject = funcExpr1(l12.builtinSUBJECT);\nexport const builtinPredicate = funcExpr1(l12.builtinPREDICATE);\nexport const builtinObject = funcExpr1(l12.builtinOBJECT);\n\n/**\n * OVERRIDING RULE: {@link S11.builtInCall}.\n * [[139]](https://www.w3.org/TR/sparql12-query/#rBuiltInCall)\n */\nexport const builtInCall: typeof S11.builtInCall = <const> {\n name: 'builtInCall',\n impl: $ => () => $.OR2<T11.Expression>([\n { ALT: () => S11.builtInCall.impl($)() },\n { ALT: () => $.SUBRULE(builtinLangDir) },\n { ALT: () => $.SUBRULE(builtinLangStrDir) },\n { ALT: () => $.SUBRULE(builtinHasLang) },\n { ALT: () => $.SUBRULE(builtinHasLangDir) },\n { ALT: () => $.SUBRULE(builtinIsTriple) },\n { ALT: () => $.SUBRULE(builtinTriple) },\n { ALT: () => $.SUBRULE(builtinSubject) },\n { ALT: () => $.SUBRULE(builtinPredicate) },\n { ALT: () => $.SUBRULE(builtinObject) },\n ]),\n};\n\nfunction isLangDir(dir: string): dir is 'ltr' | 'rtl' {\n return dir === 'ltr' || dir === 'rtl';\n}\n\n/**\n * OVERRIDING RULE: {@link S11.rdfLiteral}.\n * No retyping is needed since the return type is the same\n * [[147]](https://www.w3.org/TR/sparql12-query/#rRDFLiteral)\n */\nexport const rdfLiteral: typeof S11.rdfLiteral = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE, OPTION, CONSUME, OR, context }) => () => {\n const value = SUBRULE(S11.string);\n const langOrDataType = OPTION(() => OR<string | NamedNode | DirectionalLanguage>([\n { ALT: () => {\n const langTag = CONSUME(l12.LANG_DIR).image.slice(1);\n\n return ACTION(() => {\n const dirSplit = langTag.split('--');\n if (dirSplit.length > 1) {\n const [ language, direction ] = dirSplit;\n if (!isLangDir(direction)) {\n throw new Error(`language direction \"${direction}\" of literal \"${value}@${langTag}\" is not is required range 'ltr' | 'rtl'.`);\n }\n return {\n language,\n direction,\n };\n }\n return langTag;\n });\n } },\n { ALT: () => {\n CONSUME(l11.symbols.hathat);\n return SUBRULE(S11.iri);\n } },\n ]));\n return context.dataFactory.literal(value, langOrDataType);\n },\n};\n"]}
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["grammar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * This module will define patch rules that should be used in combination with the sparql11 grammar to create\n * a sparql12 grammar.\n * Rules in this module redefine the return type of core grammar rules.\n * It is therefore essential that the parser retypes the rules from the core grammar.\n */\n\nimport type { DirectionalLanguage } from '@rdfjs/types';\nimport type { NamedNode } from 'rdf-data-factory';\nimport * as l12 from './lexer';\nimport type { RuleDefReturn, RuleDef } from '@traqula/core';\nimport {funcExpr1, funcExpr3} from '@traqula/rules-sparql-1-1';\nimport { gram as S11, lex as l11 } from '@traqula/rules-sparql-1-1';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { CommonIRIs } from '@traqula/core';\nimport type {\n BaseQuadTerm,\n Expression,\n IGraphNode,\n Term,\n Triple,\n} from './sparql12Types';\n\nfunction reifiedTripleBlockImpl<T extends string>(name: T, allowPath: boolean): RuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE }) => () => {\n const triple = SUBRULE(reifiedTriple);\n const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList, triple.node);\n\n return ACTION(() => [\n ...triple.triples,\n ...properties,\n ]);\n },\n };\n}\n/**\n * [[56]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject\n */\nexport const reifiedTripleBlock = reifiedTripleBlockImpl('reifiedTripleBlock', false);\n/**\n * [[57]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlockPath) Used by TriplesSameSubjectPath\n */\nexport const reifiedTripleBlockPath = reifiedTripleBlockImpl('reifiedTripleBlockPath', true);\n\n/**\n * OVERRIDING RULE: {@link S11.dataBlockValue}.\n * [[67]](https://www.w3.org/TR/sparql12-query/#rDataBlockValue)\n */\nexport const dataBlockValue:\nRuleDef<'dataBlockValue', RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm> = <const> {\n name: 'dataBlockValue',\n impl: $ => () => $.OR2<RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm>([\n { ALT: () => S11.dataBlockValue.impl($)() },\n { ALT: () => $.SUBRULE(tripleTermData) },\n ]),\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rReifier)\n */\nexport const reifier: RuleDef<'reifier', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'reifier',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION, context }) => () => {\n CONSUME(l12.tilde);\n const reifier = OPTION(() => SUBRULE(varOrReifierId));\n return ACTION(() => {\n if (reifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n return reifier ?? context.dataFactory.blankNode();\n });\n },\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rVarOrReifierId)\n */\nexport const varOrReifierId: RuleDef<'varOrReifierId', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'varOrReifierId',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(S11.blankNode) },\n ]),\n};\n\nfunction triplesSameSubjectImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: $ => () => $.OR2([\n { ALT: () => allowPaths ? S11.triplesSameSubjectPath.impl($)() : S11.triplesSameSubject.impl($)() },\n { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock) },\n ]),\n };\n}\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubject}\n * [[79]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubject)\n */\nexport const triplesSameSubject = triplesSameSubjectImpl('triplesSameSubject', false);\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubjectPath}\n * [[85]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath)\n */\nexport const triplesSameSubjectPath = triplesSameSubjectImpl('triplesSameSubjectPath', true);\n\nfunction objectImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, Triple[], [Triple['subject'], Triple['predicate']]> {\n return <const>{\n name,\n impl: ({ ACTION, SUBRULE, context }) => (subject, predicate) => {\n const objectVal = SUBRULE(allowPaths ? graphNodePath : graphNode);\n const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);\n\n // This rule knows the annotation. And for each annotation node, we need to make a triple:\n // <annotationNode, reifies, parsedSubjectAndObject>\n\n return ACTION(() => {\n if ('type' in predicate && predicate.type === 'path' && annotationVal.length > 0) {\n throw new Error('Note 17 violation');\n }\n\n const result: Triple[] = [\n // You parse the object\n { subject, predicate, object: objectVal.node },\n // You might get some additional triples from parsing the object (like when it's a collection)\n ...objectVal.triples,\n ];\n for (const annotation of annotationVal) {\n result.push(<Triple> context.dataFactory.quad(\n annotation.node,\n context.dataFactory.namedNode(CommonIRIs.REIFIES),\n context.dataFactory.quad(\n subject,\n <Exclude<typeof predicate, T11.PropertyPath>>predicate,\n objectVal.node,\n ),\n ));\n result.push(...annotation.triples);\n }\n return result;\n });\n },\n };\n}\n/**\n * OVERRIDING RULE: {@link S11.object}.\n * [[84]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList\n */\nexport const object = objectImpl('object', false);\n/**\n * OVERRIDING RULE: {@link S11.objectPath}.\n * [[91]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath\n */\nexport const objectPath = objectImpl('objectPath', true);\n\nfunction annotationImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, IGraphNode[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, OR, MANY, context }) => () => {\n const annotations: IGraphNode[] = [];\n let currentReifier: T11.BlankTerm | T11.VariableTerm | T11.IriTerm | undefined;\n\n function flush(): void {\n if (currentReifier) {\n annotations.push({ node: currentReifier, triples: []});\n currentReifier = undefined;\n }\n }\n\n MANY(() => {\n OR([\n { ALT: () => {\n const node = SUBRULE(reifier);\n ACTION(() => flush());\n currentReifier = node;\n } },\n { ALT: () => {\n let node: Triple['subject'];\n const block = SUBRULE(\n allowPaths ? annotationBlockPath : annotationBlock,\n ACTION(() => {\n if (currentReifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n node = currentReifier ?? context.dataFactory.blankNode();\n return node;\n }),\n );\n ACTION(() => {\n annotations.push({\n node,\n triples: block,\n });\n currentReifier = undefined\n });\n } },\n ]);\n });\n return ACTION(() => {\n flush();\n return annotations;\n });\n },\n };\n}\n/**\n * [[107]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)\n */\nexport const annotationPath = annotationImpl('annotationPath', true);\n/**\n * [[109]](https://www.w3.org/TR/sparql12-query/#rAnnotation)\n */\nexport const annotation = annotationImpl('annotation', false);\n\nfunction annotationBlockImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, Triple[], [Triple['subject']]> {\n return <const> {\n name,\n impl: ({ SUBRULE, CONSUME }) => (subject) => {\n CONSUME(l12.annotationOpen);\n const res = SUBRULE(allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty, <T11.Term> subject);\n CONSUME(l12.annotationClose);\n\n return res;\n },\n };\n}\n/**\n * [[108]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)\n */\nexport const annotationBlockPath = annotationBlockImpl('annotationBlockPath', true);\n/**\n * [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)\n */\nexport const annotationBlock = annotationBlockImpl('annotationBlock', false);\n\n/**\n * OVERRIDING RULE: {@link S11.graphNode}.\n * [[111]](https://www.w3.org/TR/sparql12-query/#rGraphNode)\n */\nexport const graphNode: RuleDef<'graphNode', IGraphNode> = <const> {\n name: 'graphNode',\n impl: $ => () => $.OR2 <IGraphNode>([\n { ALT: () => S11.graphNode.impl($)() },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n};\n/**\n * OVERRIDING RULE: {@link S11.graphNodePath}.\n * [[112]](https://www.w3.org/TR/sparql12-query/#rGraphNodePath)\n */\nexport const graphNodePath: RuleDef<'graphNodePath', IGraphNode> = <const> {\n name: 'graphNodePath',\n impl: $ => () => $.OR2<IGraphNode>([\n { ALT: () => S11.graphNodePath.impl($)() },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.varOrTerm}.\n * [[113]](https://www.w3.org/TR/sparql12-query/#rVarOrTerm)\n */\nexport const varOrTerm: RuleDef<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ SUBRULE, OR, CONSUME, context }) => () => OR<Term>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n { ALT: () => {\n CONSUME(l11.terminals.nil);\n return context.dataFactory.namedNode(CommonIRIs.NIL);\n } },\n { ALT: () => SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[114]](https://www.w3.org/TR/sparql12-query/#rReifiedTriple)\n */\nexport const reifiedTriple:\nRuleDef<'reifiedTriple', IGraphNode & { node: T11.BlankTerm | T11.VariableTerm | T11.IriTerm }> = <const> {\n name: 'reifiedTriple',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION, context }) => () => {\n CONSUME(l12.reificationOpen);\n const subject = SUBRULE(reifiedTripleSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(reifiedTripleObject);\n const reifierVal = OPTION(() => SUBRULE(reifier));\n CONSUME(l12.reificationClose);\n\n return ACTION(() => {\n if (reifierVal === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n const reifier = reifierVal ?? context.dataFactory.blankNode();\n const tripleTerm = context.dataFactory.quad(subject.node, predicate, object.node);\n return {\n node: reifier,\n triples: [\n ...subject.triples,\n <Triple> context.dataFactory.quad(reifier, context.dataFactory.namedNode(CommonIRIs.REIFIES), tripleTerm),\n ...object.triples,\n ],\n };\n });\n },\n};\n\n/**\n * [[115]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleSubject)\n */\nexport const reifiedTripleSubject:\nRuleDef<'reifiedTripleSubject', IGraphNode> =\n <const> {\n name: 'reifiedTripleSubject',\n impl: ({ OR, SUBRULE }) => () => OR<IGraphNode>([\n { ALT: () => ({ node: SUBRULE(S11.var_), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.iri), triples: []}) },\n { ALT: () => ({ node: SUBRULE(rdfLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.numericLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.booleanLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.blankNode), triples: []}) },\n { ALT: () => SUBRULE(reifiedTriple) },\n ]),\n };\n\n/**\n * [[116]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleObject)\n */\nexport const reifiedTripleObject:\nRuleDef<'reifiedTripleObject', RuleDefReturn<typeof reifiedTripleSubject>> =\n <const> {\n name: 'reifiedTripleObject',\n impl: $ => () => $.OR2([\n { ALT: () => reifiedTripleSubject.impl($)() },\n { ALT: () => ({ node: $.SUBRULE(tripleTerm), triples: []}) },\n ]),\n };\n\n/**\n * [[117]](https://www.w3.org/TR/sparql12-query/#rTripleTerm)\n */\nexport const tripleTerm: RuleDef<'tripleTerm', BaseQuadTerm> = <const> {\n name: 'tripleTerm',\n impl: ({ CONSUME, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(tripleTermObject);\n CONSUME(l12.tripleTermClose);\n return context.dataFactory.quad(subject, predicate, object);\n },\n};\n\n/**\n * [[118]](https://www.w3.org/TR/sparql12-query/#rTripleTermSubject)\n */\nexport const tripleTermSubject:\nRuleDef<'tripleTermSubject', T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm> = <const> {\n name: 'tripleTermSubject',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n ]),\n};\n\n/**\n * [[119]](https://www.w3.org/TR/sparql12-query/#rTripleTermObject)\n */\nexport const tripleTermObject:\nRuleDef<'tripleTermObject', RuleDefReturn<typeof tripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermObject',\n impl: $ => () => $.OR2<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm | BaseQuadTerm>([\n { ALT: () => tripleTermSubject.impl($)() },\n { ALT: () => $.SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[120]](https://www.w3.org/TR/sparql12-query/#rTripleTermData)\n */\nexport const tripleTermData: RuleDef<'tripleTermData', BaseQuadTerm> = <const> {\n name: 'tripleTermData',\n impl: ({ ACTION, CONSUME, OR, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermDataSubject);\n const predicate = OR([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => {\n CONSUME(l11.a);\n return ACTION(() => context.dataFactory.namedNode(CommonIRIs.TYPE));\n } },\n ]);\n const object = SUBRULE(tripleTermDataObject);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => context.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[121]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataSubject)\n */\nexport const tripleTermDataSubject: RuleDef<'tripleTermDataSubject', T11.IriTerm | T11.LiteralTerm> = <const> {\n name: 'tripleTermDataSubject',\n impl: ({ OR, SUBRULE }) => () => OR<T11.IriTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n ]),\n};\n\n/**\n * [[122]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataObject)\n */\nexport const tripleTermDataObject:\nRuleDef<'tripleTermDataObject', RuleDefReturn<typeof tripleTermDataSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermDataObject',\n impl: $ => () => $.OR2<T11.IriTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => tripleTermDataSubject.impl($)() },\n { ALT: () => $.SUBRULE(tripleTermData) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.primaryExpression}.\n * [[134]](https://www.w3.org/TR/sparql12-query/#rPrimaryExpression)\n */\nexport const primaryExpression: RuleDef<'primaryExpression', Expression> = <const> {\n name: 'primaryExpression',\n impl: $ => () => $.OR2<Expression>([\n { ALT: () => S11.primaryExpression.impl($)() },\n { ALT: () => $.SUBRULE(exprTripleTerm) },\n ]),\n};\n\n/**\n * [[135]](https://www.w3.org/TR/sparql12-query/#rExprTripleTerm)\n */\nexport const exprTripleTerm: RuleDef<'exprTripleTerm', BaseQuadTerm> = <const> {\n name: 'exprTripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(exprTripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(exprTripleTermObject);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => context.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[136]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermSubject)\n */\nexport const exprTripleTermSubject:\nRuleDef<'exprTripleTermSubject', T11.IriTerm | T11.VariableTerm | T11.LiteralTerm> = <const> {\n name: 'exprTripleTermSubject',\n impl: ({ OR, SUBRULE }) => () =>\n OR<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.var_) },\n ]),\n};\n\n/**\n * [[137]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermObject)\n */\nexport const exprTripleTermObject:\nRuleDef<'exprTripleTermObject', RuleDefReturn<typeof exprTripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'exprTripleTermObject',\n impl: $ => () =>\n $.OR2<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => exprTripleTermSubject.impl($)() },\n { ALT: () => $.SUBRULE(exprTripleTerm) },\n ]),\n};\n\nexport const builtinLangDir = funcExpr1(l12.builtinLangDir);\nexport const builtinLangStrDir = funcExpr3(l12.builtinStrLangDir);\nexport const builtinHasLang = funcExpr1(l12.builtinHasLang);\nexport const builtinHasLangDir = funcExpr1(l12.builtinHasLangDir);\nexport const builtinIsTriple = funcExpr1(l12.builtinIsTRIPLE);\nexport const builtinTriple = funcExpr3(l12.builtinTRIPLE);\nexport const builtinSubject = funcExpr1(l12.builtinSUBJECT);\nexport const builtinPredicate = funcExpr1(l12.builtinPREDICATE);\nexport const builtinObject = funcExpr1(l12.builtinOBJECT);\n\n/**\n * OVERRIDING RULE: {@link S11.builtInCall}.\n * [[139]](https://www.w3.org/TR/sparql12-query/#rBuiltInCall)\n */\nexport const builtInCall: typeof S11.builtInCall = <const> {\n name: 'builtInCall',\n impl: $ => () => $.OR2<T11.Expression>([\n { ALT: () => S11.builtInCall.impl($)() },\n { ALT: () => $.SUBRULE(builtinLangDir) },\n { ALT: () => $.SUBRULE(builtinLangStrDir) },\n { ALT: () => $.SUBRULE(builtinHasLang) },\n { ALT: () => $.SUBRULE(builtinHasLangDir) },\n { ALT: () => $.SUBRULE(builtinIsTriple) },\n { ALT: () => $.SUBRULE(builtinTriple) },\n { ALT: () => $.SUBRULE(builtinSubject) },\n { ALT: () => $.SUBRULE(builtinPredicate) },\n { ALT: () => $.SUBRULE(builtinObject) },\n ]),\n};\n\nfunction isLangDir(dir: string): dir is 'ltr' | 'rtl' {\n return dir === 'ltr' || dir === 'rtl';\n}\n\n/**\n * OVERRIDING RULE: {@link S11.rdfLiteral}.\n * No retyping is needed since the return type is the same\n * [[147]](https://www.w3.org/TR/sparql12-query/#rRDFLiteral)\n */\nexport const rdfLiteral: typeof S11.rdfLiteral = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE, OPTION, CONSUME, OR, context }) => () => {\n const value = SUBRULE(S11.string);\n const langOrDataType = OPTION(() => OR<string | NamedNode | DirectionalLanguage>([\n { ALT: () => {\n const langTag = CONSUME(l12.LANG_DIR).image.slice(1);\n\n return ACTION(() => {\n const dirSplit = langTag.split('--');\n if (dirSplit.length > 1) {\n const [ language, direction ] = dirSplit;\n if (!isLangDir(direction)) {\n throw new Error(`language direction \"${direction}\" of literal \"${value}@${langTag}\" is not is required range 'ltr' | 'rtl'.`);\n }\n return {\n language,\n direction,\n };\n }\n return langTag;\n });\n } },\n { ALT: () => {\n CONSUME(l11.symbols.hathat);\n return SUBRULE(S11.iri);\n } },\n ]));\n return context.dataFactory.literal(value, langOrDataType);\n },\n};\n"]}
package/lib/index.cjs CHANGED
@@ -10740,16 +10740,15 @@ function triplesSameSubjectImpl(name, allowPaths) {
10740
10740
  {
10741
10741
  ALT: () => {
10742
10742
  const subject = SUBRULE(varOrTerm);
10743
- const propNotEmpty = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty);
10744
- return ACTION(() => propNotEmpty.map((partial) => partial({ subject })));
10743
+ return SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject);
10745
10744
  }
10746
10745
  },
10747
10746
  {
10748
10747
  ALT: () => {
10749
10748
  const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
10750
- const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList);
10749
+ const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, subjectNode.node);
10751
10750
  return ACTION(() => [
10752
- ...restNode.map((partial) => partial({ subject: subjectNode.node })),
10751
+ ...restNode,
10753
10752
  ...subjectNode.triples
10754
10753
  ]);
10755
10754
  }
@@ -10762,7 +10761,7 @@ var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", tr
10762
10761
  function propertyListImpl(name, allowPaths) {
10763
10762
  return {
10764
10763
  name,
10765
- impl: ({ SUBRULE, OPTION }) => () => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty)) ?? []
10764
+ impl: ({ SUBRULE, OPTION }) => (subject) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject)) ?? []
10766
10765
  };
10767
10766
  }
10768
10767
  var propertyList = propertyListImpl("propertyList", false);
@@ -10770,42 +10769,30 @@ var propertyListPath = propertyListImpl("propertyListPath", true);
10770
10769
  function propertyListNotEmptyImplementation(name, allowPaths) {
10771
10770
  return {
10772
10771
  name,
10773
- impl: ({ ACTION, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION, OR1, OR2, context }) => () => {
10772
+ impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (subject) => {
10774
10773
  const result = [];
10775
- const resultAppendage = [];
10776
- const firstProperty = allowPaths ? OR1([
10777
- { ALT: () => SUBRULE1(verbPath) },
10778
- { ALT: () => SUBRULE1(verbSimple) }
10779
- ]) : SUBRULE1(verb);
10780
- const firstObjects = SUBRULE1(allowPaths ? objectListPath : objectList);
10781
- ACTION(() => {
10782
- const filterSubject = context.dataFactory.namedNode("internal:filterSubject");
10783
- for (const cObject of firstObjects) {
10784
- const triple = cObject({ subject: filterSubject, predicate: firstProperty });
10785
- const generator = (rest) => cObject({ ...rest, predicate: firstProperty });
10786
- if (triple.subject === filterSubject) {
10787
- result.push(generator);
10788
- } else {
10789
- resultAppendage.push(generator);
10790
- }
10791
- }
10792
- });
10793
- MANY(() => {
10794
- CONSUME(symbols_exports.semi);
10795
- OPTION(() => {
10796
- const predicate = allowPaths ? OR2([
10797
- { ALT: () => SUBRULE2(verbPath) },
10798
- { ALT: () => SUBRULE2(verbSimple) }
10799
- ]) : SUBRULE2(verb);
10800
- const objects = SUBRULE2(allowPaths ? objectListPath : objectList);
10801
- ACTION(() => {
10802
- result.push(
10803
- ...objects.map((object3) => (partS) => object3({ ...partS, predicate }))
10804
- );
10774
+ let parsedSemi = true;
10775
+ AT_LEAST_ONE({
10776
+ GATE: () => parsedSemi,
10777
+ DEF: () => {
10778
+ parsedSemi = false;
10779
+ const predicate = allowPaths ? OR1([
10780
+ { ALT: () => SUBRULE1(verbPath) },
10781
+ { ALT: () => SUBRULE1(verbSimple) }
10782
+ ]) : SUBRULE1(verb);
10783
+ const triples = SUBRULE1(
10784
+ allowPaths ? objectListPath : objectList,
10785
+ subject,
10786
+ predicate
10787
+ );
10788
+ ACTION(() => result.push(...triples));
10789
+ MANY2(() => {
10790
+ CONSUME(symbols_exports.semi);
10791
+ parsedSemi = true;
10805
10792
  });
10806
- });
10793
+ }
10807
10794
  });
10808
- return [...result, ...resultAppendage];
10795
+ return result;
10809
10796
  }
10810
10797
  };
10811
10798
  }
@@ -10822,11 +10809,11 @@ var verbSimple = {
10822
10809
  function objectListImpl(name, allowPaths) {
10823
10810
  return {
10824
10811
  name,
10825
- impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => () => {
10812
+ impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (subject, predicate) => {
10826
10813
  const objects = [];
10827
10814
  AT_LEAST_ONE_SEP({
10828
10815
  DEF: () => {
10829
- const objectTriples = SUBRULE(allowPaths ? objectPath : object);
10816
+ const objectTriples = SUBRULE(allowPaths ? objectPath : object, subject, predicate);
10830
10817
  ACTION(() => objects.push(...objectTriples));
10831
10818
  },
10832
10819
  SEP: symbols_exports.comma
@@ -10840,11 +10827,11 @@ var objectListPath = objectListImpl("objectListPath", true);
10840
10827
  function objectImpl(name, allowPaths) {
10841
10828
  return {
10842
10829
  name,
10843
- impl: ({ ACTION, SUBRULE }) => () => {
10830
+ impl: ({ ACTION, SUBRULE }) => (subject, predicate) => {
10844
10831
  const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
10845
10832
  return ACTION(() => [
10846
- (part) => ({ ...part, object: node.node }),
10847
- ...node.triples.map((val) => () => val)
10833
+ { subject, predicate, object: node.node },
10834
+ ...node.triples
10848
10835
  ]);
10849
10836
  }
10850
10837
  };
@@ -10870,13 +10857,16 @@ function blankNodePropertyListImpl(name, allowPaths) {
10870
10857
  name,
10871
10858
  impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {
10872
10859
  CONSUME(symbols_exports.LSquare);
10873
- const propList = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty);
10860
+ let blankNode2;
10861
+ const propList = SUBRULE(
10862
+ allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
10863
+ ACTION(() => blankNode2 = context.dataFactory.blankNode())
10864
+ );
10874
10865
  CONSUME(symbols_exports.RSquare);
10875
10866
  return ACTION(() => {
10876
- const subject = context.dataFactory.blankNode();
10877
10867
  return {
10878
- node: subject,
10879
- triples: propList.map((part) => part({ subject }))
10868
+ node: blankNode2,
10869
+ triples: propList
10880
10870
  };
10881
10871
  });
10882
10872
  }
@@ -11016,16 +11006,24 @@ var prefixDecl2 = {
11016
11006
  };
11017
11007
  var triplesTemplate = {
11018
11008
  name: "triplesTemplate",
11019
- impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {
11009
+ impl: ({ ACTION, AT_LEAST_ONE, AT_LEAST_ONE_SEP, SUBRULE, CONSUME, OPTION }) => () => {
11020
11010
  const triples = [];
11021
- triples.push(SUBRULE(triplesSameSubject));
11022
- OPTION1(() => {
11023
- CONSUME(symbols_exports.dot);
11024
- OPTION2(() => {
11025
- triples.push(SUBRULE(triplesTemplate));
11026
- });
11011
+ let parsedDot = true;
11012
+ AT_LEAST_ONE({
11013
+ GATE: () => parsedDot,
11014
+ DEF: () => {
11015
+ parsedDot = false;
11016
+ const template = SUBRULE(triplesSameSubject);
11017
+ ACTION(() => {
11018
+ triples.push(...template);
11019
+ });
11020
+ OPTION(() => {
11021
+ CONSUME(symbols_exports.dot);
11022
+ parsedDot = true;
11023
+ });
11024
+ }
11027
11025
  });
11028
- return triples.flat(1);
11026
+ return triples;
11029
11027
  }
11030
11028
  };
11031
11029
  var verb = {
@@ -13181,10 +13179,10 @@ function reifiedTripleBlockImpl(name, allowPath) {
13181
13179
  name,
13182
13180
  impl: ({ ACTION, SUBRULE }) => () => {
13183
13181
  const triple = SUBRULE(reifiedTriple);
13184
- const properties = SUBRULE(allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList);
13182
+ const properties = SUBRULE(allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList, triple.node);
13185
13183
  return ACTION(() => [
13186
13184
  ...triple.triples,
13187
- ...properties.map((partial) => partial({ subject: triple.node }))
13185
+ ...properties
13188
13186
  ]);
13189
13187
  }
13190
13188
  };
@@ -13233,32 +13231,30 @@ var triplesSameSubjectPath2 = triplesSameSubjectImpl2("triplesSameSubjectPath",
13233
13231
  function objectImpl2(name, allowPaths) {
13234
13232
  return {
13235
13233
  name,
13236
- impl: ({ ACTION, SUBRULE, context }) => () => {
13234
+ impl: ({ ACTION, SUBRULE, context }) => (subject, predicate) => {
13237
13235
  const objectVal = SUBRULE(allowPaths ? graphNodePath2 : graphNode2);
13238
13236
  const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);
13239
13237
  return ACTION(() => {
13238
+ if ("type" in predicate && predicate.type === "path" && annotationVal.length > 0) {
13239
+ throw new Error("Note 17 violation");
13240
+ }
13240
13241
  const result = [
13241
13242
  // You parse the object
13242
- ({ subject, predicate }) => ({ subject, predicate, object: objectVal.node }),
13243
+ { subject, predicate, object: objectVal.node },
13243
13244
  // You might get some additional triples from parsing the object (like when it's a collection)
13244
- ...objectVal.triples.map((triple) => () => triple)
13245
+ ...objectVal.triples
13245
13246
  ];
13246
13247
  for (const annotation2 of annotationVal) {
13247
- result.push(({ subject, predicate }) => {
13248
- if ("type" in predicate && predicate.type === "path") {
13249
- throw new Error("Note 17 violation");
13250
- }
13251
- return context.dataFactory.quad(
13252
- annotation2.node,
13253
- context.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies" /* REIFIES */),
13254
- context.dataFactory.quad(
13255
- subject,
13256
- predicate,
13257
- objectVal.node
13258
- )
13259
- );
13260
- });
13261
- result.push(...annotation2.triples.map((triple) => () => triple));
13248
+ result.push(context.dataFactory.quad(
13249
+ annotation2.node,
13250
+ context.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies" /* REIFIES */),
13251
+ context.dataFactory.quad(
13252
+ subject,
13253
+ predicate,
13254
+ objectVal.node
13255
+ )
13256
+ ));
13257
+ result.push(...annotation2.triples);
13262
13258
  }
13263
13259
  return result;
13264
13260
  });
@@ -13287,15 +13283,21 @@ function annotationImpl(name, allowPaths) {
13287
13283
  currentReifier = node;
13288
13284
  } },
13289
13285
  { ALT: () => {
13290
- const block = SUBRULE(allowPaths ? annotationBlockPath : annotationBlock);
13286
+ let node;
13287
+ const block = SUBRULE(
13288
+ allowPaths ? annotationBlockPath : annotationBlock,
13289
+ ACTION(() => {
13290
+ if (currentReifier === void 0 && !context.parseMode.has(grammar_exports.canCreateBlankNodes)) {
13291
+ throw new Error("Cannot create blanknodes in current parse mode");
13292
+ }
13293
+ node = currentReifier ?? context.dataFactory.blankNode();
13294
+ return node;
13295
+ })
13296
+ );
13291
13297
  ACTION(() => {
13292
- if (currentReifier === void 0 && !context.parseMode.has(grammar_exports.canCreateBlankNodes)) {
13293
- throw new Error("Cannot create blanknodes in current parse mode");
13294
- }
13295
- const node = currentReifier ?? context.dataFactory.blankNode();
13296
13298
  annotations.push({
13297
13299
  node,
13298
- triples: block.map((partial) => partial({ subject: node }))
13300
+ triples: block
13299
13301
  });
13300
13302
  currentReifier = void 0;
13301
13303
  });
@@ -13314,9 +13316,9 @@ var annotation = annotationImpl("annotation", false);
13314
13316
  function annotationBlockImpl(name, allowPaths) {
13315
13317
  return {
13316
13318
  name,
13317
- impl: ({ SUBRULE, CONSUME }) => () => {
13319
+ impl: ({ SUBRULE, CONSUME }) => (subject) => {
13318
13320
  CONSUME(annotationOpen);
13319
- const res = SUBRULE(allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty);
13321
+ const res = SUBRULE(allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty, subject);
13320
13322
  CONSUME(annotationClose);
13321
13323
  return res;
13322
13324
  }
@@ -9,14 +9,6 @@ export type Triple = {
9
9
  predicate: T11.IriTerm | T11.VariableTerm | T11.PropertyPath;
10
10
  object: Term;
11
11
  };
12
- /**
13
- * OVERRIDES: {@link T11.TripleCreatorS}
14
- */
15
- export type TripleCreatorS = (part: Pick<Triple, 'subject'>) => Triple;
16
- /**
17
- * OVERRIDES: {@link T11.TripleCreatorSP}
18
- */
19
- export type TripleCreatorSP = (part: Pick<Triple, 'subject' | 'predicate'>) => Triple;
20
12
  /**
21
13
  * OVERRIDES: {@link T11.ITriplesNode}
22
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sparql12Types.js","sourceRoot":"","sources":["sparql12Types.ts"],"names":[],"mappings":"","sourcesContent":["import type * as RdfJs from '@rdfjs/types';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\n\nexport type BaseQuadTerm = RdfJs.BaseQuad;\nexport type GraphTerm = T11.GraphTerm | BaseQuadTerm;\nexport type Term = T11.Term | BaseQuadTerm;\nexport type Expression = T11.Expression | BaseQuadTerm;\n\nexport type Triple = {\n subject: Term;\n predicate: T11.IriTerm | T11.VariableTerm | T11.PropertyPath;\n object: Term;\n};\n\n/**\n * OVERRIDES: {@link T11.TripleCreatorS}\n */\nexport type TripleCreatorS = (part: Pick<Triple, 'subject'>) => Triple;\n/**\n * OVERRIDES: {@link T11.TripleCreatorSP}\n */\nexport type TripleCreatorSP = (part: Pick<Triple, 'subject' | 'predicate'>) => Triple;\n\n/**\n * OVERRIDES: {@link T11.ITriplesNode}\n */\nexport interface ITriplesNode {\n node: T11.IriTerm | T11.BlankTerm;\n triples: Triple[];\n}\n\n/**\n * OVERRIDES: {@link T11.IGraphNode}\n */\nexport interface IGraphNode {\n node: ITriplesNode['node'] | Term;\n triples: Triple[];\n}\n"]}
1
+ {"version":3,"file":"sparql12Types.js","sourceRoot":"","sources":["sparql12Types.ts"],"names":[],"mappings":"","sourcesContent":["import type * as RdfJs from '@rdfjs/types';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\n\nexport type BaseQuadTerm = RdfJs.BaseQuad;\nexport type GraphTerm = T11.GraphTerm | BaseQuadTerm;\nexport type Term = T11.Term | BaseQuadTerm;\nexport type Expression = T11.Expression | BaseQuadTerm;\n\nexport type Triple = {\n subject: Term;\n predicate: T11.IriTerm | T11.VariableTerm | T11.PropertyPath;\n object: Term;\n};\n\n/**\n * OVERRIDES: {@link T11.ITriplesNode}\n */\nexport interface ITriplesNode {\n node: T11.IriTerm | T11.BlankTerm;\n triples: Triple[];\n}\n\n/**\n * OVERRIDES: {@link T11.IGraphNode}\n */\nexport interface IGraphNode {\n node: ITriplesNode['node'] | Term;\n triples: Triple[];\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@traqula/rules-sparql-1-2",
3
- "version": "0.0.1-alpha.143+7e8a4c4",
3
+ "version": "0.0.1-alpha.145+b7fd73e",
4
4
  "description": "TRAQULA Lexer and Grammar Rules for sparql 1.2",
5
5
  "lsd:module": true,
6
6
  "license": "MIT",
@@ -38,11 +38,11 @@
38
38
  "build:transpile": " node \"../../node_modules/esbuild/bin/esbuild\" --format=cjs --bundle --log-level=error --outfile=lib/index.cjs lib/index.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@traqula/core": "^0.0.1-alpha.143+7e8a4c4",
42
- "@traqula/rules-sparql-1-1": "^0.0.1-alpha.143+7e8a4c4"
41
+ "@traqula/core": "^0.0.1-alpha.145+b7fd73e",
42
+ "@traqula/rules-sparql-1-1": "^0.0.1-alpha.145+b7fd73e"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@rdfjs/types": "^2.0.0"
46
46
  },
47
- "gitHead": "7e8a4c4897f112e7291b733121a83726bacfdd0b"
47
+ "gitHead": "b7fd73efdfc32dec46beaa040431ba031a723b53"
48
48
  }