UNPKG

data-pipeline-information-system-sparql

Version:

Sparql function to query/update RDF through SPARQL 1.1

68 lines 2.67 kB
"use strict"; 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