rdf-dataset-fragmenter
Version:
Fragments an RDF dataset into multiple parts
30 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QuadTransformerAppendResourceScl = void 0;
const rdf_data_factory_1 = require("rdf-data-factory");
const QuadTransformerAppendResourceAdapter_1 = require("./QuadTransformerAppendResourceAdapter");
const DF = new rdf_data_factory_1.DataFactory();
/**
* A quad transformer that appends SCL policies to resources of the given type.
*/
class QuadTransformerAppendResourceScl extends QuadTransformerAppendResourceAdapter_1.QuadTransformerAppendResourceAdapter {
/* eslint-disable ts/naming-convention */
static PREFIX_SCL = 'https://w3id.org/scl/vocab#';
static IRI_SCL_APPLIES_TO = DF.namedNode(`${QuadTransformerAppendResourceScl.PREFIX_SCL}appliesTo`);
static IRI_SCL_SCOPE = DF.namedNode(`${QuadTransformerAppendResourceScl.PREFIX_SCL}scope`);
static IRI_SCL_TYPE = DF.namedNode(`${QuadTransformerAppendResourceScl.PREFIX_SCL}SCL`);
/* eslint-enable ts/naming-convention */
identifierSuffix;
sclPolicy;
constructor(typeRegex, identifierSuffix, sclPolicy) {
super(typeRegex);
this.identifierSuffix = identifierSuffix;
this.sclPolicy = sclPolicy;
}
appendQuads(original, results) {
const policyId = DF.namedNode(original.subject.value + this.identifierSuffix);
results.push(DF.quad(policyId, QuadTransformerAppendResourceScl.IRI_SCL_APPLIES_TO, original.subject), DF.quad(policyId, QuadTransformerAppendResourceScl.IRI_SCL_SCOPE, DF.literal(this.sclPolicy, QuadTransformerAppendResourceScl.IRI_SCL_TYPE)));
}
}
exports.QuadTransformerAppendResourceScl = QuadTransformerAppendResourceScl;
//# sourceMappingURL=QuadTransformerAppendResourceScl.js.map