@traqula/rules-sparql-1-1 0.0.1-alpha.140 → 0.0.1-alpha.143
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/general.js +4 -1
- package/lib/grammar/general.js.map +1 -1
- package/lib/grammar/literals.js +0 -6
- package/lib/grammar/literals.js.map +1 -1
- package/lib/grammar/queryUnit/queryUnit.js.map +1 -1
- package/lib/grammar/updateUnit/updateUnit.js +1 -6
- package/lib/grammar/updateUnit/updateUnit.js.map +1 -1
- package/lib/index.cjs +12 -16
- package/package.json +3 -3
package/lib/grammar/general.js
CHANGED
|
@@ -7,9 +7,10 @@ import { triplesSameSubject } from './tripleBlock';
|
|
|
7
7
|
*/
|
|
8
8
|
export const prologue = {
|
|
9
9
|
name: 'prologue',
|
|
10
|
-
impl: ({ ACTION, SUBRULE, MANY, OR }) => () => {
|
|
10
|
+
impl: ({ ACTION, SUBRULE, MANY, OR, context }) => () => {
|
|
11
11
|
const result = {
|
|
12
12
|
prefixes: {},
|
|
13
|
+
...(context.baseIRI && { base: context.baseIRI }),
|
|
13
14
|
};
|
|
14
15
|
MANY(() => {
|
|
15
16
|
OR([
|
|
@@ -20,6 +21,8 @@ export const prologue = {
|
|
|
20
21
|
},
|
|
21
22
|
{
|
|
22
23
|
ALT: () => {
|
|
24
|
+
// TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
|
|
25
|
+
// We might need to check this.
|
|
23
26
|
const pref = SUBRULE(prefixDecl);
|
|
24
27
|
ACTION(() => {
|
|
25
28
|
const [name, value] = pref;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.js","sourceRoot":"","sources":["general.ts"],"names":[],"mappings":"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","sourcesContent":["import * as l from '../lexer';\nimport type { RuleDef } from '@traqula/core';\nimport { CommonIRIs, resolveIRI } from '@traqula/core';\nimport { blankNode, booleanLiteral, canCreateBlankNodes, iri, numericLiteral, rdfLiteral } from './literals';\nimport type { GraphTerm, Term, Triple, VerbA, IriTerm, VariableTerm, BaseQuery } from '../Sparql11types';\nimport { triplesSameSubject } from './tripleBlock';\n\n/**\n * [[4]](https://www.w3.org/TR/sparql11-query/#rPrologue)\n */\nexport const prologue: RuleDef<'prologue', Pick<BaseQuery, 'base' | 'prefixes'>> = <const> {\n name: 'prologue',\n impl: ({ ACTION, SUBRULE, MANY, OR }) => () => {\n const result: Pick<BaseQuery, 'base' | 'prefixes'> = {\n prefixes: {},\n };\n MANY(() => {\n OR([\n {\n ALT: () => {\n result.base = SUBRULE(baseDecl);\n },\n },\n {\n ALT: () => {\n const pref = SUBRULE(prefixDecl);\n ACTION(() => {\n const [ name, value ] = pref;\n result.prefixes[name] = value;\n });\n },\n },\n ]);\n });\n return result;\n },\n};\n\n/**\n * Registers base IRI in the context and returns it.\n * [[5]](https://www.w3.org/TR/sparql11-query/#rBaseDecl)\n */\nexport const baseDecl: RuleDef<'baseDecl', string> = <const> {\n name: 'baseDecl',\n impl: ({ CONSUME, ACTION, context }) => () => {\n CONSUME(l.baseDecl);\n const base = CONSUME(l.terminals.iriRef).image.slice(1, -1);\n return ACTION(() => {\n context.baseIRI = base;\n return base;\n });\n },\n};\n\n/**\n * Registers prefix in the context and returns registered key-value-pair.\n * [[6]](https://www.w3.org/TR/sparql11-query/#rPrefixDecl)\n */\nexport const prefixDecl: RuleDef<'prefixDecl', [string, string]> = <const> {\n name: 'prefixDecl',\n impl: ({ CONSUME, ACTION, context }) => () => {\n CONSUME(l.prefixDecl);\n const name = CONSUME(l.terminals.pNameNs).image.slice(0, -1);\n const value = CONSUME(l.terminals.iriRef).image.slice(1, -1);\n\n return ACTION(() => {\n const fullIri = resolveIRI(value, context.baseIRI);\n context.prefixes[name] = fullIri;\n return [ name, fullIri ];\n });\n },\n};\n\n/**\n * [[52]](https://www.w3.org/TR/sparql11-query/#rTriplesTemplate)\n */\nexport const triplesTemplate: RuleDef<'triplesTemplate', Triple[]> = <const> {\n name: 'triplesTemplate',\n impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {\n const triples: Triple[][] = [];\n\n triples.push(SUBRULE(triplesSameSubject));\n OPTION1(() => {\n CONSUME(l.symbols.dot);\n OPTION2(() => {\n triples.push(SUBRULE(triplesTemplate));\n });\n });\n\n return triples.flat(1);\n },\n};\n\n/**\n * [[78]](https://www.w3.org/TR/sparql11-query/#rVerb)\n */\nexport const verb: RuleDef<'verb', VariableTerm | IriTerm> = <const> {\n name: 'verb',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(varOrIri) },\n {\n ALT: () => SUBRULE(verbA),\n },\n ]),\n};\n\nexport const verbA: RuleDef<'VerbA', VerbA> = <const> {\n name: 'VerbA',\n impl: ({ CONSUME, context }) => () => {\n CONSUME(l.a);\n return context.dataFactory.namedNode(CommonIRIs.TYPE);\n },\n};\n\n/**\n * [[106]](https://www.w3.org/TR/sparql11-query/#rVarOrTerm)\n */\nexport const varOrTerm: RuleDef<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ SUBRULE, OR, context }) => () => OR<Term>([\n { GATE: () => context.parseMode.has(canParseVars), ALT: () => SUBRULE(var_) },\n { ALT: () => SUBRULE(graphTerm) },\n ]),\n};\n\n/**\n * [[107]](https://www.w3.org/TR/sparql11-query/#rVarOrIri)\n */\nexport const varOrIri: RuleDef<'varOrIri', IriTerm | VariableTerm> = <const> {\n name: 'varOrIri',\n impl: ({ SUBRULE, OR, context }) => () => OR<IriTerm | VariableTerm>([\n { GATE: () => context.parseMode.has(canParseVars), ALT: () => SUBRULE(var_) },\n { ALT: () => SUBRULE(iri) },\n ]),\n};\n\nexport const canParseVars = Symbol('canParseVars');\n\n/**\n * [[108]](https://www.w3.org/TR/sparql11-query/#rVar)\n */\nexport const var_: RuleDef<'var', VariableTerm> = <const> {\n name: 'var',\n impl: ({ ACTION, CONSUME, OR, context }) => () => {\n const result = OR([\n { ALT: () => context.dataFactory.variable(CONSUME(l.terminals.var1).image.slice(1)) },\n { ALT: () => context.dataFactory.variable(CONSUME(l.terminals.var2).image.slice(1)) },\n ]);\n ACTION(() => {\n if (!context.parseMode.has(canParseVars)) {\n throw new Error('Variables are not allowed here');\n }\n });\n return result;\n },\n};\n\n/**\n * [[109]](https://www.w3.org/TR/sparql11-query/#rGraphTerm)\n */\nexport const graphTerm: RuleDef<'graphTerm', GraphTerm> = <const> {\n name: 'graphTerm',\n impl: ({ SUBRULE, CONSUME, OR, context }) => () => OR<GraphTerm>([\n { ALT: () => SUBRULE(iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(numericLiteral) },\n { ALT: () => SUBRULE(booleanLiteral) },\n { GATE: () => context.parseMode.has(canCreateBlankNodes), ALT: () => SUBRULE(blankNode) },\n {\n ALT: () => {\n CONSUME(l.terminals.nil);\n return context.dataFactory.namedNode(CommonIRIs.NIL);\n },\n },\n ]),\n};\n"]}
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["general.ts"],"names":[],"mappings":"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","sourcesContent":["import * as l from '../lexer';\nimport type { RuleDef } from '@traqula/core';\nimport { CommonIRIs, resolveIRI } from '@traqula/core';\nimport { blankNode, booleanLiteral, canCreateBlankNodes, iri, numericLiteral, rdfLiteral } from './literals';\nimport type { GraphTerm, Term, Triple, VerbA, IriTerm, VariableTerm, BaseQuery } from '../Sparql11types';\nimport { triplesSameSubject } from './tripleBlock';\n\n/**\n * [[4]](https://www.w3.org/TR/sparql11-query/#rPrologue)\n */\nexport const prologue: RuleDef<'prologue', Pick<BaseQuery, 'base' | 'prefixes'>> = <const> {\n name: 'prologue',\n impl: ({ ACTION, SUBRULE, MANY, OR, context }) => () => {\n const result: Pick<BaseQuery, 'base' | 'prefixes'> = {\n prefixes: {},\n ...(context.baseIRI && { base: context.baseIRI }),\n };\n MANY(() => {\n OR([\n {\n ALT: () => {\n result.base = SUBRULE(baseDecl);\n },\n },\n {\n ALT: () => {\n // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.\n // We might need to check this.\n const pref = SUBRULE(prefixDecl);\n ACTION(() => {\n const [ name, value ] = pref;\n result.prefixes[name] = value;\n });\n },\n },\n ]);\n });\n return result;\n },\n};\n\n/**\n * Registers base IRI in the context and returns it.\n * [[5]](https://www.w3.org/TR/sparql11-query/#rBaseDecl)\n */\nexport const baseDecl: RuleDef<'baseDecl', string> = <const> {\n name: 'baseDecl',\n impl: ({ CONSUME, ACTION, context }) => () => {\n CONSUME(l.baseDecl);\n const base = CONSUME(l.terminals.iriRef).image.slice(1, -1);\n return ACTION(() => {\n context.baseIRI = base;\n return base;\n });\n },\n};\n\n/**\n * Registers prefix in the context and returns registered key-value-pair.\n * [[6]](https://www.w3.org/TR/sparql11-query/#rPrefixDecl)\n */\nexport const prefixDecl: RuleDef<'prefixDecl', [string, string]> = <const> {\n name: 'prefixDecl',\n impl: ({ CONSUME, ACTION, context }) => () => {\n CONSUME(l.prefixDecl);\n const name = CONSUME(l.terminals.pNameNs).image.slice(0, -1);\n const value = CONSUME(l.terminals.iriRef).image.slice(1, -1);\n\n return ACTION(() => {\n const fullIri = resolveIRI(value, context.baseIRI);\n context.prefixes[name] = fullIri;\n return [ name, fullIri ];\n });\n },\n};\n\n/**\n * [[52]](https://www.w3.org/TR/sparql11-query/#rTriplesTemplate)\n */\nexport const triplesTemplate: RuleDef<'triplesTemplate', Triple[]> = <const> {\n name: 'triplesTemplate',\n impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {\n const triples: Triple[][] = [];\n\n triples.push(SUBRULE(triplesSameSubject));\n OPTION1(() => {\n CONSUME(l.symbols.dot);\n OPTION2(() => {\n triples.push(SUBRULE(triplesTemplate));\n });\n });\n\n return triples.flat(1);\n },\n};\n\n/**\n * [[78]](https://www.w3.org/TR/sparql11-query/#rVerb)\n */\nexport const verb: RuleDef<'verb', VariableTerm | IriTerm> = <const> {\n name: 'verb',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(varOrIri) },\n {\n ALT: () => SUBRULE(verbA),\n },\n ]),\n};\n\nexport const verbA: RuleDef<'VerbA', VerbA> = <const> {\n name: 'VerbA',\n impl: ({ CONSUME, context }) => () => {\n CONSUME(l.a);\n return context.dataFactory.namedNode(CommonIRIs.TYPE);\n },\n};\n\n/**\n * [[106]](https://www.w3.org/TR/sparql11-query/#rVarOrTerm)\n */\nexport const varOrTerm: RuleDef<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ SUBRULE, OR, context }) => () => OR<Term>([\n { GATE: () => context.parseMode.has(canParseVars), ALT: () => SUBRULE(var_) },\n { ALT: () => SUBRULE(graphTerm) },\n ]),\n};\n\n/**\n * [[107]](https://www.w3.org/TR/sparql11-query/#rVarOrIri)\n */\nexport const varOrIri: RuleDef<'varOrIri', IriTerm | VariableTerm> = <const> {\n name: 'varOrIri',\n impl: ({ SUBRULE, OR, context }) => () => OR<IriTerm | VariableTerm>([\n { GATE: () => context.parseMode.has(canParseVars), ALT: () => SUBRULE(var_) },\n { ALT: () => SUBRULE(iri) },\n ]),\n};\n\nexport const canParseVars = Symbol('canParseVars');\n\n/**\n * [[108]](https://www.w3.org/TR/sparql11-query/#rVar)\n */\nexport const var_: RuleDef<'var', VariableTerm> = <const> {\n name: 'var',\n impl: ({ ACTION, CONSUME, OR, context }) => () => {\n const result = OR([\n { ALT: () => context.dataFactory.variable(CONSUME(l.terminals.var1).image.slice(1)) },\n { ALT: () => context.dataFactory.variable(CONSUME(l.terminals.var2).image.slice(1)) },\n ]);\n ACTION(() => {\n if (!context.parseMode.has(canParseVars)) {\n throw new Error('Variables are not allowed here');\n }\n });\n return result;\n },\n};\n\n/**\n * [[109]](https://www.w3.org/TR/sparql11-query/#rGraphTerm)\n */\nexport const graphTerm: RuleDef<'graphTerm', GraphTerm> = <const> {\n name: 'graphTerm',\n impl: ({ SUBRULE, CONSUME, OR, context }) => () => OR<GraphTerm>([\n { ALT: () => SUBRULE(iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(numericLiteral) },\n { ALT: () => SUBRULE(booleanLiteral) },\n { GATE: () => context.parseMode.has(canCreateBlankNodes), ALT: () => SUBRULE(blankNode) },\n {\n ALT: () => {\n CONSUME(l.terminals.nil);\n return context.dataFactory.namedNode(CommonIRIs.NIL);\n },\n },\n ]),\n};\n"]}
|
package/lib/grammar/literals.js
CHANGED
|
@@ -152,12 +152,6 @@ export const blankNode = {
|
|
|
152
152
|
{
|
|
153
153
|
ALT: () => {
|
|
154
154
|
const label = CONSUME(l.terminals.blankNodeLabel).image;
|
|
155
|
-
ACTION(() => {
|
|
156
|
-
if (context.flushedBlankNodeLabels.has(label)) {
|
|
157
|
-
throw new Error('Detected reuse blank node across different request string.');
|
|
158
|
-
}
|
|
159
|
-
context.usedBlankNodeLabels.add(label);
|
|
160
|
-
});
|
|
161
155
|
return ACTION(() => context.dataFactory.blankNode(label.replace('_:', 'e_')));
|
|
162
156
|
},
|
|
163
157
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.js","sourceRoot":"","sources":["literals.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NamedNode } from 'rdf-data-factory';\nimport * as l from '../lexer';\nimport type { RuleDef } from '@traqula/core';\nimport { CommonIRIs, resolveIRI } from '@traqula/core';\nimport type { BlankTerm, IriTerm, LiteralTerm } from '../Sparql11types';\n\n/**\n * Parses an RDF literal, in the form of {value}@{lang} or {value}^^{datatype}.\n * [[129]](https://www.w3.org/TR/sparql11-query/#rRDFLiteral)\n */\nexport const rdfLiteral: RuleDef<'rdfLiteral', LiteralTerm> = <const> {\n name: 'rdfLiteral',\n impl: ({ SUBRULE, CONSUME, OPTION, OR, context }) => () => {\n const value = SUBRULE(string);\n const languageOrDatatype = OPTION(() => OR<string | NamedNode>([\n { ALT: () => CONSUME(l.terminals.langTag).image.slice(1) },\n {\n ALT: () => {\n CONSUME(l.symbols.hathat);\n return SUBRULE(iri);\n },\n },\n ]));\n return context.dataFactory.literal(value, languageOrDatatype);\n },\n};\n\n/**\n * Parses a numeric literal.\n * [[130]](https://www.w3.org/TR/sparql11-query/#rNumericLiteral)\n */\nexport const numericLiteral: RuleDef<'numericLiteral', LiteralTerm> = <const> {\n name: 'numericLiteral',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(numericLiteralUnsigned) },\n { ALT: () => SUBRULE(numericLiteralPositive) },\n { ALT: () => SUBRULE(numericLiteralNegative) },\n ]),\n};\n\n/**\n * Parses an unsigned numeric literal.\n * [[131]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralUnsigned)\n */\nexport const numericLiteralUnsigned: RuleDef<'numericLiteralUnsigned', LiteralTerm> = <const> {\n name: 'numericLiteralUnsigned',\n impl: ({ CONSUME, OR, context }) => () => OR([\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.integer).image,\n context.dataFactory.namedNode(CommonIRIs.INTEGER),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.decimal).image,\n context.dataFactory.namedNode(CommonIRIs.DECIMAL),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.double).image,\n context.dataFactory.namedNode(CommonIRIs.DOUBLE),\n ) },\n ]),\n};\n\n/**\n * Parses a positive numeric literal.\n * [[132]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralPositive)\n */\nexport const numericLiteralPositive: RuleDef<'numericLiteralPositive', LiteralTerm> = <const> {\n name: 'numericLiteralPositive',\n impl: ({ CONSUME, OR, context }) => () => OR([\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.interferePositive).image,\n context.dataFactory.namedNode(CommonIRIs.INTEGER),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.decimalPositive).image,\n context.dataFactory.namedNode(CommonIRIs.DECIMAL),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.doublePositive).image,\n context.dataFactory.namedNode(CommonIRIs.DOUBLE),\n ) },\n ]),\n};\n\n/**\n * Parses a negative numeric literal.\n * [[133]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralNegative)\n */\nexport const numericLiteralNegative: RuleDef<'numericLiteralNegative', LiteralTerm> = <const> {\n name: 'numericLiteralNegative',\n impl: ({ CONSUME, OR, context }) => () => OR([\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.integerNegative).image,\n context.dataFactory.namedNode(CommonIRIs.INTEGER),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.decimalNegative).image,\n context.dataFactory.namedNode(CommonIRIs.DECIMAL),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.doubleNegative).image,\n context.dataFactory.namedNode(CommonIRIs.DOUBLE),\n ) },\n ]),\n};\n\n/**\n * Parses a boolean literal.\n * [[134]](https://www.w3.org/TR/sparql11-query/#rBooleanLiteral)\n */\nexport const booleanLiteral: RuleDef<'booleanLiteral', LiteralTerm> = <const> {\n name: 'booleanLiteral',\n impl: ({ CONSUME, OR, context }) => () => OR([\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.true_).image.toLowerCase(),\n context.dataFactory.namedNode(CommonIRIs.BOOLEAN),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.false_).image.toLowerCase(),\n context.dataFactory.namedNode(CommonIRIs.BOOLEAN),\n ) },\n ]),\n};\n\n/**\n * Parses a string literal.\n * [[135]](https://www.w3.org/TR/sparql11-query/#rString)\n */\nexport const string: RuleDef<'string', string> = <const> {\n name: 'string',\n impl: ({ ACTION, CONSUME, OR }) => () => {\n const rawString = OR([\n { ALT: () => CONSUME(l.terminals.stringLiteral1).image.slice(1, -1) },\n { ALT: () => CONSUME(l.terminals.stringLiteral2).image.slice(1, -1) },\n { ALT: () => CONSUME(l.terminals.stringLiteralLong1).image.slice(3, -3) },\n { ALT: () => CONSUME(l.terminals.stringLiteralLong2).image.slice(3, -3) },\n ]);\n // Handle string escapes (19.7). (19.2 is handled at input level.)\n return ACTION(() => rawString.replaceAll(/\\\\([tnrbf\"'\\\\])/gu, (_, char: string) => {\n switch (char) {\n case 't': return '\\t';\n case 'n': return '\\n';\n case 'r': return '\\r';\n case 'b': return '\\b';\n case 'f': return '\\f';\n default: return char;\n }\n }));\n },\n};\n\n/**\n * Parses a named node, either as an IRI or as a prefixed name.\n * [[136]](https://www.w3.org/TR/sparql11-query/#riri)\n */\nexport const iri: RuleDef<'iri', IriTerm> = <const> {\n name: 'iri',\n impl: ({ ACTION, SUBRULE, CONSUME, OR, context }) => () => OR([\n { ALT: () => {\n const iriVal = CONSUME(l.terminals.iriRef).image.slice(1, -1);\n return ACTION(() => context.dataFactory.namedNode(resolveIRI(iriVal, context.baseIRI)));\n } },\n { ALT: () => SUBRULE(prefixedName) },\n ]),\n};\n\n/**\n * Parses a named node with a prefix. Looks up the prefix in the context and returns the full IRI.\n * [[137]](https://www.w3.org/TR/sparql11-query/#rPrefixedName)\n */\nexport const prefixedName: RuleDef<'prefixedName', IriTerm> = <const> {\n name: 'prefixedName',\n impl: ({ ACTION, CONSUME, OR, context }) => () => {\n const fullStr = OR([\n { ALT: () => CONSUME(l.terminals.pNameLn).image },\n { ALT: () => CONSUME(l.terminals.pNameNs).image },\n ]);\n return ACTION(() => {\n const [ prefix, localName ] = fullStr.split(':');\n const value = context.prefixes[prefix];\n if (value === undefined) {\n throw new Error(`Unknown prefix: ${prefix}`);\n }\n return context.dataFactory.namedNode(resolveIRI(value + localName, context.baseIRI));\n });\n },\n};\n\nexport const canCreateBlankNodes = Symbol('canCreateBlankNodes');\n\n/**\n * Parses blank note and throws an error if 'canCreateBlankNodes' is not in the current parserMode.\n * [[138]](https://www.w3.org/TR/sparql11-query/#rBlankNode)\n */\nexport const blankNode: RuleDef<'blankNode', BlankTerm> = <const> {\n name: 'blankNode',\n impl: ({ ACTION, CONSUME, OR, context }) => () => {\n const result = OR([\n {\n ALT: () => {\n const label = CONSUME(l.terminals.blankNodeLabel).image;\n ACTION(() => {\n if (context.flushedBlankNodeLabels.has(label)) {\n throw new Error('Detected reuse blank node across different request string.');\n }\n context.usedBlankNodeLabels.add(label);\n });\n return ACTION(() => context.dataFactory.blankNode(label.replace('_:', 'e_')));\n },\n },\n {\n ALT: () => {\n CONSUME(l.terminals.anon);\n return ACTION(() => context.dataFactory.blankNode());\n },\n },\n ]);\n ACTION(() => {\n if (!context.parseMode.has(canCreateBlankNodes)) {\n throw new Error('Blank nodes are not allowed in this context');\n }\n });\n return result;\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"literals.js","sourceRoot":"","sources":["literals.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NamedNode } from 'rdf-data-factory';\nimport * as l from '../lexer';\nimport type { RuleDef } from '@traqula/core';\nimport { CommonIRIs, resolveIRI } from '@traqula/core';\nimport type { BlankTerm, IriTerm, LiteralTerm } from '../Sparql11types';\n\n/**\n * Parses an RDF literal, in the form of {value}@{lang} or {value}^^{datatype}.\n * [[129]](https://www.w3.org/TR/sparql11-query/#rRDFLiteral)\n */\nexport const rdfLiteral: RuleDef<'rdfLiteral', LiteralTerm> = <const> {\n name: 'rdfLiteral',\n impl: ({ SUBRULE, CONSUME, OPTION, OR, context }) => () => {\n const value = SUBRULE(string);\n const languageOrDatatype = OPTION(() => OR<string | NamedNode>([\n { ALT: () => CONSUME(l.terminals.langTag).image.slice(1) },\n {\n ALT: () => {\n CONSUME(l.symbols.hathat);\n return SUBRULE(iri);\n },\n },\n ]));\n return context.dataFactory.literal(value, languageOrDatatype);\n },\n};\n\n/**\n * Parses a numeric literal.\n * [[130]](https://www.w3.org/TR/sparql11-query/#rNumericLiteral)\n */\nexport const numericLiteral: RuleDef<'numericLiteral', LiteralTerm> = <const> {\n name: 'numericLiteral',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(numericLiteralUnsigned) },\n { ALT: () => SUBRULE(numericLiteralPositive) },\n { ALT: () => SUBRULE(numericLiteralNegative) },\n ]),\n};\n\n/**\n * Parses an unsigned numeric literal.\n * [[131]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralUnsigned)\n */\nexport const numericLiteralUnsigned: RuleDef<'numericLiteralUnsigned', LiteralTerm> = <const> {\n name: 'numericLiteralUnsigned',\n impl: ({ CONSUME, OR, context }) => () => OR([\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.integer).image,\n context.dataFactory.namedNode(CommonIRIs.INTEGER),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.decimal).image,\n context.dataFactory.namedNode(CommonIRIs.DECIMAL),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.double).image,\n context.dataFactory.namedNode(CommonIRIs.DOUBLE),\n ) },\n ]),\n};\n\n/**\n * Parses a positive numeric literal.\n * [[132]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralPositive)\n */\nexport const numericLiteralPositive: RuleDef<'numericLiteralPositive', LiteralTerm> = <const> {\n name: 'numericLiteralPositive',\n impl: ({ CONSUME, OR, context }) => () => OR([\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.interferePositive).image,\n context.dataFactory.namedNode(CommonIRIs.INTEGER),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.decimalPositive).image,\n context.dataFactory.namedNode(CommonIRIs.DECIMAL),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.doublePositive).image,\n context.dataFactory.namedNode(CommonIRIs.DOUBLE),\n ) },\n ]),\n};\n\n/**\n * Parses a negative numeric literal.\n * [[133]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralNegative)\n */\nexport const numericLiteralNegative: RuleDef<'numericLiteralNegative', LiteralTerm> = <const> {\n name: 'numericLiteralNegative',\n impl: ({ CONSUME, OR, context }) => () => OR([\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.integerNegative).image,\n context.dataFactory.namedNode(CommonIRIs.INTEGER),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.decimalNegative).image,\n context.dataFactory.namedNode(CommonIRIs.DECIMAL),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.terminals.doubleNegative).image,\n context.dataFactory.namedNode(CommonIRIs.DOUBLE),\n ) },\n ]),\n};\n\n/**\n * Parses a boolean literal.\n * [[134]](https://www.w3.org/TR/sparql11-query/#rBooleanLiteral)\n */\nexport const booleanLiteral: RuleDef<'booleanLiteral', LiteralTerm> = <const> {\n name: 'booleanLiteral',\n impl: ({ CONSUME, OR, context }) => () => OR([\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.true_).image.toLowerCase(),\n context.dataFactory.namedNode(CommonIRIs.BOOLEAN),\n ) },\n { ALT: () => context.dataFactory.literal(\n CONSUME(l.false_).image.toLowerCase(),\n context.dataFactory.namedNode(CommonIRIs.BOOLEAN),\n ) },\n ]),\n};\n\n/**\n * Parses a string literal.\n * [[135]](https://www.w3.org/TR/sparql11-query/#rString)\n */\nexport const string: RuleDef<'string', string> = <const> {\n name: 'string',\n impl: ({ ACTION, CONSUME, OR }) => () => {\n const rawString = OR([\n { ALT: () => CONSUME(l.terminals.stringLiteral1).image.slice(1, -1) },\n { ALT: () => CONSUME(l.terminals.stringLiteral2).image.slice(1, -1) },\n { ALT: () => CONSUME(l.terminals.stringLiteralLong1).image.slice(3, -3) },\n { ALT: () => CONSUME(l.terminals.stringLiteralLong2).image.slice(3, -3) },\n ]);\n // Handle string escapes (19.7). (19.2 is handled at input level.)\n return ACTION(() => rawString.replaceAll(/\\\\([tnrbf\"'\\\\])/gu, (_, char: string) => {\n switch (char) {\n case 't': return '\\t';\n case 'n': return '\\n';\n case 'r': return '\\r';\n case 'b': return '\\b';\n case 'f': return '\\f';\n default: return char;\n }\n }));\n },\n};\n\n/**\n * Parses a named node, either as an IRI or as a prefixed name.\n * [[136]](https://www.w3.org/TR/sparql11-query/#riri)\n */\nexport const iri: RuleDef<'iri', IriTerm> = <const> {\n name: 'iri',\n impl: ({ ACTION, SUBRULE, CONSUME, OR, context }) => () => OR([\n { ALT: () => {\n const iriVal = CONSUME(l.terminals.iriRef).image.slice(1, -1);\n return ACTION(() => context.dataFactory.namedNode(resolveIRI(iriVal, context.baseIRI)));\n } },\n { ALT: () => SUBRULE(prefixedName) },\n ]),\n};\n\n/**\n * Parses a named node with a prefix. Looks up the prefix in the context and returns the full IRI.\n * [[137]](https://www.w3.org/TR/sparql11-query/#rPrefixedName)\n */\nexport const prefixedName: RuleDef<'prefixedName', IriTerm> = <const> {\n name: 'prefixedName',\n impl: ({ ACTION, CONSUME, OR, context }) => () => {\n const fullStr = OR([\n { ALT: () => CONSUME(l.terminals.pNameLn).image },\n { ALT: () => CONSUME(l.terminals.pNameNs).image },\n ]);\n return ACTION(() => {\n const [ prefix, localName ] = fullStr.split(':');\n const value = context.prefixes[prefix];\n if (value === undefined) {\n throw new Error(`Unknown prefix: ${prefix}`);\n }\n return context.dataFactory.namedNode(resolveIRI(value + localName, context.baseIRI));\n });\n },\n};\n\nexport const canCreateBlankNodes = Symbol('canCreateBlankNodes');\n\n/**\n * Parses blank note and throws an error if 'canCreateBlankNodes' is not in the current parserMode.\n * [[138]](https://www.w3.org/TR/sparql11-query/#rBlankNode)\n */\nexport const blankNode: RuleDef<'blankNode', BlankTerm> = <const> {\n name: 'blankNode',\n impl: ({ ACTION, CONSUME, OR, context }) => () => {\n const result = OR([\n {\n ALT: () => {\n const label = CONSUME(l.terminals.blankNodeLabel).image;\n return ACTION(() => context.dataFactory.blankNode(label.replace('_:', 'e_')));\n },\n },\n {\n ALT: () => {\n CONSUME(l.terminals.anon);\n return ACTION(() => context.dataFactory.blankNode());\n },\n },\n ]);\n ACTION(() => {\n if (!context.parseMode.has(canCreateBlankNodes)) {\n throw new Error('Blank nodes are not allowed in this context');\n }\n });\n return result;\n },\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryUnit.js","sourceRoot":"","sources":["queryUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import * as l from '../../lexer';\nimport { Wildcard } from '@traqula/core';\nimport type { RuleDef, ImplArgs } from '@traqula/core';\nimport { canParseAggregate } from '../builtIn';\nimport { datasetClause, type IDatasetClause } from '../dataSetClause';\nimport { expression } from '../expression';\nimport { prologue, triplesTemplate, var_, varOrIri } from '../general';\nimport { solutionModifier } from '../solutionModifier';\nimport type {\n AggregateExpression,\n AskQuery,\n ConstructQuery,\n DescribeQuery,\n Expression,\n Grouping,\n IriTerm,\n Pattern,\n Query,\n SelectQuery,\n Triple,\n ValuePatternRow,\n Variable,\n VariableExpression,\n VariableTerm,\n} from '../../Sparql11types';\nimport { triplesSameSubject } from '../tripleBlock';\nimport { dataBlock, whereClause } from '../whereClause';\n\n/**\n * [[1]](https://www.w3.org/TR/sparql11-query/#rQueryUnit)\n */\nexport const queryUnit: RuleDef<'queryUnit', Query> = <const> {\n name: 'queryUnit',\n impl: ({ SUBRULE }) => () => SUBRULE(query),\n};\n\n/**\n * [[2]](https://www.w3.org/TR/sparql11-query/#rQuery)\n */\nexport const query: RuleDef<'query', Query> = <const> {\n name: 'query',\n impl: ({ ACTION, SUBRULE, OR }) => () => {\n const prologueValues = SUBRULE(prologue);\n const queryType = OR<Omit<Query, HandledByBase>>([\n { ALT: () => SUBRULE(selectQuery) },\n { ALT: () => SUBRULE(constructQuery) },\n { ALT: () => SUBRULE(describeQuery) },\n { ALT: () => SUBRULE(askQuery) },\n ]);\n const values = SUBRULE(valuesClause);\n\n return ACTION(() => (<Query>{\n ...prologueValues,\n ...queryType,\n type: 'query',\n ...(values && { values }),\n }));\n },\n};\n\nexport type HandledByBase = 'values' | 'type' | 'base' | 'prefixes';\n\nfunction extractFromOfDataSetClauses(ACTION: ImplArgs['ACTION'], MANY: ImplArgs['MANY'], SUBRULE: ImplArgs['SUBRULE']):\n{ default: IriTerm[]; named: IriTerm[] } | undefined {\n const datasetClauses: IDatasetClause[] = [];\n MANY(() => {\n datasetClauses.push(SUBRULE(datasetClause));\n });\n return ACTION(() => {\n const from: { default: IriTerm[]; named: IriTerm[] } = {\n default: [],\n named: [],\n };\n for (const datasetClause of datasetClauses) {\n if (datasetClause.type === 'default') {\n from.default.push(datasetClause.value);\n } else {\n from.named.push(datasetClause.value);\n }\n }\n return (from.default.length === 0 && from.named.length === 0) ? undefined : from;\n });\n}\n\n/**\n * Get all 'aggregate' rules from an expression\n */\nfunction getAggregatesOfExpression(expression: Expression | Pattern): AggregateExpression[] {\n if ('type' in expression) {\n if (expression.type === 'aggregate') {\n return [ expression ];\n }\n if (expression.type === 'operation') {\n const aggregates: AggregateExpression[] = [];\n for (const arg of expression.args) {\n aggregates.push(...getAggregatesOfExpression(arg));\n }\n return aggregates;\n }\n }\n return [];\n}\n\n/**\n * Return the id of an expression\n */\nfunction getExpressionId(expression: Grouping | VariableTerm | VariableExpression): string | undefined {\n // Check if grouping\n if ('variable' in expression && expression.variable) {\n return expression.variable.value;\n }\n if ('value' in expression) {\n return expression.value;\n }\n return 'value' in expression.expression ? expression.expression.value : undefined;\n}\n/**\n * Get all variables used in an expression\n */\nfunction getVariablesFromExpression(expression: Expression): Set<VariableTerm> {\n const variables = new Set<VariableTerm>();\n const visitExpression = (expr: Expression | Pattern | undefined): void => {\n if (!expr) {\n return;\n }\n if ('termType' in expr && expr.termType === 'Variable') {\n variables.add(expr);\n } else if ('type' in expr && expr.type === 'operation') {\n for (const rec of expr.args) {\n visitExpression(rec);\n }\n }\n };\n visitExpression(expression);\n return variables;\n}\n\n/**\n * [[7]](https://www.w3.org/TR/sparql11-query/#rSelectQuery)\n */\nexport const selectQuery: RuleDef<'selectQuery', Omit<SelectQuery, HandledByBase>> = <const> {\n name: 'selectQuery',\n impl: ({ ACTION, SUBRULE, MANY, context }) => () => {\n const selectVal = SUBRULE(selectClause);\n const from = extractFromOfDataSetClauses(ACTION, MANY, SUBRULE);\n const where = SUBRULE(whereClause);\n const modifier = SUBRULE(solutionModifier);\n\n ACTION(() => {\n if (selectVal.variables.length === 1 && selectVal.variables[0] instanceof Wildcard) {\n if (modifier.group !== undefined) {\n throw new Error('GROUP BY not allowed with wildcard');\n }\n return;\n }\n const variables = <Variable[]> selectVal.variables;\n // Check for projection of ungrouped variable\n // Check can be skipped in case of wildcard select.\n if (!context.skipValidation) {\n const hasCountAggregate = variables.flatMap(\n varVal => 'termType' in varVal ? [] : getAggregatesOfExpression(varVal.expression),\n ).some(agg => agg.aggregation === 'count' && !(agg.expression instanceof Wildcard));\n if (hasCountAggregate || modifier.group) {\n // We have to check whether\n // 1. Variables used in projection are usable given the group by clause\n // 2. A selectCount will create an implicit group by clause.\n for (const selectVar of variables) {\n if ('termType' in selectVar) {\n if (!modifier.group || !modifier.group.map(groupvar => getExpressionId(groupvar))\n .includes((getExpressionId(selectVar)))) {\n throw new Error('Variable not allowed in projection');\n }\n } else if (getAggregatesOfExpression(selectVar.expression).length === 0) {\n const usedvars = getVariablesFromExpression(selectVar.expression);\n for (const usedvar of usedvars) {\n if (!modifier.group || !modifier.group.map || !modifier.group.map(groupVar => getExpressionId(groupVar))\n .includes(getExpressionId(usedvar))) {\n throw new Error(`Use of ungrouped variable in projection of operation (?${getExpressionId(usedvar)})`);\n }\n }\n }\n }\n }\n }\n // Check if id of each AS-selected column is not yet bound by subquery\n const subqueries = where.filter(pattern => pattern.type === 'query');\n if (subqueries.length > 0) {\n const selectedVarIds: string[] = [];\n for (const selectedVar of variables) {\n if ('variable' in selectedVar) {\n selectedVarIds.push(selectedVar.variable.value);\n }\n }\n const vars = subqueries.flatMap(sub => <(Variable | Wildcard)[]>sub.variables)\n .map(v => 'value' in v ? v.value : v.variable.value);\n const subqueryIds = new Set(vars);\n for (const selectedVarId of selectedVarIds) {\n if (subqueryIds.has(selectedVarId)) {\n throw new Error(`Target id of 'AS' (?${selectedVarId}) already used in subquery`);\n }\n }\n }\n });\n\n return {\n ...selectVal,\n queryType: 'SELECT',\n ...(from && { from }),\n where,\n ...modifier,\n };\n },\n};\n\n/**\n * [[8]](https://www.w3.org/TR/sparql11-query/#rSubSelect)\n */\nexport const subSelect: RuleDef<'subSelect', Omit<SelectQuery, 'prefixes'>> = <const> {\n name: 'subSelect',\n impl: ({ ACTION, SUBRULE }) => () => {\n const clause = SUBRULE(selectClause);\n const where = SUBRULE(whereClause);\n const modifiers = SUBRULE(solutionModifier);\n const values = SUBRULE(valuesClause);\n\n return ACTION(() => ({\n ...modifiers,\n ...clause,\n type: 'query',\n queryType: 'SELECT',\n where,\n ...(values && { values }),\n }));\n },\n};\n\n/**\n * [[9]](https://www.w3.org/TR/sparql11-query/#rSelectClause)\n */\nexport interface ISelectClause {\n variables: Variable[] | [Wildcard];\n distinct?: true;\n reduced?: true;\n}\nexport const selectClause: RuleDef<'selectClause', ISelectClause> = <const> {\n name: 'selectClause',\n impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR1, OR2, OR3, context }) => () => {\n CONSUME(l.select);\n const couldParseAgg = ACTION(() =>\n context.parseMode.has(canParseAggregate) || !context.parseMode.add(canParseAggregate));\n\n const distinctOrReduced = OPTION(() => OR1<Partial<{ distinct: true; reduced: true }>>([\n { ALT: () => {\n CONSUME(l.distinct);\n return { distinct: true };\n } },\n { ALT: () => {\n CONSUME(l.reduced);\n return { reduced: true };\n } },\n ]));\n const variables = OR2<ISelectClause['variables']>([\n { ALT: () => {\n CONSUME(l.symbols.star);\n return [ new Wildcard() ];\n } },\n { ALT: () => {\n const usedVars: VariableTerm[] = [];\n const result: Variable[] = [];\n AT_LEAST_ONE(() => OR3([\n { ALT: () => {\n const raw = SUBRULE1(var_);\n ACTION(() => {\n if (usedVars.some(v => v.equals(raw))) {\n throw new Error(`Variable ${raw.value} used more than once in SELECT clause`);\n }\n usedVars.push(raw);\n result.push(raw);\n });\n } },\n { ALT: () => {\n CONSUME(l.symbols.LParen);\n const expr = SUBRULE(expression);\n CONSUME(l.as);\n const variable = SUBRULE2(var_);\n CONSUME(l.symbols.RParen);\n ACTION(() => {\n if (usedVars.some(v => v.equals(variable))) {\n throw new Error(`Variable ${variable.value} used more than once in SELECT clause`);\n }\n usedVars.push(variable);\n result.push({\n expression: expr,\n variable,\n } satisfies VariableExpression);\n });\n } },\n ]));\n return result;\n } },\n ]);\n ACTION(() => !couldParseAgg && context.parseMode.delete(canParseAggregate));\n return ACTION(() => ({\n ...distinctOrReduced,\n variables,\n }));\n },\n};\n\n/**\n * [[10]](https://www.w3.org/TR/sparql11-query/#rConstructQuery)\n */\nexport const constructQuery: RuleDef<'constructQuery', Omit<ConstructQuery, HandledByBase>> = <const> {\n name: 'constructQuery',\n impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, MANY1, MANY2, OPTION, OR }) => () => {\n CONSUME(l.construct);\n return OR<Omit<ConstructQuery, HandledByBase>>([\n {\n ALT: () => {\n const template = SUBRULE(constructTemplate);\n const from = extractFromOfDataSetClauses(ACTION, MANY1, SUBRULE1);\n const where = SUBRULE(whereClause);\n const modifiers = SUBRULE1(solutionModifier);\n return ACTION(() => ({\n ...modifiers,\n queryType: 'CONSTRUCT',\n template,\n from,\n where,\n }));\n },\n },\n {\n ALT: () => {\n const from = extractFromOfDataSetClauses(ACTION, MANY2, SUBRULE2);\n CONSUME(l.where);\n CONSUME(l.symbols.LCurly);\n const template = OPTION(() => SUBRULE(triplesTemplate));\n CONSUME(l.symbols.RCurly);\n const modifiers = SUBRULE2(solutionModifier);\n const where: Pattern[] = template ?\n [{\n type: 'bgp',\n triples: template,\n }] :\n [];\n\n return ACTION(() => ({\n ...modifiers,\n queryType: 'CONSTRUCT',\n from,\n template,\n where,\n }));\n },\n },\n ]);\n },\n};\n\n/**\n * [[11]](https://www.w3.org/TR/sparql11-query/#rDescribeQuery)\n */\nexport const describeQuery: RuleDef<'describeQuery', Omit<DescribeQuery, HandledByBase>> = <const> {\n name: 'describeQuery',\n impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, MANY, OPTION, OR }) => () => {\n CONSUME(l.describe);\n const variables = OR<DescribeQuery['variables']>([\n { ALT: () => {\n const variables: (VariableTerm | IriTerm)[] = [];\n AT_LEAST_ONE(() => {\n variables.push(SUBRULE(varOrIri));\n });\n return variables;\n } },\n { ALT: () => {\n CONSUME(l.symbols.star);\n return [ new Wildcard() ];\n } },\n ]);\n const from = extractFromOfDataSetClauses(ACTION, MANY, SUBRULE);\n const where = OPTION(() => SUBRULE(whereClause));\n const modifiers = SUBRULE(solutionModifier);\n return ACTION(() => ({\n ...modifiers,\n queryType: 'DESCRIBE',\n variables,\n from,\n where,\n }));\n },\n};\n\n/**\n * [[12]](https://www.w3.org/TR/sparql11-query/#rAskQuery)\n */\nexport const askQuery: RuleDef<'askQuery', Omit<AskQuery, HandledByBase>> = <const> {\n name: 'askQuery',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => () => {\n CONSUME(l.ask);\n const from = extractFromOfDataSetClauses(ACTION, MANY, SUBRULE);\n const where = SUBRULE(whereClause);\n const modifiers = SUBRULE(solutionModifier);\n return ACTION(() => ({\n ...modifiers,\n queryType: 'ASK',\n from,\n where,\n }));\n },\n};\n\n/**\n * [[28]](https://www.w3.org/TR/sparql11-query/#rValuesClause)\n */\nexport const valuesClause: RuleDef<'valuesClause', ValuePatternRow[] | undefined> = <const> {\n name: 'valuesClause',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => OPTION(() => {\n CONSUME(l.values);\n return SUBRULE(dataBlock);\n }),\n};\n\n/**\n * [[73]](https://www.w3.org/TR/sparql11-query/#ConstructTemplate)\n */\nexport const constructTemplate: RuleDef<'constructTemplate', Triple[] | undefined> = <const> {\n name: 'constructTemplate',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.symbols.LCurly);\n const triples = OPTION(() => SUBRULE(constructTriples));\n CONSUME(l.symbols.RCurly);\n return triples;\n },\n};\n\n/**\n * [[12]](https://www.w3.org/TR/sparql11-query/#rConstructTriples)\n */\nexport const constructTriples: RuleDef<'constructTriples', Triple[]> = <const> {\n name: 'constructTriples',\n impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {\n const triples: Triple[][] = [];\n triples.push(SUBRULE(triplesSameSubject));\n OPTION1(() => {\n CONSUME(l.symbols.dot);\n OPTION2(() => {\n triples.push(SUBRULE(constructTriples));\n });\n });\n return triples.flat(1);\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"queryUnit.js","sourceRoot":"","sources":["queryUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import * as l from '../../lexer';\nimport { Wildcard } from '@traqula/core';\nimport type { RuleDef, ImplArgs } from '@traqula/core';\nimport { canParseAggregate } from '../builtIn';\nimport { datasetClause, type IDatasetClause } from '../dataSetClause';\nimport { expression } from '../expression';\nimport { prologue, triplesTemplate, var_, varOrIri } from '../general';\nimport { solutionModifier } from '../solutionModifier';\nimport type {\n AggregateExpression,\n AskQuery,\n ConstructQuery,\n DescribeQuery,\n Expression,\n Grouping,\n IriTerm,\n Pattern,\n Query,\n SelectQuery,\n Triple,\n ValuePatternRow,\n Variable,\n VariableExpression,\n VariableTerm,\n} from '../../Sparql11types';\nimport { triplesSameSubject } from '../tripleBlock';\nimport { dataBlock, whereClause } from '../whereClause';\n\n/**\n * [[1]](https://www.w3.org/TR/sparql11-query/#rQueryUnit)\n */\nexport const queryUnit: RuleDef<'queryUnit', Query> = <const> {\n name: 'queryUnit',\n impl: ({ SUBRULE }) => () => SUBRULE(query),\n};\n\n/**\n * [[2]](https://www.w3.org/TR/sparql11-query/#rQuery)\n */\nexport const query: RuleDef<'query', Query> = <const> {\n name: 'query',\n impl: ({ ACTION, SUBRULE, OR }) => () => {\n const prologueValues = SUBRULE(prologue);\n const queryType = OR<Omit<Query, HandledByBase>>([\n { ALT: () => SUBRULE(selectQuery) },\n { ALT: () => SUBRULE(constructQuery) },\n { ALT: () => SUBRULE(describeQuery) },\n { ALT: () => SUBRULE(askQuery) },\n ]);\n const values = SUBRULE(valuesClause);\n\n return ACTION(() => (<Query>{\n ...prologueValues,\n ...queryType,\n type: 'query',\n ...(values && { values }),\n }));\n },\n};\n\nexport type HandledByBase = 'values' | 'type' | 'base' | 'prefixes';\n\nfunction extractFromOfDataSetClauses(ACTION: ImplArgs['ACTION'], MANY: ImplArgs['MANY'], SUBRULE: ImplArgs['SUBRULE']):\n{ default: IriTerm[]; named: IriTerm[] } | undefined {\n const datasetClauses: IDatasetClause[] = [];\n MANY(() => {\n datasetClauses.push(SUBRULE(datasetClause));\n });\n return ACTION(() => {\n const from: { default: IriTerm[]; named: IriTerm[] } = {\n default: [],\n named: [],\n };\n for (const datasetClause of datasetClauses) {\n if (datasetClause.type === 'default') {\n from.default.push(datasetClause.value);\n } else {\n from.named.push(datasetClause.value);\n }\n }\n return (from.default.length === 0 && from.named.length === 0) ? undefined : from;\n });\n}\n\n/**\n * Get all 'aggregate' rules from an expression\n */\nfunction getAggregatesOfExpression(expression: Expression | Pattern): AggregateExpression[] {\n if ('type' in expression) {\n if (expression.type === 'aggregate') {\n return [ expression ];\n }\n if (expression.type === 'operation') {\n const aggregates: AggregateExpression[] = [];\n for (const arg of expression.args) {\n aggregates.push(...getAggregatesOfExpression(arg));\n }\n return aggregates;\n }\n }\n return [];\n}\n\n/**\n * Return the id of an expression\n */\nfunction getExpressionId(expression: Grouping | VariableTerm | VariableExpression): string | undefined {\n // Check if grouping\n if ('variable' in expression && expression.variable) {\n return expression.variable.value;\n }\n if ('value' in expression) {\n return expression.value;\n }\n return 'value' in expression.expression ? expression.expression.value : undefined;\n}\n/**\n * Get all variables used in an expression\n */\nfunction getVariablesFromExpression(expression: Expression): Set<VariableTerm> {\n const variables = new Set<VariableTerm>();\n const visitExpression = (expr: Expression | Pattern | undefined): void => {\n if (!expr) {\n return;\n }\n if ('termType' in expr && expr.termType === 'Variable') {\n variables.add(expr);\n } else if ('type' in expr && expr.type === 'operation') {\n for (const rec of expr.args) {\n visitExpression(rec);\n }\n }\n };\n visitExpression(expression);\n return variables;\n}\n\n/**\n * [[7]](https://www.w3.org/TR/sparql11-query/#rSelectQuery)\n */\nexport const selectQuery: RuleDef<'selectQuery', Omit<SelectQuery, HandledByBase>> = <const> {\n name: 'selectQuery',\n impl: ({ ACTION, SUBRULE, MANY, context }) => () => {\n const selectVal = SUBRULE(selectClause);\n const from = extractFromOfDataSetClauses(ACTION, MANY, SUBRULE);\n const where = SUBRULE(whereClause);\n const modifier = SUBRULE(solutionModifier);\n\n ACTION(() => {\n if (selectVal.variables.length === 1 && selectVal.variables[0] instanceof Wildcard) {\n if (modifier.group !== undefined) {\n throw new Error('GROUP BY not allowed with wildcard');\n }\n return;\n }\n const variables = <Variable[]> selectVal.variables;\n // Check for projection of ungrouped variable\n // Check can be skipped in case of wildcard select.\n if (!context.skipValidation) {\n const hasCountAggregate = variables.flatMap(\n varVal => 'termType' in varVal ? [] : getAggregatesOfExpression(varVal.expression),\n ).some(agg => agg.aggregation === 'count' && !(agg.expression instanceof Wildcard));\n if (hasCountAggregate || modifier.group) {\n // We have to check whether\n // 1. Variables used in projection are usable given the group by clause\n // 2. A selectCount will create an implicit group by clause.\n for (const selectVar of variables) {\n if ('termType' in selectVar) {\n if (!modifier.group || !modifier.group.map(groupvar => getExpressionId(groupvar))\n .includes((getExpressionId(selectVar)))) {\n throw new Error('Variable not allowed in projection');\n }\n } else if (getAggregatesOfExpression(selectVar.expression).length === 0) {\n const usedvars = getVariablesFromExpression(selectVar.expression);\n for (const usedvar of usedvars) {\n if (!modifier.group || !modifier.group.map || !modifier.group.map(groupVar => getExpressionId(groupVar))\n .includes(getExpressionId(usedvar))) {\n throw new Error(`Use of ungrouped variable in projection of operation (?${getExpressionId(usedvar)})`);\n }\n }\n }\n }\n }\n }\n // Check if id of each AS-selected column is not yet bound by subquery\n const subqueries = <Omit<SelectQuery, \"prefixes\">[]> where.filter(pattern => pattern.type === 'query');\n if (subqueries.length > 0) {\n const selectedVarIds: string[] = [];\n for (const selectedVar of variables) {\n if ('variable' in selectedVar) {\n selectedVarIds.push(selectedVar.variable.value);\n }\n }\n const vars = subqueries.flatMap(sub => <(Variable | Wildcard)[]>sub.variables)\n .map(v => 'value' in v ? v.value : v.variable.value);\n const subqueryIds = new Set(vars);\n for (const selectedVarId of selectedVarIds) {\n if (subqueryIds.has(selectedVarId)) {\n throw new Error(`Target id of 'AS' (?${selectedVarId}) already used in subquery`);\n }\n }\n }\n });\n\n return {\n ...selectVal,\n queryType: 'SELECT',\n ...(from && { from }),\n where,\n ...modifier,\n };\n },\n};\n\n/**\n * [[8]](https://www.w3.org/TR/sparql11-query/#rSubSelect)\n */\nexport const subSelect: RuleDef<'subSelect', Omit<SelectQuery, 'prefixes'>> = <const> {\n name: 'subSelect',\n impl: ({ ACTION, SUBRULE }) => () => {\n const clause = SUBRULE(selectClause);\n const where = SUBRULE(whereClause);\n const modifiers = SUBRULE(solutionModifier);\n const values = SUBRULE(valuesClause);\n\n return ACTION(() => ({\n ...modifiers,\n ...clause,\n type: 'query',\n queryType: 'SELECT',\n where,\n ...(values && { values }),\n }));\n },\n};\n\n/**\n * [[9]](https://www.w3.org/TR/sparql11-query/#rSelectClause)\n */\nexport interface ISelectClause {\n variables: Variable[] | [Wildcard];\n distinct?: true;\n reduced?: true;\n}\nexport const selectClause: RuleDef<'selectClause', ISelectClause> = <const> {\n name: 'selectClause',\n impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR1, OR2, OR3, context }) => () => {\n CONSUME(l.select);\n const couldParseAgg = ACTION(() =>\n context.parseMode.has(canParseAggregate) || !context.parseMode.add(canParseAggregate));\n\n const distinctOrReduced = OPTION(() => OR1<Partial<{ distinct: true; reduced: true }>>([\n { ALT: () => {\n CONSUME(l.distinct);\n return { distinct: true };\n } },\n { ALT: () => {\n CONSUME(l.reduced);\n return { reduced: true };\n } },\n ]));\n const variables = OR2<ISelectClause['variables']>([\n { ALT: () => {\n CONSUME(l.symbols.star);\n return [ new Wildcard() ];\n } },\n { ALT: () => {\n const usedVars: VariableTerm[] = [];\n const result: Variable[] = [];\n AT_LEAST_ONE(() => OR3([\n { ALT: () => {\n const raw = SUBRULE1(var_);\n ACTION(() => {\n if (usedVars.some(v => v.equals(raw))) {\n throw new Error(`Variable ${raw.value} used more than once in SELECT clause`);\n }\n usedVars.push(raw);\n result.push(raw);\n });\n } },\n { ALT: () => {\n CONSUME(l.symbols.LParen);\n const expr = SUBRULE(expression);\n CONSUME(l.as);\n const variable = SUBRULE2(var_);\n CONSUME(l.symbols.RParen);\n ACTION(() => {\n if (usedVars.some(v => v.equals(variable))) {\n throw new Error(`Variable ${variable.value} used more than once in SELECT clause`);\n }\n usedVars.push(variable);\n result.push({\n expression: expr,\n variable,\n } satisfies VariableExpression);\n });\n } },\n ]));\n return result;\n } },\n ]);\n ACTION(() => !couldParseAgg && context.parseMode.delete(canParseAggregate));\n return ACTION(() => ({\n ...distinctOrReduced,\n variables,\n }));\n },\n};\n\n/**\n * [[10]](https://www.w3.org/TR/sparql11-query/#rConstructQuery)\n */\nexport const constructQuery: RuleDef<'constructQuery', Omit<ConstructQuery, HandledByBase>> = <const> {\n name: 'constructQuery',\n impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, MANY1, MANY2, OPTION, OR }) => () => {\n CONSUME(l.construct);\n return OR<Omit<ConstructQuery, HandledByBase>>([\n {\n ALT: () => {\n const template = SUBRULE(constructTemplate);\n const from = extractFromOfDataSetClauses(ACTION, MANY1, SUBRULE1);\n const where = SUBRULE(whereClause);\n const modifiers = SUBRULE1(solutionModifier);\n return ACTION(() => ({\n ...modifiers,\n queryType: 'CONSTRUCT',\n template,\n from,\n where,\n }));\n },\n },\n {\n ALT: () => {\n const from = extractFromOfDataSetClauses(ACTION, MANY2, SUBRULE2);\n CONSUME(l.where);\n CONSUME(l.symbols.LCurly);\n const template = OPTION(() => SUBRULE(triplesTemplate));\n CONSUME(l.symbols.RCurly);\n const modifiers = SUBRULE2(solutionModifier);\n const where: Pattern[] = template ?\n [{\n type: 'bgp',\n triples: template,\n }] :\n [];\n\n return ACTION(() => ({\n ...modifiers,\n queryType: 'CONSTRUCT',\n from,\n template,\n where,\n }));\n },\n },\n ]);\n },\n};\n\n/**\n * [[11]](https://www.w3.org/TR/sparql11-query/#rDescribeQuery)\n */\nexport const describeQuery: RuleDef<'describeQuery', Omit<DescribeQuery, HandledByBase>> = <const> {\n name: 'describeQuery',\n impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, MANY, OPTION, OR }) => () => {\n CONSUME(l.describe);\n const variables = OR<DescribeQuery['variables']>([\n { ALT: () => {\n const variables: (VariableTerm | IriTerm)[] = [];\n AT_LEAST_ONE(() => {\n variables.push(SUBRULE(varOrIri));\n });\n return variables;\n } },\n { ALT: () => {\n CONSUME(l.symbols.star);\n return [ new Wildcard() ];\n } },\n ]);\n const from = extractFromOfDataSetClauses(ACTION, MANY, SUBRULE);\n const where = OPTION(() => SUBRULE(whereClause));\n const modifiers = SUBRULE(solutionModifier);\n return ACTION(() => ({\n ...modifiers,\n queryType: 'DESCRIBE',\n variables,\n from,\n where,\n }));\n },\n};\n\n/**\n * [[12]](https://www.w3.org/TR/sparql11-query/#rAskQuery)\n */\nexport const askQuery: RuleDef<'askQuery', Omit<AskQuery, HandledByBase>> = <const> {\n name: 'askQuery',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => () => {\n CONSUME(l.ask);\n const from = extractFromOfDataSetClauses(ACTION, MANY, SUBRULE);\n const where = SUBRULE(whereClause);\n const modifiers = SUBRULE(solutionModifier);\n return ACTION(() => ({\n ...modifiers,\n queryType: 'ASK',\n from,\n where,\n }));\n },\n};\n\n/**\n * [[28]](https://www.w3.org/TR/sparql11-query/#rValuesClause)\n */\nexport const valuesClause: RuleDef<'valuesClause', ValuePatternRow[] | undefined> = <const> {\n name: 'valuesClause',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => OPTION(() => {\n CONSUME(l.values);\n return SUBRULE(dataBlock);\n }),\n};\n\n/**\n * [[73]](https://www.w3.org/TR/sparql11-query/#ConstructTemplate)\n */\nexport const constructTemplate: RuleDef<'constructTemplate', Triple[] | undefined> = <const> {\n name: 'constructTemplate',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.symbols.LCurly);\n const triples = OPTION(() => SUBRULE(constructTriples));\n CONSUME(l.symbols.RCurly);\n return triples;\n },\n};\n\n/**\n * [[12]](https://www.w3.org/TR/sparql11-query/#rConstructTriples)\n */\nexport const constructTriples: RuleDef<'constructTriples', Triple[]> = <const> {\n name: 'constructTriples',\n impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {\n const triples: Triple[][] = [];\n triples.push(SUBRULE(triplesSameSubject));\n OPTION1(() => {\n CONSUME(l.symbols.dot);\n OPTION2(() => {\n triples.push(SUBRULE(constructTriples));\n });\n });\n return triples.flat(1);\n },\n};\n"]}
|
|
@@ -20,6 +20,7 @@ export const updateUnit = {
|
|
|
20
20
|
export const update = {
|
|
21
21
|
name: 'update',
|
|
22
22
|
impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2, context }) => () => {
|
|
23
|
+
const blankLabelsUsedInInsertData = new Set();
|
|
23
24
|
const prologueValues = SUBRULE(prologue);
|
|
24
25
|
const result = {
|
|
25
26
|
type: 'update',
|
|
@@ -29,12 +30,6 @@ export const update = {
|
|
|
29
30
|
};
|
|
30
31
|
OPTION1(() => {
|
|
31
32
|
const updateOperation = SUBRULE(update1);
|
|
32
|
-
ACTION(() => {
|
|
33
|
-
for (const label of context.usedBlankNodeLabels) {
|
|
34
|
-
context.flushedBlankNodeLabels.add(label);
|
|
35
|
-
}
|
|
36
|
-
context.usedBlankNodeLabels.clear();
|
|
37
|
-
});
|
|
38
33
|
const recursiveRes = OPTION2(() => {
|
|
39
34
|
CONSUME(l.symbols.semi);
|
|
40
35
|
return SUBRULE(update);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateUnit.js","sourceRoot":"","sources":["updateUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TokenType } from 'chevrotain';\nimport * as l from '../../lexer';\nimport type { RuleDef, RuleDefReturn } from '@traqula/core';\nimport { unCapitalize } from '@traqula/core';\nimport { canParseVars, prologue, triplesTemplate, varOrIri } from '../general';\nimport { canCreateBlankNodes, iri } from '../literals';\nimport type {\n ClearDropOperation,\n GraphOrDefault,\n GraphQuads,\n GraphReference,\n InsertDeleteOperation,\n IriTerm,\n LoadOperation,\n Quads,\n Update,\n UpdateOperation,\n} from '../../Sparql11types';\nimport { groupGraphPattern } from '../whereClause';\n\n/**\n * [[3]](https://www.w3.org/TR/sparql11-query/#rUpdateUnit)\n */\nexport const updateUnit: RuleDef<'updateUnit', Update> = <const> {\n name: 'updateUnit',\n impl: ({ ACTION, SUBRULE }) => () => {\n const data = SUBRULE(update);\n\n ACTION(() => data.updates.reverse());\n return data;\n },\n};\n\n/**\n * [[29]](https://www.w3.org/TR/sparql11-query/#rUpdate)\n */\nexport const update: RuleDef<'update', Update> = <const> {\n name: 'update',\n impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2, context }) => () => {\n const prologueValues = SUBRULE(prologue);\n const result: Update = {\n type: 'update',\n base: prologueValues.base,\n prefixes: prologueValues.prefixes,\n updates: [],\n };\n OPTION1(() => {\n const updateOperation = SUBRULE(update1);\n\n ACTION(() => {\n for (const label of context.usedBlankNodeLabels) {\n context.flushedBlankNodeLabels.add(label);\n }\n context.usedBlankNodeLabels.clear();\n });\n\n const recursiveRes = OPTION2(() => {\n CONSUME(l.symbols.semi);\n return SUBRULE(update);\n });\n\n return ACTION(() => {\n result.updates.push(updateOperation);\n if (recursiveRes) {\n result.updates.push(...recursiveRes.updates);\n result.base = recursiveRes.base ?? result.base;\n result.prefixes = recursiveRes.prefixes ? { ...result.prefixes, ...recursiveRes.prefixes } : result.prefixes;\n }\n });\n });\n return result;\n },\n};\n\n/**\n * [[30]](https://www.w3.org/TR/sparql11-query/#rUpdate1)\n */\nexport const update1: RuleDef<'update1', UpdateOperation> = <const> {\n name: 'update1',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(load) },\n { ALT: () => SUBRULE(clear) },\n { ALT: () => SUBRULE(drop) },\n { ALT: () => SUBRULE(add) },\n { ALT: () => SUBRULE(move) },\n { ALT: () => SUBRULE(copy) },\n { ALT: () => SUBRULE(create) },\n { ALT: () => SUBRULE(insertData) },\n { ALT: () => SUBRULE(deleteData) },\n { ALT: () => SUBRULE(deleteWhere) },\n { ALT: () => SUBRULE(modify) },\n ]),\n};\n\n/**\n * [[31]](https://www.w3.org/TR/sparql11-query/#rLoad)\n */\nexport const load: RuleDef<'load', LoadOperation> = <const> {\n name: 'load',\n impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {\n CONSUME(l.load);\n const silent = Boolean(OPTION1(() => CONSUME(l.silent)));\n const source = SUBRULE(iri);\n const destination = OPTION2(() => {\n CONSUME(l.loadInto);\n return SUBRULE(graphRef);\n });\n return {\n type: 'load',\n silent,\n source,\n ...(destination && { destination }),\n };\n },\n};\n\n/**\n * [[32]](https://www.w3.org/TR/sparql11-query/#rClear)\n */\nexport const clear: RuleDef<'clear', ClearDropOperation> = <const> {\n name: 'clear',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.clear);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRefAll);\n return {\n type: 'clear',\n silent,\n graph,\n };\n },\n};\n\n/**\n * [[33]](https://www.w3.org/TR/sparql11-query/#rDrop)\n */\nexport const drop: RuleDef<'drop', UpdateOperation> = <const> {\n name: 'drop',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.drop);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRefAll);\n return {\n type: 'drop',\n silent,\n graph,\n };\n },\n};\n\n/**\n * [[34]](https://www.w3.org/TR/sparql11-query/#rCreate)\n */\nexport const create: RuleDef<'create', UpdateOperation> = <const> {\n name: 'create',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.create);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRef);\n return {\n type: 'create',\n silent,\n graph: {\n type: 'graph',\n name: graph,\n },\n };\n },\n};\n\nfunction copyMoveAddOperation<T extends 'Copy' | 'Move' | 'Add'>(operation: TokenType & { name: T }):\nRuleDef<Uncapitalize<T>, UpdateOperation> {\n return {\n name: unCapitalize(operation.name),\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, OPTION }) => () => {\n CONSUME(operation);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const source = SUBRULE1(graphOrDefault);\n CONSUME(l.to);\n const destination = SUBRULE2(graphOrDefault);\n return {\n type: unCapitalize(operation.name),\n silent,\n source,\n destination,\n };\n },\n };\n}\n\n/**\n * [[35]](https://www.w3.org/TR/sparql11-query/#rAdd)\n */\nexport const add = copyMoveAddOperation(l.add);\n\n/**\n * [[36]](https://www.w3.org/TR/sparql11-query/#rMove)\n */\nexport const move = copyMoveAddOperation(l.move);\n\n/**\n * [[37]](https://www.w3.org/TR/sparql11-query/#rCopy)\n */\nexport const copy = copyMoveAddOperation(l.copy);\n\n/**\n * [[38]](https://www.w3.org/TR/sparql11-query/#rInsertData)\n */\nexport const insertData: RuleDef<'insertData', InsertDeleteOperation> = <const> {\n name: 'insertData',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.insertClause);\n CONSUME(l.dataClause);\n const insert = SUBRULE(quadData);\n return {\n updateType: 'insert',\n insert,\n };\n },\n};\n\n/**\n * [[39]](https://www.w3.org/TR/sparql11-query/#rDeleteData)\n */\nexport const deleteData: RuleDef<'deleteData', InsertDeleteOperation> = <const> {\n name: 'deleteData',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.deleteClause);\n CONSUME(l.dataClause);\n\n const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));\n const del = SUBRULE(quadData);\n ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));\n\n return {\n updateType: 'delete',\n delete: del,\n };\n },\n};\n\n/**\n * [[40]](https://www.w3.org/TR/sparql11-query/#rDeleteWhere)\n */\nexport const deleteWhere: RuleDef<'deleteWhere', InsertDeleteOperation> = <const> {\n name: 'deleteWhere',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.deleteClause);\n CONSUME(l.where);\n\n const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));\n const del = SUBRULE(quadPattern);\n ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));\n\n return {\n updateType: 'deletewhere',\n delete: del,\n };\n },\n};\n\n/**\n * [[41]](https://www.w3.org/TR/sparql11-query/#rModify)\n */\nexport const modify: RuleDef<'modify', UpdateOperation> = <const> {\n name: 'modify',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => () => {\n const graph = OPTION1(() => {\n CONSUME(l.modifyWith);\n return SUBRULE(iri);\n });\n const { insert, delete: del } = OR([\n {\n ALT: () => {\n const del = SUBRULE(deleteClause);\n const insert = OPTION2(() => SUBRULE1(insertClause)) ?? [];\n return { delete: del, insert };\n },\n },\n { ALT: () => {\n const insert = SUBRULE2(insertClause);\n return { insert, delete: []};\n } },\n ]);\n const usingArr: RuleDefReturn<typeof usingClause>[] = [];\n MANY(() => {\n usingArr.push(SUBRULE(usingClause));\n });\n CONSUME(l.where);\n const where = SUBRULE(groupGraphPattern);\n\n return ACTION(() => {\n const def: IriTerm[] = [];\n const named: IriTerm[] = [];\n for (const { value, type } of usingArr) {\n if (type === 'default') {\n def.push(value);\n } else {\n named.push(value);\n }\n }\n return {\n updateType: 'insertdelete',\n graph,\n insert,\n delete: del,\n using: usingArr.length > 0 ? { default: def, named } : undefined,\n where: where.patterns,\n };\n });\n },\n};\n\n/**\n * [[42]](https://www.w3.org/TR/sparql11-query/#rDeleteClause)\n */\nexport const deleteClause: RuleDef<'deleteClause', Quads[]> = <const> {\n name: 'deleteClause',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.deleteClause);\n\n const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));\n const del = SUBRULE(quadPattern);\n ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));\n\n return del;\n },\n};\n\n/**\n * [[43]](https://www.w3.org/TR/sparql11-query/#rInsertClause)\n */\nexport const insertClause: RuleDef<'insertClause', Quads[]> = <const> {\n name: 'insertClause',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.insertClause);\n return SUBRULE(quadPattern);\n },\n};\n\n/**\n * [[44]](https://www.w3.org/TR/sparql11-query/#rUsingClause)\n */\nexport const usingClause: RuleDef<'usingClause', { value: IriTerm; type: 'default' | 'named' }> = <const> {\n name: 'usingClause',\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, OR }) => () => {\n CONSUME(l.usingClause);\n return OR<RuleDefReturn<typeof usingClause>>([\n { ALT: () => {\n const value = SUBRULE1(iri);\n return { value, type: 'default' };\n } },\n {\n ALT: () => {\n CONSUME(l.graph.named);\n const value = SUBRULE2(iri);\n return { value, type: 'named' };\n },\n },\n ]);\n },\n};\n\n/**\n * [[45]](https://www.w3.org/TR/sparql11-query/#rGraphOrDefault)\n */\nexport const graphOrDefault: RuleDef<'graphOrDefault', GraphOrDefault> = <const> {\n name: 'graphOrDefault',\n impl: ({ SUBRULE, CONSUME, OPTION, OR }) => () => OR<GraphOrDefault>([\n { ALT: () => {\n CONSUME(l.graph.default_);\n return { type: 'graph', default: true };\n } },\n {\n ALT: () => {\n OPTION(() => CONSUME(l.graph.graph));\n const name = SUBRULE(iri);\n return {\n type: 'graph',\n name,\n };\n },\n },\n ]),\n};\n\n/**\n * [[46]](https://www.w3.org/TR/sparql11-query/#rGraphRef)\n */\nexport const graphRef: RuleDef<'graphRef', IriTerm> = <const> {\n name: 'graphRef',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.graph.graph);\n return SUBRULE(iri);\n },\n};\n\n/**\n * [[47]](https://www.w3.org/TR/sparql11-query/#rGraphRefAll)\n */\nexport const graphRefAll: RuleDef<'graphRefAll', GraphReference> = <const> {\n name: 'graphRefAll',\n impl: ({ SUBRULE, CONSUME, OR }) => () => OR<GraphReference>([\n { ALT: () => {\n const name = SUBRULE(graphRef);\n return { type: 'graph', name };\n } },\n { ALT: () => {\n CONSUME(l.graph.default_);\n return { default: true };\n } },\n { ALT: () => {\n CONSUME(l.graph.named);\n return { named: true };\n } },\n { ALT: () => {\n CONSUME(l.graph.graphAll);\n return { all: true };\n } },\n ]),\n};\n\n/**\n * [[48]](https://www.w3.org/TR/sparql11-query/#rQuadPattern)\n */\nexport const quadPattern: RuleDef<'quadPattern', Quads[]> = <const> {\n name: 'quadPattern',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.symbols.LCurly);\n const val = SUBRULE(quads);\n CONSUME(l.symbols.RCurly);\n return val;\n },\n};\n\n/**\n * [[49]](https://www.w3.org/TR/sparql11-query/#rQuadData)\n */\nexport const quadData: RuleDef<'quadData', Quads[]> = <const> {\n name: 'quadData',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.symbols.LCurly);\n\n const couldParseVars = ACTION(() => context.parseMode.delete(canParseVars));\n const val = SUBRULE(quads);\n ACTION(() => couldParseVars && context.parseMode.add(canParseVars));\n\n CONSUME(l.symbols.RCurly);\n return val;\n },\n};\n\n/**\n * [[50]](https://www.w3.org/TR/sparql11-query/#rQuads)\n */\nexport const quads: RuleDef<'quads', Quads[]> = <const> {\n name: 'quads',\n impl: ({ SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {\n const quads: Quads[] = [];\n\n OPTION1(() => {\n const triples = SUBRULE1(triplesTemplate);\n quads.push({\n type: 'bgp',\n triples,\n });\n });\n\n MANY(() => {\n quads.push(SUBRULE(quadsNotTriples));\n OPTION2(() => CONSUME(l.symbols.dot));\n OPTION3(() => {\n const triples = SUBRULE2(triplesTemplate);\n quads.push({\n type: 'bgp',\n triples,\n });\n });\n });\n\n return quads;\n },\n};\n\n/**\n * [[51]](https://www.w3.org/TR/sparql11-query/#rQuadsNotTriples)\n */\nexport const quadsNotTriples: RuleDef<'quadsNotTriples', GraphQuads> = <const> {\n name: 'quadsNotTriples',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.graph.graph);\n const name = SUBRULE(varOrIri);\n CONSUME(l.symbols.LCurly);\n const triples = OPTION(() => SUBRULE(triplesTemplate)) ?? [];\n CONSUME(l.symbols.RCurly);\n\n return {\n type: 'graph',\n name,\n triples,\n };\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"updateUnit.js","sourceRoot":"","sources":["updateUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TokenType } from 'chevrotain';\nimport * as l from '../../lexer';\nimport type { RuleDef, RuleDefReturn } from '@traqula/core';\nimport { unCapitalize } from '@traqula/core';\nimport { canParseVars, prologue, triplesTemplate, varOrIri } from '../general';\nimport { canCreateBlankNodes, iri } from '../literals';\nimport type {\n ClearDropOperation,\n GraphOrDefault,\n GraphQuads,\n GraphReference,\n InsertDeleteOperation,\n IriTerm,\n LoadOperation,\n Quads,\n Update,\n UpdateOperation,\n} from '../../Sparql11types';\nimport { groupGraphPattern } from '../whereClause';\n\n/**\n * [[3]](https://www.w3.org/TR/sparql11-query/#rUpdateUnit)\n */\nexport const updateUnit: RuleDef<'updateUnit', Update> = <const> {\n name: 'updateUnit',\n impl: ({ ACTION, SUBRULE }) => () => {\n const data = SUBRULE(update);\n\n ACTION(() => data.updates.reverse());\n return data;\n },\n};\n\n/**\n * [[29]](https://www.w3.org/TR/sparql11-query/#rUpdate)\n */\nexport const update: RuleDef<'update', Update> = <const> {\n name: 'update',\n impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2, context }) => () => {\n const blankLabelsUsedInInsertData = new Set<string>();\n const prologueValues = SUBRULE(prologue);\n const result: Update = {\n type: 'update',\n base: prologueValues.base,\n prefixes: prologueValues.prefixes,\n updates: [],\n };\n OPTION1(() => {\n const updateOperation = SUBRULE(update1);\n\n const recursiveRes = OPTION2(() => {\n CONSUME(l.symbols.semi);\n return SUBRULE(update);\n });\n\n return ACTION(() => {\n result.updates.push(updateOperation);\n if (recursiveRes) {\n result.updates.push(...recursiveRes.updates);\n result.base = recursiveRes.base ?? result.base;\n result.prefixes = recursiveRes.prefixes ? { ...result.prefixes, ...recursiveRes.prefixes } : result.prefixes;\n }\n });\n });\n return result;\n },\n};\n\n/**\n * [[30]](https://www.w3.org/TR/sparql11-query/#rUpdate1)\n */\nexport const update1: RuleDef<'update1', UpdateOperation> = <const> {\n name: 'update1',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(load) },\n { ALT: () => SUBRULE(clear) },\n { ALT: () => SUBRULE(drop) },\n { ALT: () => SUBRULE(add) },\n { ALT: () => SUBRULE(move) },\n { ALT: () => SUBRULE(copy) },\n { ALT: () => SUBRULE(create) },\n { ALT: () => SUBRULE(insertData) },\n { ALT: () => SUBRULE(deleteData) },\n { ALT: () => SUBRULE(deleteWhere) },\n { ALT: () => SUBRULE(modify) },\n ]),\n};\n\n/**\n * [[31]](https://www.w3.org/TR/sparql11-query/#rLoad)\n */\nexport const load: RuleDef<'load', LoadOperation> = <const> {\n name: 'load',\n impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {\n CONSUME(l.load);\n const silent = Boolean(OPTION1(() => CONSUME(l.silent)));\n const source = SUBRULE(iri);\n const destination = OPTION2(() => {\n CONSUME(l.loadInto);\n return SUBRULE(graphRef);\n });\n return {\n type: 'load',\n silent,\n source,\n ...(destination && { destination }),\n };\n },\n};\n\n/**\n * [[32]](https://www.w3.org/TR/sparql11-query/#rClear)\n */\nexport const clear: RuleDef<'clear', ClearDropOperation> = <const> {\n name: 'clear',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.clear);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRefAll);\n return {\n type: 'clear',\n silent,\n graph,\n };\n },\n};\n\n/**\n * [[33]](https://www.w3.org/TR/sparql11-query/#rDrop)\n */\nexport const drop: RuleDef<'drop', UpdateOperation> = <const> {\n name: 'drop',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.drop);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRefAll);\n return {\n type: 'drop',\n silent,\n graph,\n };\n },\n};\n\n/**\n * [[34]](https://www.w3.org/TR/sparql11-query/#rCreate)\n */\nexport const create: RuleDef<'create', UpdateOperation> = <const> {\n name: 'create',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.create);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRef);\n return {\n type: 'create',\n silent,\n graph: {\n type: 'graph',\n name: graph,\n },\n };\n },\n};\n\nfunction copyMoveAddOperation<T extends 'Copy' | 'Move' | 'Add'>(operation: TokenType & { name: T }):\nRuleDef<Uncapitalize<T>, UpdateOperation> {\n return {\n name: unCapitalize(operation.name),\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, OPTION }) => () => {\n CONSUME(operation);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const source = SUBRULE1(graphOrDefault);\n CONSUME(l.to);\n const destination = SUBRULE2(graphOrDefault);\n return {\n type: unCapitalize(operation.name),\n silent,\n source,\n destination,\n };\n },\n };\n}\n\n/**\n * [[35]](https://www.w3.org/TR/sparql11-query/#rAdd)\n */\nexport const add = copyMoveAddOperation(l.add);\n\n/**\n * [[36]](https://www.w3.org/TR/sparql11-query/#rMove)\n */\nexport const move = copyMoveAddOperation(l.move);\n\n/**\n * [[37]](https://www.w3.org/TR/sparql11-query/#rCopy)\n */\nexport const copy = copyMoveAddOperation(l.copy);\n\n/**\n * [[38]](https://www.w3.org/TR/sparql11-query/#rInsertData)\n */\nexport const insertData: RuleDef<'insertData', InsertDeleteOperation> = <const> {\n name: 'insertData',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.insertClause);\n CONSUME(l.dataClause);\n const insert = SUBRULE(quadData);\n return {\n updateType: 'insert',\n insert,\n };\n },\n};\n\n/**\n * [[39]](https://www.w3.org/TR/sparql11-query/#rDeleteData)\n */\nexport const deleteData: RuleDef<'deleteData', InsertDeleteOperation> = <const> {\n name: 'deleteData',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.deleteClause);\n CONSUME(l.dataClause);\n\n const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));\n const del = SUBRULE(quadData);\n ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));\n\n return {\n updateType: 'delete',\n delete: del,\n };\n },\n};\n\n/**\n * [[40]](https://www.w3.org/TR/sparql11-query/#rDeleteWhere)\n */\nexport const deleteWhere: RuleDef<'deleteWhere', InsertDeleteOperation> = <const> {\n name: 'deleteWhere',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.deleteClause);\n CONSUME(l.where);\n\n const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));\n const del = SUBRULE(quadPattern);\n ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));\n\n return {\n updateType: 'deletewhere',\n delete: del,\n };\n },\n};\n\n/**\n * [[41]](https://www.w3.org/TR/sparql11-query/#rModify)\n */\nexport const modify: RuleDef<'modify', UpdateOperation> = <const> {\n name: 'modify',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => () => {\n const graph = OPTION1(() => {\n CONSUME(l.modifyWith);\n return SUBRULE(iri);\n });\n const { insert, delete: del } = OR([\n {\n ALT: () => {\n const del = SUBRULE(deleteClause);\n const insert = OPTION2(() => SUBRULE1(insertClause)) ?? [];\n return { delete: del, insert };\n },\n },\n { ALT: () => {\n const insert = SUBRULE2(insertClause);\n return { insert, delete: []};\n } },\n ]);\n const usingArr: RuleDefReturn<typeof usingClause>[] = [];\n MANY(() => {\n usingArr.push(SUBRULE(usingClause));\n });\n CONSUME(l.where);\n const where = SUBRULE(groupGraphPattern);\n\n return ACTION(() => {\n const def: IriTerm[] = [];\n const named: IriTerm[] = [];\n for (const { value, type } of usingArr) {\n if (type === 'default') {\n def.push(value);\n } else {\n named.push(value);\n }\n }\n return {\n updateType: 'insertdelete',\n graph,\n insert,\n delete: del,\n using: usingArr.length > 0 ? { default: def, named } : undefined,\n where: where.patterns,\n };\n });\n },\n};\n\n/**\n * [[42]](https://www.w3.org/TR/sparql11-query/#rDeleteClause)\n */\nexport const deleteClause: RuleDef<'deleteClause', Quads[]> = <const> {\n name: 'deleteClause',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.deleteClause);\n\n const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));\n const del = SUBRULE(quadPattern);\n ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));\n\n return del;\n },\n};\n\n/**\n * [[43]](https://www.w3.org/TR/sparql11-query/#rInsertClause)\n */\nexport const insertClause: RuleDef<'insertClause', Quads[]> = <const> {\n name: 'insertClause',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.insertClause);\n return SUBRULE(quadPattern);\n },\n};\n\n/**\n * [[44]](https://www.w3.org/TR/sparql11-query/#rUsingClause)\n */\nexport const usingClause: RuleDef<'usingClause', { value: IriTerm; type: 'default' | 'named' }> = <const> {\n name: 'usingClause',\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, OR }) => () => {\n CONSUME(l.usingClause);\n return OR<RuleDefReturn<typeof usingClause>>([\n { ALT: () => {\n const value = SUBRULE1(iri);\n return { value, type: 'default' };\n } },\n {\n ALT: () => {\n CONSUME(l.graph.named);\n const value = SUBRULE2(iri);\n return { value, type: 'named' };\n },\n },\n ]);\n },\n};\n\n/**\n * [[45]](https://www.w3.org/TR/sparql11-query/#rGraphOrDefault)\n */\nexport const graphOrDefault: RuleDef<'graphOrDefault', GraphOrDefault> = <const> {\n name: 'graphOrDefault',\n impl: ({ SUBRULE, CONSUME, OPTION, OR }) => () => OR<GraphOrDefault>([\n { ALT: () => {\n CONSUME(l.graph.default_);\n return { type: 'graph', default: true };\n } },\n {\n ALT: () => {\n OPTION(() => CONSUME(l.graph.graph));\n const name = SUBRULE(iri);\n return {\n type: 'graph',\n name,\n };\n },\n },\n ]),\n};\n\n/**\n * [[46]](https://www.w3.org/TR/sparql11-query/#rGraphRef)\n */\nexport const graphRef: RuleDef<'graphRef', IriTerm> = <const> {\n name: 'graphRef',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.graph.graph);\n return SUBRULE(iri);\n },\n};\n\n/**\n * [[47]](https://www.w3.org/TR/sparql11-query/#rGraphRefAll)\n */\nexport const graphRefAll: RuleDef<'graphRefAll', GraphReference> = <const> {\n name: 'graphRefAll',\n impl: ({ SUBRULE, CONSUME, OR }) => () => OR<GraphReference>([\n { ALT: () => {\n const name = SUBRULE(graphRef);\n return { type: 'graph', name };\n } },\n { ALT: () => {\n CONSUME(l.graph.default_);\n return { default: true };\n } },\n { ALT: () => {\n CONSUME(l.graph.named);\n return { named: true };\n } },\n { ALT: () => {\n CONSUME(l.graph.graphAll);\n return { all: true };\n } },\n ]),\n};\n\n/**\n * [[48]](https://www.w3.org/TR/sparql11-query/#rQuadPattern)\n */\nexport const quadPattern: RuleDef<'quadPattern', Quads[]> = <const> {\n name: 'quadPattern',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.symbols.LCurly);\n const val = SUBRULE(quads);\n CONSUME(l.symbols.RCurly);\n return val;\n },\n};\n\n/**\n * [[49]](https://www.w3.org/TR/sparql11-query/#rQuadData)\n */\nexport const quadData: RuleDef<'quadData', Quads[]> = <const> {\n name: 'quadData',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.symbols.LCurly);\n\n const couldParseVars = ACTION(() => context.parseMode.delete(canParseVars));\n const val = SUBRULE(quads);\n ACTION(() => couldParseVars && context.parseMode.add(canParseVars));\n\n CONSUME(l.symbols.RCurly);\n return val;\n },\n};\n\n/**\n * [[50]](https://www.w3.org/TR/sparql11-query/#rQuads)\n */\nexport const quads: RuleDef<'quads', Quads[]> = <const> {\n name: 'quads',\n impl: ({ SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {\n const quads: Quads[] = [];\n\n OPTION1(() => {\n const triples = SUBRULE1(triplesTemplate);\n quads.push({\n type: 'bgp',\n triples,\n });\n });\n\n MANY(() => {\n quads.push(SUBRULE(quadsNotTriples));\n OPTION2(() => CONSUME(l.symbols.dot));\n OPTION3(() => {\n const triples = SUBRULE2(triplesTemplate);\n quads.push({\n type: 'bgp',\n triples,\n });\n });\n });\n\n return quads;\n },\n};\n\n/**\n * [[51]](https://www.w3.org/TR/sparql11-query/#rQuadsNotTriples)\n */\nexport const quadsNotTriples: RuleDef<'quadsNotTriples', GraphQuads> = <const> {\n name: 'quadsNotTriples',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.graph.graph);\n const name = SUBRULE(varOrIri);\n CONSUME(l.symbols.LCurly);\n const triples = OPTION(() => SUBRULE(triplesTemplate)) ?? [];\n CONSUME(l.symbols.RCurly);\n\n return {\n type: 'graph',\n name,\n triples,\n };\n },\n};\n"]}
|
package/lib/index.cjs
CHANGED
|
@@ -9614,10 +9614,16 @@ function resolveIRI(iri3, base) {
|
|
|
9614
9614
|
return base.replace(/(?:\?.*)?$/u, iri3);
|
|
9615
9615
|
// Resolve root relative IRIs at the root of the base IRI
|
|
9616
9616
|
case "/":
|
|
9617
|
-
|
|
9617
|
+
const baseMatch = base.match(/^(?:[a-z]+:\/*)?[^\/]*/);
|
|
9618
|
+
if (!baseMatch) {
|
|
9619
|
+
throw new Error(`Could not determine relative IRI using base: ${base}`);
|
|
9620
|
+
}
|
|
9621
|
+
const baseRoot = baseMatch[0];
|
|
9622
|
+
return baseRoot + iri3;
|
|
9618
9623
|
// Resolve all other IRIs at the base IRI's path
|
|
9619
9624
|
default:
|
|
9620
|
-
|
|
9625
|
+
const basePath = base.replace(/[^\/:]*$/, "");
|
|
9626
|
+
return basePath + iri3;
|
|
9621
9627
|
}
|
|
9622
9628
|
}
|
|
9623
9629
|
|
|
@@ -10482,12 +10488,6 @@ var blankNode = {
|
|
|
10482
10488
|
{
|
|
10483
10489
|
ALT: () => {
|
|
10484
10490
|
const label = CONSUME(terminals_exports.blankNodeLabel).image;
|
|
10485
|
-
ACTION(() => {
|
|
10486
|
-
if (context.flushedBlankNodeLabels.has(label)) {
|
|
10487
|
-
throw new Error("Detected reuse blank node across different request string.");
|
|
10488
|
-
}
|
|
10489
|
-
context.usedBlankNodeLabels.add(label);
|
|
10490
|
-
});
|
|
10491
10491
|
return ACTION(() => context.dataFactory.blankNode(label.replace("_:", "e_")));
|
|
10492
10492
|
}
|
|
10493
10493
|
},
|
|
@@ -10911,9 +10911,10 @@ var graphNodePath = graphNodeImpl("graphNodePath", true);
|
|
|
10911
10911
|
// lib/grammar/general.ts
|
|
10912
10912
|
var prologue = {
|
|
10913
10913
|
name: "prologue",
|
|
10914
|
-
impl: ({ ACTION, SUBRULE, MANY, OR }) => () => {
|
|
10914
|
+
impl: ({ ACTION, SUBRULE, MANY, OR, context }) => () => {
|
|
10915
10915
|
const result = {
|
|
10916
|
-
prefixes: {}
|
|
10916
|
+
prefixes: {},
|
|
10917
|
+
...context.baseIRI && { base: context.baseIRI }
|
|
10917
10918
|
};
|
|
10918
10919
|
MANY(() => {
|
|
10919
10920
|
OR([
|
|
@@ -12715,6 +12716,7 @@ var updateUnit = {
|
|
|
12715
12716
|
var update = {
|
|
12716
12717
|
name: "update",
|
|
12717
12718
|
impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2, context }) => () => {
|
|
12719
|
+
const blankLabelsUsedInInsertData = /* @__PURE__ */ new Set();
|
|
12718
12720
|
const prologueValues = SUBRULE(prologue);
|
|
12719
12721
|
const result = {
|
|
12720
12722
|
type: "update",
|
|
@@ -12724,12 +12726,6 @@ var update = {
|
|
|
12724
12726
|
};
|
|
12725
12727
|
OPTION1(() => {
|
|
12726
12728
|
const updateOperation = SUBRULE(update1);
|
|
12727
|
-
ACTION(() => {
|
|
12728
|
-
for (const label of context.usedBlankNodeLabels) {
|
|
12729
|
-
context.flushedBlankNodeLabels.add(label);
|
|
12730
|
-
}
|
|
12731
|
-
context.usedBlankNodeLabels.clear();
|
|
12732
|
-
});
|
|
12733
12729
|
const recursiveRes = OPTION2(() => {
|
|
12734
12730
|
CONSUME(symbols_exports.semi);
|
|
12735
12731
|
return SUBRULE(update);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@traqula/rules-sparql-1-1",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.143+7e8a4c4",
|
|
4
4
|
"description": "TRAQULA Lexer and Grammar Rules for sparql 1.1",
|
|
5
5
|
"lsd:module": true,
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,7 @@
|
|
|
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.
|
|
41
|
+
"@traqula/core": "^0.0.1-alpha.143+7e8a4c4",
|
|
42
42
|
"chevrotain": "^11.0.3",
|
|
43
43
|
"rdf-data-factory": "^2.0.1"
|
|
44
44
|
},
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"@chevrotain/types": "^11.0.3",
|
|
47
47
|
"@rdfjs/types": "^2.0.0"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "7e8a4c4897f112e7291b733121a83726bacfdd0b"
|
|
50
50
|
}
|