Skip to content
Snippets Groups Projects

Draft: New: Ignore templating values (coscine/issues#2805)

Closed Benedikt Heinrichs requested to merge Issue/2805-ignoreTemplatingValues into dev
4 files
+ 44
3
Compare changes
  • Side-by-side
  • Inline
Files
4
@@ -52,6 +52,7 @@ export default defineComponent({
dataset: Dataset,
subjectNode: Quad_Subject,
validationContext = '',
ignoreTemplateValues = false,
): void {
if (this.timeOuts[validationContext]) {
clearTimeout(this.timeOuts[validationContext]);
@@ -116,6 +117,10 @@ export default defineComponent({
}
}
if (ignoreTemplateValues) {
this.deactiveTemplateRules(clonedDataset, combinedMetadata);
}
const validator = new SHACLValidator(clonedDataset);
const report = validator.validate(combinedMetadata);
@@ -130,6 +135,32 @@ export default defineComponent({
return report;
}, this.validationDebounce) as unknown as number;
},
deactiveTemplateRules(shape: Dataset, metadata: Dataset) {
for (const quad of metadata) {
if (!quad.object.value.match(/\{\{.*?\}\}/)) {
continue;
}
const pathRelations = Array.from(
shape.match(
null,
factory.namedNode(prefixes.sh + 'path'),
quad.predicate,
),
).map((x) => x.subject);
for (const pathRelation of pathRelations) {
shape.add(
factory.quad(
pathRelation,
factory.namedNode(prefixes.sh + 'deactivated'),
factory.literal(
'true',
factory.namedNode(prefixes.xsd + 'boolean'),
),
),
);
}
}
},
async getQuads(
data: string,
mimeType: string,
Loading