data-pipeline-information-system-sparql
Version:
Sparql function to query/update RDF through SPARQL 1.1
94 lines • 3.5 kB
JavaScript
;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var SparqlTask_1 = __importDefault(require("../Core/SparqlTask"));
var common_1 = require("../SparqlObject/common");
function jsonRepresentation(reference, alias, path, asString) {
if (path === void 0) { path = []; }
if (asString === void 0) { asString = false; }
var model = SparqlTask_1.default.sparqlObjects[reference];
var concat_operation = {
type: 'operation',
operator: 'concat',
args: []
};
var representation = "(CONCAT ('{', ";
concat_operation.args.push(('{'));
representation += model.attributes.map(function (attribute) {
concat_operation.args.push(('\'"' + attribute.name + '":'));
var subRepresentation = '\'"' + attribute.name + '":';
if (attribute.arrayable) {
concat_operation.args.push(("["));
var concat_aggregate = {
type: 'aggregate',
aggregation: 'group_concat',
distinct: true,
separator: ',',
expression: [(expression(attribute))]
};
concat_operation.args.push(concat_aggregate);
concat_operation.args.push(("]"));
subRepresentation += "[',GROUP_CONCAT(DISTINCT CONCAT( " + expression(attribute) + ");separator=','),']'";
}
else {
concat_operation.args.push(("'," + expression(attribute)));
subRepresentation += "'," + expression(attribute);
}
return subRepresentation;
})
.join(',",",');
var _jsonRepresentation = {
expression: concat_operation,
variable: common_1.pathToBinding(__spread(path, [alias || model.reference]))
};
representation += ",'}') AS " + common_1.pathToBinding(__spread(path, [alias || model.reference])) + ")";
if (asString) {
return representation;
}
else {
return _jsonRepresentation;
}
}
exports.jsonRepresentation = jsonRepresentation;
function groupBy(reference, path) {
if (path === void 0) { path = []; }
var model = SparqlTask_1.default.sparqlObjects[reference];
var groupBy = model.attributes.filter(function (attribute) {
return !attribute.arrayable;
}).map(function (attribute) {
return common_1.pathToBinding(__spread(path, [attribute.name]));
}).join(' ');
return groupBy;
}
exports.groupBy = groupBy;
function expression(attribute) {
if (attribute.type === 'OBJECT') {
return common_1.pathToBinding([attribute.name]);
}
else {
return '\'"\',' + common_1.pathToBinding([attribute.name]) + ',\'"\'';
}
}
//# sourceMappingURL=_select.js.map