data-pipeline-information-system-sparql
Version:
Sparql function to query/update RDF through SPARQL 1.1
68 lines • 2.67 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = require("../Core/types");
var sparqljs_1 = __importDefault(require("sparqljs"));
var common_1 = require("../SparqlObject/common");
function initialize(confAttribute, sparqlObject) {
if (confAttribute === void 0) { confAttribute = new types_1.ConfigurationAttribute(); }
this.name = confAttribute.name;
this.arrayable = confAttribute.arrayable;
this.type = confAttribute.type || types_1.Type.LITTERAL;
this.reference = confAttribute.reference || '';
if (confAttribute.reference)
this.type = types_1.Type.OBJECT;
var out = 'SELECT * WHERE { ' + sparqlObject.coreDefinition + ' }';
var parser = new sparqljs_1.default.Parser(sparqlObject.prefixes);
var parsed_definition = parser.parse(out);
parsePattern.call(this, parsed_definition);
}
exports.initialize = initialize;
function parseTriple(triples, optionalToggle) {
var _this = this;
if (optionalToggle === void 0) { optionalToggle = false; }
triples.forEach(function (triple) {
[triple.subject, triple.predicate, triple.object]
.forEach(function (str, index, triple) {
if (str.toString().match('^\\?' + _this.name)) {
_this.optional = optionalToggle;
_this.triples.push(triple.map(function (rdfTerm) {
if (common_1.isUri(rdfTerm)) {
return '<' + rdfTerm + '>';
}
else {
return rdfTerm;
}
}).join(' '));
}
});
});
}
exports.default = initialize;
function parsePattern(pattern, optionalToggle) {
var _this = this;
if (optionalToggle === void 0) { optionalToggle = false; }
switch (pattern.type) {
case 'bgp':
parseTriple.call(this, pattern.triples, optionalToggle);
break;
case 'optional':
pattern.patterns.forEach(function (_pattern) {
parsePattern.call(_this, _pattern, true);
});
break;
case 'group':
pattern.patterns.forEach(function (_pattern) {
parsePattern.call(_this, _pattern, optionalToggle);
});
break;
case 'query':
pattern.where.forEach(function (_pattern) {
parsePattern.call(_this, _pattern, optionalToggle);
});
break;
}
}
//# sourceMappingURL=_init.js.map