data-pipeline-information-system-sparql
Version:
Sparql function to query/update RDF through SPARQL 1.1
41 lines • 1.94 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var SparqlAttribute_1 = __importDefault(require("../SparqlAttribute/SparqlAttribute"));
var stringifier_1 = __importDefault(require("../common/stringifier"));
var sparqljs_1 = __importDefault(require("sparqljs"));
function bindingAsRegex(str) {
return '(?<![a-zA-Z])\\?' + str + '(?=[^a-zA-Z_])';
}
function initialisation(configuration) {
var _this = this;
this.reference = configuration.reference;
this.coreDefinition = computeDefinition(configuration);
this.prefixes = configuration.prefixes || {};
this.primaryKey = configuration.primaryKey;
var out = 'SELECT * WHERE { ' + this.coreDefinition + ' }';
var parser = new sparqljs_1.default.Parser(this.prefixes);
this.parsedDefinition = parser.parse(out).where;
console.log(this.parsedDefinition);
configuration.attributes.forEach(function (configurationAttribute) {
var sparqlAttribute = new SparqlAttribute_1.default(_this, configurationAttribute);
_this.attributes.push(sparqlAttribute);
});
}
exports.initialisation = initialisation;
function computeDefinition(configuration) {
return configuration.attributes.filter(function (attribute) { return (attribute.reference !== null && attribute.reference !== undefined); })
.reduce(function (accDefinition, referencedAttribute) {
var _a;
console.log(referencedAttribute.reference);
return stringifier_1.default(accDefinition, (_a = {}, _a[referencedAttribute.name] = '?' + referencedAttribute.name + '_pKey', _a), {
asRegExp: false,
keyPrefix: '?',
keySuffix: ''
});
}, configuration.definition);
}
exports.default = initialisation;
//# sourceMappingURL=_initialisation.js.map