From 8db6b703bd48f0fcd2f1852af281ed32002b69a8 Mon Sep 17 00:00:00 2001 From: Damon Date: Thu, 16 Jul 2026 15:21:51 +0200 Subject: [PATCH 01/22] OP-3832: Added the new spatial werkingsgebied to producers and search + migration to backfill existing orgs --- CHANGELOG.md | 8 +++++ .../organizations-public-info/export.json | 2 +- .../delta-producer/organizations/export.json | 2 +- config/delta-producer/public/export.json | 2 +- ...ngsgebied-private-ocmw-associations.sparql | 36 +++++++++++++++++++ config/search/config.json | 13 +++++++ 6 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 config/migrations/2026/20260716140000-add-werkingsgebied-private-ocmw-associations.sparql diff --git a/CHANGELOG.md b/CHANGELOG.md index e6d6860..abfaf86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - "In Oprichting" bestuursorgaan lifecycle [OP-3810] - Added "werkingsgebied" filter [OP-3812] - Inhoudelijk thema [OP-3817] +- Werkingsgebied (dct:spatial) for private OCMW associations [OP-3832] ### Deploy notes ``` @@ -36,6 +37,13 @@ drc restart migrations frontend db resource cache /bin/bash scripts/reset-elastic.sh ``` +``` +drc restart migrations search +drc up -d frontend +# reindex elastic search: +/bin/bash scripts/reset-elastic.sh +``` + ## v1.40.0 - Query to check missing address URI's [OP-3784] - Create new query 'organisations shown in OP frontend' in Dashboard [OP-3774] diff --git a/config/delta-producer/organizations-public-info/export.json b/config/delta-producer/organizations-public-info/export.json index e3ca489..cc569c1 100644 --- a/config/delta-producer/organizations-public-info/export.json +++ b/config/delta-producer/organizations-public-info/export.json @@ -108,7 +108,7 @@ "graphsFilter": ["http://mu.semte.ch/graphs/administrative-unit"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", - "http://data.vlaanderen.be/ns/besluit#werkingsgebied", + "http://purl.org/dc/terms/spatial", "http://www.opengis.net/ont/geosparql#sfWithin", "http://www.w3.org/2002/07/owl#sameAs", "http://www.w3.org/2004/02/skos/core#altLabel", diff --git a/config/delta-producer/organizations/export.json b/config/delta-producer/organizations/export.json index 47190f2..3c68e81 100644 --- a/config/delta-producer/organizations/export.json +++ b/config/delta-producer/organizations/export.json @@ -240,7 +240,7 @@ ], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", - "http://data.vlaanderen.be/ns/besluit#werkingsgebied", + "http://purl.org/dc/terms/spatial", "http://www.opengis.net/ont/geosparql#sfWithin", "http://www.w3.org/2002/07/owl#sameAs", "http://www.w3.org/2004/02/skos/core#altLabel", diff --git a/config/delta-producer/public/export.json b/config/delta-producer/public/export.json index b34ea6f..ca34f41 100644 --- a/config/delta-producer/public/export.json +++ b/config/delta-producer/public/export.json @@ -126,7 +126,7 @@ ], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", - "http://data.vlaanderen.be/ns/besluit#werkingsgebied", + "http://purl.org/dc/terms/spatial", "http://www.opengis.net/ont/geosparql#sfWithin", "http://www.w3.org/2002/07/owl#sameAs", "http://www.w3.org/2004/02/skos/core#altLabel", diff --git a/config/migrations/2026/20260716140000-add-werkingsgebied-private-ocmw-associations.sparql b/config/migrations/2026/20260716140000-add-werkingsgebied-private-ocmw-associations.sparql new file mode 100644 index 0000000..e22652f --- /dev/null +++ b/config/migrations/2026/20260716140000-add-werkingsgebied-private-ocmw-associations.sparql @@ -0,0 +1,36 @@ +PREFIX org: +PREFIX skos: +PREFIX organisatie: +PREFIX adres: +PREFIX besluit: +PREFIX dct: + +INSERT { + GRAPH { + ?org dct:spatial ?werkingsgebied . + } +} WHERE { + VALUES ?classification { + + + + } + GRAPH { + ?org org:classification ?classification ; + org:hasPrimarySite ?site . + ?site organisatie:bestaatUit ?address . + ?address adres:gemeentenaam ?municipalityName . + } + FILTER NOT EXISTS { + GRAPH { + ?org dct:spatial ?existing . + } + } + GRAPH { + ?municipality org:classification ; + skos:prefLabel ?municipalityName . + } + GRAPH { + ?municipality besluit:werkingsgebied ?werkingsgebied . + } +} diff --git a/config/search/config.json b/config/search/config.json index 2dfb25d..02772cf 100644 --- a/config/search/config.json +++ b/config/search/config.json @@ -701,6 +701,10 @@ "operation_area": [ "http://data.vlaanderen.be/ns/besluit#werkingsgebied", "http://www.w3.org/2004/02/skos/core#prefLabel" + ], + "operation_area_spatial": [ + "http://purl.org/dc/terms/spatial", + "http://www.w3.org/2004/02/skos/core#prefLabel" ] }, "mappings": { @@ -821,6 +825,15 @@ "normalizer": "custom_sort_normalizer" } } + }, + "operation_area_spatial": { + "type": "keyword", + "fields": { + "field": { + "type": "keyword", + "normalizer": "custom_sort_normalizer" + } + } } } } From 50e3c4281567d466720047b0f277137f74881606 Mon Sep 17 00:00:00 2001 From: Sam Van Campenhout Date: Thu, 16 Jul 2026 15:46:50 +0200 Subject: [PATCH 02/22] 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 da602481d9c23620f325eb9b603fd77b4a49219d Mon Sep 17 00:00:00 2001 From: Damon Date: Mon, 20 Jul 2026 11:16:37 +0200 Subject: [PATCH 03/22] OP-3832: search config label change --- config/search/config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/search/config.json b/config/search/config.json index 02772cf..f12e559 100644 --- a/config/search/config.json +++ b/config/search/config.json @@ -700,11 +700,11 @@ ], "operation_area": [ "http://data.vlaanderen.be/ns/besluit#werkingsgebied", - "http://www.w3.org/2004/02/skos/core#prefLabel" + "http://www.w3.org/2000/01/rdf-schema#label" ], "operation_area_spatial": [ "http://purl.org/dc/terms/spatial", - "http://www.w3.org/2004/02/skos/core#prefLabel" + "http://www.w3.org/2000/01/rdf-schema#label" ] }, "mappings": { From e0982891ca2ea7e1f6040fa28679d13638a99217 Mon Sep 17 00:00:00 2001 From: Boris De Vloed Date: Fri, 24 Jul 2026 09:24:18 +0200 Subject: [PATCH 04/22] Update CHANGELOG.md pick up new export config --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index abfaf86..ca1dfd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ drc restart cache resource drc pull construct-organization-relationships && drc up -d construct-organization-relationships drc restart migrations drc restart resource cache +drc restart delta-producer-publication-graph-maintainer scripts/reset-elastic.sh ``` ``` From a7eceb44bfefec7e28ed47a14acab4924c605d1c Mon Sep 17 00:00:00 2001 From: Boris De Vloed Date: Fri, 24 Jul 2026 13:40:00 +0200 Subject: [PATCH 05/22] OP-3844: add Regionaal zorgplatform + Andere codes, move legacy 'other' orgs to Andere --- CHANGELOG.md | 11 ++++++ ...orm-and-andere-classification-codes.sparql | 25 +++++++++++++ .../20260714162300-move-orgs-to-andere.sparql | 36 +++++++++++++++++++ ...e-legacy-other-classification-codes.sparql | 27 ++++++++++++++ 4 files changed, 99 insertions(+) create mode 100644 config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162242-add-zorgplatform-and-andere-classification-codes.sparql create mode 100644 config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162300-move-orgs-to-andere.sparql create mode 100644 config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162400-delete-legacy-other-classification-codes.sparql diff --git a/CHANGELOG.md b/CHANGELOG.md index ca1dfd7..2984659 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,9 @@ - Added "werkingsgebied" filter [OP-3812] - Inhoudelijk thema [OP-3817] - Werkingsgebied (dct:spatial) for private OCMW associations [OP-3832] +- Add organization types "Regionaal zorgplatform" (altLabel "Regionale zorgzone") and residual "Andere" [OP-3844] +- Move organizations from "Vereniging algemeen" / "Vennootschap algemeen" / "Energieholdings en -participaties" to "Andere"; delete those codes [OP-3844] +- Bump construct-organization-relationships [OP-3844] ### Deploy notes ``` @@ -45,6 +48,14 @@ drc up -d frontend /bin/bash scripts/reset-elastic.sh ``` +``` +# requires compose bumps first: construct-organization-relationships 1.1.4, frontend >= 1.40.3 +drc pull construct-organization-relationships && drc up -d construct-organization-relationships +drc restart migrations-triggering-indexing +drc up -d frontend +drc restart cache resource +``` + ## v1.40.0 - Query to check missing address URI's [OP-3784] - Create new query 'organisations shown in OP frontend' in Dashboard [OP-3774] diff --git a/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162242-add-zorgplatform-and-andere-classification-codes.sparql b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162242-add-zorgplatform-and-andere-classification-codes.sparql new file mode 100644 index 0000000..3894671 --- /dev/null +++ b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162242-add-zorgplatform-and-andere-classification-codes.sparql @@ -0,0 +1,25 @@ +PREFIX rdf: +PREFIX skos: +PREFIX mu: +PREFIX ext: +PREFIX scheme: + +INSERT DATA { + GRAPH { + + rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ; + mu:uuid "e3afe092-6ca6-4685-94c6-1ee20811efc4" ; + skos:prefLabel "Regionaal zorgplatform" ; + skos:altLabel "Regionale zorgzone" ; + skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ; + skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , . + + + rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ; + mu:uuid "7a199d27-31c3-44bb-a58f-b3a64673a8b6" ; + skos:prefLabel "Andere" ; + skos:definition "Restcategorie: geregistreerde organisatie die niet onder een van de andere classificaties valt." ; + skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ; + skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , . + } +} diff --git a/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162300-move-orgs-to-andere.sparql b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162300-move-orgs-to-andere.sparql new file mode 100644 index 0000000..18cef29 --- /dev/null +++ b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162300-move-orgs-to-andere.sparql @@ -0,0 +1,36 @@ +PREFIX org: +PREFIX skos: +PREFIX ext: + +DELETE { + GRAPH ?g { ?org org:classification ?legacy . } +} +INSERT { + GRAPH ?g { ?org org:classification . } +} +WHERE { + BIND( AS ?g) + VALUES ?legacy { + + + } + GRAPH ?g { ?org org:classification ?legacy . } +} + +; + +DELETE { + GRAPH ?g { ?org org:classification ?legacy . } +} +INSERT { + GRAPH ?g { ?org org:classification . } +} +WHERE { + BIND( AS ?g) + GRAPH { + ?legacy a ext:OrganizationClassificationCode ; + skos:prefLabel ?label . + FILTER(REGEX(STR(?label), "^Energieholding", "i")) + } + GRAPH ?g { ?org org:classification ?legacy . } +} diff --git a/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162400-delete-legacy-other-classification-codes.sparql b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162400-delete-legacy-other-classification-codes.sparql new file mode 100644 index 0000000..62553a6 --- /dev/null +++ b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162400-delete-legacy-other-classification-codes.sparql @@ -0,0 +1,27 @@ +PREFIX skos: +PREFIX ext: + +DELETE { + GRAPH { ?code ?p ?o . } +} +WHERE { + VALUES ?code { + + + } + GRAPH { ?code ?p ?o . } +} + +; + +DELETE { + GRAPH { ?code ?p ?o . } +} +WHERE { + GRAPH { + ?code a ext:OrganizationClassificationCode ; + skos:prefLabel ?label . + FILTER(REGEX(STR(?label), "^Energieholding", "i")) + ?code ?p ?o . + } +} From a78b2c800fa3340d94d2ea62c895026d029ab4e7 Mon Sep 17 00:00:00 2001 From: Sam Van Campenhout Date: Tue, 28 Jul 2026 16:19:58 +0200 Subject: [PATCH 06/22] Add a new "Wijkkantoor" site type --- CHANGELOG.md | 1 + .../20260728160900-add-site-type-wijkkantoor-pz.sparql | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 config/migrations/2026/20260728160900-add-site-type-wijkkantoor-pz.sparql diff --git a/CHANGELOG.md b/CHANGELOG.md index ca1dfd7..09566e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - Added "werkingsgebied" filter [OP-3812] - Inhoudelijk thema [OP-3817] - Werkingsgebied (dct:spatial) for private OCMW associations [OP-3832] +- Add a new "Wijkkantoor" site type [OP-3837] ### Deploy notes ``` diff --git a/config/migrations/2026/20260728160900-add-site-type-wijkkantoor-pz.sparql b/config/migrations/2026/20260728160900-add-site-type-wijkkantoor-pz.sparql new file mode 100644 index 0000000..9b8ecc5 --- /dev/null +++ b/config/migrations/2026/20260728160900-add-site-type-wijkkantoor-pz.sparql @@ -0,0 +1,10 @@ +INSERT DATA { + GRAPH { + . + "Wijkkantoor" . + "eeaf623d-9629-4de3-9c37-2dbb132b13d8" . + . + . + . + } +} \ No newline at end of file From 76192bc1ae1a2392641f87983fd78961be0f1c5e Mon Sep 17 00:00:00 2001 From: benjay10 Date: Wed, 29 Jul 2026 04:26:37 +0200 Subject: [PATCH 07/22] 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 08/22] 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 09/22] 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 478f65ee89eb66e2ca71423215a54538e5d1caad Mon Sep 17 00:00:00 2001 From: Damon Date: Fri, 31 Jul 2026 10:03:13 +0200 Subject: [PATCH 10/22] bump frontend --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index f848133..434b3b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -215,7 +215,7 @@ services: restart: always logging: *default-logging frontend: - image: lblod/frontend-organization-portal:1.40.3 + image: lblod/frontend-organization-portal:1.40.4 volumes: - ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf environment: From 9ed70419aa0ddd3df1e817c8856eff737a168384 Mon Sep 17 00:00:00 2001 From: felix Date: Fri, 31 Jul 2026 10:54:24 +0200 Subject: [PATCH 11/22] Added health checks --- config/dispatcher/dispatcher.ex | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/dispatcher/dispatcher.ex b/config/dispatcher/dispatcher.ex index 7fc74a4..9721a9d 100644 --- a/config/dispatcher/dispatcher.ex +++ b/config/dispatcher/dispatcher.ex @@ -507,6 +507,14 @@ defmodule Dispatcher do # forward(conn, path, "http://db:8890/sparql/") # end + ################################################################# + # Health checks + ################################################################# + + get "/health/accounts", %{layer: :api} do + Proxy.forward(conn, [], "http://resource/accounts/") + end + ############################################################### # errors ############################################################### From f0d0af671e2786e3b6b002ad3bc7f2d70bf74486 Mon Sep 17 00:00:00 2001 From: felix Date: Fri, 31 Jul 2026 10:56:39 +0200 Subject: [PATCH 12/22] Release v1.41.0 --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1aa7ce..6a4d9fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog -## Unreleased +## v1.41.0 + - added explicit healtchecks [DL-7466] + +### Deploy notes +``` +drc restart dispatcher +``` ## v1.40.0 - Query to check missing address URI's [OP-3784] From 83de2aa41c6c4b8268aa1d63a1ff223d7daf1759 Mon Sep 17 00:00:00 2001 From: wolfez Date: Tue, 4 Aug 2026 13:18:14 +0200 Subject: [PATCH 13/22] add migration to cleanup local involvement herne --- ...638-cleanup-local-involvement-herne.sparql | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 config/migrations/2026/20260804101638-cleanup-local-involvement-herne.sparql diff --git a/config/migrations/2026/20260804101638-cleanup-local-involvement-herne.sparql b/config/migrations/2026/20260804101638-cleanup-local-involvement-herne.sparql new file mode 100644 index 0000000..e05ae45 --- /dev/null +++ b/config/migrations/2026/20260804101638-cleanup-local-involvement-herne.sparql @@ -0,0 +1,35 @@ +DELETE WHERE { + graph { + ?p ?o. + } +} + +; + +DELETE WHERE { + graph { + . + } +} + +; + +DELETE { + GRAPH ?g { + ?localInvolvementPajottegem ?percentage. + } +} +INSERT { + GRAPH ?g { + ?localInvolvementPajottegem 100. + } +} +WHERE { + BIND( AS ?g) + GRAPH ?g { + ?localInvolvementPajottegem ?percentage. + } + VALUES ?localInvolvementPajottegem { + + } +} From c21e72a84008c9193b5c68008b4eb6e5a29c2341 Mon Sep 17 00:00:00 2001 From: wolfez Date: Wed, 5 Aug 2026 09:33:10 +0200 Subject: [PATCH 14/22] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71cd9c5..6688a39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - Inhoudelijk thema [OP-3817] - Werkingsgebied (dct:spatial) for private OCMW associations [OP-3832] - Add a new "Wijkkantoor" site type [OP-3837] +- cleanup local involvement herne [OP-3858] ### Deploy notes ``` From 0e9251e73d22e012643137ae1032a599bf84c8b4 Mon Sep 17 00:00:00 2001 From: Sam Van Campenhout Date: Tue, 4 Aug 2026 15:58:04 +0200 Subject: [PATCH 15/22] Make it possible to search organizations by vendor --- CHANGELOG.md | 1 + config/dispatcher/dispatcher.ex | 4 ++++ config/search/config.json | 7 +++++++ 3 files changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6688a39..9052451 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Werkingsgebied (dct:spatial) for private OCMW associations [OP-3832] - Add a new "Wijkkantoor" site type [OP-3837] - cleanup local involvement herne [OP-3858] +- Search organizations by vendor [OP-3808] ### Deploy notes ``` diff --git a/config/dispatcher/dispatcher.ex b/config/dispatcher/dispatcher.ex index 23571bf..1890123 100644 --- a/config/dispatcher/dispatcher.ex +++ b/config/dispatcher/dispatcher.ex @@ -235,6 +235,10 @@ defmodule Dispatcher do Proxy.forward(conn, path, "http://cache/membership-roles/") end + match "/vendors/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/vendors/") + end + # There is currently no logic to invalidate the kboOrganization cache when wegwijse updates the content match "/kbo-organizations/*path", %{accept: [:any], layer: :api} do Proxy.forward(conn, path, "http://resource/kbo-organizations/") diff --git a/config/search/config.json b/config/search/config.json index f12e559..a670458 100644 --- a/config/search/config.json +++ b/config/search/config.json @@ -705,6 +705,10 @@ "operation_area_spatial": [ "http://purl.org/dc/terms/spatial", "http://www.w3.org/2000/01/rdf-schema#label" + ], + "vendor": [ + "^http://mu.semte.ch/vocabularies/account/canActOnBehalfOf", + "http://mu.semte.ch/vocabularies/core/uuid" ] }, "mappings": { @@ -834,6 +838,9 @@ "normalizer": "custom_sort_normalizer" } } + }, + "vendor": { + "type": "keyword" } } } From 7da8c4a1db74648f09c4e08c755d488c6a96feed Mon Sep 17 00:00:00 2001 From: Boris De Vloed Date: Thu, 6 Aug 2026 13:44:13 +0200 Subject: [PATCH 16/22] OP-3844: address review: bump construct-organization-relationships to 1.1.4, cover all org graphs in move, drop Energieholding statements --- CHANGELOG.md | 5 ++-- .../20260714162300-move-orgs-to-andere.sparql | 26 +++++-------------- ...e-legacy-other-classification-codes.sparql | 14 ---------- docker-compose.yml | 2 +- 4 files changed, 11 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2984659..af2dd66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ - Inhoudelijk thema [OP-3817] - Werkingsgebied (dct:spatial) for private OCMW associations [OP-3832] - Add organization types "Regionaal zorgplatform" (altLabel "Regionale zorgzone") and residual "Andere" [OP-3844] -- Move organizations from "Vereniging algemeen" / "Vennootschap algemeen" / "Energieholdings en -participaties" to "Andere"; delete those codes [OP-3844] +- Move organizations from "Vereniging algemeen" / "Vennootschap algemeen" to "Andere"; delete those codes [OP-3844] - Bump construct-organization-relationships [OP-3844] ### Deploy notes @@ -49,7 +49,8 @@ drc up -d frontend ``` ``` -# requires compose bumps first: construct-organization-relationships 1.1.4, frontend >= 1.40.3 +# requires: construct-organization-relationships v1.1.4 released (bumped in compose here), +# and frontend bumped to the release containing frontend-organization-portal#720 drc pull construct-organization-relationships && drc up -d construct-organization-relationships drc restart migrations-triggering-indexing drc up -d frontend diff --git a/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162300-move-orgs-to-andere.sparql b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162300-move-orgs-to-andere.sparql index 18cef29..ba5fc26 100644 --- a/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162300-move-orgs-to-andere.sparql +++ b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162300-move-orgs-to-andere.sparql @@ -2,6 +2,8 @@ PREFIX org: PREFIX skos: PREFIX ext: +# All graphs authorized for regorg:RegisteredOrganization (see config/authorization/config.lisp), +# so no dangling org:classification survives the code deletion in the next migration. DELETE { GRAPH ?g { ?org org:classification ?legacy . } } @@ -9,28 +11,14 @@ INSERT { GRAPH ?g { ?org org:classification . } } WHERE { - BIND( AS ?g) + VALUES ?g { + + + + } VALUES ?legacy { } GRAPH ?g { ?org org:classification ?legacy . } } - -; - -DELETE { - GRAPH ?g { ?org org:classification ?legacy . } -} -INSERT { - GRAPH ?g { ?org org:classification . } -} -WHERE { - BIND( AS ?g) - GRAPH { - ?legacy a ext:OrganizationClassificationCode ; - skos:prefLabel ?label . - FILTER(REGEX(STR(?label), "^Energieholding", "i")) - } - GRAPH ?g { ?org org:classification ?legacy . } -} diff --git a/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162400-delete-legacy-other-classification-codes.sparql b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162400-delete-legacy-other-classification-codes.sparql index 62553a6..56b577c 100644 --- a/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162400-delete-legacy-other-classification-codes.sparql +++ b/config/migrations-triggering-indexing/2026/20260714162242-restructure-other-org-types/20260714162400-delete-legacy-other-classification-codes.sparql @@ -11,17 +11,3 @@ WHERE { } GRAPH { ?code ?p ?o . } } - -; - -DELETE { - GRAPH { ?code ?p ?o . } -} -WHERE { - GRAPH { - ?code a ext:OrganizationClassificationCode ; - skos:prefLabel ?label . - FILTER(REGEX(STR(?label), "^Energieholding", "i")) - ?code ?p ?o . - } -} diff --git a/docker-compose.yml b/docker-compose.yml index f848133..88e8263 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -308,7 +308,7 @@ services: restart: always logging: *default-logging construct-organization-relationships: - image: lblod/construct-organization-relationships-service:1.1.3 + image: lblod/construct-organization-relationships-service:1.1.4 links: - db:database labels: From 4744a63effd68112801b86d32af7416d879b3f65 Mon Sep 17 00:00:00 2001 From: NikiDeVisscher Date: Thu, 6 Aug 2026 17:19:36 +0200 Subject: [PATCH 17/22] Add jobs for cleanup service --- CHANGELOG.md | 5 + ...230-cleanup-codelist-operation-areas.graph | 1 + ...10230-cleanup-codelist-operation-areas.ttl | 109 ++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.graph create mode 100644 config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.ttl diff --git a/CHANGELOG.md b/CHANGELOG.md index 6688a39..1224800 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Werkingsgebied (dct:spatial) for private OCMW associations [OP-3832] - Add a new "Wijkkantoor" site type [OP-3837] - cleanup local involvement herne [OP-3858] +- Keep werkingsgebied filter up to date via db-cleanup service [OP-3841] ### Deploy notes ``` @@ -40,6 +41,10 @@ drc restart migrations frontend db resource cache drc restart migrations search drc up -d frontend ``` +``` +drc restart migrations +drc restart db-cleanup +``` ## v1.41.0 - added explicit healtchecks [DL-7466] diff --git a/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.graph b/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.graph new file mode 100644 index 0000000..d5c0765 --- /dev/null +++ b/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public \ No newline at end of file diff --git a/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.ttl b/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.ttl new file mode 100644 index 0000000..26144c2 --- /dev/null +++ b/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.ttl @@ -0,0 +1,109 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "db1e677e-fc84-47b1-8204-020ce139cfbb" ; + dcterms:title "Adding new werkingsgebieden to codelist" ; + cleanup:randomQuery """ + + PREFIX besluit: + PREFIX prov: + PREFIX core: + PREFIX ext: + PREFIX skos: + PREFIX rdfs: + + INSERT { + GRAPH { + ?uri a skos:Concept ; + skos:inScheme ; + core:uuid ?uuid ; + skos:prefLabel ?label . + } + } + WHERE { + ?sub besluit:werkingsgebied ?uri . + + ?uri a prov:Location ; + core:uuid ?uuid ; + rdfs:label ?label ; + ext:werkingsgebiedNiveau "Gemeente" . + + FILTER NOT EXISTS { + ?existingConcept a skos:Concept ; + core:uuid ?uuid ; + skos:inScheme . + } + } + """ . + + a cleanup:Job ; + mu:uuid "64c7a5c9-5d73-43bf-a856-ad31c8fc8cd4" ; + dcterms:title "Cleaning up old werkingsgebieden from codelist" ; + cleanup:randomQuery """ + + PREFIX besluit: + PREFIX prov: + PREFIX core: + PREFIX ext: + PREFIX skos: + + DELETE { + GRAPH { + ?uri a skos:Concept ; + skos:inScheme ; + core:uuid ?uuid ; + skos:prefLabel ?label . + } + } + WHERE { + ?uri a skos:Concept ; + core:uuid ?uuid ; + skos:prefLabel ?label ; + skos:inScheme . + + FILTER NOT EXISTS { + ?sub besluit:werkingsgebied ?existingEntry . + ?existingEntry a prov:Location ; + core:uuid ?uuid ; + ext:werkingsgebiedNiveau "Gemeente" . + } + } + """ . + + a cleanup:Job ; + mu:uuid "6061ca0c-12d8-4fb7-9c24-511e21ab7e0e" ; + dcterms:title "Updating werkingsgebieden labels from codelist" ; + cleanup:randomQuery """ + + PREFIX besluit: + PREFIX prov: + PREFIX ext: + PREFIX skos: + PREFIX rdfs: + + DELETE { + GRAPH { + ?uri skos:prefLabel ?oldLabel . + } + } + INSERT { + GRAPH { + ?uri skos:prefLabel ?newLabel . + } + } + WHERE { + ?sub besluit:werkingsgebied ?uri . + + ?uri a prov:Location ; + rdfs:label ?newLabel ; + ext:werkingsgebiedNiveau "Gemeente" . + + ?uri a skos:Concept ; + skos:inScheme ; + skos:prefLabel ?oldLabel . + + FILTER(STR(?oldLabel) != STR(?newLabel)) + } + """ . \ No newline at end of file From eccabc9b3ae4a9017cf38da24ebd84d3d01cb796 Mon Sep 17 00:00:00 2001 From: benjay10 Date: Fri, 7 Aug 2026 02:21:57 +0200 Subject: [PATCH 18/22] 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", From 96b8e58b4fc4faa85e7cb379cf2adda3ffcaa128 Mon Sep 17 00:00:00 2001 From: Boris De Vloed Date: Fri, 7 Aug 2026 13:46:22 +0200 Subject: [PATCH 19/22] OP-3844: bump frontend to 1.40.5 --- CHANGELOG.md | 4 ++-- docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93148f4..575d963 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - Add organization types "Regionaal zorgplatform" (altLabel "Regionale zorgzone") and residual "Andere" [OP-3844] - Move organizations from "Vereniging algemeen" / "Vennootschap algemeen" to "Andere"; delete those codes [OP-3844] - Bump construct-organization-relationships [OP-3844] +- Frontend [v1.40.5](https://github.com/lblod/frontend-organization-portal/blob/v1.40.5/CHANGELOG.md) [OP-3844] [OP-3808] [OP-3849] ### Deploy notes ``` @@ -46,8 +47,7 @@ drc up -d frontend ``` ``` -# requires: construct-organization-relationships v1.1.4 released (bumped in compose here), -# and frontend bumped to the release containing frontend-organization-portal#720 +# requires frontend >= 1.40.5 and construct-organization-relationships >= 1.1.4 (both bumped in compose here) drc pull construct-organization-relationships && drc up -d construct-organization-relationships drc restart migrations-triggering-indexing drc up -d frontend diff --git a/docker-compose.yml b/docker-compose.yml index fa35bb6..4fa6b2f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -215,7 +215,7 @@ services: restart: always logging: *default-logging frontend: - image: lblod/frontend-organization-portal:1.40.4 + image: lblod/frontend-organization-portal:1.40.5 volumes: - ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf environment: From 3387d3d79071317771d778199bed399e13e0f66c Mon Sep 17 00:00:00 2001 From: benjay10 Date: Fri, 7 Aug 2026 14:17:29 +0200 Subject: [PATCH 20/22] CHANGELOG: provenance harvested worship positions --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 575d963..0fb43c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - Move organizations from "Vereniging algemeen" / "Vennootschap algemeen" to "Andere"; delete those codes [OP-3844] - Bump construct-organization-relationships [OP-3844] - Frontend [v1.40.5](https://github.com/lblod/frontend-organization-portal/blob/v1.40.5/CHANGELOG.md) [OP-3844] [OP-3808] [OP-3849] +- Consume and serve provenance properties on harvested Worship positions [DL-7437] ### Deploy notes ``` From 88059fd0914258f9acfc4e28387a8a565d1643fb Mon Sep 17 00:00:00 2001 From: benjay10 Date: Fri, 7 Aug 2026 15:32:26 +0200 Subject: [PATCH 21/22] Bump frontend + CHANGELOG frontend --- CHANGELOG.md | 1 + docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fb43c7..0eae7ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ - Bump construct-organization-relationships [OP-3844] - Frontend [v1.40.5](https://github.com/lblod/frontend-organization-portal/blob/v1.40.5/CHANGELOG.md) [OP-3844] [OP-3808] [OP-3849] - Consume and serve provenance properties on harvested Worship positions [DL-7437] +- Frontend [v1.41.0](https://github.com/lblod/frontend-organization-portal/blob/v1.41.0/CHANGELOG.md) [DL-7438] ### Deploy notes ``` diff --git a/docker-compose.yml b/docker-compose.yml index 4fa6b2f..d10cf56 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -215,7 +215,7 @@ services: restart: always logging: *default-logging frontend: - image: lblod/frontend-organization-portal:1.40.5 + image: lblod/frontend-organization-portal:1.41.0 volumes: - ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf environment: From 18c803410ab39b86419d1c4a69e86ebc3fd5f989 Mon Sep 17 00:00:00 2001 From: NikiDeVisscher Date: Fri, 7 Aug 2026 16:26:26 +0200 Subject: [PATCH 22/22] Remove job to delete werkingsgebied from codelist --- ...10230-cleanup-codelist-operation-areas.ttl | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.ttl b/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.ttl index 26144c2..6c262c5 100644 --- a/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.ttl +++ b/config/migrations/2026/20260805110230-cleanup-codelist-operation-areas.ttl @@ -38,40 +38,6 @@ } """ . - a cleanup:Job ; - mu:uuid "64c7a5c9-5d73-43bf-a856-ad31c8fc8cd4" ; - dcterms:title "Cleaning up old werkingsgebieden from codelist" ; - cleanup:randomQuery """ - - PREFIX besluit: - PREFIX prov: - PREFIX core: - PREFIX ext: - PREFIX skos: - - DELETE { - GRAPH { - ?uri a skos:Concept ; - skos:inScheme ; - core:uuid ?uuid ; - skos:prefLabel ?label . - } - } - WHERE { - ?uri a skos:Concept ; - core:uuid ?uuid ; - skos:prefLabel ?label ; - skos:inScheme . - - FILTER NOT EXISTS { - ?sub besluit:werkingsgebied ?existingEntry . - ?existingEntry a prov:Location ; - core:uuid ?uuid ; - ext:werkingsgebiedNiveau "Gemeente" . - } - } - """ . - a cleanup:Job ; mu:uuid "6061ca0c-12d8-4fb7-9c24-511e21ab7e0e" ; dcterms:title "Updating werkingsgebieden labels from codelist" ;