@traqula/rules-sparql-1-2 0.0.1-alpha.141 → 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
@@ -9327,10 +9327,16 @@ function resolveIRI(iri3, base) {
9327
9327
  return base.replace(/(?:\?.*)?$/u, iri3);
9328
9328
  // Resolve root relative IRIs at the root of the base IRI
9329
9329
  case "/":
9330
- return base + iri3;
9330
+ const baseMatch = base.match(/^(?:[a-z]+:\/*)?[^\/]*/);
9331
+ if (!baseMatch) {
9332
+ throw new Error(`Could not determine relative IRI using base: ${base}`);
9333
+ }
9334
+ const baseRoot = baseMatch[0];
9335
+ return baseRoot + iri3;
9331
9336
  // Resolve all other IRIs at the base IRI's path
9332
9337
  default:
9333
- return base + iri3;
9338
+ const basePath = base.replace(/[^\/:]*$/, "");
9339
+ return basePath + iri3;
9334
9340
  }
9335
9341
  }
9336
9342
 
@@ -10535,12 +10541,6 @@ var blankNode = {
10535
10541
  {
10536
10542
  ALT: () => {
10537
10543
  const label = CONSUME(terminals_exports.blankNodeLabel).image;
10538
- ACTION(() => {
10539
- if (context.flushedBlankNodeLabels.has(label)) {
10540
- throw new Error("Detected reuse blank node across different request string.");
10541
- }
10542
- context.usedBlankNodeLabels.add(label);
10543
- });
10544
10544
  return ACTION(() => context.dataFactory.blankNode(label.replace("_:", "e_")));
10545
10545
  }
10546
10546
  },
@@ -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 = {
@@ -12769,6 +12767,7 @@ var updateUnit = {
12769
12767
  var update = {
12770
12768
  name: "update",
12771
12769
  impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2, context }) => () => {
12770
+ const blankLabelsUsedInInsertData = /* @__PURE__ */ new Set();
12772
12771
  const prologueValues = SUBRULE(prologue);
12773
12772
  const result = {
12774
12773
  type: "update",
@@ -12778,12 +12777,6 @@ var update = {
12778
12777
  };
12779
12778
  OPTION1(() => {
12780
12779
  const updateOperation = SUBRULE(update1);
12781
- ACTION(() => {
12782
- for (const label of context.usedBlankNodeLabels) {
12783
- context.flushedBlankNodeLabels.add(label);
12784
- }
12785
- context.usedBlankNodeLabels.clear();
12786
- });
12787
12780
  const recursiveRes = OPTION2(() => {
12788
12781
  CONSUME(symbols_exports.semi);
12789
12782
  return SUBRULE(update);
@@ -13186,10 +13179,10 @@ function reifiedTripleBlockImpl(name, allowPath) {
13186
13179
  name,
13187
13180
  impl: ({ ACTION, SUBRULE }) => () => {
13188
13181
  const triple = SUBRULE(reifiedTriple);
13189
- const properties = SUBRULE(allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList);
13182
+ const properties = SUBRULE(allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList, triple.node);
13190
13183
  return ACTION(() => [
13191
13184
  ...triple.triples,
13192
- ...properties.map((partial) => partial({ subject: triple.node }))
13185
+ ...properties
13193
13186
  ]);
13194
13187
  }
13195
13188
  };
@@ -13238,32 +13231,30 @@ var triplesSameSubjectPath2 = triplesSameSubjectImpl2("triplesSameSubjectPath",
13238
13231
  function objectImpl2(name, allowPaths) {
13239
13232
  return {
13240
13233
  name,
13241
- impl: ({ ACTION, SUBRULE, context }) => () => {
13234
+ impl: ({ ACTION, SUBRULE, context }) => (subject, predicate) => {
13242
13235
  const objectVal = SUBRULE(allowPaths ? graphNodePath2 : graphNode2);
13243
13236
  const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);
13244
13237
  return ACTION(() => {
13238
+ if ("type" in predicate && predicate.type === "path" && annotationVal.length > 0) {
13239
+ throw new Error("Note 17 violation");
13240
+ }
13245
13241
  const result = [
13246
13242
  // You parse the object
13247
- ({ subject, predicate }) => ({ subject, predicate, object: objectVal.node }),
13243
+ { subject, predicate, object: objectVal.node },
13248
13244
  // You might get some additional triples from parsing the object (like when it's a collection)
13249
- ...objectVal.triples.map((triple) => () => triple)
13245
+ ...objectVal.triples
13250
13246
  ];
13251
13247
  for (const annotation2 of annotationVal) {
13252
- result.push(({ subject, predicate }) => {
13253
- if ("type" in predicate && predicate.type === "path") {
13254
- throw new Error("Note 17 violation");
13255
- }
13256
- return context.dataFactory.quad(
13257
- annotation2.node,
13258
- context.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies" /* REIFIES */),
13259
- context.dataFactory.quad(
13260
- subject,
13261
- predicate,
13262
- objectVal.node
13263
- )
13264
- );
13265
- });
13266
- 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);
13267
13258
  }
13268
13259
  return result;
13269
13260
  });
@@ -13292,15 +13283,21 @@ function annotationImpl(name, allowPaths) {
13292
13283
  currentReifier = node;
13293
13284
  } },
13294
13285
  { ALT: () => {
13295
- 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
+ );
13296
13297
  ACTION(() => {
13297
- if (currentReifier === void 0 && !context.parseMode.has(grammar_exports.canCreateBlankNodes)) {
13298
- throw new Error("Cannot create blanknodes in current parse mode");
13299
- }
13300
- const node = currentReifier ?? context.dataFactory.blankNode();
13301
13298
  annotations.push({
13302
13299
  node,
13303
- triples: block.map((partial) => partial({ subject: node }))
13300
+ triples: block
13304
13301
  });
13305
13302
  currentReifier = void 0;
13306
13303
  });
@@ -13319,9 +13316,9 @@ var annotation = annotationImpl("annotation", false);
13319
13316
  function annotationBlockImpl(name, allowPaths) {
13320
13317
  return {
13321
13318
  name,
13322
- impl: ({ SUBRULE, CONSUME }) => () => {
13319
+ impl: ({ SUBRULE, CONSUME }) => (subject) => {
13323
13320
  CONSUME(annotationOpen);
13324
- const res = SUBRULE(allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty);
13321
+ const res = SUBRULE(allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty, subject);
13325
13322
  CONSUME(annotationClose);
13326
13323
  return res;
13327
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.141+caaf4c7",
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.141+caaf4c7",
42
- "@traqula/rules-sparql-1-1": "^0.0.1-alpha.141+caaf4c7"
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": "caaf4c71153d27f8fa113b51efb1dae91e182960"
47
+ "gitHead": "b7fd73efdfc32dec46beaa040431ba031a723b53"
48
48
  }