data-pipeline-information-system-sparql
Version:
Sparql function to query/update RDF through SPARQL 1.1
101 lines • 4.4 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 types_1 = require("../Core/types");
var common_1 = require("../SparqlObject/common");
var stringifier_1 = __importDefault(require("../common/stringifier"));
var allBodiesAsTriples;
function initialize(reference, insertRequest) {
allBodiesAsTriples = {};
insertRequest.forEach(function (jsonRequest) {
parseInstance(jsonRequest, reference);
});
this.insertModel = allBodiesAsTriples;
}
exports.initialize = initialize;
function initializeTripleFromReference(reference) {
var allTriples = [];
var triplesFromArrayable = [];
SparqlTask_1.default.sparqlObjects[reference].attributes.forEach(function (attribute) {
if (!attribute.arrayable) {
allTriples.push.apply(allTriples, __spread(attribute.triples));
}
else {
triplesFromArrayable.push.apply(triplesFromArrayable, __spread(attribute.triples));
}
});
var out = allTriples.filter(function (triple, index, array) {
return (array.indexOf(triple) === index) &&
(triplesFromArrayable.indexOf(triple) === -1);
});
return out;
}
function parseInstance(instance, reference) {
var model = SparqlTask_1.default.sparqlObjects[reference];
var attributesDictionary = model.dictionify();
var initialBody = initializeTripleFromReference(reference);
var dictionary = {};
Object.keys(instance).forEach(function (attributeName) {
var attribute = attributesDictionary[attributeName];
if (attribute.arrayable) {
if (attribute.type === types_1.Type.OBJECT && typeof instance[attributeName] === 'object') {
var pKey_1 = SparqlTask_1.default.sparqlObjects[attribute.reference].primaryKey;
var subInstanceArray = instance[attributeName];
subInstanceArray.forEach(function (subInstance) {
var value = common_1.parseValue(subInstance[pKey_1]);
initialBody.push.apply(initialBody, __spread(attribute.parseTriple(value)));
parseInstance(subInstance, attribute.reference);
});
}
else {
var subValueArray = instance[attributeName];
subValueArray.map(function (subValue) { return common_1.parseValue(subValue); }).forEach(function (subValue) {
initialBody.push.apply(initialBody, __spread(attribute.parseTriple(subValue)));
});
}
}
else {
if (attribute.type === types_1.Type.OBJECT && typeof instance[attributeName] === 'object') {
var pKey = SparqlTask_1.default.sparqlObjects[attribute.reference].primaryKey;
var subInstance = instance[attributeName];
var value = common_1.parseValue(subInstance[pKey]);
dictionary[attributeName] = value;
parseInstance(subInstance, attribute.reference);
}
else {
var value = common_1.parseValue(instance[attributeName]);
dictionary[attributeName] = value;
}
}
});
initialBody = initialBody.map(function (triple) {
return stringifier_1.default(triple, dictionary, { keyPrefix: '?', asRegExp: false });
});
allBodiesAsTriples[reference] = allBodiesAsTriples[reference] || [];
allBodiesAsTriples[reference].push(initialBody);
}
exports.default = initialize;
//# sourceMappingURL=_init.js.map