From 50e3c4281567d466720047b0f277137f74881606 Mon Sep 17 00:00:00 2001 From: Sam Van Campenhout Date: Thu, 16 Jul 2026 15:46:50 +0200 Subject: [PATCH 1/5] Add new harvest meta data attributes to agent-in-position This allows us to display harvesting information about mandatarissen and bedienaren. --- config/resources/domain.json | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/config/resources/domain.json b/config/resources/domain.json index 50fdd45..909d20b 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -32,7 +32,10 @@ "nacebel": "http://data.gift/vocabularies/nace-bel/", "time": "http://www.w3.org/2006/time#", "muAccount": "http://mu.semte.ch/vocabularies/account/", - "sh": "http://www.w3.org/ns/shacl#" + "sh": "http://www.w3.org/ns/shacl#", + "rdfs": "rdfs: ", + "owl": "http://www.w3.org/2002/07/owl#", + "task": "http://redpencil.data.gift/vocabularies/tasks/" }, "resources": { "agents": { @@ -101,6 +104,30 @@ "agent-end-date": { "type": "datetime", "predicate": "ch:eindedatum" + }, + "vendor": { + "type": "string", + "predicate": "prov:wasAssociatedWith" + }, + "source": { + "type": "string", + "predicate": "prov:wasGeneratedBy" + }, + "sourceId": { + "type": "string", + "predicate": "owl:sameAs" + }, + "harvestDate": { + "type": "datetime", + "predicate": "task:modifiedOn>" + }, + "harvestJob": { + "type": "uri", + "predicate": "task:modifiedBy>" + }, + "harvestLink": { + "type": "uri", + "predicate": "rdfs:seeAlso" } }, "relationships": { From 76192bc1ae1a2392641f87983fd78961be0f1c5e Mon Sep 17 00:00:00 2001 From: benjay10 Date: Wed, 29 Jul 2026 04:26:37 +0200 Subject: [PATCH 2/5] Resources: correct typos --- config/resources/domain.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/resources/domain.json b/config/resources/domain.json index 909d20b..601ed86 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -33,7 +33,7 @@ "time": "http://www.w3.org/2006/time#", "muAccount": "http://mu.semte.ch/vocabularies/account/", "sh": "http://www.w3.org/ns/shacl#", - "rdfs": "rdfs: ", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", "owl": "http://www.w3.org/2002/07/owl#", "task": "http://redpencil.data.gift/vocabularies/tasks/" }, @@ -119,11 +119,11 @@ }, "harvestDate": { "type": "datetime", - "predicate": "task:modifiedOn>" + "predicate": "task:modifiedOn" }, "harvestJob": { "type": "uri", - "predicate": "task:modifiedBy>" + "predicate": "task:modifiedBy" }, "harvestLink": { "type": "uri", From 0246b33d28604ccdf841898acb1af29af0d9f557 Mon Sep 17 00:00:00 2001 From: benjay10 Date: Wed, 29 Jul 2026 04:28:38 +0200 Subject: [PATCH 3/5] Consumer: include provenance data from harvester This is the only query with a whitelist of properties (?) --- .../mapping/queries/dl2op/pass/person.sparql | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config/delta-consumers/worship-services-main-info/mapping/queries/dl2op/pass/person.sparql b/config/delta-consumers/worship-services-main-info/mapping/queries/dl2op/pass/person.sparql index 1276ece..9eb6da3 100644 --- a/config/delta-consumers/worship-services-main-info/mapping/queries/dl2op/pass/person.sparql +++ b/config/delta-consumers/worship-services-main-info/mapping/queries/dl2op/pass/person.sparql @@ -7,7 +7,12 @@ CONSTRUCT { FILTER (?p IN ( , , - + , + , + , + , + , + )) FILTER NOT EXISTS { From ec00971263e7cf88469eba448d69f54d877bd754 Mon Sep 17 00:00:00 2001 From: benjay10 Date: Wed, 29 Jul 2026 04:30:39 +0200 Subject: [PATCH 4/5] Resources: provenance properties on more subjects Also a rename with a hyphen to work with the frontend and to be consistent with the rest of the config. --- config/resources/domain.json | 88 ++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 4 deletions(-) diff --git a/config/resources/domain.json b/config/resources/domain.json index 601ed86..5519743 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -69,6 +69,26 @@ "first-name-used": { "type": "string", "predicate": "persoon:gebruikteVoornaam" + }, + "vendor": { + "type": "string", + "predicate": "prov:wasAssociatedWith" + }, + "source": { + "type": "string", + "predicate": "prov:wasGeneratedBy" + }, + "source-id": { + "type": "uri", + "predicate": "owl:sameAs" + }, + "harvest-date": { + "type": "datetime", + "predicate": "task:modifiedOn" + }, + "harvest-job": { + "type": "uri", + "predicate": "task:modifiedBy" } }, "relationships": { @@ -113,15 +133,15 @@ "type": "string", "predicate": "prov:wasGeneratedBy" }, - "sourceId": { - "type": "string", + "source-id": { + "type": "uri", "predicate": "owl:sameAs" }, - "harvestDate": { + "harvest-date": { "type": "datetime", "predicate": "task:modifiedOn" }, - "harvestJob": { + "harvest-job": { "type": "uri", "predicate": "task:modifiedBy" }, @@ -224,6 +244,26 @@ "reason-stopped": { "type": "string", "predicate": "ere:redenVanStopzetting" + }, + "vendor": { + "type": "string", + "predicate": "prov:wasAssociatedWith" + }, + "source": { + "type": "string", + "predicate": "prov:wasGeneratedBy" + }, + "source-id": { + "type": "uri", + "predicate": "owl:sameAs" + }, + "harvest-date": { + "type": "datetime", + "predicate": "task:modifiedOn" + }, + "harvest-job": { + "type": "uri", + "predicate": "task:modifiedBy" } }, "relationships": { @@ -267,6 +307,26 @@ "type": { "type": "string", "predicate": "schema:contactType" + }, + "vendor": { + "type": "string", + "predicate": "prov:wasAssociatedWith" + }, + "source": { + "type": "string", + "predicate": "prov:wasGeneratedBy" + }, + "source-id": { + "type": "uri", + "predicate": "owl:sameAs" + }, + "harvest-date": { + "type": "datetime", + "predicate": "task:modifiedOn" + }, + "harvest-job": { + "type": "uri", + "predicate": "task:modifiedBy" } }, "relationships": { @@ -873,6 +933,26 @@ "address-register-uri": { "type": "url", "predicate": "adres:verwijstNaar" + }, + "vendor": { + "type": "string", + "predicate": "prov:wasAssociatedWith" + }, + "source": { + "type": "string", + "predicate": "prov:wasGeneratedBy" + }, + "source-id": { + "type": "uri", + "predicate": "owl:sameAs" + }, + "harvest-date": { + "type": "datetime", + "predicate": "task:modifiedOn" + }, + "harvest-job": { + "type": "uri", + "predicate": "task:modifiedBy" } }, "relationships": { From eccabc9b3ae4a9017cf38da24ebd84d3d01cb796 Mon Sep 17 00:00:00 2001 From: benjay10 Date: Fri, 7 Aug 2026 02:21:57 +0200 Subject: [PATCH 5/5] Harvester provenance: rename to common prefix --- config/resources/domain.json | 66 ++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/config/resources/domain.json b/config/resources/domain.json index 5519743..545b4de 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -70,15 +70,11 @@ "type": "string", "predicate": "persoon:gebruikteVoornaam" }, - "vendor": { - "type": "string", - "predicate": "prov:wasAssociatedWith" - }, - "source": { + "harvest-source": { "type": "string", "predicate": "prov:wasGeneratedBy" }, - "source-id": { + "harvest-original-uri": { "type": "uri", "predicate": "owl:sameAs" }, @@ -92,6 +88,11 @@ } }, "relationships": { + "vendor": { + "predicate": "prov:wasAssociatedWith", + "target": "vendors", + "cardinality": "one" + }, "mandatories": { "predicate": "mandaat:isBestuurlijkeAliasVan", "target": "mandatories", @@ -125,15 +126,11 @@ "type": "datetime", "predicate": "ch:eindedatum" }, - "vendor": { - "type": "string", - "predicate": "prov:wasAssociatedWith" - }, - "source": { + "harvest-source": { "type": "string", "predicate": "prov:wasGeneratedBy" }, - "source-id": { + "harvest-original-uri": { "type": "uri", "predicate": "owl:sameAs" }, @@ -151,6 +148,11 @@ } }, "relationships": { + "vendor": { + "predicate": "prov:wasAssociatedWith", + "target": "vendors", + "cardinality": "one" + }, "person": { "predicate": "org:heldBy", "target": "people", @@ -245,15 +247,11 @@ "type": "string", "predicate": "ere:redenVanStopzetting" }, - "vendor": { - "type": "string", - "predicate": "prov:wasAssociatedWith" - }, - "source": { + "harvest-source": { "type": "string", "predicate": "prov:wasGeneratedBy" }, - "source-id": { + "harvest-original-uri": { "type": "uri", "predicate": "owl:sameAs" }, @@ -267,6 +265,11 @@ } }, "relationships": { + "vendor": { + "predicate": "prov:wasAssociatedWith", + "target": "vendors", + "cardinality": "one" + }, "type-half": { "predicate": "ere:typeHelft", "target": "half-elections", @@ -308,15 +311,11 @@ "type": "string", "predicate": "schema:contactType" }, - "vendor": { - "type": "string", - "predicate": "prov:wasAssociatedWith" - }, - "source": { + "harvest-source": { "type": "string", "predicate": "prov:wasGeneratedBy" }, - "source-id": { + "harvest-original-uri": { "type": "uri", "predicate": "owl:sameAs" }, @@ -330,6 +329,11 @@ } }, "relationships": { + "vendor": { + "predicate": "prov:wasAssociatedWith", + "target": "vendors", + "cardinality": "one" + }, "contact-address": { "predicate": "locn:address", "target": "addresses", @@ -690,6 +694,7 @@ "cardinality": "many" } }, + "features": ["include-uri"], "new-resource-base": "http://data.lblod.info/vendors/" }, "worship-services": { @@ -934,15 +939,11 @@ "type": "url", "predicate": "adres:verwijstNaar" }, - "vendor": { - "type": "string", - "predicate": "prov:wasAssociatedWith" - }, - "source": { + "harvest-source": { "type": "string", "predicate": "prov:wasGeneratedBy" }, - "source-id": { + "harvest-original-uri": { "type": "uri", "predicate": "owl:sameAs" }, @@ -956,6 +957,11 @@ } }, "relationships": { + "vendor": { + "predicate": "prov:wasAssociatedWith", + "target": "vendors", + "cardinality": "one" + }, "source": { "predicate": "dc_terms:source", "target": "concepts",