Compare commits

..

196 Commits

Author SHA1 Message Date
Damon Kennes
b7b66a158f Merge pull request #632 from lblod/feature/OP-3905-add-change-event-werkingsgebied
OP-3905: add change event wijzigen werkingsgebied
2026-09-10 14:05:01 +02:00
Damon
9743589fad OP-3905: frontend bump 2026-09-10 14:04:34 +02:00
Damon
ec5a01cc9c OP-3905: add change event wijzigen werkingsgebied 2026-09-08 16:02:46 +02:00
Damon Kennes
7759616e11 Merge pull request #628 from lblod/OP-3835-add-columns-to-existing-administrative-units-query
OP-3835: add columns to existing administrative units query
2026-09-03 14:40:02 +02:00
Damon
9421c9b91b OP-3835: changelog update 2026-09-03 14:38:40 +02:00
Damon
abd3259567 OP-3835: turned back cron 2026-09-02 13:32:25 +02:00
Damon
20f50f6af4 OP-3835: added columns to administrative units query 2026-09-02 13:30:54 +02:00
Claire Lovisa
c65fb23c0a Release v1.41.3 2026-08-28 10:42:00 +02:00
Claire Lovisa
9c3a014c74 Fix betrokken lokale besturen links via migration 2026-08-28 10:42:00 +02:00
Sam Van Campenhout
f6701d613b Update the frontend to v1.42.0
a0fb2536af/CHANGELOG.md (v1420-2026-08-20)
2026-08-26 16:04:24 +02:00
Claire Lovisa
93d6132fd6 Merge pull request #625 from lblod/fix/identifier-header-missing
Add missing header to identifier calls
2026-08-26 11:47:02 +02:00
Claire Lovisa
a2cfc23117 Add missing header to identifier calls 2026-08-26 11:38:37 +02:00
Claire Lovisa
e7ca87018f Merge branch 'master' into development 2026-08-26 09:15:33 +02:00
Claire Lovisa
2f9de3e558 Merge pull request #624 from lblod/hotfix/v1.41.2
Hotfix/v1.41.2
2026-08-26 09:14:01 +02:00
Claire Lovisa
461e0dc3b4 Merge branch 'master' into hotfix/v1.41.2 2026-08-26 09:13:32 +02:00
Claire Lovisa
fd80e71dcf Release v1.41.2 2026-08-25 14:11:22 +02:00
Claire Lovisa
226d5221a1 Merge pull request #622 from lblod/fix/producer-jobs-getting-stuck
Add timeout to producer's jobs
2026-08-25 13:41:49 +02:00
Claire Lovisa
db291a6b65 Merge branch 'hotfix/v1.41.1' into fix/producer-jobs-getting-stuck 2026-08-25 13:41:12 +02:00
Claire Lovisa
00f153b8fb Merge pull request #621 from lblod/datafix/betrokken-besturen-updates
Fix betrokken lokale besturen links via migration
2026-08-25 13:38:11 +02:00
Claire Lovisa
f25057912d Update changelog 2026-08-25 09:53:11 +02:00
Claire Lovisa
0b26737122 Set timeout to producer jobs 2026-08-25 09:52:01 +02:00
Claire Lovisa
04fb573e47 Fix betrokken lokale besturen links via migration 2026-08-24 14:36:07 +02:00
Damon Kennes
efaa9c6d08 Merge pull request #619 from lblod/OP-3851-migration-to-fix-duplicate-worship-service-mandates
OP-3851: added migrations that remove duplicate rechtswege/grote helf…
2026-08-21 14:17:35 +02:00
Damon
2142483982 Merge branch 'development' into OP-3851-migration-to-fix-duplicate-worship-service-mandates
# Conflicts:
#	CHANGELOG.md
2026-08-21 14:13:01 +02:00
Damon Kennes
21a12b0a93 Merge pull request #618 from lblod/DL-7473-add-politiecollege
DL-7473: added politiecollege bestuursorgaan via migrations + ended p…
2026-08-21 14:10:23 +02:00
Damon
d34ccaafc8 DL-7473: bump construct service 2026-08-21 14:09:55 +02:00
Damon
4c8b9b00bf Merge branch 'development' into DL-7473-add-politiecollege
# Conflicts:
#	CHANGELOG.md
2026-08-21 14:04:23 +02:00
Damon Kennes
17156aa75e Merge pull request #620 from lblod/fix/OP-3867-fix-mandaten-consumer-flow
OP-3867: fix to mandataris mapping query + backfil migration for stuc…
2026-08-21 11:39:34 +02:00
Damon
4449d4562d Merge branch 'development' into fix/OP-3867-fix-mandaten-consumer-flow
# Conflicts:
#	CHANGELOG.md
2026-08-21 11:29:28 +02:00
Damon
8413f79c17 OP-3867: changelog update 2026-08-21 11:28:42 +02:00
Damon
072277e545 frontend bump 2026-08-20 13:29:35 +02:00
Damon
f46cd2012e OP-3867: fix to mandataris mapping query + backfil migration for stuck mandatarissen 2026-08-19 16:10:56 +02:00
Damon
1944f87cb2 OP-3851: added migrations that remove duplicate rechtswege/grote helft mandates from worship services within the same election cycle 2026-08-18 14:08:55 +02:00
Damon
132cd20bdc DL-7473: added politiecollege bestuursorgaan via migrations + ended politieraad orgs 2026-08-12 14:06:27 +02:00
Damon Kennes
2fde7737ac Merge pull request #616 from lblod/DL-7485-restrict-imam-roles-based-on-worship-status
Dl 7485 restrict imam roles based on worship status
2026-08-07 16:42:08 +02:00
Damon
f1e4e5acda DL-7485: edit changelog 2026-08-07 16:38:12 +02:00
Damon
42eab1d77e Merge branch 'development' into DL-7485-restrict-imam-roles-based-on-worship-status
# Conflicts:
#	CHANGELOG.md
2026-08-07 16:36:20 +02:00
NikiDeVisscher
2623126771 Merge pull request #617 from lblod/feature/db-cleanup-werkingsgebieden-codelist
[OP-3841]: Add jobs for cleanup service
2026-08-07 16:32:16 +02:00
NikiDeVisscher
1eb487eeb2 Merge branch 'development' into feature/db-cleanup-werkingsgebieden-codelist 2026-08-07 16:31:43 +02:00
NikiDeVisscher
18c803410a Remove job to delete werkingsgebied from codelist 2026-08-07 16:26:26 +02:00
benjay10
88059fd091 Bump frontend + CHANGELOG frontend 2026-08-07 15:32:26 +02:00
benjay10
3387d3d790 CHANGELOG: provenance harvested worship positions 2026-08-07 14:17:29 +02:00
Damon
6f52c0234d DL-7485: changelog update 2026-08-07 14:15:32 +02:00
Ben
68c2217a56 Merge pull request #610 from lblod/harvest-meta-data
[DL-7438] Add new harvest meta data attributes
2026-08-07 14:14:19 +02:00
Boris De Vloed
5738d0713f Merge pull request #611 from lblod/feature/OP-3844-andere-org-types
OP-3844: Regionaal zorgplatform + Andere organization types
2026-08-07 13:49:16 +02:00
Boris De Vloed
96b8e58b4f OP-3844: bump frontend to 1.40.5 2026-08-07 13:46:22 +02:00
benjay10
eccabc9b3a Harvester provenance: rename to common prefix 2026-08-07 02:21:57 +02:00
NikiDeVisscher
afae39a0a5 Merge branch 'development' into feature/db-cleanup-werkingsgebieden-codelist 2026-08-06 17:23:39 +02:00
NikiDeVisscher
4744a63eff Add jobs for cleanup service 2026-08-06 17:19:36 +02:00
Boris De Vloed
a2337e194a Merge remote-tracking branch 'origin/development' into feature/OP-3844-andere-org-types
# Conflicts:
#	CHANGELOG.md
2026-08-06 13:46:31 +02:00
Boris De Vloed
7da8c4a1db OP-3844: address review: bump construct-organization-relationships to 1.1.4, cover all org graphs in move, drop Energieholding statements 2026-08-06 13:44:13 +02:00
Damon
a376dd5ab2 DL-7485: migration fix 2026-08-06 13:29:35 +02:00
Sam Van Campenhout
5f2b75502e Merge pull request #615 from lblod/search-by-vendor
[OP-3808] Make it possible to search organizations by vendor
2026-08-06 10:46:28 +02:00
Sam Van Campenhout
0e9251e73d Make it possible to search organizations by vendor 2026-08-06 10:34:02 +02:00
Damon
3a19db4a79 DL-7485: revert changelog 2026-08-05 16:51:36 +02:00
Damon
eafee23db1 DL-7485: restrict imam selection based on org status + migration to fix imam roles 2026-08-05 16:47:14 +02:00
wolfez
c21e72a840 update changelog 2026-08-05 09:33:10 +02:00
wolfderechter
5e798c3808 Merge pull request #614 from lblod/chore/cleanup-local-involvement-herne
[OP-3858]: add migration to cleanup local involvement herne
2026-08-04 18:05:54 +02:00
Damon
641e4054d1 DL-7485: updated migration fix islam roles 2026-08-04 13:32:51 +02:00
wolfez
83de2aa41c add migration to cleanup local involvement herne 2026-08-04 13:18:14 +02:00
Sam Van Campenhout
615a547f57 Merge pull request #612 from lblod/add-site-type-pz-wijkkantoor
Add a new "Wijkkantoor" site type
2026-08-03 13:48:08 +02:00
felix
0730137bea Merge branch 'master' into development 2026-07-31 11:02:24 +02:00
cecemel
4c2228fc7c Merge pull request #613 from lblod/chore/health-checks
Chore/health checks
2026-07-31 10:59:38 +02:00
cecemel
6066a3d8d3 Merge branch 'master' into chore/health-checks 2026-07-31 10:59:28 +02:00
felix
f0d0af671e Release v1.41.0 2026-07-31 10:56:39 +02:00
felix
9ed70419aa Added health checks 2026-07-31 10:54:24 +02:00
Damon
478f65ee89 bump frontend 2026-07-31 10:03:13 +02:00
Damon
2002099b98 DL-7485: draft version imam migration 2026-07-31 09:50:27 +02:00
benjay10
ec00971263 Resources: provenance properties on more subjects
Also a rename with a hyphen to work with the frontend and to be
consistent with the rest of the config.
2026-07-29 04:30:39 +02:00
benjay10
0246b33d28 Consumer: include provenance data from harvester
This is the only query with a whitelist of properties (?)
2026-07-29 04:28:38 +02:00
benjay10
76192bc1ae Resources: correct typos 2026-07-29 04:26:37 +02:00
Sam Van Campenhout
a78b2c800f Add a new "Wijkkantoor" site type 2026-07-28 16:21:57 +02:00
Boris De Vloed
a7eceb44bf OP-3844: add Regionaal zorgplatform + Andere codes, move legacy 'other' orgs to Andere 2026-07-24 13:42:39 +02:00
Boris De Vloed
c133c4e0d9 Merge pull request #609 from lblod/OP-3832-werkingsgebied-for-geregistreerde-organizations
OP-3832: Added the new spatial werkingsgebied to producers and search…
2026-07-24 09:25:02 +02:00
Boris De Vloed
e0982891ca Update CHANGELOG.md
pick up new export config
2026-07-24 09:24:18 +02:00
Damon
da602481d9 OP-3832: search config label change 2026-07-20 11:16:37 +02:00
Sam Van Campenhout
50e3c42815 Add new harvest meta data attributes to agent-in-position
This allows us to display harvesting information about mandatarissen and bedienaren.
2026-07-16 15:46:50 +02:00
Damon
8db6b703bd OP-3832: Added the new spatial werkingsgebied to producers and search + migration to backfill existing orgs 2026-07-16 15:21:51 +02:00
Damon
cf7ef40da1 changelog edit 2026-07-15 14:24:33 +02:00
Damon Kennes
c8515c4318 Merge pull request #608 from lblod/OP-3817-inhoudelijk-thema
Op 3817 inhoudelijk thema
2026-07-15 14:21:05 +02:00
Damon
a956d0be46 Merge branch 'development' into OP-3817-inhoudelijk-thema
# Conflicts:
#	CHANGELOG.md
#	docker-compose.yml
2026-07-15 14:19:57 +02:00
Damon
c266642337 OP-3817: changelog + frontend bump 2026-07-15 14:18:54 +02:00
Damon
e960ecf510 OP-3817: final codelist + remove order 2026-07-13 15:55:19 +02:00
NikiDeVisscher
10cf942659 Merge pull request #607 from lblod/feature/werkingsgebied-filter
[OP-3812]: Operation area filter
2026-07-13 15:37:00 +02:00
NikiDeVisscher
1191065481 Bump frontend 2026-07-13 15:36:32 +02:00
Damon
442ba89e45 Merge branch 'development' into OP-3817-inhoudelijk-thema 2026-07-13 13:41:35 +02:00
NikiDeVisscher
deb376380a Merge branch 'development' into feature/werkingsgebied-filter 2026-07-10 15:41:47 +02:00
NikiDeVisscher
8f02d0df92 Add to changelog 2026-07-10 15:40:37 +02:00
NikiDeVisscher
14f011b326 Operation area filter 2026-07-10 09:12:27 +02:00
Damon Kennes
9cc8a5d1f1 Merge pull request #606 from lblod/OP-3810-eredienst-in-oprichting-lifecyle
Op 3810 eredienst in oprichting lifecyle
2026-07-09 14:29:50 +02:00
Damon
f5a0a73812 OP-3810: changelog edit 2026-07-09 14:29:02 +02:00
Damon
16eb50bbda Merge branch 'development' into OP-3810-eredienst-in-oprichting-lifecyle
# Conflicts:
#	CHANGELOG.md
2026-07-09 14:27:36 +02:00
Sam Van Campenhout
a73fa140a9 Merge pull request #605 from lblod/feature/new-organization-types
Feature/new organization types
2026-07-08 09:44:18 +02:00
Damon
f545b55075 OP-3810: cleanup migration to keep currently active orgaan + remove mandates from removed organen 2026-07-07 16:27:24 +02:00
Sam Van Campenhout
e4b09d3295 Update the frontend to v1.40.0
5d2147662f/CHANGELOG.md (v1400-2026-07-06)
2026-07-06 16:21:34 +02:00
Sam Van Campenhout
1783573cc9 Merge branch 'development' into feature/new-organization-types 2026-07-06 16:18:52 +02:00
Boris De Vloed
f65d4297e8 vereniging/vennootschap algemeen 2026-07-03 15:50:42 +02:00
Damon
1a4453365f changelog 2026-07-02 16:38:55 +02:00
Damon
bd81e44662 OP-3810: added migration to handle in oprichting erediensten + changelog edit 2026-07-02 16:37:54 +02:00
Damon
2c356ced83 Merge branch 'development' into OP-3810-eredienst-in-oprichting-lifecyle 2026-07-02 16:35:13 +02:00
Damon
09c79650e4 bump frontend + feature flag to make legal form editable 2026-06-30 10:33:31 +02:00
Damon
a8f8eb9a3c OP-3810: edit dispatcher config 2026-06-29 15:54:23 +02:00
Boris De Vloed
4ad4ca725d bumped construct org relationships 2026-06-26 15:55:43 +02:00
Boris De Vloed
f69668c5e9 Added orgs 2026-06-26 13:47:59 +02:00
Boris De Vloed
0dedf2f662 Added orgs 2026-06-26 10:58:06 +02:00
Sam Van Campenhout
279c3dbd9e Merge pull request #604 from lblod/bezoekadres-site-type
[OP-3818] Add a new `Bezoekadres` site type to the codelist
2026-06-25 14:29:09 +02:00
Damon Kennes
71fbf65382 Merge pull request #603 from lblod/feature/juridische-vorm
Added juridische vorm + change-event
2026-06-25 14:06:36 +02:00
Damon
3379785f7e changelog edit frontend 2026-06-25 14:06:17 +02:00
Damon
474e274d44 frontend bump 2026-06-25 13:56:23 +02:00
Damon
5f5c4f7326 edit changelog 2026-06-25 13:44:54 +02:00
Damon
2085838ad9 Merge branch 'development' into feature/juridische-vorm 2026-06-25 13:42:38 +02:00
Damon
1a41b6202c OP-3817: added inhoudelijk thema with placeholder values 2026-06-25 11:25:56 +02:00
Sam Van Campenhout
0fe1966362 Add a new Bezoekadres site type to the codelist 2026-06-24 17:16:07 +02:00
Damon
2d21ab98b1 changed order predicate to sh:order 2026-06-24 16:06:05 +02:00
Damon
6888c49d43 changed implementation to concept resource 2026-06-24 15:15:05 +02:00
Damon
a1fc6cc7ef added ordering to legal forms 2026-06-23 12:01:55 +02:00
Boris De Vloed
767ebac6ac Revert "Added orgs"
This reverts commit 3ced194b73.
2026-06-22 17:53:53 +02:00
Damon
fea06a6418 switch to code:Rechtsvormtype for legal form + added 3 more legal form codes 2026-06-22 13:03:00 +02:00
Boris De Vloed
3ced194b73 Added orgs 2026-06-22 10:16:55 +02:00
Damon
65fd6a0afe Added juridische vorm + change-event 2026-06-17 09:36:57 +02:00
Boris De Vloed
9c5970756d OP-3799 werkingsgebieden 2026-06-12 10:04:04 +02:00
NikiDeVisscher
e2a23bb07b Added link-adressenregister-uri-service 2026-06-08 11:51:37 +02:00
Sam Van Campenhout
7adbe9fd4f Release v1.40.0 2026-06-02 21:19:24 +02:00
Sam Van Campenhout
863d7182f9 Update frontend to v1.37.0
99e0ca2261/CHANGELOG.md (v1370-2026-05-27)
2026-05-27 16:55:17 +02:00
Damon
38b7297a3a DL-7346: bump login 2026-05-08 15:46:47 +02:00
Damon Kennes
8976b9f5d5 Merge pull request #602 from lblod/OP-3790-move-AGB-BRUGGE-to-correct-graph
Op 3790 move agb brugge to correct graph
2026-05-05 10:45:17 +02:00
Damon
9483da5572 OP-3790: changelog edit 2026-05-05 10:44:41 +02:00
Damon
0a655ddcae Merge branch 'development' into OP-3790-move-AGB-BRUGGE-to-correct-graph
# Conflicts:
#	CHANGELOG.md
2026-05-04 16:48:41 +02:00
Damon Kennes
1b053e26b6 Merge pull request #600 from lblod/OP-3784-query-missing-address-uri
Op 3784 query missing address uri
2026-05-04 16:05:56 +02:00
Damon
7735ee88aa Merge branch 'development' into OP-3784-query-missing-address-uri
# Conflicts:
#	CHANGELOG.md
#	config/reports/index.js
2026-05-04 16:05:32 +02:00
Damon Kennes
6987375abe Merge pull request #598 from lblod/OP-3774-new-query-organizations-in-frontend
OP-3774: added new query/report for organizations shown in frontend
2026-05-04 16:04:23 +02:00
Damon
d4d5ceed31 OP-3790: moved AGB BRUGGE to the correct graph so it shows up in the frontend 2026-05-04 16:03:35 +02:00
Damon
d95b331c99 OP-3774: filePrefix edit 2026-05-04 13:59:34 +02:00
Damon
bec67cf7eb OP-3784: edit organizations-no-address-report 2026-05-04 13:57:23 +02:00
Damon
38291891f6 Merge branch 'development' into OP-3774-new-query-organizations-in-frontend
# Conflicts:
#	CHANGELOG.md
2026-05-04 13:45:42 +02:00
Damon
a79d080eb4 OP-3774: fix to query 2026-05-04 13:43:54 +02:00
Damon
6f53b2e8af Merge branch 'development' into OP-3784-query-missing-address-uri 2026-04-29 09:31:37 +02:00
Damon
3d7c704f76 OP-3784: added query to check missing addressregister URI's 2026-04-29 09:31:16 +02:00
Boris De Vloed
ac5492430e bumped construct organization relationship 2026-04-28 14:16:15 +02:00
Boris De Vloed
935e649ef2 Merge pull request #596 from lblod/feat/worship-election-period-2026
Add governing bodies in time
2026-04-27 09:34:03 +02:00
Boris De Vloed
5dfadf5046 Merge branch 'development' into feat/worship-election-period-2026 2026-04-27 09:33:34 +02:00
Damon
6f43ca2848 Release v1.39.1 2026-04-24 11:38:14 +02:00
wolfderechter
e4d6e1f2a7 Merge pull request #597 from lblod/feature/cleanup-local-involvements-sint-laureins
[OP-3775]: cleanup local involvement of sint laureins
2026-04-24 10:20:14 +02:00
wolfderechter
1d51182bc5 Merge branch 'development' into feature/cleanup-local-involvements-sint-laureins 2026-04-24 10:20:04 +02:00
Damon Kennes
008b382ddc Merge pull request #599 from lblod/DL-6575-sparql-parser
DL-6575: added sparql-parser + edit changelog
2026-04-24 10:12:57 +02:00
Damon
b9654a33db DL-6575: bump resource 2026-04-24 09:22:19 +02:00
Damon
0de3869c4f DL-6575: added sparql-parser + edit changelog 2026-04-23 16:22:11 +02:00
wolfderechter
0c37112fd2 Update config/migrations/2026/20260421133705-delete-local-involvement-sint-laureins.sparql
Co-authored-by: Damon Kennes <damonkennes@gmail.com>
2026-04-22 14:55:36 +02:00
wolfderechter
118eb4c1fa Update config/migrations/2026/20260421133705-delete-local-involvement-sint-laureins.sparql
Co-authored-by: Damon Kennes <damonkennes@gmail.com>
2026-04-22 14:55:29 +02:00
Damon
5b2a1b1ac6 OP-3774: added new query/report for organizations shown in frontend 2026-04-22 10:17:03 +02:00
wolfez
c5a0326ab6 update changelog 2026-04-22 09:31:12 +02:00
wolfez
2b027a4829 add migration to cleanup local involvements of sint-laureins 2026-04-22 09:31:01 +02:00
Boris De Vloed
9cdd931af3 add ticket nrs 2026-04-21 12:13:30 +02:00
Boris De Vloed
9c3d8d5db2 add governing bodies in time 2026-04-21 11:56:52 +02:00
Niels V
71d6ee5ed4 update CHANGELOG 2026-04-17 14:43:29 +02:00
Niels V
70cff61d79 disable sparql endpoint 2026-04-17 14:42:40 +02:00
Niels V
265c25d942 don't allow read for cleanup 2026-04-17 14:40:05 +02:00
Boris De Vloed
0cb5a4729a Merge pull request #595 from lblod/feature/vlaams-gewest
Feature/vlaams gewest
2026-04-17 14:16:29 +02:00
Boris De Vloed
b554787ab0 add Vlaams Gewest links from communes, provinces , regions and districts 2026-04-17 10:29:12 +02:00
Boris De Vloed
51b35b04f9 Add Vlaams Gewest werkingsgebied 2026-04-17 10:28:10 +02:00
Damon Kennes
81c8266bd4 Merge pull request #594 from lblod/OP-3760-Query-list-change-events-of-organisations-in-Dashboard
OP-3760: added change-events-report
2026-04-17 10:15:06 +02:00
Damon
e24c6eece6 Merge branch 'development' into OP-3760-Query-list-change-events-of-organisations-in-Dashboard
# Conflicts:
#	CHANGELOG.md
2026-04-17 10:14:38 +02:00
Damon Kennes
0ad97119df Merge pull request #593 from lblod/OP-3758-Add-column-to-query-organizations-in-Dashboard
OP-3758: updated organizations-report query + fix to dev migration
2026-04-17 10:13:38 +02:00
Damon
d455f47c9f OP-3760: changelog edit 2026-04-17 10:12:47 +02:00
cecemel
7581b12c25 Merge pull request #591 from lblod/fix/add-missing-concept-labels
Add EredienstBeroepen and TypeBetrokkenheid labels
2026-04-15 17:04:18 +02:00
cecemel
48b74c546e Merge branch 'development' into fix/add-missing-concept-labels 2026-04-15 17:04:07 +02:00
felix
ce4abe4d27 Update deploy notes 2026-04-15 17:02:17 +02:00
felix
e1bb06ba2c Bump maintainer 1.4.3 2026-04-15 16:57:19 +02:00
Damon
0274737c84 OP-3760: added change-events-report 2026-04-15 16:57:09 +02:00
felix
bfd10583bf Added migration to add the beroepen and typebetrokkenheid in concept 2026-04-15 16:54:17 +02:00
Damon
c63b0659eb OP-3758: updated organizations-report query + fix to dev migration 2026-04-15 16:31:51 +02:00
cecemel
b8e2bb3186 Merge pull request #592 from lblod/chore/cleanup-local-involvement-oud-heverlee
[OP-3757]: cleanup local involvement of oud heverlee
2026-04-15 16:05:50 +02:00
wolfderechter
fb75ba1738 Merge branch 'development' into chore/cleanup-local-involvement-oud-heverlee 2026-04-15 12:57:29 +02:00
wolfez
bd935ce795 add migration to cleanup local involvement of oud heverlee 2026-04-15 12:53:12 +02:00
Damon Kennes
fe3957382e Merge pull request #590 from lblod/OP-3766-add-strekking-to-query
OP-3766: added updated bestuurseenheden query to report
2026-04-13 10:51:29 +02:00
Damon
c50d077435 Merge branch 'development' into OP-3766-add-strekking-to-query
# Conflicts:
#	CHANGELOG.md
2026-04-13 10:50:10 +02:00
Damon
5eaae75cc3 OP-3766: camelCase + changelog edit 2026-04-13 10:48:09 +02:00
Damon
334adafbba OP-3765: bump to kbo-data-sync 2026-04-09 17:19:35 +02:00
Boris De Vloed
2109ff77fc Add EredienstBeroepen and TypeBetrokkenheid labels 2026-04-09 16:15:29 +02:00
Damon
3b333f13a6 OP-3766: added updated bestuurseenheden query to report 2026-04-09 11:19:39 +02:00
felix
6912cec711 Release v1.39.0 2026-04-02 18:09:06 +02:00
cecemel
efb5760925 Merge pull request #589 from lblod/feature/OP-3761-query-org-data
Added reports: Query organisations: organisational data
2026-04-02 18:02:57 +02:00
felix
00ddb35f40 Added reports 2026-04-02 17:37:24 +02:00
Elena Poelman
227f093ebe Merge pull request #582 from lblod/fix/setup-vendors-sync-docs
Adjust setup-vendors-sync steps in readme to allow initial sync
2026-03-20 15:19:02 +01:00
felix
9daccc7736 Update CHANGELOG.md 2026-03-02 15:37:13 +01:00
felix
b25514e580 bugfix report: primary -> Primary 2026-03-02 15:35:24 +01:00
cecemel
789cbd5703 Merge pull request #588 from lblod/feature/add-reports-contact-details-ABB-KBO
Feature/add reports contact details abb kbo
2026-03-02 15:29:02 +01:00
felix
c174bfaa03 Update CHANGELOG.md 2026-03-02 15:28:01 +01:00
felix
b2e6c0edd0 Added reports: KBO and organisation detail.
See also: OP-3738
2026-03-02 15:26:58 +01:00
kikef98
ba3e33f01b release v1.38.4 2026-02-26 17:06:51 +01:00
kikef98
e2e64c9b0d bump frontend 2026-02-26 17:03:42 +01:00
kikef98
c3b44447ae release v1.38.3 2026-02-26 16:57:11 +01:00
kikef98
ce61bf3619 bump frontend 2026-02-26 16:44:29 +01:00
Damon Kennes
2a668d2138 Merge pull request #587 from lblod/OP-3743-Related-organisations-Duplicate-relations-between-municipalities-and-OCMWs
OP-3743: added migration that removes double memberships
2026-02-20 13:11:54 +01:00
Damon
aac6e59d2a OP-3743: added migration that removes double memberships 2026-02-20 11:56:30 +01:00
fe789ce33f slightly adjust setup-vendors-sync steps in readme to allow initial sync 2026-01-05 13:07:47 +01:00
75 changed files with 6306 additions and 416 deletions

