From 633a44a85f84a76e9fddc1256335cfe50041f478 Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 19 Jun 2024 10:21:09 +0200 Subject: [PATCH 01/64] feat: migration adding concepts for membership relations --- ...4160001-codelist-lidmaatschap-rollen.graph | 1 + ...824160001-codelist-lidmaatschap-rollen.ttl | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.graph create mode 100644 config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.ttl diff --git a/config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.graph b/config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.graph new file mode 100644 index 0000000..d5c0765 --- /dev/null +++ b/config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public \ No newline at end of file diff --git a/config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.ttl b/config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.ttl new file mode 100644 index 0000000..194ee7a --- /dev/null +++ b/config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.ttl @@ -0,0 +1,31 @@ +@prefix org: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix schema: . +@prefix skos: . +@prefix mu: . + + a skos:ConceptScheme; + mu:uuid "4755a6afc9044ff289d872092e202472"; + skos:prefLabel "lidmaatschap rollen". + + a org:Role; + mu:uuid "93c48754610c45e6bd9a894d2720a53d"; + skos:topConceptOf ; + skos:prefLabel "lid". + + a org:Role; + mu:uuid "73d5e1cf250d42fab15926771f07505a"; + skos:prefLabel "stichtend lid"; + skos:broader . + + a org:Role; + mu:uuid "2152eb830b1143bfb97a7dd9596d6c63"; + skos:prefLabel "participant"; + skos:broader . + + a org:Role; + mu:uuid "4ec7d5c39bdc4e84b4174379b9e22ad8"; + skos:prefLabel "gerelateerd"; + skos:broader . From 07b36fb193486da75345b99a683e4abfdee5bdda Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 19 Jun 2024 11:26:40 +0200 Subject: [PATCH 02/64] feat: added membership relations to model --- config/resources/domain.json | 82 +++++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/config/resources/domain.json b/config/resources/domain.json index 75d6754..fb55143 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -29,7 +29,8 @@ "code": "http://lblod.data.gift/vocabularies/organisatie/", "ext": "http://mu.semte.ch/vocabularies/ext/", "geo": "http://www.opengis.net/ont/geosparql#", - "nacebel": "http://data.gift/vocabularies/nace-bel/" + "nacebel": "http://data.gift/vocabularies/nace-bel/", + "time": "http://www.w3.org/2006/time#" }, "resources": { "agents": { @@ -472,6 +473,23 @@ "cardinality": "many", "inverse": true }, + "memberships-of-organizations": { + "predicate": "org:member", + "target": "memberships", + "cardinality": "many", + "inverse": true + }, + "memberships": { + "predicate": "org:organization", + "target": "memberships", + "cardinality": "many", + "inverse": true + }, + "is-member-of": { + "predicate": "org:memberOf", + "target": "organizations", + "cardinality": "many" + }, "sector": { "predicate": "dc_terms:isPartOf", "target": "sectors", @@ -862,6 +880,68 @@ }, "new-resource-base": "http://data.lblod.info/id/vestigingen/" }, + "memberships": { + "class": "org:Membership", + "relationships": { + "member": { + "predicate": "org:member", + "target": "organizations", + "cardinality": "one" + }, + "organization": { + "predicate": "org:organization", + "target": "organizations", + "cardinality": "one" + }, + "role": { + "predicate": "org:role", + "target": "membership-roles", + "cardinality": "one" + }, + "during": { + "predicate": "euro:memberDuring", + "target": "period-of-time", + "cardinality": "one" + } + }, + "new-resource-base": "http://data.lblod.info/id/lidmaatschap/" + }, + "membership-roles": { + "class": "org:Role", + "attributes": { + "label": { + "predicate": "skos:prefLabel", + "type": "string" + } + }, + "relationships": { + "top-concept-of": { + "predicate": "skos:topConceptOf", + "target": "concepts", + "cardinality": "one" + }, + "has-broader-role": { + "predicate": "skos:broader", + "target": "membership-roles", + "cardinality": "one" + } + }, + "new-resource-base": "http://data.lblod.info/id/rollen/" + }, + "period-of-time": { + "class": "time:ProperInterval", + "attributes": { + "start-date": { + "predicate": "time:hasBeginning", + "type": "datetime" + }, + "end-date": { + "predicate": "time:hasEnd", + "type": "datetime" + } + }, + "new-resource-base": "http://data.lblod.info/id/periode/" + }, "concepts": { "class": "skos:Concept", "attributes": { From 2c6d73d3897ce1d335ff696fd55dc7fdf93cb1e6 Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 19 Jun 2024 11:27:34 +0200 Subject: [PATCH 03/64] feat: replace founding relation by membership relation - Remove relations based on `ext:isFounderOfOrganization` predicate from the data model. - Migrate the `ext:isFounderOfOrganization` triples to new, appropriate triples. --- .../20230824160500-founding-members.sparql | 35 +++++++++++++++++++ config/resources/domain.json | 11 ------ 2 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 config/migrations/2023/20230824160000-related-organizations/20230824160500-founding-members.sparql diff --git a/config/migrations/2023/20230824160000-related-organizations/20230824160500-founding-members.sparql b/config/migrations/2023/20230824160000-related-organizations/20230824160500-founding-members.sparql new file mode 100644 index 0000000..6264ca4 --- /dev/null +++ b/config/migrations/2023/20230824160000-related-organizations/20230824160500-founding-members.sparql @@ -0,0 +1,35 @@ +PREFIX skos: +PREFIX org: +PREFIX mu: + +DELETE { + GRAPH ?g { + ?foundingOrg ?foundedOrg. + } +} +INSERT { + GRAPH ?g { + ?foundingOrg org:memberOf ?foundedOrg. + + ?membership + a org:Membership; + mu:uuid ?uuid; + org:organization ?foundedOrg; + org:member ?foundingOrg; + org:role . + } +} +WHERE { + VALUES ?g { + + + + } + + GRAPH ?g { + ?foundingOrg ?foundedOrg. + } + + BIND(SHA1(CONCAT(STR(?foundingOrg), STR(?foundedOrg), "founded by")) as ?uuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) +} \ No newline at end of file diff --git a/config/resources/domain.json b/config/resources/domain.json index fb55143..278af59 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -462,17 +462,6 @@ "cardinality": "one", "inverse": true }, - "founded-organizations": { - "predicate": "ext:isFounderOfOrganization", - "target": "organizations", - "cardinality": "many" - }, - "was-founded-by-organizations": { - "predicate": "ext:isFounderOfOrganization", - "target": "organizations", - "cardinality": "many", - "inverse": true - }, "memberships-of-organizations": { "predicate": "org:member", "target": "memberships", From c7e58abdc3067b151903d32f2cc8b8e35bf15909 Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 19 Jun 2024 10:31:53 +0200 Subject: [PATCH 04/64] feat: replace sub-organization relations by membership relations - Remove relations based on the `org:hasSubOrganization` predicate. - Migrate triples for the `org:hasSubOrganization` predicate to new, appropriate triples. --- .../20230831104300-participants.sparql | 28 +++++++++++++++ .../20230831104400-related-members.sparql | 35 +++++++++++++++++++ config/resources/domain.json | 16 --------- 3 files changed, 63 insertions(+), 16 deletions(-) create mode 100644 config/migrations/2023/20230824160000-related-organizations/20230831104300-participants.sparql create mode 100644 config/migrations/2023/20230824160000-related-organizations/20230831104400-related-members.sparql diff --git a/config/migrations/2023/20230824160000-related-organizations/20230831104300-participants.sparql b/config/migrations/2023/20230824160000-related-organizations/20230831104300-participants.sparql new file mode 100644 index 0000000..c8730be --- /dev/null +++ b/config/migrations/2023/20230824160000-related-organizations/20230831104300-participants.sparql @@ -0,0 +1,28 @@ +PREFIX skos: +PREFIX org: +PREFIX mu: + +INSERT { + GRAPH ?g { + ?membership + a org:Membership; + mu:uuid ?uuid; + org:organization ?organization; + org:member ?memberOrganization; + org:role . + } +} +WHERE { + VALUES ?g { + + + + } + + GRAPH ?g { + ?memberOrganization org:memberOf ?organization. + } + + BIND(SHA1(CONCAT(STR(?memberOrganization), STR(?organization), "member of")) as ?uuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) +} \ No newline at end of file diff --git a/config/migrations/2023/20230824160000-related-organizations/20230831104400-related-members.sparql b/config/migrations/2023/20230824160000-related-organizations/20230831104400-related-members.sparql new file mode 100644 index 0000000..f9cd3a6 --- /dev/null +++ b/config/migrations/2023/20230824160000-related-organizations/20230831104400-related-members.sparql @@ -0,0 +1,35 @@ +PREFIX skos: +PREFIX org: +PREFIX mu: + +DELETE { + GRAPH ?g { + ?organization org:hasSubOrganization ?subOrganization. + } +} +INSERT { + GRAPH ?g { + ?subOrganization org:memberOf ?organization. + + ?membership + a org:Membership; + mu:uuid ?uuid; + org:organization ?organization; + org:member ?subOrganization; + org:role . + } +} +WHERE { + VALUES ?g { + + + + } + + GRAPH ?g { + ?organization org:hasSubOrganization ?subOrganization. + } + + BIND(SHA1(CONCAT(STR(?organization), STR(?subOrganization), "sub organization")) as ?uuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) +} \ No newline at end of file diff --git a/config/resources/domain.json b/config/resources/domain.json index 278af59..3b529ca 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -445,23 +445,12 @@ "target": "organizations", "cardinality": "many" }, - "sub-organizations": { - "predicate": "org:hasSubOrganization", - "target": "organizations", - "cardinality": "many" - }, "is-associated-with": { "predicate": "org:linkedTo", "target": "organizations", "cardinality": "one", "inverse": true }, - "is-sub-organization-of": { - "predicate": "org:hasSubOrganization", - "target": "organizations", - "cardinality": "one", - "inverse": true - }, "memberships-of-organizations": { "predicate": "org:member", "target": "memberships", @@ -474,11 +463,6 @@ "cardinality": "many", "inverse": true }, - "is-member-of": { - "predicate": "org:memberOf", - "target": "organizations", - "cardinality": "many" - }, "sector": { "predicate": "dc_terms:isPartOf", "target": "sectors", From fef667fd9f996f7cfa26b50176cbc30942410293 Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 19 Jun 2024 10:48:49 +0200 Subject: [PATCH 05/64] feat: adapt mu-auth and dispatcher config for membership relations --- config/authorization/config.ex | 2 + config/dispatcher/dispatcher.ex | 405 +++++++++++++++++--------------- 2 files changed, 217 insertions(+), 190 deletions(-) diff --git a/config/authorization/config.ex b/config/authorization/config.ex index 9baae38..1983140 100644 --- a/config/authorization/config.ex +++ b/config/authorization/config.ex @@ -79,6 +79,8 @@ defmodule Acl.UserGroups.Config do "http://www.w3.org/ns/org#ChangeEvent", "http://data.lblod.info/vocabularies/contacthub/AgentInPositie", "http://mu.semte.ch/vocabularies/ext/KboOrganisatie", + "http://www.w3.org/ns/org#Membership", + "http://www.w3.org/2006/time#ProperInterval" ] @shared_protected_type [ diff --git a/config/dispatcher/dispatcher.ex b/config/dispatcher/dispatcher.ex index c8f984c..69db3d7 100644 --- a/config/dispatcher/dispatcher.ex +++ b/config/dispatcher/dispatcher.ex @@ -1,364 +1,387 @@ defmodule Dispatcher do use Matcher - define_accept_types [ + define_accept_types( html: ["text/html", "application/xhtml+html"], json: ["application/json", "application/vnd.api+json"], upload: ["multipart/form-data"], sparql_json: ["application/sparql-results+json"], - any: [ "*/*" ], - ] - - define_layers [ :api_services, :api, :frontend, :not_found ] + any: ["*/*"] + ) + define_layers([:api_services, :api, :frontend, :not_found]) ############################################################### # domain.json ############################################################### - match "/people/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/people/" + match "/people/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/people/") end - match "/agents-in-position/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/agents-in-position/" + match "/agents-in-position/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/agents-in-position/") end - match "/posts/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/posts/" + match "/posts/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/posts/") end - match "/mandatories/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/mandatories/" + match "/mandatories/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/mandatories/") end - match "/mandatory-status-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/mandatory-status-codes/" + match "/mandatory-status-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/mandatory-status-codes/") end - match "/worship-mandatories/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/worship-mandatories/" + match "/worship-mandatories/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/worship-mandatories/") end - match "/half-elections/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/half-elections/" + match "/half-elections/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/half-elections/") end - match "/contact-points/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/contact-points/" + match "/contact-points/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/contact-points/") end - match "/mandates/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/mandates/" + match "/mandates/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/mandates/") end - match "/board-positions/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/board-positions/" + match "/board-positions/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/board-positions/") end - match "/board-position-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/board-position-codes/" + match "/board-position-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/board-position-codes/") end - match "/functionaries/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/functionaries/" + match "/functionaries/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/functionaries/") end - match "/agent-status-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/agent-status-codes/" + match "/agent-status-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/agent-status-codes/") end - match "/roles/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/roles/" + match "/roles/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/roles/") end - match "/organizations/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/organizations/" + match "/organizations/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/organizations/") end - match "/registered-organizations/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/registered-organizations/" + match "/registered-organizations/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/registered-organizations/") end - match "/administrative-units/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/administrative-units/" + match "/administrative-units/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/administrative-units/") end - match "/administrative-unit-classification-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/administrative-unit-classification-codes/" + match "/administrative-unit-classification-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/administrative-unit-classification-codes/") end - match "/organization-classification-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/organization-classification-codes/" + match "/organization-classification-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/organization-classification-codes/") end - match "/registered-organization-classification-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/registered-organization-classification-codes/" + match "/registered-organization-classification-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/registered-organization-classification-codes/") end - match "/worship-administrative-units/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/worship-administrative-units/" + match "/worship-administrative-units/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/worship-administrative-units/") end - match "/worship-services/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/worship-services/" + match "/worship-services/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/worship-services/") end - match "/recognized-worship-types/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/recognized-worship-types/" + match "/recognized-worship-types/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/recognized-worship-types/") end - match "/central-worship-services/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/central-worship-services/" + match "/central-worship-services/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/central-worship-services/") end - match "/representative-bodies/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/representative-bodies/" + match "/representative-bodies/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/representative-bodies/") end - match "/governing-bodies/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/governing-bodies/" + match "/governing-bodies/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/governing-bodies/") end - match "/governing-body-classification-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/governing-body-classification-codes/" + match "/governing-body-classification-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/governing-body-classification-codes/") end - match "/local-involvements/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/local-involvements/" + match "/local-involvements/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/local-involvements/") end - match "/identifiers/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/identifiers/" + match "/identifiers/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/identifiers/") end - match "/structured-identifiers/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/structured-identifiers/" + match "/structured-identifiers/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/structured-identifiers/") end - match "/addresses/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/addresses/" + match "/addresses/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/addresses/") end - match "/sites/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/sites/" + match "/sites/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/sites/") end - match "/change-events/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/change-events/" + match "/change-events/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/change-events/") end - match "/change-event-types/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/change-event-types/" + match "/change-event-types/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/change-event-types/") end - match "/change-event-results/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/change-event-results/" + match "/change-event-results/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/change-event-results/") end - match "/organization-status-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/organization-status-codes/" + match "/organization-status-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/organization-status-codes/") end - match "/locations/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/locations/" + match "/locations/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/locations/") end - match "/involvement-types/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/involvement-types/" + match "/involvement-types/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/involvement-types/") end - match "/ministers/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/ministers/" + match "/ministers/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/ministers/") end - match "/minister-conditions/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/minister-conditions/" + match "/minister-conditions/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/minister-conditions/") end - match "/dates-of-birth/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/dates-of-birth/" + match "/dates-of-birth/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/dates-of-birth/") end - match "/nationalities/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/nationalities/" + match "/nationalities/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/nationalities/") end - match "/gender-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/gender-codes/" - end - match "/concepts/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/concepts/" + match "/gender-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/gender-codes/") end - match "/minister-positions/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/minister-positions/" + match "/concepts/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/concepts/") end - match "/minister-position-functions/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/minister-position-functions/" + match "/minister-positions/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/minister-positions/") end - match "/financing-codes/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/financing-codes/" + match "/minister-position-functions/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/minister-position-functions/") end - match "/minister-condition-criterions/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/minister-condition-criterions/" + match "/financing-codes/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/financing-codes/") end - match "/document-types-criterions/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/document-types-criterions/" + match "/minister-condition-criterions/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/minister-condition-criterions/") end - match "/site-types/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/site-types/" + match "/document-types-criterions/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/document-types-criterions/") end - match "/request-reasons/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/request-reasons/" + match "/site-types/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/site-types/") end - match "/decisions/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/decisions/" + match "/request-reasons/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/request-reasons/") end - match "/decision-activities/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://cache/decision-activities/" + match "/decisions/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/decisions/") + end + + match "/decision-activities/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/decision-activities/") + end + + match "/memberships/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/memberships/") + end + + match "/membership-roles/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://cache/membership-roles/") 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/" + match "/kbo-organizations/*path", %{accept: [:any], layer: :api} do + Proxy.forward(conn, path, "http://resource/kbo-organizations/") end ############### # LOGIN ############### - match "/accounts", %{ accept: [:json], layer: :api} do - Proxy.forward conn, [], "http://resource/accounts/" - end - match "/accounts/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://accountdetail/accounts/" - end - match "/active-role/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://roles/" - end - match "/groups/*path", %{ accept: [:json], layer: :api} do - Proxy.forward conn, path, "http://resource/groups/" + match "/accounts", %{accept: [:json], layer: :api} do + Proxy.forward(conn, [], "http://resource/accounts/") end - match "/mock/sessions/*path", %{ accept: [:any], layer: :api} do - Proxy.forward conn, path, "http://mocklogin/sessions/" + match "/accounts/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://accountdetail/accounts/") end - match "/sessions/*path", %{ accept: [:any], layer: :api} do - Proxy.forward conn, path, "http://login/sessions/" + match "/active-role/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://roles/") + end + + match "/groups/*path", %{accept: [:json], layer: :api} do + Proxy.forward(conn, path, "http://resource/groups/") + end + + match "/mock/sessions/*path", %{accept: [:any], layer: :api} do + Proxy.forward(conn, path, "http://mocklogin/sessions/") + end + + match "/sessions/*path", %{accept: [:any], layer: :api} do + Proxy.forward(conn, path, "http://login/sessions/") end ############################################################### # SEARCH ############################################################### - match "/search/*path", %{ accept: %{ json: true }, layer: :api_services} do - Proxy.forward conn, path, "http://search/" + match "/search/*path", %{accept: %{json: true}, layer: :api_services} do + Proxy.forward(conn, path, "http://search/") end ############### # API SERVICES ############### - match "/v3/api-docs/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://kalliope-api/v3/api-docs/" + match "/v3/api-docs/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://kalliope-api/v3/api-docs/") end - match "/consolidated/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://kalliope-api/consolidated/" + match "/consolidated/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://kalliope-api/consolidated/") end - match "/adresses-register/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://adressenregister/" + match "/adresses-register/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://adressenregister/") end - match "/worship/person-information-updates/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://privacy-worship/person-information-updates" + match "/worship/person-information-updates/*path", %{ + layer: :api_services, + accept: %{json: true} + } do + forward(conn, path, "http://privacy-worship/person-information-updates") end - match "/worship/person-information-requests/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://privacy-worship/person-information-requests" + match "/worship/person-information-requests/*path", %{ + layer: :api_services, + accept: %{json: true} + } do + forward(conn, path, "http://privacy-worship/person-information-requests") end - match "/worship/person-information-ask/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://privacy-worship/person-information-ask/" + match "/worship/person-information-ask/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://privacy-worship/person-information-ask/") end - match "/worship/person-information-validate-ssn/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://privacy-worship/person-information-validate-ssn/" + match "/worship/person-information-validate-ssn/*path", %{ + layer: :api_services, + accept: %{json: true} + } do + forward(conn, path, "http://privacy-worship/person-information-validate-ssn/") end - match "/person-information-updates/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://privacy-unit/person-information-updates" + match "/person-information-updates/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://privacy-unit/person-information-updates") end - match "/person-information-requests/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://privacy-unit/person-information-requests" + match "/person-information-requests/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://privacy-unit/person-information-requests") end - match "/person-information-ask/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://privacy-unit/person-information-ask/" + match "/person-information-ask/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://privacy-unit/person-information-ask/") end - match "/person-information-validate-ssn/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://privacy-unit/person-information-validate-ssn/" + match "/person-information-validate-ssn/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://privacy-unit/person-information-validate-ssn/") end - get "/uri-info/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://uri-info/" + get "/uri-info/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://uri-info/") end - post "/construct-organization-relationships/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://construct-organization-relationships/create-relationships/" + post "/construct-organization-relationships/*path", %{ + layer: :api_services, + accept: %{json: true} + } do + forward(conn, path, "http://construct-organization-relationships/create-relationships/") end - post "/kbo-data-sync/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://kbo-data-sync/sync-kbo-data/" + post "/kbo-data-sync/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://kbo-data-sync/sync-kbo-data/") end - get "/ldes/*path", %{ layer: :api_services } do - forward conn, path, "http://ldes-backend/" + get "/ldes/*path", %{layer: :api_services} do + forward(conn, path, "http://ldes-backend/") end ################################################################# # ERROR REPORT ################################################################# - match "/error-reports/*path", %{ layer: :api_services, accept: %{ json: true } } do - forward conn, path, "http://error-report-service/error-reports/" + match "/error-reports/*path", %{layer: :api_services, accept: %{json: true}} do + forward(conn, path, "http://error-report-service/error-reports/") end ################################################################# # FILES ################################################################# - get "/files/:id/download", %{ accept: [:any], } do - Proxy.forward conn, [], "http://file/files/" <> id <> "/download" + get "/files/:id/download", %{accept: [:any]} do + Proxy.forward(conn, [], "http://file/files/" <> id <> "/download") end - get "/files/*path" , %{ layer: :api_services, accept: %{ json: true } } do - Proxy.forward conn, path, "http://resource/files/" + get "/files/*path", %{layer: :api_services, accept: %{json: true}} do + Proxy.forward(conn, path, "http://resource/files/") end ################################################################# # DCAT ################################################################# - get "/datasets/*path", %{ layer: :api_services, accept: %{ json: true } } do - Proxy.forward conn, path, "http://resource/datasets/" + get "/datasets/*path", %{layer: :api_services, accept: %{json: true}} do + Proxy.forward(conn, path, "http://resource/datasets/") end - get "/distributions/*path", %{ layer: :api_services, accept: %{ json: true } } do - Proxy.forward conn, path, "http://resource/distributions/" + get "/distributions/*path", %{layer: :api_services, accept: %{json: true}} do + Proxy.forward(conn, path, "http://resource/distributions/") end ################################################################# @@ -366,7 +389,7 @@ defmodule Dispatcher do ################################################################# get "/sync/organizations/files/*path" do - Proxy.forward conn, path, "http://delta-producer-publication-graph-maintainer/files/" + Proxy.forward(conn, path, "http://delta-producer-publication-graph-maintainer/files/") end ################################################################# @@ -374,7 +397,11 @@ defmodule Dispatcher do ################################################################# get "/sync/organizations-public-info/files/*path" do - Proxy.forward conn, path, "http://delta-producer-pub-graph-maintainer-organizations-public-info/files/" + Proxy.forward( + conn, + path, + "http://delta-producer-pub-graph-maintainer-organizations-public-info/files/" + ) end ################################################################# @@ -382,7 +409,7 @@ defmodule Dispatcher do ################################################################# get "/sync/public/files/*path" do - Proxy.forward conn, path, "http://delta-producer-pub-graph-maintainer-public/files/" + Proxy.forward(conn, path, "http://delta-producer-pub-graph-maintainer-public/files/") end ################################################################# @@ -390,7 +417,7 @@ defmodule Dispatcher do ################################################################# get "/sync/worship-posts/files/*path" do - Proxy.forward conn, path, "http://delta-producer-pub-graph-maintainer-worship-posts/files/" + Proxy.forward(conn, path, "http://delta-producer-pub-graph-maintainer-worship-posts/files/") end ################################################################# @@ -398,44 +425,42 @@ defmodule Dispatcher do ################################################################# get "/download-exports/*path" do - Proxy.forward conn, path, "http://download-exports/" + Proxy.forward(conn, path, "http://download-exports/") end ############################################################### # frontend layer ############################################################### - match "/assets/*path", %{ layer: :api } do - Proxy.forward conn, path, "http://frontend/assets/" + match "/assets/*path", %{layer: :api} do + Proxy.forward(conn, path, "http://frontend/assets/") end - match "/@appuniversum/*path", %{ layer: :api } do - Proxy.forward conn, path, "http://frontend/@appuniversum/" + match "/@appuniversum/*path", %{layer: :api} do + Proxy.forward(conn, path, "http://frontend/@appuniversum/") end - match "/*path", %{ accept: [:html], layer: :api } do - Proxy.forward conn, [], "http://frontend/index.html" + match "/*path", %{accept: [:html], layer: :api} do + Proxy.forward(conn, [], "http://frontend/index.html") end - match "/*_path", %{ layer: :frontend } do - Proxy.forward conn, [], "http://frontend/index.html" + match "/*_path", %{layer: :frontend} do + Proxy.forward(conn, [], "http://frontend/index.html") end ############################################################### # sparql endpoint ############################################################### - post "/sparql/*path", %{ layer: :api_services, accept: %{ sparql_json: true } } do - forward conn, path, "http://db:8890/sparql/" + post "/sparql/*path", %{layer: :api_services, accept: %{sparql_json: true}} do + forward(conn, path, "http://db:8890/sparql/") end ############################################################### # errors ############################################################### - match "/*_path", %{ accept: [:any], layer: :not_found} do - send_resp( conn, 404, "{\"error\": {\"code\": 404}") + match "/*_path", %{accept: [:any], layer: :not_found} do + send_resp(conn, 404, "{\"error\": {\"code\": 404}") end - - end From 7902a1acadda6f65369f8ccd1f4cd3a1aab40700 Mon Sep 17 00:00:00 2001 From: mirdono Date: Thu, 4 Jul 2024 11:29:41 +0200 Subject: [PATCH 06/64] chore: renamed membership migrations to execute them at the right time --- .../20240704112500-codelist-lidmaatschap-rollen.graph} | 0 .../20240704112500-codelist-lidmaatschap-rollen.ttl} | 0 .../20240704112600-founding-members.sparql} | 0 .../20240704112700-participants.sparql} | 0 .../20240704112800-related-members.sparql} | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename config/migrations/{2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.graph => 2024/20240704112300-related-organizations-as-memberships/20240704112500-codelist-lidmaatschap-rollen.graph} (100%) rename config/migrations/{2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.ttl => 2024/20240704112300-related-organizations-as-memberships/20240704112500-codelist-lidmaatschap-rollen.ttl} (100%) rename config/migrations/{2023/20230824160000-related-organizations/20230824160500-founding-members.sparql => 2024/20240704112300-related-organizations-as-memberships/20240704112600-founding-members.sparql} (100%) rename config/migrations/{2023/20230824160000-related-organizations/20230831104300-participants.sparql => 2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql} (100%) rename config/migrations/{2023/20230824160000-related-organizations/20230831104400-related-members.sparql => 2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql} (100%) diff --git a/config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.graph b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112500-codelist-lidmaatschap-rollen.graph similarity index 100% rename from config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.graph rename to config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112500-codelist-lidmaatschap-rollen.graph diff --git a/config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.ttl b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112500-codelist-lidmaatschap-rollen.ttl similarity index 100% rename from config/migrations/2023/20230824160000-related-organizations/20230824160001-codelist-lidmaatschap-rollen.ttl rename to config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112500-codelist-lidmaatschap-rollen.ttl diff --git a/config/migrations/2023/20230824160000-related-organizations/20230824160500-founding-members.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112600-founding-members.sparql similarity index 100% rename from config/migrations/2023/20230824160000-related-organizations/20230824160500-founding-members.sparql rename to config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112600-founding-members.sparql diff --git a/config/migrations/2023/20230824160000-related-organizations/20230831104300-participants.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql similarity index 100% rename from config/migrations/2023/20230824160000-related-organizations/20230831104300-participants.sparql rename to config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql diff --git a/config/migrations/2023/20230824160000-related-organizations/20230831104400-related-members.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql similarity index 100% rename from config/migrations/2023/20230824160000-related-organizations/20230831104400-related-members.sparql rename to config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql From 9b4b9a0a6d998ff3e5febc27df244923d625c1a0 Mon Sep 17 00:00:00 2001 From: mirdono Date: Fri, 5 Jul 2024 18:11:23 +0200 Subject: [PATCH 07/64] chore: formatting and added comments --- .../20240704112600-founding-members.sparql | 18 +++++++++--------- .../20240704112700-participants.sparql | 15 +++++++-------- .../20240704112800-related-members.sparql | 15 +++++++-------- 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112600-founding-members.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112600-founding-members.sparql index 6264ca4..d06fdb9 100644 --- a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112600-founding-members.sparql +++ b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112600-founding-members.sparql @@ -1,22 +1,22 @@ PREFIX skos: PREFIX org: PREFIX mu: +PREFIX ext: DELETE { GRAPH ?g { - ?foundingOrg ?foundedOrg. + ?foundingOrg ext:isFounderOfOrganization ?foundedOrg . } } INSERT { GRAPH ?g { - ?foundingOrg org:memberOf ?foundedOrg. + ?foundingOrg org:memberOf ?foundedOrg . - ?membership - a org:Membership; - mu:uuid ?uuid; - org:organization ?foundedOrg; - org:member ?foundingOrg; - org:role . + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ?foundedOrg ; + org:member ?foundingOrg ; + org:role . # stichtend lid } } WHERE { @@ -27,7 +27,7 @@ WHERE { } GRAPH ?g { - ?foundingOrg ?foundedOrg. + ?foundingOrg ext:isFounderOfOrganization ?foundedOrg . } BIND(SHA1(CONCAT(STR(?foundingOrg), STR(?foundedOrg), "founded by")) as ?uuid) diff --git a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql index c8730be..80797f2 100644 --- a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql +++ b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql @@ -4,12 +4,11 @@ PREFIX mu: INSERT { GRAPH ?g { - ?membership - a org:Membership; - mu:uuid ?uuid; - org:organization ?organization; - org:member ?memberOrganization; - org:role . + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ?organization ; + org:member ?memberOrganization ; + org:role . # participant } } WHERE { @@ -20,9 +19,9 @@ WHERE { } GRAPH ?g { - ?memberOrganization org:memberOf ?organization. + ?memberOrganization org:memberOf ?organization . } BIND(SHA1(CONCAT(STR(?memberOrganization), STR(?organization), "member of")) as ?uuid) BIND(IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) -} \ No newline at end of file +} diff --git a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql index f9cd3a6..908ec5a 100644 --- a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql +++ b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql @@ -4,19 +4,18 @@ PREFIX mu: DELETE { GRAPH ?g { - ?organization org:hasSubOrganization ?subOrganization. + ?organization org:hasSubOrganization ?subOrganization . } } INSERT { GRAPH ?g { - ?subOrganization org:memberOf ?organization. + ?subOrganization org:memberOf ?organization . - ?membership - a org:Membership; - mu:uuid ?uuid; - org:organization ?organization; - org:member ?subOrganization; - org:role . + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ?organization ; + org:member ?subOrganization ; + org:role . # gerelateerd } } WHERE { From 4b0f0c1df227a5a80320960747735fa4084c20ba Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 16 Jul 2024 15:22:51 +0200 Subject: [PATCH 08/64] feat: remove `org:memberOf` predicates --- .../20240704112700-participants.sparql | 5 +++++ .../20240704112800-related-members.sparql | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql index 80797f2..cc74428 100644 --- a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql +++ b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112700-participants.sparql @@ -2,6 +2,11 @@ PREFIX skos: PREFIX org: PREFIX mu: +DELETE { + GRAPH ?g { + ?memberOrganization org:memberOf ?organization . + } +} INSERT { GRAPH ?g { ?membership a org:Membership ; diff --git a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql index 908ec5a..8161fed 100644 --- a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql +++ b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql @@ -9,8 +9,6 @@ DELETE { } INSERT { GRAPH ?g { - ?subOrganization org:memberOf ?organization . - ?membership a org:Membership ; mu:uuid ?uuid ; org:organization ?organization ; From 7050629e0c1ce6aad22c0505c33ceddcb94f450a Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 16 Jul 2024 15:23:32 +0200 Subject: [PATCH 09/64] feat: replace `is-associated-with` with a membership relation --- .../20240716151700-associated-with.sparql | 33 +++++++++++++++++++ config/resources/domain.json | 6 ---- 2 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 config/migrations/2024/20240704112300-related-organizations-as-memberships/20240716151700-associated-with.sparql diff --git a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240716151700-associated-with.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240716151700-associated-with.sparql new file mode 100644 index 0000000..2ccf9bd --- /dev/null +++ b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240716151700-associated-with.sparql @@ -0,0 +1,33 @@ +PREFIX skos: +PREFIX org: +PREFIX mu: +PREFIX ext: + +DELETE { + GRAPH ?g { + ?org org:linkedTo ?foundedOrg . + } +} +INSERT { + GRAPH ?g { + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ?foundedOrg ; + org:member ?org ; + org:role . # gerelateerd + } +} +WHERE { + VALUES ?g { + + + + } + + GRAPH ?g { + ?org org:linkedTo ?foundedOrg . + } + + BIND(SHA1(CONCAT(STR(?org), STR(?foundedOrg), "associated with")) as ?uuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) +} \ No newline at end of file diff --git a/config/resources/domain.json b/config/resources/domain.json index 3b529ca..c9eeac6 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -445,12 +445,6 @@ "target": "organizations", "cardinality": "many" }, - "is-associated-with": { - "predicate": "org:linkedTo", - "target": "organizations", - "cardinality": "one", - "inverse": true - }, "memberships-of-organizations": { "predicate": "org:member", "target": "memberships", From 86c8fd4b56065f82cd74b3e9170b35c88037f761 Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 16 Jul 2024 15:26:19 +0200 Subject: [PATCH 10/64] chore: removed deprecated relations from data model --- config/resources/domain.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/config/resources/domain.json b/config/resources/domain.json index c9eeac6..6fbe141 100644 --- a/config/resources/domain.json +++ b/config/resources/domain.json @@ -440,11 +440,6 @@ "target": "posts", "cardinality": "many" }, - "associated-organizations": { - "predicate": "org:linkedTo", - "target": "organizations", - "cardinality": "many" - }, "memberships-of-organizations": { "predicate": "org:member", "target": "memberships", @@ -467,17 +462,6 @@ "target": "nace-bel-codes", "cardinality": "many" }, - "participates-in": { - "predicate": "org:memberOf", - "target": "organizations", - "cardinality": "many" - }, - "has-participants": { - "predicate": "org:memberOf", - "target": "organizations", - "cardinality": "many", - "inverse": true - }, "kbo-organization": { "predicate": "owl:sameAs", "target": "kbo-organizations", From 0e5ac9a59f00a4e97629678653661635346a7cfd Mon Sep 17 00:00:00 2001 From: mirdono Date: Fri, 30 Aug 2024 16:49:54 +0200 Subject: [PATCH 11/64] chore: bump relationships-service version A new bug fix release was made for the `construct-organization-relationships-service`. This release is fully backward compatible and requires no further changes. --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0f8ebbf..f0935b3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -256,7 +256,7 @@ services: restart: always logging: *default-logging construct-organization-relationships: - image: lblod/construct-organization-relationships-service:1.0.1 + image: lblod/construct-organization-relationships-service:1.0.2 environment: START_DATE_WORSHIP_GOVERNING_BODY: "2023-04-01T00:00:00" END_DATE_WORSHIP_GOVERNING_BODY: "2026-03-31T00:00:00" From 7ae1793866d32453784c038374a0ab1b17e4dc61 Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 14 Aug 2024 16:55:49 +0200 Subject: [PATCH 12/64] feat: add new classification code Vlaamse gemeenschapscommissie --- ...gemeenschapscommissie-classification-code.sparql | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 config/migrations/2024/20240814145303-add-vlaamse-gemeenschapscommissie/20240814145427-add-vlaamse-gemeenschapscommissie-classification-code.sparql diff --git a/config/migrations/2024/20240814145303-add-vlaamse-gemeenschapscommissie/20240814145427-add-vlaamse-gemeenschapscommissie-classification-code.sparql b/config/migrations/2024/20240814145303-add-vlaamse-gemeenschapscommissie/20240814145427-add-vlaamse-gemeenschapscommissie-classification-code.sparql new file mode 100644 index 0000000..1fa8c94 --- /dev/null +++ b/config/migrations/2024/20240814145303-add-vlaamse-gemeenschapscommissie/20240814145427-add-vlaamse-gemeenschapscommissie-classification-code.sparql @@ -0,0 +1,13 @@ +PREFIX mu: +PREFIX skos: + +INSERT DATA { + GRAPH { + a ; + a ; + mu:uuid """d90c511e-f827-488c-84ba-432c8f69561c""" ; + skos:prefLabel """Vlaamse gemeenschapscommissie""" ; + skos:inScheme ; + skos:topConceptOf . + } +} From c373a3708b7e50cb311149c92feb2fc9adb57411 Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 21 Aug 2024 15:49:55 +0200 Subject: [PATCH 13/64] feat: migration to import actual VGC The Vlaamse Gemeenschapscommissie is a special kind of administrative unit, with its own specific classification code (which was added in a previous commit). The core data, address, and contact information was provided by the business. Note: currently the province in the address is intentionally left empty. This data will be provided (or entered) later by business. --- ...-gemeenschapscommissie-organisation.sparql | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 config/migrations/2024/20240814145303-add-vlaamse-gemeenschapscommissie/20240821134726-add-vlaamse-gemeenschapscommissie-organisation.sparql diff --git a/config/migrations/2024/20240814145303-add-vlaamse-gemeenschapscommissie/20240821134726-add-vlaamse-gemeenschapscommissie-organisation.sparql b/config/migrations/2024/20240814145303-add-vlaamse-gemeenschapscommissie/20240821134726-add-vlaamse-gemeenschapscommissie-organisation.sparql new file mode 100644 index 0000000..276f6e6 --- /dev/null +++ b/config/migrations/2024/20240814145303-add-vlaamse-gemeenschapscommissie/20240821134726-add-vlaamse-gemeenschapscommissie-organisation.sparql @@ -0,0 +1,129 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX regorg: +PREFIX adms: +PREFIX generiek: +PREFIX org: +PREFIX organisatie: +PREFIX ere: +PREFIX adres: +PREFIX locn: +PREFIX foaf: +PREFIX schema: + +INSERT { + GRAPH { + ?vgcUri a , + , + . + + ?vgcUri mu:uuid ?vgcUuid ; + skos:prefLabel """Vlaamse Gemeenschapscommissie""" ; + regorg:legalName """Vlaamse Gemeenschapscommissie""" ; + skos:altLabel """VGC""" ; + skos:altLabel """Commission communautaire flamande""" ; + org:classification . # Vlaamse gemeenschapscommissie + } + + GRAPH { + ?vgcUri regorg:orgStatus . # Actief + + # KBO number + ?vgcUri adms:identifier ?kboIdUri . + ?kboIdUri a adms:Identifier ; + mu:uuid ?kboIdUuid ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator ?kboStructUri . + ?kboStructUri a generiek:GestructureerdeIdentificator ; + mu:uuid ?kboStructUuid ; + generiek:lokaleIdentificator """0240682635""" . + + # Placeholder OVO number + ?vgcUri adms:identifier ?ovoIdUri . + ?ovoIdUri a adms:Identifier ; + mu:uuid ?ovoIdUuid ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator ?ovoStructUri . + ?ovoStructUri a generiek:GestructureerdeIdentificator ; + mu:uuid ?ovoStructUuid . + + # Placeholder for SharePoint identifier + ?vgcUri adms:identifier ?sharepointIdUri . + ?sharepointIdUri a adms:Identifier ; + mu:uuid ?sharepointIdUuid ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator ?sharepointStructUri . + ?sharepointStructUri a generiek:GestructureerdeIdentificator ; + mu:uuid ?sharepointStructUuid . + + # Primary Site + ?vgcUri org:hasPrimarySite ?primarySiteUri . + ?primarySiteUri a org:Site ; + mu:uuid ?primarySiteUuid ; + organisatie:bestaatUit ?addressUri ; + org:siteAddress ?primaryContactPointUri ; + org:siteAddress ?secondaryContactPointUri ; + ere:vestigingstype . # Maatschappelijke zetel + + ## Address + ?addressUri a locn:Address ; + mu:uuid ?addressUuid ; + adres:Adresvoorstelling.huisnummer "135" ; + locn:thoroughfare "Emile Jacqmainlaan" ; + locn:postCode "1000" ; + adres:gemeentenaam "Brussel" ; + adres:land """België""" ; + locn:fullAddress """Emile Jacqmainlaan 135, 1000 Brussel, België""" . + + ## Primary contact point + ?primaryContactPointUri a schema:ContactPoint ; + mu:uuid ?primaryContactPointUuid ; + schema:telephone "tel:+3225630300" ; + schema:email "info@vgc.be" ; + foaf:page "https://www.vgc.be" ; + schema:contactType "Primary" . + + ## Secondary contact point + ?secondaryContactPointUri a schema:ContactPoint ; + mu:uuid ?secondaryContactPointUuid ; + schema:contactType "Secondary" . + } +} WHERE { + BIND("9e6b6eb3-2f0b-4723-876b-178dfaecfddf" AS ?vgcUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/bestuurseenheden/", STR(?vgcUuid))) AS ?vgcUri) + + # UUID and URI for KBO number + BIND(SHA256(CONCAT(STR(?vgcUuid), "KBO number identifier")) AS ?kboIdUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/identificatoren/", STR(?kboIdUuid))) AS ?kboIdUri) + BIND(SHA256(CONCAT(STR(?vgcUuid), STR(?kboUuid), "KBO number structured identifier")) AS ?kboStructUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/gestructureerdeIdentificatoren/", STR(?kboStructUuid))) AS ?kboStructUri) + + # UUID and URI for OVO number + BIND(SHA256(CONCAT(STR(?vgcUuid), "OVO number identifier")) AS ?ovoIdUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/identificatoren/", STR(?ovoIdUuid))) AS ?ovoIdUri) + BIND(SHA256(CONCAT(STR(?vgcUuid), STR(?ovoUuid), "OVO number structured identifier")) AS ?ovoStructUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/gestructureerdeIdentificatoren/", STR(?ovoStructUuid))) AS ?ovoStructUri) + + # UUID and URI for SharePoint number + BIND(SHA256(CONCAT(STR(?vgcUuid), "SharePoint number identifier")) AS ?sharepointIdUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/identificatoren/", STR(?sharepointIdUuid))) AS ?sharepointIdUri) + BIND(SHA256(CONCAT(STR(?vgcUuid), STR(?sharepointUuid), "SharePoint structured number identifier")) AS ?sharepointStructUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/gestructureerdeIdentificatoren/", STR(?sharepointStructUuid))) AS ?sharepointStructUri) + + # Primary site + BIND(SHA256(CONCAT(STR(?vgcUuid), "VGC primary site")) AS ?primarySiteUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/vestigingen/", STR(?primarySiteUuid))) AS ?primarySiteUri) + + ## Address + BIND(SHA256(CONCAT(STR(?vgcUuid), STR(?primarySiteUuid), "VGC primary site address")) AS ?addressUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/adressen/", STR(?addressUuid))) AS ?addressUri) + + ## Primary contact point + BIND(SHA256(CONCAT(STR(?vgcUuid), STR(?primarySiteUuid), "VGC primary site primary contact point")) AS ?primaryContactPointUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/contact-punten/", STR(?primaryContactPointUuid))) AS ?primaryContactPointUri) + + ## Secondary contact point + BIND(SHA256(CONCAT(STR(?vgcUuid), STR(?primarySiteUuid), "VGC primary site secondary contact point")) AS ?secondaryContactPointUuid) + BIND(IRI(CONCAT("http://data.lblod.info/id/contact-punten/", STR(?secondaryContactPointUuid))) AS ?secondaryContactPointUri) +} From d5da714e12c5486abef5abe66bd98492abd3116f Mon Sep 17 00:00:00 2001 From: mirdono Date: Mon, 19 Aug 2024 15:01:50 +0200 Subject: [PATCH 14/64] feat: add new merged municipalities and OCMWs As part of the municipality mergers for 2025, four new municipalities and their corresponding OCMWs will have new KBO numbers. Consequently, these organizations need to be fully manually created. This commit adds the migrations to import the organisations for the merged municipalities and OCMWs such that their URIs can already be shared among applications. The currently imported data concerns: - core data such as (legal) name, region, status, KBO, and OVO number - the necessary governing bodies, with as starting date 2025-01-01 The NIS-codes (and associated data) will be added in future migrations when the NIS2025 update has been released. Other missing data, such as addresses and contact details, will be added later on by business. --- ...pality-beveren_kruibeke_zwijndrecht.sparql | 250 ++++++++++++++++++ ...merged-municipality-merelbeke_melle.sparql | 250 ++++++++++++++++++ ...rged-municipality-nazareth_de_pinte.sparql | 250 ++++++++++++++++++ ...1423-merged-municipality-pajottegem.sparql | 250 ++++++++++++++++++ ...d-ocmw-beveren_kruibeke_zwijndrecht.sparql | 161 +++++++++++ ...9141423-merged-ocmw-merelbeke_melle.sparql | 161 +++++++++++ ...41423-merged-ocmw-nazareth_de_pinte.sparql | 161 +++++++++++ ...240819141423-merged-ocmw-pajottegem.sparql | 161 +++++++++++ ...late-merge-municipalities-and-ocmws.sparql | 105 ++++++++ 9 files changed, 1749 insertions(+) create mode 100644 config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-beveren_kruibeke_zwijndrecht.sparql create mode 100644 config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-merelbeke_melle.sparql create mode 100644 config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-nazareth_de_pinte.sparql create mode 100644 config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-pajottegem.sparql create mode 100644 config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql create mode 100644 config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-merelbeke_melle.sparql create mode 100644 config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-nazareth_de_pinte.sparql create mode 100644 config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-pajottegem.sparql create mode 100644 config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819142809-relate-merge-municipalities-and-ocmws.sparql diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-beveren_kruibeke_zwijndrecht.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-beveren_kruibeke_zwijndrecht.sparql new file mode 100644 index 0000000..53268d2 --- /dev/null +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-beveren_kruibeke_zwijndrecht.sparql @@ -0,0 +1,250 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX organisatie: +PREFIX regorg: +PREFIX owl: +PREFIX adms: +PREFIX generiek: +PREFIX besluit: +PREFIX prov: +PREFIX ext: +PREFIX mandaat: +PREFIX geo: + +INSERT { + GRAPH { + a , + , + . + mu:uuid "cc2c8c98-5f2a-471a-b6e2-65fa1c7dd412" ; + skos:prefLabel """Beveren-Kruibeke-Zwijndrecht""" ; + regorg:legalName """Beveren-Kruibeke-Zwijndrecht""" ; + org:classification . + } + + GRAPH { + regorg:orgStatus . # In oprichting + + owl:sameAs . + + # KBO number + adms:identifier . + a adms:Identifier ; + mu:uuid """e48e6a1f-8079-427e-9ae4-a0fdbf3d8a1c""" ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """3d540e3e-e1ea-4ecc-9a70-476e97581d70""" ; + generiek:lokaleIdentificator """1010783451""" . + + # OVO number + adms:identifier . + a adms:Identifier ; + mu:uuid """38cca492-b0be-41a5-b96a-812d4451a6d9""" ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """2cf8e7f4-d3a2-4662-854b-bb49d4d04cbb""" ; + generiek:lokaleIdentificator """OVO053390""" . + + # Placeholder for SharePoint identifier + a adms:Identifier ; + mu:uuid "052b2f93-ba5b-4f53-a8a3-ebcf99a48e9c" ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "30ae130f-3b8f-4a4c-8e08-f62e59ab7ccb" . + } +} +; +# scope +INSERT { + GRAPH { + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """c9a29e0e-0c7f-4069-910d-641258daa6cb""" ; + rdfs:label """Beveren-Kruibeke-Zwijndrecht""" ; + ext:werkingsgebiedNiveau "Gemeente" . + } + + GRAPH { + geo:sfWithin ?locatedWithin . + } +} WHERE { + GRAPH { + ?locatedWithin a ; + rdfs:label ?label . + FILTER (STR(?label) = """Waasland""") + } +} +# +# Governing bodies +# +; +## Burgemeester +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """e2351257-1ebc-48ea-9b14-bd7698dec7fe""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """ecc2d683-b804-4266-9cfd-b3fca23b712e""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +; +## Gemeenteraad +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """dc048d1e-16a6-4bc6-988d-06f676bae795""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """69c9dd66-c624-494e-a796-696ad29ae0cc""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +; +## College van Burgemeester en Schepenen +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """df293266-aa4e-4f2d-bce4-9e90ba1d10ce""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """8a7a3797-92db-4a61-9a96-a6e9906ae75f""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +; +## Algemeen directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """474fc497-860b-47ca-93bd-09538c61a0f4""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """44a3c3df-3518-402e-9941-dfda997da444""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +; +## Adjunct-algemeen directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """550ad610-6954-4170-ad6b-b6ea25b1f0c5""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """8c0d39ba-bffc-4a08-ac3f-f36fcf446694""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +; +## Financieel directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """c8b77803-6490-4b74-be22-9f6a0d31884e""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """544013f9-9d58-41ce-9413-63d49c83dc30""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +; +## Adjunct-financieel directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """c61f2753-f767-40cc-923c-cd46f22b1394""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """eedad091-80a0-4ce1-b99f-657a0e6ca246""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +# +# Related province +# +; +INSERT { + GRAPH { + ?province org:hasSubOrganization . + } +} WHERE { + GRAPH { + ?province skos:prefLabel """Oost-Vlaanderen""" . + } +} diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-merelbeke_melle.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-merelbeke_melle.sparql new file mode 100644 index 0000000..b7c8167 --- /dev/null +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-merelbeke_melle.sparql @@ -0,0 +1,250 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX organisatie: +PREFIX regorg: +PREFIX owl: +PREFIX adms: +PREFIX generiek: +PREFIX besluit: +PREFIX prov: +PREFIX ext: +PREFIX mandaat: +PREFIX geo: + +INSERT { + GRAPH { + a , + , + . + mu:uuid "3190ca10-104c-481d-92a5-42a9bb033a65" ; + skos:prefLabel """Merelbeke-Melle""" ; + regorg:legalName """Merelbeke-Melle""" ; + org:classification . + } + + GRAPH { + regorg:orgStatus . # In oprichting + + owl:sameAs . + + # KBO number + adms:identifier . + a adms:Identifier ; + mu:uuid """e494623a-29be-4478-83f4-01a216a1ff8f""" ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """d4b3548e-256c-4667-a600-20e9702cf0f8""" ; + generiek:lokaleIdentificator """1010775830""" . + + # OVO number + adms:identifier . + a adms:Identifier ; + mu:uuid """7a82ba6c-c571-4672-a893-224bbcabeda9""" ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """c9d1ccd6-a9cb-431e-9919-1120e157549b""" ; + generiek:lokaleIdentificator """OVO053387""" . + + # Placeholder for SharePoint identifier + a adms:Identifier ; + mu:uuid "cbdebc3e-463a-4365-b44f-5c1cf03e46cc" ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "a16c1585-cd67-422b-a7a9-2ff8b04a633e" . + } +} +; +# scope +INSERT { + GRAPH { + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """dcfebd37-162e-486f-9598-1b292a67e3e9""" ; + rdfs:label """Merelbeke-Melle""" ; + ext:werkingsgebiedNiveau "Gemeente" . + } + + GRAPH { + geo:sfWithin ?locatedWithin . + } +} WHERE { + GRAPH { + ?locatedWithin a ; + rdfs:label ?label . + FILTER (STR(?label) = """Regio Gent""") + } +} +# +# Governing bodies +# +; +## Burgemeester +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """13d87f34-c6d5-431f-a566-273efdc9c7f4""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """31775fb5-59b0-464c-bb01-53d44309e5da""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +; +## Gemeenteraad +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """b4fca2a8-4534-46e1-8f7b-1ba949969ec0""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """efc20a9c-f5bd-48ee-af68-3bb679564a0c""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +; +## College van Burgemeester en Schepenen +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """35d1a73d-d45a-4c84-b98c-bd3fa97a7b8b""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """c8d5ae0a-4857-48e4-9bbd-d68bb738ba89""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +; +## Algemeen directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """94dc4fee-3398-46d4-9c5d-da744ac2ec65""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """e16b32cf-78d6-4690-b76b-1590044e5d09""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +; +## Adjunct-algemeen directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """8a2edd81-6b5f-40dc-bc78-188b07695972""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """4ec1bb3b-20f3-4b45-946f-f8ce6f6d48c4""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +; +## Financieel directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """2c0f1995-7664-44d5-b175-112f51d0b663""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """5e48f15a-501f-4811-96e5-e2a2be6102fd""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +; +## Adjunct-financieel directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """ef9163c2-1b7e-4001-a8aa-6d08466c230c""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """b95eca68-9b0e-4c21-8426-26defe00579e""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +# +# Related province +# +; +INSERT { + GRAPH { + ?province org:hasSubOrganization . + } +} WHERE { + GRAPH { + ?province skos:prefLabel """Oost-Vlaanderen""" . + } +} diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-nazareth_de_pinte.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-nazareth_de_pinte.sparql new file mode 100644 index 0000000..fb27d45 --- /dev/null +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-nazareth_de_pinte.sparql @@ -0,0 +1,250 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX organisatie: +PREFIX regorg: +PREFIX owl: +PREFIX adms: +PREFIX generiek: +PREFIX besluit: +PREFIX prov: +PREFIX ext: +PREFIX mandaat: +PREFIX geo: + +INSERT { + GRAPH { + a , + , + . + mu:uuid "8c3d6a24-6a38-427e-98eb-a1040520173b" ; + skos:prefLabel """Nazareth-De Pinte""" ; + regorg:legalName """Nazareth-De Pinte""" ; + org:classification . + } + + GRAPH { + regorg:orgStatus . # In oprichting + + owl:sameAs . + + # KBO number + adms:identifier . + a adms:Identifier ; + mu:uuid """e6a6fce8-8caf-4862-9903-688cbd3f9f95""" ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """88f8c260-2edf-47ed-8f26-cff8b06651c5""" ; + generiek:lokaleIdentificator """1010781867""" . + + # OVO number + adms:identifier . + a adms:Identifier ; + mu:uuid """4039b244-d8b4-436d-930b-2696287da293""" ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """735fe7c3-5efb-409a-97ff-e4d28dee3afd""" ; + generiek:lokaleIdentificator """OVO053388""" . + + # Placeholder for SharePoint identifier + a adms:Identifier ; + mu:uuid "996d4116-72bf-4fda-b3fd-c127045288e3" ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "315e0a0e-222a-4e4e-9e63-9689a451b6d3" . + } +} +; +# scope +INSERT { + GRAPH { + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """ec944850-0095-4341-8747-ffe63813637b""" ; + rdfs:label """Nazareth-De Pinte""" ; + ext:werkingsgebiedNiveau "Gemeente" . + } + + GRAPH { + geo:sfWithin ?locatedWithin . + } +} WHERE { + GRAPH { + ?locatedWithin a ; + rdfs:label ?label . + FILTER (STR(?label) = """Regio Gent""") + } +} +# +# Governing bodies +# +; +## Burgemeester +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """bebd13d5-ca94-4394-8671-d3f3cdaab69b""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """c80818e7-4ce2-4225-9f48-0b1443f83ba4""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +; +## Gemeenteraad +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """0c7c4fcf-cd5c-4e37-9176-6673b8ffc734""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """49db8458-56d1-44e5-8660-71e45b598be5""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +; +## College van Burgemeester en Schepenen +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """9626bc18-db74-46cc-8095-7fd94f5e0e6d""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """2f815b8d-dca2-4aab-bc4a-96c43c469fbd""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +; +## Algemeen directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """c77802c0-df58-4976-bef6-fe5f92fc8e60""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """004ab1ae-5221-4c9f-ab85-5b2504ca8f4e""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +; +## Adjunct-algemeen directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """58150783-106f-4cc8-8ef2-cb18e8a355ab""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """9ee03ce4-53da-4b3f-9422-49763b3a2989""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +; +## Financieel directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """a1de0674-f33b-4350-b49e-bc495df46782""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """1910e790-9fe9-423a-a722-5fed88d6529d""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +; +## Adjunct-financieel directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """6180488c-65d6-4a99-b032-40b5aae0e48b""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """893f67bc-8f6a-44bb-88bf-42f987ef0aba""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +# +# Related province +# +; +INSERT { + GRAPH { + ?province org:hasSubOrganization . + } +} WHERE { + GRAPH { + ?province skos:prefLabel """Oost-Vlaanderen""" . + } +} diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-pajottegem.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-pajottegem.sparql new file mode 100644 index 0000000..856ac84 --- /dev/null +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-pajottegem.sparql @@ -0,0 +1,250 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX organisatie: +PREFIX regorg: +PREFIX owl: +PREFIX adms: +PREFIX generiek: +PREFIX besluit: +PREFIX prov: +PREFIX ext: +PREFIX mandaat: +PREFIX geo: + +INSERT { + GRAPH { + a , + , + . + mu:uuid "261c7380-4ecd-4846-a573-60914bdeb150" ; + skos:prefLabel """Pajottegem""" ; + regorg:legalName """Pajottegem""" ; + org:classification . + } + + GRAPH { + regorg:orgStatus . # In oprichting + + owl:sameAs . + + # KBO number + adms:identifier . + a adms:Identifier ; + mu:uuid """0197ec6c-b16d-4654-9f97-bc30f2de0f14""" ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """6ea3d739-107e-4a39-90df-89207f8f8e26""" ; + generiek:lokaleIdentificator """1010784540""" . + + # OVO number + adms:identifier . + a adms:Identifier ; + mu:uuid """0d36aeca-637a-4c36-ae75-4ac98a165fac""" ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """79f204e7-38bb-4d1f-bd9e-6262c7c46470""" ; + generiek:lokaleIdentificator """OVO053389""" . + + # Placeholder for SharePoint identifier + a adms:Identifier ; + mu:uuid "c4e533b0-aa9a-4fde-9f12-e651fee6359d" ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "b4ea9a1c-d68c-4f39-aa17-9f83fb88782c" . + } +} +; +# scope +INSERT { + GRAPH { + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """7204384f-f4e9-4a5e-b0c4-3976c8a69da9""" ; + rdfs:label """Pajottegem""" ; + ext:werkingsgebiedNiveau "Gemeente" . + } + + GRAPH { + geo:sfWithin ?locatedWithin . + } +} WHERE { + GRAPH { + ?locatedWithin a ; + rdfs:label ?label . + FILTER (STR(?label) = """Halle-Vilvoorde""") + } +} +# +# Governing bodies +# +; +## Burgemeester +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """c1a7289b-e15f-44ee-8425-b88fa557a4da""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """f9bbf6ef-2a66-4ff2-966f-2ddeed5bdd55""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +; +## Gemeenteraad +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """b603c476-5a98-4d7b-aafb-9e0f2280c912""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """645eadbe-4358-40bd-8038-8bffb1b59214""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +; +## College van Burgemeester en Schepenen +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """96a13d7e-b984-4690-aab7-9b0f8bb238f7""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """5956adad-74c5-43c8-8e4b-4729d87d92c8""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +; +## Algemeen directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """29a2c70d-65f9-49ec-8dcb-e35785f89776""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """9b4da922-8437-405a-8545-ce9099d0691d""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +; +## Adjunct-algemeen directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """c6027a78-d021-4358-86fc-56683e51ec9d""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """fc29df7f-30ee-4b35-8f8b-063e48627dcf""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +; +## Financieel directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """b12cda4a-5ba7-4170-b820-d5f1c696cd1e""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """875a6398-c8c6-4003-bd46-0370a8c55fd2""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +; +## Adjunct-financieel directeur +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """40a42977-af82-4ff7-8483-32476cb0b9a9""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """d70efcd3-237d-4d57-bed3-e7796482ea30""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +# +# Related province +# +; +INSERT { + GRAPH { + ?province org:hasSubOrganization . + } +} WHERE { + GRAPH { + ?province skos:prefLabel """Vlaams-Brabant""" . + } +} diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql new file mode 100644 index 0000000..41c78b0 --- /dev/null +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql @@ -0,0 +1,161 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX organisatie: +PREFIX regorg: +PREFIX owl: +PREFIX adms: +PREFIX generiek: +PREFIX besluit: +PREFIX prov: +PREFIX ext: +PREFIX mandaat: +PREFIX geo: + +INSERT { + GRAPH { + a , + , + . + mu:uuid "26913911-14e2-4683-9ea4-4c37951b68b7" ; + skos:prefLabel """Beveren-Kruibeke-Zwijndrecht""" ; + regorg:legalName """Beveren-Kruibeke-Zwijndrecht""" ; + org:classification . + + regorg:orgStatus . # In oprichting + + owl:sameAs . + + # KBO number + adms:identifier . + a adms:Identifier ; + mu:uuid """a4763769-eb32-43c1-9c92-a2c345fccff2""" ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """6d34fc95-6586-4e21-a256-7373f455f911""" ; + generiek:lokaleIdentificator """1010783748""" . + + # OVO number + adms:identifier . + a adms:Identifier ; + mu:uuid """a0187b2a-fa05-492f-865e-b1fc9ce5e9c2""" ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """17aeaeb1-4348-4dae-bd4e-e063b662ffeb""" ; + generiek:lokaleIdentificator """OVO053710""" . + + # Placeholder for SharePoint identifier + a adms:Identifier ; + mu:uuid "cedfbb4e-d8af-4d1f-85f2-dcc0f4cf4cb6" ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "fc2d4892-cb62-4309-a100-0dd57d4d0193" . + } +} +# +# Governing bodies +# +; +## Voorzitter van het Bijzonder Comité voor de Sociale Dienst +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """4e3085a8-95ff-4fde-85f4-ee921b54fccc""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """4fe4f3ef-7b32-412e-b40a-58ce55240940""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +; +## Raad voor Maatschappelijk Welzijn +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """0cfd0845-a79c-4640-9d61-15720a8f6086""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """aa126dbc-d424-4ce7-81dd-61d4d27f8f97""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +; +## Vast Bureau +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """d9cdba10-0dda-4471-8bb3-73c94d4b43ac""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """b2404e03-72d2-4496-ab5d-687fa334dca9""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +; +## Bijzonder Comité voor de Sociale Dienst +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """4bca4def-ee66-45ff-8402-9f71810e7c2e""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """a633f2d2-ecee-471a-84a2-5365c677d4f1""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Beveren-Kruibeke-Zwijndrecht") as ?governingBodyLabel) +} +# +# Related province +# +; +INSERT { + GRAPH { + ?province org:hasSubOrganization . + } +} WHERE { + GRAPH { + ?province skos:prefLabel """Oost-Vlaanderen""" . + } +} diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-merelbeke_melle.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-merelbeke_melle.sparql new file mode 100644 index 0000000..1f793b1 --- /dev/null +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-merelbeke_melle.sparql @@ -0,0 +1,161 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX organisatie: +PREFIX regorg: +PREFIX owl: +PREFIX adms: +PREFIX generiek: +PREFIX besluit: +PREFIX prov: +PREFIX ext: +PREFIX mandaat: +PREFIX geo: + +INSERT { + GRAPH { + a , + , + . + mu:uuid "80bb6363-c914-4e51-82ec-e547b21890f4" ; + skos:prefLabel """Merelbeke-Melle""" ; + regorg:legalName """Merelbeke-Melle""" ; + org:classification . + + regorg:orgStatus . # In oprichting + + owl:sameAs . + + # KBO number + adms:identifier . + a adms:Identifier ; + mu:uuid """222cc648-4a5b-496a-8f4f-2abde996ec36""" ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """9c0e5534-0a79-4a0b-82d5-d9e1607e34d6""" ; + generiek:lokaleIdentificator """1010776127""" . + + # OVO number + adms:identifier . + a adms:Identifier ; + mu:uuid """d186d187-ab96-41dc-bd52-bdf9f7de2b47""" ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """ba8f9e04-a9f2-440f-8b85-3b81a9033cf7""" ; + generiek:lokaleIdentificator """OVO053711""" . + + # Placeholder for SharePoint identifier + a adms:Identifier ; + mu:uuid "447c5679-b4eb-4f37-aee7-c4a5ce8974cd" ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "29b43db7-ffe8-415d-8cba-3b8d29c01ee8" . + } +} +# +# Governing bodies +# +; +## Voorzitter van het Bijzonder Comité voor de Sociale Dienst +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """c1177041-2755-48cf-a893-567a2ec85806""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """bd58436e-7472-4862-8578-30eb0dd83330""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +; +## Raad voor Maatschappelijk Welzijn +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """1f32130c-6127-4be2-96ee-8ed175836843""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """5474dfba-65d1-4516-b307-0ed1d112c9f0""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +; +## Vast Bureau +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """839173f2-5ba1-4aef-b681-0608a18eec3d""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """80324764-8bfc-408c-9362-25caf85a2b41""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +; +## Bijzonder Comité voor de Sociale Dienst +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """acde5a73-f1f5-4a6a-9c86-13875905588c""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """acfe2eb5-7d17-480f-8308-5ba0b607acc2""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Merelbeke-Melle") as ?governingBodyLabel) +} +# +# Related province +# +; +INSERT { + GRAPH { + ?province org:hasSubOrganization . + } +} WHERE { + GRAPH { + ?province skos:prefLabel """Oost-Vlaanderen""" . + } +} diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-nazareth_de_pinte.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-nazareth_de_pinte.sparql new file mode 100644 index 0000000..cdfd970 --- /dev/null +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-nazareth_de_pinte.sparql @@ -0,0 +1,161 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX organisatie: +PREFIX regorg: +PREFIX owl: +PREFIX adms: +PREFIX generiek: +PREFIX besluit: +PREFIX prov: +PREFIX ext: +PREFIX mandaat: +PREFIX geo: + +INSERT { + GRAPH { + a , + , + . + mu:uuid "92734750-4886-4dd8-8adb-1fb44dd221b8" ; + skos:prefLabel """Nazareth-De Pinte""" ; + regorg:legalName """Nazareth-De Pinte""" ; + org:classification . + + regorg:orgStatus . # In oprichting + + owl:sameAs . + + # KBO number + adms:identifier . + a adms:Identifier ; + mu:uuid """0716e45c-bcf2-4828-99b9-26aca09f83d5""" ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """c58cec55-8f6d-4b01-8bdf-e363b9e09140""" ; + generiek:lokaleIdentificator """1010782461""" . + + # OVO number + adms:identifier . + a adms:Identifier ; + mu:uuid """fcf15add-35cd-4e66-b322-7b7009aecced""" ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """6a8393e9-8492-4298-b150-1a5388d9ebbc""" ; + generiek:lokaleIdentificator """OVO053712""" . + + # Placeholder for SharePoint identifier + a adms:Identifier ; + mu:uuid "afd96dec-49a8-4350-bafb-b1c62addefc9" ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "2302c0b0-68a8-4cfc-8746-5ec63a4c47c5" . + } +} +# +# Governing bodies +# +; +## Voorzitter van het Bijzonder Comité voor de Sociale Dienst +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """ff486223-9205-49f6-a2d6-67a4b5ef752e""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """d2931462-e676-46b7-85b5-f898a6584bb1""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +; +## Raad voor Maatschappelijk Welzijn +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """8e72c369-f5b5-451b-820c-9d9db2ce22b8""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """49ab2548-03df-4ccf-9bce-dd571bc6342f""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +; +## Vast Bureau +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """e1bdd942-71b6-4385-b048-17fab0e3b625""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """cfa4adfb-4229-4de8-ac9d-74197ffe3c35""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +; +## Bijzonder Comité voor de Sociale Dienst +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """35c9de34-f207-486d-acc5-aacc00e7e3f5""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """a2f6349b-78cf-474a-849c-863fcf311b70""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Nazareth-De Pinte") as ?governingBodyLabel) +} +# +# Related province +# +; +INSERT { + GRAPH { + ?province org:hasSubOrganization . + } +} WHERE { + GRAPH { + ?province skos:prefLabel """Oost-Vlaanderen""" . + } +} diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-pajottegem.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-pajottegem.sparql new file mode 100644 index 0000000..7ebb104 --- /dev/null +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-pajottegem.sparql @@ -0,0 +1,161 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX organisatie: +PREFIX regorg: +PREFIX owl: +PREFIX adms: +PREFIX generiek: +PREFIX besluit: +PREFIX prov: +PREFIX ext: +PREFIX mandaat: +PREFIX geo: + +INSERT { + GRAPH { + a , + , + . + mu:uuid "73018124-9b28-42b0-817f-7e08a90cfe9f" ; + skos:prefLabel """Pajottegem""" ; + regorg:legalName """Pajottegem""" ; + org:classification . + + regorg:orgStatus . # In oprichting + + owl:sameAs . + + # KBO number + adms:identifier . + a adms:Identifier ; + mu:uuid """f18fe9b0-f9e7-4bb7-ac7d-b8590570b633""" ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """289880d3-2de5-46a2-a2e6-81a67f216773""" ; + generiek:lokaleIdentificator """1010784738""" . + + # OVO number + adms:identifier . + a adms:Identifier ; + mu:uuid """05e0a7b3-1a34-47e5-b1f4-1ccf46d03758""" ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """3a53414e-ba06-4197-a4ea-f9d301160bc9""" ; + generiek:lokaleIdentificator """OVO053708""" . + + # Placeholder for SharePoint identifier + a adms:Identifier ; + mu:uuid "f26a54be-f91d-42d2-9815-a1b7253e353c" ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "fd1bdea2-5c0d-44d5-ac62-a385a120b775" . + } +} +# +# Governing bodies +# +; +## Voorzitter van het Bijzonder Comité voor de Sociale Dienst +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """9f421c11-72c8-4b33-a6c0-b074ba843441""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """bec6982c-827d-4e05-b04c-46e275d3ca0f""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +; +## Raad voor Maatschappelijk Welzijn +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """7ff76277-5ee6-4ec9-bdd5-40508cc10587""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """c74ce5d9-5fa1-40cd-9c9a-44e593d49edc""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +; +## Vast Bureau +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """47f9d813-8838-4e27-ad10-286e5a57c768""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """56cc5d11-e8b8-40d5-8fbf-635615a8e76e""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +; +## Bijzonder Comité voor de Sociale Dienst +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """a212b975-3bd4-42a7-aeb9-4e0ec84f7236""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """f84b8bb7-a359-415f-aadf-ef50a504870f""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " ", "Pajottegem") as ?governingBodyLabel) +} +# +# Related province +# +; +INSERT { + GRAPH { + ?province org:hasSubOrganization . + } +} WHERE { + GRAPH { + ?province skos:prefLabel """Vlaams-Brabant""" . + } +} diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819142809-relate-merge-municipalities-and-ocmws.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819142809-relate-merge-municipalities-and-ocmws.sparql new file mode 100644 index 0000000..2c93659 --- /dev/null +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819142809-relate-merge-municipalities-and-ocmws.sparql @@ -0,0 +1,105 @@ +PREFIX org: +PREFIX besluit: +PREFIX adms: +PREFIX skos: +PREFIX generiek: + +# Beveren-Kruibeke-Zwijndrecht +INSERT { + GRAPH { + ?municipality org:linkedTo ?ocmw . + ?ocmw org:linkedTo ?municipality + } +} WHERE { + GRAPH { + ?municipality a besluit:Bestuurseenheid . + } + + GRAPH { + ?municipality adms:identifier ?municipalityId . + ?municipalityId skos:notation ?municipalityKboNotation . + FILTER(?municipalityKboNotation IN ("KBO nummer", "KBO nummer"@nl)) + ?municipalityId generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator """1010783451""" . + + ?ocmw a besluit:Bestuurseenheid ; + adms:identifier ?ocmwId . + ?ocmwId skos:notation ?ocmwKboNotation . + FILTER(?ocmwKboNotation IN ("KBO nummer", "KBO nummer"@nl)) + ?ocmwId generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator """1010783748""" . + } +} +; +# Nazareth-De Pinte +INSERT { + GRAPH { + ?municipality org:linkedTo ?ocmw . + ?ocmw org:linkedTo ?municipality + } +} WHERE { + GRAPH { + ?municipality a besluit:Bestuurseenheid . + } + + GRAPH { + ?municipality adms:identifier ?municipalityId . + ?municipalityId skos:notation ?municipalityKboNotation . + FILTER(?municipalityKboNotation IN ("KBO nummer", "KBO nummer"@nl)) + ?municipalityId generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator """1010781867""" . + + ?ocmw a besluit:Bestuurseenheid ; + adms:identifier ?ocmwId . + ?ocmwId skos:notation ?ocmwKboNotation . + FILTER(?ocmwKboNotation IN ("KBO nummer", "KBO nummer"@nl)) + ?ocmwId generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator """1010782461""" . + } +} +; +# Pajottegem +INSERT { + GRAPH { + ?municipality org:linkedTo ?ocmw . + ?ocmw org:linkedTo ?municipality + } +} WHERE { + GRAPH { + ?municipality a besluit:Bestuurseenheid . + } + + GRAPH { + ?municipality adms:identifier ?municipalityId . + ?municipalityId skos:notation ?municipalityKboNotation . + FILTER(?municipalityKboNotation IN ("KBO nummer", "KBO nummer"@nl)) + ?municipalityId generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator """1010784540""" . + + ?ocmw a besluit:Bestuurseenheid ; + adms:identifier ?ocmwId . + ?ocmwId skos:notation ?ocmwKboNotation . + FILTER(?ocmwKboNotation IN ("KBO nummer", "KBO nummer"@nl)) + ?ocmwId generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator """1010784738""" . + } +} +; +# Merelbeke-Melle +INSERT { + GRAPH { + ?municipality org:linkedTo ?ocmw . + ?ocmw org:linkedTo ?municipality + } +} WHERE { + GRAPH { + ?municipality a besluit:Bestuurseenheid . + } + + GRAPH { + ?municipality adms:identifier ?municipalityId . + ?municipalityId skos:notation ?municipalityKboNotation . + FILTER(?municipalityKboNotation IN ("KBO nummer", "KBO nummer"@nl)) + ?municipalityId generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator """1010775830""" . + + ?ocmw a besluit:Bestuurseenheid ; + adms:identifier ?ocmwId . + ?ocmwId skos:notation ?ocmwKboNotation . + FILTER(?ocmwKboNotation IN ("KBO nummer", "KBO nummer"@nl)) + ?ocmwId generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator """1010776127""" . + } +} From 3102f48998e0c4cca5c19d73a52127fe893150e3 Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 21 Aug 2024 12:37:10 +0200 Subject: [PATCH 15/64] fix: relate sharepoint with organisations and ensure unique prefixes - The previous version of the migrations lacked the triple actually linking the new organisations with the placeholder for SharePoint identifier. This triple was now added. - Ensure the timestamp prefixes are unique by adding 1 second delay in between generating each migration. --- ...ality-beveren_kruibeke_zwijndrecht.sparql} | 137 +++++++++--------- ...ged-municipality-nazareth_de_pinte.sparql} | 137 +++++++++--------- ...841-merged-municipality-pajottegem.sparql} | 137 +++++++++--------- ...erged-municipality-merelbeke_melle.sparql} | 137 +++++++++--------- ...-ocmw-beveren_kruibeke_zwijndrecht.sparql} | 93 ++++++------ ...2844-merged-ocmw-nazareth_de_pinte.sparql} | 93 ++++++------ ...40821122845-merged-ocmw-pajottegem.sparql} | 93 ++++++------ ...122846-merged-ocmw-merelbeke_melle.sparql} | 93 ++++++------ ...ate-merge-municipalities-and-ocmws.sparql} | 0 9 files changed, 464 insertions(+), 456 deletions(-) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240819141423-merged-municipality-beveren_kruibeke_zwijndrecht.sparql => 20240821122839-merged-municipality-beveren_kruibeke_zwijndrecht.sparql} (57%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240819141423-merged-municipality-nazareth_de_pinte.sparql => 20240821122840-merged-municipality-nazareth_de_pinte.sparql} (57%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240819141423-merged-municipality-pajottegem.sparql => 20240821122841-merged-municipality-pajottegem.sparql} (56%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240819141423-merged-municipality-merelbeke_melle.sparql => 20240821122842-merged-municipality-merelbeke_melle.sparql} (57%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240819141423-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql => 20240821122843-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql} (55%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240819141423-merged-ocmw-nazareth_de_pinte.sparql => 20240821122844-merged-ocmw-nazareth_de_pinte.sparql} (55%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240819141423-merged-ocmw-pajottegem.sparql => 20240821122845-merged-ocmw-pajottegem.sparql} (55%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240819141423-merged-ocmw-merelbeke_melle.sparql => 20240821122846-merged-ocmw-merelbeke_melle.sparql} (55%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240819142809-relate-merge-municipalities-and-ocmws.sparql => 20240821122900-relate-merge-municipalities-and-ocmws.sparql} (100%) diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-beveren_kruibeke_zwijndrecht.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122839-merged-municipality-beveren_kruibeke_zwijndrecht.sparql similarity index 57% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-beveren_kruibeke_zwijndrecht.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122839-merged-municipality-beveren_kruibeke_zwijndrecht.sparql index 53268d2..b989e30 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-beveren_kruibeke_zwijndrecht.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122839-merged-municipality-beveren_kruibeke_zwijndrecht.sparql @@ -14,62 +14,63 @@ PREFIX geo: INSERT { GRAPH { - a , + a , , . - mu:uuid "cc2c8c98-5f2a-471a-b6e2-65fa1c7dd412" ; + mu:uuid "965ad1ed-ade1-4936-84d9-fd3a2e4bea17" ; skos:prefLabel """Beveren-Kruibeke-Zwijndrecht""" ; regorg:legalName """Beveren-Kruibeke-Zwijndrecht""" ; org:classification . } GRAPH { - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """e48e6a1f-8079-427e-9ae4-a0fdbf3d8a1c""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """6bd72f0e-688d-4304-860a-0ca552324aea""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """3d540e3e-e1ea-4ecc-9a70-476e97581d70""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """22e5e8ff-b696-4603-a5cb-d2b9f19f9474""" ; generiek:lokaleIdentificator """1010783451""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """38cca492-b0be-41a5-b96a-812d4451a6d9""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """05b4318f-6562-427f-bdf5-56179beac3b8""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """2cf8e7f4-d3a2-4662-854b-bb49d4d04cbb""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """95fe9a2d-6235-4d1d-a4b2-a371ea2f096a""" ; generiek:lokaleIdentificator """OVO053390""" . # Placeholder for SharePoint identifier - a adms:Identifier ; - mu:uuid "052b2f93-ba5b-4f53-a8a3-ebcf99a48e9c" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "fc75bdcf-3b77-413c-9f56-92e659406d3e" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "30ae130f-3b8f-4a4c-8e08-f62e59ab7ccb" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "698e73c9-4ca6-4697-9475-57d05cedb2fe" . } } ; # scope INSERT { GRAPH { - besluit:werkingsgebied . - a prov:Location ; - mu:uuid """c9a29e0e-0c7f-4069-910d-641258daa6cb""" ; + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """7c7a6c51-7292-43a5-91f0-fb4100a157d9""" ; rdfs:label """Beveren-Kruibeke-Zwijndrecht""" ; ext:werkingsgebiedNiveau "Gemeente" . } GRAPH { - geo:sfWithin ?locatedWithin . + geo:sfWithin ?locatedWithin . } } WHERE { GRAPH { @@ -86,16 +87,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """e2351257-1ebc-48ea-9b14-bd7698dec7fe""" ; + a besluit:Bestuursorgaan ; + mu:uuid """4f5ff954-834f-4123-acbc-7c58600e85d8""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """ecc2d683-b804-4266-9cfd-b3fca23b712e""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """3a18e22a-1c03-49fd-9ad7-ba0c1324ec22""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -108,16 +109,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """dc048d1e-16a6-4bc6-988d-06f676bae795""" ; + a besluit:Bestuursorgaan ; + mu:uuid """75ee182f-6823-4276-98e1-183ef31822c9""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """69c9dd66-c624-494e-a796-696ad29ae0cc""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """3af6acba-1b55-4816-a510-f8c297b410ed""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -130,16 +131,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """df293266-aa4e-4f2d-bce4-9e90ba1d10ce""" ; + a besluit:Bestuursorgaan ; + mu:uuid """3a3b6506-ff23-4019-8524-7e074f08d906""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """8a7a3797-92db-4a61-9a96-a6e9906ae75f""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """b93c05b0-9fff-45e5-9dfe-6e69b202b689""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -152,16 +153,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """474fc497-860b-47ca-93bd-09538c61a0f4""" ; + a besluit:Bestuursorgaan ; + mu:uuid """e78d994c-b6a7-4cbe-8d38-011848ad5e81""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """44a3c3df-3518-402e-9941-dfda997da444""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """ea1e6cbe-e62e-4464-8e93-3e067dfc1690""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -174,16 +175,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """550ad610-6954-4170-ad6b-b6ea25b1f0c5""" ; + a besluit:Bestuursorgaan ; + mu:uuid """623d5510-532e-41a4-a130-8c3634cd03e2""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """8c0d39ba-bffc-4a08-ac3f-f36fcf446694""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """8ba0c544-66ed-44de-8be3-35abcad8dadf""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -196,16 +197,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """c8b77803-6490-4b74-be22-9f6a0d31884e""" ; + a besluit:Bestuursorgaan ; + mu:uuid """a6085d55-01cb-44a2-941b-12eddeac93c5""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """544013f9-9d58-41ce-9413-63d49c83dc30""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """13e59134-d1d5-4af6-b267-025cfa1c226b""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -218,16 +219,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """c61f2753-f767-40cc-923c-cd46f22b1394""" ; + a besluit:Bestuursorgaan ; + mu:uuid """b5737b28-7ecd-4721-b478-545b99d89eaa""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """eedad091-80a0-4ce1-b99f-657a0e6ca246""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """c591116d-32df-4849-b753-6aa3ee7bfe27""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -241,7 +242,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-nazareth_de_pinte.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122840-merged-municipality-nazareth_de_pinte.sparql similarity index 57% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-nazareth_de_pinte.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122840-merged-municipality-nazareth_de_pinte.sparql index fb27d45..fce7d76 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-nazareth_de_pinte.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122840-merged-municipality-nazareth_de_pinte.sparql @@ -14,62 +14,63 @@ PREFIX geo: INSERT { GRAPH { - a , + a , , . - mu:uuid "8c3d6a24-6a38-427e-98eb-a1040520173b" ; + mu:uuid "5bcd5343-d784-47a4-9818-871a5550fb19" ; skos:prefLabel """Nazareth-De Pinte""" ; regorg:legalName """Nazareth-De Pinte""" ; org:classification . } GRAPH { - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """e6a6fce8-8caf-4862-9903-688cbd3f9f95""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """30cc9d05-a936-4db2-a349-5d54cdb3e26a""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """88f8c260-2edf-47ed-8f26-cff8b06651c5""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """571d3b79-1870-493a-8273-6b8d70403b1d""" ; generiek:lokaleIdentificator """1010781867""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """4039b244-d8b4-436d-930b-2696287da293""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """b64ebc3d-013d-49ef-a211-57892f02bdc5""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """735fe7c3-5efb-409a-97ff-e4d28dee3afd""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """446ed124-9ae3-42bf-a398-54c94752236d""" ; generiek:lokaleIdentificator """OVO053388""" . # Placeholder for SharePoint identifier - a adms:Identifier ; - mu:uuid "996d4116-72bf-4fda-b3fd-c127045288e3" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "e6610cfe-98ac-4989-9dca-0318003143b1" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "315e0a0e-222a-4e4e-9e63-9689a451b6d3" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "c05ffb8a-4823-40a0-aada-add563448c7b" . } } ; # scope INSERT { GRAPH { - besluit:werkingsgebied . - a prov:Location ; - mu:uuid """ec944850-0095-4341-8747-ffe63813637b""" ; + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """f3f6db7a-504f-4645-b8b8-8ffb6c81ae61""" ; rdfs:label """Nazareth-De Pinte""" ; ext:werkingsgebiedNiveau "Gemeente" . } GRAPH { - geo:sfWithin ?locatedWithin . + geo:sfWithin ?locatedWithin . } } WHERE { GRAPH { @@ -86,16 +87,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """bebd13d5-ca94-4394-8671-d3f3cdaab69b""" ; + a besluit:Bestuursorgaan ; + mu:uuid """7d1d11c3-b314-4171-9c3f-ab9c845ef6b4""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """c80818e7-4ce2-4225-9f48-0b1443f83ba4""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """3f0c4f34-bd15-444d-8ecc-5cb31dc9a9ff""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -108,16 +109,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """0c7c4fcf-cd5c-4e37-9176-6673b8ffc734""" ; + a besluit:Bestuursorgaan ; + mu:uuid """798206f4-d390-47ef-a3cc-207646daf7e2""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """49db8458-56d1-44e5-8660-71e45b598be5""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """769f75aa-3e64-437b-a472-2ce7a336e78d""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -130,16 +131,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """9626bc18-db74-46cc-8095-7fd94f5e0e6d""" ; + a besluit:Bestuursorgaan ; + mu:uuid """ebefd20f-da7e-44cf-960a-1c431fec32bc""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """2f815b8d-dca2-4aab-bc4a-96c43c469fbd""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """4b908c93-ac33-4cfa-b857-1d1044c99e13""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -152,16 +153,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """c77802c0-df58-4976-bef6-fe5f92fc8e60""" ; + a besluit:Bestuursorgaan ; + mu:uuid """42259c88-e000-4744-b08c-f9dc044270b3""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """004ab1ae-5221-4c9f-ab85-5b2504ca8f4e""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """9d1448e3-9916-4c1e-bf22-1b39bee87e4a""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -174,16 +175,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """58150783-106f-4cc8-8ef2-cb18e8a355ab""" ; + a besluit:Bestuursorgaan ; + mu:uuid """d10c6635-7ff3-4686-8a96-31f8a927cbc8""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """9ee03ce4-53da-4b3f-9422-49763b3a2989""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """9e1f022a-1e07-45f8-b53d-e141f32dda98""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -196,16 +197,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """a1de0674-f33b-4350-b49e-bc495df46782""" ; + a besluit:Bestuursorgaan ; + mu:uuid """b8dd7224-07bd-4fc3-86c2-245a5bcd8dc4""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """1910e790-9fe9-423a-a722-5fed88d6529d""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """dab9769c-91f1-422f-b361-15707320292b""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -218,16 +219,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """6180488c-65d6-4a99-b032-40b5aae0e48b""" ; + a besluit:Bestuursorgaan ; + mu:uuid """89bf525d-536d-4a28-a54a-7e0936ffb5a5""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """893f67bc-8f6a-44bb-88bf-42f987ef0aba""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """0e5dabc6-ad06-40c9-ac69-57aa87e2a9b2""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -241,7 +242,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-pajottegem.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122841-merged-municipality-pajottegem.sparql similarity index 56% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-pajottegem.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122841-merged-municipality-pajottegem.sparql index 856ac84..1f7f742 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-pajottegem.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122841-merged-municipality-pajottegem.sparql @@ -14,62 +14,63 @@ PREFIX geo: INSERT { GRAPH { - a , + a , , . - mu:uuid "261c7380-4ecd-4846-a573-60914bdeb150" ; + mu:uuid "c050102e-285e-46b6-a8bb-6acef73051ba" ; skos:prefLabel """Pajottegem""" ; regorg:legalName """Pajottegem""" ; org:classification . } GRAPH { - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """0197ec6c-b16d-4654-9f97-bc30f2de0f14""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """7c2bae25-0be4-4a4b-99bd-cee75fe2bdef""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """6ea3d739-107e-4a39-90df-89207f8f8e26""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """3c276af2-15c3-4207-8bef-058561dde8f6""" ; generiek:lokaleIdentificator """1010784540""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """0d36aeca-637a-4c36-ae75-4ac98a165fac""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """332e2b0c-f216-412d-9c03-52ffe640be2b""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """79f204e7-38bb-4d1f-bd9e-6262c7c46470""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """5bd6e3bf-1fe5-4e61-a422-373b431d9f79""" ; generiek:lokaleIdentificator """OVO053389""" . # Placeholder for SharePoint identifier - a adms:Identifier ; - mu:uuid "c4e533b0-aa9a-4fde-9f12-e651fee6359d" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "7521f92e-af33-4195-b3a4-3e700bc666ee" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "b4ea9a1c-d68c-4f39-aa17-9f83fb88782c" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "49069cbd-f8b2-42ae-ba1d-811433af5575" . } } ; # scope INSERT { GRAPH { - besluit:werkingsgebied . - a prov:Location ; - mu:uuid """7204384f-f4e9-4a5e-b0c4-3976c8a69da9""" ; + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """d6797279-48de-4e6d-b28f-4691261e1afd""" ; rdfs:label """Pajottegem""" ; ext:werkingsgebiedNiveau "Gemeente" . } GRAPH { - geo:sfWithin ?locatedWithin . + geo:sfWithin ?locatedWithin . } } WHERE { GRAPH { @@ -86,16 +87,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """c1a7289b-e15f-44ee-8425-b88fa557a4da""" ; + a besluit:Bestuursorgaan ; + mu:uuid """6b7ad942-5905-40a5-9516-1433b22a4655""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """f9bbf6ef-2a66-4ff2-966f-2ddeed5bdd55""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """bbad40c5-6571-4f04-974d-0f088bbfbf6f""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -108,16 +109,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """b603c476-5a98-4d7b-aafb-9e0f2280c912""" ; + a besluit:Bestuursorgaan ; + mu:uuid """3b88d7e5-00bb-43bd-a44d-594d861e7e2b""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """645eadbe-4358-40bd-8038-8bffb1b59214""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """008c4ba3-59da-4507-9ad4-5afbbbb80c9f""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -130,16 +131,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """96a13d7e-b984-4690-aab7-9b0f8bb238f7""" ; + a besluit:Bestuursorgaan ; + mu:uuid """147f3650-d6fa-4279-b716-98b9b1e5eca1""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """5956adad-74c5-43c8-8e4b-4729d87d92c8""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """9648624b-125e-4b1b-b6d0-5a475ad40a89""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -152,16 +153,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """29a2c70d-65f9-49ec-8dcb-e35785f89776""" ; + a besluit:Bestuursorgaan ; + mu:uuid """b1728a1b-510a-4e37-a523-ea7adead54ca""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """9b4da922-8437-405a-8545-ce9099d0691d""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """b00c8b47-602c-47c3-956c-005f8b7e58fb""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -174,16 +175,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """c6027a78-d021-4358-86fc-56683e51ec9d""" ; + a besluit:Bestuursorgaan ; + mu:uuid """afbbb6a3-c77b-417e-9744-e787de0bb26a""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """fc29df7f-30ee-4b35-8f8b-063e48627dcf""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """42d2b817-d36f-4764-82e8-b22a84c571db""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -196,16 +197,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """b12cda4a-5ba7-4170-b820-d5f1c696cd1e""" ; + a besluit:Bestuursorgaan ; + mu:uuid """074e7ad1-b8db-4786-a24b-e7961d1da885""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """875a6398-c8c6-4003-bd46-0370a8c55fd2""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """78d94340-9880-4542-98d2-33c950c18aa2""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -218,16 +219,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """40a42977-af82-4ff7-8483-32476cb0b9a9""" ; + a besluit:Bestuursorgaan ; + mu:uuid """c0701011-f634-4d5e-a5ec-69f15c431db6""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """d70efcd3-237d-4d57-bed3-e7796482ea30""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """3f518fbd-aca0-451d-be5d-ad2294987789""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -241,7 +242,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-merelbeke_melle.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122842-merged-municipality-merelbeke_melle.sparql similarity index 57% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-merelbeke_melle.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122842-merged-municipality-merelbeke_melle.sparql index b7c8167..2db9d49 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-municipality-merelbeke_melle.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122842-merged-municipality-merelbeke_melle.sparql @@ -14,62 +14,63 @@ PREFIX geo: INSERT { GRAPH { - a , + a , , . - mu:uuid "3190ca10-104c-481d-92a5-42a9bb033a65" ; + mu:uuid "ecd992c6-791b-4ffb-8b34-9bbadc18152d" ; skos:prefLabel """Merelbeke-Melle""" ; regorg:legalName """Merelbeke-Melle""" ; org:classification . } GRAPH { - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """e494623a-29be-4478-83f4-01a216a1ff8f""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """68dda69b-ec5f-4db7-aae0-0432faa6050c""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """d4b3548e-256c-4667-a600-20e9702cf0f8""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """b7a6df3e-8e8f-488f-bf15-1136541595e5""" ; generiek:lokaleIdentificator """1010775830""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """7a82ba6c-c571-4672-a893-224bbcabeda9""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """d92ac5bc-06e6-41c3-b5b5-882bd65b2392""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """c9d1ccd6-a9cb-431e-9919-1120e157549b""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """fb3b4349-ebab-4ecd-9c78-2942f0a4b25a""" ; generiek:lokaleIdentificator """OVO053387""" . # Placeholder for SharePoint identifier - a adms:Identifier ; - mu:uuid "cbdebc3e-463a-4365-b44f-5c1cf03e46cc" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "d469152b-506c-412c-be3b-abdff2a5b7d9" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "a16c1585-cd67-422b-a7a9-2ff8b04a633e" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "88232e8c-2e1a-48d2-b45b-eb610806c72f" . } } ; # scope INSERT { GRAPH { - besluit:werkingsgebied . - a prov:Location ; - mu:uuid """dcfebd37-162e-486f-9598-1b292a67e3e9""" ; + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """0507758f-2ad5-4b04-97d5-d08ee47f4521""" ; rdfs:label """Merelbeke-Melle""" ; ext:werkingsgebiedNiveau "Gemeente" . } GRAPH { - geo:sfWithin ?locatedWithin . + geo:sfWithin ?locatedWithin . } } WHERE { GRAPH { @@ -86,16 +87,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """13d87f34-c6d5-431f-a566-273efdc9c7f4""" ; + a besluit:Bestuursorgaan ; + mu:uuid """5c270aa4-5d2b-4ce6-8b50-4f2b7423040e""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """31775fb5-59b0-464c-bb01-53d44309e5da""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """7ca15c1e-e897-4adf-91ee-9ca99adea68b""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -108,16 +109,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """b4fca2a8-4534-46e1-8f7b-1ba949969ec0""" ; + a besluit:Bestuursorgaan ; + mu:uuid """06f3956d-9d51-4163-a6a8-1c5c960a8054""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """efc20a9c-f5bd-48ee-af68-3bb679564a0c""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """debd0c11-1327-49d2-8764-343677e792de""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -130,16 +131,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """35d1a73d-d45a-4c84-b98c-bd3fa97a7b8b""" ; + a besluit:Bestuursorgaan ; + mu:uuid """4c429ffa-8953-4ab3-91ee-29164877ef73""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """c8d5ae0a-4857-48e4-9bbd-d68bb738ba89""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """f56eaccf-ca35-4a96-a1c8-6b058c7f9dc1""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -152,16 +153,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """94dc4fee-3398-46d4-9c5d-da744ac2ec65""" ; + a besluit:Bestuursorgaan ; + mu:uuid """f57ec97a-8db3-43b9-9b73-c047929ad745""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """e16b32cf-78d6-4690-b76b-1590044e5d09""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """8654e0c8-4359-4f34-b99b-bc52f4bce31d""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -174,16 +175,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """8a2edd81-6b5f-40dc-bc78-188b07695972""" ; + a besluit:Bestuursorgaan ; + mu:uuid """767c6c4a-5955-4361-ab13-1c1321a9ca39""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """4ec1bb3b-20f3-4b45-946f-f8ce6f6d48c4""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """a184818b-b384-4de1-bfab-d925299f929a""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -196,16 +197,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """2c0f1995-7664-44d5-b175-112f51d0b663""" ; + a besluit:Bestuursorgaan ; + mu:uuid """79fdf810-c0ba-4595-b17d-4ce9f5a7846c""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """5e48f15a-501f-4811-96e5-e2a2be6102fd""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """2e121448-d630-4f4f-9d48-4025e53468d6""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -218,16 +219,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """ef9163c2-1b7e-4001-a8aa-6d08466c230c""" ; + a besluit:Bestuursorgaan ; + mu:uuid """27adf113-78ba-476c-913c-ef9bb06a6adf""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """b95eca68-9b0e-4c21-8426-26defe00579e""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """b9cbeb89-d2b4-4493-bef8-cea3b96bed47""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -241,7 +242,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122843-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql similarity index 55% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122843-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql index 41c78b0..c4b9f85 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122843-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql @@ -14,45 +14,46 @@ PREFIX geo: INSERT { GRAPH { - a , + a , , . - mu:uuid "26913911-14e2-4683-9ea4-4c37951b68b7" ; + mu:uuid "874e2504-94f2-4e46-adca-a142d0c3bd4a" ; skos:prefLabel """Beveren-Kruibeke-Zwijndrecht""" ; regorg:legalName """Beveren-Kruibeke-Zwijndrecht""" ; org:classification . - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """a4763769-eb32-43c1-9c92-a2c345fccff2""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """fff686b4-364c-4cfe-98c1-73b4df54b685""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """6d34fc95-6586-4e21-a256-7373f455f911""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """bacd57ef-f3e2-4318-9c8a-2a61225ef4e7""" ; generiek:lokaleIdentificator """1010783748""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """a0187b2a-fa05-492f-865e-b1fc9ce5e9c2""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """4e5ca357-f617-4c6c-a395-7691cdf7bd8a""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """17aeaeb1-4348-4dae-bd4e-e063b662ffeb""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """8103a7a1-fc6d-4514-8b37-445140331096""" ; generiek:lokaleIdentificator """OVO053710""" . # Placeholder for SharePoint identifier - a adms:Identifier ; - mu:uuid "cedfbb4e-d8af-4d1f-85f2-dcc0f4cf4cb6" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "a4641567-9532-4c84-b4be-568babf14fca" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "fc2d4892-cb62-4309-a100-0dd57d4d0193" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "cf7c85fc-c697-4b87-8d37-4ea9543abe49" . } } # @@ -63,16 +64,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """4e3085a8-95ff-4fde-85f4-ee921b54fccc""" ; + a besluit:Bestuursorgaan ; + mu:uuid """80b24985-71e3-46df-9210-956d015b435e""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """4fe4f3ef-7b32-412e-b40a-58ce55240940""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """80282fc7-1366-498b-b4cc-4f09cf838555""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -85,16 +86,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """0cfd0845-a79c-4640-9d61-15720a8f6086""" ; + a besluit:Bestuursorgaan ; + mu:uuid """8e379191-7839-44b0-bd95-38f183283cb5""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """aa126dbc-d424-4ce7-81dd-61d4d27f8f97""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """871bc9e7-be83-4bff-b570-765888d841bf""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -107,16 +108,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """d9cdba10-0dda-4471-8bb3-73c94d4b43ac""" ; + a besluit:Bestuursorgaan ; + mu:uuid """01562624-5636-42a4-ad7f-f9d5438222bb""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """b2404e03-72d2-4496-ab5d-687fa334dca9""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """87844365-e1e3-4c2f-8c8f-50b809e4b9f0""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -129,16 +130,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """4bca4def-ee66-45ff-8402-9f71810e7c2e""" ; + a besluit:Bestuursorgaan ; + mu:uuid """3810ab8d-72da-4010-8bae-1b06b0643648""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """a633f2d2-ecee-471a-84a2-5365c677d4f1""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """8e6864c5-f2dd-41c6-9af0-0bc6ee2e6922""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -152,7 +153,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-nazareth_de_pinte.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122844-merged-ocmw-nazareth_de_pinte.sparql similarity index 55% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-nazareth_de_pinte.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122844-merged-ocmw-nazareth_de_pinte.sparql index cdfd970..83ec9fd 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-nazareth_de_pinte.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122844-merged-ocmw-nazareth_de_pinte.sparql @@ -14,45 +14,46 @@ PREFIX geo: INSERT { GRAPH { - a , + a , , . - mu:uuid "92734750-4886-4dd8-8adb-1fb44dd221b8" ; + mu:uuid "6f4471e0-c155-4bf1-8558-e77c3cf75638" ; skos:prefLabel """Nazareth-De Pinte""" ; regorg:legalName """Nazareth-De Pinte""" ; org:classification . - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """0716e45c-bcf2-4828-99b9-26aca09f83d5""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """2c1cb3ad-b930-4898-af69-bfb2b6291a4a""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """c58cec55-8f6d-4b01-8bdf-e363b9e09140""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """a68ce2bc-aa30-4824-a154-dd427e7f077a""" ; generiek:lokaleIdentificator """1010782461""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """fcf15add-35cd-4e66-b322-7b7009aecced""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """59e56381-1ba0-4f1c-8775-33d1c280ef28""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """6a8393e9-8492-4298-b150-1a5388d9ebbc""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """ead20f21-c482-4290-921a-114b8596790b""" ; generiek:lokaleIdentificator """OVO053712""" . # Placeholder for SharePoint identifier - a adms:Identifier ; - mu:uuid "afd96dec-49a8-4350-bafb-b1c62addefc9" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "b9db6699-1eab-4581-b8d0-c6df515b0dd0" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "2302c0b0-68a8-4cfc-8746-5ec63a4c47c5" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "1375c2ac-bfb1-41f9-acde-68bde8ad505f" . } } # @@ -63,16 +64,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """ff486223-9205-49f6-a2d6-67a4b5ef752e""" ; + a besluit:Bestuursorgaan ; + mu:uuid """1fd33f8c-9ead-43cd-bb8d-839754ce8647""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """d2931462-e676-46b7-85b5-f898a6584bb1""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """2b92a052-8bcd-42b4-ab3b-8028fa5609c5""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -85,16 +86,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """8e72c369-f5b5-451b-820c-9d9db2ce22b8""" ; + a besluit:Bestuursorgaan ; + mu:uuid """7882e0f2-b29c-4d00-b495-71a6f5f04860""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """49ab2548-03df-4ccf-9bce-dd571bc6342f""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """43f2ea32-ec1f-415f-b18b-0ecda65e39af""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -107,16 +108,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """e1bdd942-71b6-4385-b048-17fab0e3b625""" ; + a besluit:Bestuursorgaan ; + mu:uuid """89292601-de7a-4c5e-b3e4-095616b209cb""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """cfa4adfb-4229-4de8-ac9d-74197ffe3c35""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """e43538ff-573c-4584-9a5b-6e64327a3e70""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -129,16 +130,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """35c9de34-f207-486d-acc5-aacc00e7e3f5""" ; + a besluit:Bestuursorgaan ; + mu:uuid """88078a5b-a9a1-4d7a-ac60-19ccf4f4f2c7""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """a2f6349b-78cf-474a-849c-863fcf311b70""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """a6c6402f-987b-4bac-858d-cd9f1a91d29c""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -152,7 +153,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-pajottegem.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122845-merged-ocmw-pajottegem.sparql similarity index 55% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-pajottegem.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122845-merged-ocmw-pajottegem.sparql index 7ebb104..68c475f 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-pajottegem.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122845-merged-ocmw-pajottegem.sparql @@ -14,45 +14,46 @@ PREFIX geo: INSERT { GRAPH { - a , + a , , . - mu:uuid "73018124-9b28-42b0-817f-7e08a90cfe9f" ; + mu:uuid "1379f3ac-01d0-40e1-b31a-0c47be0320b0" ; skos:prefLabel """Pajottegem""" ; regorg:legalName """Pajottegem""" ; org:classification . - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """f18fe9b0-f9e7-4bb7-ac7d-b8590570b633""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """07b21e78-6759-4cc0-80ab-53aa0213d051""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """289880d3-2de5-46a2-a2e6-81a67f216773""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """c563a143-0daf-4cba-ad87-d50fe282f56b""" ; generiek:lokaleIdentificator """1010784738""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """05e0a7b3-1a34-47e5-b1f4-1ccf46d03758""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """4fef8ca5-ace0-42ae-97a1-1b90f91eb266""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """3a53414e-ba06-4197-a4ea-f9d301160bc9""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """f78fdcbc-4c48-4723-bd02-67dda5c53b3a""" ; generiek:lokaleIdentificator """OVO053708""" . # Placeholder for SharePoint identifier - a adms:Identifier ; - mu:uuid "f26a54be-f91d-42d2-9815-a1b7253e353c" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "fccba08b-44af-451c-a462-2139784f757b" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "fd1bdea2-5c0d-44d5-ac62-a385a120b775" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "923ff3e2-12d8-46a9-99b8-3297c1363624" . } } # @@ -63,16 +64,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """9f421c11-72c8-4b33-a6c0-b074ba843441""" ; + a besluit:Bestuursorgaan ; + mu:uuid """f61853c2-ea02-451b-8471-3c0a46dff25e""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """bec6982c-827d-4e05-b04c-46e275d3ca0f""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """f832ac00-f2aa-4fb3-95aa-227e2f9f3b18""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -85,16 +86,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """7ff76277-5ee6-4ec9-bdd5-40508cc10587""" ; + a besluit:Bestuursorgaan ; + mu:uuid """f8852bb9-c4b2-4fcd-ac12-9c225ee31946""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """c74ce5d9-5fa1-40cd-9c9a-44e593d49edc""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """5c2e04ed-7eff-471b-8ab8-9ab6b510576f""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -107,16 +108,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """47f9d813-8838-4e27-ad10-286e5a57c768""" ; + a besluit:Bestuursorgaan ; + mu:uuid """9f2b4748-afb1-4e47-8ebb-ec10272a5dd4""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """56cc5d11-e8b8-40d5-8fbf-635615a8e76e""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """a252d287-af74-460c-ab0e-98b15f4b1d20""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -129,16 +130,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """a212b975-3bd4-42a7-aeb9-4e0ec84f7236""" ; + a besluit:Bestuursorgaan ; + mu:uuid """cbdc0bd8-a4fb-48d2-8bbe-df3beb3a2053""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """f84b8bb7-a359-415f-aadf-ef50a504870f""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """be43239f-53a2-4058-ae60-c2d6086969fe""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -152,7 +153,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-merelbeke_melle.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122846-merged-ocmw-merelbeke_melle.sparql similarity index 55% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-merelbeke_melle.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122846-merged-ocmw-merelbeke_melle.sparql index 1f793b1..809a06a 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819141423-merged-ocmw-merelbeke_melle.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122846-merged-ocmw-merelbeke_melle.sparql @@ -14,45 +14,46 @@ PREFIX geo: INSERT { GRAPH { - a , + a , , . - mu:uuid "80bb6363-c914-4e51-82ec-e547b21890f4" ; + mu:uuid "f488e898-dfc6-4b23-babc-343408b2c5b5" ; skos:prefLabel """Merelbeke-Melle""" ; regorg:legalName """Merelbeke-Melle""" ; org:classification . - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """222cc648-4a5b-496a-8f4f-2abde996ec36""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """2732aa07-aa78-4f38-aa0f-222f7bf2262c""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """9c0e5534-0a79-4a0b-82d5-d9e1607e34d6""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """2867a412-2b13-4d89-8afd-a52b2b17a86b""" ; generiek:lokaleIdentificator """1010776127""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """d186d187-ab96-41dc-bd52-bdf9f7de2b47""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """85778865-e416-4f6e-a1a4-e7feef79162a""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """ba8f9e04-a9f2-440f-8b85-3b81a9033cf7""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """062c2f45-4cf0-4c94-8233-bbb608b10945""" ; generiek:lokaleIdentificator """OVO053711""" . # Placeholder for SharePoint identifier - a adms:Identifier ; - mu:uuid "447c5679-b4eb-4f37-aee7-c4a5ce8974cd" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "0336029e-3fcd-4792-ab5a-0824d7e651b3" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "29b43db7-ffe8-415d-8cba-3b8d29c01ee8" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "d9ba739a-9435-4029-8495-ba34f7060609" . } } # @@ -63,16 +64,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """c1177041-2755-48cf-a893-567a2ec85806""" ; + a besluit:Bestuursorgaan ; + mu:uuid """2387d0ed-4347-4b6e-a945-3a1f1c966f83""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """bd58436e-7472-4862-8578-30eb0dd83330""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """a4d25ad2-45ee-4b7f-a1fc-55cede04b1a9""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -85,16 +86,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """1f32130c-6127-4be2-96ee-8ed175836843""" ; + a besluit:Bestuursorgaan ; + mu:uuid """54ca6105-7f8c-40f2-b07e-c83a32886f08""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """5474dfba-65d1-4516-b307-0ed1d112c9f0""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """868dd90d-4342-46f3-9e8a-f9b053c2dce0""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -107,16 +108,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """839173f2-5ba1-4aef-b681-0608a18eec3d""" ; + a besluit:Bestuursorgaan ; + mu:uuid """6fd5d904-a9a0-416c-879b-152f7d6f232f""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """80324764-8bfc-408c-9362-25caf85a2b41""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """83c6a681-1bb5-4604-9e2f-8be38cd39fcc""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -129,16 +130,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """acde5a73-f1f5-4a6a-9c86-13875905588c""" ; + a besluit:Bestuursorgaan ; + mu:uuid """25812229-a8da-4df6-81b7-99c9f38faf59""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """acfe2eb5-7d17-480f-8308-5ba0b607acc2""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """0eb8bc3f-c420-4228-b6a6-2713c4422d4e""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -152,7 +153,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819142809-relate-merge-municipalities-and-ocmws.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122900-relate-merge-municipalities-and-ocmws.sparql similarity index 100% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240819142809-relate-merge-municipalities-and-ocmws.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122900-relate-merge-municipalities-and-ocmws.sparql From 68677ead2a8f8f08cada1a25d82c51f70c49f337 Mon Sep 17 00:00:00 2001 From: mirdono Date: Fri, 23 Aug 2024 17:19:22 +0200 Subject: [PATCH 16/64] fix: user `INSERT DATA` instead of `INSERT` where appropriate --- ...ality-beveren_kruibeke_zwijndrecht.sparql} | 140 +++++++++--------- ...ged-municipality-nazareth_de_pinte.sparql} | 140 +++++++++--------- ...503-merged-municipality-pajottegem.sparql} | 140 +++++++++--------- ...erged-municipality-merelbeke_melle.sparql} | 140 +++++++++--------- ...-ocmw-beveren_kruibeke_zwijndrecht.sparql} | 96 ++++++------ ...1506-merged-ocmw-nazareth_de_pinte.sparql} | 96 ++++++------ ...40823171507-merged-ocmw-pajottegem.sparql} | 96 ++++++------ ...171508-merged-ocmw-merelbeke_melle.sparql} | 96 ++++++------ ...ate-merge-municipalities-and-ocmws.sparql} | 0 9 files changed, 472 insertions(+), 472 deletions(-) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240821122839-merged-municipality-beveren_kruibeke_zwijndrecht.sparql => 20240823171501-merged-municipality-beveren_kruibeke_zwijndrecht.sparql} (57%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240821122840-merged-municipality-nazareth_de_pinte.sparql => 20240823171502-merged-municipality-nazareth_de_pinte.sparql} (57%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240821122841-merged-municipality-pajottegem.sparql => 20240823171503-merged-municipality-pajottegem.sparql} (56%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240821122842-merged-municipality-merelbeke_melle.sparql => 20240823171504-merged-municipality-merelbeke_melle.sparql} (57%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240821122843-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql => 20240823171505-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql} (55%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240821122844-merged-ocmw-nazareth_de_pinte.sparql => 20240823171506-merged-ocmw-nazareth_de_pinte.sparql} (55%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240821122845-merged-ocmw-pajottegem.sparql => 20240823171507-merged-ocmw-pajottegem.sparql} (54%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240821122846-merged-ocmw-merelbeke_melle.sparql => 20240823171508-merged-ocmw-merelbeke_melle.sparql} (55%) rename config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/{20240821122900-relate-merge-municipalities-and-ocmws.sparql => 20240823171700-relate-merge-municipalities-and-ocmws.sparql} (100%) diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122839-merged-municipality-beveren_kruibeke_zwijndrecht.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171501-merged-municipality-beveren_kruibeke_zwijndrecht.sparql similarity index 57% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122839-merged-municipality-beveren_kruibeke_zwijndrecht.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171501-merged-municipality-beveren_kruibeke_zwijndrecht.sparql index b989e30..828f29d 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122839-merged-municipality-beveren_kruibeke_zwijndrecht.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171501-merged-municipality-beveren_kruibeke_zwijndrecht.sparql @@ -12,65 +12,65 @@ PREFIX ext: PREFIX mandaat: PREFIX geo: -INSERT { +INSERT DATA { GRAPH { - a , + a , , . - mu:uuid "965ad1ed-ade1-4936-84d9-fd3a2e4bea17" ; + mu:uuid "19483103-318e-435a-aa37-45e485406ee9" ; skos:prefLabel """Beveren-Kruibeke-Zwijndrecht""" ; regorg:legalName """Beveren-Kruibeke-Zwijndrecht""" ; org:classification . } GRAPH { - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """6bd72f0e-688d-4304-860a-0ca552324aea""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """d509588c-aedb-48a9-b946-f1abe002c6dd""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """22e5e8ff-b696-4603-a5cb-d2b9f19f9474""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """f990ea6f-cd8a-430e-9c4b-6640ad874864""" ; generiek:lokaleIdentificator """1010783451""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """05b4318f-6562-427f-bdf5-56179beac3b8""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """31b5a8d9-6d62-46ce-98be-5e6cc7366c82""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """95fe9a2d-6235-4d1d-a4b2-a371ea2f096a""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """af682e98-9d4f-4ee8-9d59-486aecb3842b""" ; generiek:lokaleIdentificator """OVO053390""" . # Placeholder for SharePoint identifier - adms:identifier . - a adms:Identifier ; - mu:uuid "fc75bdcf-3b77-413c-9f56-92e659406d3e" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "e00c1523-b523-4ba3-96b5-cc0d5c051fdc" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "698e73c9-4ca6-4697-9475-57d05cedb2fe" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "8bfd1a3a-ec7b-4909-aad7-64053e05dd6a" . } } ; # scope INSERT { GRAPH { - besluit:werkingsgebied . - a prov:Location ; - mu:uuid """7c7a6c51-7292-43a5-91f0-fb4100a157d9""" ; + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """b97c1b58-6431-4509-ab94-3300d27759a8""" ; rdfs:label """Beveren-Kruibeke-Zwijndrecht""" ; ext:werkingsgebiedNiveau "Gemeente" . } GRAPH { - geo:sfWithin ?locatedWithin . + geo:sfWithin ?locatedWithin . } } WHERE { GRAPH { @@ -87,16 +87,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """4f5ff954-834f-4123-acbc-7c58600e85d8""" ; + a besluit:Bestuursorgaan ; + mu:uuid """5702cf37-57ca-4cba-b290-b34a14babc30""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """3a18e22a-1c03-49fd-9ad7-ba0c1324ec22""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """dae95870-aa0d-4117-924b-3e8564d548a0""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -109,16 +109,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """75ee182f-6823-4276-98e1-183ef31822c9""" ; + a besluit:Bestuursorgaan ; + mu:uuid """e280902f-347d-45f5-90ae-80dc141425b3""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """3af6acba-1b55-4816-a510-f8c297b410ed""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """6dc36bdc-8cd4-4a6d-b4c7-9e7982cd2b3b""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -131,16 +131,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """3a3b6506-ff23-4019-8524-7e074f08d906""" ; + a besluit:Bestuursorgaan ; + mu:uuid """6d467254-0948-482f-b4f5-44e88195eab0""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """b93c05b0-9fff-45e5-9dfe-6e69b202b689""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """585cc532-19ce-4270-a2db-317657d35210""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -153,16 +153,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """e78d994c-b6a7-4cbe-8d38-011848ad5e81""" ; + a besluit:Bestuursorgaan ; + mu:uuid """0f443d37-f3d4-4f2a-b982-f96d6f66dcb7""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """ea1e6cbe-e62e-4464-8e93-3e067dfc1690""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """137e17a6-0c4a-4e74-b9e1-cacd7b5dfb4c""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -175,16 +175,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """623d5510-532e-41a4-a130-8c3634cd03e2""" ; + a besluit:Bestuursorgaan ; + mu:uuid """7c3c5f0d-c063-4c3e-9e05-cb21cec6241e""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """8ba0c544-66ed-44de-8be3-35abcad8dadf""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """bf1ec4f9-f771-4749-853b-68b2a75deb5e""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -197,16 +197,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """a6085d55-01cb-44a2-941b-12eddeac93c5""" ; + a besluit:Bestuursorgaan ; + mu:uuid """4da12f2e-aa9d-47e9-9028-e14fa45a8237""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """13e59134-d1d5-4af6-b267-025cfa1c226b""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """f6049c75-6071-4a17-aeea-cae6448c2392""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -219,16 +219,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """b5737b28-7ecd-4721-b478-545b99d89eaa""" ; + a besluit:Bestuursorgaan ; + mu:uuid """a7657784-69d7-40e5-85b4-ffc0e997c72e""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """c591116d-32df-4849-b753-6aa3ee7bfe27""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """5275a3c5-4131-4df3-8c39-71d0c32387f7""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -242,7 +242,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122840-merged-municipality-nazareth_de_pinte.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171502-merged-municipality-nazareth_de_pinte.sparql similarity index 57% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122840-merged-municipality-nazareth_de_pinte.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171502-merged-municipality-nazareth_de_pinte.sparql index fce7d76..d88f5ee 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122840-merged-municipality-nazareth_de_pinte.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171502-merged-municipality-nazareth_de_pinte.sparql @@ -12,65 +12,65 @@ PREFIX ext: PREFIX mandaat: PREFIX geo: -INSERT { +INSERT DATA { GRAPH { - a , + a , , . - mu:uuid "5bcd5343-d784-47a4-9818-871a5550fb19" ; + mu:uuid "1ca65d65-54ff-4b44-b750-bd70c91191af" ; skos:prefLabel """Nazareth-De Pinte""" ; regorg:legalName """Nazareth-De Pinte""" ; org:classification . } GRAPH { - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """30cc9d05-a936-4db2-a349-5d54cdb3e26a""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """83f40c64-2178-4dc8-820b-43bd14a27aa3""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """571d3b79-1870-493a-8273-6b8d70403b1d""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """795c170b-3c31-4033-acf2-c36194428548""" ; generiek:lokaleIdentificator """1010781867""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """b64ebc3d-013d-49ef-a211-57892f02bdc5""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """590acb28-c339-4075-b597-bcd3e6bdb785""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """446ed124-9ae3-42bf-a398-54c94752236d""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """4c04fbf7-a906-40aa-b9a4-21ad8d7b53fe""" ; generiek:lokaleIdentificator """OVO053388""" . # Placeholder for SharePoint identifier - adms:identifier . - a adms:Identifier ; - mu:uuid "e6610cfe-98ac-4989-9dca-0318003143b1" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "fe08eaf9-2444-4ef3-981a-08011a70cb26" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "c05ffb8a-4823-40a0-aada-add563448c7b" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "64e6c3c9-10df-4cc1-b342-2aeadb8cf702" . } } ; # scope INSERT { GRAPH { - besluit:werkingsgebied . - a prov:Location ; - mu:uuid """f3f6db7a-504f-4645-b8b8-8ffb6c81ae61""" ; + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """41362ab2-5130-4160-b76b-4bfa5d9a1f59""" ; rdfs:label """Nazareth-De Pinte""" ; ext:werkingsgebiedNiveau "Gemeente" . } GRAPH { - geo:sfWithin ?locatedWithin . + geo:sfWithin ?locatedWithin . } } WHERE { GRAPH { @@ -87,16 +87,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """7d1d11c3-b314-4171-9c3f-ab9c845ef6b4""" ; + a besluit:Bestuursorgaan ; + mu:uuid """0598ba1e-3bbc-4ff7-896e-a53db4d382c9""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """3f0c4f34-bd15-444d-8ecc-5cb31dc9a9ff""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """b2a885d8-7ea3-476a-a55f-8359dc05263f""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -109,16 +109,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """798206f4-d390-47ef-a3cc-207646daf7e2""" ; + a besluit:Bestuursorgaan ; + mu:uuid """4bc6b373-dd44-4c30-ad5b-47f9a28f3b08""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """769f75aa-3e64-437b-a472-2ce7a336e78d""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """281b5474-0f6d-4ac8-94ef-55afd338d3f8""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -131,16 +131,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """ebefd20f-da7e-44cf-960a-1c431fec32bc""" ; + a besluit:Bestuursorgaan ; + mu:uuid """4b1cd816-114a-48c8-b722-d050fd5a37a1""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """4b908c93-ac33-4cfa-b857-1d1044c99e13""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """4a89eba8-120f-4184-accb-7b616173eb0d""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -153,16 +153,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """42259c88-e000-4744-b08c-f9dc044270b3""" ; + a besluit:Bestuursorgaan ; + mu:uuid """d6ca08bc-d2ee-457b-98e0-22dd615a8328""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """9d1448e3-9916-4c1e-bf22-1b39bee87e4a""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """201c9989-8666-4165-9b75-7d70b20164ad""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -175,16 +175,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """d10c6635-7ff3-4686-8a96-31f8a927cbc8""" ; + a besluit:Bestuursorgaan ; + mu:uuid """8c0823e7-1bb4-4b85-81c6-ac3849b6adea""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """9e1f022a-1e07-45f8-b53d-e141f32dda98""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """0806b591-cd6d-4ce5-890c-755e68e0e385""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -197,16 +197,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """b8dd7224-07bd-4fc3-86c2-245a5bcd8dc4""" ; + a besluit:Bestuursorgaan ; + mu:uuid """70f3a246-3b86-4962-8dc2-d993fccb1542""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """dab9769c-91f1-422f-b361-15707320292b""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """f51a9df3-133a-4647-945c-cc66c804d8e1""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -219,16 +219,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """89bf525d-536d-4a28-a54a-7e0936ffb5a5""" ; + a besluit:Bestuursorgaan ; + mu:uuid """5839fc61-05c5-49d4-a982-35cd79ef36aa""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """0e5dabc6-ad06-40c9-ac69-57aa87e2a9b2""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """7a8c2a61-8d58-4024-a11e-c2ff69179657""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -242,7 +242,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122841-merged-municipality-pajottegem.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171503-merged-municipality-pajottegem.sparql similarity index 56% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122841-merged-municipality-pajottegem.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171503-merged-municipality-pajottegem.sparql index 1f7f742..d9a584b 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122841-merged-municipality-pajottegem.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171503-merged-municipality-pajottegem.sparql @@ -12,65 +12,65 @@ PREFIX ext: PREFIX mandaat: PREFIX geo: -INSERT { +INSERT DATA { GRAPH { - a , + a , , . - mu:uuid "c050102e-285e-46b6-a8bb-6acef73051ba" ; + mu:uuid "add1e4eb-9ec7-4ea6-af82-335aa76b7d48" ; skos:prefLabel """Pajottegem""" ; regorg:legalName """Pajottegem""" ; org:classification . } GRAPH { - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """7c2bae25-0be4-4a4b-99bd-cee75fe2bdef""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """81274047-e6a9-405b-82c6-5855d70c5ad6""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """3c276af2-15c3-4207-8bef-058561dde8f6""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """0e49e3f6-f12d-44c6-8869-82f1f5c2f7e0""" ; generiek:lokaleIdentificator """1010784540""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """332e2b0c-f216-412d-9c03-52ffe640be2b""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """fdbcf527-074e-4714-afc7-252799c63940""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """5bd6e3bf-1fe5-4e61-a422-373b431d9f79""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """e63844f7-dfd6-485f-8fa3-7d1f9d354715""" ; generiek:lokaleIdentificator """OVO053389""" . # Placeholder for SharePoint identifier - adms:identifier . - a adms:Identifier ; - mu:uuid "7521f92e-af33-4195-b3a4-3e700bc666ee" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "d9e43829-644e-40dd-9911-c46d100f0ae9" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "49069cbd-f8b2-42ae-ba1d-811433af5575" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "d050b885-ddd5-4dc3-821d-f94608e52805" . } } ; # scope INSERT { GRAPH { - besluit:werkingsgebied . - a prov:Location ; - mu:uuid """d6797279-48de-4e6d-b28f-4691261e1afd""" ; + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """92398c49-30d5-46b2-af90-37f135c89e47""" ; rdfs:label """Pajottegem""" ; ext:werkingsgebiedNiveau "Gemeente" . } GRAPH { - geo:sfWithin ?locatedWithin . + geo:sfWithin ?locatedWithin . } } WHERE { GRAPH { @@ -87,16 +87,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """6b7ad942-5905-40a5-9516-1433b22a4655""" ; + a besluit:Bestuursorgaan ; + mu:uuid """3e1c31ea-3c48-44e7-85e9-b07280d89951""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """bbad40c5-6571-4f04-974d-0f088bbfbf6f""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """d9739d4c-d6e6-4b01-8a70-d720777aad69""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -109,16 +109,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """3b88d7e5-00bb-43bd-a44d-594d861e7e2b""" ; + a besluit:Bestuursorgaan ; + mu:uuid """08f55558-6453-4c2c-acd6-bef1d9bb3ee0""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """008c4ba3-59da-4507-9ad4-5afbbbb80c9f""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """4d9c89bb-446b-4602-b32d-292b173db00b""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -131,16 +131,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """147f3650-d6fa-4279-b716-98b9b1e5eca1""" ; + a besluit:Bestuursorgaan ; + mu:uuid """39b53e88-c9c0-481b-8f8e-7e3f4950c79b""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """9648624b-125e-4b1b-b6d0-5a475ad40a89""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """1cd382ca-87a9-4693-8216-a4e5e16af3fa""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -153,16 +153,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """b1728a1b-510a-4e37-a523-ea7adead54ca""" ; + a besluit:Bestuursorgaan ; + mu:uuid """8c37e188-2acc-480e-b5f4-c4af2054c4d5""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """b00c8b47-602c-47c3-956c-005f8b7e58fb""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """72dbebf2-87a1-459e-8fb1-08ea13fcb6e3""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -175,16 +175,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """afbbb6a3-c77b-417e-9744-e787de0bb26a""" ; + a besluit:Bestuursorgaan ; + mu:uuid """ad8d1860-b70d-49de-ab76-756fcb3dfcda""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """42d2b817-d36f-4764-82e8-b22a84c571db""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """e64442d8-46cd-46fd-81f3-92eb7b19d5de""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -197,16 +197,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """074e7ad1-b8db-4786-a24b-e7961d1da885""" ; + a besluit:Bestuursorgaan ; + mu:uuid """89d66dad-6452-48fb-8faf-bae62a2ee984""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """78d94340-9880-4542-98d2-33c950c18aa2""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """5d2dc5f5-7991-4b21-9bd8-a00e4fe464f3""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -219,16 +219,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """c0701011-f634-4d5e-a5ec-69f15c431db6""" ; + a besluit:Bestuursorgaan ; + mu:uuid """4669614e-3d37-4988-bff2-ef09d23e9325""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """3f518fbd-aca0-451d-be5d-ad2294987789""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """1f8fcbb5-0344-42a4-96c5-e3a3ef910a3b""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -242,7 +242,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122842-merged-municipality-merelbeke_melle.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171504-merged-municipality-merelbeke_melle.sparql similarity index 57% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122842-merged-municipality-merelbeke_melle.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171504-merged-municipality-merelbeke_melle.sparql index 2db9d49..7d25042 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122842-merged-municipality-merelbeke_melle.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171504-merged-municipality-merelbeke_melle.sparql @@ -12,65 +12,65 @@ PREFIX ext: PREFIX mandaat: PREFIX geo: -INSERT { +INSERT DATA { GRAPH { - a , + a , , . - mu:uuid "ecd992c6-791b-4ffb-8b34-9bbadc18152d" ; + mu:uuid "b8bb293d-aa22-4b43-bda4-0b6af76e9493" ; skos:prefLabel """Merelbeke-Melle""" ; regorg:legalName """Merelbeke-Melle""" ; org:classification . } GRAPH { - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """68dda69b-ec5f-4db7-aae0-0432faa6050c""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """a0d7781e-987c-41e4-b252-2823ca024994""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """b7a6df3e-8e8f-488f-bf15-1136541595e5""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """754b99fb-9aeb-4fd0-acd4-ec1c7d651d60""" ; generiek:lokaleIdentificator """1010775830""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """d92ac5bc-06e6-41c3-b5b5-882bd65b2392""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """4c3f6201-df94-4f9c-bc71-8acfd98a104c""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """fb3b4349-ebab-4ecd-9c78-2942f0a4b25a""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """d506df8b-3797-492c-ae65-19246bfa0302""" ; generiek:lokaleIdentificator """OVO053387""" . # Placeholder for SharePoint identifier - adms:identifier . - a adms:Identifier ; - mu:uuid "d469152b-506c-412c-be3b-abdff2a5b7d9" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "7dffb9f1-5414-4acd-80c0-e1b2e2e2432c" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "88232e8c-2e1a-48d2-b45b-eb610806c72f" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "3fe5853e-6caf-49b3-a695-6a34be6c87df" . } } ; # scope INSERT { GRAPH { - besluit:werkingsgebied . - a prov:Location ; - mu:uuid """0507758f-2ad5-4b04-97d5-d08ee47f4521""" ; + besluit:werkingsgebied . + a prov:Location ; + mu:uuid """62fef519-b1de-4a0f-911a-c63a5365c17b""" ; rdfs:label """Merelbeke-Melle""" ; ext:werkingsgebiedNiveau "Gemeente" . } GRAPH { - geo:sfWithin ?locatedWithin . + geo:sfWithin ?locatedWithin . } } WHERE { GRAPH { @@ -87,16 +87,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """5c270aa4-5d2b-4ce6-8b50-4f2b7423040e""" ; + a besluit:Bestuursorgaan ; + mu:uuid """a4cb3685-80fe-479e-a5a2-867ed5e3b932""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """7ca15c1e-e897-4adf-91ee-9ca99adea68b""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """e2364a39-e432-40f9-99d4-51c9e66f8eb0""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -109,16 +109,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """06f3956d-9d51-4163-a6a8-1c5c960a8054""" ; + a besluit:Bestuursorgaan ; + mu:uuid """9c337100-8c65-45de-8bef-919993501c5f""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """debd0c11-1327-49d2-8764-343677e792de""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """8e701cb7-3e65-44ed-a537-153ba2f6e03f""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -131,16 +131,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """4c429ffa-8953-4ab3-91ee-29164877ef73""" ; + a besluit:Bestuursorgaan ; + mu:uuid """9ccc9b4c-1616-42ec-a29a-335cac1aa0f5""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """f56eaccf-ca35-4a96-a1c8-6b058c7f9dc1""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """62cd72ea-8ea7-47a0-ba04-4ddfc123c595""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -153,16 +153,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """f57ec97a-8db3-43b9-9b73-c047929ad745""" ; + a besluit:Bestuursorgaan ; + mu:uuid """18755cfe-a761-48b1-aea8-03bc39f5bd32""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """8654e0c8-4359-4f34-b99b-bc52f4bce31d""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """0ec9419b-3b92-4ff6-ab94-b4f3fb5dbbf7""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -175,16 +175,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """767c6c4a-5955-4361-ab13-1c1321a9ca39""" ; + a besluit:Bestuursorgaan ; + mu:uuid """54c039ee-cbb3-4cc4-9f93-076b7c40f917""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """a184818b-b384-4de1-bfab-d925299f929a""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """a702008e-6cc6-43d4-97ec-dfd2654ee7ff""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -197,16 +197,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """79fdf810-c0ba-4595-b17d-4ce9f5a7846c""" ; + a besluit:Bestuursorgaan ; + mu:uuid """465e2ec7-bbcd-4a26-a975-2a7654c5bf82""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """2e121448-d630-4f4f-9d48-4025e53468d6""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """654da80f-b6a8-4364-bc37-d6ec73d58930""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -219,16 +219,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """27adf113-78ba-476c-913c-ef9bb06a6adf""" ; + a besluit:Bestuursorgaan ; + mu:uuid """ef988a35-7789-4a6e-9c95-eaa3fa9b0bdd""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """b9cbeb89-d2b4-4493-bef8-cea3b96bed47""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """58010896-7f0c-4940-a51f-e6dde6006cbb""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -242,7 +242,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122843-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171505-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql similarity index 55% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122843-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171505-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql index c4b9f85..3a8910d 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122843-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171505-merged-ocmw-beveren_kruibeke_zwijndrecht.sparql @@ -12,48 +12,48 @@ PREFIX ext: PREFIX mandaat: PREFIX geo: -INSERT { +INSERT DATA { GRAPH { - a , + a , , . - mu:uuid "874e2504-94f2-4e46-adca-a142d0c3bd4a" ; + mu:uuid "fd41f573-7d9a-4d9f-b7d0-d5b6114d1622" ; skos:prefLabel """Beveren-Kruibeke-Zwijndrecht""" ; regorg:legalName """Beveren-Kruibeke-Zwijndrecht""" ; org:classification . - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """fff686b4-364c-4cfe-98c1-73b4df54b685""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """6e63e7f8-7ad3-4ada-afa4-30224d587236""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """bacd57ef-f3e2-4318-9c8a-2a61225ef4e7""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """ecacb1ab-ed46-4519-af16-1890b469ce4b""" ; generiek:lokaleIdentificator """1010783748""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """4e5ca357-f617-4c6c-a395-7691cdf7bd8a""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """6fbec738-94e2-4d2c-8934-03c14e8c41fc""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """8103a7a1-fc6d-4514-8b37-445140331096""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """9c330fbf-26cb-49af-8f5f-763d76c50639""" ; generiek:lokaleIdentificator """OVO053710""" . # Placeholder for SharePoint identifier - adms:identifier . - a adms:Identifier ; - mu:uuid "a4641567-9532-4c84-b4be-568babf14fca" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "8de907ea-8366-4f44-bcb6-8e7c8b44894b" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "cf7c85fc-c697-4b87-8d37-4ea9543abe49" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "9b0df2e0-e385-45a8-9750-e06bdfaa58ea" . } } # @@ -64,16 +64,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """80b24985-71e3-46df-9210-956d015b435e""" ; + a besluit:Bestuursorgaan ; + mu:uuid """6cde76c5-7e01-4d8a-97f6-a29cde21e39c""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """80282fc7-1366-498b-b4cc-4f09cf838555""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """e9cb34fd-d695-4f2b-89ba-2a99ba4946d2""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -86,16 +86,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """8e379191-7839-44b0-bd95-38f183283cb5""" ; + a besluit:Bestuursorgaan ; + mu:uuid """a258188e-6dc4-4572-9910-b157b7a4b101""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """871bc9e7-be83-4bff-b570-765888d841bf""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """5810d67e-0f46-48a6-a796-ffe899574d67""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -108,16 +108,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """01562624-5636-42a4-ad7f-f9d5438222bb""" ; + a besluit:Bestuursorgaan ; + mu:uuid """872e56ab-da37-457a-b271-ef4129617b02""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """87844365-e1e3-4c2f-8c8f-50b809e4b9f0""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """a88d76d7-c685-47d2-828c-729454858a91""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -130,16 +130,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """3810ab8d-72da-4010-8bae-1b06b0643648""" ; + a besluit:Bestuursorgaan ; + mu:uuid """7edacf5a-b622-49ea-9e08-471a2d38a2cb""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """8e6864c5-f2dd-41c6-9af0-0bc6ee2e6922""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """117d0f32-cea1-442b-9a74-322b058e5061""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -153,7 +153,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122844-merged-ocmw-nazareth_de_pinte.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171506-merged-ocmw-nazareth_de_pinte.sparql similarity index 55% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122844-merged-ocmw-nazareth_de_pinte.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171506-merged-ocmw-nazareth_de_pinte.sparql index 83ec9fd..2a3c899 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122844-merged-ocmw-nazareth_de_pinte.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171506-merged-ocmw-nazareth_de_pinte.sparql @@ -12,48 +12,48 @@ PREFIX ext: PREFIX mandaat: PREFIX geo: -INSERT { +INSERT DATA { GRAPH { - a , + a , , . - mu:uuid "6f4471e0-c155-4bf1-8558-e77c3cf75638" ; + mu:uuid "7d53f659-3a3b-44b1-9e77-3ea067678c0e" ; skos:prefLabel """Nazareth-De Pinte""" ; regorg:legalName """Nazareth-De Pinte""" ; org:classification . - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """2c1cb3ad-b930-4898-af69-bfb2b6291a4a""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """33aafaf7-7755-434b-90d5-b06022aed87d""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """a68ce2bc-aa30-4824-a154-dd427e7f077a""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """d7601255-9d66-42b7-af6d-a86025675882""" ; generiek:lokaleIdentificator """1010782461""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """59e56381-1ba0-4f1c-8775-33d1c280ef28""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """1283fad4-a3da-4624-aaeb-c56fc37de2b0""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """ead20f21-c482-4290-921a-114b8596790b""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """1974082d-879b-4bda-a23a-466fc56457da""" ; generiek:lokaleIdentificator """OVO053712""" . # Placeholder for SharePoint identifier - adms:identifier . - a adms:Identifier ; - mu:uuid "b9db6699-1eab-4581-b8d0-c6df515b0dd0" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "582855aa-823b-4f05-9075-13298afd3d8f" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "1375c2ac-bfb1-41f9-acde-68bde8ad505f" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "a2a997b8-da4b-4a9e-bc1e-781dc0f8257a" . } } # @@ -64,16 +64,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """1fd33f8c-9ead-43cd-bb8d-839754ce8647""" ; + a besluit:Bestuursorgaan ; + mu:uuid """dbeab922-9e02-4612-8dc7-62327c3eb894""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """2b92a052-8bcd-42b4-ab3b-8028fa5609c5""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """43afb048-eaff-4248-9c32-01c3bb665faa""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -86,16 +86,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """7882e0f2-b29c-4d00-b495-71a6f5f04860""" ; + a besluit:Bestuursorgaan ; + mu:uuid """093ca80d-1040-4551-bb98-b122b34b8593""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """43f2ea32-ec1f-415f-b18b-0ecda65e39af""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """dbcee0db-e76b-4a23-8973-3c2588a46f7c""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -108,16 +108,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """89292601-de7a-4c5e-b3e4-095616b209cb""" ; + a besluit:Bestuursorgaan ; + mu:uuid """891bfe31-6471-4999-b91f-9adfc47e3130""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """e43538ff-573c-4584-9a5b-6e64327a3e70""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """3fe60a78-e32c-43b0-b3d9-82e3c6c9088f""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -130,16 +130,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """88078a5b-a9a1-4d7a-ac60-19ccf4f4f2c7""" ; + a besluit:Bestuursorgaan ; + mu:uuid """ee93c337-089c-488e-a1b6-24a3d5eef2ba""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """a6c6402f-987b-4bac-858d-cd9f1a91d29c""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """acc9b28e-f0ff-4f53-9009-8fafeebe9cde""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -153,7 +153,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122845-merged-ocmw-pajottegem.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171507-merged-ocmw-pajottegem.sparql similarity index 54% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122845-merged-ocmw-pajottegem.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171507-merged-ocmw-pajottegem.sparql index 68c475f..93a6084 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122845-merged-ocmw-pajottegem.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171507-merged-ocmw-pajottegem.sparql @@ -12,48 +12,48 @@ PREFIX ext: PREFIX mandaat: PREFIX geo: -INSERT { +INSERT DATA { GRAPH { - a , + a , , . - mu:uuid "1379f3ac-01d0-40e1-b31a-0c47be0320b0" ; + mu:uuid "650378e7-1bee-4737-91ff-5b20ac4623cf" ; skos:prefLabel """Pajottegem""" ; regorg:legalName """Pajottegem""" ; org:classification . - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """07b21e78-6759-4cc0-80ab-53aa0213d051""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """a206d224-f3ae-42c5-b323-6e8f4be1cdeb""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """c563a143-0daf-4cba-ad87-d50fe282f56b""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """f41d3248-8393-4ced-8bc1-017c48c9bae4""" ; generiek:lokaleIdentificator """1010784738""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """4fef8ca5-ace0-42ae-97a1-1b90f91eb266""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """11205a6c-1bb2-4bca-b06f-99763f25d921""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """f78fdcbc-4c48-4723-bd02-67dda5c53b3a""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """d192f846-d001-4b69-9e61-efb75c656709""" ; generiek:lokaleIdentificator """OVO053708""" . # Placeholder for SharePoint identifier - adms:identifier . - a adms:Identifier ; - mu:uuid "fccba08b-44af-451c-a462-2139784f757b" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "353b69ae-b295-425c-b06b-63156f977d28" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "923ff3e2-12d8-46a9-99b8-3297c1363624" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "aed5387a-3994-4328-a7f0-ea2c8ebe5515" . } } # @@ -64,16 +64,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """f61853c2-ea02-451b-8471-3c0a46dff25e""" ; + a besluit:Bestuursorgaan ; + mu:uuid """398b2bb6-11fd-4ee0-b9de-d07261bc68e9""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """f832ac00-f2aa-4fb3-95aa-227e2f9f3b18""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """be114016-84a5-47c1-8591-92fb1b570c4a""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -86,16 +86,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """f8852bb9-c4b2-4fcd-ac12-9c225ee31946""" ; + a besluit:Bestuursorgaan ; + mu:uuid """618ea2d4-ac37-4cb0-850a-6f24ad93eee4""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """5c2e04ed-7eff-471b-8ab8-9ab6b510576f""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """facc6a43-b3cc-4184-89e0-c2fbec9f178f""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -108,16 +108,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """9f2b4748-afb1-4e47-8ebb-ec10272a5dd4""" ; + a besluit:Bestuursorgaan ; + mu:uuid """2d89723b-979a-44c8-b208-de9ce2738597""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """a252d287-af74-460c-ab0e-98b15f4b1d20""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """66798124-a5cd-41e9-be11-bee92f3e1bfb""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -130,16 +130,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """cbdc0bd8-a4fb-48d2-8bbe-df3beb3a2053""" ; + a besluit:Bestuursorgaan ; + mu:uuid """01ce97e0-015c-4e03-bdbc-6d644b2cfe2e""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """be43239f-53a2-4058-ae60-c2d6086969fe""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """1995c190-8217-4331-bc14-c4e2707fb33f""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -153,7 +153,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122846-merged-ocmw-merelbeke_melle.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171508-merged-ocmw-merelbeke_melle.sparql similarity index 55% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122846-merged-ocmw-merelbeke_melle.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171508-merged-ocmw-merelbeke_melle.sparql index 809a06a..7476eb5 100644 --- a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122846-merged-ocmw-merelbeke_melle.sparql +++ b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171508-merged-ocmw-merelbeke_melle.sparql @@ -12,48 +12,48 @@ PREFIX ext: PREFIX mandaat: PREFIX geo: -INSERT { +INSERT DATA { GRAPH { - a , + a , , . - mu:uuid "f488e898-dfc6-4b23-babc-343408b2c5b5" ; + mu:uuid "5d94b2fd-60ee-4e56-a1f0-a586d596adf6" ; skos:prefLabel """Merelbeke-Melle""" ; regorg:legalName """Merelbeke-Melle""" ; org:classification . - regorg:orgStatus . # In oprichting + regorg:orgStatus . # In oprichting - owl:sameAs . + owl:sameAs . # KBO number - adms:identifier . - a adms:Identifier ; - mu:uuid """2732aa07-aa78-4f38-aa0f-222f7bf2262c""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """10e84544-7833-4cda-b818-db5aee1d8061""" ; skos:notation "KBO nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """2867a412-2b13-4d89-8afd-a52b2b17a86b""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """95e75578-709a-4659-a08b-066454b2c137""" ; generiek:lokaleIdentificator """1010776127""" . # OVO number - adms:identifier . - a adms:Identifier ; - mu:uuid """85778865-e416-4f6e-a1a4-e7feef79162a""" ; + adms:identifier . + a adms:Identifier ; + mu:uuid """b0b22de1-be13-458f-b22e-10ce1750e7f3""" ; skos:notation "OVO-nummer" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid """062c2f45-4cf0-4c94-8233-bbb608b10945""" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """057f01c7-eb8a-4ce4-aebd-1d2d1a9226f4""" ; generiek:lokaleIdentificator """OVO053711""" . # Placeholder for SharePoint identifier - adms:identifier . - a adms:Identifier ; - mu:uuid "0336029e-3fcd-4792-ab5a-0824d7e651b3" ; + adms:identifier . + a adms:Identifier ; + mu:uuid "dcebce56-b55d-46a6-ac48-ea74fb4830d7" ; skos:notation "SharePoint identificator" ; - generiek:gestructureerdeIdentificator . - a generiek:GestructureerdeIdentificator ; - mu:uuid "d9ba739a-9435-4029-8495-ba34f7060609" . + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid "cb21628b-3e06-46f7-b7a3-7f139b626258" . } } # @@ -64,16 +64,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """2387d0ed-4347-4b6e-a945-3a1f1c966f83""" ; + a besluit:Bestuursorgaan ; + mu:uuid """1930d6e3-3afd-4633-940e-d9e83e6542c5""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """a4d25ad2-45ee-4b7f-a1fc-55cede04b1a9""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """802f5214-caea-4667-9a2c-199f6224a31c""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -86,16 +86,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """54ca6105-7f8c-40f2-b07e-c83a32886f08""" ; + a besluit:Bestuursorgaan ; + mu:uuid """b5b90481-3fc8-491f-aee2-7f5a5ea37137""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """868dd90d-4342-46f3-9e8a-f9b053c2dce0""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """9e73295d-41c5-4232-a84b-04cea0e54b09""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -108,16 +108,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """6fd5d904-a9a0-416c-879b-152f7d6f232f""" ; + a besluit:Bestuursorgaan ; + mu:uuid """27d40490-d644-458e-9be4-35770d82f267""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """83c6a681-1bb5-4604-9e2f-8be38cd39fcc""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """c8cb77fe-5f30-4283-98f8-182148b4c1d7""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -130,16 +130,16 @@ INSERT { INSERT { GRAPH { # Abstract governing body - a besluit:Bestuursorgaan ; - mu:uuid """25812229-a8da-4df6-81b7-99c9f38faf59""" ; + a besluit:Bestuursorgaan ; + mu:uuid """95497015-1434-4473-87ea-6c451a3f8a25""" ; skos:prefLabel ?governingBodyLabel ; - besluit:bestuurt ; + besluit:bestuurt ; org:classification . # Timed specialisation for governing body - a besluit:Bestuursorgaan ; - mu:uuid """0eb8bc3f-c420-4228-b6a6-2713c4422d4e""" ; - generiek:isTijdspecialisatieVan ; + a besluit:Bestuursorgaan ; + mu:uuid """78cfa035-6de7-4250-a877-c5325f853292""" ; + generiek:isTijdspecialisatieVan ; mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . } } WHERE { @@ -153,7 +153,7 @@ INSERT { ; INSERT { GRAPH { - ?province org:hasSubOrganization . + ?province org:hasSubOrganization . } } WHERE { GRAPH { diff --git a/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122900-relate-merge-municipalities-and-ocmws.sparql b/config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171700-relate-merge-municipalities-and-ocmws.sparql similarity index 100% rename from config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240821122900-relate-merge-municipalities-and-ocmws.sparql rename to config/migrations/2024/20240812111040-feat-add-merged-municipalities-and-ocmws/20240823171700-relate-merge-municipalities-and-ocmws.sparql From d617154e5d4cd64bca28f5adb0c2efad16acddc1 Mon Sep 17 00:00:00 2001 From: Laurent Deketelaere Date: Fri, 28 Jun 2024 20:51:09 +0200 Subject: [PATCH 17/64] feat: Remove CLB data from the producer --- .../organizations-public-info/export.json | 59 ------------------- 1 file changed, 59 deletions(-) diff --git a/config/delta-producer/organizations-public-info/export.json b/config/delta-producer/organizations-public-info/export.json index 1ec280f..f4f80d7 100644 --- a/config/delta-producer/organizations-public-info/export.json +++ b/config/delta-producer/organizations-public-info/export.json @@ -15,8 +15,6 @@ "http://www.w3.org/ns/regorg#legalName", "http://www.w3.org/ns/adms#identifier", "http://www.w3.org/ns/regorg#orgStatus", - "http://www.w3.org/ns/org#hasPrimarySite", - "http://www.w3.org/ns/org#hasSite", "http://www.w3.org/ns/org#changedBy", "http://www.w3.org/ns/org#resultedFrom", "http://www.w3.org/ns/org#hasPost", @@ -43,8 +41,6 @@ "http://www.w3.org/ns/regorg#legalName", "http://www.w3.org/ns/adms#identifier", "http://www.w3.org/ns/regorg#orgStatus", - "http://www.w3.org/ns/org#hasPrimarySite", - "http://www.w3.org/ns/org#hasSite", "http://www.w3.org/ns/org#changedBy", "http://www.w3.org/ns/org#resultedFrom", "http://www.w3.org/ns/org#hasPost", @@ -79,8 +75,6 @@ "http://www.w3.org/ns/org#changedBy", "http://www.w3.org/ns/org#classification", "http://www.w3.org/ns/org#hasPost", - "http://www.w3.org/ns/org#hasPrimarySite", - "http://www.w3.org/ns/org#hasSite", "http://www.w3.org/ns/org#hasSubOrganization", "http://www.w3.org/ns/org#linkedTo", "http://www.w3.org/ns/org#resultedFrom", @@ -160,59 +154,6 @@ "http://data.lblod.info/vocabularies/erediensten/functie" ] }, - { - "type": "http://www.w3.org/ns/org#Site", - "graphsFilter": [ - "http://mu.semte.ch/graphs/shared", - "http://mu.semte.ch/graphs/worship-service", - "http://mu.semte.ch/graphs/administrative-unit" - ], - "properties": [ - "http://mu.semte.ch/vocabularies/core/uuid", - "http://www.w3.org/ns/org#siteAddress", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "http://data.lblod.info/vocabularies/erediensten/vestigingstype" - ] - }, - { - "type": "http://www.w3.org/ns/locn#Address", - "graphsFilter": [ - "http://mu.semte.ch/graphs/shared", - "http://mu.semte.ch/graphs/worship-service", - "http://mu.semte.ch/graphs/administrative-unit" - ], - "properties": [ - "http://mu.semte.ch/vocabularies/core/uuid", - "https://data.vlaanderen.be/ns/adres#Adresvoorstelling.huisnummer", - "https://data.vlaanderen.be/ns/adres#Adresvoorstelling.busnummer", - "http://www.w3.org/ns/locn#thoroughfare", - "http://www.w3.org/ns/locn#postCode", - "https://data.vlaanderen.be/ns/adres#gemeentenaam", - "http://www.w3.org/ns/locn#adminUnitL2", - "https://data.vlaanderen.be/ns/adres#land", - "http://www.w3.org/ns/locn#fullAddress", - "https://data.vlaanderen.be/ns/adres#verwijstNaar", - "http://purl.org/dc/terms/source" - ] - }, - { - "type": "http://schema.org/ContactPoint", - "graphsFilter": [ - "http://mu.semte.ch/graphs/shared", - "http://mu.semte.ch/graphs/worship-service", - "http://mu.semte.ch/graphs/administrative-unit" - ], - "properties": [ - "http://mu.semte.ch/vocabularies/core/uuid", - "http://www.w3.org/ns/locn#address", - "http://xmlns.com/foaf/0.1/page", - "http://schema.org/faxNumber", - "http://schema.org/contactType", - "http://xmlns.com/foaf/0.1/page", - "http://schema.org/email", - "http://schema.org/telephone" - ] - }, { "type": "http://www.w3.org/ns/adms#Identifier", "graphsFilter": [ From 0502535e13e88a4d8db8923b0541948ff9ce682d Mon Sep 17 00:00:00 2001 From: mirdono Date: Mon, 26 Aug 2024 12:38:50 +0200 Subject: [PATCH 18/64] chore: bump frontend --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index f0935b3..6c12f49 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -179,7 +179,7 @@ services: restart: always logging: *default-logging frontend: - image: lblod/frontend-organization-portal:1.26.0 + image: lblod/frontend-organization-portal:1.27.0 volumes: - ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf environment: From fd6326c605ad16e2db7790876c577c696dc67d9d Mon Sep 17 00:00:00 2001 From: mirdono Date: Mon, 26 Aug 2024 12:49:47 +0200 Subject: [PATCH 19/64] chore: bump frontend to new pre-release --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 6c12f49..d8ec883 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -179,7 +179,7 @@ services: restart: always logging: *default-logging frontend: - image: lblod/frontend-organization-portal:1.27.0 + image: lblod/frontend-organization-portal:1.27.0-0 volumes: - ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf environment: From ee1d6078abb7387e7580dca0935fd85d551206e1 Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 27 Aug 2024 12:47:12 +0200 Subject: [PATCH 20/64] chore: bump frontend version --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index d8ec883..3a17cee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -179,7 +179,7 @@ services: restart: always logging: *default-logging frontend: - image: lblod/frontend-organization-portal:1.27.0-0 + image: lblod/frontend-organization-portal:1.27.0-1 volumes: - ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf environment: From d202be0be8212f1265f9ee8599196f9bc49998c8 Mon Sep 17 00:00:00 2001 From: Boris De Vloed Date: Tue, 27 Aug 2024 16:03:12 +0200 Subject: [PATCH 21/64] export representative organ classification --- .../organizations-public-info/export.json | 47 +++++-------------- 1 file changed, 13 insertions(+), 34 deletions(-) diff --git a/config/delta-producer/organizations-public-info/export.json b/config/delta-producer/organizations-public-info/export.json index f4f80d7..5af3486 100644 --- a/config/delta-producer/organizations-public-info/export.json +++ b/config/delta-producer/organizations-public-info/export.json @@ -94,6 +94,7 @@ "http://www.w3.org/2004/02/skos/core#prefLabel", "http://www.w3.org/ns/org#linkedTo", "http://data.lblod.info/vocabularies/erediensten/typeEredienst", + "http://www.w3.org/ns/org#classification", "http://www.w3.org/ns/adms#identifier", "http://www.w3.org/ns/regorg#legalName", "http://www.w3.org/2004/02/skos/core#altLabel", @@ -104,9 +105,7 @@ { "type": "http://www.w3.org/ns/regorg#RegisteredOrganization", "strictTypeExport": "true", - "graphsFilter": [ - "http://mu.semte.ch/graphs/administrative-unit" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/administrative-unit"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "http://data.vlaanderen.be/ns/besluit#werkingsgebied", @@ -169,9 +168,7 @@ }, { "type": "http://www.w3.org/ns/adms#Identifier", - "graphsFilter": [ - "http://mu.semte.ch/graphs/worship-service" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/worship-service"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "http://www.w3.org/2004/02/skos/core#notation", @@ -193,9 +190,7 @@ }, { "type": "https://data.vlaanderen.be/ns/generiek#GestructureerdeIdentificator", - "graphsFilter": [ - "http://mu.semte.ch/graphs/worship-service" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/worship-service"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "https://data.vlaanderen.be/ns/generiek#lokaleIdentificator" @@ -204,9 +199,7 @@ }, { "type": "http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode", - "graphsFilter": [ - "http://mu.semte.ch/graphs/public" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/public"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "http://www.w3.org/2004/02/skos/core#prefLabel" @@ -231,9 +224,7 @@ }, { "type": "http://lblod.data.gift/vocabularies/organisatie/TypeEredienst", - "graphsFilter": [ - "http://mu.semte.ch/graphs/public" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/public"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "http://www.w3.org/2004/02/skos/core#prefLabel" @@ -241,9 +232,7 @@ }, { "type": "http://lblod.data.gift/vocabularies/organisatie/BestuursorgaanClassificatieCode", - "graphsFilter": [ - "http://mu.semte.ch/graphs/public" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/public"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "http://www.w3.org/2004/02/skos/core#prefLabel" @@ -271,9 +260,7 @@ }, { "type": "http://lblod.data.gift/vocabularies/organisatie/Veranderingsgebeurtenis", - "graphsFilter": [ - "http://mu.semte.ch/graphs/public" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/public"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "http://www.w3.org/2004/02/skos/core#prefLabel" @@ -281,9 +268,7 @@ }, { "type": "http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode", - "graphsFilter": [ - "http://mu.semte.ch/graphs/public" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/public"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "http://www.w3.org/2004/02/skos/core#prefLabel" @@ -291,9 +276,7 @@ }, { "type": "http://lblod.data.gift/vocabularies/organisatie/TypeVestiging", - "graphsFilter": [ - "http://mu.semte.ch/graphs/public" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/public"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "http://www.w3.org/2004/02/skos/core#prefLabel" @@ -326,12 +309,8 @@ }, { "type": "http://www.w3.org/2004/02/skos/core#Concept", - "graphsFilter": [ - "http://mu.semte.ch/graphs/public" - ], - "pathToConceptScheme": [ - "http://www.w3.org/2004/02/skos/core#inScheme" - ], + "graphsFilter": ["http://mu.semte.ch/graphs/public"], + "pathToConceptScheme": ["http://www.w3.org/2004/02/skos/core#inScheme"], "properties": [ "http://mu.semte.ch/vocabularies/core/uuid", "http://www.w3.org/ns/org#role", @@ -346,4 +325,4 @@ ] } ] -} \ No newline at end of file +} From 9291024baa38941cf75a38f3e4f70d706fc83e2f Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 27 Aug 2024 15:02:50 +0200 Subject: [PATCH 22/64] feat: add new district Borsbeek The municipality of Borsbeek will merge with the municipality Antwerp as of 01-01-2025. This will result in a new district Borsbeek part of municipality Antwerp. This migration adds that new district such that a URI is assigned to it and its governing bodies are created. The information available at this time is limited its (legal) name. Other core data, such as identifiers, and further information such as site addresses will be added later by business. --- ...0827145640-merged-district-borsbeek.sparql | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 config/migrations/2024/20240827145640-merged-district-borsbeek.sparql diff --git a/config/migrations/2024/20240827145640-merged-district-borsbeek.sparql b/config/migrations/2024/20240827145640-merged-district-borsbeek.sparql new file mode 100644 index 0000000..e30d321 --- /dev/null +++ b/config/migrations/2024/20240827145640-merged-district-borsbeek.sparql @@ -0,0 +1,128 @@ +PREFIX mu: +PREFIX skos: +PREFIX org: +PREFIX regorg: +PREFIX adms: +PREFIX generiek: +PREFIX besluit: +PREFIX mandaat: + +INSERT DATA { + GRAPH { + + a , + , + . + mu:uuid "4b44e6f1-113b-4692-b149-44a889b215f2" ; + skos:prefLabel """Borsbeek""" ; + regorg:legalName """Borsbeek""" ; + org:classification . + + regorg:orgStatus . # In oprichting + + # Placeholder for KBO number + adms:identifier . + a adms:Identifier ; + mu:uuid """a7b2c84b-8151-4d88-982b-0ec87ea2e793""" ; + skos:notation "KBO nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """79a9898b-bb86-4158-83c4-f4b9ba632e5c""" . + + # Placeholder for OVO number + adms:identifier . + a adms:Identifier ; + mu:uuid """535f3065-3530-4577-b8d2-200d68d0ddeb""" ; + skos:notation "OVO-nummer" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """5e8ca2f4-c1cc-4a55-90ef-0c4298467cee""" . + + # Placeholder for SharePoint identifier + adms:identifier . + a adms:Identifier ; + mu:uuid """03a56007-e297-434e-833d-12b8cd0c59a6""" ; + skos:notation "SharePoint identificator" ; + generiek:gestructureerdeIdentificator . + a generiek:GestructureerdeIdentificator ; + mu:uuid """9e274975-6c33-4568-9286-c4b2b6a6b94c""" . + } +} +# +# Governing bodies +# +; +## Districtsraad +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """cd7165a1-3c93-411b-9ef4-393103ebbd7e""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """547c5e2a-fa22-4c0c-b142-9df2d7602e20""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " Borsbeek") as ?governingBodyLabel) +} +; +## Districtsburgemeester +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """7135d957-2452-43a2-8a3c-608fe87e5e6e""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """d8cedeff-a243-41f9-90ea-15867149aefd""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " Borsbeek") as ?governingBodyLabel) +} +; +## Districtscollege +INSERT { + GRAPH { + # Abstract governing body + a besluit:Bestuursorgaan ; + mu:uuid """e91bec2e-e0c1-4b56-9fb2-417c3289afbd""" ; + skos:prefLabel ?governingBodyLabel ; + besluit:bestuurt ; + org:classification . + + # Timed specialisation for governing body + a besluit:Bestuursorgaan ; + mu:uuid """570a7769-89e0-4f40-aa1a-da17755f3bf4""" ; + generiek:isTijdspecialisatieVan ; + mandaat:bindingStart "2025-01-01T00:00:00"^^xsd:dateTime . + } +} WHERE { + skos:prefLabel ?classificationLabel . + + BIND(CONCAT(?classificationLabel, " Borsbeek") as ?governingBodyLabel) +} +# +# Related municipality +# +; +INSERT DATA { + GRAPH { + org:hasSubOrganization . # Relate to Antwerp municipality + } +} From 8c7e75acc8977ef63eea1889aaf2e89d997c2ed7 Mon Sep 17 00:00:00 2001 From: mirdono Date: Sat, 31 Aug 2024 14:57:19 +0200 Subject: [PATCH 23/64] chore: bump frontend to latest release --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3a17cee..6c12f49 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -179,7 +179,7 @@ services: restart: always logging: *default-logging frontend: - image: lblod/frontend-organization-portal:1.27.0-1 + image: lblod/frontend-organization-portal:1.27.0 volumes: - ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf environment: From fcf5d3fc59892d40eeaf6ba0ee688aab9fff2a35 Mon Sep 17 00:00:00 2001 From: benjay10 Date: Thu, 5 Sep 2024 16:44:10 +0200 Subject: [PATCH 24/64] Add migration to remove references to https variant This HTTPS variant does not exist elsewhere and the linking entitities also reference to the regular HTTP version, so these references can be removed. --- ...ve-https-BestuurseenheidClassificatieCode.sparql | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 config/migrations/2024/20240905164200-remove-https-BestuurseenheidClassificatieCode.sparql diff --git a/config/migrations/2024/20240905164200-remove-https-BestuurseenheidClassificatieCode.sparql b/config/migrations/2024/20240905164200-remove-https-BestuurseenheidClassificatieCode.sparql new file mode 100644 index 0000000..ef3fab8 --- /dev/null +++ b/config/migrations/2024/20240905164200-remove-https-BestuurseenheidClassificatieCode.sparql @@ -0,0 +1,13 @@ +PREFIX skos: + +DELETE DATA { + GRAPH { + + skos:inScheme ; + skos:topConceptOf . + + skos:inScheme ; + skos:topConceptOf . + } +} + From 6cc953e4ed540ce04b913449d5d26fcde5458289 Mon Sep 17 00:00:00 2001 From: mirdono Date: Fri, 4 Oct 2024 10:35:04 +0200 Subject: [PATCH 25/64] refactor: moved migrations to correct subfolder These two migrations were accidentally placed in the `migrations` folder instead of the appropriate `2024` subfolder. These migrations have already been executed on all environments. --- ...10-remove-kbo-organizations-from-participation-relation.sparql | 0 ...145138-st-martinus-herzele-combine-merger-change-events.sparql | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename config/migrations/{ => 2024}/20240619123310-remove-kbo-organizations-from-participation-relation.sparql (100%) rename config/migrations/{ => 2024}/20240717145138-st-martinus-herzele-combine-merger-change-events.sparql (100%) diff --git a/config/migrations/20240619123310-remove-kbo-organizations-from-participation-relation.sparql b/config/migrations/2024/20240619123310-remove-kbo-organizations-from-participation-relation.sparql similarity index 100% rename from config/migrations/20240619123310-remove-kbo-organizations-from-participation-relation.sparql rename to config/migrations/2024/20240619123310-remove-kbo-organizations-from-participation-relation.sparql diff --git a/config/migrations/20240717145138-st-martinus-herzele-combine-merger-change-events.sparql b/config/migrations/2024/20240717145138-st-martinus-herzele-combine-merger-change-events.sparql similarity index 100% rename from config/migrations/20240717145138-st-martinus-herzele-combine-merger-change-events.sparql rename to config/migrations/2024/20240717145138-st-martinus-herzele-combine-merger-change-events.sparql From 13d8154a9a930f4bb12117413b1396db87f8e38f Mon Sep 17 00:00:00 2001 From: mirdono Date: Thu, 19 Sep 2024 13:16:53 +0200 Subject: [PATCH 26/64] fix: do not delete hasSubOrganization and linkedTo triples Triples for the predicates `org:hasSubgOrganization` and `org:linkedTo` are produced by OP for other apps to consume. Therefore, they should not be deleted. --- .../20240704112800-related-members.sparql | 10 ++-------- .../20240716151700-associated-with.sparql | 16 +++++----------- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql index 8161fed..b46114f 100644 --- a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql +++ b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240704112800-related-members.sparql @@ -2,11 +2,6 @@ PREFIX skos: PREFIX org: PREFIX mu: -DELETE { - GRAPH ?g { - ?organization org:hasSubOrganization ?subOrganization . - } -} INSERT { GRAPH ?g { ?membership a org:Membership ; @@ -15,8 +10,7 @@ INSERT { org:member ?subOrganization ; org:role . # gerelateerd } -} -WHERE { +} WHERE { VALUES ?g { @@ -29,4 +23,4 @@ WHERE { BIND(SHA1(CONCAT(STR(?organization), STR(?subOrganization), "sub organization")) as ?uuid) BIND(IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) -} \ No newline at end of file +} diff --git a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240716151700-associated-with.sparql b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240716151700-associated-with.sparql index 2ccf9bd..6ae7e22 100644 --- a/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240716151700-associated-with.sparql +++ b/config/migrations/2024/20240704112300-related-organizations-as-memberships/20240716151700-associated-with.sparql @@ -3,21 +3,15 @@ PREFIX org: PREFIX mu: PREFIX ext: -DELETE { - GRAPH ?g { - ?org org:linkedTo ?foundedOrg . - } -} INSERT { GRAPH ?g { ?membership a org:Membership ; mu:uuid ?uuid ; - org:organization ?foundedOrg ; + org:organization ?linkedOrg ; org:member ?org ; org:role . # gerelateerd } -} -WHERE { +} WHERE { VALUES ?g { @@ -25,9 +19,9 @@ WHERE { } GRAPH ?g { - ?org org:linkedTo ?foundedOrg . + ?org org:linkedTo ?linkedOrg . } - BIND(SHA1(CONCAT(STR(?org), STR(?foundedOrg), "associated with")) as ?uuid) + BIND(SHA1(CONCAT(STR(?org), STR(?linkedOrg), "associated with")) as ?uuid) BIND(IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) -} \ No newline at end of file +} From 494caa8c59def1666f9d98d39b204268aaca20f3 Mon Sep 17 00:00:00 2001 From: mirdono Date: Mon, 30 Sep 2024 13:35:30 +0200 Subject: [PATCH 27/64] chore: added db-cleanup-service This service will be used to insert and delete triples for the `org:hasSubOrganization` and `org:linkedTo` predicates when appropriated memberships have been added or deleted to the triplestore. --- docker-compose.dev.yml | 2 ++ docker-compose.yml | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 3a59abd..21da230 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -23,6 +23,8 @@ services: restart: "no" cache: restart: "no" + db-cleanup: + restart: "no" kalliope-api: environment: SECURITY_CONFIG_PATH: "/config/security-dev.json" diff --git a/docker-compose.yml b/docker-compose.yml index 6c12f49..74b917f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -61,6 +61,15 @@ services: - "logging=true" restart: always logging: *default-logging + db-cleanup: + image: lblod/db-cleanup-service:0.5.1 + environment: + MU_SPARQL_ENDPOINT: "http://db:8890/sparql" + CRON_PATTERN: "23 */6 * * *" + labels: + - "logging=true" + restart: always + logging: *default-logging migrations-triggering-indexing: image: semtech/mu-migrations-service:0.8.0 links: From 7da8ebb6959c3669dcd3240aa10f441afcb9e9d6 Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 1 Oct 2024 07:55:08 +0200 Subject: [PATCH 28/64] feat: add cleanup jobs to insert triples --- ...embership-cleanup--worship-linked-to.graph | 1 + ...-membership-cleanup--worship-linked-to.ttl | 31 ++++++++++++++ ...leanup--worship-has-sub-organization.graph | 1 + ...-cleanup--worship-has-sub-organization.ttl | 28 +++++++++++++ ...eanup--province-has-sub-organization.graph | 1 + ...cleanup--province-has-sub-organization.ttl | 38 +++++++++++++++++ ...p--municipality-has-sub-organization.graph | 1 + ...nup--municipality-has-sub-organization.ttl | 42 +++++++++++++++++++ ...ship-cleanup--municipality-linked-to.graph | 1 + ...ership-cleanup--municipality-linked-to.ttl | 36 ++++++++++++++++ 10 files changed, 180 insertions(+) create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.ttl create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.ttl create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.ttl create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.ttl diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.ttl new file mode 100644 index 0000000..1a434b3 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.ttl @@ -0,0 +1,31 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "f0f7a304-34e9-4986-bf27-8434bb6f8111" ; + dcterms:title "Insert missing `org:linkedTo` triples for Representative Bodies and [Central] Worship Services." ; + cleanup:randomQuery """ + PREFIX org: + + INSERT { + GRAPH { + ?member org:linkedTo ?organization . + } + } WHERE { + GRAPH { + ?membership a org:Membership ; + org:organization ?organization ; + org:member ?member ; + org:role . + ?member org:classification . + ?organization org:classification ?orgClass . + FILTER ( ?orgClass IN ( + , + + )) + + FILTER NOT EXISTS { ?member org:linkedTo ?organization . } + } + } + """ . diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.ttl new file mode 100644 index 0000000..dca61dd --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.ttl @@ -0,0 +1,28 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "1352f2c5-0207-435b-9737-26d29769cde6" ; + dcterms:title "Insert missing `org:hasSubOrganization` triples for Central Worship Services and Worship Services." ; + cleanup:randomQuery """ + PREFIX org: + + INSERT { + GRAPH { + ?organization org:hasSubOrganization ?member . + } + } WHERE { + GRAPH { + ?membership a org:Membership ; + org:organization ?organization ; + org:member ?member ; + org:role . + + ?member org:classification . + ?organization org:classification . + + FILTER NOT EXISTS { ?organization org:hasSubOrganization ?member . } + } + } + """ . diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl new file mode 100644 index 0000000..a3bb098 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl @@ -0,0 +1,38 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "434b8b52-b695-4358-a927-ddaceb22e7e3" ; + dcterms:title "Insert missing `org:hasSubOrganization` triples for Provinces." ; + cleanup:randomQuery """ + PREFIX org: + + INSERT { + GRAPH { + ?organization org:hasSubOrganization ?member . + } + } WHERE { + GRAPH { + ?membership a org:Membership ; + org:organization ?organization ; + org:member ?member ; + org:role . + + FILTER NOT EXISTS { ?organization org:hasSubOrganization ?member . } + } + + ?organization org:classification . + + ?member org:classification ?memberClass . + FILTER ( ?memberClass + IN ( + , + , + , + , + + ) + ) + } + """ . diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.ttl new file mode 100644 index 0000000..940ac50 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.ttl @@ -0,0 +1,42 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "3b7f8739-aa56-4a6c-af56-eb9d80022379" ; + dcterms:title "Insert missing `org:hasSubOrganization` triples for Municipalities." ; + cleanup:randomQuery """ + PREFIX org: + + INSERT { + GRAPH { + ?organization org:hasSubOrganization ?member . + } + } WHERE { + GRAPH { + ?membership a org:Membership ; + org:organization ?organization ; + org:member ?member ; + org:role . + + FILTER NOT EXISTS { ?organization org:hasSubOrganization ?member . } + + ?member org:classification ?memberClass . + FILTER ( ?memberClass + IN ( + , + , + , + , + , + , + , + + ) + ) + } + GRAPH { + ?organization org:classification . + } + } + """ . diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.ttl new file mode 100644 index 0000000..6ddc59a --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.ttl @@ -0,0 +1,36 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "a99bcd5c-9781-425d-8a34-fb11a6e3e262" ; + dcterms:title "Insert missing `org:linkedTo` triples for Municipalities." ; + cleanup:randomQuery """ + PREFIX org: + + INSERT { + GRAPH { + ?organization org:linkedTo ?member . + } + } WHERE { + GRAPH { + ?membership a org:Membership ; + org:organization ?organization ; + org:member ?member ; + org:role . + + FILTER NOT EXISTS { ?organization org:linkedTo ?member . } + + ?member org:classification ?memberClass . + FILTER ( ?memberClass + IN ( + , + + ) + ) + } + GRAPH { + ?organization org:classification . + } + } + """ . From e3ec21eb71b0e8746614aa3260d33ed7233e9c9a Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 2 Oct 2024 19:10:18 +0200 Subject: [PATCH 29/64] feat: add cleanup jobs to delete triples When removing memberships some `org:hasSubOrganization` or `org:linkedTo` triples may remain in the triplestore. These migrations add jobs to delete such triples. --- ...cleanup--province-has-sub-organization.ttl | 3 +- ...ip-cleanup--delete-worship-linked-to.graph | 1 + ...ship-cleanup--delete-worship-linked-to.ttl | 34 +++++++++++++++ ...-delete-worship-has-sub-organization.graph | 1 + ...p--delete-worship-has-sub-organization.ttl | 29 +++++++++++++ ...eanup--delete-municipality-linked-to.graph | 1 + ...cleanup--delete-municipality-linked-to.ttl | 26 +++++++++++ ...te-municipality-has-sub-organization.graph | 1 + ...lete-municipality-has-sub-organization.ttl | 43 +++++++++++++++++++ ...delete-province-has-sub-organization.graph | 1 + ...--delete-province-has-sub-organization.ttl | 41 ++++++++++++++++++ 11 files changed, 180 insertions(+), 1 deletion(-) create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.ttl create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.ttl create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.ttl create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.ttl create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.graph create mode 100644 config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.ttl diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl index a3bb098..4ba9228 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl @@ -27,9 +27,10 @@ ?member org:classification ?memberClass . FILTER ( ?memberClass IN ( - , , , + , + , , ) diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.ttl new file mode 100644 index 0000000..9dae020 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.ttl @@ -0,0 +1,34 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "679eec55-0f69-4d45-84c1-9f73df966983" ; + dcterms:title "Delete leftover `org:linkedTo` triples for Representative Bodies and [Central] Worship Services." ; + cleanup:randomQuery """ + PREFIX org: + + DELETE { + GRAPH { + ?s org:linkedTo ?o . + } + } WHERE { + GRAPH { + ?s org:linkedTo ?o . + FILTER NOT EXISTS { + ?membership a org:Membership ; + org:organization ?o ; + org:member ?s ; + org:role . + } + + ?s org:classification . + + ?o org:classification ?oClass . + FILTER ( ?oClass IN ( + , + + )) + } + } + """ . diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.ttl new file mode 100644 index 0000000..b807bc9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.ttl @@ -0,0 +1,29 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "50cee254-37e4-410e-936a-d974047bdd4b" ; + dcterms:title "Delete leftover `org:hasSubOrganization` triples for Central Worship Services and Worship Services." ; + cleanup:randomQuery """ + PREFIX org: + + DELETE { + GRAPH { + ?cws org:hasSubOrganization ?ws . + } + } WHERE { + GRAPH { + ?cws org:hasSubOrganization ?ws . + FILTER NOT EXISTS { + ?membership a org:Membership ; + org:organization ?cws ; + org:member ?ws ; + org:role . + } + + ?cws org:classification . + ?ws org:classification . + } + } + """ . diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.ttl new file mode 100644 index 0000000..19b2ef8 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.ttl @@ -0,0 +1,26 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "14cfd05c-7047-43a1-97e4-42d3dd6b048d" ; + dcterms:title "Delete leftover `org:linkedTo` triples for Municipalities." ; + cleanup:randomQuery """ + PREFIX org: + + DELETE { + GRAPH { + ?municipality org:linkedTo ?member . + } + } WHERE { + GRAPH { + ?municipality org:linkedTo ?member . + FILTER NOT EXISTS { + ?membership a org:Membership ; + org:organization ?municipality ; + org:member ?member ; + org:role . + } + } + } + """ . diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.ttl new file mode 100644 index 0000000..9a13f21 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.ttl @@ -0,0 +1,43 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "141a5f1c-39d5-431a-99e2-9085252654a3" ; + dcterms:title "Delete leftover `org:hasSubOrganization` triples for Municipalities." ; + cleanup:randomQuery """ + PREFIX org: + + DELETE { + GRAPH { + ?municipality org:hasSubOrganization ?member . + } + } WHERE { + GRAPH { + ?municipality org:hasSubOrganization ?member . + FILTER NOT EXISTS { + ?membership a org:Membership ; + org:organization ?municipality ; + org:member ?member ; + org:role . + } + + ?member org:classification ?memberClass . + FILTER ( ?memberClass + IN ( + , + , + , + , + , + , + , + + ) + ) + } + GRAPH { + ?municipality org:classification . + } + } + """ . diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.graph new file mode 100644 index 0000000..092c3a9 --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/public diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.ttl new file mode 100644 index 0000000..aa3e0ee --- /dev/null +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.ttl @@ -0,0 +1,41 @@ +@prefix cleanup: . +@prefix mu: . +@prefix dcterms: . + + a cleanup:Job ; + mu:uuid "7b2f66c8-1433-47f4-b730-62316f288631" ; + dcterms:title "Delete leftover `org:hasSubOrganization` triples for Provinces." ; + cleanup:randomQuery """ + PREFIX org: + + DELETE { + GRAPH { + ?province org:hasSubOrganization ?member . + } + } WHERE { + GRAPH { + ?province org:hasSubOrganization ?member . + FILTER NOT EXISTS { + ?membership a org:Membership ; + org:organization ?province ; + org:member ?member ; + org:role . + } + } + + ?member org:classification ?memberClass . + FILTER ( ?memberClass + IN ( + , + , + , + , + , + + ) + ) + GRAPH { + ?province org:classification . + } + } + """ . From 70e09cf995afca8cce8b31bf8c332d9e7e01948c Mon Sep 17 00:00:00 2001 From: mirdono Date: Thu, 3 Oct 2024 17:28:39 +0200 Subject: [PATCH 30/64] chore: add DEV migration to remove invalid memberships This migration removes a bunch of memberships which `organization` assignment is not valid. These memberships were most likely created by (automated) testing while the frontend did not correctly enforce the correct direction. --- ...-remove-invalid-generic-memberships.sparql | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 config/dev-migrations/20241003152155-remove-invalid-generic-memberships.sparql diff --git a/config/dev-migrations/20241003152155-remove-invalid-generic-memberships.sparql b/config/dev-migrations/20241003152155-remove-invalid-generic-memberships.sparql new file mode 100644 index 0000000..9d8bca3 --- /dev/null +++ b/config/dev-migrations/20241003152155-remove-invalid-generic-memberships.sparql @@ -0,0 +1,31 @@ +PREFIX org: + +DELETE { + GRAPH { + ?membership ?p ?o . + } +} WHERE { + GRAPH { + ?membership a org:Membership ; + org:member ?member ; + org:organization ?organization ; + org:role ; # has a relation with + ?p ?o . + + ?organization org:classification ?organizationClass . + FILTER (?organizationClass IN + ( + , # HVZ + , # APB + , # Dienstverlenende vereniging + , # Opdrachthoudende vereniging + , # Opdrachthoudende vereniging met private deelname + , # Projectvereniging + , # Politiezone + , # Autonome verzorgingsinstelling + , # AGB + # Welzijnsvereniging + ) + ) + } +} From 2ed45e3a5efc1d9478cbd780a1a6f4d1cb76a66b Mon Sep 17 00:00:00 2001 From: mirdono Date: Mon, 7 Oct 2024 09:05:15 +0200 Subject: [PATCH 31/64] refactor: renamed job migrations to include "insert" in the filename Added comments to make it easier to understand query executed by each job. --- ...p-cleanup--insert-worship-linked-to.graph} | 0 ...hip-cleanup--insert-worship-linked-to.ttl} | 8 +++++++ ...insert-worship-has-sub-organization.graph} | 0 ...--insert-worship-has-sub-organization.ttl} | 9 +++++++- ...nsert-province-has-sub-organization.graph} | 0 ...-insert-province-has-sub-organization.ttl} | 13 ++++++++++++ ...t-municipality-has-sub-organization.graph} | 0 ...ert-municipality-has-sub-organization.ttl} | 15 +++++++++++++ ...anup--insert-municipality-linked-to.graph} | 0 ...leanup--insert-municipality-linked-to.ttl} | 13 ++++++++++-- ...ship-cleanup--delete-worship-linked-to.ttl | 8 +++++++ ...p--delete-worship-has-sub-organization.ttl | 7 +++++++ ...cleanup--delete-municipality-linked-to.ttl | 21 +++++++++++++++++++ ...lete-municipality-has-sub-organization.ttl | 15 +++++++++++++ ...--delete-province-has-sub-organization.ttl | 13 ++++++++++++ 15 files changed, 119 insertions(+), 3 deletions(-) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20240930124819-membership-cleanup--worship-linked-to.graph => 20240930124819-membership-cleanup--insert-worship-linked-to.graph} (100%) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20240930124819-membership-cleanup--worship-linked-to.ttl => 20240930124819-membership-cleanup--insert-worship-linked-to.ttl} (75%) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20241001071404-membership-cleanup--worship-has-sub-organization.graph => 20241001071404-membership-cleanup--insert-worship-has-sub-organization.graph} (100%) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20241001071404-membership-cleanup--worship-has-sub-organization.ttl => 20241001071404-membership-cleanup--insert-worship-has-sub-organization.ttl} (74%) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20241001145338-membership-cleanup--province-has-sub-organization.graph => 20241001145338-membership-cleanup--insert-province-has-sub-organization.graph} (100%) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20241001145338-membership-cleanup--province-has-sub-organization.ttl => 20241001145338-membership-cleanup--insert-province-has-sub-organization.ttl} (67%) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20241002092839-membership-cleanup--municipality-has-sub-organization.graph => 20241002092839-membership-cleanup--insert-municipality-has-sub-organization.graph} (100%) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20241002092839-membership-cleanup--municipality-has-sub-organization.ttl => 20241002092839-membership-cleanup--insert-municipality-has-sub-organization.ttl} (64%) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20241002092901-membership-cleanup--municipality-linked-to.graph => 20241002092901-membership-cleanup--insert-municipality-linked-to.graph} (100%) rename config/migrations/2024/20240930124819-membership-cleanup-jobs/{20241002092901-membership-cleanup--municipality-linked-to.ttl => 20241002092901-membership-cleanup--insert-municipality-linked-to.ttl} (73%) diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--insert-worship-linked-to.graph similarity index 100% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.graph rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--insert-worship-linked-to.graph diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--insert-worship-linked-to.ttl similarity index 75% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.ttl rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--insert-worship-linked-to.ttl index 1a434b3..1864144 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--worship-linked-to.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20240930124819-membership-cleanup--insert-worship-linked-to.ttl @@ -2,6 +2,14 @@ @prefix mu: . @prefix dcterms: . +# Insert triples of the form: +# +# +# matching memberships for which no such triple exists. + +# Worship Service: +# Central Worship Service: + a cleanup:Job ; mu:uuid "f0f7a304-34e9-4986-bf27-8434bb6f8111" ; dcterms:title "Insert missing `org:linkedTo` triples for Representative Bodies and [Central] Worship Services." ; diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--insert-worship-has-sub-organization.graph similarity index 100% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.graph rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--insert-worship-has-sub-organization.graph diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--insert-worship-has-sub-organization.ttl similarity index 74% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.ttl rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--insert-worship-has-sub-organization.ttl index dca61dd..abc781d 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--worship-has-sub-organization.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001071404-membership-cleanup--insert-worship-has-sub-organization.ttl @@ -2,6 +2,13 @@ @prefix mu: . @prefix dcterms: . +# Insert triples of the form: +# +# matching memberships for which no such triple exists. + +# Central Worship Service: +# Worship Service: + a cleanup:Job ; mu:uuid "1352f2c5-0207-435b-9737-26d29769cde6" ; dcterms:title "Insert missing `org:hasSubOrganization` triples for Central Worship Services and Worship Services." ; @@ -19,8 +26,8 @@ org:member ?member ; org:role . - ?member org:classification . ?organization org:classification . + ?member org:classification . FILTER NOT EXISTS { ?organization org:hasSubOrganization ?member . } } diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--insert-province-has-sub-organization.graph similarity index 100% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.graph rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--insert-province-has-sub-organization.graph diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--insert-province-has-sub-organization.ttl similarity index 67% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--insert-province-has-sub-organization.ttl index 4ba9228..1e86454 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--province-has-sub-organization.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241001145338-membership-cleanup--insert-province-has-sub-organization.ttl @@ -2,6 +2,19 @@ @prefix mu: . @prefix dcterms: . +# Insert triples of the form +# +# matching memberships for which no such triple exists. + +# Province: +# +# Municipality: +# OCMW: +# AGB: +# APB: +# PEVA municipality: +# PEVA province: + a cleanup:Job ; mu:uuid "434b8b52-b695-4358-a927-ddaceb22e7e3" ; dcterms:title "Insert missing `org:hasSubOrganization` triples for Provinces." ; diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--insert-municipality-has-sub-organization.graph similarity index 100% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.graph rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--insert-municipality-has-sub-organization.graph diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--insert-municipality-has-sub-organization.ttl similarity index 64% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.ttl rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--insert-municipality-has-sub-organization.ttl index 940ac50..96d1563 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--municipality-has-sub-organization.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092839-membership-cleanup--insert-municipality-has-sub-organization.ttl @@ -2,6 +2,21 @@ @prefix mu: . @prefix dcterms: . +# Insert triples of the form +# +# matching memberships for which no such triple exists. + +# Municipality: +# +# AGB: +# Projectvereniging: +# Dientsverlenende vereniging +# Opdrachthoudende vereniging: +# Opdrachthoudende vereniging met private deelname: +# HVZ: +# PZ: +# PEVA municipality: + a cleanup:Job ; mu:uuid "3b7f8739-aa56-4a6c-af56-eb9d80022379" ; dcterms:title "Insert missing `org:hasSubOrganization` triples for Municipalities." ; diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.graph b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--insert-municipality-linked-to.graph similarity index 100% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.graph rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--insert-municipality-linked-to.graph diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--insert-municipality-linked-to.ttl similarity index 73% rename from config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.ttl rename to config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--insert-municipality-linked-to.ttl index 6ddc59a..8d2ebf9 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--municipality-linked-to.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002092901-membership-cleanup--insert-municipality-linked-to.ttl @@ -2,6 +2,15 @@ @prefix mu: . @prefix dcterms: . +# Insert triples of the form: +# +# matching memberships for which no such triple exists. + +# Municipality: +# +# OCMW: +# APB: + a cleanup:Job ; mu:uuid "a99bcd5c-9781-425d-8a34-fb11a6e3e262" ; dcterms:title "Insert missing `org:linkedTo` triples for Municipalities." ; @@ -24,8 +33,8 @@ ?member org:classification ?memberClass . FILTER ( ?memberClass IN ( - , - + , + ) ) } diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.ttl index 9dae020..dcf7604 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002151049-membership-cleanup--delete-worship-linked-to.ttl @@ -2,6 +2,14 @@ @prefix mu: . @prefix dcterms: . +# Delete triples of the form: +# +# +# for which no matching membership exists. + +# Worship Service: +# Central Worship Service: + a cleanup:Job ; mu:uuid "679eec55-0f69-4d45-84c1-9f73df966983" ; dcterms:title "Delete leftover `org:linkedTo` triples for Representative Bodies and [Central] Worship Services." ; diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.ttl index b807bc9..e19e2f9 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241002162120-membership-cleanup--delete-worship-has-sub-organization.ttl @@ -2,6 +2,13 @@ @prefix mu: . @prefix dcterms: . +# Delete triples of the form +# +# for which no matching membership exists. + +# Central Worship Service +# Worship Service + a cleanup:Job ; mu:uuid "50cee254-37e4-410e-936a-d974047bdd4b" ; dcterms:title "Delete leftover `org:hasSubOrganization` triples for Central Worship Services and Worship Services." ; diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.ttl index 19b2ef8..7607e02 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003170226-membership-cleanup--delete-municipality-linked-to.ttl @@ -2,6 +2,15 @@ @prefix mu: . @prefix dcterms: . +# Delete triples of the form: +# +# for which no matching membership exists. + +# Municipality: +# +# OCMW: +# APB: + a cleanup:Job ; mu:uuid "14cfd05c-7047-43a1-97e4-42d3dd6b048d" ; dcterms:title "Delete leftover `org:linkedTo` triples for Municipalities." ; @@ -21,6 +30,18 @@ org:member ?member ; org:role . } + + ?member org:classification ?memberClass . + FILTER ( ?memberClass + IN ( + , + + + ) + ) + } + GRAPH { + ?municipality org:classification . } } """ . diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.ttl index 9a13f21..a9b203f 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003171920-membership-cleanup--delete-municipality-has-sub-organization.ttl @@ -2,6 +2,21 @@ @prefix mu: . @prefix dcterms: . +# Delete triples of the form +# +# for which no matching membership exists. + +# Municipality: +# +# AGB: +# Projectvereniging: +# Dientsverlenende vereniging +# Opdrachthoudende vereniging: +# Opdrachthoudende vereniging met private deelname: +# HVZ: +# PZ: +# PEVA municipality: + a cleanup:Job ; mu:uuid "141a5f1c-39d5-431a-99e2-9085252654a3" ; dcterms:title "Delete leftover `org:hasSubOrganization` triples for Municipalities." ; diff --git a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.ttl b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.ttl index aa3e0ee..86a5898 100644 --- a/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.ttl +++ b/config/migrations/2024/20240930124819-membership-cleanup-jobs/20241003173836-membership-cleanup--delete-province-has-sub-organization.ttl @@ -2,6 +2,19 @@ @prefix mu: . @prefix dcterms: . +# Delete triples of the form +# +# for which no matching membership exists. + +# Province: +# +# Municipality: +# OCMW: +# AGB: +# APB: +# PEVA municipality: +# PEVA province: + a cleanup:Job ; mu:uuid "7b2f66c8-1433-47f4-b730-62316f288631" ; dcterms:title "Delete leftover `org:hasSubOrganization` triples for Provinces." ; From 64f78722d9ee758c519a9e9880b9eace7b36e708 Mon Sep 17 00:00:00 2001 From: mirdono Date: Mon, 7 Oct 2024 13:08:10 +0200 Subject: [PATCH 32/64] feat: add memberships for new organizations Add the migrations to create the necessary memberships for the newly added municipalities and OCMWs. These new organizations were added as part of a hotfix after the memberships were added to development. Consequently, the migrations inserting these organizations are performed **after** the migrations introducing membership data. Therefore, we need to add some additional migrations specifically for these new organizations. --- ...t-memberships-merged-municipalities.sparql | 37 ++++++ ...rt-membership-new-district-borsbeek.sparql | 22 ++++ ...0727-insert-memberships-merged-ocmw.sparql | 105 ++++++++++++++++++ 3 files changed, 164 insertions(+) create mode 100644 config/migrations/2024/20241007091759-insert-memberships-merged-municipalities.sparql create mode 100644 config/migrations/2024/20241007094811-insert-membership-new-district-borsbeek.sparql create mode 100644 config/migrations/2024/20241007100727-insert-memberships-merged-ocmw.sparql diff --git a/config/migrations/2024/20241007091759-insert-memberships-merged-municipalities.sparql b/config/migrations/2024/20241007091759-insert-memberships-merged-municipalities.sparql new file mode 100644 index 0000000..9a10298 --- /dev/null +++ b/config/migrations/2024/20241007091759-insert-memberships-merged-municipalities.sparql @@ -0,0 +1,37 @@ +PREFIX org: +PREFIX mu: + +# Add the "has a relation with" membership between provinces and municipalities +# for the new municipalities that were added for the 2025 mergers. + +INSERT { + GRAPH { + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ?province ; + org:member ?municipality ; + org:role . # has a relation with + } +} WHERE { + GRAPH { + ?province org:hasSubOrganization ?municipality . + FILTER (?province IN + ( + , # Oost-Vlaanderen + , # Vlaams-Brabant + , # Limburg + , # Antwerpen + # West-Vlaanderen + ) + ) + } + BIND (SHA256(CONCAT(STR(?province), " has a relation with ", STR(?municipality))) AS ?uuid) + BIND (IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) + + VALUES ?municipality { + # Beveren-Kruibeke-Zwijndrecht + # Merelbeke-Melle + # Nazareth-De Pinte + # Pajottegem + } +} diff --git a/config/migrations/2024/20241007094811-insert-membership-new-district-borsbeek.sparql b/config/migrations/2024/20241007094811-insert-membership-new-district-borsbeek.sparql new file mode 100644 index 0000000..29ebfb0 --- /dev/null +++ b/config/migrations/2024/20241007094811-insert-membership-new-district-borsbeek.sparql @@ -0,0 +1,22 @@ +PREFIX org: +PREFIX mu: + +INSERT { + GRAPH { + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ?antwerp ; + org:member ?borsbeek ; + org:role . # has a relation with + } +} WHERE { + GRAPH { + ?antwerp org:hasSubOrganization ?borsbeek . + + FILTER (?antwerp = ) + FILTER (?borsbeek = ) + } + + BIND (SHA256(CONCAT(STR(?antwerp), " has a relation with ", STR(?borsbeek))) AS ?uuid) + BIND (IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) +} diff --git a/config/migrations/2024/20241007100727-insert-memberships-merged-ocmw.sparql b/config/migrations/2024/20241007100727-insert-memberships-merged-ocmw.sparql new file mode 100644 index 0000000..951fecf --- /dev/null +++ b/config/migrations/2024/20241007100727-insert-memberships-merged-ocmw.sparql @@ -0,0 +1,105 @@ +PREFIX org: +PREFIX mu: + +# Add the "has a relation with" membership between provinces and the new OCMWs +# added for the 2025 mergers. +INSERT { + GRAPH { + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ?province ; + org:member ?ocmw ; + org:role . # has a relation with + } +} WHERE { + GRAPH { + ?province org:hasSubOrganization ?ocmw . + FILTER (?province IN + ( + , # Oost-Vlaanderen + , # Vlaams-Brabant + , # Limburg + , # Antwerpen + # West-Vlaanderen + ) + ) + } + BIND (SHA256(CONCAT(STR(?province), " has a relation with ", STR(?ocmw))) AS ?uuid) + BIND (IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) + + VALUES ?ocmw { + # Beveren-Kruibeke-Zwijndrecht + # Merelbeke-Melle + # Nazareth-De Pinte + # Pajottegem + } +} +; +# Relate OCMWs with their municipalities +## Beveren-Kruibeke-Zwijndrecht +### Municipality: +### OCMW: +INSERT { + GRAPH { + org:linkedTo . + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ; + org:member ; + org:role . # has a relation with + } +} WHERE { + BIND (SHA256(CONCAT(STR(), "has a relation with", STR())) AS ?uuid) + BIND (IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) +} +; +## Merelbeke-Melle +### Municipality: +### OCMW: +INSERT { + GRAPH { + org:linkedTo . + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ; + org:member ; + org:role . # has a relation with + } +} WHERE { + BIND (SHA256(CONCAT(STR(), "has a relation with", STR())) AS ?uuid) + BIND (IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) +} +; +## Nazareth-De Pinte +### Municipality: +### OCMW: +INSERT { + GRAPH { + org:linkedTo . + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ; + org:member ; + org:role . # has a relation with + } +} WHERE { + BIND (SHA256(CONCAT(STR(), "has a relation with", STR())) AS ?uuid) + BIND (IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) +} +; +## Pajottegem +### Municipality: +### OCMW: +INSERT { + GRAPH { + org:linkedTo . + ?membership a org:Membership ; + mu:uuid ?uuid ; + org:organization ; + org:member ; + org:role . # has a relation with + } +} WHERE { + BIND (SHA256(CONCAT(STR(), "has a relation with", STR())) AS ?uuid) + BIND (IRI(CONCAT("http://data.lblod.info/id/lidmaatschap/", ?uuid)) AS ?membership) +} From 08b39e36c383379d9967bedbeb62ad38f61f21d7 Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 15 Oct 2024 17:42:54 +0200 Subject: [PATCH 33/64] fix: remove superfluous line in drc dev configuration The most recent merge commit from master to branch contained error were a removed line was reinserted at a wrong place with an incorrect indentation .his causes (some) drc commands to fail with an error --- docker-compose.dev.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 3bdf15c..b25c943 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -48,7 +48,6 @@ services: restart: "no" adressenregister: restart: "no" - image: lblod/frontend-organization-portal:latest frontend: restart: "no" uri-info: From 44cbb222cc2cdba35ddc38516e3ca81e870afbf6 Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 8 Oct 2024 18:26:49 +0200 Subject: [PATCH 34/64] chore: enable editing contact data Re-enable editing contact data in OP as the CLB app editing functionality was disable due to data flow issues. This sets the relevant frontend feature flag such that it allows editing the contact data for all organizations classifications agains. When deploying make sure this environment variable is **not** overwritten in the environment's `docker-compose.override.yml`. --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index d1c14de..1be9310 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -192,6 +192,7 @@ services: volumes: - ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf environment: + EMBER_ENABLE_EDIT_CONTACT_DATA_FEATURE: "true" EMBER_OAUTH_API_REDIRECT_URL: "https://organisaties.abb.lblod.info/authorization/callback" EMBER_OAUTH_API_KEY: "677af572-2e2f-4e61-ad38-036723bb314c" EMBER_OAUTH_API_BASE_URL: "https://authenticatie-ti.vlaanderen.be/op/v1/auth" From 40d7c72b59acda19c3f4814ea46455849a23023e Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 9 Oct 2024 09:31:24 +0200 Subject: [PATCH 35/64] chore: remove the CLB consumer for contact data OP will take over the editing of contact data again. This removes the CLB consumer from OP altogether such that it cannot be accidentally be reactivated. --- config/clb-consumer/contact-data/config.js | 30 -- .../contact-data/delta-context-config.js | 268 -------------- .../contact-data/delta-sync-dispatching.js | 104 ------ .../contact-data/initial-sync-dispatching.js | 69 ---- config/clb-consumer/contact-data/util.js | 337 ------------------ docker-compose.yml | 31 -- 6 files changed, 839 deletions(-) delete mode 100644 config/clb-consumer/contact-data/config.js delete mode 100644 config/clb-consumer/contact-data/delta-context-config.js delete mode 100644 config/clb-consumer/contact-data/delta-sync-dispatching.js delete mode 100644 config/clb-consumer/contact-data/initial-sync-dispatching.js delete mode 100644 config/clb-consumer/contact-data/util.js diff --git a/config/clb-consumer/contact-data/config.js b/config/clb-consumer/contact-data/config.js deleted file mode 100644 index 052d8f7..0000000 --- a/config/clb-consumer/contact-data/config.js +++ /dev/null @@ -1,30 +0,0 @@ -const BATCH_SIZE = parseInt(process.env.BATCH_SIZE) || 1000; -const MU_CALL_SCOPE_ID_INITIAL_SYNC = process.env.MU_CALL_SCOPE_ID_INITIAL_SYNC || 'http://redpencil.data.gift/id/concept/muScope/deltas/consumer/initialSync'; -const BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES = process.env.BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES == 'true' ? true : false; -const DIRECT_DATABASE_ENDPOINT = process.env.DIRECT_DATABASE_ENDPOINT || 'http://virtuoso:8890/sparql'; -const MAX_DB_RETRY_ATTEMPTS = parseInt(process.env.MAX_DB_RETRY_ATTEMPTS || 5); -const MAX_REASONING_RETRY_ATTEMPTS = parseInt(process.env.MAX_REASONING_RETRY_ATTEMPTS || 5); -const SLEEP_BETWEEN_BATCHES = parseInt(process.env.SLEEP_BETWEEN_BATCHES || 100); -const SLEEP_TIME_AFTER_FAILED_REASONING_OPERATION = parseInt(process.env.SLEEP_TIME_AFTER_FAILED_REASONING_OPERATION || 10000); -const SLEEP_TIME_AFTER_FAILED_DB_OPERATION = parseInt(process.env.SLEEP_TIME_AFTER_FAILED_DB_OPERATION || 60000); - -// Graphs -const LANDING_ZONE_GRAPH = process.env.DCR_LANDING_ZONE_GRAPH || `http://mu.semte.ch/graphs/landing-zone/clb-contact-data`; - -// ENDPOINTS -const LANDING_ZONE_DATABASE = process.env.DCR_LANDING_ZONE_DATABASE || 'database'; -const LANDING_ZONE_DATABASE_ENDPOINT = process.env.DCR_LANDING_ZONE_DATABASE_ENDPOINT || `http://${LANDING_ZONE_DATABASE}:8890/sparql`; - -module.exports = { - BATCH_SIZE, - MU_CALL_SCOPE_ID_INITIAL_SYNC, - BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES, - DIRECT_DATABASE_ENDPOINT, - MAX_DB_RETRY_ATTEMPTS, - MAX_REASONING_RETRY_ATTEMPTS, - SLEEP_BETWEEN_BATCHES, - SLEEP_TIME_AFTER_FAILED_DB_OPERATION, - SLEEP_TIME_AFTER_FAILED_REASONING_OPERATION, - LANDING_ZONE_GRAPH, - LANDING_ZONE_DATABASE_ENDPOINT -}; \ No newline at end of file diff --git a/config/clb-consumer/contact-data/delta-context-config.js b/config/clb-consumer/contact-data/delta-context-config.js deleted file mode 100644 index edbe30b..0000000 --- a/config/clb-consumer/contact-data/delta-context-config.js +++ /dev/null @@ -1,268 +0,0 @@ - -const PREFIXES = ` -PREFIX besluit: - PREFIX skos: - PREFIX lblodgeneriek: - PREFIX org: - PREFIX code: - PREFIX adms: - PREFIX generiek: - PREFIX ere: - PREFIX organisatie: - PREFIX mu: - PREFIX euvoc: - PREFIX prov: - PREFIX schema: - PREFIX locn: - PREFIX ext: ` - -const contextConfig = { - addTypes: { - scope: 'all', // 'inserts, 'deletes', 'all' or none. To add rdf:type to subjects of inserts, deletes or both - exhausitive: false, // true or false: find all types for a subject, even if one is already present in delta - }, - contextQueries: [ - { - trigger: { // subjectType or predicateValue - subjectType: "org:Site" - }, - queryTemplate: (subject) => ` - ${PREFIXES} - CONSTRUCT { - ${subject} ext:goesInGraph ?graphOne. - ${subject} ext:goesInGraph ?graphTwo. - ${subject} ext:goesInGraph ?graphThree. - ${subject} ext:goesInGraph ?graphFour. - } WHERE { - OPTIONAL { - GRAPH { - ?adminUnitOne org:hasPrimarySite ${subject}. - } - BIND( AS ?graphOne) - } - OPTIONAL { - GRAPH { - ?adminUnitTwo org:hasSite ${subject}. - } - BIND( AS ?graphTwo) - } - OPTIONAL { - GRAPH { - ?adminUnitThree org:hasPrimarySite ${subject}. - } - BIND( AS ?graphThree) - } - OPTIONAL { - GRAPH { - ?adminUnitFour org:hasSite ${subject}. - } - BIND( AS ?graphFour) - } - }` - }, - { - trigger: { // subjectType or predicateValue - subjectType: "schema:ContactPoint" - }, - queryTemplate: (subject) => ` - ${PREFIXES} - CONSTRUCT { - ${subject} ext:goesInGraph ?graphOne. - ${subject} ext:goesInGraph ?graphTwo. - } WHERE { - OPTIONAL { - GRAPH { - ?siteOne org:siteAddress ${subject}. - } - BIND( AS ?graphOne) - } - OPTIONAL { - GRAPH { - ?siteTwo org:siteAddress ${subject}. - } - BIND( AS ?graphTwo) - } - }` - }, - { - trigger: { // subjectType or predicateValue - subjectType: "locn:Address" - }, - queryTemplate: (subject) => ` - ${PREFIXES} - CONSTRUCT { - ${subject} ext:goesInGraph ?graphOne. - ${subject} ext:goesInGraph ?graphTwo. - } WHERE { - OPTIONAL { - GRAPH { - ?siteOne organisatie:bestaatUit ${subject}. - } - BIND( AS ?graphOne) - } - OPTIONAL { - GRAPH { - ?siteTwo organisatie:bestaatUit ${subject}. - } - BIND( AS ?graphTwo) - } - }` - }, - //Predicate triggers to solve out of order deltas - { - trigger: { // subjectType or predicateValue - predicateValue: "org:hasSite" - }, - //We assume that only administrative units are in the shared graph of OP due to the need of sharing the prefLabel with worships services - queryTemplate: (subject) => ` - ${PREFIXES} - CONSTRUCT { - ${subject} ext:goesInGraph ?graphOne. - ${subject} ext:goesInGraph ?graphTwo. - ?site ?pSite ?oSite. - ?contact ?pContact ?oContact. - ?address ?pAddress ?oAddress. - ?addressContact ?pAddressContact ?oAddressContact. - } WHERE { - OPTIONAL { - GRAPH { - ${subject} a ?type. - } - BIND( AS ?graphOne) - } - OPTIONAL { - GRAPH { - ${subject} a ?type. - } - BIND( AS ?graphOne) - } - OPTIONAL { - GRAPH { - ${subject} a ?type. - } - BIND( AS ?graphTwo) - } - ${subject} org:hasSite ?site. - ?site ?pSite ?oSite. - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - ?contact locn:address ?addressContact. - ?addressContact ?pAddressContact ?oAddressContact. - } - UNION - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - } - UNION - { - ?site organisatie:bestaatUit ?address. - ?address ?pAddress ?oAddress. - } - }` - }, - { - trigger: { // subjectType or predicateValue - predicateValue: "org:hasPrimarySite" - }, - //We assume that only administrative units are in the shared graph of OP due to the need of sharing the prefLabel with worships services - queryTemplate: (subject) => ` - ${PREFIXES} - CONSTRUCT { - ${subject} ext:goesInGraph ?graphOne. - ${subject} ext:goesInGraph ?graphTwo. - ?site ?pSite ?oSite. - ?contact ?pContact ?oContact. - ?address ?pAddress ?oAddress. - ?addressContact ?pAddressContact ?oAddressContact. - } WHERE { - OPTIONAL { - GRAPH { - ${subject} a ?type. - } - BIND( AS ?graphOne) - } - OPTIONAL { - GRAPH { - ${subject} a ?type. - } - BIND( AS ?graphOne) - } - OPTIONAL { - GRAPH { - ${subject} a ?type. - } - BIND( AS ?graphTwo) - } - ${subject} org:hasPrimarySite ?site. - ?site ?pSite ?oSite. - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - ?contact locn:address ?addressContact. - ?addressContact ?pAddressContact ?oAddressContact. - } - UNION - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - } - UNION - { - ?site organisatie:bestaatUit ?address. - ?address ?pAddress ?oAddress. - } - }` - }, - { - trigger: { // subjectType or predicateValue - predicateValue: "org:siteAddress" - }, - queryTemplate: (subject) => ` - ${PREFIXES} - CONSTRUCT { - ?contact ?pContact ?oContact. - ?addressContact ?pAddressContact ?oAddressContact. - } WHERE { - ${subject} org:siteAddress ?contact. - ?contact ?pContact ?oContact. - OPTIONAL { - ?contact locn:address ?addressContact. - ?addressContact ?pAddressContact ?oAddressContact. - } - }` - }, - { - trigger: { // subjectType or predicateValue - predicateValue: "locn:address" - }, - queryTemplate: (subject) => ` - ${PREFIXES} - CONSTRUCT { - ?addressContact ?pAddressContact ?oAddressContact. - } WHERE { - ${subject} locn:address ?addressContact. - ?addressContact ?pAddressContact ?oAddressContact. - }` - }, - { - trigger: { // subjectType or predicateValue - predicateValue: "organisatie:bestaatUit" - }, - queryTemplate: (subject) => ` - ${PREFIXES} - CONSTRUCT { - ?address ?pAddress ?oAddress. - } WHERE { - ${subject} organisatie:bestaatUit ?address. - ?address ?pAddress ?oAddress. - }` - } - ] -} - -module.exports = { - contextConfig, - PREFIXES -}; \ No newline at end of file diff --git a/config/clb-consumer/contact-data/delta-sync-dispatching.js b/config/clb-consumer/contact-data/delta-sync-dispatching.js deleted file mode 100644 index 5f8c603..0000000 --- a/config/clb-consumer/contact-data/delta-sync-dispatching.js +++ /dev/null @@ -1,104 +0,0 @@ -const { - deleteFromPublicGraph, - insertIntoPublicGraph, - deleteFromSpecificGraphs, - insertIntoSpecificGraphs -} = require('./util'); - -const { - LANDING_ZONE_GRAPH -} = require('./config') - -const publicTypes = [ - '' -] - -/** -* Dispatch the fetched information to a target graph. -* Note: will be ADDED to it's own graph. -* We take only care of adding them, not updating triples, this is a TODO -* @param { mu, muAuthSudo } lib - The provided libraries from the host service. -* @param { termObjectChangeSets: { deletes, inserts } } data - The fetched changes sets, which objects of serialized Terms -* [ { -* graph: "", -* subject: "", -* predicate: "", -* object: "^^" -* } -* ] -* @return {void} Nothing -*/ -async function dispatch(lib, data) { - let { termObjectChangeSets, termObjectChangeSetsWithContext } = data; - - // Both arrays are the same length, so we can zip them together for easier processing - zippedChangeSets = termObjectChangeSets.map((o, i) => ({ - original: o, - withContext: termObjectChangeSetsWithContext && termObjectChangeSetsWithContext[i] - })); - - console.log(`Received ${zippedChangeSets.length} change sets`) - - for (let { original, withContext } of zippedChangeSets) { - - const {public: insertsOnPublic, target: insertsOnGraphs} = separateBetweenTargetAndPublic(original.inserts, withContext.inserts) - const {public: deletesOnPublic, target: deletesOnGraphs} = separateBetweenTargetAndPublic(original.deletes, withContext.deletes) - - await deleteFromPublicGraph(lib, deletesOnPublic); - await deleteFromSpecificGraphs(lib, deletesOnGraphs); - await insertIntoPublicGraph(lib, insertsOnPublic); - await insertIntoSpecificGraphs(lib, insertsOnGraphs); - - } -} - -function separateBetweenTargetAndPublic(changes, context) { - const changesOnPublic = new Set(); - const changesOnGraphs = {}; - for(let change of changes) { - const subject = change.subject; - const contextTriples = context.filter((context) => context.subject === subject); - const graphTriple = contextTriples.find( - (context) => context.predicate === '' - && context.object !== `<${LANDING_ZONE_GRAPH}>` - ) - const otherContextTriples = context.filter( - (context) => context.predicate !== '' - && context.predicate !== '' - && !(context.subject === subject && context.predicate === '') - ); - if(graphTriple) { - const graph = graphTriple.object.slice(1,-1); // We have to slice it to remove the "<" and ">" - if(change.object !== '') { - if(!changesOnGraphs[graph]) { - changesOnGraphs[graph] = new Set(); - } - changesOnGraphs[graph].add(`${change.subject} ${change.predicate} ${change.object}.`) - } - for(let triple of otherContextTriples) { - if(triple.object === '') continue; - if(!changesOnGraphs[graph]) { - changesOnGraphs[graph] = new Set(); - } - changesOnGraphs[graph].add(`${triple.subject} ${triple.predicate} ${triple.object}.`) - } - } - const typeTriple = contextTriples.find( - (context) => context.subject === subject - && context.predicate === '' - ); - if(!typeTriple) continue; - const type = typeTriple.object; - if(publicTypes.includes(type)) { - changesOnPublic.add(`${change.subject} ${change.predicate} ${change.object}.`) - for(let triple of otherContextTriples) { - changesOnPublic.add(`${triple.subject} ${triple.predicate} ${triple.object}.`) - } - } - } - return {public: changesOnPublic, target: changesOnGraphs} -} - -module.exports = { - dispatch -}; \ No newline at end of file diff --git a/config/clb-consumer/contact-data/initial-sync-dispatching.js b/config/clb-consumer/contact-data/initial-sync-dispatching.js deleted file mode 100644 index d3b037f..0000000 --- a/config/clb-consumer/contact-data/initial-sync-dispatching.js +++ /dev/null @@ -1,69 +0,0 @@ -const { batchedDbUpdate, moveDataAfterInitialSync } = require('./util'); -const { - BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES, - DIRECT_DATABASE_ENDPOINT, - MU_CALL_SCOPE_ID_INITIAL_SYNC, - BATCH_SIZE, - MAX_DB_RETRY_ATTEMPTS, - SLEEP_BETWEEN_BATCHES, - SLEEP_TIME_AFTER_FAILED_DB_OPERATION, - LANDING_ZONE_GRAPH, -} = require('./config'); - -const endpoint = BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES ? DIRECT_DATABASE_ENDPOINT : process.env.MU_SPARQL_ENDPOINT; - -/** -* Dispatch the fetched information to a target graph. -* @param { mu, muAuthSudo } lib - The provided libraries from the host service. -* @param { termObjects } data - The fetched quad information, which objects of serialized Terms -* [ { -* graph: "", -* subject: "", -* predicate: "", -* object: "^^" -* } -* ] -* @return {void} Nothing -*/ -async function dispatch(lib, data) { - const { mu, muAuthSudo } = lib; - const { termObjects } = data; - - // Steps: - // 1. Write the triples to the landing zone graph - without any mapping or filtering - // 2. One-time reasoning run with the full landing zone graph and write the results to the target graph (on-finish) - - if (BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES) { - console.warn(`Service configured to skip MU_AUTH!`); - } - console.log(`Using ${endpoint} to insert triples`); - - if (termObjects.length) { - const originalInsertTriples = termObjects.map(o => `${o.subject} ${o.predicate} ${o.object}.`); - - await batchedDbUpdate( - muAuthSudo.updateSudo, - LANDING_ZONE_GRAPH, - originalInsertTriples, - { 'mu-call-scope-id': MU_CALL_SCOPE_ID_INITIAL_SYNC }, - endpoint, - BATCH_SIZE, - MAX_DB_RETRY_ATTEMPTS, - SLEEP_BETWEEN_BATCHES, - SLEEP_TIME_AFTER_FAILED_DB_OPERATION - ); - } -} - -async function onFinishInitialIngest(lib,data) { - const { muAuthSudo } = lib; - - console.log(`!! On-finish triggered !!`); - - await moveDataAfterInitialSync(muAuthSudo.updateSudo, endpoint) -} - -module.exports = { - dispatch, - onFinishInitialIngest -}; \ No newline at end of file diff --git a/config/clb-consumer/contact-data/util.js b/config/clb-consumer/contact-data/util.js deleted file mode 100644 index 1e47cc5..0000000 --- a/config/clb-consumer/contact-data/util.js +++ /dev/null @@ -1,337 +0,0 @@ -const { - MAX_DB_RETRY_ATTEMPTS, - SLEEP_BETWEEN_BATCHES, - SLEEP_TIME_AFTER_FAILED_DB_OPERATION, - LANDING_ZONE_GRAPH, - BATCH_SIZE, -} = require('./config'); - -const prefixes = ` -PREFIX besluit: -PREFIX skos: -PREFIX lblodgeneriek: -PREFIX org: -PREFIX code: -PREFIX adms: -PREFIX generiek: -PREFIX ere: -PREFIX organisatie: -PREFIX mu: -PREFIX euvoc: -PREFIX prov: -PREFIX schema: -PREFIX locn: -PREFIX foaf: -PREFIX ext: -` - -async function batchedDbUpdate( - muUpdate, - graph, - triples, - extraHeaders, - endpoint, - batchSize, - maxAttempts, - sleepBetweenBatches = 1000, - sleepTimeOnFail = 1000, - operation = 'INSERT' -) { - for (let i = 0; i < triples.length; i += batchSize) { - console.log(`Inserting triples in batch: ${i}-${i + batchSize}`); - - const batch = triples.slice(i, i + batchSize).join('\n'); - - const insertCall = async () => { - await muUpdate(` -${operation} DATA { -GRAPH <${graph}> { -${batch} -} -} -`, extraHeaders, endpoint); - }; - - await operationWithRetry(insertCall, 0, maxAttempts, sleepTimeOnFail); - - console.log(`Sleeping before next query execution: ${sleepBetweenBatches}`); - await new Promise(r => setTimeout(r, sleepBetweenBatches)); - } -} - -async function operationWithRetry(callback, - attempt, - maxAttempts, - sleepTimeOnFail) { - try { - if (typeof callback === "function") - return await callback(); - else // Catch error from promise - not how I would do it normally, but allows re use of existing code. - return await callback; - } - catch (e) { - console.log(`Operation failed for ${callback.toString()}, attempt: ${attempt} of ${maxAttempts}`); - console.log(`Error: ${e}`); - console.log(`Sleeping ${sleepTimeOnFail} ms`); - - if (attempt >= maxAttempts) { - console.log(`Max attempts reached for ${callback.toString()}, giving up`); - throw e; - } - - await new Promise(r => setTimeout(r, sleepTimeOnFail)); - return operationWithRetry(callback, ++attempt, maxAttempts, sleepTimeOnFail); - } -} - - -async function insertIntoPublicGraph(lib, statements) { - console.log(`Inserting ${statements.length} statements into public graph`); - - await batchedDbUpdate( - lib.muAuthSudo.updateSudo, - 'http://mu.semte.ch/graphs/public', - Array.from(statements), - {}, - process.env.MU_SPARQL_ENDPOINT, - BATCH_SIZE, - MAX_DB_RETRY_ATTEMPTS, - SLEEP_BETWEEN_BATCHES, - SLEEP_TIME_AFTER_FAILED_DB_OPERATION, - 'INSERT'); -} - -async function insertIntoSpecificGraphs(lib, statementsWithGraphs) { - - for( let graph in statementsWithGraphs) { - console.log(`Inserting ${statementsWithGraphs[graph].length} statements into ${graph} graph`); - await batchedDbUpdate( - lib.muAuthSudo.updateSudo, - graph, - Array.from(statementsWithGraphs[graph]), - {}, - process.env.MU_SPARQL_ENDPOINT, - BATCH_SIZE, - MAX_DB_RETRY_ATTEMPTS, - SLEEP_BETWEEN_BATCHES, - SLEEP_TIME_AFTER_FAILED_DB_OPERATION, - 'INSERT'); - } - -} - -async function deleteFromPublicGraph(lib, statements) { - console.log(`Deleting ${statements.length} statements from public graph`); - - await batchedDbUpdate( - lib.muAuthSudo.updateSudo, - 'http://mu.semte.ch/graphs/public', - Array.from(statements), - {}, - process.env.MU_SPARQL_ENDPOINT, - BATCH_SIZE, - MAX_DB_RETRY_ATTEMPTS, - SLEEP_BETWEEN_BATCHES, - SLEEP_TIME_AFTER_FAILED_DB_OPERATION, - 'DELETE'); -} - -async function deleteFromSpecificGraphs(lib, statementsWithGraphs) { - - - for( let graph in statementsWithGraphs) { - console.log(`Deleting ${statementsWithGraphs[graph].length} statements from ${graph} graph`); - await batchedDbUpdate( - lib.muAuthSudo.updateSudo, - graph, - Array.from(statementsWithGraphs[graph]), - {}, - process.env.MU_SPARQL_ENDPOINT, - BATCH_SIZE, - MAX_DB_RETRY_ATTEMPTS, - SLEEP_BETWEEN_BATCHES, - SLEEP_TIME_AFTER_FAILED_DB_OPERATION, - 'DELETE'); - } - -} - - -async function moveDataAfterInitialSync(muUpdate, endpoint) { - // Move primary sites admin units - await muUpdate(` - ${prefixes} - INSERT { - GRAPH { - ?adminUnit org:hasPrimarySite ?site. - ?site ?pSite ?oSite. - ?contact ?pContact ?oContact. - ?address ?pAddress ?oAddress. - ?addressContact ?pAddressContact ?oAddressContact. - } - } WHERE { - GRAPH { - ?adminUnit a ?type. - } - GRAPH <${LANDING_ZONE_GRAPH}> { - ?adminUnit org:hasPrimarySite ?site. - ?site ?pSite ?oSite. - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - ?contact locn:address ?addressContact. - ?addressContact ?pAddressContact ?oAddressContact. - } - UNION - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - } - UNION - { - ?site organisatie:bestaatUit ?address. - ?address ?pAddress ?oAddress. - } - } - } - `, undefined, endpoint) - - // Move sites administrative units - await muUpdate(` - ${prefixes} - INSERT { - GRAPH { - ?adminUnit org:hasSite ?site. - ?site ?pSite ?oSite. - ?contact ?pContact ?oContact. - ?address ?pAddress ?oAddress. - ?addressContact ?pAddressContact ?oAddressContact. - } - } WHERE { - GRAPH { - ?adminUnit a ?type. - } - GRAPH <${LANDING_ZONE_GRAPH}> { - ?adminUnit org:hasSite ?site. - ?site ?pSite ?oSite. - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - ?contact locn:address ?addressContact. - ?addressContact ?pAddressContact ?oAddressContact. - } - UNION - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - } - UNION - { - ?site organisatie:bestaatUit ?address. - ?address ?pAddress ?oAddress. - } - } - } - `, undefined, endpoint) - - // Move primary sites worships - await muUpdate(` - ${prefixes} - INSERT { - GRAPH { - ?adminUnit org:hasPrimarySite ?site. - ?site ?pSite ?oSite. - ?contact ?pContact ?oContact. - ?address ?pAddress ?oAddress. - ?addressContact ?pAddressContact ?oAddressContact. - } - } WHERE { - GRAPH { - ?adminUnit a ?type. - } - GRAPH <${LANDING_ZONE_GRAPH}> { - ?adminUnit org:hasPrimarySite ?site. - ?site ?pSite ?oSite. - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - ?contact locn:address ?addressContact. - ?addressContact ?pAddressContact ?oAddressContact. - } - UNION - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - } - UNION - { - ?site organisatie:bestaatUit ?address. - ?address ?pAddress ?oAddress. - } - } - } - `, undefined, endpoint) - - // Move sites worships - await muUpdate(` - ${prefixes} - INSERT { - GRAPH { - ?adminUnit org:hasSite ?site. - ?site ?pSite ?oSite. - ?contact ?pContact ?oContact. - ?address ?pAddress ?oAddress. - ?addressContact ?pAddressContact ?oAddressContact. - } - } WHERE { - GRAPH { - ?adminUnit a ?type. - } - GRAPH <${LANDING_ZONE_GRAPH}> { - ?adminUnit org:hasSite ?site. - ?site ?pSite ?oSite. - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - ?contact locn:address ?addressContact. - ?addressContact ?pAddressContact ?oAddressContact. - } - UNION - { - ?site org:siteAddress ?contact. - ?contact ?pContact ?oContact. - } - UNION - { - ?site organisatie:bestaatUit ?address. - ?address ?pAddress ?oAddress. - } - } - } - `, undefined, endpoint) - - // Move sites worships - await muUpdate(` - ${prefixes} - INSERT { - GRAPH { - ?type a . - ?type ?a ?b. - } - } WHERE { - GRAPH <${LANDING_ZONE_GRAPH}> { - ?type a . - ?type ?a ?b. - } - } - `, undefined, endpoint) -} - -module.exports = { - batchedDbUpdate, - moveDataAfterInitialSync, - insertIntoPublicGraph, - deleteFromPublicGraph, - insertIntoSpecificGraphs, - deleteFromSpecificGraphs, -}; \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 1be9310..a540619 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -470,37 +470,6 @@ services: - triplestore:virtuoso logging: *default-logging -################################################################################ - # CLB CONSUMERS - ################################################################################ - clb-contact-data-consumer: - image: lblod/delta-consumer:0.0.18 - environment: - DCR_SYNC_BASE_URL: "https://dev.contactgegevens-loket.lblod.info/" - DCR_SERVICE_NAME: "clb-contact-data-consumer" - DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/ContactGegevensCacheGraphDump" - DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/contactData" - DCR_DELTA_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/contactDataDeltaFileSyncing" - DCR_JOB_CREATOR_URI: "http://data.lblod.info/services/id/clb-contact-data-consumer" - DCR_DISABLE_INITIAL_SYNC: "false" - BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES: "true" - DCR_SYNC_FILES_PATH: "/sync/contact-data/files" - BATCH_SIZE: 1000 - DCR_KEEP_DELTA_FILES: "true" - DCR_ENABLE_DELTA_CONTEXT: "true" - DCR_LANDING_ZONE_DATABASE: "triplestore" - DCR_LANDING_ZONE_GRAPH: "http://mu.semte.ch/graphs/landing-zone/clb-contact-data" - volumes: - - ./config/clb-consumer/contact-data:/config/triples-dispatching/custom-dispatching - - ./data/files/consumer-files/clb-contact-data:/consumer-files/ - restart: always - labels: - - "logging=true" - links: - - db:database - - triplestore:virtuoso - logging: *default-logging - ################################################################################ # DELTA CONSUMERS: END ################################################################################ From 74442fcdf69824fae56b3a99fe6bc81f378d7d6c Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 15 Oct 2024 17:12:38 +0200 Subject: [PATCH 36/64] chore: drop landing zone graph for removed CLB consumer --- .../2024/20241015150507-drop-graph-clb-consumer.sparql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 config/migrations/2024/20241015150507-drop-graph-clb-consumer.sparql diff --git a/config/migrations/2024/20241015150507-drop-graph-clb-consumer.sparql b/config/migrations/2024/20241015150507-drop-graph-clb-consumer.sparql new file mode 100644 index 0000000..4119853 --- /dev/null +++ b/config/migrations/2024/20241015150507-drop-graph-clb-consumer.sparql @@ -0,0 +1,4 @@ +# Note: the create statement is added because otherwise virtuoso throws an error +# on the drop because the graph was not explicitly made +CREATE SILENT GRAPH +DROP GRAPH From d687463c0dba2ed2cee0b56fe99ea7191b531799 Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 16 Oct 2024 12:51:08 +0200 Subject: [PATCH 37/64] feat: import modified CLB data These migrations add the contact data from CLB production that was modified in that app during the time it was available. These migrations perform the following actions, in the specified order: 1. Delete all contact data for the 8 modified sites 2. Import the data extracted from CLB production for the relevant organisations Done in separate migrations for worship and non-worship organisations. 3. Correct a phone number literal that contained spaces for some reason --- ...delete-contact-data-modified-in-clb.sparql | 62 ++++++ ...rod-contactdata-administrative-units.graph | 1 + ...-prod-contactdata-administrative-units.ttl | 185 ++++++++++++++++++ ...9161900-clb-prod-contactdata-worship.graph | 1 + ...009161900-clb-prod-contactdata-worship.ttl | 59 ++++++ ...-fix--remove-spaces-in-phone-number.sparql | 9 + 6 files changed, 317 insertions(+) create mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009143404-delete-contact-data-modified-in-clb.sparql create mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.graph create mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.ttl create mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.graph create mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.ttl create mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241011132019-fix--remove-spaces-in-phone-number.sparql diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009143404-delete-contact-data-modified-in-clb.sparql b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009143404-delete-contact-data-modified-in-clb.sparql new file mode 100644 index 0000000..6e84082 --- /dev/null +++ b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009143404-delete-contact-data-modified-in-clb.sparql @@ -0,0 +1,62 @@ +PREFIX org: +PREFIX organisatie: +PREFIX locn: +PREFIX besluit: + +DELETE { + GRAPH ?g { + ?site ?pSite ?oSite . + ?contact ?pContact ?oContact . + ?address ?pAddress ?oAddress . + ?addressContact ?pAddressContact ?oAddressContact . + } +} WHERE { + VALUES ?hasSite { + + + } + + FILTER (?site IN + ( + , + , + , + , + , + , + , + + )) + + GRAPH ?organisationGraph { + ?organisation ?hasSite ?site . + } + + VALUES ?organisationGraph { + + + + } + + GRAPH ?g { + ?site ?pSite ?oSite . + { + ?site org:siteAddress ?contact . + ?contact ?pContact ?oContact . + ?contact locn:address ?addressContact . + ?addressContact ?pAddressContact ?oAddressContact . + } UNION { + ?site org:siteAddress ?contact . + ?contact ?pContact ?oContact . + } UNION { + ?site organisatie:bestaatUit ?address . + ?address ?pAddress ?oAddress . + } + } + + VALUES ?g { + + + + } +} diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.graph b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.graph new file mode 100644 index 0000000..89df8c6 --- /dev/null +++ b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/administrative-unit diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.ttl b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.ttl new file mode 100644 index 0000000..79a9c8c --- /dev/null +++ b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.ttl @@ -0,0 +1,185 @@ +@prefix rdf: . +@prefix ns1: . +@prefix ns2: . +@prefix ns3: . +@prefix ns4: . +@prefix ns5: . +@prefix ns6: . +@prefix ns7: . +@prefix ns8: . +@prefix ns9: . +@prefix ns10: . +@prefix ns11: . +@prefix ns12: . +@prefix foaf: . + + + rdf:type ns1:ContactPoint ; + ns2:uuid "66914D256ABB62E36F847154" ; + ns1:contactType "Secondary" . + + rdf:type ns3:Address ; + ns2:uuid "5352f18dfed80644af9e3c98745bab32" ; + "5" ; + ns3:thoroughfare "Kerkstraat" ; + ns3:postCode "2560" ; + ns4:gemeentenaam "Nijlen" ; + ns3:fullAddress "Kerkstraat 5, 2560 Nijlen, Belgi\u00EB" ; + ns3:adminUnitL2 "Antwerpen" ; + ns4:land "Belgi\u00EB" ; + ns4:verwijstNaar . + + rdf:type ns3:Address ; + ns2:uuid "57fea19d-27ce-4ecb-b3f6-581ce1f067e7" ; + "2" ; + "7" ; + ns3:thoroughfare "Paradeplein" ; + ns3:postCode "2500" ; + ns4:gemeentenaam "Lier" ; + ns3:fullAddress "Paradeplein 2 7, 2500 Lier, Belgi\u00EB" ; + ns3:adminUnitL2 "Antwerpen" ; + ns4:land "Belgi\u00EB" . + + rdf:type ns3:Address ; + ns2:uuid "91eccb9c2abe72ed7127af3d2b09e645" ; + "1" ; + ns3:thoroughfare "Limburgplein" ; + ns3:postCode "3500" ; + ns4:gemeentenaam "Hasselt" ; + ns3:fullAddress "Limburgplein 1, 3500 Hasselt, Belgi\u00EB" ; + ns3:adminUnitL2 "Limburg" ; + ns4:land "Belgi\u00EB" . +ns5:a5f58992810c9e8b7337c2990be2fab8 + rdf:type ns3:Address ; + ns2:uuid "a5f58992810c9e8b7337c2990be2fab8" ; + "73" ; + ns3:thoroughfare "Heirbaan" ; + ns3:postCode "8570" ; + ns4:gemeentenaam "Anzegem" ; + ns3:fullAddress "Heirbaan 73, 8570 Anzegem, Belgi\u00EB" ; + ns3:adminUnitL2 "West-Vlaanderen" ; + ns4:land "Belgi\u00EB" ; + ns4:verwijstNaar . +ns5:a78088dff8a75de324a3c01102caf671 + rdf:type ns3:Address ; + ns2:uuid "a78088dff8a75de324a3c01102caf671" ; + "66" ; + ns3:thoroughfare "Leopoldstraat" ; + ns3:postCode "8580" ; + ns4:gemeentenaam "Avelgem" ; + ns3:fullAddress "Leopoldstraat 66, 8580 Avelgem, Belgi\u00EB" ; + ns3:adminUnitL2 "West-Vlaanderen" ; + ns4:land "Belgi\u00EB" ; + ns4:verwijstNaar . +ns5:e9590a8d28a9b77be05a7a789b3571e5 + rdf:type ns3:Address ; + ns2:uuid "e9590a8d28a9b77be05a7a789b3571e5" ; + "1A" ; + ns3:thoroughfare "Limburgplein" ; + ns3:postCode "3500" ; + ns4:gemeentenaam "Hasselt" ; + ns3:fullAddress "Limburgplein 1A, 3500 Hasselt, Belgi\u00EB" ; + ns3:adminUnitL2 "Limburg" ; + ns4:land "Belgi\u00EB" . + + ns6:hasPrimarySite ns7:d3a88c997bc377fd0172d7555ef2f154 . + + ns6:hasPrimarySite . +ns8:a33cb6e858ea9fdd5cc8a6f6f97850094ce8f312b961ec6bd775c3dc024e4801 + ns6:hasPrimarySite ns7:d5283487-d4eb-4e57-afef-de1de153b42f . + + ns6:hasPrimarySite . + + rdf:type ns6:Site ; + ns2:uuid "866ca7d5975c853890ba18bb189892c4" ; + ns6:siteAddress ns9:cd895859-617f-4679-9d41-5d9437133280 ; + ns10:bestaatUit ns5:e9590a8d28a9b77be05a7a789b3571e5 ; + ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . + + rdf:type ns6:Site ; + ns2:uuid "100a61965dc84e9b18a2dd1f1d7c81aa" ; + ns6:siteAddress , ; + ns10:bestaatUit ; + ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . + + ns6:hasPrimarySite . +ns8:b4aa8ca2a4daa74ef8297b0b4dba2ad292e73da5337e20c65066860279751307 + ns6:hasPrimarySite . + + rdf:type ns6:Site ; + ns2:uuid "9f0d58d2127987435056229003e18b56" ; + ns6:siteAddress , ns9:fee82ba7-ad64-4310-9257-a99cf52494b0 ; + ns10:bestaatUit ns5:a78088dff8a75de324a3c01102caf671 ; + ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . + + rdf:type ns6:Site ; + ns2:uuid "9d97ea7e82a9821a80c19e136afb2efc" ; + ns6:siteAddress , ; + ns10:bestaatUit ns5:a5f58992810c9e8b7337c2990be2fab8 ; + ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . +ns7:d3a88c997bc377fd0172d7555ef2f154 + rdf:type ns6:Site ; + ns2:uuid "d3a88c997bc377fd0172d7555ef2f154" ; + ns6:siteAddress ns9:f7e104a5-84b5-4982-9d3d-d4bee9508601 ; + ns10:bestaatUit ; + ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . +ns7:d5283487-d4eb-4e57-afef-de1de153b42f + rdf:type ns6:Site ; + ns2:uuid "d5283487-d4eb-4e57-afef-de1de153b42f" ; + ns6:siteAddress , ns9:f0dde9ef-4892-49d4-a8c9-2b5cac98b7c1 ; + ns10:bestaatUit ; + ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . + + rdf:type ns1:ContactPoint ; + ns2:uuid "5def8bef-2029-403d-b80e-28a23638fe63" ; + foaf:page "https://www.nijlen.be/sociaal-2" ; + ns1:contactType "Primary" ; + ns1:email "info.ocmw@nijlen.be" ; + ns1:telephone "tel:+32 3 410 02 11" . + + rdf:type ns1:ContactPoint ; + ns2:uuid "87ef1d4c-d92d-4834-9ac3-d4bb3c8b9ad4" ; + ns1:contactType "Secondary" . + + rdf:type ns1:ContactPoint ; + ns2:uuid "7e3e2754-efa1-4122-a56e-331b3cab7d2d" ; + foaf:page "https://www.anzegem.be" ; + ns1:contactType "Primary" ; + ns1:email "info@anzegem.be" ; + ns1:telephone "tel:+3256694440" . +ns9:cd895859-617f-4679-9d41-5d9437133280 + rdf:type ns1:ContactPoint ; + ns2:uuid "cd895859-617f-4679-9d41-5d9437133280" ; + foaf:page "https://www.hasselt.be/nl/ocmw-sociale-dienst" ; + ns1:contactType "Primary" ; + ns1:email "info@ocmwhasselt.be" ; + ns1:telephone "tel:+3280090280" . +ns9:f0dde9ef-4892-49d4-a8c9-2b5cac98b7c1 + rdf:type ns1:ContactPoint ; + ns2:uuid "f0dde9ef-4892-49d4-a8c9-2b5cac98b7c1" ; + foaf:page "https://www.lier.be/stedelijk-ontwikkelingsbedrijf-lier-solag" ; + ns1:contactType "Primary" ; + ns1:email "info@solag.be" ; + ns1:telephone "tel:+3238000341" . +ns9:f7e104a5-84b5-4982-9d3d-d4bee9508601 + rdf:type ns1:ContactPoint ; + ns2:uuid "f7e104a5-84b5-4982-9d3d-d4bee9508601" ; + foaf:page "https://www.hasselt.be" ; + ns1:contactType "Primary" ; + ns1:email "info@hasselt.be" ; + ns1:telephone "tel:+3211239000" . +ns9:fee82ba7-ad64-4310-9257-a99cf52494b0 + rdf:type ns1:ContactPoint ; + ns2:uuid "fee82ba7-ad64-4310-9257-a99cf52494b0" ; + foaf:page "https://www.avelgem.be" ; + ns1:contactType "Primary" ; + ns1:email "info@avelgem.be" ; + ns1:telephone "tel:+3256653030" . + + rdf:type ns1:ContactPoint ; + ns2:uuid "66F543EA074D265E9ED3FF10" ; + ns1:contactType "Secondary" . + + rdf:type ns1:ContactPoint ; + ns2:uuid "669148366ABB62E36F847153" ; + ns1:contactType "Secondary" . diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.graph b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.graph new file mode 100644 index 0000000..6685e9f --- /dev/null +++ b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.graph @@ -0,0 +1 @@ +http://mu.semte.ch/graphs/worship-service diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.ttl b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.ttl new file mode 100644 index 0000000..3a792b2 --- /dev/null +++ b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.ttl @@ -0,0 +1,59 @@ +@prefix rdf: . +@prefix ns1: . +@prefix ns2: . +@prefix ns3: . +@prefix ns4: . +@prefix ns5: . +@prefix ns6: . +@prefix ns7: . +@prefix ns8: . + + + rdf:type ns1:Address ; + ns2:uuid "63639DA88DE5818A7C9F439C" ; + "50" ; + ns1:thoroughfare "Charles de Costerlaan" ; + ns1:postCode "2050" ; + ns3:gemeentenaam "Antwerpen" ; + ns1:fullAddress "Charles de Costerlaan 50, 2050 Antwerpen, Belgi\u00EB" ; + ns1:adminUnitL2 "Antwerpen" ; + ns3:land "Belgi\u00EB" . + + rdf:type ns1:Address ; + ns2:uuid "88f69d7d4753a63ca666c035c574813d" ; + "44" ; + ns1:thoroughfare "Westkapelse Steenweg" ; + ns1:postCode "8380" ; + ns3:gemeentenaam "Brugge" ; + ns1:fullAddress "Westkapelse Steenweg 44, 8380 Brugge, Belgi\u00EB" ; + ns1:adminUnitL2 "West-Vlaanderen" ; + ns3:land "Belgi\u00EB" . + + ns4:hasPrimarySite . + + rdf:type ns4:Site ; + ns2:uuid "43557b6bd03abd95ad981f3f611777c5" ; + ns4:siteAddress ; + ns5:bestaatUit ; + ns6:vestigingstype ns7:f1381723dec42c0b6ba6492e41d6f5dd . + + ns4:hasPrimarySite . + + rdf:type ns4:Site ; + ns2:uuid "63639DA88DE5818A7C9F439D" ; + ns4:siteAddress , ; + ns5:bestaatUit ; + ns6:vestigingstype ns7:f1381723dec42c0b6ba6492e41d6f5dd . + + rdf:type ns8:ContactPoint ; + ns2:uuid "6130D091375CFC000A000018" ; + ns8:contactType "Primary" . + + rdf:type ns8:ContactPoint ; + ns2:uuid "63639DA78DE5818A7C9F439B" ; + ns8:contactType "Secondary" . + + rdf:type ns8:ContactPoint ; + ns2:uuid "63639DA78DE5818A7C9F439A" ; + ns8:contactType "Primary" ; + ns8:telephone "tel:+32468208676" . diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241011132019-fix--remove-spaces-in-phone-number.sparql b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241011132019-fix--remove-spaces-in-phone-number.sparql new file mode 100644 index 0000000..33c1ef7 --- /dev/null +++ b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241011132019-fix--remove-spaces-in-phone-number.sparql @@ -0,0 +1,9 @@ +DELETE { + GRAPH { + "tel:+32 3 410 02 11" . + } +} INSERT { + GRAPH { + "tel:+3234100211" . + } +} From 04b25fea7d289d80b400e576bded3877f9a9491c Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 23 Oct 2024 10:00:26 +0200 Subject: [PATCH 38/64] fix: remove incorrect change event A user entered a faulty change event, this migration removes it again. --- ...0241023075148-delete-change-event-dodoens.sparql | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 config/migrations/2024/20241023075148-delete-change-event-dodoens.sparql diff --git a/config/migrations/2024/20241023075148-delete-change-event-dodoens.sparql b/config/migrations/2024/20241023075148-delete-change-event-dodoens.sparql new file mode 100644 index 0000000..a2ebf8d --- /dev/null +++ b/config/migrations/2024/20241023075148-delete-change-event-dodoens.sparql @@ -0,0 +1,13 @@ +PREFIX mu: +PREFIX code: + +DELETE WHERE { + GRAPH { + ?changeEvent a ; + mu:uuid "66C494CB6ABCA6E6BF2DBB94" ; + code:veranderingsgebeurtenisResultaat ?changeEventResult ; + ?eventP ?eventO . + + ?changeEventResult ?resultP ?resultO . + } +} From 90f2cc26c5bcc78b5aa9f9d877f3963a419ead94 Mon Sep 17 00:00:00 2001 From: mirdono Date: Mon, 18 Nov 2024 13:34:15 +0100 Subject: [PATCH 39/64] chore: bump mu-search service Bump mu-search to the released 0.10.0 version, almost identical to the beta.5 used before except for a minor bugfix. --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 38dfe28..3c3cd89 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -508,7 +508,7 @@ services: # MU SEARCH ################################################################################ search: - image: semtech/mu-search:0.10.0-beta.5 + image: semtech/mu-search:0.10.0 links: - db:database restart: always From d66b0b5eeccbfc82e333a9990e2d2443b4cc76a0 Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 20 Nov 2024 18:43:38 +0100 Subject: [PATCH 40/64] chore: removed migrations that were executed locally Business wanted to re-enable the edit contact data earlier than the next release. Therefore, these migrations were executed locally on QA and PROD. --- ...delete-contact-data-modified-in-clb.sparql | 62 ------ ...rod-contactdata-administrative-units.graph | 1 - ...-prod-contactdata-administrative-units.ttl | 185 ------------------ ...9161900-clb-prod-contactdata-worship.graph | 1 - ...009161900-clb-prod-contactdata-worship.ttl | 59 ------ ...-fix--remove-spaces-in-phone-number.sparql | 9 - 6 files changed, 317 deletions(-) delete mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009143404-delete-contact-data-modified-in-clb.sparql delete mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.graph delete mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.ttl delete mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.graph delete mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.ttl delete mode 100644 config/migrations/2024/20241009143404-update-contact-data-from-clb/20241011132019-fix--remove-spaces-in-phone-number.sparql diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009143404-delete-contact-data-modified-in-clb.sparql b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009143404-delete-contact-data-modified-in-clb.sparql deleted file mode 100644 index 6e84082..0000000 --- a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009143404-delete-contact-data-modified-in-clb.sparql +++ /dev/null @@ -1,62 +0,0 @@ -PREFIX org: -PREFIX organisatie: -PREFIX locn: -PREFIX besluit: - -DELETE { - GRAPH ?g { - ?site ?pSite ?oSite . - ?contact ?pContact ?oContact . - ?address ?pAddress ?oAddress . - ?addressContact ?pAddressContact ?oAddressContact . - } -} WHERE { - VALUES ?hasSite { - - - } - - FILTER (?site IN - ( - , - , - , - , - , - , - , - - )) - - GRAPH ?organisationGraph { - ?organisation ?hasSite ?site . - } - - VALUES ?organisationGraph { - - - - } - - GRAPH ?g { - ?site ?pSite ?oSite . - { - ?site org:siteAddress ?contact . - ?contact ?pContact ?oContact . - ?contact locn:address ?addressContact . - ?addressContact ?pAddressContact ?oAddressContact . - } UNION { - ?site org:siteAddress ?contact . - ?contact ?pContact ?oContact . - } UNION { - ?site organisatie:bestaatUit ?address . - ?address ?pAddress ?oAddress . - } - } - - VALUES ?g { - - - - } -} diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.graph b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.graph deleted file mode 100644 index 89df8c6..0000000 --- a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.graph +++ /dev/null @@ -1 +0,0 @@ -http://mu.semte.ch/graphs/administrative-unit diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.ttl b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.ttl deleted file mode 100644 index 79a9c8c..0000000 --- a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161800-clb-prod-contactdata-administrative-units.ttl +++ /dev/null @@ -1,185 +0,0 @@ -@prefix rdf: . -@prefix ns1: . -@prefix ns2: . -@prefix ns3: . -@prefix ns4: . -@prefix ns5: . -@prefix ns6: . -@prefix ns7: . -@prefix ns8: . -@prefix ns9: . -@prefix ns10: . -@prefix ns11: . -@prefix ns12: . -@prefix foaf: . - - - rdf:type ns1:ContactPoint ; - ns2:uuid "66914D256ABB62E36F847154" ; - ns1:contactType "Secondary" . - - rdf:type ns3:Address ; - ns2:uuid "5352f18dfed80644af9e3c98745bab32" ; - "5" ; - ns3:thoroughfare "Kerkstraat" ; - ns3:postCode "2560" ; - ns4:gemeentenaam "Nijlen" ; - ns3:fullAddress "Kerkstraat 5, 2560 Nijlen, Belgi\u00EB" ; - ns3:adminUnitL2 "Antwerpen" ; - ns4:land "Belgi\u00EB" ; - ns4:verwijstNaar . - - rdf:type ns3:Address ; - ns2:uuid "57fea19d-27ce-4ecb-b3f6-581ce1f067e7" ; - "2" ; - "7" ; - ns3:thoroughfare "Paradeplein" ; - ns3:postCode "2500" ; - ns4:gemeentenaam "Lier" ; - ns3:fullAddress "Paradeplein 2 7, 2500 Lier, Belgi\u00EB" ; - ns3:adminUnitL2 "Antwerpen" ; - ns4:land "Belgi\u00EB" . - - rdf:type ns3:Address ; - ns2:uuid "91eccb9c2abe72ed7127af3d2b09e645" ; - "1" ; - ns3:thoroughfare "Limburgplein" ; - ns3:postCode "3500" ; - ns4:gemeentenaam "Hasselt" ; - ns3:fullAddress "Limburgplein 1, 3500 Hasselt, Belgi\u00EB" ; - ns3:adminUnitL2 "Limburg" ; - ns4:land "Belgi\u00EB" . -ns5:a5f58992810c9e8b7337c2990be2fab8 - rdf:type ns3:Address ; - ns2:uuid "a5f58992810c9e8b7337c2990be2fab8" ; - "73" ; - ns3:thoroughfare "Heirbaan" ; - ns3:postCode "8570" ; - ns4:gemeentenaam "Anzegem" ; - ns3:fullAddress "Heirbaan 73, 8570 Anzegem, Belgi\u00EB" ; - ns3:adminUnitL2 "West-Vlaanderen" ; - ns4:land "Belgi\u00EB" ; - ns4:verwijstNaar . -ns5:a78088dff8a75de324a3c01102caf671 - rdf:type ns3:Address ; - ns2:uuid "a78088dff8a75de324a3c01102caf671" ; - "66" ; - ns3:thoroughfare "Leopoldstraat" ; - ns3:postCode "8580" ; - ns4:gemeentenaam "Avelgem" ; - ns3:fullAddress "Leopoldstraat 66, 8580 Avelgem, Belgi\u00EB" ; - ns3:adminUnitL2 "West-Vlaanderen" ; - ns4:land "Belgi\u00EB" ; - ns4:verwijstNaar . -ns5:e9590a8d28a9b77be05a7a789b3571e5 - rdf:type ns3:Address ; - ns2:uuid "e9590a8d28a9b77be05a7a789b3571e5" ; - "1A" ; - ns3:thoroughfare "Limburgplein" ; - ns3:postCode "3500" ; - ns4:gemeentenaam "Hasselt" ; - ns3:fullAddress "Limburgplein 1A, 3500 Hasselt, Belgi\u00EB" ; - ns3:adminUnitL2 "Limburg" ; - ns4:land "Belgi\u00EB" . - - ns6:hasPrimarySite ns7:d3a88c997bc377fd0172d7555ef2f154 . - - ns6:hasPrimarySite . -ns8:a33cb6e858ea9fdd5cc8a6f6f97850094ce8f312b961ec6bd775c3dc024e4801 - ns6:hasPrimarySite ns7:d5283487-d4eb-4e57-afef-de1de153b42f . - - ns6:hasPrimarySite . - - rdf:type ns6:Site ; - ns2:uuid "866ca7d5975c853890ba18bb189892c4" ; - ns6:siteAddress ns9:cd895859-617f-4679-9d41-5d9437133280 ; - ns10:bestaatUit ns5:e9590a8d28a9b77be05a7a789b3571e5 ; - ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . - - rdf:type ns6:Site ; - ns2:uuid "100a61965dc84e9b18a2dd1f1d7c81aa" ; - ns6:siteAddress , ; - ns10:bestaatUit ; - ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . - - ns6:hasPrimarySite . -ns8:b4aa8ca2a4daa74ef8297b0b4dba2ad292e73da5337e20c65066860279751307 - ns6:hasPrimarySite . - - rdf:type ns6:Site ; - ns2:uuid "9f0d58d2127987435056229003e18b56" ; - ns6:siteAddress , ns9:fee82ba7-ad64-4310-9257-a99cf52494b0 ; - ns10:bestaatUit ns5:a78088dff8a75de324a3c01102caf671 ; - ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . - - rdf:type ns6:Site ; - ns2:uuid "9d97ea7e82a9821a80c19e136afb2efc" ; - ns6:siteAddress , ; - ns10:bestaatUit ns5:a5f58992810c9e8b7337c2990be2fab8 ; - ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . -ns7:d3a88c997bc377fd0172d7555ef2f154 - rdf:type ns6:Site ; - ns2:uuid "d3a88c997bc377fd0172d7555ef2f154" ; - ns6:siteAddress ns9:f7e104a5-84b5-4982-9d3d-d4bee9508601 ; - ns10:bestaatUit ; - ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . -ns7:d5283487-d4eb-4e57-afef-de1de153b42f - rdf:type ns6:Site ; - ns2:uuid "d5283487-d4eb-4e57-afef-de1de153b42f" ; - ns6:siteAddress , ns9:f0dde9ef-4892-49d4-a8c9-2b5cac98b7c1 ; - ns10:bestaatUit ; - ns11:vestigingstype ns12:f1381723dec42c0b6ba6492e41d6f5dd . - - rdf:type ns1:ContactPoint ; - ns2:uuid "5def8bef-2029-403d-b80e-28a23638fe63" ; - foaf:page "https://www.nijlen.be/sociaal-2" ; - ns1:contactType "Primary" ; - ns1:email "info.ocmw@nijlen.be" ; - ns1:telephone "tel:+32 3 410 02 11" . - - rdf:type ns1:ContactPoint ; - ns2:uuid "87ef1d4c-d92d-4834-9ac3-d4bb3c8b9ad4" ; - ns1:contactType "Secondary" . - - rdf:type ns1:ContactPoint ; - ns2:uuid "7e3e2754-efa1-4122-a56e-331b3cab7d2d" ; - foaf:page "https://www.anzegem.be" ; - ns1:contactType "Primary" ; - ns1:email "info@anzegem.be" ; - ns1:telephone "tel:+3256694440" . -ns9:cd895859-617f-4679-9d41-5d9437133280 - rdf:type ns1:ContactPoint ; - ns2:uuid "cd895859-617f-4679-9d41-5d9437133280" ; - foaf:page "https://www.hasselt.be/nl/ocmw-sociale-dienst" ; - ns1:contactType "Primary" ; - ns1:email "info@ocmwhasselt.be" ; - ns1:telephone "tel:+3280090280" . -ns9:f0dde9ef-4892-49d4-a8c9-2b5cac98b7c1 - rdf:type ns1:ContactPoint ; - ns2:uuid "f0dde9ef-4892-49d4-a8c9-2b5cac98b7c1" ; - foaf:page "https://www.lier.be/stedelijk-ontwikkelingsbedrijf-lier-solag" ; - ns1:contactType "Primary" ; - ns1:email "info@solag.be" ; - ns1:telephone "tel:+3238000341" . -ns9:f7e104a5-84b5-4982-9d3d-d4bee9508601 - rdf:type ns1:ContactPoint ; - ns2:uuid "f7e104a5-84b5-4982-9d3d-d4bee9508601" ; - foaf:page "https://www.hasselt.be" ; - ns1:contactType "Primary" ; - ns1:email "info@hasselt.be" ; - ns1:telephone "tel:+3211239000" . -ns9:fee82ba7-ad64-4310-9257-a99cf52494b0 - rdf:type ns1:ContactPoint ; - ns2:uuid "fee82ba7-ad64-4310-9257-a99cf52494b0" ; - foaf:page "https://www.avelgem.be" ; - ns1:contactType "Primary" ; - ns1:email "info@avelgem.be" ; - ns1:telephone "tel:+3256653030" . - - rdf:type ns1:ContactPoint ; - ns2:uuid "66F543EA074D265E9ED3FF10" ; - ns1:contactType "Secondary" . - - rdf:type ns1:ContactPoint ; - ns2:uuid "669148366ABB62E36F847153" ; - ns1:contactType "Secondary" . diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.graph b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.graph deleted file mode 100644 index 6685e9f..0000000 --- a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.graph +++ /dev/null @@ -1 +0,0 @@ -http://mu.semte.ch/graphs/worship-service diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.ttl b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.ttl deleted file mode 100644 index 3a792b2..0000000 --- a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241009161900-clb-prod-contactdata-worship.ttl +++ /dev/null @@ -1,59 +0,0 @@ -@prefix rdf: . -@prefix ns1: . -@prefix ns2: . -@prefix ns3: . -@prefix ns4: . -@prefix ns5: . -@prefix ns6: . -@prefix ns7: . -@prefix ns8: . - - - rdf:type ns1:Address ; - ns2:uuid "63639DA88DE5818A7C9F439C" ; - "50" ; - ns1:thoroughfare "Charles de Costerlaan" ; - ns1:postCode "2050" ; - ns3:gemeentenaam "Antwerpen" ; - ns1:fullAddress "Charles de Costerlaan 50, 2050 Antwerpen, Belgi\u00EB" ; - ns1:adminUnitL2 "Antwerpen" ; - ns3:land "Belgi\u00EB" . - - rdf:type ns1:Address ; - ns2:uuid "88f69d7d4753a63ca666c035c574813d" ; - "44" ; - ns1:thoroughfare "Westkapelse Steenweg" ; - ns1:postCode "8380" ; - ns3:gemeentenaam "Brugge" ; - ns1:fullAddress "Westkapelse Steenweg 44, 8380 Brugge, Belgi\u00EB" ; - ns1:adminUnitL2 "West-Vlaanderen" ; - ns3:land "Belgi\u00EB" . - - ns4:hasPrimarySite . - - rdf:type ns4:Site ; - ns2:uuid "43557b6bd03abd95ad981f3f611777c5" ; - ns4:siteAddress ; - ns5:bestaatUit ; - ns6:vestigingstype ns7:f1381723dec42c0b6ba6492e41d6f5dd . - - ns4:hasPrimarySite . - - rdf:type ns4:Site ; - ns2:uuid "63639DA88DE5818A7C9F439D" ; - ns4:siteAddress , ; - ns5:bestaatUit ; - ns6:vestigingstype ns7:f1381723dec42c0b6ba6492e41d6f5dd . - - rdf:type ns8:ContactPoint ; - ns2:uuid "6130D091375CFC000A000018" ; - ns8:contactType "Primary" . - - rdf:type ns8:ContactPoint ; - ns2:uuid "63639DA78DE5818A7C9F439B" ; - ns8:contactType "Secondary" . - - rdf:type ns8:ContactPoint ; - ns2:uuid "63639DA78DE5818A7C9F439A" ; - ns8:contactType "Primary" ; - ns8:telephone "tel:+32468208676" . diff --git a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241011132019-fix--remove-spaces-in-phone-number.sparql b/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241011132019-fix--remove-spaces-in-phone-number.sparql deleted file mode 100644 index 33c1ef7..0000000 --- a/config/migrations/2024/20241009143404-update-contact-data-from-clb/20241011132019-fix--remove-spaces-in-phone-number.sparql +++ /dev/null @@ -1,9 +0,0 @@ -DELETE { - GRAPH { - "tel:+32 3 410 02 11" . - } -} INSERT { - GRAPH { - "tel:+3234100211" . - } -} From 86c2917396e958fcd6efe2b44539629074a5ddcf Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 26 Nov 2024 17:19:13 +0100 Subject: [PATCH 41/64] chore: move db-cleanup configuration Moved the `db-cleanup` configuration up so the two migration services are right after each other again. --- docker-compose.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3c3cd89..28a1da8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -51,6 +51,15 @@ services: - "logging=true" restart: always logging: *default-logging + db-cleanup: + image: lblod/db-cleanup-service:0.5.1 + environment: + MU_SPARQL_ENDPOINT: "http://db:8890/sparql" + CRON_PATTERN: "23 */6 * * *" + labels: + - "logging=true" + restart: always + logging: *default-logging migrations: image: semtech/mu-migrations-service:0.7.0 links: @@ -61,15 +70,6 @@ services: - "logging=true" restart: always logging: *default-logging - db-cleanup: - image: lblod/db-cleanup-service:0.5.1 - environment: - MU_SPARQL_ENDPOINT: "http://db:8890/sparql" - CRON_PATTERN: "23 */6 * * *" - labels: - - "logging=true" - restart: always - logging: *default-logging migrations-triggering-indexing: image: semtech/mu-migrations-service:0.8.0 links: From 7964fd78794e7da54632ab5275848b018be83179 Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 26 Nov 2024 17:21:09 +0100 Subject: [PATCH 42/64] chore: bump services - identifier to v1.10.3 - migrations and migrations-triggering-indexing to v0.9.0 - resource to v1.25.0 - file to v3.4.0 --- docker-compose.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 28a1da8..50298d1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,7 +8,7 @@ x-logging: &default-logging services: identifier: - image: semtech/mu-identifier:1.10.1 + image: semtech/mu-identifier:1.10.3 environment: DEFAULT_MU_AUTH_ALLOWED_GROUPS_HEADER: '[{"variables":[],"name":"public"}]' SESSION_COOKIE_SECURE: "on" @@ -61,7 +61,7 @@ services: restart: always logging: *default-logging migrations: - image: semtech/mu-migrations-service:0.7.0 + image: semtech/mu-migrations-service:0.9.0 links: - triplestore:database volumes: @@ -71,7 +71,7 @@ services: restart: always logging: *default-logging migrations-triggering-indexing: - image: semtech/mu-migrations-service:0.8.0 + image: semtech/mu-migrations-service:0.9.0 links: - db:database volumes: @@ -81,7 +81,7 @@ services: restart: always logging: *default-logging resource: - image: semtech/mu-cl-resources:1.24.0 + image: semtech/mu-cl-resources:1.25.0 environment: CACHE_CLEAR_PATH: "http://cache/.mu/clear-keys" links: @@ -211,7 +211,7 @@ services: restart: always logging: *default-logging file: - image: semtech/mu-file-service:3.2.0 + image: semtech/mu-file-service:3.4.0 volumes: - ./data/files:/share links: From c52ff235664b1b74e3d7bda3079cc6ad735ea31a Mon Sep 17 00:00:00 2001 From: mirdono Date: Fri, 29 Nov 2024 11:30:25 +0100 Subject: [PATCH 43/64] chore: downgrade mu-cl-resources mu-cl-resources v1.25.0 contains a bug[1], downgrading back to v1.24.0 for now. [1]: https://github.com/mu-semtech/mu-cl-resources/issues/38 --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 50298d1..ead0424 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -81,7 +81,7 @@ services: restart: always logging: *default-logging resource: - image: semtech/mu-cl-resources:1.25.0 + image: semtech/mu-cl-resources:1.24.0 environment: CACHE_CLEAR_PATH: "http://cache/.mu/clear-keys" links: From 34ec459382db149854cdc394331e5b3673d8acde Mon Sep 17 00:00:00 2001 From: Claire Lovisa Date: Wed, 11 Dec 2024 13:59:27 +0100 Subject: [PATCH 44/64] Bump construct-administrative-unit-relationships --- docker-compose.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ead0424..51e6480 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -266,10 +266,7 @@ services: restart: always logging: *default-logging construct-organization-relationships: - image: lblod/construct-organization-relationships-service:1.0.2 - environment: - START_DATE_WORSHIP_GOVERNING_BODY: "2023-04-01T00:00:00" - END_DATE_WORSHIP_GOVERNING_BODY: "2026-03-31T00:00:00" + image: lblod/construct-organization-relationships-service:1.0.3 links: - db:database labels: From 04f01f8302ae6073c9e50d1e2d1048b83cbd4329 Mon Sep 17 00:00:00 2001 From: Riad Abdallah Date: Thu, 12 Dec 2024 17:42:26 +0100 Subject: [PATCH 45/64] Set AGB Stekene's org status to `Niet-Actief` --- .../20241212174128-archive-agb-stekene.sparql | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 config/migrations/2024/20241212174128-archive-agb-stekene.sparql diff --git a/config/migrations/2024/20241212174128-archive-agb-stekene.sparql b/config/migrations/2024/20241212174128-archive-agb-stekene.sparql new file mode 100644 index 0000000..96884b0 --- /dev/null +++ b/config/migrations/2024/20241212174128-archive-agb-stekene.sparql @@ -0,0 +1,15 @@ +DELETE { + GRAPH ?g { + ?orgStatus . + } +} +INSERT { + GRAPH ?g { + . # "Niet-Actief" Status + } +} +WHERE { + GRAPH ?g { + ?orgStatus . + } +} From 432d866b7b510e6864e5ac7d0db636f2c7a9bd4f Mon Sep 17 00:00:00 2001 From: Riad Abdallah Date: Thu, 12 Dec 2024 20:21:09 +0100 Subject: [PATCH 46/64] Remove empty URIs --- ...ove-empty-uris-received-by-kalliope.sparql | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 config/migrations/2024/20241212201809-remove-empty-uris-received-by-kalliope.sparql diff --git a/config/migrations/2024/20241212201809-remove-empty-uris-received-by-kalliope.sparql b/config/migrations/2024/20241212201809-remove-empty-uris-received-by-kalliope.sparql new file mode 100644 index 0000000..7281c50 --- /dev/null +++ b/config/migrations/2024/20241212201809-remove-empty-uris-received-by-kalliope.sparql @@ -0,0 +1,22 @@ +DELETE { + GRAPH ?g { + ?org ?orgP ?orgO . + } +} +WHERE { + VALUES ?org { + + + + + + + + + + } + + GRAPH ?g { + ?org ?orgP ?orgO . + } +} From fd5844c319e180dd7a35c97538818f909a491079 Mon Sep 17 00:00:00 2001 From: felix Date: Fri, 3 Jan 2025 11:53:24 +0100 Subject: [PATCH 47/64] Update migration to remove dangling triple for eenheid. -> This assumes the migration hasn't run on any 'deployed' environment. --- .../20241212201809-remove-empty-uris-received-by-kalliope.sparql | 1 + 1 file changed, 1 insertion(+) diff --git a/config/migrations/2024/20241212201809-remove-empty-uris-received-by-kalliope.sparql b/config/migrations/2024/20241212201809-remove-empty-uris-received-by-kalliope.sparql index 7281c50..7bf7762 100644 --- a/config/migrations/2024/20241212201809-remove-empty-uris-received-by-kalliope.sparql +++ b/config/migrations/2024/20241212201809-remove-empty-uris-received-by-kalliope.sparql @@ -14,6 +14,7 @@ WHERE { + } GRAPH ?g { From 1f7a754eb971f7f55070786c58b59d2b02b54194 Mon Sep 17 00:00:00 2001 From: felix Date: Fri, 3 Jan 2025 12:17:42 +0100 Subject: [PATCH 48/64] Remove comment migration, so we can use the mu-auth version to migrate the file --- .../migrations/2024/20241212174128-archive-agb-stekene.sparql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/migrations/2024/20241212174128-archive-agb-stekene.sparql b/config/migrations/2024/20241212174128-archive-agb-stekene.sparql index 96884b0..53798d4 100644 --- a/config/migrations/2024/20241212174128-archive-agb-stekene.sparql +++ b/config/migrations/2024/20241212174128-archive-agb-stekene.sparql @@ -5,7 +5,7 @@ DELETE { } INSERT { GRAPH ?g { - . # "Niet-Actief" Status + . } } WHERE { From 945faf87612e7b52ab6b7882cf997f825768d80a Mon Sep 17 00:00:00 2001 From: felix Date: Fri, 3 Jan 2025 12:20:15 +0100 Subject: [PATCH 49/64] move migrations to trigger-re-index-migration Don't forget to `drc restart migrations-triggering-indexing` --- .../2024/20241212174128-archive-agb-stekene.sparql | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename config/{migrations => migrations-triggering-indexing}/2024/20241212174128-archive-agb-stekene.sparql (100%) diff --git a/config/migrations/2024/20241212174128-archive-agb-stekene.sparql b/config/migrations-triggering-indexing/2024/20241212174128-archive-agb-stekene.sparql similarity index 100% rename from config/migrations/2024/20241212174128-archive-agb-stekene.sparql rename to config/migrations-triggering-indexing/2024/20241212174128-archive-agb-stekene.sparql From 090a69fd3fba384385bf728e7f092e7328702665 Mon Sep 17 00:00:00 2001 From: mirdono Date: Thu, 9 Jan 2025 19:31:12 +0100 Subject: [PATCH 50/64] feat: allow local migrations that trigger indexing Support for environment-local migrations that trigger indexing. This is similar to the local migrations for the regular `migrations` service. --- .gitignore | 1 + config/migrations-triggering-indexing/local/.gitkeep | 0 config/migrations-triggering-indexing/local/README.md | 3 +++ 3 files changed, 4 insertions(+) create mode 100644 config/migrations-triggering-indexing/local/.gitkeep create mode 100644 config/migrations-triggering-indexing/local/README.md diff --git a/.gitignore b/.gitignore index 2ec899d..a06be4d 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ docker-compose.override.yml /config/migrations/private-data/* /config/migrations/local/* +/config/migrations-triggering-indexing/local/* /config/proxy/nginx.htpasswd diff --git a/config/migrations-triggering-indexing/local/.gitkeep b/config/migrations-triggering-indexing/local/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config/migrations-triggering-indexing/local/README.md b/config/migrations-triggering-indexing/local/README.md new file mode 100644 index 0000000..6bf75c7 --- /dev/null +++ b/config/migrations-triggering-indexing/local/README.md @@ -0,0 +1,3 @@ +# Motivation + +This folder is designed to contain migration files specific to a specific deployed instance of the app. These files will be ignored by git. The typical use case for this folder includes migrations containing sensitive data or those related to a re-sync of consumers. Migrations that should be applied to all instances of the app should be stored outside of this folder, but within the 'migrations-triggering-indexing' folder. From 5ea8bfc46b4fbb075767874deeddbe6d731b60b2 Mon Sep 17 00:00:00 2001 From: Riad Abdallah Date: Thu, 9 Jan 2025 22:14:15 +0100 Subject: [PATCH 51/64] Completely remove `AGB Stekene` data A previous PR changed the org's status only; this PR completely removes its data. --- .../20250109200145-archive-agb-stekene.sparql | 196 ++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 config/migrations-triggering-indexing/2025/20250109200145-archive-agb-stekene.sparql diff --git a/config/migrations-triggering-indexing/2025/20250109200145-archive-agb-stekene.sparql b/config/migrations-triggering-indexing/2025/20250109200145-archive-agb-stekene.sparql new file mode 100644 index 0000000..dbceb14 --- /dev/null +++ b/config/migrations-triggering-indexing/2025/20250109200145-archive-agb-stekene.sparql @@ -0,0 +1,196 @@ +DELETE { + GRAPH { + ?bestuursorganen ?bestuursorganenP ?bestuursorganenO . + } +} +WHERE { + VALUES ?bestuursorganen { + + + + + } + + GRAPH { + ?bestuursorganen ?bestuursorganenP ?bestuursorganenO . + } +} + +; + +DELETE { + GRAPH { + ?bestuursorganenInTijd ?bestuursorganenInTijdP ?bestuursorganenInTijdO . + } +} +WHERE { + VALUES ?bestuursorganenInTijd { + + + + + } + + GRAPH { + ?bestuursorganenInTijd ?bestuursorganenInTijdP ?bestuursorganenInTijdO . + } +} + +; + +DELETE { + GRAPH { + ?identifier ?identifierP ?identifierO . + } +} +WHERE { + VALUES ?identifier { + + + + } + + GRAPH { + ?identifier ?identifierP ?identifierO . + } +} + +; + +DELETE { + GRAPH { + ?structuredIdentifier ?structuredIdentifierP ?structuredIdentifierO . + } +} +WHERE { + VALUES ?structuredIdentifier { + + + + } + + GRAPH { + ?structuredIdentifier ?structuredIdentifierP ?structuredIdentifierO . + } +} + +; + +DELETE { + GRAPH { + ?site ?siteP ?siteO . + } +} +WHERE { + VALUES ?site { + + } + + GRAPH { + ?site ?siteP ?siteO . + } +} + +; + +DELETE { + GRAPH { + ?address ?addressP ?addressO . + } +} +WHERE { + VALUES ?address { + + } + + GRAPH { + ?address ?addressP ?addressO . + } +} + +; + +DELETE { + GRAPH { + ?contactPoint ?contactPointP ?contactPointO . + } +} +WHERE { + VALUES ?contactPoint { + + + } + + GRAPH { + ?contactPoint ?contactPointP ?contactPointO . + } +} + +; + +DELETE { + GRAPH { + ?parentOrganization ?organization . + } +} +WHERE { + BIND( AS ?organization) + BIND( AS ?parentOrganization) + + GRAPH { + ?parentOrganization ?organization . + } +} + +; + +DELETE { + GRAPH { + ?parentOrganization ?organization . + } +} +WHERE { + BIND( AS ?organization) + BIND( AS ?parentOrganization) + + GRAPH { + ?parentOrganization ?organization . + } +} + +; + +DELETE { + GRAPH { + ?membership ?p ?o. + } +} +WHERE { + BIND( AS ?organization) + + VALUES ?membershipP { + + + } + + GRAPH { + ?membership a ; + ?membershipP ?organization ; + ?p ?o . + } +} + +; + +DELETE { + GRAPH { + ?organization ?organizationP ?organizationO . + } +} +WHERE { + BIND( AS ?organization) + + GRAPH { + ?organization ?organizationP ?organizationO . + } +} From 71b8b636c242ad853eb153acc4626dbf6fe98328 Mon Sep 17 00:00:00 2001 From: Riad Abdallah Date: Fri, 17 Jan 2025 16:38:36 +0100 Subject: [PATCH 52/64] Update CHANGELOG --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b533746..6b8c005 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,11 @@ # Changelog +## Unreleased +### Backend +- Completely remove AGB Stekene's data. [OP-3409] +### Deploy Commands +``` +drc restart migrations-triggering-indexing && drc logs -ft --tail=200 migrations-triggering-indexing +``` ## 1.28.4 (2025-01-16) ### Backend #### Data From d70becf88f08f14cdcaf9866f57398ec25ffa9d0 Mon Sep 17 00:00:00 2001 From: Riad Abdallah Date: Fri, 17 Jan 2025 16:40:47 +0100 Subject: [PATCH 53/64] Add note on DEV-specific migration --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b8c005..f44e8e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,9 @@ ## Unreleased ### Backend - Completely remove AGB Stekene's data. [OP-3409] -### Deploy Commands +### Deploy Notes +- Migration listed in [this comment](https://github.com/lblod/app-organization-portal/pull/491#issuecomment-2587185027) must run on the DEV environment. +#### Docker Commands ``` drc restart migrations-triggering-indexing && drc logs -ft --tail=200 migrations-triggering-indexing ``` From 8e311c6bab95113f3a266fda173cdcc8d436295c Mon Sep 17 00:00:00 2001 From: Boris De Vloed Date: Fri, 24 Jan 2025 11:28:41 +0100 Subject: [PATCH 54/64] remove province and commune classifications from admin graph --- ...0000-delete-duplicate-classifications.sparql | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 config/migrations/2025/20250124100000-delete-duplicate-classifications.sparql diff --git a/config/migrations/2025/20250124100000-delete-duplicate-classifications.sparql b/config/migrations/2025/20250124100000-delete-duplicate-classifications.sparql new file mode 100644 index 0000000..5d0bf50 --- /dev/null +++ b/config/migrations/2025/20250124100000-delete-duplicate-classifications.sparql @@ -0,0 +1,17 @@ +PREFIX besluit: +PREFIX org: +PREFIX skos: + +DELETE { + GRAPH { + ?adminUnit org:classification ?c + } +} + +WHERE { + GRAPH { + ?adminUnit org:classification ?c + } + ?c skos:prefLabel ?l . + FILTER (?l IN ("Gemeente", "Provincie")) +} \ No newline at end of file From 3cd6c2c7f7c67f30db29187bbc367bcd921e1c3d Mon Sep 17 00:00:00 2001 From: Boris De Vloed Date: Fri, 24 Jan 2025 13:03:40 +0100 Subject: [PATCH 55/64] updated changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63e71ba..5bb83b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased ### Backend - Completely remove AGB Stekene's data. [OP-3409] +- Remove gemeente and provincie classifications from admin unit graph [OP-3393] + ### Deploy Notes - Migration listed in [this comment](https://github.com/lblod/app-organization-portal/pull/491#issuecomment-2587185027) must run on the DEV environment. #### Docker Commands From 2666301048cc4d70d2a9a4d5928c0758c093861e Mon Sep 17 00:00:00 2001 From: mirdono Date: Wed, 22 Jan 2025 12:04:00 +0100 Subject: [PATCH 56/64] chore: align search service configuration for dev and prod This makes diff'ing the dev and prod configurations for the `search` service slightly more readable. - use same order of eager index entries with prod confiuration - remove an extra normalizer setting in the dev config - remove duplicate person id index - correct property name in identifier mappings - add missing `first_name_used` mappings - order properties and mappings consistently across file --- config/search/config.json | 231 +++++++++++++++++++--------------- config/search/dev/config.json | 226 ++++++++++++++++++--------------- 2 files changed, 255 insertions(+), 202 deletions(-) diff --git a/config/search/config.json b/config/search/config.json index 3a5d67e..a9dd6f4 100644 --- a/config/search/config.json +++ b/config/search/config.json @@ -92,22 +92,18 @@ "http://data.lblod.info/vocabularies/erediensten/EredienstMandataris" ], "properties": { - "given_name": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://xmlns.com/foaf/0.1/givenName" - ], "person_id": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "http://mu.semte.ch/vocabularies/core/uuid" ], - "person_uuid": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://mu.semte.ch/vocabularies/core/uuid" - ], "family_name": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "http://xmlns.com/foaf/0.1/familyName" ], + "given_name": [ + "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", + "http://xmlns.com/foaf/0.1/givenName" + ], "first_name_used": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam" @@ -166,6 +162,14 @@ }, "mappings": { "properties": { + "person_id": { + "type": "text", + "fields": { + "field": { + "type": "keyword" + } + } + }, "family_name": { "type": "text", "fields": { @@ -175,14 +179,6 @@ } } }, - "id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, "given_name": { "type": "text", "fields": { @@ -192,10 +188,7 @@ } } }, - "organization_id": { - "type": "text" - }, - "organization_classification": { + "first_name_used": { "type": "text", "fields": { "field": { @@ -204,7 +197,13 @@ } } }, - "organization_province": { + "end_date": { + "type": "date" + }, + "organization_id": { + "type": "text" + }, + "organization_classification": { "type": "text", "fields": { "field": { @@ -231,6 +230,15 @@ } } }, + "organization_province": { + "type": "text", + "fields": { + "field": { + "type": "keyword", + "normalizer": "custom_sort_normalizer" + } + } + }, "position_id": { "type": "text" }, @@ -242,9 +250,6 @@ "normalizer": "custom_sort_normalizer" } } - }, - "end_date": { - "type": "date" } } } @@ -254,22 +259,18 @@ "on_path": "functionaries", "rdf_type": "http://data.lblod.info/vocabularies/leidinggevenden/Functionaris", "properties": { - "given_name": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://xmlns.com/foaf/0.1/givenName" - ], "person_id": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "http://mu.semte.ch/vocabularies/core/uuid" ], - "person_uuid": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://mu.semte.ch/vocabularies/core/uuid" - ], "family_name": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "http://xmlns.com/foaf/0.1/familyName" ], + "given_name": [ + "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", + "http://xmlns.com/foaf/0.1/givenName" + ], "first_name_used": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam" @@ -328,6 +329,14 @@ }, "mappings": { "properties": { + "person_id": { + "type": "text", + "fields": { + "field": { + "type": "keyword" + } + } + }, "family_name": { "type": "text", "fields": { @@ -337,14 +346,6 @@ } } }, - "id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, "given_name": { "type": "text", "fields": { @@ -354,10 +355,7 @@ } } }, - "organization_id": { - "type": "text" - }, - "organization_classification": { + "first_name_used": { "type": "text", "fields": { "field": { @@ -366,7 +364,13 @@ } } }, - "organization_province": { + "end_date": { + "type": "date" + }, + "organization_id": { + "type": "text" + }, + "organization_classification": { "type": "text", "fields": { "field": { @@ -393,6 +397,15 @@ } } }, + "organization_province": { + "type": "text", + "fields": { + "field": { + "type": "keyword", + "normalizer": "custom_sort_normalizer" + } + } + }, "position_id": { "type": "text" }, @@ -404,9 +417,6 @@ "normalizer": "custom_sort_normalizer" } } - }, - "end_date": { - "type": "date" } } } @@ -419,22 +429,18 @@ "http://data.lblod.info/vocabularies/contacthub/AgentInPositie" ], "properties": { - "given_name": [ - "http://www.w3.org/ns/org#heldBy", - "http://xmlns.com/foaf/0.1/givenName" - ], "person_id": [ "http://www.w3.org/ns/org#heldBy", "http://mu.semte.ch/vocabularies/core/uuid" ], - "person_uuid": [ - "http://www.w3.org/ns/org#heldBy", - "http://mu.semte.ch/vocabularies/core/uuid" - ], "family_name": [ "http://www.w3.org/ns/org#heldBy", "http://xmlns.com/foaf/0.1/familyName" ], + "given_name": [ + "http://www.w3.org/ns/org#heldBy", + "http://xmlns.com/foaf/0.1/givenName" + ], "first_name_used": [ "http://www.w3.org/ns/org#heldBy", "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam" @@ -483,6 +489,14 @@ }, "mappings": { "properties": { + "person_id": { + "type": "text", + "fields": { + "field": { + "type": "keyword" + } + } + }, "family_name": { "type": "text", "fields": { @@ -492,14 +506,6 @@ } } }, - "person_id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, "given_name": { "type": "text", "fields": { @@ -509,10 +515,7 @@ } } }, - "organization_id": { - "type": "text" - }, - "organization_classification": { + "first_name_used": { "type": "text", "fields": { "field": { @@ -521,7 +524,13 @@ } } }, - "organization_province": { + "end_date": { + "type": "date" + }, + "organization_id": { + "type": "text" + }, + "organization_classification": { "type": "text", "fields": { "field": { @@ -548,6 +557,15 @@ } } }, + "organization_province": { + "type": "text", + "fields": { + "field": { + "type": "keyword", + "normalizer": "custom_sort_normalizer" + } + } + }, "position_id": { "type": "text" }, @@ -559,9 +577,6 @@ "normalizer": "custom_sort_normalizer" } } - }, - "end_date": { - "type": "date" } } } @@ -571,14 +586,6 @@ "composite_types": ["minister", "functionary", "mandatory"], "on_path": "people", "properties": [ - { - "name": "given_name", - "mappings": { - "minister": "given_name", - "functionary": "given_name", - "mandatory": "given_name" - } - }, { "name": "person_id", "mappings": { @@ -595,6 +602,14 @@ "mandatory": "family_name" } }, + { + "name": "given_name", + "mappings": { + "minister": "given_name", + "functionary": "given_name", + "mandatory": "given_name" + } + }, { "name": "first_name_used", "mappings": { @@ -670,6 +685,14 @@ ], "mappings": { "properties": { + "person_id": { + "type": "text", + "fields": { + "field": { + "type": "keyword" + } + } + }, "family_name": { "type": "text", "fields": { @@ -679,14 +702,6 @@ } } }, - "id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, "given_name": { "type": "text", "fields": { @@ -696,10 +711,7 @@ } } }, - "organization_id": { - "type": "text" - }, - "organization_classification": { + "first_name_used": { "type": "text", "fields": { "field": { @@ -708,7 +720,13 @@ } } }, - "organization_province": { + "end_date": { + "type": "date" + }, + "organization_id": { + "type": "text" + }, + "organization_classification": { "type": "text", "fields": { "field": { @@ -735,6 +753,15 @@ } } }, + "organization_province": { + "type": "text", + "fields": { + "field": { + "type": "keyword", + "normalizer": "custom_sort_normalizer" + } + } + }, "position_id": { "type": "text" }, @@ -746,9 +773,6 @@ "normalizer": "custom_sort_normalizer" } } - }, - "end_date": { - "type": "date" } } } @@ -810,12 +834,6 @@ }, "mappings": { "properties": { - "classification_id": { - "type": "text" - }, - "recognized_worship_type_id": { - "type": "text" - }, "name": { "type": "text", "fields": { @@ -843,6 +861,9 @@ } } }, + "classification_id": { + "type": "text" + }, "classification_name": { "type": "text", "fields": { @@ -861,6 +882,12 @@ } } }, + "status_id": { + "type": "text" + }, + "recognized_worship_type_id": { + "type": "text" + }, "recognized_worship_type_name": { "type": "text", "fields": { diff --git a/config/search/dev/config.json b/config/search/dev/config.json index ab1902c..bfc90d7 100644 --- a/config/search/dev/config.json +++ b/config/search/dev/config.json @@ -6,7 +6,7 @@ [ { "variables": [], - "name": "acmidm-worship-editeerder" + "name": "acmidm-editeerder" }, { "variables": [], @@ -20,7 +20,7 @@ [ { "variables": [], - "name": "acmidm-editeerder" + "name": "acmidm-worship-editeerder" }, { "variables": [], @@ -64,22 +64,18 @@ "http://data.lblod.info/vocabularies/erediensten/EredienstMandataris" ], "properties": { - "given_name": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://xmlns.com/foaf/0.1/givenName" - ], "person_id": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "http://mu.semte.ch/vocabularies/core/uuid" ], - "person_uuid": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://mu.semte.ch/vocabularies/core/uuid" - ], "family_name": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "http://xmlns.com/foaf/0.1/familyName" ], + "given_name": [ + "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", + "http://xmlns.com/foaf/0.1/givenName" + ], "first_name_used": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam" @@ -138,6 +134,14 @@ }, "mappings": { "properties": { + "person_id": { + "type": "text", + "fields": { + "field": { + "type": "keyword" + } + } + }, "family_name": { "type": "text", "fields": { @@ -147,14 +151,6 @@ } } }, - "person_id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, "given_name": { "type": "text", "fields": { @@ -164,10 +160,7 @@ } } }, - "organization_id": { - "type": "text" - }, - "organization_classification": { + "first_name_used": { "type": "text", "fields": { "field": { @@ -176,7 +169,13 @@ } } }, - "organization_province": { + "end_date": { + "type": "date" + }, + "organization_id": { + "type": "text" + }, + "organization_classification": { "type": "text", "fields": { "field": { @@ -203,6 +202,15 @@ } } }, + "organization_province": { + "type": "text", + "fields": { + "field": { + "type": "keyword", + "normalizer": "custom_sort_normalizer" + } + } + }, "position_id": { "type": "text" }, @@ -214,9 +222,6 @@ "normalizer": "custom_sort_normalizer" } } - }, - "end_date": { - "type": "date" } } } @@ -226,22 +231,18 @@ "on_path": "functionaries", "rdf_type": "http://data.lblod.info/vocabularies/leidinggevenden/Functionaris", "properties": { - "given_name": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://xmlns.com/foaf/0.1/givenName" - ], "person_id": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "http://mu.semte.ch/vocabularies/core/uuid" ], - "person_uuid": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://mu.semte.ch/vocabularies/core/uuid" - ], "family_name": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "http://xmlns.com/foaf/0.1/familyName" ], + "given_name": [ + "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", + "http://xmlns.com/foaf/0.1/givenName" + ], "first_name_used": [ "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam" @@ -300,6 +301,14 @@ }, "mappings": { "properties": { + "person_id": { + "type": "text", + "fields": { + "field": { + "type": "keyword" + } + } + }, "family_name": { "type": "text", "fields": { @@ -309,14 +318,6 @@ } } }, - "person_id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, "given_name": { "type": "text", "fields": { @@ -326,10 +327,7 @@ } } }, - "organization_id": { - "type": "text" - }, - "organization_classification": { + "first_name_used": { "type": "text", "fields": { "field": { @@ -338,7 +336,13 @@ } } }, - "organization_province": { + "end_date": { + "type": "date" + }, + "organization_id": { + "type": "text" + }, + "organization_classification": { "type": "text", "fields": { "field": { @@ -365,6 +369,15 @@ } } }, + "organization_province": { + "type": "text", + "fields": { + "field": { + "type": "keyword", + "normalizer": "custom_sort_normalizer" + } + } + }, "position_id": { "type": "text" }, @@ -376,9 +389,6 @@ "normalizer": "custom_sort_normalizer" } } - }, - "end_date": { - "type": "date" } } } @@ -391,22 +401,18 @@ "http://data.lblod.info/vocabularies/contacthub/AgentInPositie" ], "properties": { - "given_name": [ - "http://www.w3.org/ns/org#heldBy", - "http://xmlns.com/foaf/0.1/givenName" - ], "person_id": [ "http://www.w3.org/ns/org#heldBy", "http://mu.semte.ch/vocabularies/core/uuid" ], - "person_uuid": [ - "http://www.w3.org/ns/org#heldBy", - "http://mu.semte.ch/vocabularies/core/uuid" - ], "family_name": [ "http://www.w3.org/ns/org#heldBy", "http://xmlns.com/foaf/0.1/familyName" ], + "given_name": [ + "http://www.w3.org/ns/org#heldBy", + "http://xmlns.com/foaf/0.1/givenName" + ], "first_name_used": [ "http://www.w3.org/ns/org#heldBy", "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam" @@ -455,6 +461,14 @@ }, "mappings": { "properties": { + "person_id": { + "type": "text", + "fields": { + "field": { + "type": "keyword" + } + } + }, "family_name": { "type": "text", "fields": { @@ -464,14 +478,6 @@ } } }, - "person_id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, "given_name": { "type": "text", "fields": { @@ -481,10 +487,7 @@ } } }, - "organization_id": { - "type": "text" - }, - "organization_classification": { + "first_name_used": { "type": "text", "fields": { "field": { @@ -493,7 +496,13 @@ } } }, - "organization_province": { + "end_date": { + "type": "date" + }, + "organization_id": { + "type": "text" + }, + "organization_classification": { "type": "text", "fields": { "field": { @@ -520,6 +529,15 @@ } } }, + "organization_province": { + "type": "text", + "fields": { + "field": { + "type": "keyword", + "normalizer": "custom_sort_normalizer" + } + } + }, "position_id": { "type": "text" }, @@ -531,9 +549,6 @@ "normalizer": "custom_sort_normalizer" } } - }, - "end_date": { - "type": "date" } } } @@ -543,14 +558,6 @@ "composite_types": ["minister", "functionary", "mandatory"], "on_path": "people", "properties": [ - { - "name": "given_name", - "mappings": { - "minister": "given_name", - "functionary": "given_name", - "mandatory": "given_name" - } - }, { "name": "person_id", "mappings": { @@ -567,6 +574,14 @@ "mandatory": "family_name" } }, + { + "name": "given_name", + "mappings": { + "minister": "given_name", + "functionary": "given_name", + "mandatory": "given_name" + } + }, { "name": "first_name_used", "mappings": { @@ -642,16 +657,15 @@ ], "mappings": { "properties": { - "family_name": { + "person_id": { "type": "text", "fields": { "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" + "type": "keyword" } } }, - "person_id": { + "family_name": { "type": "text", "fields": { "field": { @@ -669,10 +683,7 @@ } } }, - "organization_id": { - "type": "text" - }, - "organization_classification": { + "first_name_used": { "type": "text", "fields": { "field": { @@ -681,7 +692,13 @@ } } }, - "organization_province": { + "end_date": { + "type": "date" + }, + "organization_id": { + "type": "text" + }, + "organization_classification": { "type": "text", "fields": { "field": { @@ -708,6 +725,15 @@ } } }, + "organization_province": { + "type": "text", + "fields": { + "field": { + "type": "keyword", + "normalizer": "custom_sort_normalizer" + } + } + }, "position_id": { "type": "text" }, @@ -719,9 +745,6 @@ "normalizer": "custom_sort_normalizer" } } - }, - "end_date": { - "type": "date" } } } @@ -783,12 +806,6 @@ }, "mappings": { "properties": { - "classification_id": { - "type": "text" - }, - "recognized_worship_type_id": { - "type": "text" - }, "name": { "type": "text", "fields": { @@ -816,6 +833,9 @@ } } }, + "classification_id": { + "type": "text" + }, "classification_name": { "type": "text", "fields": { @@ -834,6 +854,12 @@ } } }, + "status_id": { + "type": "text" + }, + "recognized_worship_type_id": { + "type": "text" + }, "recognized_worship_type_name": { "type": "text", "fields": { From 3a375a45811d445a38ec122511940e3b4b5ef259 Mon Sep 17 00:00:00 2001 From: mirdono Date: Thu, 23 Jan 2025 08:58:20 +0100 Subject: [PATCH 57/64] chore: remove unused indexes for positions The indexes for the municipality and province of a position's organisation are not used in the app. Removing them to decrease the time required to index data. --- config/search/config.json | 138 ---------------------------------- config/search/dev/config.json | 138 ---------------------------------- 2 files changed, 276 deletions(-) diff --git a/config/search/config.json b/config/search/config.json index a9dd6f4..95a016e 100644 --- a/config/search/config.json +++ b/config/search/config.json @@ -131,24 +131,6 @@ "http://data.vlaanderen.be/ns/besluit#bestuurt", "http://www.w3.org/2004/02/skos/core#prefLabel" ], - "organization_municipality": [ - "http://www.w3.org/ns/org#holds", - "^http://www.w3.org/ns/org#hasPost", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "https://data.vlaanderen.be/ns/adres#gemeentenaam" - ], - "organization_province": [ - "http://www.w3.org/ns/org#holds", - "^http://www.w3.org/ns/org#hasPost", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "http://www.w3.org/ns/locn#adminUnitL2" - ], "position_id": [ "http://www.w3.org/ns/org#holds", "http://www.w3.org/ns/org#role", @@ -221,24 +203,6 @@ } } }, - "organization_municipality": { - "type": "keyword", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_province": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, "position_id": { "type": "text" }, @@ -298,24 +262,6 @@ "http://data.vlaanderen.be/ns/besluit#bestuurt", "http://www.w3.org/2004/02/skos/core#prefLabel" ], - "organization_municipality": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/leidinggevenden/heeftBestuursfunctie", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "https://data.vlaanderen.be/ns/adres#gemeentenaam" - ], - "organization_province": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/leidinggevenden/heeftBestuursfunctie", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "http://www.w3.org/ns/locn#adminUnitL2" - ], "position_id": [ "http://www.w3.org/ns/org#holds", "http://www.w3.org/ns/org#role", @@ -388,24 +334,6 @@ } } }, - "organization_municipality": { - "type": "keyword", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_province": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, "position_id": { "type": "text" }, @@ -462,20 +390,6 @@ "^http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", "http://www.w3.org/2004/02/skos/core#prefLabel" ], - "organization_municipality": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "https://data.vlaanderen.be/ns/adres#gemeentenaam" - ], - "organization_province": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "http://www.w3.org/ns/locn#adminUnitL2" - ], "position_id": [ "http://www.w3.org/ns/org#holds", "http://data.lblod.info/vocabularies/erediensten/functie", @@ -548,24 +462,6 @@ } } }, - "organization_municipality": { - "type": "keyword", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_province": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, "position_id": { "type": "text" }, @@ -650,22 +546,6 @@ "mandatory": "organization_name" } }, - { - "name": "organization_municipality", - "mappings": { - "minister": "organization_municipality", - "functionary": "organization_municipality", - "mandatory": "organization_municipality" - } - }, - { - "name": "organization_province", - "mappings": { - "minister": "organization_province", - "functionary": "organization_province", - "mandatory": "organization_province" - } - }, { "name": "position_id", "mappings": { @@ -744,24 +624,6 @@ } } }, - "organization_municipality": { - "type": "keyword", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_province": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, "position_id": { "type": "text" }, diff --git a/config/search/dev/config.json b/config/search/dev/config.json index bfc90d7..e178c04 100644 --- a/config/search/dev/config.json +++ b/config/search/dev/config.json @@ -103,24 +103,6 @@ "http://data.vlaanderen.be/ns/besluit#bestuurt", "http://www.w3.org/2004/02/skos/core#prefLabel" ], - "organization_municipality": [ - "http://www.w3.org/ns/org#holds", - "^http://www.w3.org/ns/org#hasPost", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "https://data.vlaanderen.be/ns/adres#gemeentenaam" - ], - "organization_province": [ - "http://www.w3.org/ns/org#holds", - "^http://www.w3.org/ns/org#hasPost", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "http://www.w3.org/ns/locn#adminUnitL2" - ], "position_id": [ "http://www.w3.org/ns/org#holds", "http://www.w3.org/ns/org#role", @@ -193,24 +175,6 @@ } } }, - "organization_municipality": { - "type": "keyword", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_province": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, "position_id": { "type": "text" }, @@ -270,24 +234,6 @@ "http://data.vlaanderen.be/ns/besluit#bestuurt", "http://www.w3.org/2004/02/skos/core#prefLabel" ], - "organization_municipality": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/leidinggevenden/heeftBestuursfunctie", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "https://data.vlaanderen.be/ns/adres#gemeentenaam" - ], - "organization_province": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/leidinggevenden/heeftBestuursfunctie", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "http://www.w3.org/ns/locn#adminUnitL2" - ], "position_id": [ "http://www.w3.org/ns/org#holds", "http://www.w3.org/ns/org#role", @@ -360,24 +306,6 @@ } } }, - "organization_municipality": { - "type": "keyword", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_province": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, "position_id": { "type": "text" }, @@ -434,20 +362,6 @@ "^http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", "http://www.w3.org/2004/02/skos/core#prefLabel" ], - "organization_municipality": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "https://data.vlaanderen.be/ns/adres#gemeentenaam" - ], - "organization_province": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "http://www.w3.org/ns/locn#adminUnitL2" - ], "position_id": [ "http://www.w3.org/ns/org#holds", "http://data.lblod.info/vocabularies/erediensten/functie", @@ -520,24 +434,6 @@ } } }, - "organization_municipality": { - "type": "keyword", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_province": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, "position_id": { "type": "text" }, @@ -622,22 +518,6 @@ "mandatory": "organization_name" } }, - { - "name": "organization_municipality", - "mappings": { - "minister": "organization_municipality", - "functionary": "organization_municipality", - "mandatory": "organization_municipality" - } - }, - { - "name": "organization_province", - "mappings": { - "minister": "organization_province", - "functionary": "organization_province", - "mandatory": "organization_province" - } - }, { "name": "position_id", "mappings": { @@ -716,24 +596,6 @@ } } }, - "organization_municipality": { - "type": "keyword", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_province": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, "position_id": { "type": "text" }, From 1edc4cf0a6da80f0f291d443277330a8f24c3371 Mon Sep 17 00:00:00 2001 From: mirdono Date: Fri, 24 Jan 2025 14:18:13 +0100 Subject: [PATCH 58/64] chore: remove separate search configuration for dev Considering the time it takes to do a full re-index the speed benefit of the development-specific configuration is limited. To the point that it does not seem to outweigh the added complexity of maintaining two configurations and the added chance of errors that brings. --- config/search/dev/config.json | 765 ---------------------------------- docker-compose.dev.yml | 2 - 2 files changed, 767 deletions(-) delete mode 100644 config/search/dev/config.json diff --git a/config/search/dev/config.json b/config/search/dev/config.json deleted file mode 100644 index e178c04..0000000 --- a/config/search/dev/config.json +++ /dev/null @@ -1,765 +0,0 @@ -{ - "automatic_index_updates": true, - "persist_indexes": true, - "number_of_threads": 8, - "eager_indexing_groups": [ - [ - { - "variables": [], - "name": "acmidm-editeerder" - }, - { - "variables": [], - "name": "clean" - }, - { - "variables": [], - "name": "public" - } - ], - [ - { - "variables": [], - "name": "acmidm-worship-editeerder" - }, - { - "variables": [], - "name": "clean" - }, - { - "variables": [], - "name": "public" - } - ] - ], - "default_settings": { - "analysis": { - "normalizer": { - "custom_sort_normalizer": { - "type": "custom", - "char_filter": [], - "filter": ["lowercase", "trim", "asciifolding"] - }, - "identifier_normalizer": { - "type": "custom", - "char_filter": ["identifier_alphanumeric_filter"], - "filter": ["lowercase", "trim", "asciifolding"] - } - }, - "char_filter": { - "identifier_alphanumeric_filter": { - "type": "pattern_replace", - "pattern": "[^a-zA-Z0-9]", - "replacement": "" - } - } - } - }, - "types": [ - { - "type": "mandatory", - "on_path": "mandatories", - "rdf_type": [ - "http://data.vlaanderen.be/ns/mandaat#Mandataris", - "http://data.lblod.info/vocabularies/erediensten/EredienstMandataris" - ], - "properties": { - "person_id": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "family_name": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://xmlns.com/foaf/0.1/familyName" - ], - "given_name": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://xmlns.com/foaf/0.1/givenName" - ], - "first_name_used": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam" - ], - "end_date": "http://data.vlaanderen.be/ns/mandaat#einde", - "organization_id": [ - "http://www.w3.org/ns/org#holds", - "^http://www.w3.org/ns/org#hasPost", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "organization_classification": [ - "http://www.w3.org/ns/org#holds", - "^http://www.w3.org/ns/org#hasPost", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#classification", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ], - "organization_name": [ - "http://www.w3.org/ns/org#holds", - "^http://www.w3.org/ns/org#hasPost", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ], - "position_id": [ - "http://www.w3.org/ns/org#holds", - "http://www.w3.org/ns/org#role", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "position_name": [ - "http://www.w3.org/ns/org#holds", - "http://www.w3.org/ns/org#role", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ] - }, - "mappings": { - "properties": { - "person_id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, - "family_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "given_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "first_name_used": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "end_date": { - "type": "date" - }, - "organization_id": { - "type": "text" - }, - "organization_classification": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "position_id": { - "type": "text" - }, - "position_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - } - } - } - }, - { - "type": "functionary", - "on_path": "functionaries", - "rdf_type": "http://data.lblod.info/vocabularies/leidinggevenden/Functionaris", - "properties": { - "person_id": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "family_name": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://xmlns.com/foaf/0.1/familyName" - ], - "given_name": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "http://xmlns.com/foaf/0.1/givenName" - ], - "first_name_used": [ - "http://data.vlaanderen.be/ns/mandaat#isBestuurlijkeAliasVan", - "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam" - ], - "end_date": "http://data.vlaanderen.be/ns/mandaat#einde", - "organization_id": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/leidinggevenden/heeftBestuursfunctie", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "organization_classification": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/leidinggevenden/heeftBestuursfunctie", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/ns/org#classification", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ], - "organization_name": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/leidinggevenden/heeftBestuursfunctie", - "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan", - "http://data.vlaanderen.be/ns/besluit#bestuurt", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ], - "position_id": [ - "http://www.w3.org/ns/org#holds", - "http://www.w3.org/ns/org#role", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "position_name": [ - "http://www.w3.org/ns/org#holds", - "http://www.w3.org/ns/org#role", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ] - }, - "mappings": { - "properties": { - "person_id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, - "family_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "given_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "first_name_used": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "end_date": { - "type": "date" - }, - "organization_id": { - "type": "text" - }, - "organization_classification": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "position_id": { - "type": "text" - }, - "position_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - } - } - } - }, - { - "type": "minister", - "on_path": "ministers", - "rdf_type": [ - "http://data.lblod.info/vocabularies/erediensten/RolBedienaar", - "http://data.lblod.info/vocabularies/contacthub/AgentInPositie" - ], - "properties": { - "person_id": [ - "http://www.w3.org/ns/org#heldBy", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "family_name": [ - "http://www.w3.org/ns/org#heldBy", - "http://xmlns.com/foaf/0.1/familyName" - ], - "given_name": [ - "http://www.w3.org/ns/org#heldBy", - "http://xmlns.com/foaf/0.1/givenName" - ], - "first_name_used": [ - "http://www.w3.org/ns/org#heldBy", - "https://data.vlaanderen.be/ns/persoon#gebruikteVoornaam" - ], - "end_date": "http://data.lblod.info/vocabularies/contacthub/eindedatum", - "organization_id": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "organization_classification": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", - "http://www.w3.org/ns/org#classification", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ], - "organization_name": [ - "http://www.w3.org/ns/org#holds", - "^http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ], - "position_id": [ - "http://www.w3.org/ns/org#holds", - "http://data.lblod.info/vocabularies/erediensten/functie", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "position_name": [ - "http://www.w3.org/ns/org#holds", - "http://data.lblod.info/vocabularies/erediensten/functie", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ] - }, - "mappings": { - "properties": { - "person_id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, - "family_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "given_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "first_name_used": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "end_date": { - "type": "date" - }, - "organization_id": { - "type": "text" - }, - "organization_classification": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "position_id": { - "type": "text" - }, - "position_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - } - } - } - }, - { - "type": "person", - "composite_types": ["minister", "functionary", "mandatory"], - "on_path": "people", - "properties": [ - { - "name": "person_id", - "mappings": { - "minister": "person_id", - "functionary": "person_id", - "mandatory": "person_id" - } - }, - { - "name": "family_name", - "mappings": { - "minister": "family_name", - "functionary": "family_name", - "mandatory": "family_name" - } - }, - { - "name": "given_name", - "mappings": { - "minister": "given_name", - "functionary": "given_name", - "mandatory": "given_name" - } - }, - { - "name": "first_name_used", - "mappings": { - "minister": "first_name_used", - "functionary": "first_name_used", - "mandatory": "first_name_used" - } - }, - { - "name": "end_date", - "mappings": { - "minister": "end_date", - "functionary": "end_date", - "mandatory": "end_date" - } - }, - { - "name": "organization_id", - "mappings": { - "minister": "organization_id", - "functionary": "organization_id", - "mandatory": "organization_id" - } - }, - { - "name": "organization_classification", - "mappings": { - "minister": "organization_classification", - "functionary": "organization_classification", - "mandatory": "organization_classification" - } - }, - { - "name": "organization_name", - "mappings": { - "minister": "organization_name", - "functionary": "organization_name", - "mandatory": "organization_name" - } - }, - { - "name": "position_id", - "mappings": { - "minister": "position_id", - "functionary": "position_id", - "mandatory": "position_id" - } - }, - { - "name": "position_name", - "mappings": { - "minister": "position_name", - "functionary": "position_name", - "mandatory": "position_name" - } - } - ], - "mappings": { - "properties": { - "person_id": { - "type": "text", - "fields": { - "field": { - "type": "keyword" - } - } - }, - "family_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "given_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "first_name_used": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "end_date": { - "type": "date" - }, - "organization_id": { - "type": "text" - }, - "organization_classification": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "organization_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "position_id": { - "type": "text" - }, - "position_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - } - } - } - }, - { - "type": "organization", - "on_path": "organizations", - "rdf_type": [ - "http://data.vlaanderen.be/ns/besluit#Bestuurseenheid", - "http://data.lblod.info/vocabularies/erediensten/EredienstBestuurseenheid", - "http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst", - "http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst", - "http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan", - "http://www.w3.org/ns/regorg#RegisteredOrganization" - ], - "properties": { - "name": "http://www.w3.org/2004/02/skos/core#prefLabel", - "legal_name": "http://www.w3.org/ns/regorg#legalName", - "alternative_name": "http://www.w3.org/2004/02/skos/core#altLabel", - "classification_id": [ - "http://www.w3.org/ns/org#classification", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "classification_name": [ - "http://www.w3.org/ns/org#classification", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ], - "status": [ - "http://www.w3.org/ns/regorg#orgStatus", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ], - "status_id": [ - "http://www.w3.org/ns/regorg#orgStatus", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "recognized_worship_type_id": [ - "http://data.lblod.info/vocabularies/erediensten/typeEredienst", - "http://mu.semte.ch/vocabularies/core/uuid" - ], - "recognized_worship_type_name": [ - "http://data.lblod.info/vocabularies/erediensten/typeEredienst", - "http://www.w3.org/2004/02/skos/core#prefLabel" - ], - "province": [ - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "http://www.w3.org/ns/locn#adminUnitL2" - ], - "municipality": [ - "http://www.w3.org/ns/org#hasPrimarySite", - "https://data.vlaanderen.be/ns/organisatie#bestaatUit", - "https://data.vlaanderen.be/ns/adres#gemeentenaam" - ], - "identifier": [ - "http://www.w3.org/ns/adms#identifier", - "https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator", - "https://data.vlaanderen.be/ns/generiek#lokaleIdentificator" - ] - }, - "mappings": { - "properties": { - "name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "legal_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "alternative_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "classification_id": { - "type": "text" - }, - "classification_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "status": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "status_id": { - "type": "text" - }, - "recognized_worship_type_id": { - "type": "text" - }, - "recognized_worship_type_name": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "province": { - "type": "text", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "municipality": { - "type": "keyword", - "fields": { - "field": { - "type": "keyword", - "normalizer": "custom_sort_normalizer" - } - } - }, - "identifier": { - "type": "text", - "fields": { - "index": { - "type": "keyword", - "normalizer": "identifier_normalizer" - } - } - } - } - } - } - ] -} diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index b25c943..d938b5f 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -58,8 +58,6 @@ services: restart: "no" search: restart: "no" - volumes: - - ./config/search/dev:/config elasticsearch: restart: "no" file: From eb55bc9def2b5d364762b893f5e51b00b8bed7a6 Mon Sep 17 00:00:00 2001 From: mirdono Date: Tue, 28 Jan 2025 21:03:09 +0100 Subject: [PATCH 59/64] refactor: determine docker compose command based on system - Determine whether to use `docker compose` or `docker-compose` based on whether the former is available on the system at hand. - Use the `--remove-orphanS` flag, supported since v1.7.0, instead of its singular form which was removed at some point. --- scripts/reset-elastic.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/reset-elastic.sh b/scripts/reset-elastic.sh index 7adbe5c..4f158b7 100755 --- a/scripts/reset-elastic.sh +++ b/scripts/reset-elastic.sh @@ -1,11 +1,19 @@ #!/bin/bash +version=$(docker compose version) + +if [ $? -eq 0 ]; then + DRC_COMMAND="docker compose" +else + DRC_COMMAND="docker-compose" +fi + echo "warning this will run queries on the triplestore and delete containers, you have 3 seconds to press ctrl+c" sleep 3 -docker-compose rm -fs elasticsearch search +eval "$DRC_COMMAND rm -fs elasticsearch search" sudo rm -rf data/elasticsearch/ -docker-compose exec -T triplestore isql-v < { ?s ?p ?o. } }; exec('checkpoint'); exit; -EOF -docker-compose up -d --remove-orphan +EOF" +eval "$DRC_COMMAND up -d --remove-orphans" From 25eb28c6c516cf2f3ce58d6a4294ba0fcecfc848 Mon Sep 17 00:00:00 2001 From: mirdono Date: Fri, 31 Jan 2025 16:55:43 +0100 Subject: [PATCH 60/64] chore: added information for next release --- CHANGELOG.md | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bb83b6..daecf55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,37 @@ # Changelog ## Unreleased +### Frontend +- Bump to version [v1.29.0](TODO: link to release) ### Backend -- Completely remove AGB Stekene's data. [OP-3409] +- Datafix: delete duplicate identifiers [OP-3157] +- Feature: replace different relations between organisations by memberships [OP-3195 (epic), OP-2606, OP-3156, OP-3198, OP-3199, OP-3258, OP-3259, OP-3260, OP-3265, OP-3293, OP-3305] +- Added `db-cleanup-service` to keep membership data backwards compatible [OP-3369] +- Datafix: delete incorrect change event [OP-3363] +- Feature: re-enable contact data editing [OP-3425] - Remove gemeente and provincie classifications from admin unit graph [OP-3393] - +- Completely remove AGB Stekene's data. [OP-3409] ### Deploy Notes -- Migration listed in [this comment](https://github.com/lblod/app-organization-portal/pull/491#issuecomment-2587185027) must run on the DEV environment. -#### Docker Commands +- Re-enable contact date editing: + + remove `EMBER_ENABLE_EDIT_CONTACT_DATA_FEATURE` flag in `docker-compose.override.yml` + + Stop and remove the `clb-contact-data-consumer` service + + Remove the `clb-contact-data-consumer` configuration in `docker-compose.override.yml` +- Rebuild the `search` service before starting the re-indexing +- To enable the membership functionality: + + Restart migration service + + Restart services for which the configuration was changed: `resource`, `dispatcher` and `db` + + Start the `db-cleanup-service` + + Pull and restart the frontend + + Perform a re-index using `reset-elastic.sh` script +#### Deploy commands ``` +drc down clb-contact-data-consumer +drc up -d search +drc restart migrations; drc logs -ft --tail=200 migrations drc restart migrations-triggering-indexing && drc logs -ft --tail=200 migrations-triggering-indexing +drc restart resource dispatcher db +drc up -d db-cleanup-service +drc pull frontend; drc up -d frontend +./scripts/reset-elastic.sh ``` ## 1.28.5 (2025-01-23) From ef98cd512ad2f5705e5c03315d2fb301dbdbde8f Mon Sep 17 00:00:00 2001 From: wolfderechter <60930264+wolfderechter@users.noreply.github.com> Date: Mon, 3 Feb 2025 13:38:48 +0100 Subject: [PATCH 61/64] Add migration to remove OCMW bcsd & bcsd voorzitter (#511) * Add migration to remove bcsd * Update changelog * Specify graphs * update predicates * Target bcsd voorzitter as well * cleanup changelog --- CHANGELOG.md | 2 + ...estuursorganen-faciliteitsgemeenten.sparql | 39 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 config/migrations/2025/20250129125705-remove-bcsd-bestuursorganen-faciliteitsgemeenten.sparql diff --git a/CHANGELOG.md b/CHANGELOG.md index daecf55..0e0bfca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,9 @@ - Datafix: delete incorrect change event [OP-3363] - Feature: re-enable contact data editing [OP-3425] - Remove gemeente and provincie classifications from admin unit graph [OP-3393] +- Remove several OCMW bcsd faciliteitgemeenten [OP-3535] - Completely remove AGB Stekene's data. [OP-3409] + ### Deploy Notes - Re-enable contact date editing: + remove `EMBER_ENABLE_EDIT_CONTACT_DATA_FEATURE` flag in `docker-compose.override.yml` diff --git a/config/migrations/2025/20250129125705-remove-bcsd-bestuursorganen-faciliteitsgemeenten.sparql b/config/migrations/2025/20250129125705-remove-bcsd-bestuursorganen-faciliteitsgemeenten.sparql new file mode 100644 index 0000000..444aac2 --- /dev/null +++ b/config/migrations/2025/20250129125705-remove-bcsd-bestuursorganen-faciliteitsgemeenten.sparql @@ -0,0 +1,39 @@ +PREFIX besluit: +PREFIX mandaat: +PREFIX org: +PREFIX generiek: + +DELETE { + GRAPH { + ?boi ?p ?o. + } +} +WHERE { + GRAPH { + VALUES ?faciliteitEenheid { + # OCMW + # Sint-Genesius-Rode + # Linkebeek + # Drogenbos + # Wemmel + # Kraainem + # Wezembeek-Oppem + # Voeren + } + + VALUES ?classification { + # BCSD + # BCSD Voorzitter + } + + ?bestuursorgaan besluit:bestuurt ?faciliteitEenheid . + ?bestuursorgaan org:classification ?classification . + + ?boi generiek:isTijdspecialisatieVan ?bestuursorgaan . + ?boi mandaat:bindingStart ?startDate . + + ?boi ?p ?o. + + FILTER(?startDate >= "2019-01-01T00:00:00"^^xsd:dateTime) + } +} From 6b7bb2ec5d3a78da275fc4911f3fb18c641e46fc Mon Sep 17 00:00:00 2001 From: Claire Lovisa Date: Wed, 5 Feb 2025 16:38:18 +0100 Subject: [PATCH 62/64] Remove reasoner service, replaced by new consumer logic --- .../dl2op/main-info/inverse_relations.n3 | 33 -- config/reasoner/dl2op/main-info/mapping.n3 | 244 -------- .../dl2op/main-info/persoon_http_to_https.n3 | 524 ----------------- .../reasoner/dl2op/main-info/phone_number.n3 | 32 -- config/reasoner/dl2op/main-info/query.n3q | 544 ------------------ .../dl2op/main-info/retract_empty_strings.n3 | 27 - config/reasoner/dl2op/main-info/rrn.n3 | 62 -- .../reasoner/dl2op/main/inverse_relations.n3 | 32 -- config/reasoner/dl2op/main/mapping.n3 | 229 -------- .../dl2op/main/persoon_http_to_https.n3 | 523 ----------------- config/reasoner/dl2op/main/phone_number.n3 | 32 -- config/reasoner/dl2op/main/query.n3q | 284 --------- .../dl2op/main/retract_empty_strings.n3 | 26 - config/reasoner/dl2op/main/rrn.n3 | 60 -- .../dl2op/private-info/inverse_relations.n3 | 33 -- config/reasoner/dl2op/private-info/mapping.n3 | 196 ------- .../private-info/persoon_http_to_https.n3 | 524 ----------------- config/reasoner/dl2op/private-info/query.n3q | 90 --- .../private-info/retract_empty_strings.n3 | 27 - config/reasoner/dl2op/private-info/rrn.n3 | 62 -- docker-compose.yml | 8 - 21 files changed, 3592 deletions(-) delete mode 100644 config/reasoner/dl2op/main-info/inverse_relations.n3 delete mode 100644 config/reasoner/dl2op/main-info/mapping.n3 delete mode 100644 config/reasoner/dl2op/main-info/persoon_http_to_https.n3 delete mode 100644 config/reasoner/dl2op/main-info/phone_number.n3 delete mode 100644 config/reasoner/dl2op/main-info/query.n3q delete mode 100644 config/reasoner/dl2op/main-info/retract_empty_strings.n3 delete mode 100644 config/reasoner/dl2op/main-info/rrn.n3 delete mode 100644 config/reasoner/dl2op/main/inverse_relations.n3 delete mode 100644 config/reasoner/dl2op/main/mapping.n3 delete mode 100644 config/reasoner/dl2op/main/persoon_http_to_https.n3 delete mode 100644 config/reasoner/dl2op/main/phone_number.n3 delete mode 100644 config/reasoner/dl2op/main/query.n3q delete mode 100644 config/reasoner/dl2op/main/retract_empty_strings.n3 delete mode 100644 config/reasoner/dl2op/main/rrn.n3 delete mode 100644 config/reasoner/dl2op/private-info/inverse_relations.n3 delete mode 100644 config/reasoner/dl2op/private-info/mapping.n3 delete mode 100644 config/reasoner/dl2op/private-info/persoon_http_to_https.n3 delete mode 100644 config/reasoner/dl2op/private-info/query.n3q delete mode 100644 config/reasoner/dl2op/private-info/retract_empty_strings.n3 delete mode 100644 config/reasoner/dl2op/private-info/rrn.n3 diff --git a/config/reasoner/dl2op/main-info/inverse_relations.n3 b/config/reasoner/dl2op/main-info/inverse_relations.n3 deleted file mode 100644 index bfeda31..0000000 --- a/config/reasoner/dl2op/main-info/inverse_relations.n3 +++ /dev/null @@ -1,33 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - - -# Inverse properties -{ - ?s org:holds ?o. -} => { - ?o org:heldBy ?s. -}. - -{ - ?s org:heldBy ?o. -} => { - ?o org:holds ?s. -}. diff --git a/config/reasoner/dl2op/main-info/mapping.n3 b/config/reasoner/dl2op/main-info/mapping.n3 deleted file mode 100644 index 326b028..0000000 --- a/config/reasoner/dl2op/main-info/mapping.n3 +++ /dev/null @@ -1,244 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: -PREFIX dc_terms: -PREFIX ch: -PREFIX person: -PREFIX lblodlg: -PREFIX ere: - -# DL and OP both use persoon:gebruikteVoornaam but with different semantics (!) -# Hence the mapping is in two steps. -# The first step maps the DL persoon:gebruikteVoornaam to the OP counterpart -# and drops the DL persoon:gebruikteVoornaam statements with e:becomes -# A second reasoning will map DL foaf:name to OP persoon:gebruikteVoornaam -# Doing both at once would lead all DL foaf:names to incorrectly become foaf:givennames -# in OP - -# First name -# persoon:gebruikteVoornaam => foaf:givenName -# Alternatieve voornaam -# foaf:name => persoon:gebruikteVoornaam - -# Test Mock DL -# persoon_loket:gebruikteVoornaam "Didier". - -{ - { - ?s persoon_loket:gebruikteVoornaam ?o - } e:becomes { - ?s foaf:givenName ?o - } -} => { - ?s foaf:givenName ?o -}. - - -# First name -# persoon:gebruikteVoornaam => foaf:givenName (done in pre-processing) -# Alternatieve voornaam -# foaf:name => persoon:gebruikteVoornaam - -# Test Mock LLB -# foaf:name "Didier". -{ - { - ?s foaf:name ?o - } e:becomes { - ?s persoon:gebruikteVoornaam ?o - } -} => { - ?s persoon:gebruikteVoornaam ?o -}. - - -# Test -# ex:s "2019-02-01T10:32:52+00:00"^^xsd:dateTime. -{ - ?s mandaat:bindingEinde ?eindeDate. - # use backward arrow rule defined below - ?eindeDate :dateTimeFromDate ?eindeDateTime. - { - ?s mandaat:bindingEinde ?eindeDate - } e:becomes { - ?s mandaat:bindingEinde ?eindeDateTime - }. -} => { - ?s mandaat:bindingEinde ?eindeDateTime -}. - -{ - ?s mandaat:bindingStart ?startDate. - # use backward arrow rule defined below - ?startDate :dateTimeFromDate ?startDateTime. - { - ?s mandaat:bindingStart ?startDate - } e:becomes { - ?s mandaat:bindingStart ?startDateTime - }. -} => { - ?s mandaat:bindingStart ?startDateTime -}. -{ - ?s ch:startdatum ?startDate. - # use backward arrow rule defined below - ?startDate :dateTimeFromDate ?startDateTime. - { - ?s ch:startdatum ?startDate - } e:becomes { - ?s ch:startdatum ?startDateTime - }. -} => { - ?s ch:startdatum ?startDateTime -}. - -{ - ?s mandaat:start ?startDate. - # use backward arrow rule defined below - ?startDate :dateTimeFromDate ?startDateTime. - { - ?s mandaat:start ?startDate - } e:becomes { - ?s mandaat:start ?startDateTime - }. -} => { - ?s mandaat:start ?startDateTime -}. - -{ - ?s mandaat:einde ?eindeDate. - # use backward arrow rule defined below - ?eindeDate :dateTimeFromDate ?eindeDateTime. - { - ?s mandaat:einde ?eindeDate - } e:becomes { - ?s mandaat:einde ?eindeDateTime - }. -} => { - ?s mandaat:einde ?eindeDateTime -}. - -{ - ?s ch:eindedatum ?endDate. - # use backward arrow rule defined below - ?endDate :dateTimeFromDate ?endDateTime. - { - ?s ch:eindedatum ?endDate - } e:becomes { - ?s ch:eindedatum ?endDateTime - }. -} => { - ?s ch:eindedatum ?endDateTime -}. - -{ - ?s ere:geplandeEinddatumAanstelling ?endDate. - # use backward arrow rule defined below - ?endDate :dateTimeFromDate ?endDateTime. - { - ?s ere:geplandeEinddatumAanstelling ?endDate - } e:becomes { - ?s ere:geplandeEinddatumAanstelling ?endDateTime - }. -} => { - ?s ere:geplandeEinddatumAanstelling ?endDateTime -}. - -# Backward arrow rule is like a function call. -# Removes the timezone indicator "Z" from incoming datetimes -# To make sure all datetimes have the same convention we now save them as -# datetime without the timezone indicator -# We use "T02:00:00" as time indicator to work around a virtuoso bug that -# results in datetimes being converted to a date when using "T00:00:00" -{ - ?date :dateTimeFromDate ?dateTime -} -<= -{ - ( ?date 1 10 ) string:substring ?dateSolo . - (?dateSolo "T02:00:00") string:concatenation ?datePlusTime. - (?datePlusTime xsd:dateTime) log:dtlit ?dateTime . -}. - - -# ex:orgA besluit:classificatie . -{ - { - ?s besluit:classificatie ?o - } e:becomes { - ?s org:classification ?o - } -} => { - ?s org:classification ?o -}. - -# fix typo V -> v -# "1" . -{ - { - ?s adres:AdresVoorstelling.huisnummer ?o - } e:becomes { - ?s adres:Adresvoorstelling.huisnummer ?o - } -} => { - ?s adres:Adresvoorstelling.huisnummer ?o -}. - - -# Tijdspecialisatie -{ - { - ?s mandaat:isTijdspecialisatieVan ?o. - } e:becomes { - ?s generiek:isTijdspecialisatieVan ?o. - } -} => { - ?s generiek:isTijdspecialisatieVan ?o. -}. - -# In OP functionaris inherits from agents-in-position, which inherits from Agent -{ - ?s a lblodlg:Functionaris . -} => { - ?s a ch:AgentInPositie , - dc_terms:Agent . -} . - -# In OP mandataris inherits from agents-in-position, which inherits from Agent -{ - ?s a mandaat:Mandataris . -} => { - ?s a ch:AgentInPositie , - dc_terms:Agent . -} . - -# In OP minister inherits from agents-in-position, which inherits from Agent -{ - ?s a ere:RolBedienaar . -} => { - ?s a ch:AgentInPositie , - dc_terms:Agent . -} . - -# In OP Person inherits from Agent -{ - ?s a person:Person . -} => { - ?s a dc_terms:Agent . -} . diff --git a/config/reasoner/dl2op/main-info/persoon_http_to_https.n3 b/config/reasoner/dl2op/main-info/persoon_http_to_https.n3 deleted file mode 100644 index 8afa661..0000000 --- a/config/reasoner/dl2op/main-info/persoon_http_to_https.n3 +++ /dev/null @@ -1,524 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - - -# Map from http persoon to https persoon namespace. - -## classes: -{ - { - ?s a persoon_loket:Afstamming - } e:becomes { - ?s a persoon:Afstamming - } -} => { - ?s a persoon:Afstamming -}. - -{ - { - ?s a persoon_loket:BurgerlijkeStaat - } e:becomes { - ?s a persoon:BurgerlijkeStaat - } -} => { - ?s a persoon:BurgerlijkeStaat -}. - -{ - { - ?s a persoon_loket:Domicilie - } e:becomes { - ?s a persoon:Domicilie - } -} => { - ?s a persoon:Domicilie -}. - -{ - { - ?s a persoon_loket:Geboorte - } e:becomes { - ?s a persoon:Geboorte - } -} => { - ?s a persoon:Geboorte -}. - -{ - { - ?s a persoon_loket:GeenInwoner - } e:becomes { - ?s a persoon:GeenInwoner - } -} => { - ?s a persoon:GeenInwoner -}. - -{ - { - ?s a persoon_loket:GeregistreerdPersoon - } e:becomes { - ?s a persoon:GeregistreerdPersoon - } -} => { - ?s a persoon:GeregistreerdPersoon -}. - -{ - { - ?s a persoon_loket:Gezin - } e:becomes { - ?s a persoon:Gezin - } -} => { - ?s a persoon:Gezin -}. - -{ - { - ?s a persoon_loket:Gezinsrelatie - } e:becomes { - ?s a persoon:Gezinsrelatie - } -} => { - ?s a persoon:Gezinsrelatie -}. - -{ - { - ?s a persoon_loket:Huwelijk - } e:becomes { - ?s a persoon:Huwelijk - } -} => { - ?s a persoon:Huwelijk -}. - -{ - { - ?s a persoon_loket:Inwoner - } e:becomes { - ?s a persoon:Inwoner - } -} => { - ?s a persoon:Inwoner -}. - -{ - { - ?s a persoon_loket:Inwonerschap - } e:becomes { - ?s a persoon:Inwonerschap - } -} => { - ?s a persoon:Inwonerschap -}. - -{ - { - ?s a persoon_loket:Nationaliteit - } e:becomes { - ?s a persoon:Nationaliteit - } -} => { - ?s a persoon:Nationaliteit -}. - -{ - { - ?s a persoon_loket:Overlijden - } e:becomes { - ?s a persoon:Overlijden - } -} => { - ?s a persoon:Overlijden -}. - -{ - { - ?s a persoon_loket:PermanentInwoner - } e:becomes { - ?s a persoon:PermanentInwoner - } -} => { - ?s a persoon:PermanentInwoner -}. - -{ - { - ?s a persoon_loket:Persoonsgebeurtenis - } e:becomes { - ?s a persoon:Persoonsgebeurtenis - } -} => { - ?s a persoon:Persoonsgebeurtenis -}. - -{ - { - ?s a persoon_loket:Persoonsrelatie - } e:becomes { - ?s a persoon:Persoonsrelatie - } -} => { - ?s a persoon:Persoonsrelatie -}. - -{ - { - ?s a persoon_loket:Samenwonen - } e:becomes { - ?s a persoon:Samenwonen - } -} => { - ?s a persoon:Samenwonen -}. - -{ - { - ?s a persoon_loket:Staatsburger - } e:becomes { - ?s a persoon:Staatsburger - } -} => { - ?s a persoon:Staatsburger -}. - -{ - { - ?s a persoon_loket:Staatsburgerschap - } e:becomes { - ?s a persoon:Staatsburgerschap - } -} => { - ?s a persoon:Staatsburgerschap -}. - -{ - { - ?s a persoon_loket:TijdelijkInwoner - } e:becomes { - ?s a persoon:TijdelijkInwoner - } -} => { - ?s a persoon:TijdelijkInwoner -}. - -{ - { - ?s a persoon_loket:Verblijfplaats - } e:becomes { - ?s a persoon:Verblijfplaats - } -} => { - ?s a persoon:Verblijfplaats -}. - -{ - { - ?s a persoon_loket:Voogdij - } e:becomes { - ?s a persoon:Voogdij - } -} => { - ?s a persoon:Voogdij -}. - -{ - { - ?s a persoon_loket:Vreemdeling - } e:becomes { - ?s a persoon:Vreemdeling - } -} => { - ?s a persoon:Vreemdeling -}. - -## properties -{ - { - ?s persoon_loket:afstammingsType ?o - } e:becomes { - ?s persoon:afstammingsType ?o - } -} => { - ?s persoon:afstammingsType ?o -}. - -{ - { - ?s persoon_loket:alternatieveNaam ?o - } e:becomes { - ?s persoon:alternatieveNaam ?o - } -} => { - ?s persoon:alternatieveNaam ?o -}. - -{ - { - ?s persoon_loket:datum ?o - } e:becomes { - ?s persoon:datum ?o - } -} => { - ?s persoon:datum ?o -}. - -{ - { - ?s persoon_loket:datumVanAfstamming ?o - } e:becomes { - ?s persoon:datumVanAfstamming ?o - } -} => { - ?s persoon:datumVanAfstamming ?o -}. - -{ - { - ?s persoon_loket:geslacht ?o - } e:becomes { - ?s persoon:geslacht ?o - } -} => { - ?s persoon:geslacht ?o -}. - -{ - { - ?s persoon_loket:gezinsadres ?o - } e:becomes { - ?s persoon:gezinsadres ?o - } -} => { - ?s persoon:gezinsadres ?o -}. - -{ - { - ?s persoon_loket:gezinsrelatietype ?o - } e:becomes { - ?s persoon:gezinsrelatietype ?o - } -} => { - ?s persoon:gezinsrelatietype ?o -}. - -{ - { - ?s persoon_loket:heeftBurgerlijkeStaat ?o - } e:becomes { - ?s persoon:heeftBurgerlijkeStaat ?o - } -} => { - ?s persoon:heeftBurgerlijkeStaat ?o -}. - -{ - { - ?s persoon_loket:heeftGeboorte ?o - } e:becomes { - ?s persoon:heeftGeboorte ?o - } -} => { - ?s persoon:heeftGeboorte ?o -}. - -{ - { - ?s persoon_loket:heeftInwonerschap ?o - } e:becomes { - ?s persoon:heeftInwonerschap ?o - } -} => { - ?s persoon:heeftInwonerschap ?o -}. - -{ - { - ?s persoon_loket:heeftNationaliteit ?o - } e:becomes { - ?s persoon:heeftNationaliteit ?o - } -} => { - ?s persoon:heeftNationaliteit ?o -}. - -{ - { - ?s persoon_loket:heeftOverlijden ?o - } e:becomes { - ?s persoon:heeftOverlijden ?o - } -} => { - ?s persoon:heeftOverlijden ?o -}. - -{ - { - ?s persoon_loket:heeftPersoonsrelatie ?o - } e:becomes { - ?s persoon:heeftPersoonsrelatie ?o - } -} => { - ?s persoon:heeftPersoonsrelatie ?o -}. - -{ - { - ?s persoon_loket:heeftStaatsburgerschap ?o - } e:becomes { - ?s persoon:heeftStaatsburgerschap ?o - } -} => { - ?s persoon:heeftStaatsburgerschap ?o -}. - -{ - { - ?s persoon_loket:heeftVerblijfplaats ?o - } e:becomes { - ?s persoon:heeftVerblijfplaats ?o - } -} => { - ?s persoon:heeftVerblijfplaats ?o -}. - -{ - { - ?s persoon_loket:Inwonerschap.binnenJurisdictie ?o - } e:becomes { - ?s persoon:Inwonerschap.binnenJurisdictie ?o - } -} => { - ?s persoon:Inwonerschap.binnenJurisdictie ?o -}. - -{ - { - ?s persoon_loket:isHoofdVan ?o - } e:becomes { - ?s persoon:isHoofdVan ?o - } -} => { - ?s persoon:isHoofdVan ?o -}. - -{ - { - ?s persoon_loket:isLidVan ?o - } e:becomes { - ?s persoon:isLidVan ?o - } -} => { - ?s persoon:isLidVan ?o -}. - -{ - { - ?s persoon_loket:isRelatieMet ?o - } e:becomes { - ?s persoon:isRelatieMet ?o - } -} => { - ?s persoon:isRelatieMet ?o -}. - -{ - { - ?s persoon_loket:land ?o - } e:becomes { - ?s persoon:land ?o - } -} => { - ?s persoon:land ?o -}. - -{ - { - ?s persoon_loket:nationaliteit ?o - } e:becomes { - ?s persoon:nationaliteit ?o - } -} => { - ?s persoon:nationaliteit ?o -}. - -{ - { - ?s persoon_loket:plaats ?o - } e:becomes { - ?s persoon:plaats ?o - } -} => { - ?s persoon:plaats ?o -}. - -{ - { - ?s persoon_loket:registratie ?o - } e:becomes { - ?s persoon:registratie ?o - } -} => { - ?s persoon:registratie ?o -}. - -{ - { - ?s persoon_loket:Staatsburgerschap.binnenJurisdictie ?o - } e:becomes { - ?s persoon:Staatsburgerschap.binnenJurisdictie ?o - } -} => { - ?s persoon:Staatsburgerschap.binnenJurisdictie ?o -}. - -{ - { - ?s persoon_loket:type ?o - } e:becomes { - ?s persoon:type ?o - } -} => { - ?s persoon:type ?o -}. - -{ - { - ?s persoon_loket:verblijfsadres ?o - } e:becomes { - ?s persoon:verblijfsadres ?o - } -} => { - ?s persoon:verblijfsadres ?o -}. - -{ - { - ?s persoon_loket:volledigeNaam ?o - } e:becomes { - ?s persoon:volledigeNaam ?o - } -} => { - ?s persoon:volledigeNaam ?o -}. \ No newline at end of file diff --git a/config/reasoner/dl2op/main-info/phone_number.n3 b/config/reasoner/dl2op/main-info/phone_number.n3 deleted file mode 100644 index da5ce99..0000000 --- a/config/reasoner/dl2op/main-info/phone_number.n3 +++ /dev/null @@ -1,32 +0,0 @@ -PREFIX string: -PREFIX e: -PREFIX schema: -PREFIX : <#> -{ - ?s schema:telephone ?number. - - # Remove all non digits - ( ?number ("""[^+\\d]""") ("") ) string:replaceAll ?scrape_result. - - # Replace leading 00 with + - ( ?scrape_result """^00""" "+") string:replace ?replaced_zero_zero. - - ( ?replaced_zero_zero """^0""" "+32") string:replace ?default_be. - - ( ?default_be """\\+320""" "+32" ) string:replace ?replace_320. - - ( ?replace_320 """^320""" "+32" ) string:replace ?final_result. - - ?final_result string:matches """^\\+((32\\d{8})|(324\\d{8})|((?!32)\\d+))$""". - - ( "tel:" ?final_result ) string:concatenation ?parsed_result . - - { - ?s schema:telephone ?number. - } e:becomes { - ?s schema:telephone ?parsed_result . - }. - -} => { - ?s schema:telephone ?parsed_result . -}. \ No newline at end of file diff --git a/config/reasoner/dl2op/main-info/query.n3q b/config/reasoner/dl2op/main-info/query.n3q deleted file mode 100644 index 2d55202..0000000 --- a/config/reasoner/dl2op/main-info/query.n3q +++ /dev/null @@ -1,544 +0,0 @@ -# Generated by producer-config-to-query.ipynb - -## CLASSES -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -# { -# ?s a -# } => { -# ?s a -# }. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -# { -# ?s a -# } => { -# ?s a -# }. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -{ - ?s a - } => { - ?s a -}. - -## PROPERTIES -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -# { -# ?s ?o -# } => { -# ?s ?o -# }. - -{ - ?s ?o -} => { - ?s ?o -}. - -# { -# ?s ?o -# } => { -# ?s ?o -# }. - -# { -# ?s ?o -# } => { -# ?s ?o -# }. - -# { -# ?s ?o -# } => { -# ?s ?o -# }. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -# { -# ?s ?o -# } => { -# ?s ?o -# }. - -{ - ?s ?o -} => { - ?s ?o -}. - -# { -# ?s ?o -# } => { -# ?s ?o -# }. - -{ - ?s ?o -} => { - ?s ?o -}. - -# { -# ?s ?o -# } => { -# ?s ?o -# }. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -# { -# ?s ?o -# } => { -# ?s ?o -# }. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - -{ - ?s ?o -} => { - ?s ?o -}. - diff --git a/config/reasoner/dl2op/main-info/retract_empty_strings.n3 b/config/reasoner/dl2op/main-info/retract_empty_strings.n3 deleted file mode 100644 index f8204a7..0000000 --- a/config/reasoner/dl2op/main-info/retract_empty_strings.n3 +++ /dev/null @@ -1,27 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - - -# Retract empty strings -{ - { - ?s ?p "" - } e:becomes {}. -} => {}. diff --git a/config/reasoner/dl2op/main-info/rrn.n3 b/config/reasoner/dl2op/main-info/rrn.n3 deleted file mode 100644 index b45c688..0000000 --- a/config/reasoner/dl2op/main-info/rrn.n3 +++ /dev/null @@ -1,62 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - - - -# Rijksregisternummer -# Extend identifiers to match OP's model -# skos:notation "00010100105". -{ - ?identifier skos:notation ?notation. - ?notation string:notEqualIgnoringCase "Rijksregisternummer". - ?identifier log:uri ?identifierString. - (?identifierString "STRUCTURED_IDENTIFIER") string:concatenation ?hashInput. - ?hashInput crypto:md5 ?uuid. - ("http://data.lblod.info/id/gestructureerdeIdentificatoren/" ?uuid) string:concatenation ?structuredIdString. - ?structuredIdentifier log:uri ?structuredIdString. - - { - ?identifier skos:notation ?notation. - } e:becomes { - ?identifier - generiek:gestructureerdeIdentificator ?structuredIdentifier ; - skos:notation "Rijksregisternummer" . - }. - -} => { - ?identifier - generiek:gestructureerdeIdentificator ?structuredIdentifier ; - skos:notation "Rijksregisternummer" . - - ?structuredIdentifier a generiek:GestructureerdeIdentificator ; - mu:uuid ?uuid ; - generiek:lokaleIdentificator ?notation -}. - -# identifier property in the export is only used for RRN. -{ - { - ?s adms:identifier ?o - } e:becomes { - ?s persoon:registratie ?o - } -} => { - ?s persoon:registratie ?o -}. diff --git a/config/reasoner/dl2op/main/inverse_relations.n3 b/config/reasoner/dl2op/main/inverse_relations.n3 deleted file mode 100644 index ea25c90..0000000 --- a/config/reasoner/dl2op/main/inverse_relations.n3 +++ /dev/null @@ -1,32 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - -# Inverse properties -{ - ?s org:holds ?o. -} => { - ?o org:heldBy ?s. -}. - -{ - ?s org:heldBy ?o. -} => { - ?o org:holds ?s. -}. diff --git a/config/reasoner/dl2op/main/mapping.n3 b/config/reasoner/dl2op/main/mapping.n3 deleted file mode 100644 index a0fa3ba..0000000 --- a/config/reasoner/dl2op/main/mapping.n3 +++ /dev/null @@ -1,229 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: -PREFIX dc_terms: -PREFIX ch: -PREFIX person: -PREFIX lblodlg: - -# DL and OP both use persoon:gebruikteVoornaam but with different semantics (!) -# Hence the mapping is in two steps. -# The first step maps the DL persoon:gebruikteVoornaam to the OP counterpart -# and drops the DL persoon:gebruikteVoornaam statements with e:becomes -# A second reasoning will map DL foaf:name to OP persoon:gebruikteVoornaam -# Doing both at once would lead all DL foaf:names to incorrectly become foaf:givennames -# in OP - -# First name -# persoon:gebruikteVoornaam => foaf:givenName -# Alternatieve voornaam -# foaf:name => persoon:gebruikteVoornaam - -# Test Mock DL -# persoon_loket:gebruikteVoornaam "Didier". - -{ - { - ?s persoon_loket:gebruikteVoornaam ?o - } e:becomes { - ?s foaf:givenName ?o - } -} => { - ?s foaf:givenName ?o -}. - - -# First name -# persoon:gebruikteVoornaam => foaf:givenName (done in pre-processing) -# Alternatieve voornaam -# foaf:name => persoon:gebruikteVoornaam - -# Test Mock LLB -# foaf:name "Didier". -{ - { - ?s foaf:name ?o - } e:becomes { - ?s persoon:gebruikteVoornaam ?o - } -} => { - ?s persoon:gebruikteVoornaam ?o -}. - -# Test -# ex:s "2019-02-01T10:32:52+00:00"^^xsd:dateTime. -{ - ?s mandaat:bindingEinde ?eindeDate. - # use backward arrow rule defined below - ?eindeDate :dateTimeFromDate ?eindeDateTime. - { - ?s mandaat:bindingEinde ?eindeDate - } e:becomes { - ?s mandaat:bindingEinde ?eindeDateTime - }. -} => { - ?s mandaat:bindingEinde ?eindeDateTime -}. - -{ - ?s mandaat:start ?startDate. - # use backward arrow rule defined below - ?startDate :dateTimeFromDate ?startDateTime. - { - ?s mandaat:start ?startDate - } e:becomes { - ?s mandaat:start ?startDateTime - }. -} => { - ?s mandaat:start ?startDateTime -}. - -{ - ?s mandaat:einde ?eindeDate. - # use backward arrow rule defined below - ?eindeDate :dateTimeFromDate ?eindeDateTime. - { - ?s mandaat:einde ?eindeDate - } e:becomes { - ?s mandaat:einde ?eindeDateTime - }. -} => { - ?s mandaat:einde ?eindeDateTime -}. - -{ - ?s mandaat:bindingStart ?startDate. - # use backward arrow rule defined below - ?startDate :dateTimeFromDate ?startDateTime. - { - ?s mandaat:bindingStart ?startDate - } e:becomes { - ?s mandaat:bindingStart ?startDateTime - }. -} => { - ?s mandaat:bindingStart ?startDateTime -}. - -{ - ?s ch:startdatum ?startDate. - # use backward arrow rule defined below - ?startDate :dateTimeFromDate ?startDateTime. - { - ?s ch:startdatum ?startDate - } e:becomes { - ?s ch:startdatum ?startDateTime - }. -} => { - ?s ch:startdatum ?startDateTime -}. - -{ - ?s ch:eindedatum ?endDate. - # use backward arrow rule defined below - ?endDate :dateTimeFromDate ?endDateTime. - { - ?s ch:eindedatum ?endDate - } e:becomes { - ?s ch:eindedatum ?endDateTime - }. -} => { - ?s ch:eindedatum ?endDateTime -}. - - -# Backward arrow rule is like a function call. -# Removes the timezone indicator "Z" from incoming datetimes -# To make sure all datetimes have the same convention we now save them as -# datetime without the timezone indicator -# We use "T02:00:00" as time indicator to work around a virtuoso bug that -# results in datetimes being converted to a date when using "T00:00:00" -{ - ?date :dateTimeFromDate ?dateTime -} -<= -{ - ( ?date 1 10 ) string:substring ?dateSolo . - (?dateSolo "T02:00:00") string:concatenation ?datePlusTime. - (?datePlusTime xsd:dateTime) log:dtlit ?dateTime . -}. - -# ex:orgA besluit:classificatie . -{ - { - ?s besluit:classificatie ?o - } e:becomes { - ?s org:classification ?o - } -} => { - ?s org:classification ?o -}. - -# fix typo V -> v -# "1" . -{ - { - ?s adres:AdresVoorstelling.huisnummer ?o - } e:becomes { - ?s adres:Adresvoorstelling.huisnummer ?o - } -} => { - ?s adres:Adresvoorstelling.huisnummer ?o -}. - - -# Tijdspecialisatie -{ - { - ?s mandaat:isTijdspecialisatieVan ?o. - } e:becomes { - ?s generiek:isTijdspecialisatieVan ?o. - } -} => { - ?s generiek:isTijdspecialisatieVan ?o. -} . - -# In OP functionaris inherits from agents-in-position, which inherits from Agent -{ - ?s a lblodlg:Functionaris . -} => { - ?s a ch:AgentInPositie , - dc_terms:Agent . -} . - -# In OP mandataris inherits from agents-in-position, which inherits from Agent -{ - ?s a mandaat:Mandataris . -} => { - ?s a ch:AgentInPositie , - dc_terms:Agent . -} . - -# In OP AgentInPositie inherits from Agent -{ - ?s a ch:AgentInPositie . -} => { - ?s a dc_terms:Agent . -} . - -# In OP Person inherits from Agent -{ - ?s a person:Person . -} => { - ?s a dc_terms:Agent . -} . diff --git a/config/reasoner/dl2op/main/persoon_http_to_https.n3 b/config/reasoner/dl2op/main/persoon_http_to_https.n3 deleted file mode 100644 index e2f942a..0000000 --- a/config/reasoner/dl2op/main/persoon_http_to_https.n3 +++ /dev/null @@ -1,523 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - -# Map from http persoon to https persoon namespace. - -## classes: -{ - { - ?s a persoon_loket:Afstamming - } e:becomes { - ?s a persoon:Afstamming - } -} => { - ?s a persoon:Afstamming -}. - -{ - { - ?s a persoon_loket:BurgerlijkeStaat - } e:becomes { - ?s a persoon:BurgerlijkeStaat - } -} => { - ?s a persoon:BurgerlijkeStaat -}. - -{ - { - ?s a persoon_loket:Domicilie - } e:becomes { - ?s a persoon:Domicilie - } -} => { - ?s a persoon:Domicilie -}. - -{ - { - ?s a persoon_loket:Geboorte - } e:becomes { - ?s a persoon:Geboorte - } -} => { - ?s a persoon:Geboorte -}. - -{ - { - ?s a persoon_loket:GeenInwoner - } e:becomes { - ?s a persoon:GeenInwoner - } -} => { - ?s a persoon:GeenInwoner -}. - -{ - { - ?s a persoon_loket:GeregistreerdPersoon - } e:becomes { - ?s a persoon:GeregistreerdPersoon - } -} => { - ?s a persoon:GeregistreerdPersoon -}. - -{ - { - ?s a persoon_loket:Gezin - } e:becomes { - ?s a persoon:Gezin - } -} => { - ?s a persoon:Gezin -}. - -{ - { - ?s a persoon_loket:Gezinsrelatie - } e:becomes { - ?s a persoon:Gezinsrelatie - } -} => { - ?s a persoon:Gezinsrelatie -}. - -{ - { - ?s a persoon_loket:Huwelijk - } e:becomes { - ?s a persoon:Huwelijk - } -} => { - ?s a persoon:Huwelijk -}. - -{ - { - ?s a persoon_loket:Inwoner - } e:becomes { - ?s a persoon:Inwoner - } -} => { - ?s a persoon:Inwoner -}. - -{ - { - ?s a persoon_loket:Inwonerschap - } e:becomes { - ?s a persoon:Inwonerschap - } -} => { - ?s a persoon:Inwonerschap -}. - -{ - { - ?s a persoon_loket:Nationaliteit - } e:becomes { - ?s a persoon:Nationaliteit - } -} => { - ?s a persoon:Nationaliteit -}. - -{ - { - ?s a persoon_loket:Overlijden - } e:becomes { - ?s a persoon:Overlijden - } -} => { - ?s a persoon:Overlijden -}. - -{ - { - ?s a persoon_loket:PermanentInwoner - } e:becomes { - ?s a persoon:PermanentInwoner - } -} => { - ?s a persoon:PermanentInwoner -}. - -{ - { - ?s a persoon_loket:Persoonsgebeurtenis - } e:becomes { - ?s a persoon:Persoonsgebeurtenis - } -} => { - ?s a persoon:Persoonsgebeurtenis -}. - -{ - { - ?s a persoon_loket:Persoonsrelatie - } e:becomes { - ?s a persoon:Persoonsrelatie - } -} => { - ?s a persoon:Persoonsrelatie -}. - -{ - { - ?s a persoon_loket:Samenwonen - } e:becomes { - ?s a persoon:Samenwonen - } -} => { - ?s a persoon:Samenwonen -}. - -{ - { - ?s a persoon_loket:Staatsburger - } e:becomes { - ?s a persoon:Staatsburger - } -} => { - ?s a persoon:Staatsburger -}. - -{ - { - ?s a persoon_loket:Staatsburgerschap - } e:becomes { - ?s a persoon:Staatsburgerschap - } -} => { - ?s a persoon:Staatsburgerschap -}. - -{ - { - ?s a persoon_loket:TijdelijkInwoner - } e:becomes { - ?s a persoon:TijdelijkInwoner - } -} => { - ?s a persoon:TijdelijkInwoner -}. - -{ - { - ?s a persoon_loket:Verblijfplaats - } e:becomes { - ?s a persoon:Verblijfplaats - } -} => { - ?s a persoon:Verblijfplaats -}. - -{ - { - ?s a persoon_loket:Voogdij - } e:becomes { - ?s a persoon:Voogdij - } -} => { - ?s a persoon:Voogdij -}. - -{ - { - ?s a persoon_loket:Vreemdeling - } e:becomes { - ?s a persoon:Vreemdeling - } -} => { - ?s a persoon:Vreemdeling -}. - -## properties -{ - { - ?s persoon_loket:afstammingsType ?o - } e:becomes { - ?s persoon:afstammingsType ?o - } -} => { - ?s persoon:afstammingsType ?o -}. - -{ - { - ?s persoon_loket:alternatieveNaam ?o - } e:becomes { - ?s persoon:alternatieveNaam ?o - } -} => { - ?s persoon:alternatieveNaam ?o -}. - -{ - { - ?s persoon_loket:datum ?o - } e:becomes { - ?s persoon:datum ?o - } -} => { - ?s persoon:datum ?o -}. - -{ - { - ?s persoon_loket:datumVanAfstamming ?o - } e:becomes { - ?s persoon:datumVanAfstamming ?o - } -} => { - ?s persoon:datumVanAfstamming ?o -}. - -{ - { - ?s persoon_loket:geslacht ?o - } e:becomes { - ?s persoon:geslacht ?o - } -} => { - ?s persoon:geslacht ?o -}. - -{ - { - ?s persoon_loket:gezinsadres ?o - } e:becomes { - ?s persoon:gezinsadres ?o - } -} => { - ?s persoon:gezinsadres ?o -}. - -{ - { - ?s persoon_loket:gezinsrelatietype ?o - } e:becomes { - ?s persoon:gezinsrelatietype ?o - } -} => { - ?s persoon:gezinsrelatietype ?o -}. - -{ - { - ?s persoon_loket:heeftBurgerlijkeStaat ?o - } e:becomes { - ?s persoon:heeftBurgerlijkeStaat ?o - } -} => { - ?s persoon:heeftBurgerlijkeStaat ?o -}. - -{ - { - ?s persoon_loket:heeftGeboorte ?o - } e:becomes { - ?s persoon:heeftGeboorte ?o - } -} => { - ?s persoon:heeftGeboorte ?o -}. - -{ - { - ?s persoon_loket:heeftInwonerschap ?o - } e:becomes { - ?s persoon:heeftInwonerschap ?o - } -} => { - ?s persoon:heeftInwonerschap ?o -}. - -{ - { - ?s persoon_loket:heeftNationaliteit ?o - } e:becomes { - ?s persoon:heeftNationaliteit ?o - } -} => { - ?s persoon:heeftNationaliteit ?o -}. - -{ - { - ?s persoon_loket:heeftOverlijden ?o - } e:becomes { - ?s persoon:heeftOverlijden ?o - } -} => { - ?s persoon:heeftOverlijden ?o -}. - -{ - { - ?s persoon_loket:heeftPersoonsrelatie ?o - } e:becomes { - ?s persoon:heeftPersoonsrelatie ?o - } -} => { - ?s persoon:heeftPersoonsrelatie ?o -}. - -{ - { - ?s persoon_loket:heeftStaatsburgerschap ?o - } e:becomes { - ?s persoon:heeftStaatsburgerschap ?o - } -} => { - ?s persoon:heeftStaatsburgerschap ?o -}. - -{ - { - ?s persoon_loket:heeftVerblijfplaats ?o - } e:becomes { - ?s persoon:heeftVerblijfplaats ?o - } -} => { - ?s persoon:heeftVerblijfplaats ?o -}. - -{ - { - ?s persoon_loket:Inwonerschap.binnenJurisdictie ?o - } e:becomes { - ?s persoon:Inwonerschap.binnenJurisdictie ?o - } -} => { - ?s persoon:Inwonerschap.binnenJurisdictie ?o -}. - -{ - { - ?s persoon_loket:isHoofdVan ?o - } e:becomes { - ?s persoon:isHoofdVan ?o - } -} => { - ?s persoon:isHoofdVan ?o -}. - -{ - { - ?s persoon_loket:isLidVan ?o - } e:becomes { - ?s persoon:isLidVan ?o - } -} => { - ?s persoon:isLidVan ?o -}. - -{ - { - ?s persoon_loket:isRelatieMet ?o - } e:becomes { - ?s persoon:isRelatieMet ?o - } -} => { - ?s persoon:isRelatieMet ?o -}. - -{ - { - ?s persoon_loket:land ?o - } e:becomes { - ?s persoon:land ?o - } -} => { - ?s persoon:land ?o -}. - -{ - { - ?s persoon_loket:nationaliteit ?o - } e:becomes { - ?s persoon:nationaliteit ?o - } -} => { - ?s persoon:nationaliteit ?o -}. - -{ - { - ?s persoon_loket:plaats ?o - } e:becomes { - ?s persoon:plaats ?o - } -} => { - ?s persoon:plaats ?o -}. - -{ - { - ?s persoon_loket:registratie ?o - } e:becomes { - ?s persoon:registratie ?o - } -} => { - ?s persoon:registratie ?o -}. - -{ - { - ?s persoon_loket:Staatsburgerschap.binnenJurisdictie ?o - } e:becomes { - ?s persoon:Staatsburgerschap.binnenJurisdictie ?o - } -} => { - ?s persoon:Staatsburgerschap.binnenJurisdictie ?o -}. - -{ - { - ?s persoon_loket:type ?o - } e:becomes { - ?s persoon:type ?o - } -} => { - ?s persoon:type ?o -}. - -{ - { - ?s persoon_loket:verblijfsadres ?o - } e:becomes { - ?s persoon:verblijfsadres ?o - } -} => { - ?s persoon:verblijfsadres ?o -}. - -{ - { - ?s persoon_loket:volledigeNaam ?o - } e:becomes { - ?s persoon:volledigeNaam ?o - } -} => { - ?s persoon:volledigeNaam ?o -}. \ No newline at end of file diff --git a/config/reasoner/dl2op/main/phone_number.n3 b/config/reasoner/dl2op/main/phone_number.n3 deleted file mode 100644 index da5ce99..0000000 --- a/config/reasoner/dl2op/main/phone_number.n3 +++ /dev/null @@ -1,32 +0,0 @@ -PREFIX string: -PREFIX e: -PREFIX schema: -PREFIX : <#> -{ - ?s schema:telephone ?number. - - # Remove all non digits - ( ?number ("""[^+\\d]""") ("") ) string:replaceAll ?scrape_result. - - # Replace leading 00 with + - ( ?scrape_result """^00""" "+") string:replace ?replaced_zero_zero. - - ( ?replaced_zero_zero """^0""" "+32") string:replace ?default_be. - - ( ?default_be """\\+320""" "+32" ) string:replace ?replace_320. - - ( ?replace_320 """^320""" "+32" ) string:replace ?final_result. - - ?final_result string:matches """^\\+((32\\d{8})|(324\\d{8})|((?!32)\\d+))$""". - - ( "tel:" ?final_result ) string:concatenation ?parsed_result . - - { - ?s schema:telephone ?number. - } e:becomes { - ?s schema:telephone ?parsed_result . - }. - -} => { - ?s schema:telephone ?parsed_result . -}. \ No newline at end of file diff --git a/config/reasoner/dl2op/main/query.n3q b/config/reasoner/dl2op/main/query.n3q deleted file mode 100644 index 55d3d9d..0000000 --- a/config/reasoner/dl2op/main/query.n3q +++ /dev/null @@ -1,284 +0,0 @@ -# Filtering classes to ingest - -@prefix log: . - -{ - ?s a ; - ?p ?o . - } => { - ?s a ; - ?p ?o . -}. - -{ - ?s a ; - ?p ?o . - } => { - ?s a ; - ?p ?o . -}. - -{ - ?s a ; - ?p ?o . - } => { - ?s a ; - ?p ?o . -}. - -# For functionarissen, the contact point is on the bestuursfunctie and not on the agent in position - -{ - ?s a ; - ?o . - } => { - ?s a ; - ?o . -}. - -# Functionarissen should only be linked to an IGS, AGB, APB, gemeente, district, -# provincie, OCMW, or OCMW association (FOR NOW) - -## Province -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## Municipality -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## OCMW -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## district -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## AGB -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## APB -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## projectvereniging (IGS) -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. -## dienstverlenend vereniging (IGS) -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## opdrachthoudende vereniging (IGS) -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## opdrachthoudende vereniging met private deelname (IGS) -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## OCMW associations -# Note: Loket uses only the general classification code for OCMW associations, -# while OP uses its 5 more specific subtypes -{ - ?s a ; - ?bestuursfunctie ; - ?p ?o . - - ?orgaanInTime ?bestuursfunctie ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -# Mandatarissen should only be linked to a gemeente, district, provincie or OCMW -# (FOR NOW) - -## province -{ - ?s a ; - ?mandate ; - ?p ?o . - - ?orgaanInTime ?mandate ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## municipality -{ - ?s a ; - ?mandate ; - ?p ?o . - - ?orgaanInTime ?mandate ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## OCMW -{ - ?s a ; - ?mandate ; - ?p ?o . - - ?orgaanInTime ?mandate ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -## district -{ - ?s a ; - ?mandate ; - ?p ?o . - - ?orgaanInTime ?mandate ; - ?orgaan . - ?orgaan ?bestuur . - ?bestuur . - } => { - ?s a ; - ?p ?o . -}. - -{ - ?s a ; - ?p ?o . - } => { - ?s a ; - ?p ?o . -}. -{ - ?s a ; - ?p ?o . - } => { - ?s a ; - ?p ?o . -}. diff --git a/config/reasoner/dl2op/main/retract_empty_strings.n3 b/config/reasoner/dl2op/main/retract_empty_strings.n3 deleted file mode 100644 index dfe2ddd..0000000 --- a/config/reasoner/dl2op/main/retract_empty_strings.n3 +++ /dev/null @@ -1,26 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - -# Retract empty strings -{ - { - ?s ?p "" - } e:becomes {}. -} => {}. diff --git a/config/reasoner/dl2op/main/rrn.n3 b/config/reasoner/dl2op/main/rrn.n3 deleted file mode 100644 index a87e31d..0000000 --- a/config/reasoner/dl2op/main/rrn.n3 +++ /dev/null @@ -1,60 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - -# Rijksregisternummer -# Extend identifiers to match OP's model -# skos:notation "00010100105". -{ - ?identifier skos:notation ?notation. - ?notation string:notEqualIgnoringCase "Rijksregisternummer". - ?identifier log:uri ?identifierString. - (?identifierString "STRUCTURED_IDENTIFIER") string:concatenation ?hashInput. - ?hashInput crypto:md5 ?uuid. - ("http://data.lblod.info/id/gestructureerdeIdentificatoren/" ?uuid) string:concatenation ?structuredIdString. - ?structuredIdentifier log:uri ?structuredIdString. - - { - ?identifier skos:notation ?notation. - } e:becomes { - ?identifier - generiek:gestructureerdeIdentificator ?structuredIdentifier ; - skos:notation "Rijksregisternummer" . - }. - -} => { - ?identifier - generiek:gestructureerdeIdentificator ?structuredIdentifier ; - skos:notation "Rijksregisternummer" . - - ?structuredIdentifier a generiek:GestructureerdeIdentificator ; - mu:uuid ?uuid ; - generiek:lokaleIdentificator ?notation -}. - -# identifier property in the export is only used for RRN. -{ - { - ?s adms:identifier ?o - } e:becomes { - ?s persoon:registratie ?o - } -} => { - ?s persoon:registratie ?o -}. diff --git a/config/reasoner/dl2op/private-info/inverse_relations.n3 b/config/reasoner/dl2op/private-info/inverse_relations.n3 deleted file mode 100644 index bfeda31..0000000 --- a/config/reasoner/dl2op/private-info/inverse_relations.n3 +++ /dev/null @@ -1,33 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - - -# Inverse properties -{ - ?s org:holds ?o. -} => { - ?o org:heldBy ?s. -}. - -{ - ?s org:heldBy ?o. -} => { - ?o org:holds ?s. -}. diff --git a/config/reasoner/dl2op/private-info/mapping.n3 b/config/reasoner/dl2op/private-info/mapping.n3 deleted file mode 100644 index b174238..0000000 --- a/config/reasoner/dl2op/private-info/mapping.n3 +++ /dev/null @@ -1,196 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: -PREFIX ch: - - -# DL and OP both use persoon:gebruikteVoornaam but with different semantics (!) -# Hence the mapping is in two steps. -# The first step maps the DL persoon:gebruikteVoornaam to the OP counterpart -# and drops the DL persoon:gebruikteVoornaam statements with e:becomes -# A second reasoning will map DL foaf:name to OP persoon:gebruikteVoornaam -# Doing both at once would lead all DL foaf:names to incorrectly become foaf:givennames -# in OP - -# First name -# persoon:gebruikteVoornaam => foaf:givenName -# Alternatieve voornaam -# foaf:name => persoon:gebruikteVoornaam - -# Test Mock DL -# persoon_loket:gebruikteVoornaam "Didier". - -{ - { - ?s persoon_loket:gebruikteVoornaam ?o - } e:becomes { - ?s foaf:givenName ?o - } -} => { - ?s foaf:givenName ?o -}. - - -# First name -# persoon:gebruikteVoornaam => foaf:givenName (done in pre-processing) -# Alternatieve voornaam -# foaf:name => persoon:gebruikteVoornaam - -# Test Mock LLB -# foaf:name "Didier". -{ - { - ?s foaf:name ?o - } e:becomes { - ?s persoon:gebruikteVoornaam ?o - } -} => { - ?s persoon:gebruikteVoornaam ?o -}. - -# Test -# ex:s "2019-01-01T19:32:52+00:00"^^xsd:dateTime. -{ - ?s mandaat:bindingStart ?startDate. - # use backward arrow rule defined below - ?startDate :dateTimeFromDate ?startDateTime. - { - ?s mandaat:bindingStart ?startDate - } e:becomes { - ?s mandaat:bindingStart ?startDateTime - }. -} => { - ?s mandaat:bindingStart ?startDateTime -}. - -{ - ?s mandaat:bindingEinde ?eindeDate. - # use backward arrow rule defined below - ?eindeDate :dateTimeFromDate ?eindeDateTime. - { - ?s mandaat:bindingEinde ?eindeDate - } e:becomes { - ?s mandaat:bindingEinde ?eindeDateTime - }. -} => { - ?s mandaat:bindingEinde ?eindeDateTime -}. - -{ - ?s mandaat:start ?startDate. - # use backward arrow rule defined below - ?startDate :dateTimeFromDate ?startDateTime. - { - ?s mandaat:start ?startDate - } e:becomes { - ?s mandaat:start ?startDateTime - }. -} => { - ?s mandaat:start ?startDateTime -}. - -{ - ?s mandaat:einde ?eindeDate. - # use backward arrow rule defined below - ?eindeDate :dateTimeFromDate ?eindeDateTime. - { - ?s mandaat:einde ?eindeDate - } e:becomes { - ?s mandaat:einde ?eindeDateTime - }. -} => { - ?s mandaat:einde ?eindeDateTime -}. - -{ - ?s ch:startdatum ?startDate. - # use backward arrow rule defined below - ?startDate :dateTimeFromDate ?startDateTime. - { - ?s ch:startdatum ?startDate - } e:becomes { - ?s ch:startdatum ?startDateTime - }. -} => { - ?s ch:startdatum ?startDateTime -}. - -{ - ?s ch:eindedatum ?endDate. - # use backward arrow rule defined below - ?endDate :dateTimeFromDate ?endDateTime. - { - ?s ch:eindedatum ?endDate - } e:becomes { - ?s ch:eindedatum ?endDateTime - }. -} => { - ?s ch:eindedatum ?endDateTime -}. - -# Backward arrow rule is like a function call. -# Removes the timezone indicator "Z" from incoming datetimes -# To make sure all datetimes have the same convention we now save them as -# datetime without the timezone indicator -# We use "T02:00:00" as time indicator to work around a virtuoso bug that -# results in datetimes being converted to a date when using "T00:00:00" -{ - ?date :dateTimeFromDate ?dateTime -} -<= -{ - ( ?date 1 10 ) string:substring ?dateSolo . - (?dateSolo "T02:00:00") string:concatenation ?datePlusTime. - (?datePlusTime xsd:dateTime) log:dtlit ?dateTime . -}. - -# ex:orgA besluit:classificatie . -{ - { - ?s besluit:classificatie ?o - } e:becomes { - ?s org:classification ?o - } -} => { - ?s org:classification ?o -}. - -# fix typo V -> v -# "1" . -{ - { - ?s adres:AdresVoorstelling.huisnummer ?o - } e:becomes { - ?s adres:Adresvoorstelling.huisnummer ?o - } -} => { - ?s adres:Adresvoorstelling.huisnummer ?o -}. - - -# Tijdspecialisatie -{ - { - ?s mandaat:isTijdspecialisatieVan ?o. - } e:becomes { - ?s generiek:isTijdspecialisatieVan ?o. - } -} => { - ?s generiek:isTijdspecialisatieVan ?o. -}. diff --git a/config/reasoner/dl2op/private-info/persoon_http_to_https.n3 b/config/reasoner/dl2op/private-info/persoon_http_to_https.n3 deleted file mode 100644 index 8afa661..0000000 --- a/config/reasoner/dl2op/private-info/persoon_http_to_https.n3 +++ /dev/null @@ -1,524 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - - -# Map from http persoon to https persoon namespace. - -## classes: -{ - { - ?s a persoon_loket:Afstamming - } e:becomes { - ?s a persoon:Afstamming - } -} => { - ?s a persoon:Afstamming -}. - -{ - { - ?s a persoon_loket:BurgerlijkeStaat - } e:becomes { - ?s a persoon:BurgerlijkeStaat - } -} => { - ?s a persoon:BurgerlijkeStaat -}. - -{ - { - ?s a persoon_loket:Domicilie - } e:becomes { - ?s a persoon:Domicilie - } -} => { - ?s a persoon:Domicilie -}. - -{ - { - ?s a persoon_loket:Geboorte - } e:becomes { - ?s a persoon:Geboorte - } -} => { - ?s a persoon:Geboorte -}. - -{ - { - ?s a persoon_loket:GeenInwoner - } e:becomes { - ?s a persoon:GeenInwoner - } -} => { - ?s a persoon:GeenInwoner -}. - -{ - { - ?s a persoon_loket:GeregistreerdPersoon - } e:becomes { - ?s a persoon:GeregistreerdPersoon - } -} => { - ?s a persoon:GeregistreerdPersoon -}. - -{ - { - ?s a persoon_loket:Gezin - } e:becomes { - ?s a persoon:Gezin - } -} => { - ?s a persoon:Gezin -}. - -{ - { - ?s a persoon_loket:Gezinsrelatie - } e:becomes { - ?s a persoon:Gezinsrelatie - } -} => { - ?s a persoon:Gezinsrelatie -}. - -{ - { - ?s a persoon_loket:Huwelijk - } e:becomes { - ?s a persoon:Huwelijk - } -} => { - ?s a persoon:Huwelijk -}. - -{ - { - ?s a persoon_loket:Inwoner - } e:becomes { - ?s a persoon:Inwoner - } -} => { - ?s a persoon:Inwoner -}. - -{ - { - ?s a persoon_loket:Inwonerschap - } e:becomes { - ?s a persoon:Inwonerschap - } -} => { - ?s a persoon:Inwonerschap -}. - -{ - { - ?s a persoon_loket:Nationaliteit - } e:becomes { - ?s a persoon:Nationaliteit - } -} => { - ?s a persoon:Nationaliteit -}. - -{ - { - ?s a persoon_loket:Overlijden - } e:becomes { - ?s a persoon:Overlijden - } -} => { - ?s a persoon:Overlijden -}. - -{ - { - ?s a persoon_loket:PermanentInwoner - } e:becomes { - ?s a persoon:PermanentInwoner - } -} => { - ?s a persoon:PermanentInwoner -}. - -{ - { - ?s a persoon_loket:Persoonsgebeurtenis - } e:becomes { - ?s a persoon:Persoonsgebeurtenis - } -} => { - ?s a persoon:Persoonsgebeurtenis -}. - -{ - { - ?s a persoon_loket:Persoonsrelatie - } e:becomes { - ?s a persoon:Persoonsrelatie - } -} => { - ?s a persoon:Persoonsrelatie -}. - -{ - { - ?s a persoon_loket:Samenwonen - } e:becomes { - ?s a persoon:Samenwonen - } -} => { - ?s a persoon:Samenwonen -}. - -{ - { - ?s a persoon_loket:Staatsburger - } e:becomes { - ?s a persoon:Staatsburger - } -} => { - ?s a persoon:Staatsburger -}. - -{ - { - ?s a persoon_loket:Staatsburgerschap - } e:becomes { - ?s a persoon:Staatsburgerschap - } -} => { - ?s a persoon:Staatsburgerschap -}. - -{ - { - ?s a persoon_loket:TijdelijkInwoner - } e:becomes { - ?s a persoon:TijdelijkInwoner - } -} => { - ?s a persoon:TijdelijkInwoner -}. - -{ - { - ?s a persoon_loket:Verblijfplaats - } e:becomes { - ?s a persoon:Verblijfplaats - } -} => { - ?s a persoon:Verblijfplaats -}. - -{ - { - ?s a persoon_loket:Voogdij - } e:becomes { - ?s a persoon:Voogdij - } -} => { - ?s a persoon:Voogdij -}. - -{ - { - ?s a persoon_loket:Vreemdeling - } e:becomes { - ?s a persoon:Vreemdeling - } -} => { - ?s a persoon:Vreemdeling -}. - -## properties -{ - { - ?s persoon_loket:afstammingsType ?o - } e:becomes { - ?s persoon:afstammingsType ?o - } -} => { - ?s persoon:afstammingsType ?o -}. - -{ - { - ?s persoon_loket:alternatieveNaam ?o - } e:becomes { - ?s persoon:alternatieveNaam ?o - } -} => { - ?s persoon:alternatieveNaam ?o -}. - -{ - { - ?s persoon_loket:datum ?o - } e:becomes { - ?s persoon:datum ?o - } -} => { - ?s persoon:datum ?o -}. - -{ - { - ?s persoon_loket:datumVanAfstamming ?o - } e:becomes { - ?s persoon:datumVanAfstamming ?o - } -} => { - ?s persoon:datumVanAfstamming ?o -}. - -{ - { - ?s persoon_loket:geslacht ?o - } e:becomes { - ?s persoon:geslacht ?o - } -} => { - ?s persoon:geslacht ?o -}. - -{ - { - ?s persoon_loket:gezinsadres ?o - } e:becomes { - ?s persoon:gezinsadres ?o - } -} => { - ?s persoon:gezinsadres ?o -}. - -{ - { - ?s persoon_loket:gezinsrelatietype ?o - } e:becomes { - ?s persoon:gezinsrelatietype ?o - } -} => { - ?s persoon:gezinsrelatietype ?o -}. - -{ - { - ?s persoon_loket:heeftBurgerlijkeStaat ?o - } e:becomes { - ?s persoon:heeftBurgerlijkeStaat ?o - } -} => { - ?s persoon:heeftBurgerlijkeStaat ?o -}. - -{ - { - ?s persoon_loket:heeftGeboorte ?o - } e:becomes { - ?s persoon:heeftGeboorte ?o - } -} => { - ?s persoon:heeftGeboorte ?o -}. - -{ - { - ?s persoon_loket:heeftInwonerschap ?o - } e:becomes { - ?s persoon:heeftInwonerschap ?o - } -} => { - ?s persoon:heeftInwonerschap ?o -}. - -{ - { - ?s persoon_loket:heeftNationaliteit ?o - } e:becomes { - ?s persoon:heeftNationaliteit ?o - } -} => { - ?s persoon:heeftNationaliteit ?o -}. - -{ - { - ?s persoon_loket:heeftOverlijden ?o - } e:becomes { - ?s persoon:heeftOverlijden ?o - } -} => { - ?s persoon:heeftOverlijden ?o -}. - -{ - { - ?s persoon_loket:heeftPersoonsrelatie ?o - } e:becomes { - ?s persoon:heeftPersoonsrelatie ?o - } -} => { - ?s persoon:heeftPersoonsrelatie ?o -}. - -{ - { - ?s persoon_loket:heeftStaatsburgerschap ?o - } e:becomes { - ?s persoon:heeftStaatsburgerschap ?o - } -} => { - ?s persoon:heeftStaatsburgerschap ?o -}. - -{ - { - ?s persoon_loket:heeftVerblijfplaats ?o - } e:becomes { - ?s persoon:heeftVerblijfplaats ?o - } -} => { - ?s persoon:heeftVerblijfplaats ?o -}. - -{ - { - ?s persoon_loket:Inwonerschap.binnenJurisdictie ?o - } e:becomes { - ?s persoon:Inwonerschap.binnenJurisdictie ?o - } -} => { - ?s persoon:Inwonerschap.binnenJurisdictie ?o -}. - -{ - { - ?s persoon_loket:isHoofdVan ?o - } e:becomes { - ?s persoon:isHoofdVan ?o - } -} => { - ?s persoon:isHoofdVan ?o -}. - -{ - { - ?s persoon_loket:isLidVan ?o - } e:becomes { - ?s persoon:isLidVan ?o - } -} => { - ?s persoon:isLidVan ?o -}. - -{ - { - ?s persoon_loket:isRelatieMet ?o - } e:becomes { - ?s persoon:isRelatieMet ?o - } -} => { - ?s persoon:isRelatieMet ?o -}. - -{ - { - ?s persoon_loket:land ?o - } e:becomes { - ?s persoon:land ?o - } -} => { - ?s persoon:land ?o -}. - -{ - { - ?s persoon_loket:nationaliteit ?o - } e:becomes { - ?s persoon:nationaliteit ?o - } -} => { - ?s persoon:nationaliteit ?o -}. - -{ - { - ?s persoon_loket:plaats ?o - } e:becomes { - ?s persoon:plaats ?o - } -} => { - ?s persoon:plaats ?o -}. - -{ - { - ?s persoon_loket:registratie ?o - } e:becomes { - ?s persoon:registratie ?o - } -} => { - ?s persoon:registratie ?o -}. - -{ - { - ?s persoon_loket:Staatsburgerschap.binnenJurisdictie ?o - } e:becomes { - ?s persoon:Staatsburgerschap.binnenJurisdictie ?o - } -} => { - ?s persoon:Staatsburgerschap.binnenJurisdictie ?o -}. - -{ - { - ?s persoon_loket:type ?o - } e:becomes { - ?s persoon:type ?o - } -} => { - ?s persoon:type ?o -}. - -{ - { - ?s persoon_loket:verblijfsadres ?o - } e:becomes { - ?s persoon:verblijfsadres ?o - } -} => { - ?s persoon:verblijfsadres ?o -}. - -{ - { - ?s persoon_loket:volledigeNaam ?o - } e:becomes { - ?s persoon:volledigeNaam ?o - } -} => { - ?s persoon:volledigeNaam ?o -}. \ No newline at end of file diff --git a/config/reasoner/dl2op/private-info/query.n3q b/config/reasoner/dl2op/private-info/query.n3q deleted file mode 100644 index bddbb11..0000000 --- a/config/reasoner/dl2op/private-info/query.n3q +++ /dev/null @@ -1,90 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX skos: -PREFIX string: -PREFIX xsd: - - - -# Rijksregisternummer -# Extend identifiers to match OP's model -# skos:notation "00010100105". -{ - ?identifier - generiek:gestructureerdeIdentificator ?structuredIdentifier ; - skos:notation "Rijksregisternummer" . - - ?structuredIdentifier a generiek:GestructureerdeIdentificator ; - mu:uuid ?uuid ; - generiek:lokaleIdentificator ?notation -} => { - ?identifier - generiek:gestructureerdeIdentificator ?structuredIdentifier ; - skos:notation "Rijksregisternummer" . - - ?structuredIdentifier a generiek:GestructureerdeIdentificator ; - mu:uuid ?uuid ; - generiek:lokaleIdentificator ?notation -}. - -# identifier property in the export is only used for RRN. -{ - ?s persoon:registratie ?o -} => { - ?s persoon:registratie ?o -}. - -{ - ?s a - } => { - ?s a -}. - -# Nationality -{ - ?s persoon:heeftNationaliteit ?o -} => { - ?s persoon:heeftNationaliteit ?o -}. - - -# Birth and related attributes -{ - ?s a persoon:Geboorte; - ?p ?o. -} => { - ?s a persoon:Geboorte; - ?p ?o. -}. - -{ - ?s persoon:heeftGeboorte ?o -} => { - ?s persoon:heeftGeboorte ?o -}. - -{ - ?s persoon:datum ?o -} => { - ?s persoon:datum ?o -}. - -# Gender -{ - ?s persoon:geslacht ?o -} => { - ?s persoon:geslacht ?o -}. \ No newline at end of file diff --git a/config/reasoner/dl2op/private-info/retract_empty_strings.n3 b/config/reasoner/dl2op/private-info/retract_empty_strings.n3 deleted file mode 100644 index f8204a7..0000000 --- a/config/reasoner/dl2op/private-info/retract_empty_strings.n3 +++ /dev/null @@ -1,27 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - - -# Retract empty strings -{ - { - ?s ?p "" - } e:becomes {}. -} => {}. diff --git a/config/reasoner/dl2op/private-info/rrn.n3 b/config/reasoner/dl2op/private-info/rrn.n3 deleted file mode 100644 index b45c688..0000000 --- a/config/reasoner/dl2op/private-info/rrn.n3 +++ /dev/null @@ -1,62 +0,0 @@ -PREFIX : <#> -PREFIX adms: -PREFIX adres: -PREFIX besluit: -PREFIX crypto: -PREFIX e: -PREFIX ex: -PREFIX foaf: -PREFIX func: -PREFIX generiek: -PREFIX log: -PREFIX mandaat: -PREFIX mu: -PREFIX org: -PREFIX persoon: -PREFIX persoon_loket: -PREFIX skos: -PREFIX string: -PREFIX xsd: - - - -# Rijksregisternummer -# Extend identifiers to match OP's model -# skos:notation "00010100105". -{ - ?identifier skos:notation ?notation. - ?notation string:notEqualIgnoringCase "Rijksregisternummer". - ?identifier log:uri ?identifierString. - (?identifierString "STRUCTURED_IDENTIFIER") string:concatenation ?hashInput. - ?hashInput crypto:md5 ?uuid. - ("http://data.lblod.info/id/gestructureerdeIdentificatoren/" ?uuid) string:concatenation ?structuredIdString. - ?structuredIdentifier log:uri ?structuredIdString. - - { - ?identifier skos:notation ?notation. - } e:becomes { - ?identifier - generiek:gestructureerdeIdentificator ?structuredIdentifier ; - skos:notation "Rijksregisternummer" . - }. - -} => { - ?identifier - generiek:gestructureerdeIdentificator ?structuredIdentifier ; - skos:notation "Rijksregisternummer" . - - ?structuredIdentifier a generiek:GestructureerdeIdentificator ; - mu:uuid ?uuid ; - generiek:lokaleIdentificator ?notation -}. - -# identifier property in the export is only used for RRN. -{ - { - ?s adms:identifier ?o - } e:becomes { - ?s persoon:registratie ?o - } -} => { - ?s persoon:registratie ?o -}. diff --git a/docker-compose.yml b/docker-compose.yml index 8dbf9b8..f8e27ea 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -273,14 +273,6 @@ services: - "logging=true" restart: always logging: *default-logging - reasoner: - image: eyereasoner/reasoning-service:1.0.4 - volumes: - - ./config/reasoner:/config - labels: - - "logging=true" - restart: always - logging: *default-logging report-generation: image: lblod/loket-report-generation-service:0.7.0 environment: From d58d200341798fef380ae1b9d64f343fc7b16472 Mon Sep 17 00:00:00 2001 From: mirdono Date: Fri, 7 Feb 2025 10:07:38 +0100 Subject: [PATCH 63/64] chore: additional example environment settings for worship consumers This adds example entries for `DCR_SYNC_LOGIN_ENDPOINT` and `DCR_SECRET_KEY` environment settings for the worship consumers. The example value for `DCR_SYNC_LOGIN_ENDPOINT` was chosen to match the value for `DCR_SYNC_BASE_URL`. --- docker-compose.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 8dbf9b8..718a3b8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -446,6 +446,8 @@ services: image: lblod/delta-consumer:0.1.0 environment: DCR_SYNC_BASE_URL: "https://loket.lblod.info/" + DCR_SYNC_LOGIN_ENDPOINT: "https://loket.lblod.info/sync/worship-services-sensitive/login" + DCR_SECRET_KEY: "" DCR_SERVICE_NAME: "worship-services-main-info-consumer" DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/WorshipServicesSensitiveCacheGraphDump" DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/wsSensitive" @@ -479,6 +481,8 @@ services: image: lblod/delta-consumer:0.1.0 environment: DCR_SYNC_BASE_URL: "https://loket.lblod.info/" + DCR_SYNC_LOGIN_ENDPOINT: "https://loket.lblod.info/sync/worship-services-sensitive/login" + DCR_SECRET_KEY: "" DCR_SERVICE_NAME: "worship-services-private-info-consumer" DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/WorshipServicesSensitiveCacheGraphDump" DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/wsSensitive" From af74dc7b7b3219d17346e01bf098208cbddc233a Mon Sep 17 00:00:00 2001 From: Claire Lovisa Date: Fri, 7 Feb 2025 11:11:51 +0100 Subject: [PATCH 64/64] Update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e56e7b7..0221cab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,8 +11,12 @@ - Remove gemeente and provincie classifications from admin unit graph [OP-3393] - Remove several OCMW bcsd faciliteitgemeenten [OP-3535] - Completely remove AGB Stekene's data. [OP-3409] +- Remove reasoner service, replaced by new consumer logic ### Deploy Notes + +- Before pulling the changes + + Shut down the reasoner and thank it for its good service: `drc down reasoner` - Re-enable contact date editing: + remove `EMBER_ENABLE_EDIT_CONTACT_DATA_FEATURE` flag in `docker-compose.override.yml` + Stop and remove the `clb-contact-data-consumer` service