@traqula/generator-sparql-1-2 0.0.24 → 1.0.0
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/README.md +2 -0
- package/dist/cjs/lib/index.js +18 -4
- package/dist/cjs/lib/index.js.map +1 -1
- package/dist/esm/lib/index.d.ts +22 -8
- package/dist/esm/lib/index.js +19 -5
- package/dist/esm/lib/index.js.map +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
# Traqula SPARQL 1.2 generator
|
|
10
10
|
|
|
11
|
+
[](https://www.npmjs.com/package/@traqula/generator-sparql-1-2)
|
|
12
|
+
|
|
11
13
|
Traqula Generator Sparql 1.2 is a [SPARQL 1.2](https://www.w3.org/TR/sparql12-query/#grammar) query generator for TypeScript.
|
|
12
14
|
It can generate SPARQL given the AST created by [Traqula parser SPARQL 1-2](https://github.com/comunica/traqula/tree/main/engines/parser-sparql-1-2).
|
|
13
15
|
|
package/dist/cjs/lib/index.js
CHANGED
|
@@ -16,18 +16,32 @@ exports.sparql12GeneratorBuilder = core_1.GeneratorBuilder.create(generator_spar
|
|
|
16
16
|
.patchRule(rules_sparql_1_2_1.gram.prologue)
|
|
17
17
|
.patchRule(rules_sparql_1_2_1.gram.generateTriplesBlock)
|
|
18
18
|
.patchRule(rules_sparql_1_2_1.gram.generateGraphTerm);
|
|
19
|
+
/**
|
|
20
|
+
* Generator that can generate a SPARQL 1.2 query string given a SPARQL 1.2 Traqula AST.
|
|
21
|
+
*/
|
|
19
22
|
class Generator {
|
|
20
23
|
defaultContext;
|
|
21
24
|
constructor(defaultContext = {}) {
|
|
22
|
-
this.defaultContext = defaultContext;
|
|
25
|
+
this.defaultContext = (0, rules_sparql_1_2_1.completeGeneratorContext)(defaultContext);
|
|
23
26
|
}
|
|
24
27
|
generator = exports.sparql12GeneratorBuilder.build();
|
|
25
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Generates a query string starting from the
|
|
30
|
+
* [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)
|
|
31
|
+
* or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.
|
|
32
|
+
* @param ast
|
|
33
|
+
* @param context
|
|
34
|
+
*/
|
|
26
35
|
generate(ast, context = {}) {
|
|
27
|
-
return this.generator.queryOrUpdate(ast,
|
|
36
|
+
return this.generator.queryOrUpdate(ast, { ...this.defaultContext, ...context }).trim();
|
|
28
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Generates a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.
|
|
40
|
+
* @param ast
|
|
41
|
+
* @param context
|
|
42
|
+
*/
|
|
29
43
|
generatePath(ast, context = {}) {
|
|
30
|
-
return this.generator.path(ast,
|
|
44
|
+
return this.generator.path(ast, { ...this.defaultContext, ...context }, undefined).trim();
|
|
31
45
|
}
|
|
32
46
|
}
|
|
33
47
|
exports.Generator = Generator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AAEjD,wEAAyE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AAEjD,wEAAyE;AAEzE,gEAAkF;AAGrE,QAAA,wBAAwB,GACnC,uBAAgB,CAAC,MAAM,CAAC,+CAAwB,CAAC;KAC9C,YAAY,EAA8B;KAC1C,SAAS,EA6EN;KACH,OAAO,CAAC,uBAAG,CAAC,UAAU,CAAC;KACvB,OAAO,CAAC,uBAAG,CAAC,aAAa,CAAC;KAC1B,SAAS,CAAC,uBAAG,CAAC,aAAa,CAAC;KAC5B,OAAO,CAAC,uBAAG,CAAC,mBAAmB,CAAC;KAChC,OAAO,CAAC,uBAAG,CAAC,cAAc,CAAC;KAC3B,OAAO,CAAC,uBAAG,CAAC,WAAW,CAAC;KACxB,SAAS,CAAC,uBAAG,CAAC,QAAQ,CAAC;KACvB,SAAS,CAAC,uBAAG,CAAC,oBAAoB,CAAC;KACnC,SAAS,CAAC,uBAAG,CAAC,iBAAiB,CAAC,CAAC;AAItC;;GAEG;AACH,MAAa,SAAS;IACD,cAAc,CAA6B;IAC9D,YAAmB,iBAAsD,EAAE;QACzE,IAAI,CAAC,cAAc,GAAG,IAAA,2CAAwB,EAAC,cAAc,CAAC,CAAC;IACjE,CAAC;IAEgB,SAAS,GAAoB,gCAAwB,CAAC,KAAK,EAAE,CAAC;IAE/E;;;;;;OAMG;IACI,QAAQ,CAAC,GAA2B,EAAE,UAA+C,EAAE;QAC5F,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1F,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,GAAa,EAAE,UAA+C,EAAE;QAClF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5F,CAAC;CACF;AA3BD,8BA2BC","sourcesContent":["import { GeneratorBuilder } from '@traqula/core';\nimport type { Wrap, Patch } from '@traqula/core';\nimport { sparql11GeneratorBuilder } from '@traqula/generator-sparql-1-1';\nimport type { gram as g11 } from '@traqula/rules-sparql-1-1';\nimport { gram as g12, completeGeneratorContext } from '@traqula/rules-sparql-1-2';\nimport type * as T12 from '@traqula/rules-sparql-1-2';\n\nexport const sparql12GeneratorBuilder =\n GeneratorBuilder.create(sparql11GeneratorBuilder)\n .widenContext<T12.SparqlGeneratorContext>()\n .typePatch<{\n [g11.queryOrUpdate.name]: [T12.SparqlQuery];\n [g11.query.name]: [T12.Query];\n [g11.selectQuery.name]: [Omit<T12.QuerySelect, g11.HandledByBase>];\n [g11.constructQuery.name]: [ Omit<T12.QueryConstruct, g11.HandledByBase>];\n [g11.describeQuery.name]: [Omit<T12.QueryDescribe, g11.HandledByBase>];\n [g11.askQuery.name]: [Omit<T12.QueryAsk, g11.HandledByBase>];\n [g11.selectClause.name]: [ Wrap<Pick<T12.QuerySelect, 'variables' | 'distinct' | 'reduced'>> ];\n\n [g11.update.name]: [T12.Update];\n [g11.update1.name]: [T12.UpdateOperation];\n [g11.load.name]: [T12.UpdateOperationLoad];\n [g11.clear.name]: [T12.UpdateOperationClear];\n [g11.drop.name]: [T12.UpdateOperationDrop];\n [g11.create.name]: [T12.UpdateOperationCreate];\n [g11.copy.name]: [T12.UpdateOperationCopy];\n [g11.move.name]: [T12.UpdateOperationMove];\n [g11.add.name]: [T12.UpdateOperationAdd];\n [g11.insertData.name]: [T12.UpdateOperationInsertData];\n [g11.deleteData.name]: [T12.UpdateOperationDeleteData];\n [g11.deleteWhere.name]: [T12.UpdateOperationDeleteWhere];\n [g11.modify.name]: [T12.UpdateOperationModify];\n [g11.graphRef.name]: [T12.TermIri];\n [g11.graphRefAll.name]: [T12.GraphRef];\n [g11.quads.name]: [Wrap<T12.Quads[]>];\n [g11.quadsNotTriples.name]: [T12.GraphQuads];\n\n [g11.aggregate.name]: [ T12.ExpressionAggregate ];\n\n [g11.datasetClauseStar.name]: [ T12.DatasetClauses ];\n [g11.usingClauseStar.name]: [ T12.DatasetClauses ];\n\n // [g11.datasetClause.name]: unchanged;\n [g11.argList.name]: [ Patch<g11.IArgList, { args: T12.Expression[] }> ];\n [g11.expression.name]: [ T12.Expression ];\n [g11.iriOrFunction.name]: [T12.TermIri | T12.ExpressionFunctionCall];\n\n [g11.prologue.name]: [ T12.ContextDefinition[] ];\n [g11.prefixDecl.name]: [ T12.ContextDefinitionPrefix ];\n [g11.baseDecl.name]: [ T12.ContextDefinitionBase ];\n // [g11.var_.name]: unchanged;\n [g11.varOrTerm.name]: [ T12.Term ];\n [g11.graphTerm.name]: [ T12.GraphTerm ];\n\n [g11.rdfLiteral.name]: [T12.TermLiteral];\n // [g11.string.name]: unchanged;\n // [g11.iri.name]: unchanged;\n // [g11.iriFull.name]: unchanged;\n // [g11.prefixedName.name]: unchanged;\n // [g11.blankNode.name]: unchanged;\n\n // [g11.path.name]: unchanged;\n //\n [g11.solutionModifier.name]: [ T12.SolutionModifiers ];\n [g11.groupClause.name]: [ T12.SolutionModifierGroup ];\n [g11.havingClause.name]: [ T12.SolutionModifierHaving ];\n [g11.orderClause.name]: [ T12.SolutionModifierOrder ];\n [g11.limitOffsetClauses.name]: [ T12.SolutionModifierLimitOffset ];\n\n [g11.triplesBlock.name]: [ T12.PatternBgp ];\n [g11.collectionPath.name]: [ T12.TripleCollectionList ];\n [g11.blankNodePropertyListPath.name]: [ T12.TripleCollectionBlankNodeProperties ];\n [g11.triplesNodePath.name]: [ T12.TripleCollection ];\n [g11.graphNodePath.name]: [ T12.Term | T12.TripleCollection ];\n\n [g11.whereClause.name]: [ Wrap<T12.PatternGroup> ];\n [g11.generatePattern.name]: [ T12.Pattern ];\n [g11.groupGraphPattern.name]: [ T12.PatternGroup ];\n [g11.graphPatternNotTriples.name]: [ Exclude<T12.Pattern, T12.SubSelect | T12.PatternBgp> ];\n [g11.optionalGraphPattern.name]: [ T12.PatternOptional ];\n [g11.graphGraphPattern.name]: [ T12.PatternGroup ];\n [g11.serviceGraphPattern.name]: [ T12.PatternService ];\n [g11.bind.name]: [ T12.PatternBind ];\n [g11.inlineData.name]: [ T12.PatternValues ];\n [g11.minusGraphPattern.name]: [ T12.PatternMinus ];\n [g11.groupOrUnionGraphPattern.name]: [ T12.PatternGroup | T12.PatternUnion ];\n [g11.filter.name]: [ T12.PatternFilter ];\n }>()\n .addRule(g12.tripleTerm)\n .addRule(g12.reifiedTriple)\n .patchRule(g12.graphNodePath)\n .addRule(g12.annotationBlockPath)\n .addRule(g12.annotationPath)\n .addRule(g12.versionDecl)\n .patchRule(g12.prologue)\n .patchRule(g12.generateTriplesBlock)\n .patchRule(g12.generateGraphTerm);\n\nexport type SparqlGenerator = ReturnType<typeof sparql12GeneratorBuilder.build>;\n\n/**\n * Generator that can generate a SPARQL 1.2 query string given a SPARQL 1.2 Traqula AST.\n */\nexport class Generator {\n protected readonly defaultContext: T12.SparqlGeneratorContext;\n public constructor(defaultContext: Partial<T12.SparqlGeneratorContext> = {}) {\n this.defaultContext = completeGeneratorContext(defaultContext);\n }\n\n private readonly generator: SparqlGenerator = sparql12GeneratorBuilder.build();\n\n /**\n * Generates a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.\n * @param ast\n * @param context\n */\n public generate(ast: T12.Query | T12.Update, context: Partial<T12.SparqlGeneratorContext> = {}): string {\n return this.generator.queryOrUpdate(ast, { ...this.defaultContext, ...context }).trim();\n }\n\n /**\n * Generates a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.\n * @param ast\n * @param context\n */\n public generatePath(ast: T12.Path, context: Partial<T12.SparqlGeneratorContext> = {}): string {\n return this.generator.path(ast, { ...this.defaultContext, ...context }, undefined).trim();\n }\n}\n"]}
|
package/dist/esm/lib/index.d.ts
CHANGED
|
@@ -2,9 +2,8 @@ import { GeneratorBuilder } from '@traqula/core';
|
|
|
2
2
|
import type { Wrap, Patch } from '@traqula/core';
|
|
3
3
|
import type { gram as g11 } from '@traqula/rules-sparql-1-1';
|
|
4
4
|
import type * as T12 from '@traqula/rules-sparql-1-2';
|
|
5
|
-
export declare const sparql12GeneratorBuilder: GeneratorBuilder<T12.SparqlGeneratorContext, "filter" | "
|
|
5
|
+
export declare const sparql12GeneratorBuilder: GeneratorBuilder<T12.SparqlGeneratorContext, "filter" | "graphRef" | "load" | "clear" | "drop" | "create" | "add" | "move" | "copy" | "modify" | "update" | "query" | "datasetClauses" | "bind" | "solutionModifier" | "expression" | "aggregate" | "path" | "blankNode" | "selectQuery" | "selectClause" | "constructQuery" | "describeQuery" | "askQuery" | "update1" | "insertData" | "deleteData" | "deleteWhere" | "graphRefAll" | "quads" | "quadsNotTriples" | "usingClauses" | "argList" | "iriOrFunction" | "prologue" | "baseDecl" | "prefixDecl" | "varOrTerm" | "var" | "graphTerm" | "rdfLiteral" | "iri" | "iriFull" | "prefixedName" | "groupClause" | "havingClause" | "orderClause" | "limitOffsetClauses" | "triplesBlock" | "collectionPath" | "triplesNodePath" | "blankNodePropertyListPath" | "graphNodePath" | "whereClause" | "groupGraphPattern" | "graphPatternNotTriples" | "optionalGraphPattern" | "graphGraphPattern" | "serviceGraphPattern" | "inlineData" | "minusGraphPattern" | "groupOrUnionGraphPattern" | "queryOrUpdate" | "generatePattern" | "reifiedTriple" | "tripleTerm" | "annotationBlockPath" | "annotationPath" | "versionDecl", {
|
|
6
6
|
filter: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "filter", T12.PatternFilter, []>;
|
|
7
|
-
copy: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "copy", T12.UpdateOperationCopy, []>;
|
|
8
7
|
graphRef: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "graphRef", import("@traqula/rules-sparql-1-1").TermIri, []>;
|
|
9
8
|
load: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "load", T12.UpdateOperationLoad, []>;
|
|
10
9
|
clear: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "clear", T12.UpdateOperationClear, []>;
|
|
@@ -12,6 +11,7 @@ export declare const sparql12GeneratorBuilder: GeneratorBuilder<T12.SparqlGenera
|
|
|
12
11
|
create: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "create", T12.UpdateOperationCreate, []>;
|
|
13
12
|
add: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "add", T12.UpdateOperationAdd, []>;
|
|
14
13
|
move: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "move", T12.UpdateOperationMove, []>;
|
|
14
|
+
copy: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "copy", T12.UpdateOperationCopy, []>;
|
|
15
15
|
modify: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "modify", T12.UpdateOperationModify, []>;
|
|
16
16
|
update: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "update", T12.Update, []>;
|
|
17
17
|
query: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "query", T12.Query, []>;
|
|
@@ -91,7 +91,6 @@ export declare const sparql12GeneratorBuilder: GeneratorBuilder<T12.SparqlGenera
|
|
|
91
91
|
graphNodePath: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "graphNodePath", T12.GraphNode, []>;
|
|
92
92
|
whereClause: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "whereClause", Wrap<T12.PatternGroup>, []>;
|
|
93
93
|
groupGraphPattern: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "groupGraphPattern", T12.PatternGroup, []>;
|
|
94
|
-
generatePattern: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "generatePattern", T12.Pattern, []>;
|
|
95
94
|
graphPatternNotTriples: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "graphPatternNotTriples", T12.PatternGroup | T12.PatternUnion | T12.PatternOptional | T12.PatternMinus | T12.PatternGraph | T12.PatternService | T12.PatternFilter | T12.PatternBind | T12.PatternValues, []>;
|
|
96
95
|
optionalGraphPattern: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "optionalGraphPattern", T12.PatternOptional, []>;
|
|
97
96
|
graphGraphPattern: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "graphGraphPattern", T12.PatternGroup, []>;
|
|
@@ -100,21 +99,36 @@ export declare const sparql12GeneratorBuilder: GeneratorBuilder<T12.SparqlGenera
|
|
|
100
99
|
minusGraphPattern: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "minusGraphPattern", T12.PatternMinus, []>;
|
|
101
100
|
groupOrUnionGraphPattern: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "groupOrUnionGraphPattern", T12.PatternGroup | T12.PatternUnion, []>;
|
|
102
101
|
queryOrUpdate: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "queryOrUpdate", T12.SparqlQuery, []>;
|
|
102
|
+
generatePattern: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "generatePattern", T12.Pattern, []>;
|
|
103
103
|
reifiedTriple: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "reifiedTriple", T12.TripleCollectionReifiedTriple, []>;
|
|
104
|
-
|
|
105
|
-
annotationPath: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "annotationPath", T12.Annotation[], []>;
|
|
104
|
+
tripleTerm: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "tripleTerm", T12.TermTriple, []>;
|
|
106
105
|
annotationBlockPath: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "annotationBlockPath", Patch<import("@traqula/rules-sparql-1-1").TripleCollectionBlankNodeProperties, {
|
|
107
106
|
triples: T12.TripleNesting[];
|
|
108
107
|
identifier: T12.TermBlank | T12.TermVariable | T12.TermIri;
|
|
109
108
|
}>, []>;
|
|
110
|
-
|
|
109
|
+
annotationPath: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "annotationPath", T12.Annotation[], []>;
|
|
110
|
+
versionDecl: import("@traqula/core").GeneratorRule<T12.SparqlGeneratorContext, "versionDecl", T12.ContextDefinitionVersion, []>;
|
|
111
111
|
}>;
|
|
112
112
|
export type SparqlGenerator = ReturnType<typeof sparql12GeneratorBuilder.build>;
|
|
113
|
+
/**
|
|
114
|
+
* Generator that can generate a SPARQL 1.2 query string given a SPARQL 1.2 Traqula AST.
|
|
115
|
+
*/
|
|
113
116
|
export declare class Generator {
|
|
114
|
-
|
|
117
|
+
protected readonly defaultContext: T12.SparqlGeneratorContext;
|
|
115
118
|
constructor(defaultContext?: Partial<T12.SparqlGeneratorContext>);
|
|
116
119
|
private readonly generator;
|
|
117
|
-
|
|
120
|
+
/**
|
|
121
|
+
* Generates a query string starting from the
|
|
122
|
+
* [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)
|
|
123
|
+
* or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.
|
|
124
|
+
* @param ast
|
|
125
|
+
* @param context
|
|
126
|
+
*/
|
|
118
127
|
generate(ast: T12.Query | T12.Update, context?: Partial<T12.SparqlGeneratorContext>): string;
|
|
128
|
+
/**
|
|
129
|
+
* Generates a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.
|
|
130
|
+
* @param ast
|
|
131
|
+
* @param context
|
|
132
|
+
*/
|
|
119
133
|
generatePath(ast: T12.Path, context?: Partial<T12.SparqlGeneratorContext>): string;
|
|
120
134
|
}
|
package/dist/esm/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GeneratorBuilder } from '@traqula/core';
|
|
2
2
|
import { sparql11GeneratorBuilder } from '@traqula/generator-sparql-1-1';
|
|
3
|
-
import {
|
|
3
|
+
import { gram as g12, completeGeneratorContext } from '@traqula/rules-sparql-1-2';
|
|
4
4
|
export const sparql12GeneratorBuilder = GeneratorBuilder.create(sparql11GeneratorBuilder)
|
|
5
5
|
.widenContext()
|
|
6
6
|
.typePatch()
|
|
@@ -13,18 +13,32 @@ export const sparql12GeneratorBuilder = GeneratorBuilder.create(sparql11Generato
|
|
|
13
13
|
.patchRule(g12.prologue)
|
|
14
14
|
.patchRule(g12.generateTriplesBlock)
|
|
15
15
|
.patchRule(g12.generateGraphTerm);
|
|
16
|
+
/**
|
|
17
|
+
* Generator that can generate a SPARQL 1.2 query string given a SPARQL 1.2 Traqula AST.
|
|
18
|
+
*/
|
|
16
19
|
export class Generator {
|
|
17
20
|
defaultContext;
|
|
18
21
|
constructor(defaultContext = {}) {
|
|
19
|
-
this.defaultContext = defaultContext;
|
|
22
|
+
this.defaultContext = completeGeneratorContext(defaultContext);
|
|
20
23
|
}
|
|
21
24
|
generator = sparql12GeneratorBuilder.build();
|
|
22
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Generates a query string starting from the
|
|
27
|
+
* [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)
|
|
28
|
+
* or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.
|
|
29
|
+
* @param ast
|
|
30
|
+
* @param context
|
|
31
|
+
*/
|
|
23
32
|
generate(ast, context = {}) {
|
|
24
|
-
return this.generator.queryOrUpdate(ast,
|
|
33
|
+
return this.generator.queryOrUpdate(ast, { ...this.defaultContext, ...context }).trim();
|
|
25
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Generates a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.
|
|
37
|
+
* @param ast
|
|
38
|
+
* @param context
|
|
39
|
+
*/
|
|
26
40
|
generatePath(ast, context = {}) {
|
|
27
|
-
return this.generator.path(ast,
|
|
41
|
+
return this.generator.path(ast, { ...this.defaultContext, ...context }, undefined).trim();
|
|
28
42
|
}
|
|
29
43
|
}
|
|
30
44
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,IAAI,IAAI,GAAG,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAGlF,MAAM,CAAC,MAAM,wBAAwB,GACnC,gBAAgB,CAAC,MAAM,CAAC,wBAAwB,CAAC;KAC9C,YAAY,EAA8B;KAC1C,SAAS,EA6EN;KACH,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;KACvB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;KAC1B,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;KAC5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;KAChC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;KAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;KACxB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;KACvB,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;KACnC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAItC;;GAEG;AACH,MAAM,OAAO,SAAS;IACD,cAAc,CAA6B;IAC9D,YAAmB,iBAAsD,EAAE;QACzE,IAAI,CAAC,cAAc,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACjE,CAAC;IAEgB,SAAS,GAAoB,wBAAwB,CAAC,KAAK,EAAE,CAAC;IAE/E;;;;;;OAMG;IACI,QAAQ,CAAC,GAA2B,EAAE,UAA+C,EAAE;QAC5F,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1F,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,GAAa,EAAE,UAA+C,EAAE;QAClF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5F,CAAC;CACF","sourcesContent":["import { GeneratorBuilder } from '@traqula/core';\nimport type { Wrap, Patch } from '@traqula/core';\nimport { sparql11GeneratorBuilder } from '@traqula/generator-sparql-1-1';\nimport type { gram as g11 } from '@traqula/rules-sparql-1-1';\nimport { gram as g12, completeGeneratorContext } from '@traqula/rules-sparql-1-2';\nimport type * as T12 from '@traqula/rules-sparql-1-2';\n\nexport const sparql12GeneratorBuilder =\n GeneratorBuilder.create(sparql11GeneratorBuilder)\n .widenContext<T12.SparqlGeneratorContext>()\n .typePatch<{\n [g11.queryOrUpdate.name]: [T12.SparqlQuery];\n [g11.query.name]: [T12.Query];\n [g11.selectQuery.name]: [Omit<T12.QuerySelect, g11.HandledByBase>];\n [g11.constructQuery.name]: [ Omit<T12.QueryConstruct, g11.HandledByBase>];\n [g11.describeQuery.name]: [Omit<T12.QueryDescribe, g11.HandledByBase>];\n [g11.askQuery.name]: [Omit<T12.QueryAsk, g11.HandledByBase>];\n [g11.selectClause.name]: [ Wrap<Pick<T12.QuerySelect, 'variables' | 'distinct' | 'reduced'>> ];\n\n [g11.update.name]: [T12.Update];\n [g11.update1.name]: [T12.UpdateOperation];\n [g11.load.name]: [T12.UpdateOperationLoad];\n [g11.clear.name]: [T12.UpdateOperationClear];\n [g11.drop.name]: [T12.UpdateOperationDrop];\n [g11.create.name]: [T12.UpdateOperationCreate];\n [g11.copy.name]: [T12.UpdateOperationCopy];\n [g11.move.name]: [T12.UpdateOperationMove];\n [g11.add.name]: [T12.UpdateOperationAdd];\n [g11.insertData.name]: [T12.UpdateOperationInsertData];\n [g11.deleteData.name]: [T12.UpdateOperationDeleteData];\n [g11.deleteWhere.name]: [T12.UpdateOperationDeleteWhere];\n [g11.modify.name]: [T12.UpdateOperationModify];\n [g11.graphRef.name]: [T12.TermIri];\n [g11.graphRefAll.name]: [T12.GraphRef];\n [g11.quads.name]: [Wrap<T12.Quads[]>];\n [g11.quadsNotTriples.name]: [T12.GraphQuads];\n\n [g11.aggregate.name]: [ T12.ExpressionAggregate ];\n\n [g11.datasetClauseStar.name]: [ T12.DatasetClauses ];\n [g11.usingClauseStar.name]: [ T12.DatasetClauses ];\n\n // [g11.datasetClause.name]: unchanged;\n [g11.argList.name]: [ Patch<g11.IArgList, { args: T12.Expression[] }> ];\n [g11.expression.name]: [ T12.Expression ];\n [g11.iriOrFunction.name]: [T12.TermIri | T12.ExpressionFunctionCall];\n\n [g11.prologue.name]: [ T12.ContextDefinition[] ];\n [g11.prefixDecl.name]: [ T12.ContextDefinitionPrefix ];\n [g11.baseDecl.name]: [ T12.ContextDefinitionBase ];\n // [g11.var_.name]: unchanged;\n [g11.varOrTerm.name]: [ T12.Term ];\n [g11.graphTerm.name]: [ T12.GraphTerm ];\n\n [g11.rdfLiteral.name]: [T12.TermLiteral];\n // [g11.string.name]: unchanged;\n // [g11.iri.name]: unchanged;\n // [g11.iriFull.name]: unchanged;\n // [g11.prefixedName.name]: unchanged;\n // [g11.blankNode.name]: unchanged;\n\n // [g11.path.name]: unchanged;\n //\n [g11.solutionModifier.name]: [ T12.SolutionModifiers ];\n [g11.groupClause.name]: [ T12.SolutionModifierGroup ];\n [g11.havingClause.name]: [ T12.SolutionModifierHaving ];\n [g11.orderClause.name]: [ T12.SolutionModifierOrder ];\n [g11.limitOffsetClauses.name]: [ T12.SolutionModifierLimitOffset ];\n\n [g11.triplesBlock.name]: [ T12.PatternBgp ];\n [g11.collectionPath.name]: [ T12.TripleCollectionList ];\n [g11.blankNodePropertyListPath.name]: [ T12.TripleCollectionBlankNodeProperties ];\n [g11.triplesNodePath.name]: [ T12.TripleCollection ];\n [g11.graphNodePath.name]: [ T12.Term | T12.TripleCollection ];\n\n [g11.whereClause.name]: [ Wrap<T12.PatternGroup> ];\n [g11.generatePattern.name]: [ T12.Pattern ];\n [g11.groupGraphPattern.name]: [ T12.PatternGroup ];\n [g11.graphPatternNotTriples.name]: [ Exclude<T12.Pattern, T12.SubSelect | T12.PatternBgp> ];\n [g11.optionalGraphPattern.name]: [ T12.PatternOptional ];\n [g11.graphGraphPattern.name]: [ T12.PatternGroup ];\n [g11.serviceGraphPattern.name]: [ T12.PatternService ];\n [g11.bind.name]: [ T12.PatternBind ];\n [g11.inlineData.name]: [ T12.PatternValues ];\n [g11.minusGraphPattern.name]: [ T12.PatternMinus ];\n [g11.groupOrUnionGraphPattern.name]: [ T12.PatternGroup | T12.PatternUnion ];\n [g11.filter.name]: [ T12.PatternFilter ];\n }>()\n .addRule(g12.tripleTerm)\n .addRule(g12.reifiedTriple)\n .patchRule(g12.graphNodePath)\n .addRule(g12.annotationBlockPath)\n .addRule(g12.annotationPath)\n .addRule(g12.versionDecl)\n .patchRule(g12.prologue)\n .patchRule(g12.generateTriplesBlock)\n .patchRule(g12.generateGraphTerm);\n\nexport type SparqlGenerator = ReturnType<typeof sparql12GeneratorBuilder.build>;\n\n/**\n * Generator that can generate a SPARQL 1.2 query string given a SPARQL 1.2 Traqula AST.\n */\nexport class Generator {\n protected readonly defaultContext: T12.SparqlGeneratorContext;\n public constructor(defaultContext: Partial<T12.SparqlGeneratorContext> = {}) {\n this.defaultContext = completeGeneratorContext(defaultContext);\n }\n\n private readonly generator: SparqlGenerator = sparql12GeneratorBuilder.build();\n\n /**\n * Generates a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql12-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql12-query/#rUpdateUnit) rules.\n * @param ast\n * @param context\n */\n public generate(ast: T12.Query | T12.Update, context: Partial<T12.SparqlGeneratorContext> = {}): string {\n return this.generator.queryOrUpdate(ast, { ...this.defaultContext, ...context }).trim();\n }\n\n /**\n * Generates a query string starting from the [Path](https://www.w3.org/TR/sparql12-query/#rPath) grammar rule.\n * @param ast\n * @param context\n */\n public generatePath(ast: T12.Path, context: Partial<T12.SparqlGeneratorContext> = {}): string {\n return this.generator.path(ast, { ...this.defaultContext, ...context }, undefined).trim();\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@traqula/generator-sparql-1-2",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"description": "SPARQL 1.2 generator",
|
|
6
6
|
"lsd:module": true,
|
|
7
7
|
"license": "MIT",
|
|
@@ -41,14 +41,14 @@
|
|
|
41
41
|
"build:cjs": "node \"../../node_modules/typescript/bin/tsc\" -b tsconfig.cjs.json"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@traqula/core": "^0.0
|
|
45
|
-
"@traqula/generator-sparql-1-1": "^0.0
|
|
46
|
-
"@traqula/rules-sparql-1-1": "^0.0
|
|
47
|
-
"@traqula/rules-sparql-1-2": "^0.0
|
|
44
|
+
"@traqula/core": "^1.0.0",
|
|
45
|
+
"@traqula/generator-sparql-1-1": "^1.0.0",
|
|
46
|
+
"@traqula/rules-sparql-1-1": "^1.0.0",
|
|
47
|
+
"@traqula/rules-sparql-1-2": "^1.0.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@traqula/parser-sparql-1-2": "^0.0
|
|
51
|
-
"@traqula/test-utils": "^0.0
|
|
50
|
+
"@traqula/parser-sparql-1-2": "^1.0.0",
|
|
51
|
+
"@traqula/test-utils": "^1.0.0"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "9e648d6d9081a3b4f994599fa22116414914746f"
|
|
54
54
|
}
|