View File

@@ -1,4 +1,188 @@
# Changelog
## Unreleased
- Added service to link addresses to addressregister uris [OP-3795]
- Derive an organization's reference region(s) from its werkingsgebied; bump scope-of-operation to 0.2.0 [OP-3799]
- Site type changes [OP-3818]
- Frontend [v1.40.1](https://github.com/lblod/frontend-organization-portal/blob/v1.40.1/CHANGELOG.md), [v1.40.0](https://github.com/lblod/frontend-organization-portal/blob/5d2147662f620d420f54b9624a12c42ca2ac964a/CHANGELOG.md#v1400-2026-07-06), [v1.39.0](https://github.com/lblod/frontend-organization-portal/blob/5d2147662f620d420f54b9624a12c42ca2ac964a/CHANGELOG.md#v1390-2026-06-25) ,[v1.38.0](https://github.com/lblod/frontend-organization-portal/blob/5d2147662f620d420f54b9624a12c42ca2ac964a/CHANGELOG.md#v1380-2026-06-12)
- Added Juridische vorm [OP-3816] [OP-3820]
- Add new organization types (interlokale vereniging, vervoerregioraad, zorgraad, bosgroep, woonmaatschappij); add werkingsgebied (dct:spatial) to registered organizations [OP-3828]
- Rename generic organization types to "Vereniging algemeen" / "Vennootschap algemeen" [OP-3828]
- bump construct-organization-relationships [OP-3810]
- "In Oprichting" bestuursorgaan lifecycle [OP-3810]
- Added "werkingsgebied" filter [OP-3812]
- Inhoudelijk thema [OP-3817]
- Werkingsgebied (dct:spatial) for private OCMW associations [OP-3832]
- Add a new "Wijkkantoor" site type [OP-3837]
- cleanup local involvement herne [OP-3858]
- Search organizations by vendor [OP-3808]
- Add organization types "Regionaal zorgplatform" (altLabel "Regionale zorgzone") and residual "Andere" [OP-3844]
- Move organizations from "Vereniging algemeen" / "Vennootschap algemeen" to "Andere"; delete those codes [OP-3844]
- Bump construct-organization-relationships [OP-3844]
- Frontend [v1.40.5](https://github.com/lblod/frontend-organization-portal/blob/v1.40.5/CHANGELOG.md) [OP-3844] [OP-3808] [OP-3849]
- Consume and serve provenance properties on harvested Worship positions [DL-7437]
- Frontend [v1.41.0](https://github.com/lblod/frontend-organization-portal/blob/v1.41.0/CHANGELOG.md) [DL-7438]
- Keep werkingsgebied filter up to date via db-cleanup service [OP-3841]
- Restrict available imam roles based on worship organisation status [DL-7485]
- IMPORTANT NOTE: Make sure first the [DL-7485] loket migration has completed + data has flown from loket to OP
- Frontend [v1.41.1](https://github.com/lblod/frontend-organization-portal/blob/v1.41.1/CHANGELOG.md) [DL-7438]
- Frontend [v1.42.0](https://github.com/lblod/frontend-organization-portal/blob/a0fb2536afe7019c2943c8312e50648c14249e02/CHANGELOG.md#v1420-2026-08-20)
- Fix broken lmb mandataris mappin query [OP-3867]
- Add the value politiecollege to the existing dropdown list beslissingsorgaan [DL-7473]
- Bump construct-organization-relationships [DL-7473] [OP-3851]
- fix duplicate van rechtswege/grote helft mandates [OP-3851]
- IMPORTANT NOTE: Make sure first the loket migration has completed + data has flown from loket to OP
- Add missing headers to identifier calls
- Add columns to administrative units report [OP-3835]
- Added "Wijziging werkingsgebied" change event [OP-3905]
- Frontend [v1.43.0](https://github.com/lblod/frontend-organization-portal/blob/v1.43.0/CHANGELOG.md)
### Deploy notes
```
drc up -d link-adressenregister-uri frontend construct-organization-relationships identifier
drc restart resource migrations dispatcher
```
```
drc restart migrations
drc up -d frontend scope-of-operation
drc restart cache resource
```
```
drc pull construct-organization-relationships && drc up -d construct-organization-relationships
drc restart migrations
drc restart resource cache
drc restart delta-producer-publication-graph-maintainer
scripts/reset-elastic.sh
drc restart migrations frontend db resource cache
# reindex elastic search:
/bin/bash scripts/reset-elastic.sh
drc restart migrations search
drc up -d frontend
```
```
drc restart migrations
drc restart db-cleanup
```
```
# requires frontend >= 1.40.5 and construct-organization-relationships >= 1.1.4 (both bumped in compose here)
drc pull construct-organization-relationships && drc up -d construct-organization-relationships
drc restart migrations-triggering-indexing
drc up -d frontend
drc restart cache resource
```
```
drc restart migrations resource delta-producer-publication-graph-maintainer
```
```
drc restart migrations mandatarissen-consumer
```
```
drc restart migrations report-generation resource cache
drc exec delta-producer-background-jobs-initiator curl -X POST http://localhost/public/healing-jobs
drc up -d construct-organization-relationships frontend
```
## v1.41.3
- Fix betrokken lokale besturen links via migration [OP-3882]
### Deploy notes
```
drc restart migrations
drc restart cache resource
```
## v1.41.2
- Fix betrokken lokale besturen links via migration [OP-3877]
- Add timeout to producer jobs to prevent them staying stuck forever [OP-3815]
### Deploy notes
In the docker-compose.override.yml, on PROD only, set the `error-alert` environment variable `EMAIL_TO:` to `support+lblod@redpencil.io`.
Then:
```
drc up -d error-alert delta-producer-background-jobs-initiator
drc restart migrations
drc restart resource cache
```
## v1.41.0
- added explicit healtchecks [DL-7466]
### Deploy notes
```
drc restart dispatcher
```
## v1.40.0
- Query to check missing address URI's [OP-3784]
- Create new query 'organisations shown in OP frontend' in Dashboard [OP-3774]
- Moved AGB BRUGGE to correct graph [OP-3790]
- Bump acm-login service [DL-7346]
- Frontend [v1.37.0](https://github.com/lblod/frontend-organization-portal/blob/99e0ca22617d17cbc8a23dfa2f6d31691fed90b9/CHANGELOG.md#v1370-2026-05-27)
### Deploy notes
```
drc restart report-generation
drc restart migrations
scripts/reset-elastic.sh
drc up -d login login-dashboard frontend
```
## 1.39.1 (2026-04-24)
- OP-3771: Adds labels for: EredienstBeroepen and TypeBetrokkenheid
- Bump to kbo-data-sync [OP-3765]
- Added administrativeUnits report with strekking [OP-3766]
- Cleanup local involvement for oud heverlee [OP-3757]
- Add column to query organizations in Dashboard [OP-3758]
- Query list change events of organisations in Dashboard [OP-3760]
- Disable SPARQL endpoint
- Prepare worship election period: backfill missing 2026-2029 governing bodies + mandates, seed fresh 2029-2032 period, and clean up `hhttp://` Secretaris typo from the 2022 central-worship migrations and bumped construct-organization-relationships to 1.1.1[OP-3776] and [DL-7294]
- Cleanup local involvements for Sint Laureins [OP-3775]
- sparql-parser [DL-6575]
### Deploy notes
```
drc pull kbo-data-sync db resource && drc up -d kbo-data-sync db resource
drc restart report-generation
drc restart migrations && drc logs -ft --tail=200 migrations
drc up -d delta-producer-publication-graph-maintainer
drc restart dispatcher
```
## 1.39.0 (2026-04-02)
- Add KBO organizations report to report generation service [OP-3738]
- Add organizations detail report (addresses and contact info) to report generation service [OP-3738]
- Query organisations: organisational data [OP-3761]
### Deploy notes
```
drc restart report-generation
```
## 1.38.4 (2026-02-26)
### Backend
- Bump frontend [OP-3735]
### Deploy instructions
```
drc pull frontend && drc up -d frontend
```
## 1.38.3 (2026-02-26)
### Backend
- Related organisations: Duplicate relations between municipalities and OCMWs [OP-3743]
### Deploy instructions
```
drc restart migrations cache
```
## 1.38.2 (2026-02-20)
### Backend
- Remove deprecated organizations-public-info producer [OP-3581]
@@ -28,7 +212,7 @@ drc pull report-generation; drc up -d report-generation
### Deploy instructions
#### For error-alert and deliver-email-service
Per environment a specfic configuration for the email service similar to loket config.
Per environment a specfic configuration for the email service similar to loket config.
Ask colleague for specfic credentials.
```
@@ -37,13 +221,13 @@ Ask colleague for specfic credentials.
EMAIL_PROTOCOL: "smtp"
#WELL_KNOWN_SERVICE: "smtp"
EMAIL_HOST: "Fill in Email host adress"
EMAIL_ADDRESS: "Fill in email"
EMAIL_ADDRESS: "Fill in email"
EMAIL_PASSWORD: "Fill in email password"
EMAIL_PORT: "Fill in port"
SECURE_CONNECTION: "true"
EMAIL_CRON_PATTERN: "*/1 * * * *"
restart: "no"
error-alert:
environment:
EMAIL_FROM: "Fill in email adress of sender
@@ -60,7 +244,7 @@ drc up -d error-alert deliver-email-service frontend
### General
- [OP-3590]: OP is now master of "aantal houders" of mandates
- [OP-3699]: Update aantal houders for some mandates Hasselt and Antwerp
- [OP-3680]: Indicate whether a worship service is a customer of ReligioPoint or Loket voor Lokale Besturen
- [OP-3680]: Indicate whether a worship service is a customer of ReligioPoint or Loket voor Lokale Besturen
- Bump frontend to v1.36.2 [OP-3623] [OP-3681] [OP-3703] [OP-2712]
### Deploy instructions

View File

@@ -187,19 +187,22 @@ Update `docker-compose.override.yml` to:
vendor-management-consumer:
environment:
DCR_SYNC_BASE_URL: "https://dev.loket.lblod.info/" # or another endpoint
DCR_DISABLE_INITIAL_SYNC: "true"
BATCH_SIZE: "500"
DCR_SECRET_KEY: "<key>>" # fill in key for selected endpoint
DCR_SYNC_LOGIN_ENDPOINT: "https://dev.loket.lblod.info/sync/vendor-management/login" # login for selected endpoint
DCR_DISABLE_DELTA_INGEST: "false"
DCR_DISABLE_INITIAL_SYNC: "false"
```
Then:
```
drc up -d migrations
drc up -d db vendor-management-consumer
```
Finally, put the stack back up.
# Wait until success of the previous step
Finally, put the stack back up and reindex elasticsearch:
```
drc up -d
sh scripts/reset-elastic.sh
```
### Setting up the delta-producers related services

View File

@@ -1,311 +0,0 @@
alias Acl.Accessibility.Always, as: AlwaysAccessible
alias Acl.GraphSpec.Constraint.Resource, as: ResourceConstraint
alias Acl.GraphSpec.Constraint.ResourceFormat, as: ResourceFormatConstraint
alias Acl.Accessibility.ByQuery, as: AccessByQuery
alias Acl.GraphSpec, as: GraphSpec
alias Acl.GroupSpec, as: GroupSpec
alias Acl.GroupSpec.GraphCleanup, as: GraphCleanup
defmodule Acl.UserGroups.Config do
@error_type [
"https://docs.oasis-open-projects.org/oslc-op/core/v3.0/os/core-vocab.html#Error"
]
@worship_type [
"http://data.lblod.info/vocabularies/erediensten/EredienstMandataris",
"http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst",
"http://data.lblod.info/vocabularies/erediensten/EredienstBestuurseenheid",
"http://data.lblod.info/vocabularies/erediensten/RolBedienaar",
"http://data.lblod.info/vocabularies/erediensten/VoorwaardenBedienaar",
"http://data.lblod.info/vocabularies/erediensten/PositieBedienaar",
"http://data.lblod.info/vocabularies/erediensten/BetrokkenLokaleBesturen",
"http://data.lblod.info/vocabularies/erediensten/VerbondenJuridischeStructuren",
"http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst",
"http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan"
]
@public_type [
"http://www.w3.org/ns/org#Role",
"http://data.vlaanderen.be/ns/besluit#Bestuurseenheid",
"http://xmlns.com/foaf/0.1/Person",
"http://xmlns.com/foaf/0.1/OnlineAccount",
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject",
"http://www.w3.org/ns/dcat#Dataset",
"http://www.w3.org/ns/dcat#Distribution",
"http://www.w3.org/ns/dcat#Catalog",
"http://mu.semte.ch/vocabularies/ext/GeslachtCode",
"http://data.lblod.info/vocabularies/leidinggevenden/FunctionarisStatusCode",
"http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode",
"http://lblod.data.gift/vocabularies/organisatie/BestuursfunctieCode",
"http://lblod.data.gift/vocabularies/organisatie/BestuursorgaanClassificatieCode",
"http://lblod.data.gift/vocabularies/organisatie/MandatarisStatusCode",
"http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode",
"http://mu.semte.ch/vocabularies/ext/GeregistreerdeOrganisatieClassificatieCode",
"http://lblod.data.gift/vocabularies/organisatie/TypeEredienst",
"http://www.w3.org/2004/02/skos/core#ConceptScheme",
"http://lblod.data.gift/vocabularies/organisatie/BedienaarFinancieringCode",
"http://www.w3.org/2004/02/skos/core#Concept",
"http://publications.europa.eu/ontology/euvoc#Country",
"http://lblod.data.gift/vocabularies/organisatie/TypeVestiging",
"http://lblod.data.gift/vocabularies/organisatie/HelftVerkiezing",
"http://lblod.data.gift/vocabularies/organisatie/Veranderingsgebeurtenis",
"http://lblod.data.gift/vocabularies/organisatie/TypeBetrokkenheid",
"http://lblod.data.gift/vocabularies/organisatie/VoorwaardenBedienaarCriterium",
"http://lblod.data.gift/vocabularies/organisatie/BedienaarCriteriumBewijsstuk",
"http://lblod.data.gift/vocabularies/organisatie/EredienstBeroepen",
"http://lblod.data.gift/vocabularies/organisatie/Rechtsvormtype",
"http://www.w3.org/ns/prov#Location"
]
@org_type [
"http://purl.org/dc/terms/Agent",
"http://www.w3.org/ns/org#Organization",
"http://www.w3.org/ns/regorg#RegisteredOrganization",
"http://data.vlaanderen.be/ns/besluit#Besluit",
"https://data.vlaanderen.be/ns/besluitvorming#Beslissingsactiviteit",
"http://www.w3.org/ns/org#Site",
"http://www.w3.org/ns/locn#Address",
"http://www.w3.org/ns/person#Person",
"http://schema.org/ContactPoint",
"http://data.vlaanderen.be/ns/besluit#Bestuurseenheid",
"http://data.vlaanderen.be/ns/besluit#Bestuursorgaan",
"http://www.w3.org/ns/adms#Identifier",
"https://data.vlaanderen.be/ns/generiek#GestructureerdeIdentificator",
"http://data.vlaanderen.be/ns/mandaat#Mandaat",
"http://data.vlaanderen.be/ns/mandaat#Mandataris",
"http://data.lblod.info/vocabularies/leidinggevenden/Functionaris",
"http://data.lblod.info/vocabularies/leidinggevenden/Bestuursfunctie",
"http://lblod.data.gift/vocabularies/organisatie/VeranderingsgebeurtenisResultaat",
"http://www.w3.org/ns/org#Post",
"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 [
"http://xmlns.com/foaf/0.1/Image",
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
]
@vendor_type [
"http://mu.semte.ch/vocabularies/ext/Vendor"
]
defp access_by_role(group_string) do
%AccessByQuery{
# vars: ["session_group","session_role"], todo we might have to create multiple graph depending on role
vars: [],
query: sparql_query_for_access_role(group_string)
}
end
defp sparql_query_for_access_role(group_string) do
"PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
SELECT distinct ?session_group ?session_role WHERE {
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
ext:activeSessionRole ?session_role.
FILTER( ?session_role = \"#{group_string}\" )
}"
end
defp can_access_dashboard() do
%AccessByQuery{
vars: [],
query: "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
SELECT DISTINCT ?session WHERE {
VALUES ?session { <SESSION_ID> }
?session ext:sessionRole \"LoketLB-AdminDashboardOrganisatiePortaalGebruiker\" .
}"
}
end
def user_groups do
[
%GroupSpec{
name: "acmidm-lezer",
useage: [:read],
access: access_by_role("ABBOrganisatiePortaalGebruiker-lezer"),
graphs: [
%GraphSpec{
graph: "http://mu.semte.ch/graphs/administrative-unit",
constraint: %ResourceConstraint{
resource_types: @org_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
%GroupSpec{
name: "acmidm-editeerder",
useage: [:read, :write, :read_for_write],
access: access_by_role("ABBOrganisatiePortaalGebruiker-editeerder"),
graphs: [
%GraphSpec{
graph: "http://mu.semte.ch/graphs/administrative-unit",
constraint: %ResourceConstraint{
resource_types: @org_type ++ @error_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
%GroupSpec{
name: "acmidm-beheerder",
useage: [:read, :write, :read_for_write],
access: access_by_role("ABBOrganisatiePortaalGebruiker-beheerder"),
graphs: [
%GraphSpec{
graph: "http://mu.semte.ch/graphs/administrative-unit",
constraint: %ResourceConstraint{
resource_types: @org_type ++ @error_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
%GroupSpec{
name: "acmidm-worship-lezer",
useage: [:read],
access: access_by_role("ABBOrganisatiePortaalErediensten-lezer"),
graphs: [
%GraphSpec{
graph: "http://mu.semte.ch/graphs/worship-service",
constraint: %ResourceConstraint{
resource_types: @org_type ++ @worship_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
%GroupSpec{
name: "acmidm-worship-editeerder",
useage: [:read, :write, :read_for_write],
access: access_by_role("ABBOrganisatiePortaalErediensten-editeerder"),
graphs: [
%GraphSpec{
graph: "http://mu.semte.ch/graphs/worship-service",
constraint: %ResourceConstraint{
resource_types: @org_type ++ @error_type ++ @worship_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
%GroupSpec{
name: "acmidm-worship-beheerder",
useage: [:read, :write, :read_for_write],
access: access_by_role("ABBOrganisatiePortaalErediensten-beheerder"),
graphs: [
%GraphSpec{
graph: "http://mu.semte.ch/graphs/worship-service",
constraint: %ResourceConstraint{
resource_types: @org_type ++ @error_type ++ @worship_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
%GroupSpec{
name: "public",
useage: [:read],
access: %AlwaysAccessible{},
graphs: [
%GraphSpec{
graph: "http://mu.semte.ch/graphs/public",
constraint: %ResourceConstraint{
resource_types: @public_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/shared",
constraint: %ResourceConstraint{
resource_types: @shared_protected_type ++ @org_type
}
}
]
},
# // Dashboard admin
%GroupSpec{
name: "o-admin-rwf",
useage: [:read, :write, :read_for_write],
access: can_access_dashboard(),
graphs: [
%GraphSpec{
graph: "http://mu.semte.ch/graphs/reports",
constraint: %ResourceConstraint{
resource_types: [
"http://lblod.data.gift/vocabularies/reporting/Report",
"http://open-services.net/ns/core#Error",
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer",
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
]
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/system/jobs",
constraint: %ResourceConstraint{
resource_types: [
"http://vocab.deri.ie/cogs#Job",
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer",
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
]
}
},
# OP stores jobs in multiple graphs, so we configure both until they are merged into one graph
%GraphSpec{
graph: "http://mu.semte.ch/graphs/jobs",
constraint: %ResourceConstraint{
resource_types: [
"http://vocab.deri.ie/cogs#Job",
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer",
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
]
}
}
]
},
# // CLEANUP
#
%GraphCleanup{
originating_graph: "http://mu.semte.ch/application",
useage: [:read, :write],
name: "clean"
}
]
end
end

View File

@@ -0,0 +1,369 @@
;;;;;;;;;;;;;;;;;;;
;;; delta messenger
(in-package :delta-messenger)
(add-delta-logger)
(add-delta-messenger "http://deltanotifier/")
;;;;;;;;;;;;;;;;;
;;; configuration
(in-package :client)
(setf *log-sparql-query-roundtrip* t)
(setf *backend* "http://triplestore:8890/sparql")
(in-package :server)
(setf *log-incoming-requests-p* nil)
;;;;;;;;;;;;;;;;;
;;; access rights
(in-package :acl)
(defparameter *access-specifications* nil
"All known ACCESS specifications.")
(defparameter *graphs* nil
"All known GRAPH-SPECIFICATION instances.")
(defparameter *rights* nil
"All known GRANT instances connecting ACCESS-SPECIFICATION to GRAPH.")
;; Prefixes used in the constraints below (not in the SPARQL queries)
(define-prefixes
:org "http://www.w3.org/ns/org#"
:locn "http://www.w3.org/ns/locn#"
:schema "http://schema.org/"
:regorg "http://www.w3.org/ns/regorg#"
:person "http://www.w3.org/ns/person#"
:adms "http://www.w3.org/ns/adms#"
:prov "http://www.w3.org/ns/prov#"
:generiek "https://data.vlaanderen.be/ns/generiek#"
:mandaat "http://data.vlaanderen.be/ns/mandaat#"
:besluit "http://data.vlaanderen.be/ns/besluit#"
:lblodlg "http://data.lblod.info/vocabularies/leidinggevenden/"
:dc_terms "http://purl.org/dc/terms/"
:foaf "http://xmlns.com/foaf/0.1/"
:skos "http://www.w3.org/2004/02/skos/core#"
:euvoc "http://publications.europa.eu/ontology/euvoc#"
:ere "http://data.lblod.info/vocabularies/erediensten/"
:ch "http://data.lblod.info/vocabularies/contacthub/"
:code "http://lblod.data.gift/vocabularies/organisatie/"
:ext "http://mu.semte.ch/vocabularies/ext/"
:time "http://www.w3.org/2006/time#"
:oasis "https://docs.oasis-open-projects.org/oslc-op/core/v3.0/os/core-vocab.html#"
:nfo "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#"
:dcat "http://www.w3.org/ns/dcat#"
:besluitvorming "https://data.vlaanderen.be/ns/besluitvorming#"
:reporting "http://lblod.data.gift/vocabularies/reporting/"
:oslc "http://open-services.net/ns/core#"
:cogs "http://vocab.deri.ie/cogs#"
)
(type-cache::add-type-for-prefix "http://mu.semte.ch/sessions/" "http://mu.semte.ch/vocabularies/session/Session")
(define-graph acmidm-lezer ("http://mu.semte.ch/graphs/administrative-unit")
("dc_terms:Agent" -> _)
("org:Organization" -> _)
("regorg:RegisteredOrganization" -> _)
("besluit:Besluit" -> _)
("besluitvorming:Beslissingsactiviteit" -> _)
("org:Site" -> _)
("locn:Address" -> _)
("person:Person" -> _)
("schema:ContactPoint" -> _)
("besluit:Bestuurseenheid" -> _)
("besluit:Bestuursorgaan" -> _)
("adms:Identifier" -> _)
("generiek:GestructureerdeIdentificator" -> _)
("mandaat:Mandaat" -> _)
("mandaat:Mandataris" -> _)
("lblodlg:Functionaris" -> _)
("lblodlg:Bestuursfunctie" -> _)
("code:VeranderingsgebeurtenisResultaat" -> _)
("org:Post" -> _)
("org:ChangeEvent" -> _)
("ch:AgentInPositie" -> _)
("ext:KboOrganisatie" -> _)
("org:Membership" -> _)
("time:ProperInterval" -> _))
(define-graph acmidm-vendor ("http://mu.semte.ch/graphs/vendor-management-data")
("ext:Vendor" -> _))
(define-graph acmidm-editeerder ("http://mu.semte.ch/graphs/administrative-unit")
("oasis:Error" -> _)
("dc_terms:Agent" -> _)
("org:Organization" -> _)
("regorg:RegisteredOrganization" -> _)
("besluit:Besluit" -> _)
("besluitvorming:Beslissingsactiviteit" -> _)
("org:Site" -> _)
("locn:Address" -> _)
("person:Person" -> _)
("schema:ContactPoint" -> _)
("besluit:Bestuurseenheid" -> _)
("besluit:Bestuursorgaan" -> _)
("adms:Identifier" -> _)
("generiek:GestructureerdeIdentificator" -> _)
("mandaat:Mandaat" -> _)
("mandaat:Mandataris" -> _)
("lblodlg:Functionaris" -> _)
("lblodlg:Bestuursfunctie" -> _)
("code:VeranderingsgebeurtenisResultaat" -> _)
("org:Post" -> _)
("org:ChangeEvent" -> _)
("ch:AgentInPositie" -> _)
("ext:KboOrganisatie" -> _)
("org:Membership" -> _)
("time:ProperInterval" -> _))
(define-graph acmidm-worship-lezer ("http://mu.semte.ch/graphs/worship-service")
("ere:EredienstMandataris" -> _)
("ere:BestuurVanDeEredienst" -> _)
("ere:EredienstBestuurseenheid" -> _)
("ere:RolBedienaar" -> _)
("ere:VoorwaardenBedienaar" -> _)
("ere:PositieBedienaar" -> _)
("ere:BetrokkenLokaleBesturen" -> _)
("ere:VerbondenJuridischeStructuren" -> _)
("ere:CentraalBestuurVanDeEredienst" -> _)
("ere:RepresentatiefOrgaan" -> _)
("dc_terms:Agent" -> _)
("org:Organization" -> _)
("regorg:RegisteredOrganization" -> _)
("besluit:Besluit" -> _)
("besluitvorming:Beslissingsactiviteit" -> _)
("org:Site" -> _)
("locn:Address" -> _)
("person:Person" -> _)
("schema:ContactPoint" -> _)
("besluit:Bestuurseenheid" -> _)
("besluit:Bestuursorgaan" -> _)
("adms:Identifier" -> _)
("generiek:GestructureerdeIdentificator" -> _)
("mandaat:Mandaat" -> _)
("mandaat:Mandataris" -> _)
("lblodlg:Functionaris" -> _)
("lblodlg:Bestuursfunctie" -> _)
("code:VeranderingsgebeurtenisResultaat" -> _)
("org:Post" -> _)
("org:ChangeEvent" -> _)
("ch:AgentInPositie" -> _)
("ext:KboOrganisatie" -> _)
("org:Membership" -> _)
("time:ProperInterval" -> _))
(define-graph acmidm-worship-editeerder ("http://mu.semte.ch/graphs/worship-service")
("oasis:Error" -> _)
("ere:EredienstMandataris" -> _)
("ere:BestuurVanDeEredienst" -> _)
("ere:EredienstBestuurseenheid" -> _)
("ere:RolBedienaar" -> _)
("ere:VoorwaardenBedienaar" -> _)
("ere:PositieBedienaar" -> _)
("ere:BetrokkenLokaleBesturen" -> _)
("ere:VerbondenJuridischeStructuren" -> _)
("ere:CentraalBestuurVanDeEredienst" -> _)
("ere:RepresentatiefOrgaan" -> _)
("dc_terms:Agent" -> _)
("org:Organization" -> _)
("regorg:RegisteredOrganization" -> _)
("besluit:Besluit" -> _)
("besluitvorming:Beslissingsactiviteit" -> _)
("org:Site" -> _)
("locn:Address" -> _)
("person:Person" -> _)
("schema:ContactPoint" -> _)
("besluit:Bestuurseenheid" -> _)
("besluit:Bestuursorgaan" -> _)
("adms:Identifier" -> _)
("generiek:GestructureerdeIdentificator" -> _)
("mandaat:Mandaat" -> _)
("mandaat:Mandataris" -> _)
("lblodlg:Functionaris" -> _)
("lblodlg:Bestuursfunctie" -> _)
("code:VeranderingsgebeurtenisResultaat" -> _)
("org:Post" -> _)
("org:ChangeEvent" -> _)
("ch:AgentInPositie" -> _)
("ext:KboOrganisatie" -> _)
("org:Membership" -> _)
("time:ProperInterval" -> _))
(define-graph public ("http://mu.semte.ch/graphs/public")
("org:Role" -> _)
("besluit:Bestuurseenheid" -> _)
("foaf:Person" -> _)
("foaf:OnlineAccount" -> _)
("nfo:FileDataObject" -> _)
("dcat:Dataset" -> _)
("dcat:Distribution" -> _)
("dcat:Catalog" -> _)
("ext:GeslachtCode" -> _)
("lblodlg:FunctionarisStatusCode" -> _)
("code:OrganisatieStatusCode" -> _)
("code:BestuursfunctieCode" -> _)
("code:BestuursorgaanClassificatieCode" -> _)
("code:MandatarisStatusCode" -> _)
("code:BestuurseenheidClassificatieCode" -> _)
("ext:GeregistreerdeOrganisatieClassificatieCode" -> _)
("code:TypeEredienst" -> _)
("skos:ConceptScheme" -> _)
("code:BedienaarFinancieringCode" -> _)
("skos:Concept" -> _)
("euvoc:Country" -> _)
("code:TypeVestiging" -> _)
("code:HelftVerkiezing" -> _)
("code:Veranderingsgebeurtenis" -> _)
("code:TypeBetrokkenheid" -> _)
("code:VoorwaardenBedienaarCriterium" -> _)
("code:BedienaarCriteriumBewijsstuk" -> _)
("code:EredienstBeroepen" -> _)
("code:Rechtsvormtype" -> _)
("prov:Location" -> _)
("code:inhoudelijkThema" -> _))
(define-graph shared ("http://mu.semte.ch/graphs/shared")
("foaf:Image" -> _)
("nfo:FileDataObject" -> _)
("dc_terms:Agent" -> _)
("org:Organization" -> _)
("regorg:RegisteredOrganization" -> _)
("besluit:Besluit" -> _)
("besluitvorming:Beslissingsactiviteit" -> _)
("org:Site" -> _)
("locn:Address" -> _)
("person:Person" -> _)
("schema:ContactPoint" -> _)
("besluit:Bestuurseenheid" -> _)
("besluit:Bestuursorgaan" -> _)
("adms:Identifier" -> _)
("generiek:GestructureerdeIdentificator" -> _)
("mandaat:Mandaat" -> _)
("mandaat:Mandataris" -> _)
("lblodlg:Functionaris" -> _)
("lblodlg:Bestuursfunctie" -> _)
("code:VeranderingsgebeurtenisResultaat" -> _)
("org:Post" -> _)
("org:ChangeEvent" -> _)
("ch:AgentInPositie" -> _)
("ext:KboOrganisatie" -> _)
("org:Membership" -> _)
("time:ProperInterval" -> _))
(define-graph reports ("http://mu.semte.ch/graphs/reports")
("reporting:Report" -> _)
("oslc:Error" -> _)
("nfo:DataContainer" -> _)
("nfo:FileDataObject" -> _))
(define-graph system-jobs ("http://mu.semte.ch/graphs/system/jobs")
("cogs:Job" -> _)
("nfo:DataContainer" -> _)
("nfo:FileDataObject" -> _))
(define-graph jobs ("http://mu.semte.ch/graphs/jobs")
("cogs:Job" -> _)
("nfo:DataContainer" -> _)
("nfo:FileDataObject" -> _))
(supply-allowed-group "public")
(supply-allowed-group "o-admin-rwf"
:parameters ()
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
SELECT DISTINCT ?session WHERE {
<SESSION_ID> ext:sessionRole \"LoketLB-AdminDashboardOrganisatiePortaalGebruiker\" .
}")
(supply-allowed-group "ABBOrganisatiePortaalGebruiker-lezer"
:parameters ()
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
SELECT DISTINCT ?session_group ?session_role WHERE {
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
ext:activeSessionRole ?session_role.
FILTER( ?session_role = \"ABBOrganisatiePortaalGebruiker-lezer\" )
}")
(supply-allowed-group "ABBOrganisatiePortaalGebruiker-editeerder"
:parameters ()
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
SELECT DISTINCT ?session_group ?session_role WHERE {
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
ext:activeSessionRole ?session_role.
FILTER( ?session_role = \"ABBOrganisatiePortaalGebruiker-editeerder\" )
}")
(supply-allowed-group "ABBOrganisatiePortaalGebruiker-beheerder"
:parameters ()
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
SELECT DISTINCT ?session_group ?session_role WHERE {
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
ext:activeSessionRole ?session_role.
FILTER( ?session_role = \"ABBOrganisatiePortaalGebruiker-beheerder\" )
}")
(supply-allowed-group "ABBOrganisatiePortaalErediensten-lezer"
:parameters ()
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
SELECT DISTINCT ?session_group ?session_role WHERE {
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
ext:activeSessionRole ?session_role.
FILTER( ?session_role = \"ABBOrganisatiePortaalErediensten-lezer\" )
}")
(supply-allowed-group "ABBOrganisatiePortaalErediensten-editeerder"
:parameters ()
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
SELECT DISTINCT ?session_group ?session_role WHERE {
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
ext:activeSessionRole ?session_role.
FILTER( ?session_role = \"ABBOrganisatiePortaalErediensten-editeerder\" )
}")
(supply-allowed-group "ABBOrganisatiePortaalErediensten-beheerder"
:parameters ()
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
SELECT DISTINCT ?session_group ?session_role WHERE {
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
ext:activeSessionRole ?session_role.
FILTER( ?session_role = \"ABBOrganisatiePortaalErediensten-beheerder\" )
}")
(grant (read)
:to-graph (acmidm-lezer acmidm-vendor)
:for-allowed-group "ABBOrganisatiePortaalGebruiker-lezer")
(grant (read write)
:to-graph (acmidm-editeerder acmidm-vendor)
:for-allowed-group "ABBOrganisatiePortaalGebruiker-editeerder")
(grant (read write)
:to-graph (acmidm-editeerder acmidm-vendor)
:for-allowed-group "ABBOrganisatiePortaalGebruiker-beheerder")
(grant (read)
:to-graph (acmidm-worship-lezer acmidm-vendor)
:for-allowed-group "ABBOrganisatiePortaalErediensten-lezer")
(grant (read write)
:to-graph (acmidm-worship-editeerder acmidm-vendor)
:for-allowed-group "ABBOrganisatiePortaalErediensten-editeerder")
(grant (read write)
:to-graph (acmidm-worship-editeerder acmidm-vendor)
:for-allowed-group "ABBOrganisatiePortaalErediensten-beheerder")
(grant (read)
:to-graph (public shared)
:for-allowed-group "public")
(grant (read write)
:to-graph (reports jobs system-jobs)
:for-allowed-group "o-admin-rwf")

View File

@@ -1,5 +0,0 @@
defmodule Delta.Config do
def targets do
[ "http://deltanotifier" ]
end
end

View File

@@ -8,10 +8,10 @@ CONSTRUCT {
?p ?o.
?orgaanInTime <http://www.w3.org/ns/org#hasPost> ?mandate ;
<http://data.vlaanderen.be/ns/mandaat#isTijdspecialisatieVan> ?orgaan .
<https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan> ?orgaan .
?orgaan <http://data.vlaanderen.be/ns/besluit#bestuurt> ?bestuur .
?bestuur <http://data.vlaanderen.be/ns/besluit#classificatie> ?classification .
?bestuur <http://www.w3.org/ns/org#classification> ?classification .
FILTER(?classification IN (

View File

@@ -7,7 +7,12 @@ CONSTRUCT {
FILTER (?p IN (
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>,
<http://mu.semte.ch/vocabularies/core/uuid>,
<http://xmlns.com/foaf/0.1/familyName>
<http://xmlns.com/foaf/0.1/familyName>,
<http://www.w3.org/2002/07/owl#sameAs>,
<http://www.w3.org/ns/prov#wasGeneratedBy>,
<http://www.w3.org/ns/prov#wasAssociatedWith>,
<http://redpencil.data.gift/vocabularies/tasks/modifiedOn>,
<http://redpencil.data.gift/vocabularies/tasks/modifiedBy>
))
FILTER NOT EXISTS {

View File

@@ -108,7 +108,7 @@
"graphsFilter": ["http://mu.semte.ch/graphs/administrative-unit"],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://data.vlaanderen.be/ns/besluit#werkingsgebied",
"http://purl.org/dc/terms/spatial",
"http://www.opengis.net/ont/geosparql#sfWithin",
"http://www.w3.org/2002/07/owl#sameAs",
"http://www.w3.org/2004/02/skos/core#altLabel",

View File

@@ -240,7 +240,7 @@
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://data.vlaanderen.be/ns/besluit#werkingsgebied",
"http://purl.org/dc/terms/spatial",
"http://www.opengis.net/ont/geosparql#sfWithin",
"http://www.w3.org/2002/07/owl#sameAs",
"http://www.w3.org/2004/02/skos/core#altLabel",

View File

@@ -126,7 +126,7 @@
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://data.vlaanderen.be/ns/besluit#werkingsgebied",
"http://purl.org/dc/terms/spatial",
"http://www.opengis.net/ont/geosparql#sfWithin",
"http://www.w3.org/2002/07/owl#sameAs",
"http://www.w3.org/2004/02/skos/core#altLabel",
@@ -525,6 +525,33 @@
"http://www.w3.org/2004/02/skos/core#prefLabel"
]
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/EredienstBeroepen",
"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/2004/02/skos/core#prefLabel",
"http://data.lblod.info/vocabularies/erediensten/vanToepassingBijStatus"
]
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/TypeBetrokkenheid",
"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/2004/02/skos/core#prefLabel"
]
},
{
"type": "http://data.vlaanderen.be/ns/mandaat#Mandaat",
"graphsFilter": [

View File

@@ -1,6 +1,5 @@
DELETE {
GRAPH ?g {
?s a <http://www.w3.org/ns/org#Organization>.
?s <http://www.w3.org/ns/regorg#orgStatus> ?status.
}
}

View File

@@ -235,6 +235,10 @@ defmodule Dispatcher do
Proxy.forward(conn, path, "http://cache/membership-roles/")
end
match "/vendors/*path", %{accept: [:json], layer: :api} do
Proxy.forward(conn, path, "http://cache/vendors/")
end
# There is currently no logic to invalidate the kboOrganization cache when wegwijse updates the content
match "/kbo-organizations/*path", %{accept: [:any], layer: :api} do
Proxy.forward(conn, path, "http://resource/kbo-organizations/")
@@ -386,7 +390,7 @@ defmodule Dispatcher do
layer: :api_services,
accept: %{json: true}
} do
forward(conn, path, "http://construct-organization-relationships/create-relationships/")
forward(conn, path, "http://construct-organization-relationships/")
end
post "/kbo-data-sync/*path", %{layer: :api_services, accept: %{json: true}} do
@@ -503,8 +507,16 @@ defmodule Dispatcher do
# 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
#################################################################
# Health checks
#################################################################
get "/health/accounts", %{layer: :api} do
Proxy.forward(conn, [], "http://resource/accounts/")
end
###############################################################

View File

@@ -0,0 +1,25 @@
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX scheme: <http://data.vlaanderen.be/id/conceptscheme/>
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/e3afe092-6ca6-4685-94c6-1ee20811efc4>
rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ;
mu:uuid "e3afe092-6ca6-4685-94c6-1ee20811efc4" ;
skos:prefLabel "Regionaal zorgplatform" ;
skos:altLabel "Regionale zorgzone" ;
skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ;
skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/7a199d27-31c3-44bb-a58f-b3a64673a8b6>
rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ;
mu:uuid "7a199d27-31c3-44bb-a58f-b3a64673a8b6" ;
skos:prefLabel "Andere" ;
skos:definition "Restcategorie: geregistreerde organisatie die niet onder een van de andere classificaties valt." ;
skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ;
skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
}
}

View File

@@ -0,0 +1,24 @@
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
# All graphs authorized for regorg:RegisteredOrganization (see config/authorization/config.lisp),
# so no dangling org:classification survives the code deletion in the next migration.
DELETE {
GRAPH ?g { ?org org:classification ?legacy . }
}
INSERT {
GRAPH ?g { ?org org:classification <http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/7a199d27-31c3-44bb-a58f-b3a64673a8b6> . }
}
WHERE {
VALUES ?g {
<http://mu.semte.ch/graphs/administrative-unit>
<http://mu.semte.ch/graphs/shared>
<http://mu.semte.ch/graphs/worship-service>
}
VALUES ?legacy {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/3e5c8e30-95a7-47b0-b0a4-210d5bd440a7>
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b9ed22af-3661-4c3e-b07f-b641d80ebf61>
}
GRAPH ?g { ?org org:classification ?legacy . }
}

View File

@@ -0,0 +1,13 @@
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
DELETE {
GRAPH <http://mu.semte.ch/graphs/public> { ?code ?p ?o . }
}
WHERE {
VALUES ?code {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/3e5c8e30-95a7-47b0-b0a4-210d5bd440a7>
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b9ed22af-3661-4c3e-b07f-b641d80ebf61>
}
GRAPH <http://mu.semte.ch/graphs/public> { ?code ?p ?o . }
}

View File

@@ -0,0 +1,26 @@
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?membership ?p ?o .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?membership ?p ?o .
}
FILTER(?membership IN (
<http://data.lblod.info/id/lidmaatschap/e30da404c9e798fbf6c3cb08c18aa2fb3467fbb17d0ee3bf7aeea2e33b506394>,
<http://data.lblod.info/id/lidmaatschap/57e299c1371ff49f9ab4a59c04f213adb95bbd412fca118ba7b97923e8911f1e>,
<http://data.lblod.info/id/lidmaatschap/b5ffde4275206674ce04aec50b96055790fe2bc899688cafab5f317aa351340c>,
<http://data.lblod.info/id/lidmaatschap/6b63778ff8a7805b1bb6eadf016e4eb16eb5bf41>,
<http://data.lblod.info/id/lidmaatschap/7983bd733dd478ee37e74077a9079d34d0d2f8e1>,
<http://data.lblod.info/id/lidmaatschap/b9024618552754cdcf0802109404f2bb5948fe03>,
<http://data.lblod.info/id/lidmaatschap/ef819edf7cce76075aa41d5b42a41ad95e54c73225e1eca066352ecda3780e2a>,
<http://data.lblod.info/id/lidmaatschap/ce7ae35e02378f6496d02ef27a826330b22a083b>,
<http://data.lblod.info/id/lidmaatschap/d275f7cb4cbe0dbf5311d9015c08830a982bb7d3dca565862206d6a840b30dbf>
))
}

View File

@@ -0,0 +1,35 @@
DELETE WHERE {
graph <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/betrokkenLokaleBesturen/a648cf4f6e94d3ea0b0ed32b73b75dd9> ?p ?o.
}
}
;
DELETE WHERE {
graph <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/bestuurseenheden/c648ea5d12626ee3364a02debb223908a71e68f53d69a7a7136585b58a083e77> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/a648cf4f6e94d3ea0b0ed32b73b75dd9>.
}
}
;
DELETE {
GRAPH ?g {
?localInvolvementOudHeverlee <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
}
}
INSERT {
GRAPH ?g {
?localInvolvementOudHeverlee <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> 100.
}
}
WHERE {
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?g)
GRAPH ?g {
?localInvolvementOudHeverlee <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
}
VALUES ?localInvolvementOudHeverlee {
<http://data.lblod.info/id/betrokkenLokaleBesturen/3c8696890fb0bb865a798923acf58dcf>
}
}

View File

@@ -0,0 +1,12 @@
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?s <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
}
} WHERE {
VALUES ?type {
<http://lblod.data.gift/vocabularies/organisatie/EredienstBeroepen>
<http://lblod.data.gift/vocabularies/organisatie/TypeBetrokkenheid>
}
?s a ?type .
}

View File

@@ -0,0 +1,25 @@
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?vlaamsGewest a prov:Location ;
mu:uuid ?uuid ;
rdfs:label "Vlaams Gewest" ;
ext:werkingsgebiedNiveau "Gewest" ;
skos:exactMatch <http://vocab.belgif.be/auth/refnis2025/2000> ,
<http://vocab.belgif.be/auth/refnis2019/2000> .
}
} WHERE {
BIND(SHA256(CONCAT("Werkingsgebied for Vlaams Gewest")) AS ?uuid)
BIND(IRI(CONCAT("http://data.lblod.info/id/werkingsgebieden/", STR(?uuid))) AS ?vlaamsGewest)
FILTER NOT EXISTS {
GRAPH <http://mu.semte.ch/graphs/public> {
?existing ext:werkingsgebiedNiveau "Gewest" ;
rdfs:label "Vlaams Gewest" .
}
}
}

View File

@@ -0,0 +1,85 @@
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
# 1) Link the 5 Flemish province werkingsgebieden themselves to Vlaams Gewest
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?provWg geo:sfWithin ?vlaamsGewest .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/public> {
?vlaamsGewest a prov:Location ;
ext:werkingsgebiedNiveau "Gewest" ;
rdfs:label "Vlaams Gewest" .
}
GRAPH <http://mu.semte.ch/graphs/shared> {
?province a besluit:Bestuurseenheid ;
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000000> .
}
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?province besluit:werkingsgebied ?provWg .
}
FILTER NOT EXISTS {
GRAPH <http://mu.semte.ch/graphs/public> {
?provWg geo:sfWithin ?vlaamsGewest .
}
}
} ;
# 2) Link Flemish municipality werkingsgebieden to Vlaams Gewest
# Selector: any Gemeente-level location whose sfWithin is a werkingsgebied
# belonging to a Bestuurseenheid classified as Provincie (i.e. a Flemish province).
# Brussels has no provinces, and there are no Waals-Gewest provinces in OP,
# so "classified as Provincie" == "Flemish province".
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?munWg geo:sfWithin ?vlaamsGewest .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/public> {
?vlaamsGewest a prov:Location ;
ext:werkingsgebiedNiveau "Gewest" ;
rdfs:label "Vlaams Gewest" .
?munWg a prov:Location ;
ext:werkingsgebiedNiveau "Gemeente" ;
geo:sfWithin ?provWg .
}
GRAPH <http://mu.semte.ch/graphs/shared> {
?province a besluit:Bestuurseenheid ;
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000000> .
}
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?province besluit:werkingsgebied ?provWg .
}
FILTER NOT EXISTS {
GRAPH <http://mu.semte.ch/graphs/public> {
?munWg geo:sfWithin ?vlaamsGewest .
}
}
} ;
# 3) Link all District and Referentieregio werkingsgebieden to Vlaams Gewest
# All districts and referentieregios in the data are Flemish by scope;
# no further filtering required.
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?wg geo:sfWithin ?vlaamsGewest .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/public> {
?vlaamsGewest a prov:Location ;
ext:werkingsgebiedNiveau "Gewest" ;
rdfs:label "Vlaams Gewest" .
?wg a prov:Location ; ext:werkingsgebiedNiveau ?niveau .
VALUES ?niveau { "District" "Referentieregio" }
}
FILTER NOT EXISTS {
GRAPH <http://mu.semte.ch/graphs/public> {
?wg geo:sfWithin ?vlaamsGewest .
}
}
}

View File

@@ -0,0 +1,48 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime a besluit:Bestuursorgaan ;
mu:uuid ?uuidOrgaanInTime ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime ;
generiek:isTijdspecialisatieVan ?bestuursorgaan .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
VALUES ?type {
ere:BestuurVanDeEredienst
ere:CentraalBestuurVanDeEredienst
}
?bestuurseenheid a ?type .
FILTER NOT EXISTS {
?bestuurseenheid regorg:orgStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> .
}
?bestuursorgaan besluit:bestuurt ?bestuurseenheid .
FILTER NOT EXISTS {
?missingOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
?missingOrgaanInTime mandaat:bindingStart ?start .
FILTER CONTAINS(STR(?start), "2026")
}
FILTER NOT EXISTS {
?missingOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
?missingOrgaanInTime mandaat:bindingEinde ?end .
FILTER CONTAINS(STR(?end), "2029")
}
}
BIND(MD5(CONCAT(?bestuurseenheid, ?bestuursorgaan, "2026-2029")) as ?uuidOrgaanInTime)
BIND(IRI(CONCAT("http://data.lblod.info/id/bestuursorganen/", ?uuidOrgaanInTime)) AS ?orgaanInTime)
}

View File

@@ -0,0 +1,187 @@
# Add missing mandates to worship services for period 2026-2029
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
## Case LidVanRechtswege : shared mandate for all the organen in time
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?lidVanRechtswege .
?lidVanRechtswege a mandaat:Mandaat ;
mu:uuid ?uuidLidVanRechtswege ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
VALUES (?start ?end) {
("2026-04-01T00:00:00"^^xsd:dateTime "2029-03-31T00:00:00"^^xsd:dateTime)
}
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart ?start ;
mandaat:bindingEinde ?end .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?lidVanRechtswege .
?lidVanRechtswege org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Rechtswege")) as ?uuidLidVanRechtswege)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidLidVanRechtswege)) AS ?lidVanRechtswege)
}
## Case Bestuursleden, small or big half : 2026 is the beginning of a GH
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?bestuurslidGH .
?bestuurslidGH a mandaat:Mandaat ;
mu:uuid ?uuidBestuurslidGH ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?bestuurslidGH .
?bestuurslidGH org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "BestuurslidGH 2026-2032")) as ?uuidBestuurslidGH)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslidGH)) AS ?bestuurslidGH)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?bestuurslidKH .
?bestuurslidKH a mandaat:Mandaat ;
mu:uuid ?uuidBestuurslidKH ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/2962f0bd-2836-4758-9866-8ce8ea2c536f> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
VALUES (?start ?end) {
("2026-04-01T00:00:00"^^xsd:dateTime "2029-03-31T00:00:00"^^xsd:dateTime)
}
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart ?start ;
mandaat:bindingEinde ?end .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?bestuurslidKH .
?bestuurslidKH org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/2962f0bd-2836-4758-9866-8ce8ea2c536f> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "BestuurslidKH 2023-2029")) as ?uuidBestuurslidKH)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslidKH)) AS ?bestuurslidKH)
}
;
## Other cases are simpler, one mandate is linked to only one orgaan in time. Creating them when missing.
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?voorzitter .
?voorzitter a mandaat:Mandaat ;
mu:uuid ?uuidVoorzitter ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?voorzitter .
?voorzitter org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Voorzitter 2026-2029")) as ?uuidVoorzitter)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVoorzitter)) AS ?voorzitter)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?secretaris .
?secretaris a mandaat:Mandaat ;
mu:uuid ?uuidSecretaris ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?secretaris .
?secretaris org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Secretaris 2026-2029")) as ?uuidSecretaris)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidSecretaris)) AS ?secretaris)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?penningmeester .
?penningmeester a mandaat:Mandaat ;
mu:uuid ?uuidPenningmeester ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?penningmeester .
?penningmeester org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Penningmeester 2026-2029")) as ?uuidPenningmeester)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidPenningmeester)) AS ?penningmeester)
}

View File

@@ -0,0 +1,154 @@
# Add missing mandates to central worship services
## 2026 - 2029
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?expert .
?expert a mandaat:Mandaat ;
mu:uuid ?uuidExpert ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/8c91c321ad477c4fc372ee36358d3ed4> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?expert .
?expert org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/8c91c321ad477c4fc372ee36358d3ed4> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Expert 2026-2029")) as ?uuidExpert)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidExpert)) AS ?expert)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?vertegenwoordiger .
?vertegenwoordiger a mandaat:Mandaat ;
mu:uuid ?uuidVertegenwoordiger ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/6e26e94ea4b127eeb850fb6debe07271> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?vertegenwoordiger .
?vertegenwoordiger org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/6e26e94ea4b127eeb850fb6debe07271> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Vertegenwoordiger 2026-2029")) as ?uuidVertegenwoordiger)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVertegenwoordiger)) AS ?vertegenwoordiger)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?secretaris .
?secretaris a mandaat:Mandaat ;
mu:uuid ?uuidSecretaris ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?secretaris .
?secretaris org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Secretaris 2026-2029")) as ?uuidSecretaris)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidSecretaris)) AS ?secretaris)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?voorzitter .
?voorzitter a mandaat:Mandaat ;
mu:uuid ?uuidVoorzitter ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5960262f753661cf84329f3afa9f7df7> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?voorzitter .
?voorzitter org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5960262f753661cf84329f3afa9f7df7> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Voorzitter 2026-2029")) as ?uuidVoorzitter)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVoorzitter)) AS ?voorzitter)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?bestuurslid .
?bestuurslid a mandaat:Mandaat ;
mu:uuid ?uuidBestuurslid ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/f848fa3cc2c5fb7c581a116866293925> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?worshipService regorg:orgStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> .
}
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?bestuurslid .
?bestuurslid org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/f848fa3cc2c5fb7c581a116866293925> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Bestuurslid 2026-2029")) as ?uuidBestuurslid)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslid)) AS ?bestuurslid)
}

View File

@@ -0,0 +1,19 @@
# Cleanup leftover `hhttp://` malformed Secretaris org:role triples introduced by
# the 2022 migrations `20220929092641-create-central-worship-organen-2023-2026.sparql`
# and `20220929104939-create-central-worship-organen-2026-2029.sparql` (line 31).
#
# By this point migration C (20260420100300) has already inserted the correct
# Secretaris `org:role` triple on the same mandate IRI, so removing the malformed
# one leaves each central-worship Secretaris mandate with exactly one valid role.
PREFIX org: <http://www.w3.org/ns/org#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s org:role <hhttp://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s org:role <hhttp://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
}
}

View File

@@ -0,0 +1,48 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime a besluit:Bestuursorgaan ;
mu:uuid ?uuidOrgaanInTime ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime ;
generiek:isTijdspecialisatieVan ?bestuursorgaan .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
VALUES ?type {
ere:BestuurVanDeEredienst
ere:CentraalBestuurVanDeEredienst
}
?bestuurseenheid a ?type .
FILTER NOT EXISTS {
?bestuurseenheid regorg:orgStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> .
}
?bestuursorgaan besluit:bestuurt ?bestuurseenheid .
FILTER NOT EXISTS {
?missingOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
?missingOrgaanInTime mandaat:bindingStart ?start .
FILTER CONTAINS(STR(?start), "2029")
}
FILTER NOT EXISTS {
?missingOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
?missingOrgaanInTime mandaat:bindingEinde ?end .
FILTER CONTAINS(STR(?end), "2032")
}
}
BIND(MD5(CONCAT(?bestuurseenheid, ?bestuursorgaan, "2029-2032")) as ?uuidOrgaanInTime)
BIND(IRI(CONCAT("http://data.lblod.info/id/bestuursorganen/", ?uuidOrgaanInTime)) AS ?orgaanInTime)
}

View File

@@ -0,0 +1,187 @@
# Create mandates for worship services for period 2029-2032
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
## Case LidVanRechtswege : shared mandate for all the organen in time
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?lidVanRechtswege .
?lidVanRechtswege a mandaat:Mandaat ;
mu:uuid ?uuidLidVanRechtswege ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
VALUES (?start ?end) {
("2029-04-01T00:00:00"^^xsd:dateTime "2032-03-31T00:00:00"^^xsd:dateTime)
}
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart ?start ;
mandaat:bindingEinde ?end .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?lidVanRechtswege .
?lidVanRechtswege org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Rechtswege")) as ?uuidLidVanRechtswege)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidLidVanRechtswege)) AS ?lidVanRechtswege)
}
## Case Bestuursleden, small or big half : 2029 is the beginning of a KH (cycle 2029-2035); GH continues its 2026-2032 cycle.
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?bestuurslidGH .
?bestuurslidGH a mandaat:Mandaat ;
mu:uuid ?uuidBestuurslidGH ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?bestuurslidGH .
?bestuurslidGH org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "BestuurslidGH 2026-2032")) as ?uuidBestuurslidGH)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslidGH)) AS ?bestuurslidGH)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?bestuurslidKH .
?bestuurslidKH a mandaat:Mandaat ;
mu:uuid ?uuidBestuurslidKH ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/2962f0bd-2836-4758-9866-8ce8ea2c536f> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
VALUES (?start ?end) {
("2029-04-01T00:00:00"^^xsd:dateTime "2032-03-31T00:00:00"^^xsd:dateTime)
}
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart ?start ;
mandaat:bindingEinde ?end .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?bestuurslidKH .
?bestuurslidKH org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/2962f0bd-2836-4758-9866-8ce8ea2c536f> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "BestuurslidKH 2029-2035")) as ?uuidBestuurslidKH)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslidKH)) AS ?bestuurslidKH)
}
;
## Other cases are simpler, one mandate is linked to only one orgaan in time. Creating them when missing.
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?voorzitter .
?voorzitter a mandaat:Mandaat ;
mu:uuid ?uuidVoorzitter ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?voorzitter .
?voorzitter org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Voorzitter 2029-2032")) as ?uuidVoorzitter)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVoorzitter)) AS ?voorzitter)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?secretaris .
?secretaris a mandaat:Mandaat ;
mu:uuid ?uuidSecretaris ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?secretaris .
?secretaris org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Secretaris 2029-2032")) as ?uuidSecretaris)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidSecretaris)) AS ?secretaris)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?penningmeester .
?penningmeester a mandaat:Mandaat ;
mu:uuid ?uuidPenningmeester ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?penningmeester .
?penningmeester org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Penningmeester 2029-2032")) as ?uuidPenningmeester)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidPenningmeester)) AS ?penningmeester)
}

