@comunica/actor-query-operation-project 3.2.0 → 3.2.2
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.
|
@@ -27,8 +27,7 @@ class ActorQueryOperationProject extends bus_query_operation_1.ActorQueryOperati
|
|
|
27
27
|
const missingVariables = variables
|
|
28
28
|
.filter(variable => !outputMetadata.variables.some(subVariable => variable.value === subVariable.value));
|
|
29
29
|
if (missingVariables.length > 0) {
|
|
30
|
-
|
|
31
|
-
throw new Error(`Variables '${missingVariables.map(variable => `?${variable.value}`)}' are used in the projection result, but are not assigned.`);
|
|
30
|
+
outputMetadata.canContainUndefs = true;
|
|
32
31
|
}
|
|
33
32
|
// Make sure the project variables are the only variables that are present in the bindings.
|
|
34
33
|
let bindingsStream = deleteVariables.length === 0 ?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActorQueryOperationProject.js","sourceRoot":"","sources":["ActorQueryOperationProject.ts"],"names":[],"mappings":";;;AACA,uEAAsG;AAEtG,yDAAiE;AASjE,uDAA+C;AAG/C,MAAM,EAAE,GAAG,IAAI,8BAAW,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAa,0BAA2B,SAAQ,sDAAiD;IAC/F,YAAmB,IAA2C;QAC5D,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,UAA2B,EAAE,QAAwB;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,SAA0B,EAAE,OAAuB;QAE3E,oBAAoB;QACpB,MAAM,MAAM,GAAkC,yCAAmB,CAAC,eAAe,CAC/E,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CACnF,CAAC;QAEF,mEAAmE;QACnE,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACtC,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS;aAC7C,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5F,uEAAuE;QACvE,MAAM,gBAAgB,GAAG,SAAS;aAC/B,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3G,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,
|
|
1
|
+
{"version":3,"file":"ActorQueryOperationProject.js","sourceRoot":"","sources":["ActorQueryOperationProject.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport { BlankNodeBindingsScoped } from '@comunica/data-factory';\nimport type {\n Bindings,\n BindingsStream,\n IActionContext,\n IQueryOperationResult,\n IQueryOperationResultBindings,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport type { Algebra } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\n\n/**\n * A comunica Project Query Operation Actor.\n */\nexport class ActorQueryOperationProject extends ActorQueryOperationTypedMediated<Algebra.Project> {\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, 'project');\n }\n\n public async testOperation(_operation: Algebra.Project, _context: IActionContext): Promise<IActorTest> {\n return true;\n }\n\n public async runOperation(operation: Algebra.Project, context: IActionContext):\n Promise<IQueryOperationResult> {\n // Resolve the input\n const output: IQueryOperationResultBindings = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ operation: operation.input, context }),\n );\n\n // Find all variables that should be deleted from the input stream.\n const outputMetadata = await output.metadata();\n const variables = operation.variables;\n const deleteVariables = outputMetadata.variables\n .filter(variable => !variables.some(subVariable => variable.value === subVariable.value));\n\n // Error if there are variables that are not bound in the input stream.\n const missingVariables = variables\n .filter(variable => !outputMetadata.variables.some(subVariable => variable.value === subVariable.value));\n if (missingVariables.length > 0) {\n outputMetadata.canContainUndefs = true;\n }\n\n // Make sure the project variables are the only variables that are present in the bindings.\n let bindingsStream: BindingsStream = deleteVariables.length === 0 ?\n output.bindingsStream :\n output.bindingsStream.map((bindings: Bindings) => {\n for (const deleteVariable of deleteVariables) {\n bindings = bindings.delete(deleteVariable);\n }\n return bindings;\n });\n\n // Make sure that blank nodes with same labels are not reused over different bindings, as required by SPARQL 1.1.\n // Required for the BNODE() function: https://www.w3.org/TR/sparql11-query/#func-bnode\n // When we have a scoped blank node, make sure the skolemized value is maintained.\n let blankNodeCounter = 0;\n bindingsStream = bindingsStream.map((bindings: Bindings) => {\n blankNodeCounter++;\n const scopedBlankNodesCache = new Map<string, RDF.BlankNode>();\n return bindings.map((term) => {\n if (term instanceof BlankNodeBindingsScoped) {\n let scopedBlankNode = scopedBlankNodesCache.get(term.value);\n if (!scopedBlankNode) {\n scopedBlankNode = DF.blankNode(`${term.value}${blankNodeCounter}`);\n scopedBlankNodesCache.set(term.value, scopedBlankNode);\n }\n return scopedBlankNode;\n }\n return term;\n });\n });\n\n return {\n type: 'bindings',\n bindingsStream,\n metadata: async() => ({ ...outputMetadata, variables }),\n };\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comunica/actor-query-operation-project",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.2",
|
|
4
4
|
"description": "A project query-operation actor",
|
|
5
5
|
"lsd:module": true,
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"build:components": "componentsjs-generator"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@comunica/bus-query-operation": "^3.2.
|
|
41
|
-
"@comunica/core": "^3.2.
|
|
40
|
+
"@comunica/bus-query-operation": "^3.2.2",
|
|
41
|
+
"@comunica/core": "^3.2.1",
|
|
42
42
|
"@comunica/data-factory": "^3.1.0",
|
|
43
|
-
"@comunica/types": "^3.2.
|
|
43
|
+
"@comunica/types": "^3.2.1",
|
|
44
44
|
"@rdfjs/types": "*",
|
|
45
45
|
"rdf-data-factory": "^1.1.1",
|
|
46
|
-
"sparqlalgebrajs": "^4.3.
|
|
46
|
+
"sparqlalgebrajs": "^4.3.7"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "fbcc3a81f87738633ddf69ede5ca504236f7edd9"
|
|
49
49
|
}
|