@traqula/parser-sparql-1-1 0.0.1-alpha.176
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/LICENSE.txt +22 -0
- package/README.md +87 -0
- package/lib/Parser.d.ts +210 -0
- package/lib/Parser.js +111 -0
- package/lib/Parser.js.map +1 -0
- package/lib/expressionParser.d.ts +93 -0
- package/lib/expressionParser.js +51 -0
- package/lib/expressionParser.js.map +1 -0
- package/lib/index.cjs +14564 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -0
- package/lib/objectListParser.d.ts +26 -0
- package/lib/objectListParser.js +30 -0
- package/lib/objectListParser.js.map +1 -0
- package/lib/queryUnitParser.d.ts +182 -0
- package/lib/queryUnitParser.js +28 -0
- package/lib/queryUnitParser.js.map +1 -0
- package/lib/subSelectParser.d.ts +164 -0
- package/lib/subSelectParser.js +20 -0
- package/lib/subSelectParser.js.map +1 -0
- package/lib/triplesBlockParser.d.ts +51 -0
- package/lib/triplesBlockParser.js +21 -0
- package/lib/triplesBlockParser.js.map +1 -0
- package/lib/triplesTemplateParserBuilder.d.ts +29 -0
- package/lib/triplesTemplateParserBuilder.js +32 -0
- package/lib/triplesTemplateParserBuilder.js.map +1 -0
- package/lib/updateNoModifyParser.d.ts +57 -0
- package/lib/updateNoModifyParser.js +55 -0
- package/lib/updateNoModifyParser.js.map +1 -0
- package/lib/updateUnitParser.d.ts +197 -0
- package/lib/updateUnitParser.js +12 -0
- package/lib/updateUnitParser.js.map +1 -0
- package/package.json +61 -0
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright © 2024–now Jitse De Smet
|
|
4
|
+
Comunica Association and Ghent University – imec, Belgium
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in
|
|
14
|
+
all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
22
|
+
THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img alt="Traqula logo" width="70%" style="border-radius: 20px" src="/assets/white-on-red/logo-white-on-red-lettered-social.png">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<strong>A query language transpiler framework for JavaScript</strong>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
**WARNING:** V2 will come shortly and will have lots of breaking changes.
|
|
10
|
+
|
|
11
|
+
# Traqula parser engine for SPARQL 1.1
|
|
12
|
+
|
|
13
|
+
Traqula Sparql 1.1 is a [SPARQL 1.1](https://www.w3.org/TR/sparql11-query/#grammar) query parser for TypeScript.
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install @traqula/parser-sparql-1-1
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
or
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
yarn add @traqula/parser-sparql-1-1
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Import
|
|
28
|
+
|
|
29
|
+
Either through ESM import:
|
|
30
|
+
|
|
31
|
+
```javascript
|
|
32
|
+
import {Parser} from 'engines/parser-sparql-1-1';
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
_or_ CJS require:
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
const Parser = require('engines/parser-sparql-1-1').Parser;
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
This package contains a `Parser` that is able to parse SPARQL 1.1 queries:
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
const parser = new Parser();
|
|
47
|
+
const abstractSyntaxTree = parser.parse('SELECT * { ?s ?p ?o }');
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The package also contains multiple parserBuilders.
|
|
51
|
+
These builders can be used either to consume to a parser,
|
|
52
|
+
or to usage as a starting point for your own grammar.
|
|
53
|
+
|
|
54
|
+
### Consuming parserBuilder to parser
|
|
55
|
+
|
|
56
|
+
At the core of Traqula, parser are constructed of multiple parser rules that have been consumed by the builder.
|
|
57
|
+
This consumption returns a parser that can parse strings starting from any grammar rule.
|
|
58
|
+
|
|
59
|
+
The `sparql11ParserBuilder` for example contains both the rules `queryOrUpdate` and `path` (among many others).
|
|
60
|
+
The consumption of `sparql11ParserBuilder` will thus return an object that has function `queryOrUpdate` and `path`.
|
|
61
|
+
Calling those function with a string will cause that string to be parsed using the appropriate rule as a starting rule.
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
const parser: {
|
|
65
|
+
queryOrUpdate: (input: string) => SparqlQuery;
|
|
66
|
+
path: (input: string) => PropertyPath | IriTerm;
|
|
67
|
+
} = sparql11ParserBuilder.consumeToParser({
|
|
68
|
+
tokenVocabulary: l.sparql11Tokens.build(),
|
|
69
|
+
}, {
|
|
70
|
+
parseMode: new Set([ gram.canParseVars, gram.canCreateBlankNodes ]),
|
|
71
|
+
dataFactory: new DataFactory(),
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Constructing a new grammar from an existing one
|
|
76
|
+
|
|
77
|
+
The builders can also be used to construct new parsers.
|
|
78
|
+
As an example the `triplesBlockParserBuilder` is created by merging the `objectListBuilder` with some new rules.
|
|
79
|
+
|
|
80
|
+
## Configuration
|
|
81
|
+
|
|
82
|
+
Optionally, the following parameters can be set in the `Parser` constructor:
|
|
83
|
+
|
|
84
|
+
* `dataFactory`: A custom [RDFJS DataFactory](http://rdf.js.org/#datafactory-interface) to construct terms and triples. _(Default: `require('@rdfjs/data-model')`)_
|
|
85
|
+
* `baseIRI`: An initial default base IRI. _(Default: none)_
|
|
86
|
+
* `prefixes`: An initial map of prefixes
|
|
87
|
+
* `skipValidation`: Can be used to disable the validation that used variables in a select clause are in scope.
|
package/lib/Parser.d.ts
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { ParserBuilder } from '@traqula/core';
|
|
2
|
+
import type { Query, SparqlQuery, Update, SparqlGrammarRule } from '@traqula/rules-sparql-1-1';
|
|
3
|
+
import { gram, SparqlParser } from '@traqula/rules-sparql-1-1';
|
|
4
|
+
export declare const sparql11ParserBuilder: ParserBuilder<import("@traqula/rules-sparql-1-1").SparqlContext, "string" | "object" | "filter" | "add" | "clear" | "copy" | "move" | "var" | "path" | "drop" | "load" | "builtInStr" | "builtInLang" | "builtInLangmatches" | "builtInDatatype" | "builtInBound" | "builtInIri" | "builtInUri" | "builtInBnode" | "builtInRand" | "builtInAbs" | "builtInCeil" | "builtInFloor" | "builtInRound" | "builtInConcat" | "builtInStrlen" | "builtInUcase" | "builtInLcase" | "builtInEncode_for_uri" | "builtInContains" | "builtInStrstarts" | "builtInStrends" | "builtInStrbefore" | "builtInStrafter" | "builtInYear" | "builtInMonth" | "builtInDay" | "builtInHours" | "builtInMinutes" | "builtInSeconds" | "builtInTimezone" | "builtInTz" | "builtInNow" | "builtInUuid" | "builtInStruuid" | "builtInMd5" | "builtInSha1" | "builtInSha256" | "builtInSha384" | "builtInSha512" | "builtInCoalesce" | "builtInIf" | "builtInStrlang" | "builtInStrdt" | "builtInSameterm" | "builtInIsiri" | "builtInIsuri" | "builtInIsblank" | "builtInIsliteral" | "builtInIsnumeric" | "builtInRegex" | "builtInSubstr" | "builtInReplace" | "builtInExists" | "builtInNotexists" | "builtInCount" | "builtInSum" | "builtInMin" | "builtInMax" | "builtInAvg" | "builtInSample" | "builtInGroup_concat" | "quads" | "functionCall" | "create" | "bind" | "aggregate" | "rdfLiteral" | "iri" | "numericLiteral" | "numericLiteralUnsigned" | "numericLiteralPositive" | "numericLiteralNegative" | "booleanLiteral" | "prefixedName" | "blankNode" | "datasetClause" | "defaultGraphClause" | "namedGraphClause" | "sourceSelector" | "prologue" | "baseDecl" | "prefixDecl" | "verb" | "varOrIri" | "VerbA" | "varOrTerm" | "graphTerm" | "pathAlternative" | "pathSequence" | "pathEltOrInverse" | "pathElt" | "pathMod" | "pathPrimary" | "pathNegatedPropertySet" | "pathOneInPropertySet" | "triplesBlock" | "triplesSameSubjectPath" | "propertyListPathNotEmpty" | "propertyListNotEmpty" | "propertyListPath" | "propertyList" | "triplesNodePath" | "triplesNode" | "triplesSameSubject" | "triplesTemplate" | "verbPath" | "verbSimple" | "objectList" | "objectListPath" | "graphNodePath" | "graphNode" | "objectPath" | "collection" | "blankNodePropertyList" | "collectionPath" | "blankNodePropertyListPath" | "whereClause" | "groupGraphPattern" | "subSelect" | "groupGraphPatternSub" | "graphPatternNotTriples" | "groupOrUnionGraphPattern" | "optionalGraphPattern" | "minusGraphPattern" | "graphGraphPattern" | "serviceGraphPattern" | "inlineData" | "expression" | "valuesClause" | "dataBlock" | "inlineDataOneVar" | "inlineDataFull" | "dataBlockValue" | "constraint" | "brackettedExpression" | "builtInCall" | "argList" | "expressionList" | "conditionalOrExpression" | "iriOrFunction" | "conditionalAndExpression" | "valueLogical" | "relationalExpression" | "numericExpression" | "additiveExpression" | "multiplicativeExpression" | "unaryExpression" | "primaryExpression" | "solutionModifier" | "limitOffsetClauses" | "groupClause" | "havingClause" | "orderClause" | "groupCondition" | "havingCondition" | "orderCondition" | "limitClause" | "offsetClause" | "selectQuery" | "constructQuery" | "describeQuery" | "askQuery" | "selectClause" | "constructTemplate" | "constructTriples" | "update1" | "insertData" | "deleteData" | "deleteWhere" | "modify" | "graphRef" | "graphRefAll" | "graphOrDefault" | "quadData" | "quadPattern" | "deleteClause" | "insertClause" | "usingClause" | "quadsNotTriples" | "queryOrUpdate", {
|
|
5
|
+
string: import("@traqula/core").ParserRule<any, "string"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "string", string, undefined> & import("@traqula/core").GeneratorRule<undefined, "string", string, undefined>;
|
|
6
|
+
object: import("@traqula/core").ParserRule<any, "object"> & SparqlGrammarRule<"object", import("@traqula/rules-sparql-1-1").Triple[], Pick<import("@traqula/rules-sparql-1-1").Triple, "subject" | "predicate">>;
|
|
7
|
+
filter: import("@traqula/core").ParserRule<any, "filter"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "filter", import("@traqula/rules-sparql-1-1").FilterPattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "filter", import("@traqula/rules-sparql-1-1").FilterPattern, undefined>;
|
|
8
|
+
add: import("@traqula/core").ParserRule<any, "add"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "add", import("@traqula/rules-sparql-1-1").CopyMoveAddOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "add", import("@traqula/rules-sparql-1-1").CopyMoveAddOperation, undefined>;
|
|
9
|
+
clear: import("@traqula/core").ParserRule<any, "clear"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "clear", import("@traqula/rules-sparql-1-1").ClearDropOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "clear", import("@traqula/rules-sparql-1-1").ClearDropOperation, undefined>;
|
|
10
|
+
copy: import("@traqula/core").ParserRule<any, "copy"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "copy", import("@traqula/rules-sparql-1-1").CopyMoveAddOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "copy", import("@traqula/rules-sparql-1-1").CopyMoveAddOperation, undefined>;
|
|
11
|
+
move: import("@traqula/core").ParserRule<any, "move"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "move", import("@traqula/rules-sparql-1-1").CopyMoveAddOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "move", import("@traqula/rules-sparql-1-1").CopyMoveAddOperation, undefined>;
|
|
12
|
+
var: import("@traqula/core").ParserRule<any, "var"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "var", import("@rdfjs/types").Variable, undefined> & import("@traqula/core").GeneratorRule<undefined, "var", import("@rdfjs/types").Variable, undefined>;
|
|
13
|
+
path: import("@traqula/core").ParserRule<any, "path"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "path", import("@traqula/rules-sparql-1-1").PropertyPath | import("@traqula/rules-sparql-1-1").IriTerm, undefined> & import("@traqula/core").GeneratorRule<undefined, "path", import("@traqula/rules-sparql-1-1").PropertyPath | import("@traqula/rules-sparql-1-1").IriTerm, undefined>;
|
|
14
|
+
drop: import("@traqula/core").ParserRule<any, "drop"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "drop", import("@traqula/rules-sparql-1-1").ClearDropOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "drop", import("@traqula/rules-sparql-1-1").ClearDropOperation, undefined>;
|
|
15
|
+
load: import("@traqula/core").ParserRule<any, "load"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "load", import("@traqula/rules-sparql-1-1").LoadOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "load", import("@traqula/rules-sparql-1-1").LoadOperation, undefined>;
|
|
16
|
+
builtInStr: import("@traqula/core").ParserRule<any, "builtInStr"> & gram.RuleDefExpressionFunctionX<"builtInStr", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
17
|
+
builtInLang: import("@traqula/core").ParserRule<any, "builtInLang"> & gram.RuleDefExpressionFunctionX<"builtInLang", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
18
|
+
builtInLangmatches: import("@traqula/core").ParserRule<any, "builtInLangmatches"> & gram.RuleDefExpressionFunctionX<"builtInLangmatches", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
19
|
+
builtInDatatype: import("@traqula/core").ParserRule<any, "builtInDatatype"> & gram.RuleDefExpressionFunctionX<"builtInDatatype", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
20
|
+
builtInBound: import("@traqula/core").ParserRule<any, "builtInBound"> & gram.RuleDefExpressionFunctionX<"builtInBound", [import("@rdfjs/types").Variable]>;
|
|
21
|
+
builtInIri: import("@traqula/core").ParserRule<any, "builtInIri"> & gram.RuleDefExpressionFunctionX<"builtInIri", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
22
|
+
builtInUri: import("@traqula/core").ParserRule<any, "builtInUri"> & gram.RuleDefExpressionFunctionX<"builtInUri", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
23
|
+
builtInBnode: import("@traqula/core").ParserRule<any, "builtInBnode"> & gram.RuleDefExpressionFunctionX<"builtInBnode", [] | [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
24
|
+
builtInRand: import("@traqula/core").ParserRule<any, "builtInRand"> & gram.RuleDefExpressionFunctionX<"builtInRand", []>;
|
|
25
|
+
builtInAbs: import("@traqula/core").ParserRule<any, "builtInAbs"> & gram.RuleDefExpressionFunctionX<"builtInAbs", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
26
|
+
builtInCeil: import("@traqula/core").ParserRule<any, "builtInCeil"> & gram.RuleDefExpressionFunctionX<"builtInCeil", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
27
|
+
builtInFloor: import("@traqula/core").ParserRule<any, "builtInFloor"> & gram.RuleDefExpressionFunctionX<"builtInFloor", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
28
|
+
builtInRound: import("@traqula/core").ParserRule<any, "builtInRound"> & gram.RuleDefExpressionFunctionX<"builtInRound", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
29
|
+
builtInConcat: import("@traqula/core").ParserRule<any, "builtInConcat"> & gram.RuleDefExpressionFunctionX<"builtInConcat", import("@traqula/rules-sparql-1-1").Expression[]>;
|
|
30
|
+
builtInStrlen: import("@traqula/core").ParserRule<any, "builtInStrlen"> & gram.RuleDefExpressionFunctionX<"builtInStrlen", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
31
|
+
builtInUcase: import("@traqula/core").ParserRule<any, "builtInUcase"> & gram.RuleDefExpressionFunctionX<"builtInUcase", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
32
|
+
builtInLcase: import("@traqula/core").ParserRule<any, "builtInLcase"> & gram.RuleDefExpressionFunctionX<"builtInLcase", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
33
|
+
builtInEncode_for_uri: import("@traqula/core").ParserRule<any, "builtInEncode_for_uri"> & gram.RuleDefExpressionFunctionX<"builtInEncode_for_uri", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
34
|
+
builtInContains: import("@traqula/core").ParserRule<any, "builtInContains"> & gram.RuleDefExpressionFunctionX<"builtInContains", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
35
|
+
builtInStrstarts: import("@traqula/core").ParserRule<any, "builtInStrstarts"> & gram.RuleDefExpressionFunctionX<"builtInStrstarts", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
36
|
+
builtInStrends: import("@traqula/core").ParserRule<any, "builtInStrends"> & gram.RuleDefExpressionFunctionX<"builtInStrends", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
37
|
+
builtInStrbefore: import("@traqula/core").ParserRule<any, "builtInStrbefore"> & gram.RuleDefExpressionFunctionX<"builtInStrbefore", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
38
|
+
builtInStrafter: import("@traqula/core").ParserRule<any, "builtInStrafter"> & gram.RuleDefExpressionFunctionX<"builtInStrafter", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
39
|
+
builtInYear: import("@traqula/core").ParserRule<any, "builtInYear"> & gram.RuleDefExpressionFunctionX<"builtInYear", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
40
|
+
builtInMonth: import("@traqula/core").ParserRule<any, "builtInMonth"> & gram.RuleDefExpressionFunctionX<"builtInMonth", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
41
|
+
builtInDay: import("@traqula/core").ParserRule<any, "builtInDay"> & gram.RuleDefExpressionFunctionX<"builtInDay", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
42
|
+
builtInHours: import("@traqula/core").ParserRule<any, "builtInHours"> & gram.RuleDefExpressionFunctionX<"builtInHours", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
43
|
+
builtInMinutes: import("@traqula/core").ParserRule<any, "builtInMinutes"> & gram.RuleDefExpressionFunctionX<"builtInMinutes", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
44
|
+
builtInSeconds: import("@traqula/core").ParserRule<any, "builtInSeconds"> & gram.RuleDefExpressionFunctionX<"builtInSeconds", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
45
|
+
builtInTimezone: import("@traqula/core").ParserRule<any, "builtInTimezone"> & gram.RuleDefExpressionFunctionX<"builtInTimezone", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
46
|
+
builtInTz: import("@traqula/core").ParserRule<any, "builtInTz"> & gram.RuleDefExpressionFunctionX<"builtInTz", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
47
|
+
builtInNow: import("@traqula/core").ParserRule<any, "builtInNow"> & gram.RuleDefExpressionFunctionX<"builtInNow", []>;
|
|
48
|
+
builtInUuid: import("@traqula/core").ParserRule<any, "builtInUuid"> & gram.RuleDefExpressionFunctionX<"builtInUuid", []>;
|
|
49
|
+
builtInStruuid: import("@traqula/core").ParserRule<any, "builtInStruuid"> & gram.RuleDefExpressionFunctionX<"builtInStruuid", []>;
|
|
50
|
+
builtInMd5: import("@traqula/core").ParserRule<any, "builtInMd5"> & gram.RuleDefExpressionFunctionX<"builtInMd5", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
51
|
+
builtInSha1: import("@traqula/core").ParserRule<any, "builtInSha1"> & gram.RuleDefExpressionFunctionX<"builtInSha1", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
52
|
+
builtInSha256: import("@traqula/core").ParserRule<any, "builtInSha256"> & gram.RuleDefExpressionFunctionX<"builtInSha256", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
53
|
+
builtInSha384: import("@traqula/core").ParserRule<any, "builtInSha384"> & gram.RuleDefExpressionFunctionX<"builtInSha384", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
54
|
+
builtInSha512: import("@traqula/core").ParserRule<any, "builtInSha512"> & gram.RuleDefExpressionFunctionX<"builtInSha512", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
55
|
+
builtInCoalesce: import("@traqula/core").ParserRule<any, "builtInCoalesce"> & gram.RuleDefExpressionFunctionX<"builtInCoalesce", import("@traqula/rules-sparql-1-1").Expression[]>;
|
|
56
|
+
builtInIf: import("@traqula/core").ParserRule<any, "builtInIf"> & gram.RuleDefExpressionFunctionX<"builtInIf", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
57
|
+
builtInStrlang: import("@traqula/core").ParserRule<any, "builtInStrlang"> & gram.RuleDefExpressionFunctionX<"builtInStrlang", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
58
|
+
builtInStrdt: import("@traqula/core").ParserRule<any, "builtInStrdt"> & gram.RuleDefExpressionFunctionX<"builtInStrdt", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
59
|
+
builtInSameterm: import("@traqula/core").ParserRule<any, "builtInSameterm"> & gram.RuleDefExpressionFunctionX<"builtInSameterm", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
60
|
+
builtInIsiri: import("@traqula/core").ParserRule<any, "builtInIsiri"> & gram.RuleDefExpressionFunctionX<"builtInIsiri", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
61
|
+
builtInIsuri: import("@traqula/core").ParserRule<any, "builtInIsuri"> & gram.RuleDefExpressionFunctionX<"builtInIsuri", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
62
|
+
builtInIsblank: import("@traqula/core").ParserRule<any, "builtInIsblank"> & gram.RuleDefExpressionFunctionX<"builtInIsblank", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
63
|
+
builtInIsliteral: import("@traqula/core").ParserRule<any, "builtInIsliteral"> & gram.RuleDefExpressionFunctionX<"builtInIsliteral", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
64
|
+
builtInIsnumeric: import("@traqula/core").ParserRule<any, "builtInIsnumeric"> & gram.RuleDefExpressionFunctionX<"builtInIsnumeric", [import("@traqula/rules-sparql-1-1").Expression]>;
|
|
65
|
+
builtInRegex: import("@traqula/core").ParserRule<any, "builtInRegex"> & gram.RuleDefExpressionFunctionX<"builtInRegex", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression] | [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
66
|
+
builtInSubstr: import("@traqula/core").ParserRule<any, "builtInSubstr"> & gram.RuleDefExpressionFunctionX<"builtInSubstr", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression] | [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
67
|
+
builtInReplace: import("@traqula/core").ParserRule<any, "builtInReplace"> & gram.RuleDefExpressionFunctionX<"builtInReplace", [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression] | [import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression, import("@traqula/rules-sparql-1-1").Expression]>;
|
|
68
|
+
builtInExists: import("@traqula/core").ParserRule<any, "builtInExists"> & gram.RuleDefExpressionFunctionX<"builtInExists", [import("@traqula/rules-sparql-1-1").Pattern]>;
|
|
69
|
+
builtInNotexists: import("@traqula/core").ParserRule<any, "builtInNotexists"> & gram.RuleDefExpressionFunctionX<"builtInNotexists", [import("@traqula/rules-sparql-1-1").Pattern]>;
|
|
70
|
+
builtInCount: import("@traqula/core").ParserRule<any, "builtInCount"> & gram.RuleDefExpressionAggregatorX<"builtInCount">;
|
|
71
|
+
builtInSum: import("@traqula/core").ParserRule<any, "builtInSum"> & gram.RuleDefExpressionAggregatorX<"builtInSum">;
|
|
72
|
+
builtInMin: import("@traqula/core").ParserRule<any, "builtInMin"> & gram.RuleDefExpressionAggregatorX<"builtInMin">;
|
|
73
|
+
builtInMax: import("@traqula/core").ParserRule<any, "builtInMax"> & gram.RuleDefExpressionAggregatorX<"builtInMax">;
|
|
74
|
+
builtInAvg: import("@traqula/core").ParserRule<any, "builtInAvg"> & gram.RuleDefExpressionAggregatorX<"builtInAvg">;
|
|
75
|
+
builtInSample: import("@traqula/core").ParserRule<any, "builtInSample"> & gram.RuleDefExpressionAggregatorX<"builtInSample">;
|
|
76
|
+
builtInGroup_concat: import("@traqula/core").ParserRule<any, "builtInGroup_concat"> & SparqlGrammarRule<"builtInGroup_concat", import("@traqula/rules-sparql-1-1").AggregateExpression>;
|
|
77
|
+
quads: import("@traqula/core").ParserRule<any, "quads"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "quads", import("@traqula/rules-sparql-1-1").Quads[], undefined> & import("@traqula/core").GeneratorRule<undefined, "quads", import("@traqula/rules-sparql-1-1").Quads[], undefined>;
|
|
78
|
+
functionCall: import("@traqula/core").ParserRule<any, "functionCall"> & SparqlGrammarRule<"functionCall", import("@traqula/rules-sparql-1-1").FunctionCallExpression>;
|
|
79
|
+
create: import("@traqula/core").ParserRule<any, "create"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "create", import("@traqula/rules-sparql-1-1").CreateOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "create", import("@traqula/rules-sparql-1-1").CreateOperation, undefined>;
|
|
80
|
+
bind: import("@traqula/core").ParserRule<any, "bind"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "bind", import("@traqula/rules-sparql-1-1").BindPattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "bind", import("@traqula/rules-sparql-1-1").BindPattern, undefined>;
|
|
81
|
+
aggregate: import("@traqula/core").ParserRule<any, "aggregate"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "aggregate", import("@traqula/rules-sparql-1-1").AggregateExpression, undefined> & import("@traqula/core").GeneratorRule<undefined, "aggregate", import("@traqula/rules-sparql-1-1").AggregateExpression, undefined>;
|
|
82
|
+
rdfLiteral: import("@traqula/core").ParserRule<any, "rdfLiteral"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "rdfLiteral", import("@rdfjs/types").Literal, undefined> & import("@traqula/core").GeneratorRule<undefined, "rdfLiteral", import("@rdfjs/types").Literal, undefined>;
|
|
83
|
+
iri: import("@traqula/core").ParserRule<any, "iri"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "iri", import("@traqula/rules-sparql-1-1").IriTerm, undefined> & import("@traqula/core").GeneratorRule<undefined, "iri", import("@traqula/rules-sparql-1-1").IriTerm, undefined>;
|
|
84
|
+
numericLiteral: import("@traqula/core").ParserRule<any, "numericLiteral"> & SparqlGrammarRule<"numericLiteral", import("@rdfjs/types").Literal>;
|
|
85
|
+
numericLiteralUnsigned: import("@traqula/core").ParserRule<any, "numericLiteralUnsigned"> & SparqlGrammarRule<"numericLiteralUnsigned", import("@rdfjs/types").Literal>;
|
|
86
|
+
numericLiteralPositive: import("@traqula/core").ParserRule<any, "numericLiteralPositive"> & SparqlGrammarRule<"numericLiteralPositive", import("@rdfjs/types").Literal>;
|
|
87
|
+
numericLiteralNegative: import("@traqula/core").ParserRule<any, "numericLiteralNegative"> & SparqlGrammarRule<"numericLiteralNegative", import("@rdfjs/types").Literal>;
|
|
88
|
+
booleanLiteral: import("@traqula/core").ParserRule<any, "booleanLiteral"> & SparqlGrammarRule<"booleanLiteral", import("@rdfjs/types").Literal>;
|
|
89
|
+
prefixedName: import("@traqula/core").ParserRule<any, "prefixedName"> & SparqlGrammarRule<"prefixedName", import("@traqula/rules-sparql-1-1").IriTerm>;
|
|
90
|
+
blankNode: import("@traqula/core").ParserRule<any, "blankNode"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "blankNode", import("@rdfjs/types").BlankNode, undefined> & import("@traqula/core").GeneratorRule<undefined, "blankNode", import("@rdfjs/types").BlankNode, undefined>;
|
|
91
|
+
datasetClause: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "datasetClause", gram.IDatasetClause, undefined>;
|
|
92
|
+
defaultGraphClause: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "defaultGraphClause", import("@traqula/rules-sparql-1-1").IriTerm, undefined>;
|
|
93
|
+
namedGraphClause: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "namedGraphClause", import("@traqula/rules-sparql-1-1").IriTerm, undefined>;
|
|
94
|
+
sourceSelector: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "sourceSelector", import("@traqula/rules-sparql-1-1").IriTerm, undefined>;
|
|
95
|
+
prologue: import("@traqula/core").ParserRule<any, "prologue"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "prologue", Pick<import("@traqula/rules-sparql-1-1").BaseQuery, "base" | "prefixes">, undefined> & import("@traqula/core").GeneratorRule<undefined, "prologue", Pick<import("@traqula/rules-sparql-1-1").BaseQuery, "base" | "prefixes">, undefined>;
|
|
96
|
+
baseDecl: import("@traqula/core").ParserRule<any, "baseDecl"> & SparqlGrammarRule<"baseDecl", string>;
|
|
97
|
+
prefixDecl: import("@traqula/core").ParserRule<any, "prefixDecl"> & SparqlGrammarRule<"prefixDecl", [string, string]>;
|
|
98
|
+
verb: import("@traqula/core").ParserRule<any, "verb"> & SparqlGrammarRule<"verb", import("@rdfjs/types").Variable | import("@traqula/rules-sparql-1-1").IriTerm>;
|
|
99
|
+
varOrIri: import("@traqula/core").ParserRule<any, "varOrIri"> & SparqlGrammarRule<"varOrIri", import("@rdfjs/types").Variable | import("@traqula/rules-sparql-1-1").IriTerm>;
|
|
100
|
+
VerbA: import("@traqula/core").ParserRule<any, "VerbA"> & SparqlGrammarRule<"VerbA", import("@traqula/rules-sparql-1-1").VerbA>;
|
|
101
|
+
varOrTerm: import("@traqula/core").ParserRule<any, "varOrTerm"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "varOrTerm", import("@traqula/rules-sparql-1-1").Term, undefined> & import("@traqula/core").GeneratorRule<undefined, "varOrTerm", import("@traqula/rules-sparql-1-1").Term, undefined>;
|
|
102
|
+
graphTerm: import("@traqula/core").ParserRule<any, "graphTerm"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "graphTerm", import("@traqula/rules-sparql-1-1").GraphTerm, undefined> & import("@traqula/core").GeneratorRule<undefined, "graphTerm", import("@traqula/rules-sparql-1-1").GraphTerm, undefined>;
|
|
103
|
+
pathAlternative: import("@traqula/core").ParserRule<any, "pathAlternative"> & SparqlGrammarRule<"pathAlternative", import("@traqula/rules-sparql-1-1").PropertyPath | import("@traqula/rules-sparql-1-1").IriTerm>;
|
|
104
|
+
pathSequence: import("@traqula/core").ParserRule<any, "pathSequence"> & SparqlGrammarRule<"pathSequence", import("@traqula/rules-sparql-1-1").PropertyPath | import("@traqula/rules-sparql-1-1").IriTerm>;
|
|
105
|
+
pathEltOrInverse: import("@traqula/core").ParserRule<any, "pathEltOrInverse"> & SparqlGrammarRule<"pathEltOrInverse", import("@traqula/rules-sparql-1-1").PropertyPath | import("@traqula/rules-sparql-1-1").IriTerm>;
|
|
106
|
+
pathElt: import("@traqula/core").ParserRule<any, "pathElt"> & SparqlGrammarRule<"pathElt", import("@traqula/rules-sparql-1-1").PropertyPath | import("@traqula/rules-sparql-1-1").IriTerm>;
|
|
107
|
+
pathMod: import("@traqula/core").ParserRule<any, "pathMod"> & SparqlGrammarRule<"pathMod", "?" | "*" | "+">;
|
|
108
|
+
pathPrimary: import("@traqula/core").ParserRule<any, "pathPrimary"> & SparqlGrammarRule<"pathPrimary", import("@traqula/rules-sparql-1-1").PropertyPath | import("@traqula/rules-sparql-1-1").IriTerm>;
|
|
109
|
+
pathNegatedPropertySet: import("@traqula/core").ParserRule<any, "pathNegatedPropertySet"> & SparqlGrammarRule<"pathNegatedPropertySet", [import("@traqula/rules-sparql-1-1").IriTermOrElt] | [{
|
|
110
|
+
type: "path";
|
|
111
|
+
pathType: "|";
|
|
112
|
+
items: (import("@traqula/rules-sparql-1-1").IriTermOrElt)[];
|
|
113
|
+
}]>;
|
|
114
|
+
pathOneInPropertySet: import("@traqula/core").ParserRule<any, "pathOneInPropertySet"> & SparqlGrammarRule<"pathOneInPropertySet", import("@traqula/rules-sparql-1-1").IriTermOrElt>;
|
|
115
|
+
triplesBlock: import("@traqula/core").ParserRule<any, "triplesBlock"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "triplesBlock", import("@traqula/rules-sparql-1-1").BgpPattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "triplesBlock", import("@traqula/rules-sparql-1-1").BgpPattern, undefined>;
|
|
116
|
+
triplesSameSubjectPath: import("@traqula/core").ParserRule<any, "triplesSameSubjectPath"> & SparqlGrammarRule<"triplesSameSubjectPath", import("@traqula/rules-sparql-1-1").Triple[]>;
|
|
117
|
+
propertyListPathNotEmpty: import("@traqula/core").ParserRule<any, "propertyListPathNotEmpty"> & SparqlGrammarRule<"propertyListPathNotEmpty", import("@traqula/rules-sparql-1-1").Triple[], Pick<import("@traqula/rules-sparql-1-1").Triple, "subject">>;
|
|
118
|
+
propertyListNotEmpty: import("@traqula/core").ParserRule<any, "propertyListNotEmpty"> & SparqlGrammarRule<"propertyListNotEmpty", import("@traqula/rules-sparql-1-1").Triple[], Pick<import("@traqula/rules-sparql-1-1").Triple, "subject">>;
|
|
119
|
+
propertyListPath: import("@traqula/core").ParserRule<any, "propertyListPath"> & SparqlGrammarRule<"propertyListPath", import("@traqula/rules-sparql-1-1").Triple[], Pick<import("@traqula/rules-sparql-1-1").Triple, "subject">>;
|
|
120
|
+
propertyList: import("@traqula/core").ParserRule<any, "propertyList"> & SparqlGrammarRule<"propertyList", import("@traqula/rules-sparql-1-1").Triple[], Pick<import("@traqula/rules-sparql-1-1").Triple, "subject">>;
|
|
121
|
+
triplesNodePath: import("@traqula/core").ParserRule<any, "triplesNodePath"> & SparqlGrammarRule<"triplesNodePath", import("@traqula/rules-sparql-1-1").ITriplesNode>;
|
|
122
|
+
triplesNode: import("@traqula/core").ParserRule<any, "triplesNode"> & SparqlGrammarRule<"triplesNode", import("@traqula/rules-sparql-1-1").ITriplesNode>;
|
|
123
|
+
triplesSameSubject: import("@traqula/core").ParserRule<any, "triplesSameSubject"> & SparqlGrammarRule<"triplesSameSubject", import("@traqula/rules-sparql-1-1").Triple[]>;
|
|
124
|
+
triplesTemplate: import("@traqula/core").ParserRule<any, "triplesTemplate"> & SparqlGrammarRule<"triplesTemplate", import("@traqula/rules-sparql-1-1").Triple[]>;
|
|
125
|
+
verbPath: import("@traqula/core").ParserRule<any, "verbPath"> & SparqlGrammarRule<"verbPath", import("@traqula/rules-sparql-1-1").PropertyPath | import("@traqula/rules-sparql-1-1").IriTerm>;
|
|
126
|
+
verbSimple: import("@traqula/core").ParserRule<any, "verbSimple"> & SparqlGrammarRule<"verbSimple", import("@rdfjs/types").Variable>;
|
|
127
|
+
objectList: import("@traqula/core").ParserRule<any, "objectList"> & SparqlGrammarRule<"objectList", import("@traqula/rules-sparql-1-1").Triple[], Pick<import("@traqula/rules-sparql-1-1").Triple, "subject" | "predicate">>;
|
|
128
|
+
objectListPath: import("@traqula/core").ParserRule<any, "objectListPath"> & SparqlGrammarRule<"objectListPath", import("@traqula/rules-sparql-1-1").Triple[], Pick<import("@traqula/rules-sparql-1-1").Triple, "subject" | "predicate">>;
|
|
129
|
+
graphNodePath: import("@traqula/core").ParserRule<any, "graphNodePath"> & SparqlGrammarRule<"graphNodePath", import("@traqula/rules-sparql-1-1").IGraphNode>;
|
|
130
|
+
graphNode: import("@traqula/core").ParserRule<any, "graphNode"> & SparqlGrammarRule<"graphNode", import("@traqula/rules-sparql-1-1").IGraphNode>;
|
|
131
|
+
objectPath: import("@traqula/core").ParserRule<any, "objectPath"> & SparqlGrammarRule<"objectPath", import("@traqula/rules-sparql-1-1").Triple[], Pick<import("@traqula/rules-sparql-1-1").Triple, "subject" | "predicate">>;
|
|
132
|
+
collection: import("@traqula/core").ParserRule<any, "collection"> & SparqlGrammarRule<"collection", import("@traqula/rules-sparql-1-1").ITriplesNode>;
|
|
133
|
+
blankNodePropertyList: import("@traqula/core").ParserRule<any, "blankNodePropertyList"> & SparqlGrammarRule<"blankNodePropertyList", import("@traqula/rules-sparql-1-1").ITriplesNode>;
|
|
134
|
+
collectionPath: import("@traqula/core").ParserRule<any, "collectionPath"> & SparqlGrammarRule<"collectionPath", import("@traqula/rules-sparql-1-1").ITriplesNode>;
|
|
135
|
+
blankNodePropertyListPath: import("@traqula/core").ParserRule<any, "blankNodePropertyListPath"> & SparqlGrammarRule<"blankNodePropertyListPath", import("@traqula/rules-sparql-1-1").ITriplesNode>;
|
|
136
|
+
whereClause: import("@traqula/core").ParserRule<any, "whereClause"> & SparqlGrammarRule<"whereClause", import("@traqula/rules-sparql-1-1").Pattern[]>;
|
|
137
|
+
groupGraphPattern: import("@traqula/core").ParserRule<any, "groupGraphPattern"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "groupGraphPattern", import("@traqula/rules-sparql-1-1").GroupPattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "groupGraphPattern", import("@traqula/rules-sparql-1-1").GroupPattern, undefined>;
|
|
138
|
+
subSelect: import("@traqula/core").ParserRule<any, "subSelect"> & SparqlGrammarRule<"subSelect", Omit<import("@traqula/rules-sparql-1-1").SelectQuery, "prefixes">>;
|
|
139
|
+
groupGraphPatternSub: import("@traqula/core").ParserRule<any, "groupGraphPatternSub"> & SparqlGrammarRule<"groupGraphPatternSub", import("@traqula/rules-sparql-1-1").Pattern[]>;
|
|
140
|
+
graphPatternNotTriples: import("@traqula/core").ParserRule<any, "graphPatternNotTriples"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "graphPatternNotTriples", import("@traqula/rules-sparql-1-1").BlockPattern | import("@traqula/rules-sparql-1-1").FilterPattern | import("@traqula/rules-sparql-1-1").BindPattern | import("@traqula/rules-sparql-1-1").ValuesPattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "graphPatternNotTriples", import("@traqula/rules-sparql-1-1").BlockPattern | import("@traqula/rules-sparql-1-1").FilterPattern | import("@traqula/rules-sparql-1-1").BindPattern | import("@traqula/rules-sparql-1-1").ValuesPattern, undefined>;
|
|
141
|
+
groupOrUnionGraphPattern: import("@traqula/core").ParserRule<any, "groupOrUnionGraphPattern"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "groupOrUnionGraphPattern", import("@traqula/rules-sparql-1-1").UnionPattern | import("@traqula/rules-sparql-1-1").GroupPattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "groupOrUnionGraphPattern", import("@traqula/rules-sparql-1-1").UnionPattern | import("@traqula/rules-sparql-1-1").GroupPattern, undefined>;
|
|
142
|
+
optionalGraphPattern: import("@traqula/core").ParserRule<any, "optionalGraphPattern"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "optionalGraphPattern", import("@traqula/rules-sparql-1-1").OptionalPattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "optionalGraphPattern", import("@traqula/rules-sparql-1-1").OptionalPattern, undefined>;
|
|
143
|
+
minusGraphPattern: import("@traqula/core").ParserRule<any, "minusGraphPattern"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "minusGraphPattern", import("@traqula/rules-sparql-1-1").MinusPattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "minusGraphPattern", import("@traqula/rules-sparql-1-1").MinusPattern, undefined>;
|
|
144
|
+
graphGraphPattern: import("@traqula/core").ParserRule<any, "graphGraphPattern"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "graphGraphPattern", import("@traqula/rules-sparql-1-1").GraphPattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "graphGraphPattern", import("@traqula/rules-sparql-1-1").GraphPattern, undefined>;
|
|
145
|
+
serviceGraphPattern: import("@traqula/core").ParserRule<any, "serviceGraphPattern"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "serviceGraphPattern", import("@traqula/rules-sparql-1-1").ServicePattern, undefined> & import("@traqula/core").GeneratorRule<undefined, "serviceGraphPattern", import("@traqula/rules-sparql-1-1").ServicePattern, undefined>;
|
|
146
|
+
inlineData: import("@traqula/core").ParserRule<any, "inlineData"> & SparqlGrammarRule<"inlineData", import("@traqula/rules-sparql-1-1").ValuesPattern>;
|
|
147
|
+
expression: import("@traqula/core").ParserRule<any, "expression"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "expression", import("@traqula/rules-sparql-1-1").Expression, undefined> & import("@traqula/core").GeneratorRule<undefined, "expression", import("@traqula/rules-sparql-1-1").Expression, undefined>;
|
|
148
|
+
valuesClause: import("@traqula/core").ParserRule<any, "valuesClause"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "valuesClause", import("@traqula/rules-sparql-1-1").ValuePatternRow[] | undefined, undefined> & import("@traqula/core").GeneratorRule<undefined, "valuesClause", import("@traqula/rules-sparql-1-1").ValuePatternRow[] | undefined, undefined>;
|
|
149
|
+
dataBlock: import("@traqula/core").ParserRule<any, "dataBlock"> & SparqlGrammarRule<"dataBlock", import("@traqula/rules-sparql-1-1").ValuePatternRow[]>;
|
|
150
|
+
inlineDataOneVar: import("@traqula/core").ParserRule<any, "inlineDataOneVar"> & SparqlGrammarRule<"inlineDataOneVar", import("@traqula/rules-sparql-1-1").ValuePatternRow[]>;
|
|
151
|
+
inlineDataFull: import("@traqula/core").ParserRule<any, "inlineDataFull"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "inlineDataFull", import("@traqula/rules-sparql-1-1").ValuePatternRow[], undefined> & import("@traqula/core").GeneratorRule<undefined, "inlineDataFull", import("@traqula/rules-sparql-1-1").ValuePatternRow[], undefined>;
|
|
152
|
+
dataBlockValue: import("@traqula/core").ParserRule<any, "dataBlockValue"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "dataBlockValue", import("@rdfjs/types").BlankNode | import("@rdfjs/types").Literal | import("@traqula/rules-sparql-1-1").IriTerm | undefined, undefined> & import("@traqula/core").GeneratorRule<undefined, "dataBlockValue", import("@rdfjs/types").BlankNode | import("@rdfjs/types").Literal | import("@traqula/rules-sparql-1-1").IriTerm | undefined, undefined>;
|
|
153
|
+
constraint: import("@traqula/core").ParserRule<any, "constraint"> & SparqlGrammarRule<"constraint", import("@traqula/rules-sparql-1-1").Expression>;
|
|
154
|
+
brackettedExpression: import("@traqula/core").ParserRule<any, "brackettedExpression"> & SparqlGrammarRule<"brackettedExpression", import("@traqula/rules-sparql-1-1").Expression>;
|
|
155
|
+
builtInCall: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "builtInCall", import("@traqula/rules-sparql-1-1").Expression, undefined>;
|
|
156
|
+
argList: import("@traqula/core").ParserRule<any, "argList"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "argList", gram.IArgList, undefined> & import("@traqula/core").GeneratorRule<undefined, "argList", gram.IArgList, undefined>;
|
|
157
|
+
expressionList: import("@traqula/core").ParserRule<any, "expressionList"> & SparqlGrammarRule<"expressionList", import("@traqula/rules-sparql-1-1").Expression[]>;
|
|
158
|
+
conditionalOrExpression: import("@traqula/core").ParserRule<any, "conditionalOrExpression"> & SparqlGrammarRule<"conditionalOrExpression", import("@traqula/rules-sparql-1-1").Expression>;
|
|
159
|
+
iriOrFunction: import("@traqula/core").ParserRule<any, "iriOrFunction"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "iriOrFunction", import("@traqula/rules-sparql-1-1").IriTerm | (gram.IArgList & {
|
|
160
|
+
function: import("@traqula/rules-sparql-1-1").IriTerm;
|
|
161
|
+
}), undefined> & import("@traqula/core").GeneratorRule<undefined, "iriOrFunction", import("@traqula/rules-sparql-1-1").IriTerm | (gram.IArgList & {
|
|
162
|
+
function: import("@traqula/rules-sparql-1-1").IriTerm;
|
|
163
|
+
}), undefined>;
|
|
164
|
+
conditionalAndExpression: import("@traqula/core").ParserRule<any, "conditionalAndExpression"> & SparqlGrammarRule<"conditionalAndExpression", import("@traqula/rules-sparql-1-1").Expression>;
|
|
165
|
+
valueLogical: import("@traqula/core").ParserRule<any, "valueLogical"> & SparqlGrammarRule<"valueLogical", import("@traqula/rules-sparql-1-1").Expression>;
|
|
166
|
+
relationalExpression: import("@traqula/core").ParserRule<any, "relationalExpression"> & SparqlGrammarRule<"relationalExpression", import("@traqula/rules-sparql-1-1").Expression>;
|
|
167
|
+
numericExpression: import("@traqula/core").ParserRule<any, "numericExpression"> & SparqlGrammarRule<"numericExpression", import("@traqula/rules-sparql-1-1").Expression>;
|
|
168
|
+
additiveExpression: import("@traqula/core").ParserRule<any, "additiveExpression"> & SparqlGrammarRule<"additiveExpression", import("@traqula/rules-sparql-1-1").Expression>;
|
|
169
|
+
multiplicativeExpression: import("@traqula/core").ParserRule<any, "multiplicativeExpression"> & SparqlGrammarRule<"multiplicativeExpression", import("@traqula/rules-sparql-1-1").Expression>;
|
|
170
|
+
unaryExpression: import("@traqula/core").ParserRule<any, "unaryExpression"> & SparqlGrammarRule<"unaryExpression", import("@traqula/rules-sparql-1-1").Expression>;
|
|
171
|
+
primaryExpression: import("@traqula/core").ParserRule<any, "primaryExpression"> & SparqlGrammarRule<"primaryExpression", import("@traqula/rules-sparql-1-1").Expression>;
|
|
172
|
+
solutionModifier: import("@traqula/core").ParserRule<any, "solutionModifier"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "solutionModifier", gram.ISolutionModifier, undefined> & import("@traqula/core").GeneratorRule<undefined, "solutionModifier", gram.ISolutionModifier, undefined>;
|
|
173
|
+
limitOffsetClauses: import("@traqula/core").ParserRule<any, "limitOffsetClauses"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "limitOffsetClauses", Pick<import("@traqula/rules-sparql-1-1").SelectQuery, "offset" | "limit">, undefined> & import("@traqula/core").GeneratorRule<undefined, "limitOffsetClauses", Pick<import("@traqula/rules-sparql-1-1").SelectQuery, "offset" | "limit">, undefined>;
|
|
174
|
+
groupClause: import("@traqula/core").ParserRule<any, "groupClause"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "groupClause", import("@traqula/rules-sparql-1-1").Grouping[], undefined> & import("@traqula/core").GeneratorRule<undefined, "groupClause", import("@traqula/rules-sparql-1-1").Grouping[], undefined>;
|
|
175
|
+
havingClause: import("@traqula/core").ParserRule<any, "havingClause"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "havingClause", import("@traqula/rules-sparql-1-1").Expression[], undefined> & import("@traqula/core").GeneratorRule<undefined, "havingClause", import("@traqula/rules-sparql-1-1").Expression[], undefined>;
|
|
176
|
+
orderClause: import("@traqula/core").ParserRule<any, "orderClause"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "orderClause", import("@traqula/rules-sparql-1-1").Ordering[], undefined> & import("@traqula/core").GeneratorRule<undefined, "orderClause", import("@traqula/rules-sparql-1-1").Ordering[], undefined>;
|
|
177
|
+
groupCondition: import("@traqula/core").ParserRule<any, "groupCondition"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "groupCondition", import("@traqula/rules-sparql-1-1").Grouping, undefined> & import("@traqula/core").GeneratorRule<undefined, "groupCondition", import("@traqula/rules-sparql-1-1").Grouping, undefined>;
|
|
178
|
+
havingCondition: import("@traqula/core").ParserRule<any, "havingCondition"> & SparqlGrammarRule<"havingCondition", import("@traqula/rules-sparql-1-1").Expression>;
|
|
179
|
+
orderCondition: import("@traqula/core").ParserRule<any, "orderCondition"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "orderCondition", import("@traqula/rules-sparql-1-1").Ordering, undefined> & import("@traqula/core").GeneratorRule<undefined, "orderCondition", import("@traqula/rules-sparql-1-1").Ordering, undefined>;
|
|
180
|
+
limitClause: import("@traqula/core").ParserRule<any, "limitClause"> & SparqlGrammarRule<"limitClause", number>;
|
|
181
|
+
offsetClause: import("@traqula/core").ParserRule<any, "offsetClause"> & SparqlGrammarRule<"offsetClause", number>;
|
|
182
|
+
selectQuery: import("@traqula/core").ParserRule<any, "selectQuery"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "selectQuery", Omit<import("@traqula/rules-sparql-1-1").SelectQuery, gram.HandledByBase>, undefined> & import("@traqula/core").GeneratorRule<undefined, "selectQuery", Omit<import("@traqula/rules-sparql-1-1").SelectQuery, gram.HandledByBase>, undefined>;
|
|
183
|
+
constructQuery: import("@traqula/core").ParserRule<any, "constructQuery"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "constructQuery", Omit<import("@traqula/rules-sparql-1-1").ConstructQuery, gram.HandledByBase>, undefined> & import("@traqula/core").GeneratorRule<undefined, "constructQuery", Omit<import("@traqula/rules-sparql-1-1").ConstructQuery, gram.HandledByBase>, undefined>;
|
|
184
|
+
describeQuery: import("@traqula/core").ParserRule<any, "describeQuery"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "describeQuery", Omit<import("@traqula/rules-sparql-1-1").DescribeQuery, gram.HandledByBase>, undefined> & import("@traqula/core").GeneratorRule<undefined, "describeQuery", Omit<import("@traqula/rules-sparql-1-1").DescribeQuery, gram.HandledByBase>, undefined>;
|
|
185
|
+
askQuery: import("@traqula/core").ParserRule<any, "askQuery"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "askQuery", Omit<import("@traqula/rules-sparql-1-1").AskQuery, gram.HandledByBase>, undefined> & import("@traqula/core").GeneratorRule<undefined, "askQuery", Omit<import("@traqula/rules-sparql-1-1").AskQuery, gram.HandledByBase>, undefined>;
|
|
186
|
+
selectClause: import("@traqula/core").ParserRule<any, "selectClause"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "selectClause", gram.ISelectClause, undefined> & import("@traqula/core").GeneratorRule<undefined, "selectClause", gram.ISelectClause, undefined>;
|
|
187
|
+
constructTemplate: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "constructTemplate", import("@traqula/rules-sparql-1-1").Triple[] | undefined, undefined>;
|
|
188
|
+
constructTriples: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "constructTriples", import("@traqula/rules-sparql-1-1").Triple[], undefined>;
|
|
189
|
+
update1: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "update1", import("@traqula/rules-sparql-1-1").UpdateOperation, undefined>;
|
|
190
|
+
insertData: import("@traqula/core").ParserRule<any, "insertData"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "insertData", import("@traqula/rules-sparql-1-1").InsertOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "insertData", import("@traqula/rules-sparql-1-1").InsertOperation, undefined>;
|
|
191
|
+
deleteData: import("@traqula/core").ParserRule<any, "deleteData"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "deleteData", import("@traqula/rules-sparql-1-1").DeleteOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "deleteData", import("@traqula/rules-sparql-1-1").DeleteOperation, undefined>;
|
|
192
|
+
deleteWhere: import("@traqula/core").ParserRule<any, "deleteWhere"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "deleteWhere", import("@traqula/rules-sparql-1-1").DeleteWhereOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "deleteWhere", import("@traqula/rules-sparql-1-1").DeleteWhereOperation, undefined>;
|
|
193
|
+
modify: import("@traqula/core").ParserRule<any, "modify"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "modify", import("@traqula/rules-sparql-1-1").ModifyOperation, undefined> & import("@traqula/core").GeneratorRule<undefined, "modify", import("@traqula/rules-sparql-1-1").ModifyOperation, undefined>;
|
|
194
|
+
graphRef: import("@traqula/core").ParserRule<any, "graphRef"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "graphRef", import("@traqula/rules-sparql-1-1").IriTerm, undefined> & import("@traqula/core").GeneratorRule<undefined, "graphRef", import("@traqula/rules-sparql-1-1").IriTerm, undefined>;
|
|
195
|
+
graphRefAll: import("@traqula/core").ParserRule<any, "graphRefAll"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "graphRefAll", import("@traqula/rules-sparql-1-1").GraphReference, undefined> & import("@traqula/core").GeneratorRule<undefined, "graphRefAll", import("@traqula/rules-sparql-1-1").GraphReference, undefined>;
|
|
196
|
+
graphOrDefault: import("@traqula/core").ParserRule<any, "graphOrDefault"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "graphOrDefault", import("@traqula/rules-sparql-1-1").GraphOrDefault, undefined> & import("@traqula/core").GeneratorRule<undefined, "graphOrDefault", import("@traqula/rules-sparql-1-1").GraphOrDefault, undefined>;
|
|
197
|
+
quadData: import("@traqula/core").ParserRule<any, "quadData"> & import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "quadData", import("@traqula/rules-sparql-1-1").Quads[], undefined> & import("@traqula/core").GeneratorRule<undefined, "quadData", import("@traqula/rules-sparql-1-1").Quads[], undefined>;
|
|
198
|
+
quadPattern: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "quadPattern", import("@traqula/rules-sparql-1-1").Quads[], undefined>;
|
|
199
|
+
deleteClause: import("@traqula/core").ParserRule<any, "deleteClause"> & SparqlGrammarRule<"deleteClause", import("@traqula/rules-sparql-1-1").Quads[]>;
|
|
200
|
+
insertClause: import("@traqula/core").ParserRule<any, "insertClause"> & SparqlGrammarRule<"insertClause", import("@traqula/rules-sparql-1-1").Quads[]>;
|
|
201
|
+
usingClause: import("@traqula/core").ParserRule<any, "usingClause"> & SparqlGrammarRule<"usingClause", {
|
|
202
|
+
value: import("@traqula/rules-sparql-1-1").IriTerm;
|
|
203
|
+
type: "default" | "named";
|
|
204
|
+
}>;
|
|
205
|
+
quadsNotTriples: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "quadsNotTriples", import("@traqula/rules-sparql-1-1").GraphQuads, undefined>;
|
|
206
|
+
queryOrUpdate: import("@traqula/core").ParserRule<import("@traqula/rules-sparql-1-1").SparqlContext, "queryOrUpdate", Query | Update | Pick<Update, "base" | "prefixes">, undefined>;
|
|
207
|
+
}>;
|
|
208
|
+
export declare class Parser extends SparqlParser<SparqlQuery> {
|
|
209
|
+
constructor();
|
|
210
|
+
}
|
package/lib/Parser.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { ParserBuilder } from '@traqula/core';
|
|
2
|
+
import { sparqlCodepointEscape, gram, lex as l, SparqlParser } from '@traqula/rules-sparql-1-1';
|
|
3
|
+
import { queryUnitParserBuilder } from './queryUnitParser';
|
|
4
|
+
import { updateParserBuilder } from './updateUnitParser';
|
|
5
|
+
// Create merge of
|
|
6
|
+
// ```
|
|
7
|
+
// Prologue
|
|
8
|
+
// ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery )
|
|
9
|
+
// ValuesClause
|
|
10
|
+
// ```
|
|
11
|
+
// and:
|
|
12
|
+
// ```
|
|
13
|
+
// Prologue ( Update1 ( ';' Update )? )?
|
|
14
|
+
// ```
|
|
15
|
+
const queryOrUpdate = {
|
|
16
|
+
name: 'queryOrUpdate',
|
|
17
|
+
impl: ({ ACTION, SUBRULE, SUBRULE2, OR1, OR2, CONSUME, OPTION1, MANY }) => () => {
|
|
18
|
+
const prologueValues = SUBRULE(gram.prologue, undefined);
|
|
19
|
+
return OR1([
|
|
20
|
+
{ ALT: () => {
|
|
21
|
+
const queryType = OR2([
|
|
22
|
+
{ ALT: () => SUBRULE(gram.selectQuery, undefined) },
|
|
23
|
+
{ ALT: () => SUBRULE(gram.constructQuery, undefined) },
|
|
24
|
+
{ ALT: () => SUBRULE(gram.describeQuery, undefined) },
|
|
25
|
+
{ ALT: () => SUBRULE(gram.askQuery, undefined) },
|
|
26
|
+
]);
|
|
27
|
+
const values = SUBRULE(gram.valuesClause, undefined);
|
|
28
|
+
return ACTION(() => ({
|
|
29
|
+
...prologueValues,
|
|
30
|
+
...queryType,
|
|
31
|
+
type: 'query',
|
|
32
|
+
...(values && { values }),
|
|
33
|
+
}));
|
|
34
|
+
} },
|
|
35
|
+
{ ALT: () => {
|
|
36
|
+
// Prologue ( Update1 ( ';' Update )? )?
|
|
37
|
+
// Is equivalent to:
|
|
38
|
+
let parsedSemi = true;
|
|
39
|
+
const updateResult = {
|
|
40
|
+
...prologueValues,
|
|
41
|
+
type: 'update',
|
|
42
|
+
updates: [],
|
|
43
|
+
};
|
|
44
|
+
MANY({
|
|
45
|
+
GATE: () => parsedSemi,
|
|
46
|
+
DEF: () => {
|
|
47
|
+
parsedSemi = false;
|
|
48
|
+
const updateOperation = SUBRULE(gram.update1, undefined);
|
|
49
|
+
updateResult.updates.push(updateOperation);
|
|
50
|
+
OPTION1(() => {
|
|
51
|
+
CONSUME(l.symbols.semi);
|
|
52
|
+
const prologueValues = SUBRULE2(gram.prologue, undefined);
|
|
53
|
+
ACTION(() => {
|
|
54
|
+
updateResult.base = prologueValues.base ?? updateResult.base;
|
|
55
|
+
updateResult.prefixes = prologueValues.prefixes ?
|
|
56
|
+
{ ...updateResult.prefixes, ...prologueValues.prefixes } :
|
|
57
|
+
updateResult.prefixes;
|
|
58
|
+
});
|
|
59
|
+
parsedSemi = true;
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
ACTION(() => {
|
|
64
|
+
const blankLabelsUsedInInsertData = new Set();
|
|
65
|
+
for (const updateOperation of updateResult.updates) {
|
|
66
|
+
const iterBlankNodes = (callback) => {
|
|
67
|
+
if ('updateType' in updateOperation && updateOperation.updateType === 'insert') {
|
|
68
|
+
for (const quad of updateOperation.insert) {
|
|
69
|
+
for (const triple of quad.triples) {
|
|
70
|
+
for (const position of ['subject', 'object']) {
|
|
71
|
+
if (triple[position].termType === 'BlankNode') {
|
|
72
|
+
callback(triple[position].value);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
iterBlankNodes((label) => {
|
|
80
|
+
if (blankLabelsUsedInInsertData.has(label)) {
|
|
81
|
+
throw new Error('Detected reuse blank node across different INSERT DATA clauses');
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
iterBlankNodes(label => blankLabelsUsedInInsertData.add(label));
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
return updateResult.updates.length > 0 ? updateResult : prologueValues;
|
|
88
|
+
} },
|
|
89
|
+
]);
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
export const sparql11ParserBuilder = ParserBuilder.createBuilder(queryUnitParserBuilder)
|
|
93
|
+
.merge(updateParserBuilder, [])
|
|
94
|
+
.deleteRule('queryUnit')
|
|
95
|
+
.deleteRule('query')
|
|
96
|
+
.deleteRule('updateUnit')
|
|
97
|
+
.deleteRule('update')
|
|
98
|
+
.addRule(queryOrUpdate);
|
|
99
|
+
export class Parser extends SparqlParser {
|
|
100
|
+
constructor() {
|
|
101
|
+
const parser = sparql11ParserBuilder.build({
|
|
102
|
+
tokenVocabulary: l.sparql11Tokens.tokenVocabulary,
|
|
103
|
+
queryPreProcessor: sparqlCodepointEscape,
|
|
104
|
+
parserConfig: {
|
|
105
|
+
skipValidations: true,
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
super(parser);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=Parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["Parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,kBAAkB;AAClB,MAAM;AACN,WAAW;AACX,8DAA8D;AAC9D,eAAe;AACf,MAAM;AACN,OAAO;AACP,MAAM;AACN,wCAAwC;AACxC,MAAM;AACN,MAAM,aAAa,GAA2F;IAC5G,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE;QAC9E,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO,GAAG,CAAqD;YAC7D,EAAE,GAAG,EAAE,GAAG,EAAE;oBACV,MAAM,SAAS,GAAG,GAAG,CAAkC;wBACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE;wBACnD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;wBACtD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE;wBACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;qBACjD,CAAC,CAAC;oBACH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;oBACrD,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAQ;wBAC1B,GAAG,cAAc;wBACjB,GAAG,SAAS;wBACZ,IAAI,EAAE,OAAO;wBACb,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;qBACzB,CAAA,CAAC,CAAC;gBACN,CAAC,EAAE;YACH,EAAE,GAAG,EAAE,GAAG,EAAE;oBACV,wCAAwC;oBACxC,oBAAoB;oBAEpB,IAAI,UAAU,GAAG,IAAI,CAAC;oBACtB,MAAM,YAAY,GAAW;wBAC3B,GAAG,cAAc;wBACjB,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;qBACZ,CAAC;oBACF,IAAI,CAAC;wBACH,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU;wBACtB,GAAG,EAAE,GAAG,EAAE;4BACR,UAAU,GAAG,KAAK,CAAC;4BACnB,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;4BAEzD,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;4BAE3C,OAAO,CAAC,GAAG,EAAE;gCACX,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gCACxB,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gCAE1D,MAAM,CAAC,GAAG,EAAE;oCACV,YAAY,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC;oCAC7D,YAAY,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;wCAC7C,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;wCAC5D,YAAY,CAAC,QAAQ,CAAC;gCAC1B,CAAC,CAAC,CAAC;gCAEH,UAAU,GAAG,IAAI,CAAC;4BACpB,CAAC,CAAC,CAAC;wBACL,CAAC;qBACF,CAAC,CAAC;oBAEH,MAAM,CAAC,GAAG,EAAE;wBACV,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAAU,CAAC;wBACtD,KAAK,MAAM,eAAe,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;4BACnD,MAAM,cAAc,GAAG,CAAC,QAA0C,EAAQ,EAAE;gCAC1E,IAAI,YAAY,IAAI,eAAe,IAAI,eAAe,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;oCAC/E,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;wCAC1C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;4CAClC,KAAK,MAAM,QAAQ,IAAY,CAAE,SAAS,EAAE,QAAQ,CAAE,EAAE,CAAC;gDACvD,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;oDAC9C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;gDACnC,CAAC;4CACH,CAAC;wCACH,CAAC;oCACH,CAAC;gCACH,CAAC;4BACH,CAAC,CAAC;4BACF,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE;gCACvB,IAAI,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oCAC3C,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;gCACpF,CAAC;4BACH,CAAC,CAAC,CAAC;4BACH,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;wBAClE,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;gBACzE,CAAC,EAAE;SACJ,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC,aAAa,CAAC,sBAAsB,CAAC;KACrF,KAAK,CAAC,mBAAmB,EAAU,EAAE,CAAC;KACtC,UAAU,CAAC,WAAW,CAAC;KACvB,UAAU,CAAC,OAAO,CAAC;KACnB,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,QAAQ,CAAC;KACpB,OAAO,CAAC,aAAa,CAAC,CAAC;AAE1B,MAAM,OAAO,MAAO,SAAQ,YAAyB;IACnD;QACE,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC;YACzC,eAAe,EAAE,CAAC,CAAC,cAAc,CAAC,eAAe;YACjD,iBAAiB,EAAE,qBAAqB;YACxC,YAAY,EAAE;gBACZ,eAAe,EAAE,IAAI;aACtB;SACF,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CACF","sourcesContent":["import { ParserBuilder } from '@traqula/core';\nimport type { Query, SparqlQuery, Update, SparqlGrammarRule } from '@traqula/rules-sparql-1-1';\nimport { sparqlCodepointEscape, gram, lex as l, SparqlParser } from '@traqula/rules-sparql-1-1';\nimport { queryUnitParserBuilder } from './queryUnitParser';\nimport { updateParserBuilder } from './updateUnitParser';\n\n// Create merge of\n// ```\n// Prologue\n// ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery )\n// ValuesClause\n// ```\n// and:\n// ```\n// Prologue ( Update1 ( ';' Update )? )?\n// ```\nconst queryOrUpdate: SparqlGrammarRule<'queryOrUpdate', Query | Update | Pick<Update, 'base' | 'prefixes'>> = {\n name: 'queryOrUpdate',\n impl: ({ ACTION, SUBRULE, SUBRULE2, OR1, OR2, CONSUME, OPTION1, MANY }) => () => {\n const prologueValues = SUBRULE(gram.prologue, undefined);\n return OR1<Query | Update | Pick<Update, 'base' | 'prefixes'>>([\n { ALT: () => {\n const queryType = OR2<Omit<Query, gram.HandledByBase>>([\n { ALT: () => SUBRULE(gram.selectQuery, undefined) },\n { ALT: () => SUBRULE(gram.constructQuery, undefined) },\n { ALT: () => SUBRULE(gram.describeQuery, undefined) },\n { ALT: () => SUBRULE(gram.askQuery, undefined) },\n ]);\n const values = SUBRULE(gram.valuesClause, undefined);\n return ACTION(() => (<Query>{\n ...prologueValues,\n ...queryType,\n type: 'query',\n ...(values && { values }),\n }));\n } },\n { ALT: () => {\n // Prologue ( Update1 ( ';' Update )? )?\n // Is equivalent to:\n\n let parsedSemi = true;\n const updateResult: Update = {\n ...prologueValues,\n type: 'update',\n updates: [],\n };\n MANY({\n GATE: () => parsedSemi,\n DEF: () => {\n parsedSemi = false;\n const updateOperation = SUBRULE(gram.update1, undefined);\n\n updateResult.updates.push(updateOperation);\n\n OPTION1(() => {\n CONSUME(l.symbols.semi);\n const prologueValues = SUBRULE2(gram.prologue, undefined);\n\n ACTION(() => {\n updateResult.base = prologueValues.base ?? updateResult.base;\n updateResult.prefixes = prologueValues.prefixes ?\n { ...updateResult.prefixes, ...prologueValues.prefixes } :\n updateResult.prefixes;\n });\n\n parsedSemi = true;\n });\n },\n });\n\n ACTION(() => {\n const blankLabelsUsedInInsertData = new Set<string>();\n for (const updateOperation of updateResult.updates) {\n const iterBlankNodes = (callback: (blankNodeLabel: string) => void): void => {\n if ('updateType' in updateOperation && updateOperation.updateType === 'insert') {\n for (const quad of updateOperation.insert) {\n for (const triple of quad.triples) {\n for (const position of <const> [ 'subject', 'object' ]) {\n if (triple[position].termType === 'BlankNode') {\n callback(triple[position].value);\n }\n }\n }\n }\n }\n };\n iterBlankNodes((label) => {\n if (blankLabelsUsedInInsertData.has(label)) {\n throw new Error('Detected reuse blank node across different INSERT DATA clauses');\n }\n });\n iterBlankNodes(label => blankLabelsUsedInInsertData.add(label));\n }\n });\n\n return updateResult.updates.length > 0 ? updateResult : prologueValues;\n } },\n ]);\n },\n};\n\nexport const sparql11ParserBuilder = ParserBuilder.createBuilder(queryUnitParserBuilder)\n .merge(updateParserBuilder, <const> [])\n .deleteRule('queryUnit')\n .deleteRule('query')\n .deleteRule('updateUnit')\n .deleteRule('update')\n .addRule(queryOrUpdate);\n\nexport class Parser extends SparqlParser<SparqlQuery> {\n public constructor() {\n const parser = sparql11ParserBuilder.build({\n tokenVocabulary: l.sparql11Tokens.tokenVocabulary,\n queryPreProcessor: sparqlCodepointEscape,\n parserConfig: {\n skipValidations: true,\n },\n });\n super(parser);\n }\n}\n"]}
|