View File

@@ -0,0 +1,154 @@
# Create mandates for central worship services
## 2029 - 2032
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?expert .
?expert a mandaat:Mandaat ;
mu:uuid ?uuidExpert ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/8c91c321ad477c4fc372ee36358d3ed4> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?expert .
?expert org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/8c91c321ad477c4fc372ee36358d3ed4> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Expert 2029-2032")) as ?uuidExpert)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidExpert)) AS ?expert)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?vertegenwoordiger .
?vertegenwoordiger a mandaat:Mandaat ;
mu:uuid ?uuidVertegenwoordiger ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/6e26e94ea4b127eeb850fb6debe07271> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?vertegenwoordiger .
?vertegenwoordiger org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/6e26e94ea4b127eeb850fb6debe07271> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Vertegenwoordiger 2029-2032")) as ?uuidVertegenwoordiger)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVertegenwoordiger)) AS ?vertegenwoordiger)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?secretaris .
?secretaris a mandaat:Mandaat ;
mu:uuid ?uuidSecretaris ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?secretaris .
?secretaris org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Secretaris 2029-2032")) as ?uuidSecretaris)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidSecretaris)) AS ?secretaris)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?voorzitter .
?voorzitter a mandaat:Mandaat ;
mu:uuid ?uuidVoorzitter ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5960262f753661cf84329f3afa9f7df7> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?voorzitter .
?voorzitter org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5960262f753661cf84329f3afa9f7df7> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Voorzitter 2029-2032")) as ?uuidVoorzitter)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVoorzitter)) AS ?voorzitter)
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?bestuurslid .
?bestuurslid a mandaat:Mandaat ;
mu:uuid ?uuidBestuurslid ;
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/f848fa3cc2c5fb7c581a116866293925> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:CentraalBestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
FILTER NOT EXISTS {
?worshipService regorg:orgStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> .
}
FILTER NOT EXISTS {
?orgaanInTime org:hasPost ?bestuurslid .
?bestuurslid org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/f848fa3cc2c5fb7c581a116866293925> .
}
}
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Bestuurslid 2029-2032")) as ?uuidBestuurslid)
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslid)) AS ?bestuurslid)
}

