@_linked/core 1.1.0 → 1.2.0-next.20260303081922
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/CHANGELOG.md +68 -0
- package/README.md +321 -43
- package/lib/cjs/index.js +4 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces/IQuadStore.d.ts +19 -7
- package/lib/cjs/queries/CreateQuery.d.ts +7 -8
- package/lib/cjs/queries/CreateQuery.js +4 -4
- package/lib/cjs/queries/CreateQuery.js.map +1 -1
- package/lib/cjs/queries/DeleteQuery.d.ts +7 -8
- package/lib/cjs/queries/DeleteQuery.js +4 -4
- package/lib/cjs/queries/DeleteQuery.js.map +1 -1
- package/lib/cjs/queries/IRAliasScope.d.ts +20 -0
- package/lib/cjs/queries/IRAliasScope.js +52 -0
- package/lib/cjs/queries/IRAliasScope.js.map +1 -0
- package/lib/cjs/queries/IRCanonicalize.d.ts +36 -0
- package/lib/cjs/queries/IRCanonicalize.js +121 -0
- package/lib/cjs/queries/IRCanonicalize.js.map +1 -0
- package/lib/cjs/queries/IRDesugar.d.ts +98 -0
- package/lib/cjs/queries/IRDesugar.js +244 -0
- package/lib/cjs/queries/IRDesugar.js.map +1 -0
- package/lib/cjs/queries/IRLower.d.ts +8 -0
- package/lib/cjs/queries/IRLower.js +268 -0
- package/lib/cjs/queries/IRLower.js.map +1 -0
- package/lib/cjs/queries/IRMutation.d.ts +23 -0
- package/lib/cjs/queries/IRMutation.js +77 -0
- package/lib/cjs/queries/IRMutation.js.map +1 -0
- package/lib/cjs/queries/IRPipeline.d.ts +8 -0
- package/lib/cjs/queries/IRPipeline.js +25 -0
- package/lib/cjs/queries/IRPipeline.js.map +1 -0
- package/lib/cjs/queries/IRProjection.d.ts +38 -0
- package/lib/cjs/queries/IRProjection.js +98 -0
- package/lib/cjs/queries/IRProjection.js.map +1 -0
- package/lib/cjs/queries/IntermediateRepresentation.d.ts +210 -0
- package/lib/cjs/queries/IntermediateRepresentation.js +3 -0
- package/lib/cjs/queries/IntermediateRepresentation.js.map +1 -0
- package/lib/cjs/queries/MutationQuery.js +9 -23
- package/lib/cjs/queries/MutationQuery.js.map +1 -1
- package/lib/cjs/queries/QueryFactory.d.ts +0 -2
- package/lib/cjs/queries/QueryFactory.js +0 -3
- package/lib/cjs/queries/QueryFactory.js.map +1 -1
- package/lib/cjs/queries/QueryParser.d.ts +6 -1
- package/lib/cjs/queries/QueryParser.js +14 -22
- package/lib/cjs/queries/QueryParser.js.map +1 -1
- package/lib/cjs/queries/SelectQuery.d.ts +18 -27
- package/lib/cjs/queries/SelectQuery.js +54 -45
- package/lib/cjs/queries/SelectQuery.js.map +1 -1
- package/lib/cjs/queries/UpdateQuery.d.ts +8 -9
- package/lib/cjs/queries/UpdateQuery.js +4 -4
- package/lib/cjs/queries/UpdateQuery.js.map +1 -1
- package/lib/cjs/shapes/SHACL.d.ts +1 -0
- package/lib/cjs/shapes/SHACL.js +82 -2
- package/lib/cjs/shapes/SHACL.js.map +1 -1
- package/lib/cjs/shapes/Shape.d.ts +11 -10
- package/lib/cjs/shapes/Shape.js +11 -5
- package/lib/cjs/shapes/Shape.js.map +1 -1
- package/lib/cjs/sparql/SparqlAlgebra.d.ts +158 -0
- package/lib/cjs/sparql/SparqlAlgebra.js +4 -0
- package/lib/cjs/sparql/SparqlAlgebra.js.map +1 -0
- package/lib/cjs/sparql/SparqlStore.d.ts +52 -0
- package/lib/cjs/sparql/SparqlStore.js +81 -0
- package/lib/cjs/sparql/SparqlStore.js.map +1 -0
- package/lib/cjs/sparql/algebraToString.d.ts +13 -0
- package/lib/cjs/sparql/algebraToString.js +298 -0
- package/lib/cjs/sparql/algebraToString.js.map +1 -0
- package/lib/cjs/sparql/index.d.ts +9 -0
- package/lib/cjs/sparql/index.js +40 -0
- package/lib/cjs/sparql/index.js.map +1 -0
- package/lib/cjs/sparql/irToAlgebra.d.ts +39 -0
- package/lib/cjs/sparql/irToAlgebra.js +927 -0
- package/lib/cjs/sparql/irToAlgebra.js.map +1 -0
- package/lib/cjs/sparql/resultMapping.d.ts +36 -0
- package/lib/cjs/sparql/resultMapping.js +501 -0
- package/lib/cjs/sparql/resultMapping.js.map +1 -0
- package/lib/cjs/sparql/sparqlUtils.d.ts +32 -0
- package/lib/cjs/sparql/sparqlUtils.js +89 -0
- package/lib/cjs/sparql/sparqlUtils.js.map +1 -0
- package/lib/cjs/test-helpers/FusekiStore.d.ts +29 -0
- package/lib/cjs/test-helpers/FusekiStore.js +82 -0
- package/lib/cjs/test-helpers/FusekiStore.js.map +1 -0
- package/lib/cjs/test-helpers/fuseki-test-store.d.ts +43 -0
- package/lib/cjs/test-helpers/fuseki-test-store.js +144 -0
- package/lib/cjs/test-helpers/fuseki-test-store.js.map +1 -0
- package/lib/cjs/test-helpers/query-capture-store.d.ts +5 -0
- package/lib/cjs/test-helpers/query-capture-store.js +59 -0
- package/lib/cjs/test-helpers/query-capture-store.js.map +1 -0
- package/lib/cjs/test-helpers/query-fixtures.d.ts +736 -77
- package/lib/cjs/test-helpers/query-fixtures.js +45 -1
- package/lib/cjs/test-helpers/query-fixtures.js.map +1 -1
- package/lib/cjs/utils/LinkedStorage.d.ts +7 -7
- package/lib/cjs/utils/LinkedStorage.js +4 -3
- package/lib/cjs/utils/LinkedStorage.js.map +1 -1
- package/lib/esm/index.js +4 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interfaces/IQuadStore.d.ts +19 -7
- package/lib/esm/queries/CreateQuery.d.ts +7 -8
- package/lib/esm/queries/CreateQuery.js +4 -4
- package/lib/esm/queries/CreateQuery.js.map +1 -1
- package/lib/esm/queries/DeleteQuery.d.ts +7 -8
- package/lib/esm/queries/DeleteQuery.js +4 -4
- package/lib/esm/queries/DeleteQuery.js.map +1 -1
- package/lib/esm/queries/IRAliasScope.d.ts +20 -0
- package/lib/esm/queries/IRAliasScope.js +47 -0
- package/lib/esm/queries/IRAliasScope.js.map +1 -0
- package/lib/esm/queries/IRCanonicalize.d.ts +36 -0
- package/lib/esm/queries/IRCanonicalize.js +116 -0
- package/lib/esm/queries/IRCanonicalize.js.map +1 -0
- package/lib/esm/queries/IRDesugar.d.ts +98 -0
- package/lib/esm/queries/IRDesugar.js +240 -0
- package/lib/esm/queries/IRDesugar.js.map +1 -0
- package/lib/esm/queries/IRLower.d.ts +8 -0
- package/lib/esm/queries/IRLower.js +264 -0
- package/lib/esm/queries/IRLower.js.map +1 -0
- package/lib/esm/queries/IRMutation.d.ts +23 -0
- package/lib/esm/queries/IRMutation.js +71 -0
- package/lib/esm/queries/IRMutation.js.map +1 -0
- package/lib/esm/queries/IRPipeline.d.ts +8 -0
- package/lib/esm/queries/IRPipeline.js +21 -0
- package/lib/esm/queries/IRPipeline.js.map +1 -0
- package/lib/esm/queries/IRProjection.d.ts +38 -0
- package/lib/esm/queries/IRProjection.js +92 -0
- package/lib/esm/queries/IRProjection.js.map +1 -0
- package/lib/esm/queries/IntermediateRepresentation.d.ts +210 -0
- package/lib/esm/queries/IntermediateRepresentation.js +2 -0
- package/lib/esm/queries/IntermediateRepresentation.js.map +1 -0
- package/lib/esm/queries/MutationQuery.js +9 -23
- package/lib/esm/queries/MutationQuery.js.map +1 -1
- package/lib/esm/queries/QueryFactory.d.ts +0 -2
- package/lib/esm/queries/QueryFactory.js +0 -3
- package/lib/esm/queries/QueryFactory.js.map +1 -1
- package/lib/esm/queries/QueryParser.d.ts +6 -1
- package/lib/esm/queries/QueryParser.js +14 -23
- package/lib/esm/queries/QueryParser.js.map +1 -1
- package/lib/esm/queries/SelectQuery.d.ts +18 -27
- package/lib/esm/queries/SelectQuery.js +54 -45
- package/lib/esm/queries/SelectQuery.js.map +1 -1
- package/lib/esm/queries/UpdateQuery.d.ts +8 -9
- package/lib/esm/queries/UpdateQuery.js +4 -4
- package/lib/esm/queries/UpdateQuery.js.map +1 -1
- package/lib/esm/shapes/SHACL.d.ts +1 -0
- package/lib/esm/shapes/SHACL.js +82 -2
- package/lib/esm/shapes/SHACL.js.map +1 -1
- package/lib/esm/shapes/Shape.d.ts +11 -10
- package/lib/esm/shapes/Shape.js +11 -5
- package/lib/esm/shapes/Shape.js.map +1 -1
- package/lib/esm/sparql/SparqlAlgebra.d.ts +158 -0
- package/lib/esm/sparql/SparqlAlgebra.js +3 -0
- package/lib/esm/sparql/SparqlAlgebra.js.map +1 -0
- package/lib/esm/sparql/SparqlStore.d.ts +52 -0
- package/lib/esm/sparql/SparqlStore.js +77 -0
- package/lib/esm/sparql/SparqlStore.js.map +1 -0
- package/lib/esm/sparql/algebraToString.d.ts +13 -0
- package/lib/esm/sparql/algebraToString.js +289 -0
- package/lib/esm/sparql/algebraToString.js.map +1 -0
- package/lib/esm/sparql/index.d.ts +9 -0
- package/lib/esm/sparql/index.js +13 -0
- package/lib/esm/sparql/index.js.map +1 -0
- package/lib/esm/sparql/irToAlgebra.d.ts +39 -0
- package/lib/esm/sparql/irToAlgebra.js +917 -0
- package/lib/esm/sparql/irToAlgebra.js.map +1 -0
- package/lib/esm/sparql/resultMapping.d.ts +36 -0
- package/lib/esm/sparql/resultMapping.js +496 -0
- package/lib/esm/sparql/resultMapping.js.map +1 -0
- package/lib/esm/sparql/sparqlUtils.d.ts +32 -0
- package/lib/esm/sparql/sparqlUtils.js +82 -0
- package/lib/esm/sparql/sparqlUtils.js.map +1 -0
- package/lib/esm/test-helpers/FusekiStore.d.ts +29 -0
- package/lib/esm/test-helpers/FusekiStore.js +78 -0
- package/lib/esm/test-helpers/FusekiStore.js.map +1 -0
- package/lib/esm/test-helpers/fuseki-test-store.d.ts +43 -0
- package/lib/esm/test-helpers/fuseki-test-store.js +135 -0
- package/lib/esm/test-helpers/fuseki-test-store.js.map +1 -0
- package/lib/esm/test-helpers/query-capture-store.d.ts +5 -0
- package/lib/esm/test-helpers/query-capture-store.js +55 -0
- package/lib/esm/test-helpers/query-capture-store.js.map +1 -0
- package/lib/esm/test-helpers/query-fixtures.d.ts +736 -77
- package/lib/esm/test-helpers/query-fixtures.js +44 -0
- package/lib/esm/test-helpers/query-fixtures.js.map +1 -1
- package/lib/esm/utils/LinkedStorage.d.ts +7 -7
- package/lib/esm/utils/LinkedStorage.js +4 -3
- package/lib/esm/utils/LinkedStorage.js.map +1 -1
- package/package.json +7 -3
- package/lib/cjs/interfaces/IQueryParser.d.ts +0 -13
- package/lib/cjs/interfaces/IQueryParser.js +0 -10
- package/lib/cjs/interfaces/IQueryParser.js.map +0 -1
- package/lib/esm/interfaces/IQueryParser.d.ts +0 -13
- package/lib/esm/interfaces/IQueryParser.js +0 -7
- package/lib/esm/interfaces/IQueryParser.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"irToAlgebra.js","sourceRoot":"","sources":["../../../src/sparql/irToAlgebra.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { IRCreateMutation, IRSelectQuery, IRUpdateMutation, CreateResult, SelectResult, UpdateResult } from '../queries/IntermediateRepresentation.js';
|
|
2
|
+
export type SparqlJsonResults = {
|
|
3
|
+
head: {
|
|
4
|
+
vars: string[];
|
|
5
|
+
};
|
|
6
|
+
results: {
|
|
7
|
+
bindings: SparqlBinding[];
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export type SparqlBinding = Record<string, {
|
|
11
|
+
type: 'uri' | 'literal' | 'bnode' | 'typed-literal';
|
|
12
|
+
value: string;
|
|
13
|
+
datatype?: string;
|
|
14
|
+
'xml:lang'?: string;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Maps a SPARQL JSON result set back into the `SelectResult` shape expected
|
|
18
|
+
* by the Linked DSL.
|
|
19
|
+
*
|
|
20
|
+
* 1. Walks `query.resultMap` to know which alias → result key mapping
|
|
21
|
+
* 2. Walks `query.projection` to know each alias's expression type (for type coercion)
|
|
22
|
+
* 3. For each binding row, extracts values by variable name, coerces types, handles missing → null
|
|
23
|
+
* 4. Groups rows by root alias to reconstruct nested objects
|
|
24
|
+
* 5. If `query.singleResult` → returns single row or null
|
|
25
|
+
*/
|
|
26
|
+
export declare function mapSparqlSelectResult(json: SparqlJsonResults, query: IRSelectQuery): SelectResult;
|
|
27
|
+
/**
|
|
28
|
+
* Constructs a `CreateResult` from a generated URI and the IR create mutation.
|
|
29
|
+
* Echoes back the created fields as a `ResultRow` with the generated URI as `id`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function mapSparqlCreateResult(generatedUri: string, query: IRCreateMutation): CreateResult;
|
|
32
|
+
/**
|
|
33
|
+
* Constructs an `UpdateResult` from the IR update mutation.
|
|
34
|
+
* Echoes back the updated fields as an `UpdateResult` with the target node's `id`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function mapSparqlUpdateResult(query: IRUpdateMutation): UpdateResult;
|
|
@@ -0,0 +1,501 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapSparqlSelectResult = mapSparqlSelectResult;
|
|
4
|
+
exports.mapSparqlCreateResult = mapSparqlCreateResult;
|
|
5
|
+
exports.mapSparqlUpdateResult = mapSparqlUpdateResult;
|
|
6
|
+
const xsd_js_1 = require("../ontologies/xsd.js");
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// XSD constants (derived from ontology module)
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
const XSD_BOOLEAN = xsd_js_1.xsd.boolean.id;
|
|
11
|
+
const XSD_INTEGER = xsd_js_1.xsd.integer.id;
|
|
12
|
+
const XSD_LONG = xsd_js_1.xsd.long.id;
|
|
13
|
+
const XSD_DECIMAL = xsd_js_1.xsd.decimal.id;
|
|
14
|
+
const XSD_FLOAT = xsd_js_1.xsd.float.id;
|
|
15
|
+
const XSD_DOUBLE = xsd_js_1.xsd.double.id;
|
|
16
|
+
const XSD_DATE_TIME = xsd_js_1.xsd.dateTime.id;
|
|
17
|
+
const XSD_DATE = xsd_js_1.xsd.date.id;
|
|
18
|
+
const NUMERIC_DATATYPES = new Set([
|
|
19
|
+
XSD_INTEGER,
|
|
20
|
+
XSD_LONG,
|
|
21
|
+
XSD_DECIMAL,
|
|
22
|
+
XSD_FLOAT,
|
|
23
|
+
XSD_DOUBLE,
|
|
24
|
+
]);
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// Helpers
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
/**
|
|
29
|
+
* Extracts the local name (last segment) from a full URI.
|
|
30
|
+
* E.g. "https://data.lincd.org/.../person/name" → "name"
|
|
31
|
+
*/
|
|
32
|
+
function localName(uri) {
|
|
33
|
+
const hashIdx = uri.lastIndexOf('#');
|
|
34
|
+
if (hashIdx >= 0)
|
|
35
|
+
return uri.substring(hashIdx + 1);
|
|
36
|
+
const slashIdx = uri.lastIndexOf('/');
|
|
37
|
+
return slashIdx >= 0 ? uri.substring(slashIdx + 1) : uri;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Derives the SPARQL variable name that will appear in the result bindings
|
|
41
|
+
* for a given projection expression.
|
|
42
|
+
*
|
|
43
|
+
* Convention (aligned with irToAlgebra variable naming):
|
|
44
|
+
* - `property_expr(sourceAlias, property)` → `{sourceAlias}_{localName(property)}`
|
|
45
|
+
* - `alias_expr(alias)` → `{alias}`
|
|
46
|
+
* - `aggregate_expr` → uses the projection alias directly
|
|
47
|
+
* - Anything else → falls back to the projection alias
|
|
48
|
+
*/
|
|
49
|
+
function sparqlVarName(expression, projectionAlias) {
|
|
50
|
+
switch (expression.kind) {
|
|
51
|
+
case 'property_expr':
|
|
52
|
+
return `${expression.sourceAlias}_${localName(expression.property)}`;
|
|
53
|
+
case 'alias_expr':
|
|
54
|
+
return expression.alias;
|
|
55
|
+
case 'aggregate_expr':
|
|
56
|
+
return projectionAlias;
|
|
57
|
+
default:
|
|
58
|
+
return projectionAlias;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Coerces a raw SPARQL binding value into the appropriate JS type
|
|
63
|
+
* based on the binding's type and datatype annotations.
|
|
64
|
+
*/
|
|
65
|
+
function coerceValue(binding) {
|
|
66
|
+
// URI → return the URI string as an id
|
|
67
|
+
if (binding.type === 'uri') {
|
|
68
|
+
return binding.value;
|
|
69
|
+
}
|
|
70
|
+
// Typed literal → coerce based on datatype
|
|
71
|
+
if (binding.datatype) {
|
|
72
|
+
if (binding.datatype === XSD_BOOLEAN) {
|
|
73
|
+
return binding.value === 'true' || binding.value === '1';
|
|
74
|
+
}
|
|
75
|
+
if (NUMERIC_DATATYPES.has(binding.datatype)) {
|
|
76
|
+
return Number(binding.value);
|
|
77
|
+
}
|
|
78
|
+
if (binding.datatype === XSD_DATE_TIME || binding.datatype === XSD_DATE) {
|
|
79
|
+
return new Date(binding.value);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Untyped literal or bnode → string
|
|
83
|
+
return binding.value;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Determines whether a projection expression targets an entity reference
|
|
87
|
+
* (i.e., a URI variable) vs a property value. Used for result structuring.
|
|
88
|
+
*
|
|
89
|
+
* - `alias_expr` → entity reference (the alias itself is a traversed entity)
|
|
90
|
+
* - `property_expr` where the property represents an object property → URI reference
|
|
91
|
+
* - Other expressions → literal/property value
|
|
92
|
+
*/
|
|
93
|
+
function isUriExpression(expression) {
|
|
94
|
+
return expression.kind === 'alias_expr';
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Builds the alias chain from sourceAlias back to rootAlias by walking the traverseMap.
|
|
98
|
+
* Returns the chain from root outward, e.g. [{alias: "a1", property: "friends"}, {alias: "a2", property: "bestFriend"}].
|
|
99
|
+
*/
|
|
100
|
+
function buildAliasChain(sourceAlias, rootAlias, traverseMap) {
|
|
101
|
+
const chain = [];
|
|
102
|
+
let current = sourceAlias;
|
|
103
|
+
while (current !== rootAlias) {
|
|
104
|
+
const info = traverseMap.get(current);
|
|
105
|
+
if (!info)
|
|
106
|
+
break;
|
|
107
|
+
chain.unshift({ alias: current, property: info.property });
|
|
108
|
+
current = info.from;
|
|
109
|
+
}
|
|
110
|
+
return chain;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Inserts a field into the nesting tree at the position described by the alias chain.
|
|
114
|
+
* Creates intermediate NestedGroup nodes as needed.
|
|
115
|
+
*/
|
|
116
|
+
function insertIntoTree(root, chain, field) {
|
|
117
|
+
if (chain.length === 0) {
|
|
118
|
+
// Skip alias_expr fields that match the group's traverseAlias — the entity's
|
|
119
|
+
// id is already captured by collectNestedGroup via binding[traverseAlias].
|
|
120
|
+
if (field.expression.kind === 'alias_expr' &&
|
|
121
|
+
'traverseAlias' in root &&
|
|
122
|
+
field.expression.alias === root.traverseAlias) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
root.flatFields.push(field);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const target = chain[0];
|
|
129
|
+
let group = root.nestedGroups.find((g) => g.traverseAlias === target.alias);
|
|
130
|
+
if (!group) {
|
|
131
|
+
group = {
|
|
132
|
+
key: localName(target.property),
|
|
133
|
+
traverseAlias: target.alias,
|
|
134
|
+
flatFields: [],
|
|
135
|
+
nestedGroups: [],
|
|
136
|
+
};
|
|
137
|
+
root.nestedGroups.push(group);
|
|
138
|
+
}
|
|
139
|
+
// Recurse: remaining chain determines where the field sits within this group
|
|
140
|
+
insertIntoTree(group, chain.slice(1), field);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Analyzes the query structure to build a recursive nesting descriptor that guides
|
|
144
|
+
* how flat SPARQL bindings should be grouped into nested result objects.
|
|
145
|
+
*/
|
|
146
|
+
function buildNestingDescriptor(query) {
|
|
147
|
+
var _a;
|
|
148
|
+
const rootAlias = query.root.alias;
|
|
149
|
+
// Build a map from alias → traverse pattern (to identify which aliases are traversals)
|
|
150
|
+
const traverseMap = new Map();
|
|
151
|
+
for (const pattern of query.patterns) {
|
|
152
|
+
if (pattern.kind === 'traverse') {
|
|
153
|
+
traverseMap.set(pattern.to, { from: pattern.from, property: pattern.property });
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const descriptor = {
|
|
157
|
+
rootVar: rootAlias,
|
|
158
|
+
flatFields: [],
|
|
159
|
+
nestedGroups: [],
|
|
160
|
+
};
|
|
161
|
+
const resultMap = (_a = query.resultMap) !== null && _a !== void 0 ? _a : [];
|
|
162
|
+
const projectionByAlias = new Map(query.projection.map((p) => [p.alias, p]));
|
|
163
|
+
for (const entry of resultMap) {
|
|
164
|
+
const projItem = projectionByAlias.get(entry.alias);
|
|
165
|
+
if (!projItem)
|
|
166
|
+
continue;
|
|
167
|
+
const expression = projItem.expression;
|
|
168
|
+
const sparqlVar = sparqlVarName(expression, entry.alias);
|
|
169
|
+
const resultKey = localName(entry.key);
|
|
170
|
+
// Determine which entity this field belongs to
|
|
171
|
+
let sourceAlias;
|
|
172
|
+
if (expression.kind === 'property_expr') {
|
|
173
|
+
sourceAlias = expression.sourceAlias;
|
|
174
|
+
}
|
|
175
|
+
else if (expression.kind === 'alias_expr') {
|
|
176
|
+
sourceAlias = expression.alias;
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
sourceAlias = rootAlias;
|
|
180
|
+
}
|
|
181
|
+
const field = { key: resultKey, sparqlVar, expression };
|
|
182
|
+
if (sourceAlias === rootAlias) {
|
|
183
|
+
descriptor.flatFields.push(field);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
// Build the full chain from root to sourceAlias and insert into tree
|
|
187
|
+
const chain = buildAliasChain(sourceAlias, rootAlias, traverseMap);
|
|
188
|
+
insertIntoTree(descriptor, chain, field);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// Validate: no duplicate keys at the flat level
|
|
192
|
+
const flatKeys = descriptor.flatFields.map((f) => f.key);
|
|
193
|
+
const dupFlat = flatKeys.find((k, i) => flatKeys.indexOf(k) !== i);
|
|
194
|
+
if (dupFlat) {
|
|
195
|
+
throw new Error(`Duplicate result key "${dupFlat}" in projection. ` +
|
|
196
|
+
`Two properties with the same local name cannot appear in the same projection.`);
|
|
197
|
+
}
|
|
198
|
+
return descriptor;
|
|
199
|
+
}
|
|
200
|
+
// ---------------------------------------------------------------------------
|
|
201
|
+
// Main API: mapSparqlSelectResult
|
|
202
|
+
// ---------------------------------------------------------------------------
|
|
203
|
+
/**
|
|
204
|
+
* Maps a SPARQL JSON result set back into the `SelectResult` shape expected
|
|
205
|
+
* by the Linked DSL.
|
|
206
|
+
*
|
|
207
|
+
* 1. Walks `query.resultMap` to know which alias → result key mapping
|
|
208
|
+
* 2. Walks `query.projection` to know each alias's expression type (for type coercion)
|
|
209
|
+
* 3. For each binding row, extracts values by variable name, coerces types, handles missing → null
|
|
210
|
+
* 4. Groups rows by root alias to reconstruct nested objects
|
|
211
|
+
* 5. If `query.singleResult` → returns single row or null
|
|
212
|
+
*/
|
|
213
|
+
function mapSparqlSelectResult(json, query) {
|
|
214
|
+
const bindings = json.results.bindings;
|
|
215
|
+
// If no resultMap, just return entity references
|
|
216
|
+
if (!query.resultMap || query.resultMap.length === 0) {
|
|
217
|
+
const rootVar = query.root.alias;
|
|
218
|
+
const rows = [];
|
|
219
|
+
const seenIds = new Set();
|
|
220
|
+
for (const binding of bindings) {
|
|
221
|
+
const rootBinding = binding[rootVar];
|
|
222
|
+
if (!rootBinding)
|
|
223
|
+
continue;
|
|
224
|
+
const id = rootBinding.value;
|
|
225
|
+
if (seenIds.has(id))
|
|
226
|
+
continue;
|
|
227
|
+
seenIds.add(id);
|
|
228
|
+
rows.push({ id });
|
|
229
|
+
}
|
|
230
|
+
if (query.singleResult) {
|
|
231
|
+
return rows.length > 0 ? rows[0] : null;
|
|
232
|
+
}
|
|
233
|
+
return rows;
|
|
234
|
+
}
|
|
235
|
+
const descriptor = buildNestingDescriptor(query);
|
|
236
|
+
// If there are no nested groups, produce flat rows
|
|
237
|
+
if (descriptor.nestedGroups.length === 0) {
|
|
238
|
+
return mapFlatRows(bindings, descriptor, query);
|
|
239
|
+
}
|
|
240
|
+
// Otherwise, group and nest
|
|
241
|
+
return mapNestedRows(bindings, descriptor, query);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Maps flat (non-nested) result rows — no traversals involved.
|
|
245
|
+
*/
|
|
246
|
+
function mapFlatRows(bindings, descriptor, query) {
|
|
247
|
+
const rows = [];
|
|
248
|
+
const seenIds = new Set();
|
|
249
|
+
for (const binding of bindings) {
|
|
250
|
+
const rootBinding = binding[descriptor.rootVar];
|
|
251
|
+
if (!rootBinding)
|
|
252
|
+
continue;
|
|
253
|
+
const id = rootBinding.value;
|
|
254
|
+
// Deduplicate by root id
|
|
255
|
+
if (seenIds.has(id))
|
|
256
|
+
continue;
|
|
257
|
+
seenIds.add(id);
|
|
258
|
+
const row = { id };
|
|
259
|
+
for (const field of descriptor.flatFields) {
|
|
260
|
+
const val = binding[field.sparqlVar];
|
|
261
|
+
if (!val) {
|
|
262
|
+
row[field.key] = null;
|
|
263
|
+
}
|
|
264
|
+
else if (isUriExpression(field.expression) && val.type === 'uri') {
|
|
265
|
+
// An alias_expr that resolved to a URI → wrap as nested entity ref
|
|
266
|
+
row[field.key] = { id: val.value };
|
|
267
|
+
}
|
|
268
|
+
else if (val.type === 'uri') {
|
|
269
|
+
// A property_expr that returned a URI → entity reference
|
|
270
|
+
row[field.key] = { id: val.value };
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
row[field.key] = coerceValue(val);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
rows.push(row);
|
|
277
|
+
}
|
|
278
|
+
if (query.singleResult) {
|
|
279
|
+
return rows.length > 0 ? rows[0] : null;
|
|
280
|
+
}
|
|
281
|
+
return rows;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Populates fields on a ResultRow from a single SPARQL binding.
|
|
285
|
+
* Handles URI expressions (entity references) and literal coercion.
|
|
286
|
+
*/
|
|
287
|
+
function populateFields(row, fields, binding) {
|
|
288
|
+
for (const field of fields) {
|
|
289
|
+
const val = binding[field.sparqlVar];
|
|
290
|
+
if (!val) {
|
|
291
|
+
row[field.key] = null;
|
|
292
|
+
}
|
|
293
|
+
else if (isUriExpression(field.expression) && val.type === 'uri') {
|
|
294
|
+
row[field.key] = { id: val.value };
|
|
295
|
+
}
|
|
296
|
+
else if (val.type === 'uri') {
|
|
297
|
+
row[field.key] = { id: val.value };
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
row[field.key] = coerceValue(val);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Scans bindings to identify which nested groups represent literal property
|
|
306
|
+
* traversals (e.g. `p.hobby.where(h => h.equals('Jogging'))`) vs entity
|
|
307
|
+
* traversals. Returns a set of traverse aliases that resolve to literals.
|
|
308
|
+
*
|
|
309
|
+
* Scans ALL non-null bindings for each group to validate type consistency.
|
|
310
|
+
* If mixed types are found (both URI and literal), defaults to literal
|
|
311
|
+
* treatment — coerceValue handles both safely.
|
|
312
|
+
*/
|
|
313
|
+
function detectLiteralTraversals(groups, bindings) {
|
|
314
|
+
const literalAliases = new Set();
|
|
315
|
+
for (const group of groups) {
|
|
316
|
+
let seenUri = false;
|
|
317
|
+
let seenLiteral = false;
|
|
318
|
+
for (const binding of bindings) {
|
|
319
|
+
const val = binding[group.traverseAlias];
|
|
320
|
+
if (!val)
|
|
321
|
+
continue;
|
|
322
|
+
if (val.type === 'uri')
|
|
323
|
+
seenUri = true;
|
|
324
|
+
else
|
|
325
|
+
seenLiteral = true;
|
|
326
|
+
}
|
|
327
|
+
// Literal-only or mixed types → treat as literal (safe fallback)
|
|
328
|
+
if (seenLiteral) {
|
|
329
|
+
literalAliases.add(group.traverseAlias);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return literalAliases;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Collects the coerced literal value from a nested group that traverses a
|
|
336
|
+
* datatype property. Returns the first non-null value, or null if absent.
|
|
337
|
+
*/
|
|
338
|
+
function collectLiteralTraversalValue(nestedGroup, bindings) {
|
|
339
|
+
for (const binding of bindings) {
|
|
340
|
+
const val = binding[nestedGroup.traverseAlias];
|
|
341
|
+
if (!val)
|
|
342
|
+
continue;
|
|
343
|
+
return coerceValue(val);
|
|
344
|
+
}
|
|
345
|
+
return null;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Recursively collects entities for a nested group from a set of bindings.
|
|
349
|
+
* Groups bindings by the nested entity's ID, populates fields, and recurses
|
|
350
|
+
* into any deeper nested groups.
|
|
351
|
+
*/
|
|
352
|
+
function collectNestedGroup(nestedGroup, bindings) {
|
|
353
|
+
const entityMap = new Map();
|
|
354
|
+
for (const binding of bindings) {
|
|
355
|
+
const idBinding = binding[nestedGroup.traverseAlias];
|
|
356
|
+
if (!idBinding)
|
|
357
|
+
continue;
|
|
358
|
+
const entityId = idBinding.value;
|
|
359
|
+
let entry = entityMap.get(entityId);
|
|
360
|
+
if (!entry) {
|
|
361
|
+
const nestedRow = { id: entityId };
|
|
362
|
+
populateFields(nestedRow, nestedGroup.flatFields, binding);
|
|
363
|
+
entry = { row: nestedRow, bindings: [] };
|
|
364
|
+
entityMap.set(entityId, entry);
|
|
365
|
+
}
|
|
366
|
+
entry.bindings.push(binding);
|
|
367
|
+
}
|
|
368
|
+
// Recurse into deeper nested groups
|
|
369
|
+
const allNestedBindings = Array.from(entityMap.values()).flatMap((e) => e.bindings);
|
|
370
|
+
const deepLiteralAliases = detectLiteralTraversals(nestedGroup.nestedGroups, allNestedBindings);
|
|
371
|
+
for (const [, entry] of entityMap) {
|
|
372
|
+
for (const deeperGroup of nestedGroup.nestedGroups) {
|
|
373
|
+
if (deepLiteralAliases.has(deeperGroup.traverseAlias)) {
|
|
374
|
+
entry.row[deeperGroup.key] = collectLiteralTraversalValue(deeperGroup, entry.bindings);
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
entry.row[deeperGroup.key] = collectNestedGroup(deeperGroup, entry.bindings);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return Array.from(entityMap.values()).map((e) => e.row);
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Maps nested result rows — groups flat SPARQL bindings by root entity,
|
|
385
|
+
* then recursively collects traversed entities into nested arrays.
|
|
386
|
+
*/
|
|
387
|
+
function mapNestedRows(bindings, descriptor, query) {
|
|
388
|
+
// Group bindings by root entity id
|
|
389
|
+
const rootGroups = new Map();
|
|
390
|
+
for (const binding of bindings) {
|
|
391
|
+
const rootBindingVal = binding[descriptor.rootVar];
|
|
392
|
+
if (!rootBindingVal)
|
|
393
|
+
continue;
|
|
394
|
+
const rootId = rootBindingVal.value;
|
|
395
|
+
let group = rootGroups.get(rootId);
|
|
396
|
+
if (!group) {
|
|
397
|
+
group = [];
|
|
398
|
+
rootGroups.set(rootId, group);
|
|
399
|
+
}
|
|
400
|
+
group.push(binding);
|
|
401
|
+
}
|
|
402
|
+
// Pre-scan ALL bindings to determine which nested groups are literal traversals.
|
|
403
|
+
// This must span all root groups because a specific root entity may have no
|
|
404
|
+
// binding for the alias (OPTIONAL miss) — we need at least one bound value
|
|
405
|
+
// to know the type.
|
|
406
|
+
const literalAliases = detectLiteralTraversals(descriptor.nestedGroups, bindings);
|
|
407
|
+
const rows = [];
|
|
408
|
+
for (const [rootId, groupBindings] of rootGroups) {
|
|
409
|
+
const row = { id: rootId };
|
|
410
|
+
// Flat fields from the first binding (they're the same across all grouped rows)
|
|
411
|
+
populateFields(row, descriptor.flatFields, groupBindings[0]);
|
|
412
|
+
// Nested groups — recursively collect traversed entities (or literal values)
|
|
413
|
+
for (const nestedGroup of descriptor.nestedGroups) {
|
|
414
|
+
if (literalAliases.has(nestedGroup.traverseAlias)) {
|
|
415
|
+
row[nestedGroup.key] = collectLiteralTraversalValue(nestedGroup, groupBindings);
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
row[nestedGroup.key] = collectNestedGroup(nestedGroup, groupBindings);
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
rows.push(row);
|
|
422
|
+
}
|
|
423
|
+
if (query.singleResult) {
|
|
424
|
+
return rows.length > 0 ? rows[0] : null;
|
|
425
|
+
}
|
|
426
|
+
return rows;
|
|
427
|
+
}
|
|
428
|
+
// ---------------------------------------------------------------------------
|
|
429
|
+
// mapSparqlCreateResult
|
|
430
|
+
// ---------------------------------------------------------------------------
|
|
431
|
+
/**
|
|
432
|
+
* Constructs a `CreateResult` from a generated URI and the IR create mutation.
|
|
433
|
+
* Echoes back the created fields as a `ResultRow` with the generated URI as `id`.
|
|
434
|
+
*/
|
|
435
|
+
function mapSparqlCreateResult(generatedUri, query) {
|
|
436
|
+
const row = { id: generatedUri };
|
|
437
|
+
populateRowFromNodeData(row, query.data);
|
|
438
|
+
return row;
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Recursively populates a ResultRow from IRNodeData.
|
|
442
|
+
*/
|
|
443
|
+
function populateRowFromNodeData(row, data) {
|
|
444
|
+
for (const field of data.fields) {
|
|
445
|
+
const key = localName(field.property);
|
|
446
|
+
row[key] = fieldValueToResult(field.value);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Converts an IRFieldValue to the corresponding ResultFieldValue.
|
|
451
|
+
*/
|
|
452
|
+
function fieldValueToResult(value) {
|
|
453
|
+
if (value === null || value === undefined)
|
|
454
|
+
return null;
|
|
455
|
+
if (typeof value === 'string')
|
|
456
|
+
return value;
|
|
457
|
+
if (typeof value === 'number')
|
|
458
|
+
return value;
|
|
459
|
+
if (typeof value === 'boolean')
|
|
460
|
+
return value;
|
|
461
|
+
if (value instanceof Date)
|
|
462
|
+
return value;
|
|
463
|
+
// NodeReferenceValue — has an id field
|
|
464
|
+
if (typeof value === 'object' && 'id' in value && !('shape' in value) && !('fields' in value)) {
|
|
465
|
+
return { id: value.id };
|
|
466
|
+
}
|
|
467
|
+
// IRNodeData — nested created entity
|
|
468
|
+
if (typeof value === 'object' && 'shape' in value && 'fields' in value) {
|
|
469
|
+
const nested = value;
|
|
470
|
+
const nestedRow = { id: nested.id || '' };
|
|
471
|
+
populateRowFromNodeData(nestedRow, nested);
|
|
472
|
+
return nestedRow;
|
|
473
|
+
}
|
|
474
|
+
// Array
|
|
475
|
+
if (Array.isArray(value)) {
|
|
476
|
+
return value.map((item) => {
|
|
477
|
+
const result = fieldValueToResult(item);
|
|
478
|
+
if (result && typeof result === 'object' && 'id' in result) {
|
|
479
|
+
return result;
|
|
480
|
+
}
|
|
481
|
+
return result;
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
return null;
|
|
485
|
+
}
|
|
486
|
+
// ---------------------------------------------------------------------------
|
|
487
|
+
// mapSparqlUpdateResult
|
|
488
|
+
// ---------------------------------------------------------------------------
|
|
489
|
+
/**
|
|
490
|
+
* Constructs an `UpdateResult` from the IR update mutation.
|
|
491
|
+
* Echoes back the updated fields as an `UpdateResult` with the target node's `id`.
|
|
492
|
+
*/
|
|
493
|
+
function mapSparqlUpdateResult(query) {
|
|
494
|
+
const result = { id: query.id };
|
|
495
|
+
for (const field of query.data.fields) {
|
|
496
|
+
const key = localName(field.property);
|
|
497
|
+
result[key] = fieldValueToResult(field.value);
|
|
498
|
+
}
|
|
499
|
+
return result;
|
|
500
|
+
}
|
|
501
|
+
//# sourceMappingURL=resultMapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resultMapping.js","sourceRoot":"","sources":["../../../src/sparql/resultMapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface SparqlOptions {
|
|
2
|
+
dataRoot?: string;
|
|
3
|
+
prefixes?: Record<string, string>;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Format a URI for SPARQL output.
|
|
7
|
+
* Returns prefixed form (e.g. `rdf:type`) if a prefix is registered and the
|
|
8
|
+
* suffix doesn't contain `/`. Otherwise returns `<full-uri>`.
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatUri(uri: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Escapes special characters in a string for use inside SPARQL double-quoted literals.
|
|
13
|
+
* Per SPARQL 1.1 §19.7 (Escape sequences in strings).
|
|
14
|
+
*/
|
|
15
|
+
export declare function escapeSparqlString(value: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Format a literal value for SPARQL output.
|
|
18
|
+
* Returns a quoted string with optional `^^<datatype>` suffix.
|
|
19
|
+
* Special characters in the value are escaped per SPARQL spec.
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatLiteral(value: string | number | boolean | Date, datatype?: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Collect the minimal set of prefix→URI mappings needed for a set of URIs.
|
|
24
|
+
* Only includes prefixes that are actually used (i.e. `Prefix.toPrefixed`
|
|
25
|
+
* returns a value for at least one URI in the list).
|
|
26
|
+
*/
|
|
27
|
+
export declare function collectPrefixes(usedUris: string[]): Record<string, string>;
|
|
28
|
+
/**
|
|
29
|
+
* Generate a new entity URI for a create mutation.
|
|
30
|
+
* Format: `{dataRoot}/{lowercaseShapeLabel}_{ulid}`
|
|
31
|
+
*/
|
|
32
|
+
export declare function generateEntityUri(shape: string, options?: SparqlOptions): string;
|