@traqula/generator-sparql-1-1 0.0.23 → 0.0.25

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 CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  # Traqula SPARQL 1.1 generator
10
10
 
11
+ [![npm version](https://badge.fury.io/js/@traqula%2Fgenerator-sparql-1-1.svg)](https://www.npmjs.com/package/@traqula/generator-sparql-1-1)
12
+
11
13
  Traqula Generator Sparql 1.1 is a [SPARQL 1.1](https://www.w3.org/TR/sparql11-query/#grammar) query generator for TypeScript.
12
14
  It can generate SPARQL given the AST created by [Traqula parser SPARQL 1-1](https://github.com/comunica/traqula/tree/main/engines/parser-sparql-1-1).
13
15
 
@@ -1,54 +1,54 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var lib_exports = {};
20
- __export(lib_exports, {
21
- Generator: () => Generator,
22
- sparql11GeneratorBuilder: () => sparql11GeneratorBuilder
23
- });
24
- module.exports = __toCommonJS(lib_exports);
25
- var import_core = require("@traqula/core");
26
- var import_rules_sparql_1_1 = require("@traqula/rules-sparql-1-1");
27
- const sparql11GeneratorBuilder = import_core.GeneratorBuilder.create([
28
- import_rules_sparql_1_1.gram.queryOrUpdate,
29
- import_rules_sparql_1_1.gram.query,
30
- import_rules_sparql_1_1.gram.selectQuery,
31
- import_rules_sparql_1_1.gram.constructQuery,
32
- import_rules_sparql_1_1.gram.describeQuery,
33
- import_rules_sparql_1_1.gram.askQuery,
34
- import_rules_sparql_1_1.gram.selectClause
35
- ]).addMany(import_rules_sparql_1_1.gram.update, import_rules_sparql_1_1.gram.update1, import_rules_sparql_1_1.gram.load, import_rules_sparql_1_1.gram.clear, import_rules_sparql_1_1.gram.drop, import_rules_sparql_1_1.gram.create, import_rules_sparql_1_1.gram.copy, import_rules_sparql_1_1.gram.move, import_rules_sparql_1_1.gram.add, import_rules_sparql_1_1.gram.insertData, import_rules_sparql_1_1.gram.deleteData, import_rules_sparql_1_1.gram.deleteWhere, import_rules_sparql_1_1.gram.modify, import_rules_sparql_1_1.gram.graphRef, import_rules_sparql_1_1.gram.graphRefAll, import_rules_sparql_1_1.gram.quads, import_rules_sparql_1_1.gram.quadsNotTriples).addRule(import_rules_sparql_1_1.gram.aggregate).addMany(import_rules_sparql_1_1.gram.datasetClauseStar, import_rules_sparql_1_1.gram.usingClauseStar).addMany(import_rules_sparql_1_1.gram.argList, import_rules_sparql_1_1.gram.expression, import_rules_sparql_1_1.gram.iriOrFunction).addMany(import_rules_sparql_1_1.gram.prologue, import_rules_sparql_1_1.gram.prefixDecl, import_rules_sparql_1_1.gram.baseDecl, import_rules_sparql_1_1.gram.varOrTerm, import_rules_sparql_1_1.gram.var_, import_rules_sparql_1_1.gram.graphTerm).addMany(import_rules_sparql_1_1.gram.rdfLiteral, import_rules_sparql_1_1.gram.iri, import_rules_sparql_1_1.gram.iriFull, import_rules_sparql_1_1.gram.prefixedName, import_rules_sparql_1_1.gram.blankNode).addRule(import_rules_sparql_1_1.gram.pathGenerator).addMany(import_rules_sparql_1_1.gram.solutionModifier, import_rules_sparql_1_1.gram.groupClause, import_rules_sparql_1_1.gram.havingClause, import_rules_sparql_1_1.gram.orderClause, import_rules_sparql_1_1.gram.limitOffsetClauses).addMany(import_rules_sparql_1_1.gram.triplesBlock, import_rules_sparql_1_1.gram.collectionPath, import_rules_sparql_1_1.gram.blankNodePropertyListPath, import_rules_sparql_1_1.gram.triplesNodePath, import_rules_sparql_1_1.gram.graphNodePath).addMany(import_rules_sparql_1_1.gram.whereClause, import_rules_sparql_1_1.gram.generatePattern, import_rules_sparql_1_1.gram.groupGraphPattern, import_rules_sparql_1_1.gram.graphPatternNotTriples, import_rules_sparql_1_1.gram.optionalGraphPattern, import_rules_sparql_1_1.gram.graphGraphPattern, import_rules_sparql_1_1.gram.serviceGraphPattern, import_rules_sparql_1_1.gram.bind, import_rules_sparql_1_1.gram.inlineData, import_rules_sparql_1_1.gram.minusGraphPattern, import_rules_sparql_1_1.gram.groupOrUnionGraphPattern, import_rules_sparql_1_1.gram.filter);
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Generator = exports.sparql11GeneratorBuilder = void 0;
4
+ const core_1 = require("@traqula/core");
5
+ const rules_sparql_1_1_1 = require("@traqula/rules-sparql-1-1");
6
+ exports.sparql11GeneratorBuilder = core_1.GeneratorBuilder.create([
7
+ rules_sparql_1_1_1.gram.queryOrUpdate,
8
+ rules_sparql_1_1_1.gram.query,
9
+ rules_sparql_1_1_1.gram.selectQuery,
10
+ rules_sparql_1_1_1.gram.constructQuery,
11
+ rules_sparql_1_1_1.gram.describeQuery,
12
+ rules_sparql_1_1_1.gram.askQuery,
13
+ rules_sparql_1_1_1.gram.selectClause,
14
+ ])
15
+ .addMany(rules_sparql_1_1_1.gram.update, rules_sparql_1_1_1.gram.update1, rules_sparql_1_1_1.gram.load, rules_sparql_1_1_1.gram.clear, rules_sparql_1_1_1.gram.drop, rules_sparql_1_1_1.gram.create, rules_sparql_1_1_1.gram.copy, rules_sparql_1_1_1.gram.move, rules_sparql_1_1_1.gram.add, rules_sparql_1_1_1.gram.insertData, rules_sparql_1_1_1.gram.deleteData, rules_sparql_1_1_1.gram.deleteWhere, rules_sparql_1_1_1.gram.modify, rules_sparql_1_1_1.gram.graphRef, rules_sparql_1_1_1.gram.graphRefAll, rules_sparql_1_1_1.gram.quads, rules_sparql_1_1_1.gram.quadsNotTriples)
16
+ .addRule(rules_sparql_1_1_1.gram.aggregate)
17
+ .addMany(rules_sparql_1_1_1.gram.datasetClauseStar, rules_sparql_1_1_1.gram.usingClauseStar)
18
+ .addMany(rules_sparql_1_1_1.gram.argList, rules_sparql_1_1_1.gram.expression, rules_sparql_1_1_1.gram.iriOrFunction)
19
+ .addMany(rules_sparql_1_1_1.gram.prologue, rules_sparql_1_1_1.gram.prefixDecl, rules_sparql_1_1_1.gram.baseDecl, rules_sparql_1_1_1.gram.varOrTerm, rules_sparql_1_1_1.gram.var_, rules_sparql_1_1_1.gram.graphTerm)
20
+ .addMany(rules_sparql_1_1_1.gram.rdfLiteral, rules_sparql_1_1_1.gram.iri, rules_sparql_1_1_1.gram.iriFull, rules_sparql_1_1_1.gram.prefixedName, rules_sparql_1_1_1.gram.blankNode)
21
+ .addRule(rules_sparql_1_1_1.gram.pathGenerator)
22
+ .addMany(rules_sparql_1_1_1.gram.solutionModifier, rules_sparql_1_1_1.gram.groupClause, rules_sparql_1_1_1.gram.havingClause, rules_sparql_1_1_1.gram.orderClause, rules_sparql_1_1_1.gram.limitOffsetClauses)
23
+ .addMany(rules_sparql_1_1_1.gram.triplesBlock, rules_sparql_1_1_1.gram.collectionPath, rules_sparql_1_1_1.gram.blankNodePropertyListPath, rules_sparql_1_1_1.gram.triplesNodePath, rules_sparql_1_1_1.gram.graphNodePath)
24
+ .addMany(rules_sparql_1_1_1.gram.whereClause, rules_sparql_1_1_1.gram.generatePattern, rules_sparql_1_1_1.gram.groupGraphPattern, rules_sparql_1_1_1.gram.graphPatternNotTriples, rules_sparql_1_1_1.gram.optionalGraphPattern, rules_sparql_1_1_1.gram.graphGraphPattern, rules_sparql_1_1_1.gram.serviceGraphPattern, rules_sparql_1_1_1.gram.bind, rules_sparql_1_1_1.gram.inlineData, rules_sparql_1_1_1.gram.minusGraphPattern, rules_sparql_1_1_1.gram.groupOrUnionGraphPattern, rules_sparql_1_1_1.gram.filter);
25
+ /**
26
+ * Generator that can generate a SPARQL 1.1 query string given a SPARQL 1.1 Traqula AST.
27
+ */
36
28
  class Generator {
37
- defaultContext;
38
- constructor(defaultContext = {}) {
39
- this.defaultContext = defaultContext;
40
- }
41
- generator = sparql11GeneratorBuilder.build();
42
- factory = new import_rules_sparql_1_1.AstFactory();
43
- generate(ast, context = {}) {
44
- return this.generator.queryOrUpdate(ast, (0, import_rules_sparql_1_1.completeParseContext)({ ...this.defaultContext, ...context })).trim();
45
- }
46
- generatePath(ast, context = {}) {
47
- return this.generator.path(ast, (0, import_rules_sparql_1_1.completeParseContext)({ ...this.defaultContext, ...context }), void 0).trim();
48
- }
29
+ defaultContext;
30
+ constructor(defaultContext = {}) {
31
+ this.defaultContext = (0, rules_sparql_1_1_1.completeGeneratorContext)(defaultContext);
32
+ }
33
+ generator = exports.sparql11GeneratorBuilder.build();
34
+ /**
35
+ * Generates a query string starting from the
36
+ * [QueryUnit](https://www.w3.org/TR/sparql11-query/#rQueryUnit)
37
+ * or [QueryUpdate](https://www.w3.org/TR/sparql11-query/#rUpdateUnit) rules.
38
+ * @param ast
39
+ * @param context
40
+ */
41
+ generate(ast, context = {}) {
42
+ return this.generator.queryOrUpdate(ast, { ...this.defaultContext, ...context }).trim();
43
+ }
44
+ /**
45
+ * Generates a query string starting from the [Path](https://www.w3.org/TR/sparql11-query/#rPath) grammar rule.
46
+ * @param ast
47
+ * @param context
48
+ */
49
+ generatePath(ast, context = {}) {
50
+ return this.generator.path(ast, (0, rules_sparql_1_1_1.completeGeneratorContext)({ ...this.defaultContext, ...context }), undefined).trim();
51
+ }
49
52
  }
50
- // Annotate the CommonJS export names for ESM import in node:
51
- 0 && (module.exports = {
52
- Generator,
53
- sparql11GeneratorBuilder
54
- });
53
+ exports.Generator = Generator;
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AAEjD,gEAA2E;AAE9D,QAAA,wBAAwB,GAAG,uBAAgB,CAAC,MAAM,CAAS;IACtE,uBAAI,CAAC,aAAa;IAClB,uBAAI,CAAC,KAAK;IACV,uBAAI,CAAC,WAAW;IAChB,uBAAI,CAAC,cAAc;IACnB,uBAAI,CAAC,aAAa;IAClB,uBAAI,CAAC,QAAQ;IACb,uBAAI,CAAC,YAAY;CAClB,CAAC;KACC,OAAO,CACN,uBAAI,CAAC,MAAM,EACX,uBAAI,CAAC,OAAO,EACZ,uBAAI,CAAC,IAAI,EACT,uBAAI,CAAC,KAAK,EACV,uBAAI,CAAC,IAAI,EACT,uBAAI,CAAC,MAAM,EACX,uBAAI,CAAC,IAAI,EACT,uBAAI,CAAC,IAAI,EACT,uBAAI,CAAC,GAAG,EACR,uBAAI,CAAC,UAAU,EACf,uBAAI,CAAC,UAAU,EACf,uBAAI,CAAC,WAAW,EAChB,uBAAI,CAAC,MAAM,EACX,uBAAI,CAAC,QAAQ,EACb,uBAAI,CAAC,WAAW,EAChB,uBAAI,CAAC,KAAK,EACV,uBAAI,CAAC,eAAe,CACrB;KACA,OAAO,CAAC,uBAAI,CAAC,SAAS,CAAC;KACvB,OAAO,CACN,uBAAI,CAAC,iBAAiB,EACtB,uBAAI,CAAC,eAAe,CACrB;KACA,OAAO,CACN,uBAAI,CAAC,OAAO,EACZ,uBAAI,CAAC,UAAU,EACf,uBAAI,CAAC,aAAa,CACnB;KACA,OAAO,CACN,uBAAI,CAAC,QAAQ,EACb,uBAAI,CAAC,UAAU,EACf,uBAAI,CAAC,QAAQ,EACb,uBAAI,CAAC,SAAS,EACd,uBAAI,CAAC,IAAI,EACT,uBAAI,CAAC,SAAS,CACf;KACA,OAAO,CACN,uBAAI,CAAC,UAAU,EACf,uBAAI,CAAC,GAAG,EACR,uBAAI,CAAC,OAAO,EACZ,uBAAI,CAAC,YAAY,EACjB,uBAAI,CAAC,SAAS,CACf;KACA,OAAO,CAAC,uBAAI,CAAC,aAAa,CAAC;KAC3B,OAAO,CACN,uBAAI,CAAC,gBAAgB,EACrB,uBAAI,CAAC,WAAW,EAChB,uBAAI,CAAC,YAAY,EACjB,uBAAI,CAAC,WAAW,EAChB,uBAAI,CAAC,kBAAkB,CACxB;KACA,OAAO,CACN,uBAAI,CAAC,YAAY,EACjB,uBAAI,CAAC,cAAc,EACnB,uBAAI,CAAC,yBAAyB,EAC9B,uBAAI,CAAC,eAAe,EACpB,uBAAI,CAAC,aAAa,CACnB;KACA,OAAO,CACN,uBAAI,CAAC,WAAW,EAChB,uBAAI,CAAC,eAAe,EACpB,uBAAI,CAAC,iBAAiB,EACtB,uBAAI,CAAC,sBAAsB,EAC3B,uBAAI,CAAC,oBAAoB,EACzB,uBAAI,CAAC,iBAAiB,EACtB,uBAAI,CAAC,mBAAmB,EACxB,uBAAI,CAAC,IAAI,EACT,uBAAI,CAAC,UAAU,EACf,uBAAI,CAAC,iBAAiB,EACtB,uBAAI,CAAC,wBAAwB,EAC7B,uBAAI,CAAC,MAAM,CACZ,CAAC;AAIJ;;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,IAAA,2CAAwB,EAAC,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IACtH,CAAC;CACF;AA3BD,8BA2BC","sourcesContent":["import { GeneratorBuilder } from '@traqula/core';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { gram, completeGeneratorContext } from '@traqula/rules-sparql-1-1';\n\nexport const sparql11GeneratorBuilder = GeneratorBuilder.create(<const> [\n gram.queryOrUpdate,\n gram.query,\n gram.selectQuery,\n gram.constructQuery,\n gram.describeQuery,\n gram.askQuery,\n gram.selectClause,\n])\n .addMany(\n gram.update,\n gram.update1,\n gram.load,\n gram.clear,\n gram.drop,\n gram.create,\n gram.copy,\n gram.move,\n gram.add,\n gram.insertData,\n gram.deleteData,\n gram.deleteWhere,\n gram.modify,\n gram.graphRef,\n gram.graphRefAll,\n gram.quads,\n gram.quadsNotTriples,\n )\n .addRule(gram.aggregate)\n .addMany(\n gram.datasetClauseStar,\n gram.usingClauseStar,\n )\n .addMany(\n gram.argList,\n gram.expression,\n gram.iriOrFunction,\n )\n .addMany(\n gram.prologue,\n gram.prefixDecl,\n gram.baseDecl,\n gram.varOrTerm,\n gram.var_,\n gram.graphTerm,\n )\n .addMany(\n gram.rdfLiteral,\n gram.iri,\n gram.iriFull,\n gram.prefixedName,\n gram.blankNode,\n )\n .addRule(gram.pathGenerator)\n .addMany(\n gram.solutionModifier,\n gram.groupClause,\n gram.havingClause,\n gram.orderClause,\n gram.limitOffsetClauses,\n )\n .addMany(\n gram.triplesBlock,\n gram.collectionPath,\n gram.blankNodePropertyListPath,\n gram.triplesNodePath,\n gram.graphNodePath,\n )\n .addMany(\n gram.whereClause,\n gram.generatePattern,\n gram.groupGraphPattern,\n gram.graphPatternNotTriples,\n gram.optionalGraphPattern,\n gram.graphGraphPattern,\n gram.serviceGraphPattern,\n gram.bind,\n gram.inlineData,\n gram.minusGraphPattern,\n gram.groupOrUnionGraphPattern,\n gram.filter,\n );\n\nexport type SparqlGenerator = ReturnType<typeof sparql11GeneratorBuilder.build>;\n\n/**\n * Generator that can generate a SPARQL 1.1 query string given a SPARQL 1.1 Traqula AST.\n */\nexport class Generator {\n protected readonly defaultContext: T11.SparqlGeneratorContext;\n public constructor(defaultContext: Partial<T11.SparqlGeneratorContext> = {}) {\n this.defaultContext = completeGeneratorContext(defaultContext);\n }\n\n private readonly generator: SparqlGenerator = sparql11GeneratorBuilder.build();\n\n /**\n * Generates a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql11-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql11-query/#rUpdateUnit) rules.\n * @param ast\n * @param context\n */\n public generate(ast: T11.Query | T11.Update, context: Partial<T11.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/sparql11-query/#rPath) grammar rule.\n * @param ast\n * @param context\n */\n public generatePath(ast: T11.Path, context: Partial<T11.SparqlGeneratorContext> = {}): string {\n return this.generator.path(ast, completeGeneratorContext({ ...this.defaultContext, ...context }), undefined).trim();\n }\n}\n"]}
@@ -1,62 +1,44 @@
1
1
  import { GeneratorBuilder } from '@traqula/core';
2
2
  import type * as T11 from '@traqula/rules-sparql-1-1';
3
- export declare const sparql11GeneratorBuilder: GeneratorBuilder<T11.SparqlGeneratorContext, "filter" | "copy" | "graphRef" | "load" | "clear" | "drop" | "create" | "add" | "move" | "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" | "generatePattern" | "graphPatternNotTriples" | "optionalGraphPattern" | "graphGraphPattern" | "serviceGraphPattern" | "inlineData" | "minusGraphPattern" | "groupOrUnionGraphPattern" | "queryOrUpdate", {
4
- filter: import("@traqula/core").GeneratorRule<any, "filter"> & T11.SparqlGrammarRule<"filter", T11.PatternFilter, []> & T11.SparqlGeneratorRule<"filter", T11.PatternFilter, []>;
5
- copy: import("@traqula/core").GeneratorRule<any, "copy"> & T11.SparqlGrammarRule<"copy", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []> & T11.SparqlGeneratorRule<"copy", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []>;
6
- graphRef: import("@traqula/core").GeneratorRule<any, "graphRef"> & T11.SparqlGrammarRule<"graphRef", T11.GraphRefSpecific, []> & T11.SparqlGeneratorRule<"graphRef", T11.GraphRefSpecific, []>;
7
- load: import("@traqula/core").GeneratorRule<any, "load"> & T11.SparqlGrammarRule<"load", T11.UpdateOperationLoad, []> & T11.SparqlGeneratorRule<"load", T11.UpdateOperationLoad, []>;
8
- clear: import("@traqula/core").GeneratorRule<any, "clear"> & T11.SparqlGrammarRule<"clear", T11.UpdateOperationClear | T11.UpdateOperationDrop, []> & T11.SparqlGeneratorRule<"clear", T11.UpdateOperationClear | T11.UpdateOperationDrop, []>;
9
- drop: import("@traqula/core").GeneratorRule<any, "drop"> & T11.SparqlGrammarRule<"drop", T11.UpdateOperationClear | T11.UpdateOperationDrop, []> & T11.SparqlGeneratorRule<"drop", T11.UpdateOperationClear | T11.UpdateOperationDrop, []>;
10
- create: import("@traqula/core").GeneratorRule<any, "create"> & T11.SparqlGrammarRule<"create", T11.UpdateOperationCreate, []> & T11.SparqlGeneratorRule<"create", T11.UpdateOperationCreate, []>;
11
- add: import("@traqula/core").GeneratorRule<any, "add"> & T11.SparqlGrammarRule<"add", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []> & T11.SparqlGeneratorRule<"add", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []>;
12
- move: import("@traqula/core").GeneratorRule<any, "move"> & T11.SparqlGrammarRule<"move", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []> & T11.SparqlGeneratorRule<"move", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []>;
13
- modify: import("@traqula/core").GeneratorRule<any, "modify"> & T11.SparqlGrammarRule<"modify", T11.UpdateOperationModify, []> & T11.SparqlGeneratorRule<"modify", T11.UpdateOperationModify, []>;
14
- update: import("@traqula/core").GeneratorRule<any, "update"> & T11.SparqlGrammarRule<"update", T11.Update, []> & T11.SparqlGeneratorRule<"update", T11.Update, []>;
3
+ export declare const sparql11GeneratorBuilder: GeneratorBuilder<T11.SparqlGeneratorContext, "path" | "queryOrUpdate" | "triplesBlock" | "blankNode" | "collectionPath" | "triplesNodePath" | "blankNodePropertyListPath" | "graphNodePath" | "query" | "expression" | "aggregate" | "argList" | "iriOrFunction" | "var" | "rdfLiteral" | "iri" | "prefixedName" | "varOrTerm" | "graphTerm" | "iriFull" | "datasetClauses" | "filter" | "bind" | "solutionModifier" | "selectQuery" | "selectClause" | "constructQuery" | "describeQuery" | "askQuery" | "prologue" | "baseDecl" | "prefixDecl" | "groupClause" | "havingClause" | "orderClause" | "limitOffsetClauses" | "whereClause" | "groupGraphPattern" | "graphPatternNotTriples" | "optionalGraphPattern" | "graphGraphPattern" | "serviceGraphPattern" | "inlineData" | "minusGraphPattern" | "groupOrUnionGraphPattern" | "graphRef" | "load" | "clear" | "drop" | "create" | "add" | "move" | "copy" | "modify" | "update" | "update1" | "insertData" | "deleteData" | "deleteWhere" | "graphRefAll" | "quads" | "quadsNotTriples" | "usingClauses" | "generatePattern", {
4
+ path: import("@traqula/core").GeneratorRule<T11.SparqlGeneratorContext, "path", T11.Path, [boolean | undefined]>;
5
+ queryOrUpdate: import("@traqula/core").GeneratorRule<any, "queryOrUpdate"> & T11.SparqlGrammarRule<"queryOrUpdate", T11.SparqlQuery, []> & T11.SparqlGeneratorRule<"queryOrUpdate", T11.SparqlQuery, []>;
6
+ triplesBlock: import("@traqula/core").GeneratorRule<any, "triplesBlock"> & T11.SparqlGrammarRule<"triplesBlock", T11.PatternBgp, []> & T11.SparqlGeneratorRule<"triplesBlock", T11.PatternBgp, []>;
7
+ blankNode: import("@traqula/core").GeneratorRule<any, "blankNode"> & T11.SparqlGrammarRule<"blankNode", T11.TermBlank, []> & T11.SparqlGeneratorRule<"blankNode", T11.TermBlank, []>;
8
+ collectionPath: import("@traqula/core").GeneratorRule<any, "collectionPath"> & T11.SparqlGrammarRule<"collectionPath", T11.TripleCollectionList, []> & T11.SparqlGeneratorRule<"collectionPath", T11.TripleCollectionList, []>;
9
+ triplesNodePath: import("@traqula/core").GeneratorRule<any, "triplesNodePath"> & T11.SparqlGrammarRule<"triplesNodePath", T11.TripleCollection, []> & T11.SparqlGeneratorRule<"triplesNodePath", T11.TripleCollection, []>;
10
+ blankNodePropertyListPath: import("@traqula/core").GeneratorRule<any, "blankNodePropertyListPath"> & T11.SparqlGrammarRule<"blankNodePropertyListPath", T11.TripleCollectionBlankNodeProperties, []> & T11.SparqlGeneratorRule<"blankNodePropertyListPath", T11.TripleCollectionBlankNodeProperties, []>;
11
+ graphNodePath: import("@traqula/core").GeneratorRule<any, "graphNodePath"> & T11.SparqlGrammarRule<"graphNodePath", T11.Term | T11.TripleCollection, []> & T11.SparqlGeneratorRule<"graphNodePath", T11.Term | T11.TripleCollection, []>;
15
12
  query: import("@traqula/core").GeneratorRule<any, "query"> & T11.SparqlGrammarRule<"query", T11.Query, []> & T11.SparqlGeneratorRule<"query", T11.Query, []>;
13
+ expression: import("@traqula/core").GeneratorRule<any, "expression"> & T11.SparqlGrammarRule<"expression", T11.Expression, []> & T11.SparqlGeneratorRule<"expression", T11.Expression, []>;
14
+ aggregate: import("@traqula/core").GeneratorRule<T11.SparqlGeneratorContext, "aggregate", T11.ExpressionAggregate, []>;
15
+ argList: import("@traqula/core").GeneratorRule<any, "argList"> & T11.SparqlGrammarRule<"argList", import("@traqula/core").Wrap<T11.gram.IArgList>, []> & T11.SparqlGeneratorRule<"argList", import("@traqula/core").Wrap<T11.gram.IArgList>, []>;
16
+ iriOrFunction: import("@traqula/core").GeneratorRule<any, "iriOrFunction"> & T11.SparqlGrammarRule<"iriOrFunction", T11.TermIri | T11.ExpressionFunctionCall, []> & T11.SparqlGeneratorRule<"iriOrFunction", T11.TermIri | T11.ExpressionFunctionCall, []>;
17
+ var: import("@traqula/core").GeneratorRule<any, "var"> & T11.SparqlGrammarRule<"var", T11.TermVariable, []> & T11.SparqlGeneratorRule<"var", T11.TermVariable, []>;
18
+ rdfLiteral: import("@traqula/core").GeneratorRule<any, "rdfLiteral"> & T11.SparqlGrammarRule<"rdfLiteral", T11.TermLiteral, []> & T11.SparqlGeneratorRule<"rdfLiteral", T11.TermLiteral, []>;
19
+ iri: import("@traqula/core").GeneratorRule<any, "iri"> & T11.SparqlGrammarRule<"iri", T11.TermIri, []> & T11.SparqlGeneratorRule<"iri", T11.TermIri, []>;
20
+ prefixedName: import("@traqula/core").GeneratorRule<any, "prefixedName"> & T11.SparqlGrammarRule<"prefixedName", T11.TermIriPrefixed, []> & T11.SparqlGeneratorRule<"prefixedName", T11.TermIriPrefixed, []>;
21
+ varOrTerm: import("@traqula/core").GeneratorRule<any, "varOrTerm"> & T11.SparqlGrammarRule<"varOrTerm", T11.Term, []> & T11.SparqlGeneratorRule<"varOrTerm", T11.Term, []>;
22
+ graphTerm: import("@traqula/core").GeneratorRule<any, "graphTerm"> & T11.SparqlGrammarRule<"graphTerm", T11.GraphTerm, []> & T11.SparqlGeneratorRule<"graphTerm", T11.GraphTerm, []>;
23
+ iriFull: import("@traqula/core").GeneratorRule<any, "iriFull"> & T11.SparqlGrammarRule<"iriFull", T11.TermIriFull, []> & T11.SparqlGeneratorRule<"iriFull", T11.TermIriFull, []>;
16
24
  datasetClauses: import("@traqula/core").GeneratorRule<any, "datasetClauses"> & T11.SparqlGrammarRule<"datasetClauses", T11.DatasetClauses, []> & T11.SparqlGeneratorRule<"datasetClauses", T11.DatasetClauses, []>;
25
+ filter: import("@traqula/core").GeneratorRule<any, "filter"> & T11.SparqlGrammarRule<"filter", T11.PatternFilter, []> & T11.SparqlGeneratorRule<"filter", T11.PatternFilter, []>;
17
26
  bind: import("@traqula/core").GeneratorRule<any, "bind"> & T11.SparqlGrammarRule<"bind", T11.PatternBind, []> & T11.SparqlGeneratorRule<"bind", T11.PatternBind, []>;
18
27
  solutionModifier: import("@traqula/core").GeneratorRule<any, "solutionModifier"> & T11.SparqlGrammarRule<"solutionModifier", T11.SolutionModifiers, []> & T11.SparqlGeneratorRule<"solutionModifier", T11.SolutionModifiers, []>;
19
- expression: import("@traqula/core").GeneratorRule<any, "expression"> & T11.SparqlGrammarRule<"expression", T11.Expression, []> & T11.SparqlGeneratorRule<"expression", T11.Expression, []>;
20
- aggregate: import("@traqula/core").GeneratorRule<T11.SparqlGeneratorContext, "aggregate", T11.ExpressionAggregate, []>;
21
- path: import("@traqula/core").GeneratorRule<T11.SparqlGeneratorContext, "path", T11.Path, [boolean | undefined]>;
22
- blankNode: import("@traqula/core").GeneratorRule<any, "blankNode"> & T11.SparqlGrammarRule<"blankNode", T11.TermBlank, []> & T11.SparqlGeneratorRule<"blankNode", T11.TermBlank, []>;
23
28
  selectQuery: import("@traqula/core").GeneratorRule<any, "selectQuery"> & T11.SparqlGrammarRule<"selectQuery", Omit<T11.QuerySelect, T11.gram.HandledByBase>, []> & T11.SparqlGeneratorRule<"selectQuery", Omit<T11.QuerySelect, T11.gram.HandledByBase>, []>;
24
29
  selectClause: import("@traqula/core").GeneratorRule<any, "selectClause"> & T11.SparqlGrammarRule<"selectClause", import("@traqula/core").Wrap<Pick<T11.QuerySelect, "variables" | "distinct" | "reduced">>, []> & T11.SparqlGeneratorRule<"selectClause", import("@traqula/core").Wrap<Pick<T11.QuerySelect, "variables" | "distinct" | "reduced">>, []>;
25
30
  constructQuery: import("@traqula/core").GeneratorRule<any, "constructQuery"> & T11.SparqlGrammarRule<"constructQuery", Omit<T11.QueryConstruct, T11.gram.HandledByBase>, []> & T11.SparqlGeneratorRule<"constructQuery", Omit<T11.QueryConstruct, T11.gram.HandledByBase>, []>;
26
31
  describeQuery: import("@traqula/core").GeneratorRule<any, "describeQuery"> & T11.SparqlGrammarRule<"describeQuery", Omit<T11.QueryDescribe, T11.gram.HandledByBase>, []> & T11.SparqlGeneratorRule<"describeQuery", Omit<T11.QueryDescribe, T11.gram.HandledByBase>, []>;
27
32
  askQuery: import("@traqula/core").GeneratorRule<any, "askQuery"> & T11.SparqlGrammarRule<"askQuery", Omit<T11.QueryAsk, T11.gram.HandledByBase>, []> & T11.SparqlGeneratorRule<"askQuery", Omit<T11.QueryAsk, T11.gram.HandledByBase>, []>;
28
- update1: import("@traqula/core").GeneratorRule<any, "update1"> & T11.SparqlGrammarRule<"update1", T11.UpdateOperation, []> & T11.SparqlGeneratorRule<"update1", T11.UpdateOperation, []>;
29
- insertData: import("@traqula/core").GeneratorRule<any, "insertData"> & T11.SparqlGrammarRule<"insertData", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []> & T11.SparqlGeneratorRule<"insertData", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []>;
30
- deleteData: import("@traqula/core").GeneratorRule<any, "deleteData"> & T11.SparqlGrammarRule<"deleteData", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []> & T11.SparqlGeneratorRule<"deleteData", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []>;
31
- deleteWhere: import("@traqula/core").GeneratorRule<any, "deleteWhere"> & T11.SparqlGrammarRule<"deleteWhere", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []> & T11.SparqlGeneratorRule<"deleteWhere", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []>;
32
- graphRefAll: import("@traqula/core").GeneratorRule<any, "graphRefAll"> & T11.SparqlGrammarRule<"graphRefAll", T11.GraphRef, []> & T11.SparqlGeneratorRule<"graphRefAll", T11.GraphRef, []>;
33
- quads: import("@traqula/core").GeneratorRule<any, "quads"> & T11.SparqlGrammarRule<"quads", import("@traqula/core").Wrap<T11.Quads[]>, []> & T11.SparqlGeneratorRule<"quads", import("@traqula/core").Wrap<T11.Quads[]>, []>;
34
- quadsNotTriples: import("@traqula/core").GeneratorRule<any, "quadsNotTriples"> & T11.SparqlGrammarRule<"quadsNotTriples", T11.GraphQuads, []> & T11.SparqlGeneratorRule<"quadsNotTriples", T11.GraphQuads, []>;
35
- usingClauses: import("@traqula/core").GeneratorRule<any, "usingClauses"> & T11.SparqlGrammarRule<"usingClauses", T11.DatasetClauses, []> & T11.SparqlGeneratorRule<"usingClauses", T11.DatasetClauses, []>;
36
- argList: import("@traqula/core").GeneratorRule<any, "argList"> & T11.SparqlGrammarRule<"argList", import("@traqula/core").Wrap<T11.gram.IArgList>, []> & T11.SparqlGeneratorRule<"argList", import("@traqula/core").Wrap<T11.gram.IArgList>, []>;
37
- iriOrFunction: import("@traqula/core").GeneratorRule<any, "iriOrFunction"> & T11.SparqlGrammarRule<"iriOrFunction", T11.ExpressionFunctionCall | T11.TermIri, []> & T11.SparqlGeneratorRule<"iriOrFunction", T11.ExpressionFunctionCall | T11.TermIri, []>;
38
33
  prologue: import("@traqula/core").GeneratorRule<any, "prologue"> & T11.SparqlGrammarRule<"prologue", T11.ContextDefinition[], []> & T11.SparqlGeneratorRule<"prologue", T11.ContextDefinition[], []>;
39
34
  baseDecl: import("@traqula/core").GeneratorRule<any, "baseDecl"> & T11.SparqlGrammarRule<"baseDecl", T11.ContextDefinitionBase, []> & T11.SparqlGeneratorRule<"baseDecl", T11.ContextDefinitionBase, []>;
40
35
  prefixDecl: import("@traqula/core").GeneratorRule<any, "prefixDecl"> & T11.SparqlGrammarRule<"prefixDecl", T11.ContextDefinitionPrefix, []> & T11.SparqlGeneratorRule<"prefixDecl", T11.ContextDefinitionPrefix, []>;
41
- varOrTerm: import("@traqula/core").GeneratorRule<any, "varOrTerm"> & T11.SparqlGrammarRule<"varOrTerm", T11.Term, []> & T11.SparqlGeneratorRule<"varOrTerm", T11.Term, []>;
42
- var: import("@traqula/core").GeneratorRule<any, "var"> & T11.SparqlGrammarRule<"var", T11.TermVariable, []> & T11.SparqlGeneratorRule<"var", T11.TermVariable, []>;
43
- graphTerm: import("@traqula/core").GeneratorRule<any, "graphTerm"> & T11.SparqlGrammarRule<"graphTerm", T11.GraphTerm, []> & T11.SparqlGeneratorRule<"graphTerm", T11.GraphTerm, []>;
44
- rdfLiteral: import("@traqula/core").GeneratorRule<any, "rdfLiteral"> & T11.SparqlGrammarRule<"rdfLiteral", T11.TermLiteral, []> & T11.SparqlGeneratorRule<"rdfLiteral", T11.TermLiteral, []>;
45
- iri: import("@traqula/core").GeneratorRule<any, "iri"> & T11.SparqlGrammarRule<"iri", T11.TermIri, []> & T11.SparqlGeneratorRule<"iri", T11.TermIri, []>;
46
- iriFull: import("@traqula/core").GeneratorRule<any, "iriFull"> & T11.SparqlGrammarRule<"iriFull", T11.TermIriFull, []> & T11.SparqlGeneratorRule<"iriFull", T11.TermIriFull, []>;
47
- prefixedName: import("@traqula/core").GeneratorRule<any, "prefixedName"> & T11.SparqlGrammarRule<"prefixedName", T11.TermIriPrefixed, []> & T11.SparqlGeneratorRule<"prefixedName", T11.TermIriPrefixed, []>;
48
36
  groupClause: import("@traqula/core").GeneratorRule<any, "groupClause"> & T11.SparqlGrammarRule<"groupClause", T11.SolutionModifierGroup, []> & T11.SparqlGeneratorRule<"groupClause", T11.SolutionModifierGroup, []>;
49
37
  havingClause: import("@traqula/core").GeneratorRule<any, "havingClause"> & T11.SparqlGrammarRule<"havingClause", T11.SolutionModifierHaving, []> & T11.SparqlGeneratorRule<"havingClause", T11.SolutionModifierHaving, []>;
50
38
  orderClause: import("@traqula/core").GeneratorRule<any, "orderClause"> & T11.SparqlGrammarRule<"orderClause", T11.SolutionModifierOrder, []> & T11.SparqlGeneratorRule<"orderClause", T11.SolutionModifierOrder, []>;
51
39
  limitOffsetClauses: import("@traqula/core").GeneratorRule<any, "limitOffsetClauses"> & T11.SparqlGrammarRule<"limitOffsetClauses", T11.SolutionModifierLimitOffset, []> & T11.SparqlGeneratorRule<"limitOffsetClauses", T11.SolutionModifierLimitOffset, []>;
52
- triplesBlock: import("@traqula/core").GeneratorRule<any, "triplesBlock"> & T11.SparqlGrammarRule<"triplesBlock", T11.PatternBgp, []> & T11.SparqlGeneratorRule<"triplesBlock", T11.PatternBgp, []>;
53
- collectionPath: import("@traqula/core").GeneratorRule<any, "collectionPath"> & T11.SparqlGrammarRule<"collectionPath", T11.TripleCollectionList, []> & T11.SparqlGeneratorRule<"collectionPath", T11.TripleCollectionList, []>;
54
- triplesNodePath: import("@traqula/core").GeneratorRule<any, "triplesNodePath"> & T11.SparqlGrammarRule<"triplesNodePath", T11.TripleCollection, []> & T11.SparqlGeneratorRule<"triplesNodePath", T11.TripleCollection, []>;
55
- blankNodePropertyListPath: import("@traqula/core").GeneratorRule<any, "blankNodePropertyListPath"> & T11.SparqlGrammarRule<"blankNodePropertyListPath", T11.TripleCollectionBlankNodeProperties, []> & T11.SparqlGeneratorRule<"blankNodePropertyListPath", T11.TripleCollectionBlankNodeProperties, []>;
56
- graphNodePath: import("@traqula/core").GeneratorRule<any, "graphNodePath"> & T11.SparqlGrammarRule<"graphNodePath", T11.TripleCollection | T11.Term, []> & T11.SparqlGeneratorRule<"graphNodePath", T11.TripleCollection | T11.Term, []>;
57
40
  whereClause: import("@traqula/core").GeneratorRule<any, "whereClause"> & T11.SparqlGrammarRule<"whereClause", import("@traqula/core").Wrap<T11.PatternGroup>, []> & T11.SparqlGeneratorRule<"whereClause", import("@traqula/core").Wrap<T11.PatternGroup>, []>;
58
41
  groupGraphPattern: import("@traqula/core").GeneratorRule<any, "groupGraphPattern"> & T11.SparqlGrammarRule<"groupGraphPattern", T11.PatternGroup, []> & T11.SparqlGeneratorRule<"groupGraphPattern", T11.PatternGroup, []>;
59
- generatePattern: import("@traqula/core").GeneratorRule<any, "generatePattern"> & T11.SparqlGeneratorRule<"generatePattern", T11.Pattern>;
60
42
  graphPatternNotTriples: import("@traqula/core").GeneratorRule<any, "graphPatternNotTriples"> & T11.SparqlGrammarRule<"graphPatternNotTriples", T11.PatternGroup | T11.PatternUnion | T11.PatternOptional | T11.PatternMinus | T11.PatternGraph | T11.PatternService | T11.PatternFilter | T11.PatternBind | T11.PatternValues, []> & T11.SparqlGeneratorRule<"graphPatternNotTriples", T11.PatternGroup | T11.PatternUnion | T11.PatternOptional | T11.PatternMinus | T11.PatternGraph | T11.PatternService | T11.PatternFilter | T11.PatternBind | T11.PatternValues, []>;
61
43
  optionalGraphPattern: import("@traqula/core").GeneratorRule<any, "optionalGraphPattern"> & T11.SparqlGrammarRule<"optionalGraphPattern", T11.PatternOptional, []> & T11.SparqlGeneratorRule<"optionalGraphPattern", T11.PatternOptional, []>;
62
44
  graphGraphPattern: import("@traqula/core").GeneratorRule<any, "graphGraphPattern"> & T11.SparqlGrammarRule<"graphGraphPattern", T11.PatternGraph, []> & T11.SparqlGeneratorRule<"graphGraphPattern", T11.PatternGraph, []>;
@@ -64,14 +46,46 @@ export declare const sparql11GeneratorBuilder: GeneratorBuilder<T11.SparqlGenera
64
46
  inlineData: import("@traqula/core").GeneratorRule<any, "inlineData"> & T11.SparqlGrammarRule<"inlineData", T11.PatternValues, []> & T11.SparqlGeneratorRule<"inlineData", T11.PatternValues, []>;
65
47
  minusGraphPattern: import("@traqula/core").GeneratorRule<any, "minusGraphPattern"> & T11.SparqlGrammarRule<"minusGraphPattern", T11.PatternMinus, []> & T11.SparqlGeneratorRule<"minusGraphPattern", T11.PatternMinus, []>;
66
48
  groupOrUnionGraphPattern: import("@traqula/core").GeneratorRule<any, "groupOrUnionGraphPattern"> & T11.SparqlGrammarRule<"groupOrUnionGraphPattern", T11.PatternGroup | T11.PatternUnion, []> & T11.SparqlGeneratorRule<"groupOrUnionGraphPattern", T11.PatternGroup | T11.PatternUnion, []>;
67
- queryOrUpdate: import("@traqula/core").GeneratorRule<any, "queryOrUpdate"> & T11.SparqlGrammarRule<"queryOrUpdate", T11.SparqlQuery, []> & T11.SparqlGeneratorRule<"queryOrUpdate", T11.SparqlQuery, []>;
49
+ graphRef: import("@traqula/core").GeneratorRule<any, "graphRef"> & T11.SparqlGrammarRule<"graphRef", T11.GraphRefSpecific, []> & T11.SparqlGeneratorRule<"graphRef", T11.GraphRefSpecific, []>;
50
+ load: import("@traqula/core").GeneratorRule<any, "load"> & T11.SparqlGrammarRule<"load", T11.UpdateOperationLoad, []> & T11.SparqlGeneratorRule<"load", T11.UpdateOperationLoad, []>;
51
+ clear: import("@traqula/core").GeneratorRule<any, "clear"> & T11.SparqlGrammarRule<"clear", T11.UpdateOperationClear | T11.UpdateOperationDrop, []> & T11.SparqlGeneratorRule<"clear", T11.UpdateOperationClear | T11.UpdateOperationDrop, []>;
52
+ drop: import("@traqula/core").GeneratorRule<any, "drop"> & T11.SparqlGrammarRule<"drop", T11.UpdateOperationClear | T11.UpdateOperationDrop, []> & T11.SparqlGeneratorRule<"drop", T11.UpdateOperationClear | T11.UpdateOperationDrop, []>;
53
+ create: import("@traqula/core").GeneratorRule<any, "create"> & T11.SparqlGrammarRule<"create", T11.UpdateOperationCreate, []> & T11.SparqlGeneratorRule<"create", T11.UpdateOperationCreate, []>;
54
+ add: import("@traqula/core").GeneratorRule<any, "add"> & T11.SparqlGrammarRule<"add", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []> & T11.SparqlGeneratorRule<"add", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []>;
55
+ move: import("@traqula/core").GeneratorRule<any, "move"> & T11.SparqlGrammarRule<"move", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []> & T11.SparqlGeneratorRule<"move", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []>;
56
+ copy: import("@traqula/core").GeneratorRule<any, "copy"> & T11.SparqlGrammarRule<"copy", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []> & T11.SparqlGeneratorRule<"copy", T11.UpdateOperationAdd | T11.UpdateOperationMove | T11.UpdateOperationCopy, []>;
57
+ modify: import("@traqula/core").GeneratorRule<any, "modify"> & T11.SparqlGrammarRule<"modify", T11.UpdateOperationModify, []> & T11.SparqlGeneratorRule<"modify", T11.UpdateOperationModify, []>;
58
+ update: import("@traqula/core").GeneratorRule<any, "update"> & T11.SparqlGrammarRule<"update", T11.Update, []> & T11.SparqlGeneratorRule<"update", T11.Update, []>;
59
+ update1: import("@traqula/core").GeneratorRule<any, "update1"> & T11.SparqlGrammarRule<"update1", T11.UpdateOperation, []> & T11.SparqlGeneratorRule<"update1", T11.UpdateOperation, []>;
60
+ insertData: import("@traqula/core").GeneratorRule<any, "insertData"> & T11.SparqlGrammarRule<"insertData", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []> & T11.SparqlGeneratorRule<"insertData", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []>;
61
+ deleteData: import("@traqula/core").GeneratorRule<any, "deleteData"> & T11.SparqlGrammarRule<"deleteData", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []> & T11.SparqlGeneratorRule<"deleteData", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []>;
62
+ deleteWhere: import("@traqula/core").GeneratorRule<any, "deleteWhere"> & T11.SparqlGrammarRule<"deleteWhere", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []> & T11.SparqlGeneratorRule<"deleteWhere", T11.UpdateOperationInsertData | T11.UpdateOperationDeleteData | T11.UpdateOperationDeleteWhere, []>;
63
+ graphRefAll: import("@traqula/core").GeneratorRule<any, "graphRefAll"> & T11.SparqlGrammarRule<"graphRefAll", T11.GraphRef, []> & T11.SparqlGeneratorRule<"graphRefAll", T11.GraphRef, []>;
64
+ quads: import("@traqula/core").GeneratorRule<any, "quads"> & T11.SparqlGrammarRule<"quads", import("@traqula/core").Wrap<T11.Quads[]>, []> & T11.SparqlGeneratorRule<"quads", import("@traqula/core").Wrap<T11.Quads[]>, []>;
65
+ quadsNotTriples: import("@traqula/core").GeneratorRule<any, "quadsNotTriples"> & T11.SparqlGrammarRule<"quadsNotTriples", T11.GraphQuads, []> & T11.SparqlGeneratorRule<"quadsNotTriples", T11.GraphQuads, []>;
66
+ usingClauses: import("@traqula/core").GeneratorRule<any, "usingClauses"> & T11.SparqlGrammarRule<"usingClauses", T11.DatasetClauses, []> & T11.SparqlGeneratorRule<"usingClauses", T11.DatasetClauses, []>;
67
+ generatePattern: import("@traqula/core").GeneratorRule<any, "generatePattern"> & T11.SparqlGeneratorRule<"generatePattern", T11.Pattern>;
68
68
  }>;
69
69
  export type SparqlGenerator = ReturnType<typeof sparql11GeneratorBuilder.build>;
70
+ /**
71
+ * Generator that can generate a SPARQL 1.1 query string given a SPARQL 1.1 Traqula AST.
72
+ */
70
73
  export declare class Generator {
71
- private readonly defaultContext;
74
+ protected readonly defaultContext: T11.SparqlGeneratorContext;
72
75
  constructor(defaultContext?: Partial<T11.SparqlGeneratorContext>);
73
76
  private readonly generator;
74
- private readonly factory;
77
+ /**
78
+ * Generates a query string starting from the
79
+ * [QueryUnit](https://www.w3.org/TR/sparql11-query/#rQueryUnit)
80
+ * or [QueryUpdate](https://www.w3.org/TR/sparql11-query/#rUpdateUnit) rules.
81
+ * @param ast
82
+ * @param context
83
+ */
75
84
  generate(ast: T11.Query | T11.Update, context?: Partial<T11.SparqlGeneratorContext>): string;
85
+ /**
86
+ * Generates a query string starting from the [Path](https://www.w3.org/TR/sparql11-query/#rPath) grammar rule.
87
+ * @param ast
88
+ * @param context
89
+ */
76
90
  generatePath(ast: T11.Path, context?: Partial<T11.SparqlGeneratorContext>): string;
77
91
  }
@@ -1,5 +1,5 @@
1
1
  import { GeneratorBuilder } from '@traqula/core';
2
- import { completeParseContext, AstFactory, gram } from '@traqula/rules-sparql-1-1';
2
+ import { gram, completeGeneratorContext } from '@traqula/rules-sparql-1-1';
3
3
  export const sparql11GeneratorBuilder = GeneratorBuilder.create([
4
4
  gram.queryOrUpdate,
5
5
  gram.query,
@@ -19,18 +19,32 @@ export const sparql11GeneratorBuilder = GeneratorBuilder.create([
19
19
  .addMany(gram.solutionModifier, gram.groupClause, gram.havingClause, gram.orderClause, gram.limitOffsetClauses)
20
20
  .addMany(gram.triplesBlock, gram.collectionPath, gram.blankNodePropertyListPath, gram.triplesNodePath, gram.graphNodePath)
21
21
  .addMany(gram.whereClause, gram.generatePattern, gram.groupGraphPattern, gram.graphPatternNotTriples, gram.optionalGraphPattern, gram.graphGraphPattern, gram.serviceGraphPattern, gram.bind, gram.inlineData, gram.minusGraphPattern, gram.groupOrUnionGraphPattern, gram.filter);
22
+ /**
23
+ * Generator that can generate a SPARQL 1.1 query string given a SPARQL 1.1 Traqula AST.
24
+ */
22
25
  export class Generator {
23
26
  defaultContext;
24
27
  constructor(defaultContext = {}) {
25
- this.defaultContext = defaultContext;
28
+ this.defaultContext = completeGeneratorContext(defaultContext);
26
29
  }
27
30
  generator = sparql11GeneratorBuilder.build();
28
- factory = new AstFactory();
31
+ /**
32
+ * Generates a query string starting from the
33
+ * [QueryUnit](https://www.w3.org/TR/sparql11-query/#rQueryUnit)
34
+ * or [QueryUpdate](https://www.w3.org/TR/sparql11-query/#rUpdateUnit) rules.
35
+ * @param ast
36
+ * @param context
37
+ */
29
38
  generate(ast, context = {}) {
30
- return this.generator.queryOrUpdate(ast, completeParseContext({ ...this.defaultContext, ...context })).trim();
39
+ return this.generator.queryOrUpdate(ast, { ...this.defaultContext, ...context }).trim();
31
40
  }
41
+ /**
42
+ * Generates a query string starting from the [Path](https://www.w3.org/TR/sparql11-query/#rPath) grammar rule.
43
+ * @param ast
44
+ * @param context
45
+ */
32
46
  generatePath(ast, context = {}) {
33
- return this.generator.path(ast, completeParseContext({ ...this.defaultContext, ...context }), undefined).trim();
47
+ return this.generator.path(ast, completeGeneratorContext({ ...this.defaultContext, ...context }), undefined).trim();
34
48
  }
35
49
  }
36
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { GeneratorBuilder } from '@traqula/core';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { completeParseContext, AstFactory, gram } from '@traqula/rules-sparql-1-1';\n\nexport const sparql11GeneratorBuilder = GeneratorBuilder.create(<const> [\n gram.queryOrUpdate,\n gram.query,\n gram.selectQuery,\n gram.constructQuery,\n gram.describeQuery,\n gram.askQuery,\n gram.selectClause,\n])\n .addMany(\n gram.update,\n gram.update1,\n gram.load,\n gram.clear,\n gram.drop,\n gram.create,\n gram.copy,\n gram.move,\n gram.add,\n gram.insertData,\n gram.deleteData,\n gram.deleteWhere,\n gram.modify,\n gram.graphRef,\n gram.graphRefAll,\n gram.quads,\n gram.quadsNotTriples,\n )\n .addRule(gram.aggregate)\n .addMany(\n gram.datasetClauseStar,\n gram.usingClauseStar,\n )\n .addMany(\n gram.argList,\n gram.expression,\n gram.iriOrFunction,\n )\n .addMany(\n gram.prologue,\n gram.prefixDecl,\n gram.baseDecl,\n gram.varOrTerm,\n gram.var_,\n gram.graphTerm,\n )\n .addMany(\n gram.rdfLiteral,\n gram.iri,\n gram.iriFull,\n gram.prefixedName,\n gram.blankNode,\n )\n .addRule(gram.pathGenerator)\n .addMany(\n gram.solutionModifier,\n gram.groupClause,\n gram.havingClause,\n gram.orderClause,\n gram.limitOffsetClauses,\n )\n .addMany(\n gram.triplesBlock,\n gram.collectionPath,\n gram.blankNodePropertyListPath,\n gram.triplesNodePath,\n gram.graphNodePath,\n )\n .addMany(\n gram.whereClause,\n gram.generatePattern,\n gram.groupGraphPattern,\n gram.graphPatternNotTriples,\n gram.optionalGraphPattern,\n gram.graphGraphPattern,\n gram.serviceGraphPattern,\n gram.bind,\n gram.inlineData,\n gram.minusGraphPattern,\n gram.groupOrUnionGraphPattern,\n gram.filter,\n );\n\nexport type SparqlGenerator = ReturnType<typeof sparql11GeneratorBuilder.build>;\n\nexport class Generator {\n public constructor(private readonly defaultContext: Partial<T11.SparqlGeneratorContext> = {}) {}\n\n private readonly generator: SparqlGenerator = sparql11GeneratorBuilder.build();\n private readonly factory = new AstFactory();\n\n public generate(ast: T11.Query | T11.Update, context: Partial<T11.SparqlGeneratorContext> = {}): string {\n return this.generator.queryOrUpdate(ast, completeParseContext({ ...this.defaultContext, ...context })).trim();\n }\n\n public generatePath(ast: T11.Path, context: Partial<T11.SparqlGeneratorContext> = {}): string {\n return this.generator.path(ast, completeParseContext({ ...this.defaultContext, ...context }), undefined).trim();\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { GeneratorBuilder } from '@traqula/core';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { gram, completeGeneratorContext } from '@traqula/rules-sparql-1-1';\n\nexport const sparql11GeneratorBuilder = GeneratorBuilder.create(<const> [\n gram.queryOrUpdate,\n gram.query,\n gram.selectQuery,\n gram.constructQuery,\n gram.describeQuery,\n gram.askQuery,\n gram.selectClause,\n])\n .addMany(\n gram.update,\n gram.update1,\n gram.load,\n gram.clear,\n gram.drop,\n gram.create,\n gram.copy,\n gram.move,\n gram.add,\n gram.insertData,\n gram.deleteData,\n gram.deleteWhere,\n gram.modify,\n gram.graphRef,\n gram.graphRefAll,\n gram.quads,\n gram.quadsNotTriples,\n )\n .addRule(gram.aggregate)\n .addMany(\n gram.datasetClauseStar,\n gram.usingClauseStar,\n )\n .addMany(\n gram.argList,\n gram.expression,\n gram.iriOrFunction,\n )\n .addMany(\n gram.prologue,\n gram.prefixDecl,\n gram.baseDecl,\n gram.varOrTerm,\n gram.var_,\n gram.graphTerm,\n )\n .addMany(\n gram.rdfLiteral,\n gram.iri,\n gram.iriFull,\n gram.prefixedName,\n gram.blankNode,\n )\n .addRule(gram.pathGenerator)\n .addMany(\n gram.solutionModifier,\n gram.groupClause,\n gram.havingClause,\n gram.orderClause,\n gram.limitOffsetClauses,\n )\n .addMany(\n gram.triplesBlock,\n gram.collectionPath,\n gram.blankNodePropertyListPath,\n gram.triplesNodePath,\n gram.graphNodePath,\n )\n .addMany(\n gram.whereClause,\n gram.generatePattern,\n gram.groupGraphPattern,\n gram.graphPatternNotTriples,\n gram.optionalGraphPattern,\n gram.graphGraphPattern,\n gram.serviceGraphPattern,\n gram.bind,\n gram.inlineData,\n gram.minusGraphPattern,\n gram.groupOrUnionGraphPattern,\n gram.filter,\n );\n\nexport type SparqlGenerator = ReturnType<typeof sparql11GeneratorBuilder.build>;\n\n/**\n * Generator that can generate a SPARQL 1.1 query string given a SPARQL 1.1 Traqula AST.\n */\nexport class Generator {\n protected readonly defaultContext: T11.SparqlGeneratorContext;\n public constructor(defaultContext: Partial<T11.SparqlGeneratorContext> = {}) {\n this.defaultContext = completeGeneratorContext(defaultContext);\n }\n\n private readonly generator: SparqlGenerator = sparql11GeneratorBuilder.build();\n\n /**\n * Generates a query string starting from the\n * [QueryUnit](https://www.w3.org/TR/sparql11-query/#rQueryUnit)\n * or [QueryUpdate](https://www.w3.org/TR/sparql11-query/#rUpdateUnit) rules.\n * @param ast\n * @param context\n */\n public generate(ast: T11.Query | T11.Update, context: Partial<T11.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/sparql11-query/#rPath) grammar rule.\n * @param ast\n * @param context\n */\n public generatePath(ast: T11.Path, context: Partial<T11.SparqlGeneratorContext> = {}): string {\n return this.generator.path(ast, completeGeneratorContext({ ...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-1",
3
3
  "type": "module",
4
- "version": "0.0.23",
4
+ "version": "0.0.25",
5
5
  "description": "SPARQL 1.1 generator",
6
6
  "lsd:module": true,
7
7
  "license": "MIT",
@@ -27,26 +27,26 @@
27
27
  "access": "public"
28
28
  },
29
29
  "files": [
30
- "dist/**/*.d.ts",
31
- "dist/**/*.js",
32
- "dist/**/*.js.map",
33
- "dist/**/package.json"
30
+ "dist/*/lib/**/*.d.ts",
31
+ "dist/*/lib/**/*.js",
32
+ "dist/*/lib/**/*.js.map",
33
+ "dist/cjs/package.json"
34
34
  ],
35
35
  "engines": {
36
36
  "node": "^20.19.0 || >=22.12.0"
37
37
  },
38
38
  "scripts": {
39
- "build": "yarn build:ts && yarn build:transpile",
39
+ "build": "yarn build:ts && yarn build:cjs",
40
40
  "build:ts": "node \"../../node_modules/typescript/bin/tsc\" -b",
41
- "build:transpile": "esbuild \"dist/esm/**/*.js\" --outdir=dist/cjs --platform=node --format=cjs"
41
+ "build:cjs": "node \"../../node_modules/typescript/bin/tsc\" -b tsconfig.cjs.json"
42
42
  },
43
43
  "dependencies": {
44
- "@traqula/core": "^0.0.23",
45
- "@traqula/rules-sparql-1-1": "^0.0.23"
44
+ "@traqula/core": "^0.0.25",
45
+ "@traqula/rules-sparql-1-1": "^0.0.25"
46
46
  },
47
47
  "devDependencies": {
48
- "@traqula/parser-sparql-1-1": "^0.0.23",
49
- "@traqula/test-utils": "^0.0.23"
48
+ "@traqula/parser-sparql-1-1": "^0.0.25",
49
+ "@traqula/test-utils": "^0.0.25"
50
50
  },
51
- "gitHead": "36ec1aae80524a84f044182811a55ebeef6d9cda"
51
+ "gitHead": "52cfb2b513294dc154febc0209ac811ceeb6785b"
52
52
  }
@@ -1,175 +0,0 @@
1
- "use strict";
2
- var import_core = require("@traqula/core");
3
- var import_parser_sparql_1_1 = require("@traqula/parser-sparql-1-1");
4
- var import_rules_sparql_1_1 = require("@traqula/rules-sparql-1-1");
5
- var import_vitest = require("vitest");
6
- var import_lib = require("../lib/index.js");
7
- (0, import_vitest.describe)("a SPARQL 1.1 generator", () => {
8
- const generator = new import_lib.Generator();
9
- const parser = new import_parser_sparql_1_1.Parser();
10
- const F = new import_rules_sparql_1_1.AstFactory();
11
- const transformer = new import_rules_sparql_1_1.AstTransformer();
12
- (0, import_vitest.it)("generates simple round tripped", ({ expect }) => {
13
- const query = "SELECT * WHERE { ?s ?p ?o }";
14
- const ast = parser.parse(query);
15
- const result = generator.generate(ast, { origSource: query });
16
- expect(result).toBe(query);
17
- });
18
- (0, import_vitest.it)("self generates on no pretty", ({ expect }) => {
19
- const query = "SELECT * WHERE { ?s ?p ?o . }";
20
- const ast = parser.parse(query);
21
- const result = generator.generate(F.forcedAutoGenTree(ast), { [import_core.traqulaIndentation]: -1, indentInc: 0 });
22
- expect(result).toBe(query);
23
- });
24
- (0, import_vitest.describe)("on altered nodes", () => {
25
- (0, import_vitest.it)("translates ?s -> ?subject", ({ expect }) => {
26
- const query = "SELECT * WHERE { ?s ?p ?o }";
27
- const ast = parser.parse(query);
28
- const altered = transformer.transformNodeSpecific(ast, {}, { term: { variable: {
29
- transform: (variable) => variable.value === "s" ? F.termVariable("subject", F.sourceLocationNodeReplaceUnsafe(variable.loc)) : variable
30
- } } });
31
- const result = generator.generate(altered, { origSource: query });
32
- expect(result).toBe(`SELECT * WHERE { ?subject ?p ?o }`);
33
- });
34
- (0, import_vitest.it)("translates blanknodes -> variables", ({ expect }) => {
35
- const query = `
36
-
37
- BASE <ex:>
38
- CONSTRUCT {
39
- ?s0 ?p0 _:g_0 .
40
- _:g_0 <a0> _:g_1 .
41
- _:g_1 <b0> <c0> .
42
- [
43
- <a0> [
44
- <b0> <c0> ;
45
- ] ;
46
- ] ?p0 ?o0 .
47
-
48
- }
49
- WHERE {
50
- ?s1 ?p1 _:g_4 .
51
- ?s1 ?p1 <a1> .
52
- ?s1 ?q1 <b1> .
53
- ?s1 ?q1 <c1> .
54
- _:g_5 ?p2 ?o2 .
55
- ?s3 ?p3 _:g_6 .
56
- _:g_6 <a3> <b3> .
57
- ?s4 ?p4 _:g_7 .
58
- _:g_7 <a4> <b4> .
59
- _:g_7 <c4> <d4> .
60
- _:g_7 <c4> <e4> .
61
- ?s5 ?p5 _:g_8 .
62
- _:g_8 <a5> _:g_9 .
63
- _:g_9 <b5> <c5> .
64
- [
65
- <a6> [
66
- <b6> <c6> ;
67
- ] ;
68
- ] ?p6 ?o6 .
69
- _:g_12 <a7> <b7> .
70
- _:g_12 <c7> <d7> .
71
- _:g_12 <c7> <e7> .
72
-
73
- }`;
74
- const ast = parser.parse(query);
75
- function extractCollection(collection) {
76
- const result2 = [];
77
- for (const entry of collection.triples) {
78
- const subject = entry.subject;
79
- const pred = entry.predicate;
80
- if (F.isTripleCollection(entry.object)) {
81
- const identifier = { ...F.graphNodeIdentifier(entry.object) };
82
- result2.push(F.triple(subject, pred, identifier, F.gen()));
83
- result2.push(...extractCollection(entry.object));
84
- } else {
85
- result2.push(F.triple(subject, pred, entry.object, F.gen()));
86
- }
87
- }
88
- return result2;
89
- }
90
- const flattenCollections = transformer.transformNodeSpecific(ast, {}, { pattern: { bgp: {
91
- transform: (current) => {
92
- const bgpCopy = F.forcedAutoGenTree(current);
93
- const newTriples = [];
94
- for (const entry of bgpCopy.triples) {
95
- if (F.isTriple(entry)) {
96
- const subject = entry.subject;
97
- const pred = entry.predicate;
98
- if (F.isTripleCollection(entry.object)) {
99
- const object = entry.object;
100
- const identifier = { ...F.graphNodeIdentifier(object) };
101
- newTriples.push(F.triple(subject, pred, identifier));
102
- newTriples.push(...extractCollection(object));
103
- } else {
104
- newTriples.push(F.triple(subject, pred, entry.object, F.gen()));
105
- }
106
- } else {
107
- const genTriples = extractCollection(entry);
108
- newTriples.push(...genTriples);
109
- }
110
- }
111
- return F.patternBgp(newTriples, F.sourceLocationNodeReplaceUnsafe(current.loc));
112
- }
113
- } } });
114
- const result = generator.generate(flattenCollections, { origSource: query });
115
- expect(result).toBe(`BASE <ex:>
116
- CONSTRUCT {
117
- ?s0 ?p0 _:g_0 .
118
- _:g_0 <a0> _:g_1 .
119
- _:g_1 <b0> <c0> .
120
- [
121
- <a0> [
122
- <b0> <c0> ;
123
- ] ;
124
- ] ?p0 ?o0 .
125
-
126
-
127
- }
128
- WHERE {
129
- ?s1 ?p1 _:g_4 .
130
- ?s1 ?p1 <a1> .
131
- ?s1 ?q1 <b1> .
132
- ?s1 ?q1 <c1> .
133
- _:g_5 ?p2 ?o2 .
134
- ?s3 ?p3 _:g_6 .
135
- _:g_6 <a3> <b3> .
136
- ?s4 ?p4 _:g_7 .
137
- _:g_7 <a4> <b4> .
138
- _:g_7 <c4> <d4> .
139
- _:g_7 <c4> <e4> .
140
- ?s5 ?p5 _:g_8 .
141
- _:g_8 <a5> _:g_9 .
142
- _:g_9 <b5> <c5> .
143
- [
144
- <a6> [
145
- <b6> <c6> ;
146
- ] ;
147
- ] ?p6 ?o6 .
148
- _:g_12 <a7> <b7> .
149
- _:g_12 <c7> <d7> .
150
- _:g_12 <c7> <e7> .
151
-
152
-
153
- }`);
154
- });
155
- });
156
- (0, import_vitest.it)("generates hand constructed query", ({ expect }) => {
157
- const query = `
158
- SELECT * WHERE {
159
- ?s ?p ?o .
160
- }`;
161
- const ast = F.querySelect({
162
- variables: [F.wildcard(F.gen())],
163
- datasets: F.datasetClauses([], F.sourceLocation()),
164
- context: [],
165
- where: F.patternGroup([
166
- F.patternBgp([
167
- F.triple(F.termVariable("s", F.gen()), F.termVariable("p", F.gen()), F.termVariable("o", F.gen()))
168
- ], F.gen())
169
- ], F.gen()),
170
- solutionModifiers: {}
171
- }, F.gen());
172
- const result = generator.generate(ast);
173
- expect(result.trim()).toBe(query.trim());
174
- });
175
- });
@@ -1,68 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
- // If the importer is in node compatibility mode or this is not an ESM
18
- // file that has been converted to a CommonJS file using a Babel-
19
- // compatible transform (i.e. "__esModule" has not been set), then set
20
- // "default" to the CommonJS "module.exports" for node compatibility.
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
- var import_node_fs = __toESM(require("node:fs"), 1);
25
- var import_node_path = __toESM(require("node:path"), 1);
26
- var import_rules_sparql_1_1 = require("@traqula/rules-sparql-1-1");
27
- var import_test_utils = require("@traqula/test-utils");
28
- var import_vitest = require("vitest");
29
- var import_lib = require("../lib/index.js");
30
- (0, import_vitest.describe)("a SPARQL 1.1 generator", () => {
31
- const generator = new import_lib.Generator();
32
- const F = new import_rules_sparql_1_1.AstFactory();
33
- function _sinkGenerated(suite, test, response) {
34
- const dir = (0, import_test_utils.getStaticFilePath)();
35
- const fileLoc = import_node_path.default.join(dir, suite, `${test}-generated.sparql`);
36
- import_node_fs.default.writeFileSync(fileLoc, response);
37
- }
38
- (0, import_vitest.describe)("positive paths", () => {
39
- for (const { name, statics } of (0, import_test_utils.positiveTest)("paths")) {
40
- (0, import_vitest.it)(`can generate ${name}`, async ({ expect }) => {
41
- const { query, ast, autoGen } = await statics();
42
- const path2 = ast;
43
- const generated = generator.generatePath(path2, { origSource: query });
44
- expect(generated, "round-trip generation").toEqual(query.trim());
45
- const replaceLoc = F.sourceLocationNodeReplaceUnsafe(path2.loc);
46
- const autoGenAst = F.forcedAutoGenTree(path2);
47
- autoGenAst.loc = replaceLoc;
48
- const selfGenerated = generator.generatePath(autoGenAst);
49
- expect(selfGenerated, "auto generated").toEqual(autoGen.trim());
50
- });
51
- }
52
- });
53
- (0, import_vitest.describe)("positive sparql 1.1", () => {
54
- for (const { name, statics } of (0, import_test_utils.positiveTest)("sparql-1-1")) {
55
- (0, import_vitest.it)(`can generate ${name}`, async ({ expect }) => {
56
- const { query, ast, autoGen } = await statics();
57
- const queryUpdate = ast;
58
- const roundTripped = generator.generate(queryUpdate, { origSource: query });
59
- expect(roundTripped, "round-trip generation").toEqual(query.trim());
60
- const replaceLoc = F.sourceLocationNodeReplaceUnsafe(queryUpdate.loc);
61
- const autoGenAst = F.forcedAutoGenTree(queryUpdate);
62
- autoGenAst.loc = replaceLoc;
63
- const selfGenerated = generator.generate(autoGenAst);
64
- expect(selfGenerated, "auto generated").toEqual(autoGen.trim());
65
- });
66
- }
67
- });
68
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,180 +0,0 @@
1
- import { traqulaIndentation } from '@traqula/core';
2
- import { Parser } from '@traqula/parser-sparql-1-1';
3
- import { AstFactory, AstTransformer } from '@traqula/rules-sparql-1-1';
4
- import { describe, it } from 'vitest';
5
- import { Generator } from '../lib/index.js';
6
- describe('a SPARQL 1.1 generator', () => {
7
- const generator = new Generator();
8
- const parser = new Parser();
9
- const F = new AstFactory();
10
- const transformer = new AstTransformer();
11
- it('generates simple round tripped', ({ expect }) => {
12
- const query = 'SELECT * WHERE { ?s ?p ?o }';
13
- const ast = parser.parse(query);
14
- const result = generator.generate(ast, { origSource: query });
15
- expect(result).toBe(query);
16
- });
17
- it('self generates on no pretty', ({ expect }) => {
18
- const query = 'SELECT * WHERE { ?s ?p ?o . }';
19
- const ast = parser.parse(query);
20
- const result = generator.generate(F.forcedAutoGenTree(ast), { [traqulaIndentation]: -1, indentInc: 0 });
21
- expect(result).toBe(query);
22
- });
23
- describe('on altered nodes', () => {
24
- it('translates ?s -> ?subject', ({ expect }) => {
25
- const query = 'SELECT * WHERE { ?s ?p ?o }';
26
- const ast = parser.parse(query);
27
- const altered = transformer.transformNodeSpecific(ast, {}, { term: { variable: {
28
- transform: variable => variable.value === 's' ?
29
- F.termVariable('subject', F.sourceLocationNodeReplaceUnsafe(variable.loc)) :
30
- variable,
31
- } } });
32
- const result = generator.generate(altered, { origSource: query });
33
- expect(result).toBe(`SELECT * WHERE { ?subject ?p ?o }`);
34
- });
35
- it('translates blanknodes -> variables', ({ expect }) => {
36
- const query = `
37
-
38
- BASE <ex:>
39
- CONSTRUCT {
40
- ?s0 ?p0 _:g_0 .
41
- _:g_0 <a0> _:g_1 .
42
- _:g_1 <b0> <c0> .
43
- [
44
- <a0> [
45
- <b0> <c0> ;
46
- ] ;
47
- ] ?p0 ?o0 .
48
-
49
- }
50
- WHERE {
51
- ?s1 ?p1 _:g_4 .
52
- ?s1 ?p1 <a1> .
53
- ?s1 ?q1 <b1> .
54
- ?s1 ?q1 <c1> .
55
- _:g_5 ?p2 ?o2 .
56
- ?s3 ?p3 _:g_6 .
57
- _:g_6 <a3> <b3> .
58
- ?s4 ?p4 _:g_7 .
59
- _:g_7 <a4> <b4> .
60
- _:g_7 <c4> <d4> .
61
- _:g_7 <c4> <e4> .
62
- ?s5 ?p5 _:g_8 .
63
- _:g_8 <a5> _:g_9 .
64
- _:g_9 <b5> <c5> .
65
- [
66
- <a6> [
67
- <b6> <c6> ;
68
- ] ;
69
- ] ?p6 ?o6 .
70
- _:g_12 <a7> <b7> .
71
- _:g_12 <c7> <d7> .
72
- _:g_12 <c7> <e7> .
73
-
74
- }`;
75
- const ast = parser.parse(query);
76
- function extractCollection(collection) {
77
- const result = [];
78
- for (const entry of collection.triples) {
79
- const subject = entry.subject;
80
- const pred = entry.predicate;
81
- if (F.isTripleCollection(entry.object)) {
82
- const identifier = { ...F.graphNodeIdentifier(entry.object) };
83
- result.push(F.triple(subject, pred, identifier, F.gen()));
84
- result.push(...extractCollection(entry.object));
85
- }
86
- else {
87
- result.push(F.triple(subject, pred, entry.object, F.gen()));
88
- }
89
- }
90
- return result;
91
- }
92
- const flattenCollections = transformer.transformNodeSpecific(ast, {}, { pattern: { bgp: {
93
- transform: (current) => {
94
- const bgpCopy = F.forcedAutoGenTree(current);
95
- const newTriples = [];
96
- for (const entry of bgpCopy.triples) {
97
- if (F.isTriple(entry)) {
98
- const subject = entry.subject;
99
- const pred = entry.predicate;
100
- if (F.isTripleCollection(entry.object)) {
101
- const object = entry.object;
102
- const identifier = { ...F.graphNodeIdentifier(object) };
103
- newTriples.push(F.triple(subject, pred, identifier));
104
- newTriples.push(...extractCollection(object));
105
- }
106
- else {
107
- newTriples.push(F.triple(subject, pred, entry.object, F.gen()));
108
- }
109
- }
110
- else {
111
- const genTriples = extractCollection(entry);
112
- newTriples.push(...genTriples);
113
- }
114
- }
115
- return F.patternBgp(newTriples, F.sourceLocationNodeReplaceUnsafe(current.loc));
116
- },
117
- } } });
118
- const result = generator.generate(flattenCollections, { origSource: query });
119
- expect(result).toBe(`BASE <ex:>
120
- CONSTRUCT {
121
- ?s0 ?p0 _:g_0 .
122
- _:g_0 <a0> _:g_1 .
123
- _:g_1 <b0> <c0> .
124
- [
125
- <a0> [
126
- <b0> <c0> ;
127
- ] ;
128
- ] ?p0 ?o0 .
129
-
130
-
131
- }
132
- WHERE {
133
- ?s1 ?p1 _:g_4 .
134
- ?s1 ?p1 <a1> .
135
- ?s1 ?q1 <b1> .
136
- ?s1 ?q1 <c1> .
137
- _:g_5 ?p2 ?o2 .
138
- ?s3 ?p3 _:g_6 .
139
- _:g_6 <a3> <b3> .
140
- ?s4 ?p4 _:g_7 .
141
- _:g_7 <a4> <b4> .
142
- _:g_7 <c4> <d4> .
143
- _:g_7 <c4> <e4> .
144
- ?s5 ?p5 _:g_8 .
145
- _:g_8 <a5> _:g_9 .
146
- _:g_9 <b5> <c5> .
147
- [
148
- <a6> [
149
- <b6> <c6> ;
150
- ] ;
151
- ] ?p6 ?o6 .
152
- _:g_12 <a7> <b7> .
153
- _:g_12 <c7> <d7> .
154
- _:g_12 <c7> <e7> .
155
-
156
-
157
- }`);
158
- });
159
- });
160
- it('generates hand constructed query', ({ expect }) => {
161
- const query = `
162
- SELECT * WHERE {
163
- ?s ?p ?o .
164
- }`;
165
- const ast = F.querySelect({
166
- variables: [F.wildcard(F.gen())],
167
- datasets: F.datasetClauses([], F.sourceLocation()),
168
- context: [],
169
- where: F.patternGroup([
170
- F.patternBgp([
171
- F.triple(F.termVariable('s', F.gen()), F.termVariable('p', F.gen()), F.termVariable('o', F.gen())),
172
- ], F.gen()),
173
- ], F.gen()),
174
- solutionModifiers: {},
175
- }, F.gen());
176
- const result = generator.generate(ast);
177
- expect(result.trim()).toBe(query.trim());
178
- });
179
- });
180
- //# sourceMappingURL=integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../../test/integration.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { traqulaIndentation } from '@traqula/core';\nimport { Parser } from '@traqula/parser-sparql-1-1';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { AstFactory, AstTransformer } from '@traqula/rules-sparql-1-1';\nimport { describe, it } from 'vitest';\nimport { Generator } from '../lib/index.js';\n\ndescribe('a SPARQL 1.1 generator', () => {\n const generator = new Generator();\n const parser = new Parser();\n const F = new AstFactory();\n const transformer = new AstTransformer();\n\n it ('generates simple round tripped', ({ expect }) => {\n const query = 'SELECT * WHERE { ?s ?p ?o }';\n const ast = <T11.Query> parser.parse(query);\n const result = generator.generate(ast, { origSource: query });\n expect(result).toBe(query);\n });\n\n it ('self generates on no pretty', ({ expect }) => {\n const query = 'SELECT * WHERE { ?s ?p ?o . }';\n const ast = parser.parse(query);\n const result = generator.generate(F.forcedAutoGenTree(ast), { [traqulaIndentation]: -1, indentInc: 0 });\n expect(result).toBe(query);\n });\n\n describe('on altered nodes', () => {\n it('translates ?s -> ?subject', ({ expect }) => {\n const query = 'SELECT * WHERE { ?s ?p ?o }';\n const ast = <T11.Query> parser.parse(query);\n\n const altered = transformer.transformNodeSpecific<'unsafe', T11.Query>(\n ast,\n {},\n { term: { variable: {\n transform: variable => variable.value === 's' ?\n F.termVariable('subject', F.sourceLocationNodeReplaceUnsafe(variable.loc)) :\n variable,\n }}},\n );\n\n const result = generator.generate(altered, { origSource: query });\n expect(result).toBe(`SELECT * WHERE { ?subject ?p ?o }`);\n });\n\n it('translates blanknodes -> variables', ({ expect }) => {\n const query = `\n\nBASE <ex:>\nCONSTRUCT { \n ?s0 ?p0 _:g_0 .\n_:g_0 <a0> _:g_1 .\n_:g_1 <b0> <c0> .\n[\n <a0> [\n <b0> <c0> ; \n ] ; \n] ?p0 ?o0 .\n\n}\nWHERE {\n ?s1 ?p1 _:g_4 .\n?s1 ?p1 <a1> .\n?s1 ?q1 <b1> .\n?s1 ?q1 <c1> .\n_:g_5 ?p2 ?o2 .\n?s3 ?p3 _:g_6 .\n_:g_6 <a3> <b3> .\n?s4 ?p4 _:g_7 .\n_:g_7 <a4> <b4> .\n_:g_7 <c4> <d4> .\n_:g_7 <c4> <e4> .\n?s5 ?p5 _:g_8 .\n_:g_8 <a5> _:g_9 .\n_:g_9 <b5> <c5> .\n[\n <a6> [\n <b6> <c6> ; \n ] ; \n] ?p6 ?o6 .\n_:g_12 <a7> <b7> .\n_:g_12 <c7> <d7> .\n_:g_12 <c7> <e7> .\n\n}`;\n const ast = <T11.Query> parser.parse(query);\n\n function extractCollection(collection: T11.TripleCollection): T11.TripleNesting[] {\n const result: T11.TripleNesting[] = [];\n for (const entry of collection.triples) {\n const subject = entry.subject;\n const pred = entry.predicate;\n if (F.isTripleCollection(entry.object)) {\n const identifier = { ...F.graphNodeIdentifier(entry.object) };\n result.push(F.triple(subject, pred, identifier, F.gen()));\n result.push(...extractCollection(entry.object));\n } else {\n result.push(F.triple(\n subject,\n pred,\n entry.object,\n F.gen(),\n ));\n }\n }\n return result;\n }\n\n const flattenCollections = transformer.transformNodeSpecific<'unsafe', T11.Query>(\n ast,\n {},\n { pattern: { bgp: {\n transform: (current) => {\n const bgpCopy = F.forcedAutoGenTree(current);\n const newTriples: T11.TripleNesting[] = [];\n for (const entry of bgpCopy.triples) {\n if (F.isTriple(entry)) {\n const subject = entry.subject;\n const pred = entry.predicate;\n if (F.isTripleCollection(entry.object)) {\n const object = entry.object;\n const identifier = { ...F.graphNodeIdentifier(object) };\n newTriples.push(F.triple(subject, pred, identifier));\n newTriples.push(...extractCollection(object));\n } else {\n newTriples.push(F.triple(\n subject,\n pred,\n entry.object,\n F.gen(),\n ));\n }\n } else {\n const genTriples = extractCollection(entry);\n newTriples.push(...genTriples);\n }\n }\n return F.patternBgp(newTriples, F.sourceLocationNodeReplaceUnsafe(current.loc));\n },\n }}},\n );\n\n const result = generator.generate(flattenCollections, { origSource: query });\n expect(result).toBe(`BASE <ex:>\nCONSTRUCT { \n ?s0 ?p0 _:g_0 .\n_:g_0 <a0> _:g_1 .\n_:g_1 <b0> <c0> .\n[\n <a0> [\n <b0> <c0> ;\n ] ;\n] ?p0 ?o0 .\n\n\n}\nWHERE {\n ?s1 ?p1 _:g_4 .\n?s1 ?p1 <a1> .\n?s1 ?q1 <b1> .\n?s1 ?q1 <c1> .\n_:g_5 ?p2 ?o2 .\n?s3 ?p3 _:g_6 .\n_:g_6 <a3> <b3> .\n?s4 ?p4 _:g_7 .\n_:g_7 <a4> <b4> .\n_:g_7 <c4> <d4> .\n_:g_7 <c4> <e4> .\n?s5 ?p5 _:g_8 .\n_:g_8 <a5> _:g_9 .\n_:g_9 <b5> <c5> .\n[\n <a6> [\n <b6> <c6> ;\n ] ;\n] ?p6 ?o6 .\n_:g_12 <a7> <b7> .\n_:g_12 <c7> <d7> .\n_:g_12 <c7> <e7> .\n\n\n}`);\n });\n });\n\n it ('generates hand constructed query', ({ expect }) => {\n const query = `\nSELECT * WHERE {\n ?s ?p ?o .\n}`;\n const ast = F.querySelect({\n variables: [ F.wildcard(F.gen()) ],\n datasets: F.datasetClauses([], F.sourceLocation()),\n context: [],\n where: F.patternGroup([\n F.patternBgp([\n F.triple(F.termVariable('s', F.gen()), F.termVariable('p', F.gen()), F.termVariable('o', F.gen())),\n ], F.gen()),\n ], F.gen()),\n solutionModifiers: {},\n }, F.gen());\n const result = generator.generate(ast);\n expect(result.trim()).toBe(query.trim());\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,49 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { AstFactory } from '@traqula/rules-sparql-1-1';
4
- import { positiveTest, getStaticFilePath } from '@traqula/test-utils';
5
- import { describe, it } from 'vitest';
6
- import { Generator } from '../lib/index.js';
7
- describe('a SPARQL 1.1 generator', () => {
8
- const generator = new Generator();
9
- const F = new AstFactory();
10
- function _sinkGenerated(suite, test, response) {
11
- const dir = getStaticFilePath();
12
- const fileLoc = path.join(dir, suite, `${test}-generated.sparql`);
13
- // eslint-disable-next-line no-sync
14
- fs.writeFileSync(fileLoc, response);
15
- }
16
- describe('positive paths', () => {
17
- for (const { name, statics } of positiveTest('paths')) {
18
- it(`can generate ${name}`, async ({ expect }) => {
19
- const { query, ast, autoGen } = await statics();
20
- const path = ast;
21
- const generated = generator.generatePath(path, { origSource: query });
22
- expect(generated, 'round-trip generation').toEqual(query.trim());
23
- const replaceLoc = F.sourceLocationNodeReplaceUnsafe(path.loc);
24
- const autoGenAst = F.forcedAutoGenTree(path);
25
- autoGenAst.loc = replaceLoc;
26
- const selfGenerated = generator.generatePath(autoGenAst);
27
- // _sinkGenerated('paths', name, selfGenerated);
28
- expect(selfGenerated, 'auto generated').toEqual(autoGen.trim());
29
- });
30
- }
31
- });
32
- describe('positive sparql 1.1', () => {
33
- for (const { name, statics } of positiveTest('sparql-1-1')) {
34
- it(`can generate ${name}`, async ({ expect }) => {
35
- const { query, ast, autoGen } = await statics();
36
- const queryUpdate = ast;
37
- const roundTripped = generator.generate(queryUpdate, { origSource: query });
38
- expect(roundTripped, 'round-trip generation').toEqual(query.trim());
39
- const replaceLoc = F.sourceLocationNodeReplaceUnsafe(queryUpdate.loc);
40
- const autoGenAst = F.forcedAutoGenTree(queryUpdate);
41
- autoGenAst.loc = replaceLoc;
42
- const selfGenerated = generator.generate(autoGenAst);
43
- // _sinkGenerated('sparql-1-1', name, selfGenerated);
44
- expect(selfGenerated, 'auto generated').toEqual(autoGen.trim());
45
- });
46
- }
47
- });
48
- });
49
- //# sourceMappingURL=statics.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"statics.test.js","sourceRoot":"","sources":["../../../test/statics.test.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { AstFactory } from '@traqula/rules-sparql-1-1';\nimport { positiveTest, getStaticFilePath } from '@traqula/test-utils';\nimport { describe, it } from 'vitest';\nimport { Generator } from '../lib/index.js';\n\ndescribe('a SPARQL 1.1 generator', () => {\n const generator = new Generator();\n const F = new AstFactory();\n\n function _sinkGenerated(suite: string, test: string, response: string): void {\n const dir = getStaticFilePath();\n const fileLoc = path.join(dir, suite, `${test}-generated.sparql`);\n // eslint-disable-next-line no-sync\n fs.writeFileSync(fileLoc, response);\n }\n\n describe('positive paths', () => {\n for (const { name, statics } of positiveTest('paths')) {\n it(`can generate ${name}`, async({ expect }) => {\n const { query, ast, autoGen } = await statics();\n const path = <T11.Path>ast;\n\n const generated = generator.generatePath(path, { origSource: query });\n expect(generated, 'round-trip generation').toEqual(query.trim());\n\n const replaceLoc = F.sourceLocationNodeReplaceUnsafe(path.loc);\n const autoGenAst = F.forcedAutoGenTree(path);\n autoGenAst.loc = replaceLoc;\n const selfGenerated = generator.generatePath(autoGenAst);\n // _sinkGenerated('paths', name, selfGenerated);\n expect(selfGenerated, 'auto generated').toEqual(autoGen.trim());\n });\n }\n });\n\n describe('positive sparql 1.1', () => {\n for (const { name, statics } of positiveTest('sparql-1-1')) {\n it(`can generate ${name}`, async({ expect }) => {\n const { query, ast, autoGen } = await statics();\n const queryUpdate = <T11.Query | T11.Update>ast;\n\n const roundTripped = generator.generate(queryUpdate, { origSource: query });\n expect(roundTripped, 'round-trip generation').toEqual(query.trim());\n\n const replaceLoc = F.sourceLocationNodeReplaceUnsafe(queryUpdate.loc);\n const autoGenAst = F.forcedAutoGenTree(queryUpdate);\n autoGenAst.loc = replaceLoc;\n const selfGenerated = generator.generate(autoGenAst);\n // _sinkGenerated('sparql-1-1', name, selfGenerated);\n expect(selfGenerated, 'auto generated').toEqual(autoGen.trim());\n });\n }\n });\n});\n"]}