View File

@@ -0,0 +1,51 @@
DELETE WHERE {
graph <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/betrokkenLokaleBesturen/912bd10fb40c208e9b6e2a20af23fc80> ?p ?o.
}
}
;
DELETE WHERE {
graph <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/bestuurseenheden/e971816acb021c37576835e6a96922442628956fd029d885fd849c9f07414469> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/912bd10fb40c208e9b6e2a20af23fc80>.
}
}
;
DELETE WHERE {
graph <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/betrokkenLokaleBesturen/4495dfe049edadb53a29379426ab1c50> ?p ?o.
}
}
;
DELETE WHERE {
graph <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/bestuurseenheden/d3000e1841d968dd70d4534bf216699d830d146ccc1f88b902b0793caad9daf2> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/4495dfe049edadb53a29379426ab1c50>.
}
}
;
DELETE {
GRAPH ?g {
?localInvolvementSintLaureins <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
}
}
INSERT {
GRAPH ?g {
?localInvolvementSintLaureins <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> 100.
}
}
WHERE {
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?g)
GRAPH ?g {
?localInvolvementSintLaureins <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
}
VALUES ?localInvolvementSintLaureins {
<http://data.lblod.info/id/betrokkenLokaleBesturen/479bf2ff79dc2af870f371f5d86b08bc>
}
}

View File

@@ -0,0 +1,39 @@
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
PREFIX adres: <https://data.vlaanderen.be/ns/adres#>
DELETE {
GRAPH <http://mu.semte.ch/application> {
?s ?p ?o
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s ?p ?o
}
} WHERE {
GRAPH <http://mu.semte.ch/application> {
VALUES ?s {
<http://data.lblod.info/id/bestuurseenheden/5c6ab343-3405-475d-a184-d44bbe7e787a>
<http://data.lblod.info/id/identificatoren/2aa74846-a99d-423b-8c9e-b2a344b39f2a>
<http://data.lblod.info/id/gestructureerdeIdentificatoren/0edd4e8e-44b6-4e86-8717-cda144f91ebb>
<http://data.lblod.info/id/vestigingen/29faec77-652a-4d8e-afbb-635b141b13f0>
<http://data.lblod.info/id/contact-punten/bc66afca-f8cf-4e4d-b038-500906e9ffa9>
<http://data.lblod.info/id/contact-punten/1d1da2b5-8f38-41b6-a81d-5bfa72e7d7db>
<http://data.lblod.info/id/adressen/2d6c327a-cf81-43a6-8536-17602781fb2f>
}
?s ?p ?o.
}
}
;
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
<http://data.lblod.info/id/bestuurseenheden/5c6ab343-3405-475d-a184-d44bbe7e787a> a dcterms:Agent ;
regorg:legalName "AGB BRUGGE" ;
besluit:werkingsgebied <http://data.lblod.info/id/werkingsgebieden/e1a7aa197d1fa117ad5fdc30dee57cf95974c149ed0f319237bb8fb1355d911e> .
<http://data.lblod.info/id/adressen/2d6c327a-cf81-43a6-8536-17602781fb2f> adres:adresIsGelegenIn <http://data.lblod.info/id/werkingsgebieden/9c503a712d448bc8b89c1f8802c207e30bd192bc8da3bf22509a547949a45301> .
}
}

View File

@@ -0,0 +1 @@
http://mu.semte.ch/graphs/public

View File

