sparnatural
Version:
Visual client-side SPARQL query builder and knowledge graph exploration tool
65 lines • 5.54 kB
JavaScript
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _IntersectionBuilder_startClassVar, _IntersectionBuilder_endClassVar, _IntersectionBuilder_valueBuilder, _IntersectionBuilder_objectPropCls;
import { DataFactory } from 'rdf-data-factory';
import SparqlFactory from "./SparqlFactory";
const factory = new DataFactory();
export default class IntersectionBuilder {
constructor(startClassVar, endClassVar, valueBuilder, objectPropCls, specProvider, settings) {
_IntersectionBuilder_startClassVar.set(this, void 0);
_IntersectionBuilder_endClassVar.set(this, void 0);
_IntersectionBuilder_valueBuilder.set(this, void 0);
_IntersectionBuilder_objectPropCls.set(this, void 0);
this.resultPtrn = [];
__classPrivateFieldSet(this, _IntersectionBuilder_startClassVar, startClassVar, "f");
__classPrivateFieldSet(this, _IntersectionBuilder_endClassVar, endClassVar, "f");
__classPrivateFieldSet(this, _IntersectionBuilder_valueBuilder, valueBuilder, "f");
__classPrivateFieldSet(this, _IntersectionBuilder_objectPropCls, objectPropCls, "f");
this.specProvider = specProvider;
this.settings = settings;
}
build() {
// the intersection triple can very well be generated even if no rdf:type triple is generated for the end class.
if (__classPrivateFieldGet(this, _IntersectionBuilder_startClassVar, "f") && __classPrivateFieldGet(this, _IntersectionBuilder_endClassVar, "f") && !__classPrivateFieldGet(this, _IntersectionBuilder_valueBuilder, "f")?.isBlockingObjectProp()) {
let specProperty = this.specProvider.getProperty(__classPrivateFieldGet(this, _IntersectionBuilder_objectPropCls, "f").getTypeSelected());
if (specProperty.getBeginDateProperty() && specProperty.getEndDateProperty()) {
if (specProperty.getBeginDateProperty()) {
this.resultPtrn.push(SparqlFactory.buildOptionalPattern([
SparqlFactory.buildBgpPattern([SparqlFactory.buildIntersectionTriple(factory.variable(__classPrivateFieldGet(this, _IntersectionBuilder_startClassVar, "f")), specProperty.getBeginDateProperty(), factory.variable(__classPrivateFieldGet(this, _IntersectionBuilder_endClassVar, "f") + "_begin"))])
]));
}
if (specProperty.getEndDateProperty()) {
this.resultPtrn.push(SparqlFactory.buildOptionalPattern([
SparqlFactory.buildBgpPattern([SparqlFactory.buildIntersectionTriple(factory.variable(__classPrivateFieldGet(this, _IntersectionBuilder_startClassVar, "f")), specProperty.getEndDateProperty(), factory.variable(__classPrivateFieldGet(this, _IntersectionBuilder_endClassVar, "f") + "_end"))])
]));
}
if (specProperty.getExactDateProperty()) {
this.resultPtrn.push(SparqlFactory.buildOptionalPattern([
SparqlFactory.buildBgpPattern([SparqlFactory.buildIntersectionTriple(factory.variable(__classPrivateFieldGet(this, _IntersectionBuilder_startClassVar, "f")), specProperty.getEndDateProperty(), factory.variable(__classPrivateFieldGet(this, _IntersectionBuilder_endClassVar, "f") + "_exact"))])
]));
}
}
else {
this.resultPtrn.push(SparqlFactory.buildBgpPattern([SparqlFactory.buildIntersectionTriple(factory.variable(__classPrivateFieldGet(this, _IntersectionBuilder_startClassVar, "f")), __classPrivateFieldGet(this, _IntersectionBuilder_objectPropCls, "f").getTypeSelected(), factory.variable(__classPrivateFieldGet(this, _IntersectionBuilder_endClassVar, "f")))]));
}
// add language filter if property is set to be multilingual
if (this.specProvider.getProperty(__classPrivateFieldGet(this, _IntersectionBuilder_objectPropCls, "f").getTypeSelected()).isMultilingual()) {
this.resultPtrn.push(SparqlFactory.buildFilterLangEquals(factory.variable(__classPrivateFieldGet(this, _IntersectionBuilder_endClassVar, "f")), factory.literal(this.settings.language)));
}
}
}
getPattern() {
return this.resultPtrn;
}
}
_IntersectionBuilder_startClassVar = new WeakMap(), _IntersectionBuilder_endClassVar = new WeakMap(), _IntersectionBuilder_valueBuilder = new WeakMap(), _IntersectionBuilder_objectPropCls = new WeakMap();
//# sourceMappingURL=IntersectionBuilder.js.map