data-pipeline-information-system-sparql
Version:
Sparql function to query/update RDF through SPARQL 1.1
50 lines • 1.95 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var sparqljs_1 = __importDefault(require("sparqljs"));
var prefixes = {};
function generateBody(definition) {
prefixes = {};
var out_query = _generateBody(definition);
var generator = new sparqljs_1.default.Generator(prefixes);
console.log(out_query);
return generator.stringify(out_query);
}
exports.generateBody = generateBody;
function _generateBody(definition) {
var coreQuery = definition.query;
prefixes = __assign({}, prefixes, definition.query.prefixes);
definition.query.prefixes = {};
Object.keys(definition.subQuery).forEach(function (refAttribute) {
var subDefinition = definition.subQuery[refAttribute];
var subQuery = subDefinition.query;
var parser = new sparqljs_1.default.Parser();
var _res = parser.parse("\n SELECT (?" + subDefinition.primaryKey + " AS ?" + refAttribute + "_pKey) WHERE {\n ?uri a ?thing\n }");
(subQuery.variables).push(_res.variables[0]);
subQuery.variables[0].variable = ('?' + refAttribute);
_generateBody(subDefinition);
var addGroup = {
type: 'group',
patterns: [
subQuery
]
};
coreQuery.where.push(addGroup);
});
return coreQuery;
}
exports.default = generateBody;
//# sourceMappingURL=generateBody.js.map