@@ -0,0 +1,214 @@
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix mu: <http://mu.semte.ch/vocabularies/core/> .
@prefix code: <http://lblod.data.gift/vocabularies/organisatie/> .
@prefix conceptscheme: <http://data.vlaanderen.be/id/conceptscheme/> .
@prefix concept: <http://lblod.data.gift/concepts/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
# Concept Scheme for Legal Forms
conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af
rdf:type skos:ConceptScheme ;
mu:uuid "c3ff1a7f-c091-484d-8785-c8a5740573af" ;
skos:prefLabel "Juridische vorm" .
# Legal Form Codes
concept:4a55b679-e4c7-4014-a0b8-3d6762e0225f
rdf:type skos:Concept ;
mu:uuid "4a55b679-e4c7-4014-a0b8-3d6762e0225f" ;
skos:prefLabel "Stad / gemeente" ;
sh:order 1 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:e87b0707-1f9c-4577-8918-023e60974d2f
rdf:type skos:Concept ;
mu:uuid "e87b0707-1f9c-4577-8918-023e60974d2f" ;
skos:prefLabel "Openbaar centrum voor maatschappelijk welzijn" ;
sh:order 2 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:fa7b4356-6e67-4d3a-9256-72922a12227a
rdf:type skos:Concept ;
mu:uuid "fa7b4356-6e67-4d3a-9256-72922a12227a" ;
skos:prefLabel "Provinciale overheid" ;
sh:order 3 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:37e78d58-ab28-4047-8d23-4f2c09707c22
rdf:type skos:Concept ;
mu:uuid "37e78d58-ab28-4047-8d23-4f2c09707c22" ;
skos:prefLabel "Autonoom gemeentebedrijf" ;
sh:order 4 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:5a015434-4917-4124-a8ad-7f80d5300952
rdf:type skos:Concept ;
mu:uuid "5a015434-4917-4124-a8ad-7f80d5300952" ;
skos:prefLabel "Autonoom provinciebedrijf" ;
sh:order 5 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:107b192a-44e4-4d4b-aba7-e41aa6cc7f69
rdf:type skos:Concept ;
mu:uuid "107b192a-44e4-4d4b-aba7-e41aa6cc7f69" ;
skos:prefLabel "Projectvereniging" ;
sh:order 6 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:960f8bb1-ea5d-40d7-bbf4-dbc0794afd26
rdf:type skos:Concept ;
mu:uuid "960f8bb1-ea5d-40d7-bbf4-dbc0794afd26" ;
skos:prefLabel "Dienstverlenende vereniging (Vlaams Gewest)" ;
sh:order 7 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:574a4cfb-7958-463a-9f4c-d9c4b250847c
rdf:type skos:Concept ;
mu:uuid "574a4cfb-7958-463a-9f4c-d9c4b250847c" ;
skos:prefLabel "Opdrachthoudende vereniging (Vlaams Gewest)" ;
sh:order 8 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:c28b64ce-bb6c-4f8f-b03f-51dc09ae6748
rdf:type skos:Concept ;
mu:uuid "c28b64ce-bb6c-4f8f-b03f-51dc09ae6748" ;
skos:prefLabel "Lokale politiezone" ;
sh:order 9 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:75b075c8-1076-4ea3-9bc3-366f6cf866f4
rdf:type skos:Concept ;
mu:uuid "75b075c8-1076-4ea3-9bc3-366f6cf866f4" ;
skos:prefLabel "Hulpverleningszone" ;
sh:order 10 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:dbdd09f3-55b1-48bc-ac51-2c87f951860a
rdf:type skos:Concept ;
mu:uuid "dbdd09f3-55b1-48bc-ac51-2c87f951860a" ;
skos:prefLabel "Vereniging zonder winstoogmerk" ;
sh:order 11 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:925fbdb3-4693-4dcf-b75e-0a98985b1785
rdf:type skos:Concept ;
mu:uuid "925fbdb3-4693-4dcf-b75e-0a98985b1785" ;
skos:prefLabel "Internationale vereniging zonder winstoogmerk" ;
sh:order 12 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:f25de736-bbc3-4e73-b401-5ee0b277f5f8
rdf:type skos:Concept ;
mu:uuid "f25de736-bbc3-4e73-b401-5ee0b277f5f8" ;
skos:prefLabel "Private stichting" ;
sh:order 13 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:9f578b10-255a-4403-ab4c-5d4415c30a0a
rdf:type skos:Concept ;
mu:uuid "9f578b10-255a-4403-ab4c-5d4415c30a0a" ;
skos:prefLabel "Stichting van openbaar nut" ;
sh:order 14 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:30fb3516-fc48-453b-b1f6-a571d149ca3a
rdf:type skos:Concept ;
mu:uuid "30fb3516-fc48-453b-b1f6-a571d149ca3a" ;
skos:prefLabel "Maatschap" ;
sh:order 15 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:7e31d057-fde3-47f3-ad89-3efd9e22ab08
rdf:type skos:Concept ;
mu:uuid "7e31d057-fde3-47f3-ad89-3efd9e22ab08" ;
skos:prefLabel "Vennootschap onder firma" ;
sh:order 16 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:cab6c3f9-aeee-48f0-88eb-c404310870ad
rdf:type skos:Concept ;
mu:uuid "cab6c3f9-aeee-48f0-88eb-c404310870ad" ;
skos:prefLabel "Commanditaire vennootschap" ;
sh:order 17 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:8aa6149a-0916-42ed-a907-f760c0720527
rdf:type skos:Concept ;
mu:uuid "8aa6149a-0916-42ed-a907-f760c0720527" ;
skos:prefLabel "Besloten Vennootschap" ;
sh:order 18 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:e85bdc30-a69f-48f2-bc08-d32b640b1730
rdf:type skos:Concept ;
mu:uuid "e85bdc30-a69f-48f2-bc08-d32b640b1730" ;
skos:prefLabel "Naamloze vennootschap" ;
sh:order 19 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:f35352d5-9454-4561-916a-f5f6459bc92b
rdf:type skos:Concept ;
mu:uuid "f35352d5-9454-4561-916a-f5f6459bc92b" ;
skos:prefLabel "Coöperatieve vennootschap" ;
sh:order 20 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:205d4e7b-d6cc-4534-8336-7fae98dc139e
rdf:type skos:Concept ;
mu:uuid "205d4e7b-d6cc-4534-8336-7fae98dc139e" ;
skos:prefLabel "Organisme voor de Financiering van Pensioenen" ;
sh:order 21 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:b4f2c3d5-8a7e-4f1b-9c2d-3e5f6a7b8c9d
rdf:type skos:Concept ;
mu:uuid "b4f2c3d5-8a7e-4f1b-9c2d-3e5f6a7b8c9d" ;
skos:prefLabel "Autonome verzorgingsinstelling" ;
sh:order 22 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:c7d8e9f0-1a2b-4c5d-6e7f-8a9b0c1d2e3f
rdf:type skos:Concept ;
mu:uuid "c7d8e9f0-1a2b-4c5d-6e7f-8a9b0c1d2e3f" ;
skos:prefLabel "Welzijnsvereniging" ;
sh:order 23 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:d1e2f3a4-5b6c-7d8e-9f0a-1b2c3d4e5f6a
rdf:type skos:Concept ;
mu:uuid "d1e2f3a4-5b6c-7d8e-9f0a-1b2c3d4e5f6a" ;
skos:prefLabel "Geen rechtspersoonlijkheid" ;
sh:order 24 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .
concept:aa2590a0-b6de-4cba-982c-27d70553b17e
rdf:type skos:Concept ;
mu:uuid "aa2590a0-b6de-4cba-982c-27d70553b17e" ;
skos:prefLabel "Andere" ;
sh:order 25 ;
skos:topConceptOf conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af ;
skos:inScheme conceptscheme:c3ff1a7f-c091-484d-8785-c8a5740573af .

View File

@@ -0,0 +1,11 @@
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://lblod.data.gift/concepts/8a4f3c2d-9e1b-4f5a-b7c3-6d8e9f0a1b2c>
a <http://lblod.data.gift/vocabularies/organisatie/Veranderingsgebeurtenis> ;
<http://mu.semte.ch/vocabularies/core/uuid> "8a4f3c2d-9e1b-4f5a-b7c3-6d8e9f0a1b2c" ;
<http://www.w3.org/2004/02/skos/core#prefLabel> "Wijziging juridische vorm" ;
<http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> ;
<http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/e1ff33ee76b5662ec8486f0e2abec384> ;
<http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/e1ff33ee76b5662ec8486f0e2abec384> .
}
}

View File

@@ -0,0 +1,51 @@
# New organization classification codes (ticket: new org types).
# prefLabel = technically-correct org name; altLabel = colloquial werkingsgebied term.
# URIs under data.vlaanderen.be/id/concept/<Family>/<uuid> (to be published upstream) - matches existing codes.
# Each code is inScheme its family scheme AND the public-export scheme (10caf4a4) = the export switch.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix mu: <http://mu.semte.ch/vocabularies/core/> .
@prefix ext: <http://mu.semte.ch/vocabularies/ext/> .
@prefix code: <http://lblod.data.gift/vocabularies/organisatie/> .
@prefix scheme: <http://data.vlaanderen.be/id/conceptscheme/> .
# --- BestuurseenheidClassificatieCode (besluit:Bestuurseenheid) ---
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/3a2649ef-7345-4d3a-8709-f89fc9b44f58>
rdf:type ext:OrganizationClassificationCode , code:BestuurseenheidClassificatieCode ;
mu:uuid "3a2649ef-7345-4d3a-8709-f89fc9b44f58" ;
skos:prefLabel "Interlokale vereniging" ;
skos:topConceptOf scheme:BestuurseenheidClassificatieCode ;
skos:inScheme scheme:BestuurseenheidClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/b2133b86-24f0-44f0-9d10-5b4c7f944a9d>
rdf:type ext:OrganizationClassificationCode , code:BestuurseenheidClassificatieCode ;
mu:uuid "b2133b86-24f0-44f0-9d10-5b4c7f944a9d" ;
skos:prefLabel "Vervoerregioraad" ;
skos:altLabel "Vervoerregio" ; # Modelled as the werkingsgebied of a Vervoerregioraad, but colloquially known as a Vervoerregio.
skos:topConceptOf scheme:BestuurseenheidClassificatieCode ;
skos:inScheme scheme:BestuurseenheidClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
# --- GeregistreerdeOrganisatieClassificatieCode (regorg:RegisteredOrganization) ---
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/8392b885-a875-4b0d-b6a2-b52e53bda454>
rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ;
mu:uuid "8392b885-a875-4b0d-b6a2-b52e53bda454" ;
skos:prefLabel "Zorgraad" ;
skos:altLabel "Eerstelijnszone" ; # Modelled as the werkingsgebied of a Zorgraad, but colloquially known as an Eerstelijnszone.
skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ;
skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b22948f9-e695-4f24-a530-b6bf3af3b37f>
rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ;
mu:uuid "b22948f9-e695-4f24-a530-b6bf3af3b37f" ;
skos:prefLabel "Bosgroep" ;
skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ;
skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/f4e5bb57-1007-4397-828b-b34bbf1e760d>
rdf:type ext:OrganizationClassificationCode , ext:GeregistreerdeOrganisatieClassificatieCode ;
mu:uuid "f4e5bb57-1007-4397-828b-b34bbf1e760d" ;
skos:prefLabel "Woonmaatschappij" ;
skos:topConceptOf scheme:GeregistreerdeOrganisatieClassificatieCode ;
skos:inScheme scheme:GeregistreerdeOrganisatieClassificatieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .

View File

@@ -0,0 +1,35 @@
# Governing body (bestuursorgaan) + mandate (bestuursfunctie) codes for the Vervoerregioraad.
# The vervoerregioraad is itself the deliberative organ (no AV/RvB substructure); members + a
# (dual) voorzitter. URIs under data.vlaanderen.be (to be published), matching existing codes.
# NOTE (business to confirm): exact role set + the dual voorzitterschap (gemeente-vertegenwoordiger
# + Departement MOW) — modeled here as a single Voorzitter + Lid.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix mu: <http://mu.semte.ch/vocabularies/core/> .
@prefix ext: <http://mu.semte.ch/vocabularies/ext/> .
@prefix code: <http://lblod.data.gift/vocabularies/organisatie/> .
@prefix scheme: <http://data.vlaanderen.be/id/conceptscheme/> .
# --- Bestuursorgaan: the Vervoerregioraad itself ---
<http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/a04a5fb1-b79c-4b8d-a664-c5410d466d49>
rdf:type code:BestuursorgaanClassificatieCode , skos:Concept , ext:BestuursorgaanClassificatieCode ;
mu:uuid "a04a5fb1-b79c-4b8d-a664-c5410d466d49" ;
skos:prefLabel "Vervoerregioraad" ;
skos:inScheme <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
# --- Bestuursfunctie codes (mandate roles) applying to the Vervoerregioraad ---
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/540f3be6-73ed-4935-9de7-30997bab379c>
rdf:type code:BestuursfunctieCode ;
mu:uuid "540f3be6-73ed-4935-9de7-30997bab379c" ;
skos:prefLabel "Voorzitter van de vervoerregioraad" ;
ext:appliesTo <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/a04a5fb1-b79c-4b8d-a664-c5410d466d49> ;
skos:topConceptOf scheme:BestuursfunctieCode ;
skos:inScheme scheme:BestuursfunctieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/1093c55c-84d5-424b-980e-8b2ca32dc445>
rdf:type code:BestuursfunctieCode ;
mu:uuid "1093c55c-84d5-424b-980e-8b2ca32dc445" ;
skos:prefLabel "Lid van de vervoerregioraad" ;
ext:appliesTo <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/a04a5fb1-b79c-4b8d-a664-c5410d466d49> ;
skos:topConceptOf scheme:BestuursfunctieCode ;
skos:inScheme scheme:BestuursfunctieCode , <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .

View File

@@ -0,0 +1,31 @@
DELETE {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/3e5c8e30-95a7-47b0-b0a4-210d5bd440a7> <http://www.w3.org/2004/02/skos/core#prefLabel> ?oldLabel.
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/3e5c8e30-95a7-47b0-b0a4-210d5bd440a7> <http://www.w3.org/2004/02/skos/core#prefLabel> "Vereniging algemeen".
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/3e5c8e30-95a7-47b0-b0a4-210d5bd440a7> <http://www.w3.org/2004/02/skos/core#prefLabel> ?oldLabel.
}
};
DELETE {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b9ed22af-3661-4c3e-b07f-b641d80ebf61> <http://www.w3.org/2004/02/skos/core#prefLabel> ?oldLabel.
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b9ed22af-3661-4c3e-b07f-b641d80ebf61> <http://www.w3.org/2004/02/skos/core#prefLabel> "Vennootschap algemeen".
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/b9ed22af-3661-4c3e-b07f-b641d80ebf61> <http://www.w3.org/2004/02/skos/core#prefLabel> ?oldLabel.
}
}

View File

@@ -0,0 +1,10 @@
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/TypeVestiging> .
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/2004/02/skos/core#prefLabel> "Bezoekadres" .
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://mu.semte.ch/vocabularies/core/uuid> "019ef8b6-ba27-7388-a5cc-faf74f357963" .
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/f8319ccf40fc2a1697edc5cf7e03018f> .
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/f8319ccf40fc2a1697edc5cf7e03018f> .
<http://lblod.data.gift/concepts/019ef8b6-ba27-7388-a5cc-faf74f357963> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
}
}

View File

@@ -0,0 +1,95 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
PREFIX org: <http://www.w3.org/ns/org#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?otherOrgaanInTime ?p ?o .
?s ?p2 ?otherOrgaanInTime .
?mandate ?mp ?mo .
?ms ?mp2 ?mandate .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst ;
regorg:orgStatus <http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> .
?bestuursorgaan besluit:bestuurt ?worshipService .
{
SELECT ?bestuursorgaan (MAX(?start) AS ?keptStart) {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan ;
mandaat:bindingStart ?start .
FILTER(?start <= NOW())
}
}
GROUP BY ?bestuursorgaan
}
?keptOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan ;
mandaat:bindingStart ?keptStart .
?otherOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
FILTER(?otherOrgaanInTime != ?keptOrgaanInTime)
{ ?otherOrgaanInTime ?p ?o . }
UNION
{ ?s ?p2 ?otherOrgaanInTime . }
UNION
{ ?otherOrgaanInTime org:hasPost ?mandate . ?mandate ?mp ?mo . }
UNION
{ ?otherOrgaanInTime org:hasPost ?mandate . ?ms ?mp2 ?mandate . }
}
};
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?mandate ?p ?o .
?s ?p2 ?mandate .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst ;
regorg:orgStatus <http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> .
?bestuursorgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
?orgaanInTime org:hasPost ?mandate .
?mandate a mandaat:Mandaat ;
org:role ?role .
FILTER(?role NOT IN (
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43>,
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2>,
<http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002>
))
{ ?mandate ?p ?o . }
UNION
{ ?s ?p2 ?mandate . }
}
};
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime mandaat:bindingEinde ?endDate .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst ;
regorg:orgStatus <http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> .
?bestuursorgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
?orgaanInTime mandaat:bindingEinde ?endDate .
}
};

View File

@@ -0,0 +1 @@
http://mu.semte.ch/graphs/public

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
http://mu.semte.ch/graphs/public

View File

@@ -0,0 +1,236 @@
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix mu: <http://mu.semte.ch/vocabularies/core/> .
@prefix code: <http://lblod.data.gift/vocabularies/organisatie/> .
@prefix conceptscheme: <http://data.vlaanderen.be/id/conceptscheme/> .
@prefix concept: <http://lblod.data.gift/concepts/> .
# Concept Scheme for Content Themes (Inhoudelijk Thema)
conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d
rdf:type skos:ConceptScheme ;
mu:uuid "b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d" ;
skos:prefLabel "Inhoudelijk thema" .
concept:54663344-b7c9-497d-aa9e-6c723ba2f1ec
rdf:type skos:Concept ;
mu:uuid "54663344-b7c9-497d-aa9e-6c723ba2f1ec" ;
skos:prefLabel "Afval en/of recyclage" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:0585facf-2194-48a6-b45f-30f629d33b0b
rdf:type skos:Concept ;
mu:uuid "0585facf-2194-48a6-b45f-30f629d33b0b" ;
skos:prefLabel "Crematorium en/of lijkbezorging" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:fab150c6-6956-4f41-8d59-56b4365ec5c9
rdf:type skos:Concept ;
mu:uuid "fab150c6-6956-4f41-8d59-56b4365ec5c9" ;
skos:prefLabel "Dierenwelzijn" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:ba00f1e9-d133-42cb-9dcf-834780ad63e4
rdf:type skos:Concept ;
mu:uuid "ba00f1e9-d133-42cb-9dcf-834780ad63e4" ;
skos:prefLabel "Distributie: elektriciteit, gas, stoom en/of gekoelde lucht" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:4119f9e8-4a50-4ed3-be61-6077b23598ca
rdf:type skos:Concept ;
mu:uuid "4119f9e8-4a50-4ed3-be61-6077b23598ca" ;
skos:prefLabel "Distributie: water" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:b747a46c-85d4-47f4-9085-7ceb15c30b8d
rdf:type skos:Concept ;
mu:uuid "b747a46c-85d4-47f4-9085-7ceb15c30b8d" ;
skos:prefLabel "Diversiteit, inburgering en/of integratie" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:5d8f09bc-8f65-4904-972a-940d5f2ed498
rdf:type skos:Concept ;
mu:uuid "5d8f09bc-8f65-4904-972a-940d5f2ed498" ;
skos:prefLabel "Economie, sociale economie en/of werk" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:a9952a91-7c41-4a5e-a735-082008ed64be
rdf:type skos:Concept ;
mu:uuid "a9952a91-7c41-4a5e-a735-082008ed64be" ;
skos:prefLabel "Erfgoed: cultureel" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:b9a95aa5-6bf6-4c26-b67b-4ac46b600f4d
rdf:type skos:Concept ;
mu:uuid "b9a95aa5-6bf6-4c26-b67b-4ac46b600f4d" ;
skos:prefLabel "Erfgoed: onroerend" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:fb0540e4-9776-41a8-b551-eb738216b79f
rdf:type skos:Concept ;
mu:uuid "fb0540e4-9776-41a8-b551-eb738216b79f" ;
skos:prefLabel "Facilitaire, administratieve en/of ondersteunende diensten" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:1081a013-2db6-4680-a9da-7b5d09698f40
rdf:type skos:Concept ;
mu:uuid "1081a013-2db6-4680-a9da-7b5d09698f40" ;
skos:prefLabel "Financiële activiteiten, financiering en/of verzekeringen" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:d177a63f-442e-4f50-a17f-54f23de9b69d
rdf:type skos:Concept ;
mu:uuid "d177a63f-442e-4f50-a17f-54f23de9b69d" ;
skos:prefLabel "Jeugdhulp en gezinsbeleid" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:0021dbec-fad2-4fc0-af31-b84944f56a09
rdf:type skos:Concept ;
mu:uuid "0021dbec-fad2-4fc0-af31-b84944f56a09" ;
skos:prefLabel "Mobiliteit" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:ddf03efb-81d1-4bb7-8ab8-45dc37aafffa
rdf:type skos:Concept ;
mu:uuid "ddf03efb-81d1-4bb7-8ab8-45dc37aafffa" ;
skos:prefLabel "Natuur, milieu, klimaat, landschap en/of duurzaamheid" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:dfe85927-ef24-48b5-bb6c-99360619ee65
rdf:type skos:Concept ;
mu:uuid "dfe85927-ef24-48b5-bb6c-99360619ee65" ;
skos:prefLabel "Onderwijs en/of vorming" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:04141320-99c5-41c3-ab42-576ab235376d
rdf:type skos:Concept ;
mu:uuid "04141320-99c5-41c3-ab42-576ab235376d" ;
skos:prefLabel "Personeel" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:9edf7528-4a58-4065-afc6-00f60b01cd7b
rdf:type skos:Concept ;
mu:uuid "9edf7528-4a58-4065-afc6-00f60b01cd7b" ;
skos:prefLabel "Riolering, afvalwaterbeheer en/of watersanering" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:50ddf4c7-623e-420b-8016-e953bd76c109
rdf:type skos:Concept ;
mu:uuid "50ddf4c7-623e-420b-8016-e953bd76c109" ;
skos:prefLabel "Ruimtelijke ordening" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:ab2f029e-ee42-452f-bcd7-416f391ef5f2
rdf:type skos:Concept ;
mu:uuid "ab2f029e-ee42-452f-bcd7-416f391ef5f2" ;
skos:prefLabel "Streekontwikkeling" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:e848b2cd-2348-4214-bf08-686ca04a864e
rdf:type skos:Concept ;
mu:uuid "e848b2cd-2348-4214-bf08-686ca04a864e" ;
skos:prefLabel "Telecommunicatie en/of informatica (ICT)" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:0e2c7608-e990-4854-b58a-b3c1b8dc7752
rdf:type skos:Concept ;
mu:uuid "0e2c7608-e990-4854-b58a-b3c1b8dc7752" ;
skos:prefLabel "Veiligheid" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:0230dfa4-d12b-4186-b7b0-4676e387a310
rdf:type skos:Concept ;
mu:uuid "0230dfa4-d12b-4186-b7b0-4676e387a310" ;
skos:prefLabel "Vrijetijdsbeleid: cultuur" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:7ddb59f5-d49b-4797-a7de-f6ababcf4c75
rdf:type skos:Concept ;
mu:uuid "7ddb59f5-d49b-4797-a7de-f6ababcf4c75" ;
skos:prefLabel "Vrijetijdsbeleid: jeugd" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:8044deef-36ad-4383-92e1-ddcea08ef783
rdf:type skos:Concept ;
mu:uuid "8044deef-36ad-4383-92e1-ddcea08ef783" ;
skos:prefLabel "Vrijetijdsbeleid: sport" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:2375ec2b-5c8f-45b8-bec3-82ba925dd6bf
rdf:type skos:Concept ;
mu:uuid "2375ec2b-5c8f-45b8-bec3-82ba925dd6bf" ;
skos:prefLabel "Vrijetijdsbeleid: toerisme" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:ac13b275-7e88-4601-b752-93860b737151
rdf:type skos:Concept ;
mu:uuid "ac13b275-7e88-4601-b752-93860b737151" ;
skos:prefLabel "Welzijn" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:ff690be5-fc55-4378-a504-9d9fabfd4a5f
rdf:type skos:Concept ;
mu:uuid "ff690be5-fc55-4378-a504-9d9fabfd4a5f" ;
skos:prefLabel "Wonen: algemeen wonen" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:9ec2080c-4657-4b9f-86b8-2ff5336b6760
rdf:type skos:Concept ;
mu:uuid "9ec2080c-4657-4b9f-86b8-2ff5336b6760" ;
skos:prefLabel "Wonen: sociaal wonen" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:938e3951-3ac9-4577-8144-1f0d65aa98f8
rdf:type skos:Concept ;
mu:uuid "938e3951-3ac9-4577-8144-1f0d65aa98f8" ;
skos:prefLabel "Zorg: eerstelijnszorg" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:a9d85267-5890-40e8-b764-562c239fbc0c
rdf:type skos:Concept ;
mu:uuid "a9d85267-5890-40e8-b764-562c239fbc0c" ;
skos:prefLabel "Zorg: geestelijke gezondheidszorg" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:14bf90d1-b1ba-43e3-a215-2e0fb66d7503
rdf:type skos:Concept ;
mu:uuid "14bf90d1-b1ba-43e3-a215-2e0fb66d7503" ;
skos:prefLabel "Zorg: woonzorg" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .
concept:1416c735-b31d-4499-86e4-d301ba67ef55
rdf:type skos:Concept ;
mu:uuid "1416c735-b31d-4499-86e4-d301ba67ef55" ;
skos:prefLabel "Zorg: ziekenhuizen (inclusief psychiatrische ziekenhuizen en revalidatieziekenhuizen)" ;
skos:topConceptOf conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d ;
skos:inScheme conceptscheme:b8a2c4d6-e9f1-4a3b-8c5d-7e2f9a1b3c4d .

View File

@@ -0,0 +1,36 @@
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX organisatie: <https://data.vlaanderen.be/ns/organisatie#>
PREFIX adres: <https://data.vlaanderen.be/ns/adres#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX dct: <http://purl.org/dc/terms/>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?org dct:spatial ?werkingsgebied .
}
} WHERE {
VALUES ?classification {
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/82250452-83a0-48f4-89cc-b430320493ce>
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/35833ba2-7371-400b-8df2-2912f66fb153>
<http://data.vlaanderen.be/id/concept/GeregistreerdeOrganisatieClassificatieCode/82fd21dc-e8bb-4d13-a010-f4a12358ef10>
}
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?org org:classification ?classification ;
org:hasPrimarySite ?site .
?site organisatie:bestaatUit ?address .
?address adres:gemeentenaam ?municipalityName .
}
FILTER NOT EXISTS {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?org dct:spatial ?existing .
}
}
GRAPH <http://mu.semte.ch/graphs/shared> {
?municipality org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000001> ;
skos:prefLabel ?municipalityName .
}
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?municipality besluit:werkingsgebied ?werkingsgebied .
}
}

View File

@@ -0,0 +1,72 @@
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX org: <http://www.w3.org/ns/org#>
# Deduplicate islamitisch minister positions: if an eredienstbestuur has more
# than one position for the same function (e.g. 2 "Waarnemende Imam"), keep
# only one - deterministically the lowest-URI position - and drop the rest
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService ere:wordtBediendDoor ?position .
?position ?p ?o .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst ;
ere:typeEredienst <http://lblod.data.gift/concepts/9d8bd472a00bf0a5c7b7186606365a52> ; # Islamitisch
ere:wordtBediendDoor ?position .
?position ?p ?o ;
ere:functie ?functie .
{
SELECT ?worshipService ?functie (IRI(MIN(STR(?anyPosition))) AS ?keptPosition) WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService ere:wordtBediendDoor ?anyPosition .
?anyPosition ere:functie ?functie .
}
}
GROUP BY ?worshipService ?functie
}
FILTER(?position != ?keptPosition)
FILTER NOT EXISTS { ?anyMinister org:holds ?position }
}
}
;
# Create any of the 4 islamitisch minister positions (Waarnemende Imam, Eerste/
# Tweede/Derde Imam in rang) that a worship service is missing, so every
# islamitisch eredienstbestuur always has all 4 positions, regardless of its
# current status.
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService ere:wordtBediendDoor ?newMinisterPosition .
?newMinisterPosition a org:Post , ere:PositieBedienaar ;
mu:uuid ?uuidNewMinisterPosition ;
ere:functie ?functie .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst ;
ere:typeEredienst <http://lblod.data.gift/concepts/9d8bd472a00bf0a5c7b7186606365a52> . # Islamitisch
VALUES ?functie {
<http://lblod.data.gift/concepts/7d8e0c15-7726-4196-9416-6dc40ed858bb> # Waarnemende Imam
<http://lblod.data.gift/concepts/e357bc8f4cc3a694fde2239748768a22> # Eerste Imam in rang
<http://lblod.data.gift/concepts/c4a3fd586211b17b06f574885e23f355> # Tweede Imam in rang
<http://lblod.data.gift/concepts/5ebb798bd59c3b48c25116032caa02b7> # Derde Imam in rang
}
FILTER NOT EXISTS {
?worshipService ere:wordtBediendDoor ?ministerPosition .
?ministerPosition ere:functie ?functie .
}
BIND(MD5(CONCAT(?worshipService, ?functie, "fix-islam-imam-roles-by-status")) as ?uuidNewMinisterPosition)
BIND(IRI(CONCAT("http://data.lblod.info/id/positiesBedienaar/", ?uuidNewMinisterPosition)) AS ?newMinisterPosition)
}
}

View File

@@ -0,0 +1,10 @@
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://lblod.data.gift/concepts/eeaf623d-9629-4de3-9c37-2dbb132b13d8> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/TypeVestiging> .
<http://lblod.data.gift/concepts/eeaf623d-9629-4de3-9c37-2dbb132b13d8> <http://www.w3.org/2004/02/skos/core#prefLabel> "Wijkkantoor" .
<http://lblod.data.gift/concepts/eeaf623d-9629-4de3-9c37-2dbb132b13d8> <http://mu.semte.ch/vocabularies/core/uuid> "eeaf623d-9629-4de3-9c37-2dbb132b13d8" .
<http://lblod.data.gift/concepts/eeaf623d-9629-4de3-9c37-2dbb132b13d8> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/f8319ccf40fc2a1697edc5cf7e03018f> .
<http://lblod.data.gift/concepts/eeaf623d-9629-4de3-9c37-2dbb132b13d8> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/f8319ccf40fc2a1697edc5cf7e03018f> .
<http://lblod.data.gift/concepts/eeaf623d-9629-4de3-9c37-2dbb132b13d8> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
}
}

View File

@@ -0,0 +1,17 @@
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://lblod.data.gift/concepts/7d8e0c15-7726-4196-9416-6dc40ed858bb> # Waarnemende Imam
ere:vanToepassingBijStatus <http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> . # In Oprichting
<http://lblod.data.gift/concepts/e357bc8f4cc3a694fde2239748768a22> # Eerste Imam in rang
ere:vanToepassingBijStatus <http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> . # Actief
<http://lblod.data.gift/concepts/c4a3fd586211b17b06f574885e23f355> # Tweede Imam in rang
ere:vanToepassingBijStatus <http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> . # Actief
<http://lblod.data.gift/concepts/5ebb798bd59c3b48c25116032caa02b7> # Derde Imam in rang
ere:vanToepassingBijStatus <http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> . # Actief
}
}

View File

@@ -0,0 +1,35 @@
DELETE WHERE {
graph <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/betrokkenLokaleBesturen/6187e2d787cc954587dd7dce215e96b5> ?p ?o.
}
}
;
DELETE WHERE {
graph <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/bestuurseenheden/73840d393bd94828f0903e8357c7f328d4bf4b8fbd63adbfa443e784f056a589> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/6187e2d787cc954587dd7dce215e96b5>.
}
}
;
DELETE {
GRAPH ?g {
?localInvolvementPajottegem <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
}
}
INSERT {
GRAPH ?g {
?localInvolvementPajottegem <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> 100.
}
}
WHERE {
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?g)
GRAPH ?g {
?localInvolvementPajottegem <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
}
VALUES ?localInvolvementPajottegem {
<http://data.lblod.info/id/betrokkenLokaleBesturen/58bfe3f61f5a661383a5db8502994210>
}
}

View File

@@ -0,0 +1 @@
http://mu.semte.ch/graphs/public

View File

@@ -0,0 +1,75 @@
@prefix cleanup: <http://mu.semte.ch/vocabularies/ext/cleanup/> .
@prefix mu: <http://mu.semte.ch/vocabularies/core/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
<http://data.lblod.info/id/cleanup-job/db1e677e-fc84-47b1-8204-020ce139cfbb> a cleanup:Job ;
mu:uuid "db1e677e-fc84-47b1-8204-020ce139cfbb" ;
dcterms:title "Adding new werkingsgebieden to codelist" ;
cleanup:randomQuery """
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX core: <http://mu.semte.ch/vocabularies/core/>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?uri a skos:Concept ;
skos:inScheme <http://lblod.data.gift/concept-schemes/3307738e-f84d-4f95-9b14-3e9162d83394> ;
core:uuid ?uuid ;
skos:prefLabel ?label .
}
}
WHERE {
?sub besluit:werkingsgebied ?uri .
?uri a prov:Location ;
core:uuid ?uuid ;
rdfs:label ?label ;
ext:werkingsgebiedNiveau "Gemeente" .
FILTER NOT EXISTS {
?existingConcept a skos:Concept ;
core:uuid ?uuid ;
skos:inScheme <http://lblod.data.gift/concept-schemes/3307738e-f84d-4f95-9b14-3e9162d83394> .
}
}
""" .
<http://data.lblod.info/id/cleanup-job/6061ca0c-12d8-4fb7-9c24-511e21ab7e0e> a cleanup:Job ;
mu:uuid "6061ca0c-12d8-4fb7-9c24-511e21ab7e0e" ;
dcterms:title "Updating werkingsgebieden labels from codelist" ;
cleanup:randomQuery """
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/public> {
?uri skos:prefLabel ?oldLabel .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?uri skos:prefLabel ?newLabel .
}
}
WHERE {
?sub besluit:werkingsgebied ?uri .
?uri a prov:Location ;
rdfs:label ?newLabel ;
ext:werkingsgebiedNiveau "Gemeente" .
?uri a skos:Concept ;
skos:inScheme <http://lblod.data.gift/concept-schemes/3307738e-f84d-4f95-9b14-3e9162d83394> ;
skos:prefLabel ?oldLabel .
FILTER(STR(?oldLabel) != STR(?newLabel))
}
""" .

View File

@@ -0,0 +1,11 @@
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix mu: <http://mu.semte.ch/vocabularies/core/> .
@prefix ext: <http://mu.semte.ch/vocabularies/ext/> .
@prefix code: <http://lblod.data.gift/vocabularies/organisatie/> .
<http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/4f82dfea-0581-43d4-b672-3bdb261d2d33>
rdf:type code:BestuursorgaanClassificatieCode , skos:Concept , ext:BestuursorgaanClassificatieCode ;
mu:uuid "4f82dfea-0581-43d4-b672-3bdb261d2d33" ;
skos:prefLabel "Politiecollege" ;
skos:inScheme <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .

View File

@@ -0,0 +1,19 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?timedBody mandaat:bindingEinde "2026-07-02T00:00:00"^^xsd:dateTime .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?politiezone a besluit:Bestuurseenheid ;
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/a3922c6d-425b-474f-9a02-ffb71a436bfc> . # Politiezone
?governingBody besluit:bestuurt ?politiezone ;
org:classification <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/1afce932-53c1-46d8-8aab-90dcc331e67d> . # Politieraad
?timedBody generiek:isTijdspecialisatieVan ?governingBody .
FILTER NOT EXISTS { ?timedBody mandaat:bindingEinde ?endDate . }
}
}

View File

@@ -0,0 +1,34 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?newGoverningBody a besluit:Bestuursorgaan ;
mu:uuid ?newGoverningBodyUuid ;
skos:prefLabel ?newGoverningBodyLabel ;
besluit:bestuurt ?politiezone ;
org:classification <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/4f82dfea-0581-43d4-b672-3bdb261d2d33> . # Politiecollege
?newTimedGoverningBody a besluit:Bestuursorgaan ;
mu:uuid ?newTimedGoverningBodyUuid ;
generiek:isTijdspecialisatieVan ?newGoverningBody ;
mandaat:bindingStart "2026-07-02T00:00:00"^^xsd:dateTime .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?politiezone a besluit:Bestuurseenheid ;
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/a3922c6d-425b-474f-9a02-ffb71a436bfc> ; # Politiezone
mu:uuid ?politiezoneUuid ;
skos:prefLabel ?politiezoneLabel .
?oldGoverningBody besluit:bestuurt ?politiezone ;
org:classification <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/1afce932-53c1-46d8-8aab-90dcc331e67d> . # Politieraad
}
BIND(CONCAT("Politiecollege ", ?politiezoneLabel) AS ?newGoverningBodyLabel)
BIND(SHA256(CONCAT("politiecollege-", STR(?politiezoneUuid))) AS ?newGoverningBodyUuid)
BIND(IRI(CONCAT("http://data.lblod.info/id/bestuursorganen/", STR(?newGoverningBodyUuid))) AS ?newGoverningBody)
BIND(SHA256(CONCAT("politiecollege-timed-", STR(?politiezoneUuid))) AS ?newTimedGoverningBodyUuid)
BIND(IRI(CONCAT("http://data.lblod.info/id/bestuursorganen/", STR(?newTimedGoverningBodyUuid))) AS ?newTimedGoverningBody)
}

View File

@@ -0,0 +1,45 @@
# Delete duplicate van rechtswege mandaten per governing body
# Must be run AFTER the corresponding loket migration
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?mandaat .
?mandaat ?p ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?canonicalMandaat .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
org:hasPost ?mandaat .
?mandaat org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> ;
?p ?o .
FILTER NOT EXISTS { ?holder org:holds ?mandaat . }
}
{
SELECT ?orgaan (IRI(MIN(STR(?anyMandaat))) AS ?canonicalMandaat) WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?anyOrgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
org:hasPost ?anyMandaat .
?anyMandaat org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> .
}
}
GROUP BY ?orgaan
}
FILTER(?mandaat != ?canonicalMandaat)
}

View File

@@ -0,0 +1,65 @@
# Delete duplicate grote helft mandaten within a single election cycle period
# Must be run AFTER the corresponding loket migration
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?mandaat .
?mandaat ?p ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?orgaanInTime org:hasPost ?canonicalMandaat .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?worshipService a ere:BestuurVanDeEredienst .
?orgaan besluit:bestuurt ?worshipService .
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart ?start ;
org:hasPost ?mandaat .
?mandaat org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> ;
?p ?o .
FILTER NOT EXISTS { ?holder org:holds ?mandaat . }
}
BIND(YEAR(?start) AS ?startYear)
VALUES (?startYear ?pairIndex) {
(2017 0)
(2020 1)
(2023 1)
(2026 2)
(2029 2)
}
{
SELECT ?orgaan ?pairIndex (IRI(MIN(STR(?anyMandaat))) AS ?canonicalMandaat) WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?anyOrgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
mandaat:bindingStart ?anyStart ;
org:hasPost ?anyMandaat .
?anyMandaat org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> .
}
BIND(YEAR(?anyStart) AS ?anyStartYear)
VALUES (?anyStartYear ?pairIndex) {
(2017 0)
(2020 1)
(2023 1)
(2026 2)
(2029 2)
}
}
GROUP BY ?orgaan ?pairIndex
}
FILTER(?mandaat != ?canonicalMandaat)
}

View File

@@ -0,0 +1,40 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s ?p ?o.
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/landing-zone/mandatarissen> {
?s a mandaat:Mandataris;
org:holds ?mandate;
?p ?o.
}
?orgaanInTime org:hasPost ?mandate ;
generiek:isTijdspecialisatieVan ?orgaan .
?orgaan besluit:bestuurt ?bestuur .
?bestuur org:classification ?classification .
FILTER(?classification IN (
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000000>,
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000001>,
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000002>,
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000003>
))
FILTER (?p NOT IN (mandaat:start, mandaat:einde))
FILTER NOT EXISTS {
?s ?p "" .
}
FILTER NOT EXISTS {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> { ?s org:holds ?mandate }
}
}

View File

@@ -0,0 +1,94 @@
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX org: <http://www.w3.org/ns/org#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?bestuur ere:betrokkenBestuur ?betrokkenLokaleBesturen .
?betrokkenLokaleBesturen ?p ?o .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
VALUES ?betrokkenLokaleBesturen {
<http://data.lblod.info/id/betrokkenLokaleBesturen/6363D5718DE5818A7C9F4402>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A462F3FDD4B9E78BCCD458F>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A462F3FDD4B9E78BCCD4590>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A462F3FDD4B9E78BCCD458E>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439361>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A43935D>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A43935F>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439364>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439366>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439367>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A43936A>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439369>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A43936B>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A43936D>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A43936C>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439368>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439360>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439365>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A43935E>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439362>
<http://data.lblod.info/id/betrokkenLokaleBesturen/6A71F922F541BB824A439363>
}
?bestuur ere:betrokkenBestuur ?betrokkenLokaleBesturen .
?betrokkenLokaleBesturen ?p ?o .
}
}
;
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?bestuur ere:betrokkenBestuur ?betrokkenLokaleBesturen .
?betrokkenLokaleBesturen ?p ?o .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
VALUES ?worshipService {
<http://data.lblod.info/id/besturenVanDeEredienst/6371F8418DE5818A7C9F44A5>
<http://data.lblod.info/id/besturenVanDeEredienst/65F5B3BEE77A4F2289F6B64C>
}
?bestuur ere:betrokkenBestuur ?betrokkenLokaleBesturen .
?betrokkenLokaleBesturen ere:typebetrokkenheid <http://lblod.data.gift/concepts/0f845f00ee76099c89518cbaf6a7b77f> ;
org:organization ?worshipService ;
?p ?o .
}
}
;
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/bestuurseenheden/be278471a2a318edba32e7ac4294c0eafbe4c8077a34dcbb9c2e43211d4a78a6>
ere:betrokkenBestuur <http://data.lblod.info/id/betrokkenLokaleBesturen/c663fdc9-642a-44c0-ac41-18e0ba047a9c> .
<http://data.lblod.info/id/betrokkenLokaleBesturen/c663fdc9-642a-44c0-ac41-18e0ba047a9c>
a ere:BetrokkenLokaleBesturen ;
mu:uuid "c663fdc9-642a-44c0-ac41-18e0ba047a9c" ;
ere:financieringspercentage "0"^^xsd:integer ;
ere:typebetrokkenheid <http://lblod.data.gift/concepts/0f845f00ee76099c89518cbaf6a7b77f> ;
org:organization <http://data.lblod.info/id/besturenVanDeEredienst/65F5B3BEE77A4F2289F6B64C> .
}
}
;
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/bestuurseenheden/298b13541e1e85de4b71535197aa1f3bbc4bdb67f0fe0f58ab4a7dc207af61fa>
ere:betrokkenBestuur <http://data.lblod.info/id/betrokkenLokaleBesturen/a26b6366-982a-40e1-aafe-eea7ade5865e> .
<http://data.lblod.info/id/betrokkenLokaleBesturen/a26b6366-982a-40e1-aafe-eea7ade5865e>
a ere:BetrokkenLokaleBesturen ;
mu:uuid "a26b6366-982a-40e1-aafe-eea7ade5865e" ;
ere:financieringspercentage "0"^^xsd:integer ;
ere:typebetrokkenheid <http://lblod.data.gift/concepts/86fcbbbff764f1cba4c7e10dbbae578e> ;
org:organization <http://data.lblod.info/id/besturenVanDeEredienst/6874B0FE8806FCC9C1BBF1C3> .
}
}

View File

@@ -0,0 +1,23 @@
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX org: <http://www.w3.org/ns/org#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?bestuur ere:betrokkenBestuur ?betrokkenLokaleBesturen .
?betrokkenLokaleBesturen ?p ?o .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
VALUES ?worshipService {
<http://data.lblod.info/id/besturenVanDeEredienst/6A5624A4174153E0CE6F0423>
}
?bestuur ere:betrokkenBestuur ?betrokkenLokaleBesturen .
?betrokkenLokaleBesturen ere:typebetrokkenheid <http://lblod.data.gift/concepts/0f845f00ee76099c89518cbaf6a7b77f> ;
org:organization ?worshipService ;
?p ?o .
FILTER (?bestuur != <http://data.lblod.info/id/bestuurseenheden/670db1d66c0de3b931962e1044033ccfa9d6e3023aa9828a5f252c3bc69bd32c>)
}
}

View File

@@ -0,0 +1,11 @@
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://lblod.data.gift/concepts/09ec81e1-2d5a-49dd-a4bc-7c2594108b60>
a <http://lblod.data.gift/vocabularies/organisatie/Veranderingsgebeurtenis> ;
<http://mu.semte.ch/vocabularies/core/uuid> "09ec81e1-2d5a-49dd-a4bc-7c2594108b60" ;
<http://www.w3.org/2004/02/skos/core#prefLabel> "Wijziging werkingsgebied" ;
<http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> ,
<http://lblod.data.gift/concept-schemes/e1ff33ee76b5662ec8486f0e2abec384> ;
<http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/e1ff33ee76b5662ec8486f0e2abec384> .
}
}

View File

@@ -0,0 +1,226 @@
import { generateReportFromData, batchedQuery } from "../helpers.js";
import { PREFIXES } from "./utils";
export default {
cronPattern: "0 00 1 * * *",
name: "administrativeUnits",
execute: async () => {
const reportData = {
title: "administrative units",
description: "List of the administrative units",
filePrefix: "exports/administrative-units",
};
console.log("Generating administrative units report");
const queryString = `
${PREFIXES}
SELECT DISTINCT
?Bestuurseenheid
?JuridischeNaam
?AlternatieveNaam
?Classificatie
?Status
?KBO_nr
?OVO_nr
?Sharepoint_id
?NIS_code
?JuridischeVorm
?Regio
?Werkingsgebied
?GeplandeEinddatum
?Provincie
?Straat
?Huisnummer
?Busnummer
?Postcode
?Gemeente
(STR(?GrensoverschrijdendBoolean) AS ?Grensoverschrijdend)
?TypeEredienst
?BestuurseenheidURI
?Stekking
{
VALUES ?type {
besluit:Bestuurseenheid
ere:BestuurVanDeEredienst
org:Organization
ere:EredienstBestuurseenheid
ere:CentraalBestuurVanDeEredienst
}
?BestuurseenheidURI
a ?type.
OPTIONAL { ?BestuurseenheidURI skos:prefLabel ?Bestuurseenheid . }
OPTIONAL { ?BestuurseenheidURI org:classification/skos:prefLabel ?Classificatie. }
OPTIONAL { ?BestuurseenheidURI regorg:legalName ?JuridischeNaam. }
OPTIONAL { ?BestuurseenheidURI organisatie:rechtsvorm/skos:prefLabel ?JuridischeVorm. }
OPTIONAL { ?BestuurseenheidURI lblodgeneriek:geplandeEindDatum ?GeplandeEinddatum. }
OPTIONAL {
SELECT ?BestuurseenheidURI (GROUP_CONCAT(DISTINCT ?altLabelValue; separator=", ") AS ?AlternatieveNaam)
WHERE {
?BestuurseenheidURI skos:altLabel ?altLabelValue .
}
GROUP BY ?BestuurseenheidURI
}
OPTIONAL {
SELECT ?BestuurseenheidURI (GROUP_CONCAT(DISTINCT ?scopeLabel; separator=", ") AS ?Werkingsgebied)
WHERE {
{
?BestuurseenheidURI besluit:werkingsgebied ?scopeURI .
} UNION {
?BestuurseenheidURI dc_terms:spatial ?scopeURI .
}
?scopeURI rdfs:label ?scopeLabel .
}
GROUP BY ?BestuurseenheidURI
}
OPTIONAL {
?BestuurseenheidURI besluit:werkingsgebied ?werkingsgebiedURI.
?werkingsgebiedURI rdfs:label ?werkingsgebied.
OPTIONAL {
?werkingsgebiedURI geo:sfWithin ?regionURI.
?regionURI
ext:werkingsgebiedNiveau "Referentieregio"@nl;
rdfs:label ?langRegio.
}
OPTIONAL {
?werkingsgebiedURI skos:exactMatch ?nisArea.
?nisArea skos:inScheme ?NISCodeScheme;
skos:notation ?NIS_code.
FILTER (?NISCodeScheme IN ( <http://vocab.belgif.be/auth/refnis2019>, <http://vocab.belgif.be/auth/refnis2025>))
}
}
OPTIONAL {
?BestuurseenheidURI org:hasPrimarySite/organisatie:bestaatUit ?address .
?address adres:gemeentenaam ?Gemeente .
?municipalityRegio a besluit:Bestuurseenheid ;
skos:prefLabel ?Gemeente ;
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000001> ;
besluit:werkingsgebied ?werkingsgebiedRegioURI.
?werkingsgebiedRegioURI geo:sfWithin ?regioViaAddressURI.
?regioViaAddressURI
ext:werkingsgebiedNiveau "Referentieregio"@nl;
rdfs:label ?langRegioViaAddress.
}
BIND(IF(BOUND(?langRegio) && strlen(?langRegio)>0, str(?langRegio), str(?langRegioViaAddress)) AS ?Regio)
OPTIONAL { ?BestuurseenheidURI regorg:orgStatus/skos:prefLabel ?Status. }
OPTIONAL { ?BestuurseenheidURI ere:typeEredienst ?typeEredienstUri.
OPTIONAL { ?typeEredienstUri skos:prefLabel ?TypeEredienst. }
}
OPTIONAL { ?BestuurseenheidURI ere:grensoverschrijdend ?GrensoverschrijdendBoolean. }
OPTIONAL { ?BestuurseenheidURI org:hasPrimarySite/organisatie:bestaatUit ?address .
OPTIONAL { ?address locn:thoroughfare ?Straat }
OPTIONAL { ?address adres:Adresvoorstelling.huisnummer ?Huisnummer . }
OPTIONAL { ?address adres:Adresvoorstelling.busnummer ?Busnummer . }
OPTIONAL { ?address locn:postCode ?Postcode . }
OPTIONAL { ?address adres:gemeentenaam ?Gemeente . }
OPTIONAL { ?address locn:adminUnitL2 ?Provincie . }
OPTIONAL { ?address adres:land ?Land . }
}
OPTIONAL {
?BestuurseenheidURI adms:identifier ?kbo_identifier .
?kbo_identifier
skos:notation ?kbo_notation;
generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator ?KBO_nr.
FILTER (str(?kbo_notation) = "KBO nummer")
}
OPTIONAL {
?BestuurseenheidURI adms:identifier ?ovo_identifier .
?ovo_identifier
skos:notation ?ovo_notation;
generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator ?OVO_nr.
FILTER (str(?ovo_notation) = "OVO-nummer")
}
OPTIONAL {
?BestuurseenheidURI adms:identifier ?sp_identifier .
?sp_identifier
skos:notation ?sp_notation;
generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator ?Sharepoint_id.
FILTER (str(?sp_notation) = "SharePoint identificator")
}
OPTIONAL {
?changeEvent org:resultingOrganization ?BestuurseenheidURI;
ch:typeWijziging <http://lblod.data.gift/concepts/e4c3d1ef-a34d-43b0-a18c-f4e60e2c8af3>.
<http://lblod.data.gift/concepts/e4c3d1ef-a34d-43b0-a18c-f4e60e2c8af3> skos:prefLabel ?stadsTitel
}
OPTIONAL { ?BestuurseenheidURI ere:denominatie ?Stekking. }
} ORDER BY DESC(?Classificatie) ?Bestuurseenheid
`;
const queryResponse = await batchedQuery(queryString);
const data = queryResponse.results.bindings.map((row) => ({
Bestuurseenheid: getSafeValue(row, "Bestuurseenheid"),
JuridischeNaam: getSafeValue(row, "JuridischeNaam"),
AlternatieveNaam: getSafeValue(row, "AlternatieveNaam"),
Classificatie: getSafeValue(row, "Classificatie"),
Status: getSafeValue(row, "Status"),
KBO_nr: getSafeValue(row, "KBO_nr"),
OVO_nr: getSafeValue(row, "OVO_nr"),
Sharepoint_id: getSafeValue(row, "Sharepoint_id"),
NIS_code: getSafeValue(row, "NIS_code"),
JuridischeVorm: getSafeValue(row, "JuridischeVorm"),
Regio: getSafeValue(row, "Regio"),
Werkingsgebied: getSafeValue(row, "Werkingsgebied"),
GeplandeEinddatum: getSafeValue(row, "GeplandeEinddatum"),
Provincie: getSafeValue(row, "Provincie"),
Straat: getSafeValue(row, "Straat"),
Huisnummer: getSafeValue(row, "Huisnummer"),
Busnummer: getSafeValue(row, "Busnummer"),
Postcode: getSafeValue(row, "Postcode"),
Gemeente: getSafeValue(row, "Gemeente"),
Grensoverschrijdend: getSafeValue(row, "Grensoverschrijdend"),
TypeEredienst: getSafeValue(row, "TypeEredienst"),
BestuurseenheidURI: getSafeValue(row, "BestuurseenheidURI"),
Stekking: getSafeValue(row, "Stekking"),
}));
await generateReportFromData(
data,
[
"Bestuurseenheid",
"JuridischeNaam",
"AlternatieveNaam",
"Classificatie",
"Status",
"KBO_nr",
"OVO_nr",
"Sharepoint_id",
"NIS_code",
"JuridischeVorm",
"Regio",
"Werkingsgebied",
"GeplandeEinddatum",
"Provincie",
"Straat",
"Huisnummer",
"Busnummer",
"Postcode",
"Gemeente",
"Grensoverschrijdend",
"TypeEredienst",
"BestuurseenheidURI",
"Stekking",
],
reportData,
);
},
};
function getSafeValue(entry, property) {
return entry[property] ? wrapInQuote(entry[property].value) : null;
}
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
function wrapInQuote(value) {
return `\"${value}\"`;
}

View File

@@ -0,0 +1,135 @@
import {generateReportFromData, batchedQuery} from "../helpers.js";
import {PREFIXES} from "./utils";
export default {
cronPattern: "0 00 3 * * *",
name: "changeEvents",
execute: async () => {
const reportData = {
title: "change events",
description:
"List of change events",
filePrefix: "exports/change-events",
};
console.log("Generating change events report");
const queryString = `
${PREFIXES}
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX m8g: <http://data.europa.eu/m8g/>
PREFIX eli: <http://data.europa.eu/eli/ontology#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX dossier: <https://data.vlaanderen.be/ns/dossier#>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
SELECT DISTINCT
?organisatie
?organisatieLabel
?classificatieLabel
?statusLabel
?resulterendeOrganisatie
?resulterendeOrganisatieLabel
?resulterendeClassificatieLabel
?resulterendeStatusLabel
?veranderingsgebeurtenisTypeLabel
?beschrijving
?linkNaarBesluit
?datumMinisterieelBesluit
?datumPublicatieBS
?datumVeranderingsgebeurtenis
WHERE {
{
SELECT DISTINCT ?organisatie ?organisatieLabel ?veranderingsgebeurtenis
WHERE {
?organisatie a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> ;
skos:prefLabel ?organisatieLabel .
?veranderingsgebeurtenis a org:ChangeEvent ;
org:originalOrganization ?organisatie .
}
}
OPTIONAL { ?organisatie org:classification/skos:prefLabel ?classificatieLabel . }
OPTIONAL { ?organisatie regorg:orgStatus/skos:prefLabel ?statusLabel . }
OPTIONAL {
?veranderingsgebeurtenis org:resultingOrganization ?resulterendeOrganisatie .
OPTIONAL { ?resulterendeOrganisatie skos:prefLabel ?resulterendeOrganisatieLabel . }
OPTIONAL { ?resulterendeOrganisatie org:classification/skos:prefLabel ?resulterendeClassificatieLabel . }
OPTIONAL { ?resulterendeOrganisatie regorg:orgStatus/skos:prefLabel ?resulterendeStatusLabel . }
}
OPTIONAL { ?veranderingsgebeurtenis ch:typeWijziging/skos:prefLabel ?veranderingsgebeurtenisTypeLabel . }
OPTIONAL { ?veranderingsgebeurtenis dct:description ?beschrijving . }
OPTIONAL { ?veranderingsgebeurtenis dct:date ?datumVeranderingsgebeurtenis . }
OPTIONAL {
?veranderingsgebeurtenis m8g:hasFormalFramework ?besluit .
OPTIONAL { ?besluit foaf:page ?linkNaarBesluit . }
OPTIONAL { ?besluit eli:date_publication ?datumPublicatieBS . }
OPTIONAL {
?beslissingsactiviteit prov:generated ?besluit ;
dossier:Activiteit.einddatum ?datumMinisterieelBesluit .
}
}
}
ORDER BY ?organisatieLabel ?datumVeranderingsgebeurtenis
`;
const queryResponse = await batchedQuery(queryString);
const data = queryResponse.results.bindings.map((row) => ({
organisatie: getSafeValue(row, "organisatie"),
organisatieLabel: getSafeValue(row, "organisatieLabel"),
classificatieLabel: getSafeValue(row, "classificatieLabel"),
statusLabel: getSafeValue(row, "statusLabel"),
resulterendeOrganisatie: getSafeValue(row, "resulterendeOrganisatie"),
resulterendeOrganisatieLabel: getSafeValue(row, "resulterendeOrganisatieLabel"),
resulterendeClassificatieLabel: getSafeValue(row, "resulterendeClassificatieLabel"),
resulterendeStatusLabel: getSafeValue(row, "resulterendeStatusLabel"),
veranderingsgebeurtenisTypeLabel: getSafeValue(row, "veranderingsgebeurtenisTypeLabel"),
beschrijving: getSafeValue(row, "beschrijving"),
linkNaarBesluit: getSafeValue(row, "linkNaarBesluit"),
datumMinisterieelBesluit: getSafeValue(row, "datumMinisterieelBesluit"),
datumPublicatieBS: getSafeValue(row, "datumPublicatieBS"),
datumVeranderingsgebeurtenis: getSafeValue(row, "datumVeranderingsgebeurtenis"),
}));
await generateReportFromData(
data,
[
"organisatie",
"organisatieLabel",
"classificatieLabel",
"statusLabel",
"resulterendeOrganisatie",
"resulterendeOrganisatieLabel",
"resulterendeClassificatieLabel",
"resulterendeStatusLabel",
"veranderingsgebeurtenisTypeLabel",
"beschrijving",
"linkNaarBesluit",
"datumMinisterieelBesluit",
"datumPublicatieBS",
"datumVeranderingsgebeurtenis",
],
reportData,
);
},
};
function getSafeValue(entry, property) {
return entry[property] ? wrapInQuote(entry[property].value) : null;
}
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
function wrapInQuote(value) {
return `\"${value}\"`;
}

View File

@@ -1,7 +1,21 @@
import OrganizationsReport from './organizations-report'
import RelatedOrganizationsReport from './related-organizations-report'
import KboOrganizationsReport from './kbo-organizations-report'
import OrganizationsDetailReport from './organizations-detail-report'
import OrganizationsPlatformReport from './organizations-platform-report'
import AdministrativeUnitsReport from "./administrative-units-report";
import ChangeEventsReport from "./change-events-report";
import OrganizationsNoAddressReport from "./organizations-no-address-report";
import OrganizationsInFrontendReport from "./organizations-in-frontend-report";
export default [
OrganizationsReport,
RelatedOrganizationsReport,
KboOrganizationsReport,
OrganizationsDetailReport,
OrganizationsPlatformReport,
AdministrativeUnitsReport,
ChangeEventsReport,
OrganizationsNoAddressReport,
OrganizationsInFrontendReport,
];

View File

@@ -0,0 +1,108 @@
import { generateReportFromData, batchedQuery } from "../helpers.js";
import { PREFIXES } from "./utils";
export default {
cronPattern: "0 00 4 * * *",
name: "kboOrganizations",
execute: async () => {
const reportData = {
title: "kbo organizations",
description: "List of KBO Organizations with contact information",
filePrefix: "exports/kbo-organizations",
};
console.log("Generating KBO organizations report");
const queryString = `
${PREFIXES}
SELECT DISTINCT
?org
?org_legal_name
?org_classification_label
?org_status_label
?org_kbo_number
?org_contact_point
?org_full_address
?org_email
?org_telephone
?website
WHERE {
?org <http://purl.org/dc/terms/source> <https://economie.fgov.be/> .
?org a <http://mu.semte.ch/vocabularies/ext/KboOrganisatie> .
OPTIONAL { ?org regorg:legalName ?org_legal_name . }
OPTIONAL {
?org <http://mu.semte.ch/vocabularies/ext/rechtsvorm> ?org_classification_label .
}
OPTIONAL {
?org regorg:orgStatus ?org_status .
?org_status skos:prefLabel ?org_status_label .
}
OPTIONAL {
?org adms:identifier ?identifier .
?identifier skos:notation "KBO nummer" ;
generiek:gestructureerdeIdentificator ?id1 .
?id1 generiek:lokaleIdentificator ?org_kbo_number .
}
OPTIONAL {
?org schema:contactPoint ?org_contact_point .
OPTIONAL {
?org_contact_point locn:address ?org_address .
?org_address locn:fullAddress ?org_full_address .
}
OPTIONAL { ?org_contact_point schema:email ?org_email . }
OPTIONAL { ?org_contact_point schema:telephone ?org_telephone . }
OPTIONAL { ?org_contact_point foaf:page ?website . }
}
}
`;
const queryResponse = await batchedQuery(queryString);
const data = queryResponse.results.bindings.map((row) => ({
org: getSafeValue(row, "org"),
org_legal_name: getSafeValue(row, "org_legal_name"),
org_classification_label: getSafeValue(row, "org_classification_label"),
org_status_label: getSafeValue(row, "org_status_label"),
org_kbo_number: getSafeValue(row, "org_kbo_number"),
org_contact_point: getSafeValue(row, "org_contact_point"),
org_full_address: getSafeValue(row, "org_full_address"),
org_email: getSafeValue(row, "org_email"),
org_telephone: getSafeValue(row, "org_telephone"),
website: getSafeValue(row, "website"),
}));
await generateReportFromData(
data,
[
"org",
"org_legal_name",
"org_classification_label",
"org_status_label",
"org_kbo_number",
"org_contact_point",
"org_full_address",
"org_email",
"org_telephone",
"website",
],
reportData,
);
},
};
function getSafeValue(entry, property) {
return entry[property] ? wrapInQuote(entry[property].value) : null;
}
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
function wrapInQuote(value) {
return `\"${value}\"`;
}

View File

@@ -0,0 +1,147 @@
import { generateReportFromData, batchedQuery } from "../helpers.js";
import { PREFIXES } from "./utils";
export default {
cronPattern: "0 00 4 * * *",
name: "organizationsDetail",
execute: async () => {
const reportData = {
title: "organizations detail",
description:
"List of Organizations with address and contact information",
filePrefix: "exports/organizations-detail",
};
console.log("Generating organizations detail report");
const queryString = `
${PREFIXES}
SELECT DISTINCT ?org
?org_pref_label ?org_classification_label ?org_status_label ?org_kbo_number
?primary_email
?website
?primary_telephone
?secondary_telephone
?full_address
?land
?gemeente
?straat
?huisnummer
?busnummer
?postcode
?province
WHERE {
?org a org:Organization .
OPTIONAL { ?org regorg:legalName ?org_legal_name . }
OPTIONAL { ?org skos:prefLabel ?org_pref_label . }
OPTIONAL {
?org org:classification ?org_classification .
?org_classification skos:prefLabel ?org_classification_label .
}
OPTIONAL {
?org regorg:orgStatus ?org_status .
?org_status skos:prefLabel ?org_status_label .
}
OPTIONAL {
?org adms:identifier ?identifier .
?identifier skos:notation "KBO nummer" ;
generiek:gestructureerdeIdentificator ?id1 .
?id1 generiek:lokaleIdentificator ?org_kbo_number .
}
OPTIONAL {
?org org:hasPrimarySite ?org_site .
?org_site organisatie:bestaatUit ?org_address .
?org_site org:siteAddress ?org_contact_point .
OPTIONAL {
?org_contact_point schema:email ?primary_email .
?org_contact_point schema:contactType "Primary" .
}
OPTIONAL {
?org_contact_point schema:telephone ?primary_telephone .
?org_contact_point schema:contactType "Primary" .
}
OPTIONAL {
?org_contact_point schema:telephone ?secondary_telephone .
?org_contact_point schema:contactType "Secondary" .
}
OPTIONAL {
?org_contact_point foaf:page ?website .
?org_contact_point schema:contactType "Primary" .
}
OPTIONAL { ?org_contact_point schema:contactType ?contact_type . }
OPTIONAL { ?org_address locn:fullAddress ?full_address . }
OPTIONAL { ?org_address adres:land ?land . }
OPTIONAL { ?org_address adres:gemeentenaam ?gemeente . }
OPTIONAL { ?org_address locn:thoroughfare ?straat . }
OPTIONAL { ?org_address adres:Adresvoorstelling.huisnummer ?huisnummer . }
OPTIONAL { ?org_address adres:Adresvoorstelling.busnummer ?busnummer . }
OPTIONAL { ?org_address locn:postCode ?postcode . }
OPTIONAL { ?org_address locn:adminUnitL2 ?province . }
}
}
`;
const queryResponse = await batchedQuery(queryString);
const data = queryResponse.results.bindings.map((row) => ({
org: getSafeValue(row, "org"),
org_pref_label: getSafeValue(row, "org_pref_label"),
org_classification_label: getSafeValue(row, "org_classification_label"),
org_status_label: getSafeValue(row, "org_status_label"),
org_kbo_number: getSafeValue(row, "org_kbo_number"),
primary_email: getSafeValue(row, "primary_email"),
website: getSafeValue(row, "website"),
primary_telephone: getSafeValue(row, "primary_telephone"),
secondary_telephone: getSafeValue(row, "secondary_telephone"),
full_address: getSafeValue(row, "full_address"),
land: getSafeValue(row, "land"),
gemeente: getSafeValue(row, "gemeente"),
straat: getSafeValue(row, "straat"),
huisnummer: getSafeValue(row, "huisnummer"),
busnummer: getSafeValue(row, "busnummer"),
postcode: getSafeValue(row, "postcode"),
province: getSafeValue(row, "province"),
}));
await generateReportFromData(
data,
[
"org",
"org_pref_label",
"org_classification_label",
"org_status_label",
"org_kbo_number",
"primary_email",
"website",
"primary_telephone",
"secondary_telephone",
"full_address",
"land",
"gemeente",
"straat",
"huisnummer",
"busnummer",
"postcode",
"province",
],
reportData,
);
},
};
function getSafeValue(entry, property) {
return entry[property] ? wrapInQuote(entry[property].value) : null;
}
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
function wrapInQuote(value) {
return `\"${value}\"`;
}

View File

@@ -0,0 +1,102 @@
import { generateReportFromData, batchedQuery } from "../helpers.js";
import { PREFIXES } from "./utils";
export default {
cronPattern: "0 00 23 * * *",
name: "organizationsInFrontend",
execute: async () => {
const reportData = {
title: "organisations in frontend",
description: "List of the Organisations shown in the frontend",
filePrefix: "exports/organizations-in-frontend",
};
console.log("Generating organizations in frontend report");
const queryString = `
${PREFIXES}
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX adms: <http://www.w3.org/ns/adms#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX geosparql: <http://www.opengis.net/ont/geosparql#>
PREFIX dct: <http://purl.org/dc/terms/>
SELECT DISTINCT
?bestuur
?label
?classification
?typeEredienst
?provincie
?status
WHERE {
?bestuur a org:Organization .
OPTIONAL {
?bestuur <http://www.w3.org/ns/org#hasPrimarySite> ?site.
?site <https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?address.
?address <http://www.w3.org/ns/locn#adminUnitL2> ?provincie.
}
OPTIONAL {?bestuur <http://data.lblod.info/vocabularies/erediensten/typeEredienst> ?typeEredienst.}
OPTIONAL {?bestuur skos:prefLabel ?label}
OPTIONAL {
?bestuur <http://www.w3.org/ns/org#classification> ?org_classification .
?org_classification skos:prefLabel ?classification.
}
OPTIONAL {
?bestuur <http://www.w3.org/ns/regorg#orgStatus> ?org_status.
?org_status skos:prefLabel ?status.
}
FILTER(
NOT EXISTS {
?bestuur org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000001>.
}
||
EXISTS {
?bestuur besluit:werkingsgebied ?werkingsgebied .
?werkingsgebied geosparql:sfWithin ?parent .
}
)
FILTER(
NOT EXISTS {
?bestuur org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/52cc9d8d-1c9a-4d92-9936-da9d4a622ec4>.
}
)
}
`;
const queryResponse = await batchedQuery(queryString);
const data = queryResponse.results.bindings.map((row) => ({
bestuur: getSafeValue(row, "bestuur"),
label: getSafeValue(row, "label"),
classification: getSafeValue(row, "classification"),
typeEredienst: getSafeValue(row, "typeEredienst"),
provincie: getSafeValue(row, "provincie"),
status: getSafeValue(row, "status"),
}));
await generateReportFromData(
data,
[
"bestuur",
"label",
"classification",
"typeEredienst",
"provincie",
"status",
],
reportData,
);
},
};
function getSafeValue(entry, property) {
return entry[property] ? wrapInQuote(entry[property].value) : null;
}
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
function wrapInQuote(value) {
return `\"${value}\"`;
}

View File

@@ -0,0 +1,98 @@
import { generateReportFromData, batchedQuery } from "../helpers.js";
import { PREFIXES } from "./utils";
export default {
cronPattern: "0 00 23 * * *",
name: "organizationsNoAddressregister",
execute: async () => {
const reportData = {
title: "missing address URI's",
description: "List of Organizations with addresses that have no address URI",
filePrefix: "exports/organizations-no-addressregister",
};
console.log("Generating organizations no addressregister report");
const queryString = `
${PREFIXES}
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX adms: <http://www.w3.org/ns/adms#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT DISTINCT
?bestuur
?label
?classification
?status
?street
?number
?bus
?postal
?location
WHERE {
?bestuur a org:Organization .
OPTIONAL {
?bestuur <http://www.w3.org/ns/org#hasPrimarySite> ?site .
?site <https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?address .
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#verwijstNaar> ?adressenregister .}
OPTIONAL{?address <http://www.w3.org/ns/locn#thoroughfare> ?street . }
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#Adresvoorstelling.huisnummer> ?number . }
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#Adresvoorstelling.busnummer> ?bus . }
OPTIONAL{?address <http://www.w3.org/ns/locn#postCode> ?postal . }
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#gemeentenaam> ?location . }
}
OPTIONAL {?bestuur skos:prefLabel ?label}
OPTIONAL {
?bestuur <http://www.w3.org/ns/org#classification> ?org_classification .
?org_classification skos:prefLabel ?classification .
}
OPTIONAL {
?bestuur <http://www.w3.org/ns/regorg#orgStatus> ?org_status .
?org_status skos:prefLabel ?status .
}
FILTER(!BOUND(?adressenregister))
}
`;
const queryResponse = await batchedQuery(queryString);
const data = queryResponse.results.bindings.map((row) => ({
bestuur: getSafeValue(row, "bestuur"),
label: getSafeValue(row, "label"),
classification: getSafeValue(row, "classification"),
status: getSafeValue(row, "status"),
street: getSafeValue(row, "street"),
number: getSafeValue(row, "number"),
bus: getSafeValue(row, "bus"),
postal: getSafeValue(row, "postal"),
location: getSafeValue(row, "location"),
}));
await generateReportFromData(
data,
[
"bestuur",
"label",
"classification",
"status",
"street",
"number",
"bus",
"postal",
"location",
],
reportData,
);
},
};
function getSafeValue(entry, property) {
return entry[property] ? wrapInQuote(entry[property].value) : null;
}
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
function wrapInQuote(value) {
return `\"${value}\"`;
}

View File

@@ -0,0 +1,123 @@
import { generateReportFromData, batchedQuery } from "../helpers.js";
import { PREFIXES } from "./utils";
export default {
cronPattern: "0 00 2 * * *",
name: "organizationsPlatform",
execute: async () => {
const reportData = {
title: "organizations platform",
description: "List of Organizations with digital platform information",
filePrefix: "exports/organizations-platform",
};
console.log("Generating organizations platform report");
const queryString = `
${PREFIXES}
PREFIX muAccount: <http://mu.semte.ch/vocabularies/account/>
SELECT
?org
?org_pref_label
?org_classification_label
?org_status_label
?org_legal_name
?org_alt_label
?org_werkingsgebied_label
?org_ovo_number
?org_kbo_number
(COALESCE(?platforms, "Loket voor Lokale Besturen") AS ?org_digitaal_platform)
WHERE {
?org a org:Organization .
OPTIONAL { ?org skos:prefLabel ?org_pref_label }
OPTIONAL { ?org skos:altLabel ?org_alt_label }
OPTIONAL {
?org regorg:legalName ?org_legal_name .
}
OPTIONAL {
?org org:classification ?org_classification .
?org_classification skos:prefLabel ?org_classification_label .
}
OPTIONAL {
?org regorg:orgStatus ?org_status .
?org_status skos:prefLabel ?org_status_label .
}
OPTIONAL {
?org besluit:werkingsgebied ?org_werkingsgebied .
?org_werkingsgebied rdfs:label ?org_werkingsgebied_label .
}
OPTIONAL {
?org adms:identifier ?identifier1 .
?identifier1 skos:notation "KBO nummer" ;
generiek:gestructureerdeIdentificator ?id1 .
?id1 generiek:lokaleIdentificator ?org_kbo_number .
}
OPTIONAL {
?org adms:identifier ?identifier2 .
?identifier2 skos:notation "OVO-nummer" ;
generiek:gestructureerdeIdentificator ?id2 .
?id2 generiek:lokaleIdentificator ?org_ovo_number .
}
OPTIONAL {
SELECT ?org (GROUP_CONCAT(DISTINCT ?digitaal_platform; separator=", ") AS ?platforms)
WHERE {
?vendor a ext:Vendor ;
muAccount:canActOnBehalfOf ?org ;
foaf:name ?digitaal_platform .
}
GROUP BY ?org
}
}
`;
const queryResponse = await batchedQuery(queryString);
const data = queryResponse.results.bindings.map((row) => ({
"URI organisatie": getSafeValue(row, "org"),
"label naam": getSafeValue(row, "org_pref_label"),
"label classificatie": getSafeValue(row, "org_classification_label"),
"label status": getSafeValue(row, "org_status_label"),
"label juridische naam": getSafeValue(row, "org_legal_name"),
"label alternatieve naam": getSafeValue(row, "org_alt_label"),
"label werkingsgebied": getSafeValue(row, "org_werkingsgebied_label"),
"label OVO nummer": getSafeValue(row, "org_ovo_number"),
"label KBO nummer": getSafeValue(row, "org_kbo_number"),
"label digitaal platform": getSafeValue(row, "org_digitaal_platform"),
}));
await generateReportFromData(
data,
[
"URI organisatie",
"label naam",
"label classificatie",
"label status",
"label juridische naam",
"label alternatieve naam",
"label werkingsgebied",
"label OVO nummer",
"label KBO nummer",
"label digitaal platform",
],
reportData,
);
},
};
function getSafeValue(entry, property) {
return entry[property] ? wrapInQuote(entry[property].value) : null;
}
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
function wrapInQuote(value) {
return `\"${value}\"`;
}

View File

@@ -6,93 +6,68 @@ export default {
name: "organizations",
execute: async () => {
const reportData = {
title: "organizations",
description: "List of the Organizations",
title: "organisations in database",
description: "List of the Organisations in the database",
filePrefix: "exports/organizations",
};
console.log("Generating organizations report");
const queryStringPart1 = `
const queryString = `
${PREFIXES}
SELECT DISTINCT ?bestuur ?label ?classification ?typeEredienst
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX adms: <http://www.w3.org/ns/adms#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT DISTINCT
?bestuur
?label
?classification
?typeEredienst
?provincie
?status
WHERE {
GRAPH ?g {
?bestuur a org:Organization .
OPTIONAL { ?bestuur skos:prefLabel ?label. }
}
OPTIONAL {
?bestuur org:classification ?classificationUri .
?classificationUri skos:prefLabel ?classification.
}
OPTIONAL {
?bestuur ere:typeEredienst ?typeEredienstUri.
?typeEredienstUri skos:prefLabel ?typeEredienst.
}
FILTER (?g IN ( <http://mu.semte.ch/graphs/administrative-unit>, <http://mu.semte.ch/graphs/worship-service>, <http://mu.semte.ch/graphs/shared>))
}
`;
const queryResponsePart1 = await batchedQuery(queryStringPart1);
const dataPart1 = queryResponsePart1.results.bindings.reduce((acc, row) => {
acc[getSafeValue(row, "bestuur")] = {
bestuur: getSafeValue(row, "bestuur"),
label: getSafeValue(row, "label"),
classification: getSafeValue(row, "classification"),
typeEredienst: getSafeValue(row, "typeEredienst"),
};
return acc;
}, {});
const queryStringPart2 = `
${PREFIXES}
SELECT DISTINCT ?bestuur ?provincie
WHERE {
GRAPH ?g {
?bestuur a org:Organization .
}
OPTIONAL {
GRAPH ?h {
?bestuur org:hasPrimarySite ?primarySite.
?bestuur a org:Organization .
OPTIONAL {
?primarySite organisatie:bestaatUit ?sa.
OPTIONAL { ?sa locn:adminUnitL2 ?provincie. }
?bestuur <http://www.w3.org/ns/org#hasPrimarySite> ?site.
?site <https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?address.
?address <http://www.w3.org/ns/locn#adminUnitL2> ?provincie
}
}
FILTER (?h IN ( <http://mu.semte.ch/graphs/administrative-unit>, <http://mu.semte.ch/graphs/worship-service> ))
}
FILTER (?g IN ( <http://mu.semte.ch/graphs/administrative-unit>, <http://mu.semte.ch/graphs/worship-service>, <http://mu.semte.ch/graphs/shared>))
OPTIONAL {?bestuur <http://data.lblod.info/vocabularies/erediensten/typeEredienst> ?typeEredienst.}
OPTIONAL {?bestuur skos:prefLabel ?label}
OPTIONAL {
?bestuur <http://www.w3.org/ns/org#classification> ?org_classification .
?org_classification skos:prefLabel ?classification
}
OPTIONAL {
?bestuur <http://www.w3.org/ns/regorg#orgStatus> ?org_status.
?org_status skos:prefLabel ?status.
}
}
`;
const queryResponsePart2 = await batchedQuery(queryStringPart2);
const dataPart2 = queryResponsePart2.results.bindings.reduce((acc, row) => {
let dataPart = {
bestuur: getSafeValue(row, "bestuur"),
provincie: getSafeValue(row, "provincie"),
};
const queryResponse = await batchedQuery(queryString);
acc[getSafeValue(row, "bestuur")] = Object.assign(
dataPart,
dataPart1[getSafeValue(row, "bestuur")],
);
return acc;
}, {});
const data = queryResponse.results.bindings.map((row) => ({
"bestuur": getSafeValue(row, "bestuur"),
"label": getSafeValue(row, "label"),
"classification": getSafeValue(row, "classification"),
"typeEredienst": getSafeValue(row, "typeEredienst"),
"provincie": getSafeValue(row, "provincie"),
"status": getSafeValue(row, "status"),
}));
await generateReportFromData(
Object.values(dataPart2),
["bestuur", "label", "classification", "typeEredienst", "provincie"],
reportData,
data,
[
"bestuur",
"label",
"classification",
"typeEredienst",
"provincie",
"status",
],
reportData,
);
},
};

View File

@@ -12,6 +12,7 @@ export const PREFIXES = `
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX lblodgeneriek: <https://data.lblod.info/vocabularies/generiek/>
PREFIX lblodlg: <http://data.lblod.info/vocabularies/leidinggevenden/>
PREFIX locn: <http://www.w3.org/ns/locn#>
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
@@ -26,4 +27,5 @@ export const PREFIXES = `
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
`;

View File

@@ -67,6 +67,16 @@
"target": "organization-status-codes",
"cardinality": "one"
},
"resulting-legal-form": {
"predicate": "code:resulterendeRechtsvorm",
"target": "concepts",
"cardinality": "one"
},
"resulting-scope": {
"predicate": "code:resulterendWerkingsgebied",
"target": "locations",
"cardinality": "one"
},
"result-from": {
"predicate": "code:veranderingsgebeurtenisResultaat",
"target": "change-events",

View File

@@ -31,7 +31,11 @@
"geo": "http://www.opengis.net/ont/geosparql#",
"nacebel": "http://data.gift/vocabularies/nace-bel/",
"time": "http://www.w3.org/2006/time#",
"muAccount": "http://mu.semte.ch/vocabularies/account/"
"muAccount": "http://mu.semte.ch/vocabularies/account/",
"sh": "http://www.w3.org/ns/shacl#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"owl": "http://www.w3.org/2002/07/owl#",
"task": "http://redpencil.data.gift/vocabularies/tasks/"
},
"resources": {
"agents": {
@@ -65,9 +69,30 @@
"first-name-used": {
"type": "string",
"predicate": "persoon:gebruikteVoornaam"
},
"harvest-source": {
"type": "string",
"predicate": "prov:wasGeneratedBy"
},
"harvest-original-uri": {
"type": "uri",
"predicate": "owl:sameAs"
},
"harvest-date": {
"type": "datetime",
"predicate": "task:modifiedOn"
},
"harvest-job": {
"type": "uri",
"predicate": "task:modifiedBy"
}
},
"relationships": {
"vendor": {
"predicate": "prov:wasAssociatedWith",
"target": "vendors",
"cardinality": "one"
},
"mandatories": {
"predicate": "mandaat:isBestuurlijkeAliasVan",
"target": "mandatories",
@@ -100,9 +125,34 @@
"agent-end-date": {
"type": "datetime",
"predicate": "ch:eindedatum"
},
"harvest-source": {
"type": "string",
"predicate": "prov:wasGeneratedBy"
},
"harvest-original-uri": {
"type": "uri",
"predicate": "owl:sameAs"
},
"harvest-date": {
"type": "datetime",
"predicate": "task:modifiedOn"
},
"harvest-job": {
"type": "uri",
"predicate": "task:modifiedBy"
},
"harvestLink": {
"type": "uri",
"predicate": "rdfs:seeAlso"
}
},
"relationships": {
"vendor": {
"predicate": "prov:wasAssociatedWith",
"target": "vendors",
"cardinality": "one"
},
"person": {
"predicate": "org:heldBy",
"target": "people",
@@ -196,9 +246,30 @@
"reason-stopped": {
"type": "string",
"predicate": "ere:redenVanStopzetting"
},
"harvest-source": {
"type": "string",
"predicate": "prov:wasGeneratedBy"
},
"harvest-original-uri": {
"type": "uri",
"predicate": "owl:sameAs"
},
"harvest-date": {
"type": "datetime",
"predicate": "task:modifiedOn"
},
"harvest-job": {
"type": "uri",
"predicate": "task:modifiedBy"
}
},
"relationships": {
"vendor": {
"predicate": "prov:wasAssociatedWith",
"target": "vendors",
"cardinality": "one"
},
"type-half": {
"predicate": "ere:typeHelft",
"target": "half-elections",
@@ -239,9 +310,30 @@
"type": {
"type": "string",
"predicate": "schema:contactType"
},
"harvest-source": {
"type": "string",
"predicate": "prov:wasGeneratedBy"
},
"harvest-original-uri": {
"type": "uri",
"predicate": "owl:sameAs"
},
"harvest-date": {
"type": "datetime",
"predicate": "task:modifiedOn"
},
"harvest-job": {
"type": "uri",
"predicate": "task:modifiedBy"
}
},
"relationships": {
"vendor": {
"predicate": "prov:wasAssociatedWith",
"target": "vendors",
"cardinality": "one"
},
"contact-address": {
"predicate": "locn:address",
"target": "addresses",
@@ -404,6 +496,16 @@
"target": "organization-classification-codes",
"cardinality": "one"
},
"legal-form": {
"predicate": "organisatie:rechtsvorm",
"target": "concepts",
"cardinality": "one"
},
"content-themes": {
"predicate": "code:inhoudelijkThema",
"target": "concepts",
"cardinality": "many"
},
"identifiers": {
"predicate": "adms:identifier",
"target": "identifiers",
@@ -521,6 +623,13 @@
"registered-organizations": {
"class": "regorg:RegisteredOrganization",
"super": ["organizations"],
"relationships": {
"scope": {
"predicate": "dc_terms:spatial",
"target": "locations",
"cardinality": "one"
}
},
"new-resource-base": "http://data.lblod.info/id/geregistreerdeOrganisaties/"
},
"organization-classification-codes": {
@@ -529,6 +638,10 @@
"label": {
"type": "string",
"predicate": "skos:prefLabel"
},
"alt-label": {
"type": "string",
"predicate": "skos:altLabel"
}
},
"new-resource-base": "http://data.vlaanderen.be/id/concept/OrganizationClassificationCode/"
@@ -581,6 +694,7 @@
"cardinality": "many"
}
},
"features": ["include-uri"],
"new-resource-base": "http://data.lblod.info/vendors/"
},
"worship-services": {
@@ -824,9 +938,30 @@
"address-register-uri": {
"type": "url",
"predicate": "adres:verwijstNaar"
},
"harvest-source": {
"type": "string",
"predicate": "prov:wasGeneratedBy"
},
"harvest-original-uri": {
"type": "uri",
"predicate": "owl:sameAs"
},
"harvest-date": {
"type": "datetime",
"predicate": "task:modifiedOn"
},
"harvest-job": {
"type": "uri",
"predicate": "task:modifiedBy"
}
},
"relationships": {
"vendor": {
"predicate": "prov:wasAssociatedWith",
"target": "vendors",
"cardinality": "one"
},
"source": {
"predicate": "dc_terms:source",
"target": "concepts",
@@ -938,10 +1073,32 @@
"alt-label": {
"type": "string",
"predicate": "skos:altLabel"
},
"order": {
"type": "number",
"predicate": "sh:order"
}
},
"relationships": {
"in-scheme": {
"predicate": "skos:inScheme",
"target": "concept-schemes",
"cardinality": "one"
}
},
"new-resource-base": "http://lblod.data.gift/concepts/"
},
"concept-schemes": {
"class": "skos:ConceptScheme",
"attributes": {
"label": {
"type": "string",
"predicate": "skos:prefLabel"
}
},
"features": ["include-uri"],
"new-resource-base": "http://data.vlaanderen.be/id/conceptscheme/"
},
"organization-status-codes": {
"class": "code:OrganisatieStatusCode",
"attributes": {
@@ -1106,6 +1263,13 @@
"predicate": "skos:prefLabel"
}
},
"relationships": {
"applicable-statuses": {
"predicate": "ere:vanToepassingBijStatus",
"target": "organization-status-codes",
"cardinality": "many"
}
},
"new-resource-base": "http://lblod.data.gift/concepts/"
},
"financing-codes": {

View File

@@ -663,6 +663,10 @@
"http://www.w3.org/ns/org#classification",
"http://www.w3.org/2004/02/skos/core#prefLabel"
],
"classification_alternative_name": [
"http://www.w3.org/ns/org#classification",
"http://www.w3.org/2004/02/skos/core#altLabel"
],
"status": [
"http://www.w3.org/ns/regorg#orgStatus",
"http://www.w3.org/2004/02/skos/core#prefLabel"
@@ -693,6 +697,18 @@
"http://www.w3.org/ns/adms#identifier",
"https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator",
"https://data.vlaanderen.be/ns/generiek#lokaleIdentificator"
],
"operation_area": [
"http://data.vlaanderen.be/ns/besluit#werkingsgebied",
"http://www.w3.org/2000/01/rdf-schema#label"
],
"operation_area_spatial": [
"http://purl.org/dc/terms/spatial",
"http://www.w3.org/2000/01/rdf-schema#label"
],
"vendor": [
"^http://mu.semte.ch/vocabularies/account/canActOnBehalfOf",
"http://mu.semte.ch/vocabularies/core/uuid"
]
},
"mappings": {
@@ -745,6 +761,15 @@
}
}
},
"classification_alternative_name": {
"type": "text",
"fields": {
"field": {
"type": "keyword",
"normalizer": "custom_sort_normalizer"
}
}
},
"status": {
"type": "text",
"fields": {
@@ -795,6 +820,27 @@
"normalizer": "identifier_normalizer"
}
}
},
"operation_area": {
"type": "keyword",
"fields": {
"field": {
"type": "keyword",
"normalizer": "custom_sort_normalizer"
}
}
},
"operation_area_spatial": {
"type": "keyword",
"fields": {
"field": {
"type": "keyword",
"normalizer": "custom_sort_normalizer"
}
}
},
"vendor": {
"type": "keyword"
}
}
}

View File

@@ -97,6 +97,8 @@ services:
BASE_URL: "http://localhost/ldes/"
kbo-data-sync:
restart: "no"
link-adressenregister-uri:
restart: "no"
error-alert:
environment:
EMAIL_FROM: 'test@example.com'

View File

@@ -8,7 +8,8 @@ services:
identifier:
image: semtech/mu-identifier:1.10.3
environment:
DEFAULT_MU_AUTH_ALLOWED_GROUPS_HEADER: '[{"variables":[],"name":"public"}]'
# It is INCREDIBLY important that the "clean" group is part of this config, DO NOT ADJUST unless you know EXACTLY what you're doing
DEFAULT_MU_AUTH_ALLOWED_GROUPS_HEADER: '[{"variables":[],"name":"clean"}, {"variables":[],"name":"public"}]'
SESSION_COOKIE_SECURE: "on"
labels:
- "logging=true"
@@ -33,8 +34,9 @@ services:
restart: always
logging: *default-logging
db:
image: semtech/mu-authorization:feature-service-roam-r1.1
image: semtech/sparql-parser:0.0.15
environment:
LISP_DYNAMIC_SPACE_SIZE: 8192
MU_SPARQL_ENDPOINT: "http://triplestore:8890/sparql"
LOG_OUTGOING_SPARQL_QUERIES: "true"
LOG_INCOMING_SPARQL_QUERIES: "true"
@@ -45,6 +47,7 @@ services:
QUERY_MAX_EXECUTION_TIME: "300000"
volumes:
- ./config/authorization:/config
- ./data/authorization:/data
labels:
- "logging=true"
restart: always
@@ -89,9 +92,10 @@ services:
restart: always
logging: *default-logging
resource:
image: semtech/mu-cl-resources:1.24.0
image: semtech/mu-cl-resources:1.27.2
environment:
CACHE_CLEAR_PATH: "http://cache/.mu/clear-keys"
LISP_DYNAMIC_SPACE_SIZE: "8192" # 1GB by default, increase to 8GB on systems with a lot of data
links:
- db:database
volumes:
@@ -140,7 +144,7 @@ services:
restart: always
logging: *default-logging
login:
image: lblod/acmidm-login-service:0.12.0
image: lblod/acmidm-login-service:0.12.1.rc-2
environment:
MU_APPLICATION_AUTH_USERID_CLAIM: "vo_id"
MU_APPLICATION_GRAPH: "http://mu.semte.ch/graphs/contacthub/accounts"
@@ -156,7 +160,7 @@ services:
links:
- db:database
login-dashboard:
image: lblod/acmidm-login-service:0.12.0
image: lblod/acmidm-login-service:0.12.1.rc-2
environment:
LOG_SINK_URL: "http://sink"
MU_APPLICATION_AUTH_ROLE_CLAIM: "abb_organisatieportaal_rol_2d"
@@ -212,11 +216,12 @@ services:
restart: always
logging: *default-logging
frontend:
image: lblod/frontend-organization-portal:1.36.4
image: lblod/frontend-organization-portal:1.43.0
volumes:
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
environment:
EMBER_ENABLE_EDIT_CONTACT_DATA_FEATURE: "true"
EMBER_ENABLE_LEGAL_FORM_EDITABLE_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"
@@ -304,7 +309,7 @@ services:
restart: always
logging: *default-logging
construct-organization-relationships:
image: lblod/construct-organization-relationships-service:1.0.3
image: lblod/construct-organization-relationships-service:1.2.0
links:
- db:database
labels:
@@ -312,7 +317,7 @@ services:
restart: always
logging: *default-logging
scope-of-operation:
image: lblod/scope-of-operation-service:0.1.1
image: lblod/scope-of-operation-service:0.2.0
links:
- db:database
labels:
@@ -344,13 +349,21 @@ services:
restart: always
logging: *default-logging
kbo-data-sync:
image: lblod/sync-wegwijs-organization-service:2.0.4
image: lblod/sync-wegwijs-organization-service:2.0.5
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
link-adressenregister-uri:
image: lblod/link-adressenregister-uri-service:0.1.1
environment:
MU_SPARQL_ENDPOINT: "http://triplestore:8890/sparql"
MU_SPARQL_UPDATEPOINT: "http://triplestore:8890/sparql"
CRON_SCHEDULE: "0 0 * * *"
restart: always
logging: *default-logging
################################################################################
# DELTA GENERAL
@@ -382,6 +395,8 @@ services:
image: lblod/delta-producer-background-jobs-initiator:1.0.1
volumes:
- ./config/delta-producer/background-job-initiator:/config
environment:
JOB_TIMEOUT_MINUTES: 1380 # 23h
links:
- db:database
labels:
@@ -389,7 +404,7 @@ services:
restart: always
logging: *default-logging
delta-producer-publication-graph-maintainer:
image: lblod/delta-producer-publication-graph-maintainer:1.2.2
image: lblod/delta-producer-publication-graph-maintainer:1.4.3
environment:
MAX_BODY_SIZE: "50mb"
PRETTY_PRINT_DIFF_JSON: "true"