Compare commits

...

198 Commits

Author SHA1 Message Date
Damon
d80614b139 Release v1.41.5 2026-09-11 10:05:46 +02:00
Damon
22d91920f8 DL-7473: added politiecollege bestuursorgaan via migrations + ended politieraad orgs 2026-09-11 09:56:00 +02:00
Damon
aac4410c2f Release v1.41.4 2026-08-31 11:12:10 +02:00
Damon
c7e06f2bf5 OP-3867: fix to mandataris mapping query + backfil migration for stuck mandatarissen 2026-08-31 11:04:40 +02:00
Claire Lovisa
486ccadcfa Release v1.41.3 2026-08-28 10:37:08 +02:00
Claire Lovisa
65edb1b2b0 Fix betrokken lokale besturen links via migration 2026-08-28 10:36:31 +02:00
Claire Lovisa
3024940172 Release v1.41.2 2026-08-25 14:48:46 +02:00
Claire Lovisa
4ede122678 Update changelog 2026-08-25 14:46:01 +02:00
Claire Lovisa
e7fd43c0c3 Set timeout to producer jobs 2026-08-25 14:44:57 +02:00
Claire Lovisa
eb10f5897d Fix betrokken lokale besturen links via migration 2026-08-25 14:44:45 +02:00
Damon
f5f9884f4f Release v1.41.1 2026-08-06 16:23:37 +02:00
Damon
19052da1b0 Fix frontend version reference in docker-compose.yml and changelog
Post-rebase cleanup: docker-compose.yml still pointed at frontend 1.40.4
instead of the actual release version 1.40.4-1.
2026-08-06 11:36:12 +02:00
wolfez
6887ee4451 update changelog 2026-08-06 11:31:48 +02:00
wolfderechter
a3e7e43237 Merge pull request #614 from lblod/chore/cleanup-local-involvement-herne
[OP-3858]: add migration to cleanup local involvement herne
2026-08-06 11:31:48 +02:00
Sam Van Campenhout
4f8cc570b4 Merge pull request #612 from lblod/add-site-type-pz-wijkkantoor
Add a new "Wijkkantoor" site type
2026-08-06 11:31:48 +02:00
wolfez
f4cec2cf57 add migration to cleanup local involvement herne 2026-08-06 11:31:48 +02:00
felix
22d449fad9 Merge branch 'master' into development 2026-08-06 11:31:48 +02:00
Damon
ec2482c8ce bump frontend 2026-08-06 11:31:48 +02:00
Sam Van Campenhout
bfc15d7dc4 Add a new "Wijkkantoor" site type 2026-08-06 11:31:46 +02:00
cecemel
47307103e9 Merge pull request #613 from lblod/chore/health-checks
Chore/health checks
2026-08-06 11:31:08 +02:00
Damon
c74ced18a9 Merge branch 'master' into chore/health-checks 2026-08-06 11:31:06 +02:00
Damon
81a2c5bcbc changelog edit 2026-08-06 11:29:43 +02:00
Damon Kennes
71cb867edb Merge pull request #608 from lblod/OP-3817-inhoudelijk-thema
Op 3817 inhoudelijk thema
2026-08-06 11:28:51 +02:00
Damon
2810ae60a5 Merge branch 'development' into OP-3817-inhoudelijk-thema
# Conflicts:
#	CHANGELOG.md
#	docker-compose.yml
2026-08-06 11:28:50 +02:00
NikiDeVisscher
b81d1319ed Merge pull request #607 from lblod/feature/werkingsgebied-filter
[OP-3812]: Operation area filter
2026-08-06 11:27:41 +02:00
Damon
ee2830a10f OP-3817: changelog + frontend bump 2026-08-06 11:27:41 +02:00
NikiDeVisscher
c8c33d2c5b Bump frontend 2026-08-06 11:27:41 +02:00
Damon
8753301534 OP-3817: final codelist + remove order 2026-08-06 11:27:41 +02:00
Damon
d52c5d899e Merge branch 'development' into OP-3817-inhoudelijk-thema 2026-08-06 11:27:41 +02:00
Damon
8fb620bf7b OP-3817: added inhoudelijk thema with placeholder values 2026-08-06 11:27:41 +02:00
Damon
15a372325d Merge branch 'development' into feature/werkingsgebied-filter 2026-08-06 11:27:39 +02:00
NikiDeVisscher
edcb91433c Add to changelog 2026-08-06 11:26:45 +02:00
Damon Kennes
adf006744c Merge pull request #606 from lblod/OP-3810-eredienst-in-oprichting-lifecyle
Op 3810 eredienst in oprichting lifecyle
2026-08-06 11:25:26 +02:00
NikiDeVisscher
76a5741996 Operation area filter 2026-08-06 11:25:26 +02:00
Damon
930241fcf3 OP-3810: changelog edit 2026-08-06 11:25:24 +02:00
Damon
39b6faa310 bump frontend + feature flag to make legal form editable 2026-08-06 11:23:08 +02:00
Damon
7a6a6ef192 OP-3810: cleanup migration to keep currently active orgaan + remove mandates from removed organen 2026-08-06 11:23:08 +02:00
Damon
504e3d491a changelog 2026-08-06 11:23:08 +02:00
Damon
a75adb7681 OP-3810: added migration to handle in oprichting erediensten + changelog edit 2026-08-06 11:23:08 +02:00
Damon
63a524a0ba Merge branch 'development' into OP-3810-eredienst-in-oprichting-lifecyle 2026-08-06 11:23:08 +02:00
Damon
15e33d39e2 OP-3810: edit dispatcher config 2026-08-06 11:23:08 +02:00
Damon
ec60003754 Merge pull request #604 from lblod/bezoekadres-site-type
[OP-3818] Add a new `Bezoekadres` site type to the codelist
2026-08-06 11:23:04 +02:00
Damon Kennes
bb4529cf82 Merge pull request #603 from lblod/feature/juridische-vorm
Added juridische vorm + change-event
2026-08-06 11:22:18 +02:00
Sam Van Campenhout
9d6a14a81f Add a new Bezoekadres site type to the codelist 2026-08-06 11:22:16 +02:00
Damon
0ba4f16031 changelog edit frontend 2026-08-06 11:20:34 +02:00
Damon
ba26d24042 frontend bump 2026-08-06 11:20:30 +02:00
Damon
272f877281 edit changelog 2026-08-06 11:19:02 +02:00
Damon
8d44366829 changed order predicate to sh:order 2026-08-06 11:16:42 +02:00
Boris De Vloed
f821710ea7 Revert "Added orgs"
This reverts commit 3ced194b73.
2026-08-06 11:16:42 +02:00
Damon
36484c851b Merge branch 'development' into feature/juridische-vorm 2026-08-06 11:16:42 +02:00
Damon
7501ce4d4d changed implementation to concept resource 2026-08-06 11:16:42 +02:00
Boris De Vloed
7fc1ea1c29 Added orgs 2026-08-06 11:16:42 +02:00
Damon
d3751b2352 added ordering to legal forms 2026-08-06 11:16:42 +02:00
Damon
44fe1866ba switch to code:Rechtsvormtype for legal form + added 3 more legal form codes 2026-08-06 11:16:42 +02:00
Damon
7e84e9092e Added juridische vorm + change-event 2026-08-06 11:16:42 +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
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
Damon
de3bc6b0cd release v1.38.2 2026-02-20 10:03:39 +01:00
cecemel
dcb053b036 Merge pull request #586 from lblod/chore/add-related-organizations-report.js
Chore/add related organizations report.js
2026-02-19 16:31:27 +01:00
felix
d325d1b60d Update CHANGELOG.md 2026-02-19 16:30:54 +01:00
felix
d8ded9809a remove comments 2026-02-19 16:16:19 +01:00
felix
f9c5c74c00 added related organizations report 2026-02-19 16:12:11 +01:00
Damon
419c322e5e edit changelog 2026-02-11 09:29:32 +01:00
Damon
2c28259da4 bump frontend 2026-02-11 09:22:29 +01:00
Damon
4e145e67ff edit changelog 2026-02-11 09:21:47 +01:00
Damon
07d4dde49c edit changelog 2026-02-10 16:01:35 +01:00
Damon Kennes
8bf3549cce Merge pull request #585 from lblod/OP-3724-Aalter-can-be-selected-twice-in-editing-werkingsgebied-when-making-a-new-Politiezone
OP-3724: added (voor fusie) to the location labels for the old locati…
2026-02-06 13:35:59 +01:00
Damon
aa1272cf0d OP-3724: added (voor fusie) to the location labels for the old location for Deinze and Aalter 2026-02-06 09:59:15 +01:00
felix
fce61a1a2c Update CHANGELOG.md 2026-02-04 18:35:46 +01:00
felix
54067e925e bump addresseregister 2026-02-04 18:34:54 +01:00
Damon
d55ac1ae5a DL-7142: bump loket-error-alert-service 2026-02-04 09:43:52 +01:00
Boris De Vloed
bb1044f539 Merge pull request #576 from lblod/internal/remove-organizations-public-info-producer
Remove organizations public info producer - consumers have been removed in downstream applications
2026-02-03 09:58:46 +01:00
Boris De Vloed
f982e63a7e remove duplicate line form merge 2026-02-03 09:56:49 +01:00
Boris De Vloed
b41b7ee81e Merge branch 'development' into internal/remove-organizations-public-info-producer 2026-02-03 09:49:56 +01:00
Damon
38d1343338 release v1.38.1 2026-01-30 09:50:45 +01:00
Damon
c701dfa8a5 frontend bump 2026-01-27 09:43:48 +01:00
Damon
b3ff36e184 edit changelog + docker.compose.dev based on feedback 2026-01-23 13:28:10 +01:00
Damon Kennes
fc6239d256 Merge pull request #584 from lblod/OP-3720-Delta-background-job-having-errors-getting-stuck-send-an-email
OP-3720: added error-alert and deliver-email-service to send mails wh…
2026-01-23 10:51:46 +01:00
Damon
ada6e3c781 edit changelog 2026-01-22 16:21:20 +01:00
Damon
dfcbef269d OP-3720: added error-alert and deliver-email-service to send mails when errors occur in dump jobs 2026-01-22 15:46:21 +01:00
wolfez
f47847d5fd release v1.38.0 2026-01-08 15:10:02 +01:00
Damon Kennes
5f36c2880c Merge pull request #583 from lblod/OP-3704-fix-aantalHouders-antwerpen-brecht-hasselt-vast-bureau
OP-3704: aantalHouders voor vast bureau brecht, antwerpen en hasselt …
2026-01-07 17:07:21 +01:00
Damon
0727ad4674 OP-3704: aantalHouders voor vast bureau brecht, antwerpen en hasselt +1 na opmerking van Karel 2026-01-07 16:43:41 +01:00
wolfez
e598e9334c bump frontend to v1.36.2 2026-01-07 11:17:05 +01:00
fe789ce33f slightly adjust setup-vendors-sync steps in readme to allow initial sync 2026-01-05 13:07:47 +01:00
felix
d77dcd7ad6 Update CHANGELOG.md 2025-12-15 15:27:26 +01:00
wolfez
dd7f360268 update changelog 2025-12-12 11:06:40 +01:00
wolfez
cfa006d8e5 bump frontend to v1.36.1 2025-12-12 10:41:00 +01:00
Damon Kennes
0c6f8fe115 Merge pull request #580 from lblod/OP-3680-Indicate-whether-a-worship-service-is-a-customer-of-ReligioPoint-or
Op 3680 indicate whether a worship service is a customer of religio point or
2025-12-08 16:02:59 +01:00
Damon
a7d14d42af OP-3680: changelog + readme edits 2025-12-08 16:01:45 +01:00
Damon Kennes
9a0e8bfa4b Merge branch 'development' into OP-3680-Indicate-whether-a-worship-service-is-a-customer-of-ReligioPoint-or 2025-12-08 15:37:42 +01:00
Damon
7b3d0d94d1 OP-3680: vendor-management-consumer db link fix 2025-12-08 12:58:10 +01:00
cecemel
c5cebc7c08 Merge pull request #581 from lblod/OP-3699-Change-field-aantal-houders-for-schepenen-and-leden-Vast-Bureau-for-cities-Hasselt-and-Antwerp
Op 3699 | 3590 change field aantal houders for schepenen and leden vast bureau for cities hasselt and antwerp
2025-12-08 12:28:21 +01:00
felix
a6802e4c9d Update CHANGELOG.md 2025-12-08 12:26:10 +01:00
Damon
cec0ccca77 changelog edit 2025-12-01 14:17:56 +01:00
Damon
c27870a274 OP-3680: PR comments -> vendors for all organizations + multiple vendors 2025-12-01 14:00:37 +01:00
Damon
380dd9afaf OP-3680: added name to vendor-management 2025-11-28 09:54:30 +01:00
Damon
c74e32336c OP-3699: aantal-houders added to mandates resource + added correct value for Vast Bureau/schepenen Brecht via Karel 2025-11-28 09:35:51 +01:00
Damon
0c4df815e9 OP-3680: vendor-management-consumer works with triple remapping to only get the needed data 2025-11-25 10:59:05 +01:00
Damon
f2d66ba03b OP-3680: added vendor-management-consumer to ingest data from vendor management 2025-11-21 16:13:46 +01:00
Damon
b1322d1884 OP-3699: edit export for aantalHouders property 2025-11-21 14:08:31 +01:00
Damon
7f60f302b0 OP-3699: data migrations to bring in lmb aantalHouders + set Hasselt/Antwerp to 9 (TODO: set correct value for dubbel Vast Bureau Brecht) 2025-11-18 17:08:51 +01:00
cecemel
0674a8a998 Merge pull request #579 from lblod/chore/readme-improvements
Chore/readme improvements
2025-11-18 12:29:42 +01:00
felix
10b8b0dd0c update README.md 2025-11-18 12:28:21 +01:00
felix
3b0131f398 some migrations to make OP work out of the box 2025-11-18 12:25:21 +01:00
felix
49ac622757 Remove non needed example 2025-11-18 12:25:12 +01:00
felix
bacf26e75d Update README.md 2025-11-18 12:25:06 +01:00
wolfez
c82d7591e4 release v1.37.3 2025-11-14 13:45:17 +01:00
Claire Lovisa
b163cda6fa Merge branch 'master' into development 2025-11-13 14:19:54 +01:00
Claire Lovisa
01de4843a2 Release v1.37.2 2025-11-13 14:16:57 +01:00
Claire Lovisa
6555e00645 Bump frontend 2025-11-13 14:15:49 +01:00
wolfderechter
2efdf333d0 Merge pull request #578 from lblod/chore/remove-local-involvements
[OP-3693]: remove local involvements
2025-11-07 10:52:25 +01:00
wolfez
78c3882c10 update changelog 2025-11-05 14:05:58 +01:00
wolfez
7567343001 Add migrations to cleanup local involvements 2025-11-05 14:04:55 +01:00
Claire Lovisa
fa46345c57 Merge branch 'master' into development 2025-11-04 12:01:21 +01:00
Claire Lovisa
bd62954cae Merge branch 'development' into internal/remove-organizations-public-info-producer 2025-10-24 15:43:48 +02:00
Claire Lovisa
11817eac09 Remove organizations-public-info producer 2025-10-24 15:41:18 +02:00
palexopoulos-triply
f27d122665 Update CHANGELOG.md 2025-10-24 15:32:48 +02:00
palexopoulos-triply
4289225cf7 Update CHANGELOG.md 2025-10-24 15:32:12 +02:00
palexopoulos-triply
ecb1736fcf Merge pull request #575 from lblod/OP-3676
Cleaning duplicated data of municipalities and provinces
2025-10-24 14:39:51 +02:00
palexopoulos-triply
973b791e00 Merge branch 'development' into OP-3676 2025-10-24 14:39:35 +02:00
Panos Alexopoulos
7374c861fb Updated changelog 2025-10-24 14:13:47 +02:00
Panos Alexopoulos
2eea02673b Debugged cleanup query and added entry to changelog 2025-10-24 14:04:32 +02:00
Panos Alexopoulos
3d7d56d9da Added a cleanup query to find the triples that involve entities of type Bestuurseenheid either as subject or object, and are shared between the shared and administrative unit graphs, and then remove them from the administrative unit graph 2025-10-24 09:57:15 +02:00
77 changed files with 12847 additions and 461 deletions

View File

@@ -1 +0,0 @@
COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml

View File

@@ -1,4 +1,315 @@
# Changelog
## Unreleased
- Derive an organization's reference region(s) from its werkingsgebied; bump scope-of-operation to 0.2.0 [OP-3799]
- Frontend [v1.40.1], [v1.40.0], [v1.39.0] ,[v1.38.0]
- 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]
- Werkingsgebied (dct:spatial) for private OCMW associations [OP-3832]
- 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
### Deploy notes
```
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 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
```
## v1.41.5
- Add the value politiecollege to the existing dropdown list beslissingsorgaan [DL-7473]
- Bump construct-organization-relationships [DL-7473]
### Deploy notes
```
drc pull construct-organization-relationships && drc up -d construct-organization-relationships
drc restart migrations cache
drc exec delta-producer-background-jobs-initiator curl -X POST http://localhost/public/healing-jobs
```
## v1.41.4
- Fix broken lmb mandataris mappin query [OP-3867]
### Deploy notes
```
drc restart migrations mandatarissen-consumer
```
## 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 cache resource
```
## v1.41.1
- Added service to link addresses to addressregister uris [OP-3795]
- Site type changes [OP-3818]
- Added Juridische vorm [OP-3816] [OP-3820]
- Frontend [v1.40.4-1]
- bump construct-organization-relationships [OP-3810]
- "In Oprichting" bestuursorgaan lifecycle [OP-3810]
- Added "werkingsgebied" filter [OP-3812]
- Inhoudelijk thema [OP-3817]
- Add a new "Wijkkantoor" site type [OP-3837]
- cleanup local involvement herne [OP-3858]
### Deploy notes
```
drc up -d link-adressenregister-uri frontend construct-organization-relationships
drc restart resource migrations dispatcher
```
```
drc restart migrations
drc restart cache resource
```
```
drc restart migrations frontend db resource cache
# reindex elastic search:
/bin/bash scripts/reset-elastic.sh
```
```
drc restart migrations
drc exec delta-producer-background-jobs-initiator curl -X POST http://localhost/public/healing-jobs
drc up -d construct-organization-relationships
```
## 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]
- bump loket-error-alert-service [DL-7142]
- bump adressenregister [OP-3721]
- Aalter can be selected twice in editing "werkingsgebied" when making a new Politiezone [OP-3724]
- bump frontend [OP-3726]
- Add related organizations report to report generation service [OP-3739]
### Deploy instructions
```
# removing producer
drc restart dispatcher delta-producer-dump-file-publisher delta-producer-background-jobs-initiator delta-producer-publication-graph-maintainer jobs-controller migrations cache
drc up -d publication-triplestore-migrations error-alert adressenregister frontend
rm -r data/files/deltas/organizations-public-info
rm -r data/files/delta-producer-dumps/dump-organizations-public-info
# new related organizations report
drc pull report-generation; drc up -d report-generation
```
### Deploy instructions
## 1.38.1 (2026-01-30)
### General
- Bump frontend to v1.36.3 [OP-3428]
- [OP-3720]: Delta background job having errors/getting stuck, send an email
### Deploy instructions
#### For error-alert and deliver-email-service
Per environment a specfic configuration for the email service similar to loket config.
Ask colleague for specfic credentials.
```
deliver-email-service:
environment:
EMAIL_PROTOCOL: "smtp"
#WELL_KNOWN_SERVICE: "smtp"
EMAIL_HOST: "Fill in Email host adress"
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
EMAIL_TO: "Fill in email adress of receiver"
```
#### Deploy instructions
```
drc restart migrations deltanotifier
drc up -d error-alert deliver-email-service frontend
```
## 1.38.0 (2026-01-08)
### 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
- Bump frontend to v1.36.2 [OP-3623] [OP-3681] [OP-3703] [OP-2712]
### Deploy instructions
#### For the vendor-management-consumer
Per environment a slightly different configuration is needed. Update the `docker-compose.override.yml` accordingly.
##### development
```
vendor-management-consumer:
environment:
DCR_SYNC_BASE_URL: "https://dev.loket.lblod.info/"
DCR_SYNC_LOGIN_ENDPOINT: "https://dev.loket.lblod.info/sync/vendor-management/login" # Add DCR_SECRET_KEY in docker-compose.override.yml
DCR_DISABLE_INITIAL_SYNC: "false"
DCR_DISABLE_DELTA_INGEST: "false"
DCR_SECRET_KEY: "SECRECT KEY TO ASK"
```
##### qa
```
vendor-management-consumer:
environment:
DCR_SYNC_BASE_URL: "https://loket.lblod.info/"
DCR_SYNC_LOGIN_ENDPOINT: "https://loket.lblod.info/sync/vendor-management/login" # Add DCR_SECRET_KEY in docker-compose.override.yml
DCR_DISABLE_INITIAL_SYNC: "false"
DCR_DISABLE_DELTA_INGEST: "false"
DCR_SECRET_KEY: "SECRECT KEY TO ASK"
```
##### production
```
vendor-management-consumer:
environment:
DCR_SYNC_BASE_URL: "https://loket.lokaalbestuur.vlaanderen.be/"
DCR_SYNC_LOGIN_ENDPOINT: "https://loket.lokaalbestuur.vlaanderen.be/sync/vendor-management/login" # Add DCR_SECRET_KEY in docker-compose.override.yml
DCR_DISABLE_INITIAL_SYNC: "false"
DCR_DISABLE_DELTA_INGEST: "false"
DCR_SECRET_KEY: "SECRECT KEY TO ASK"
```
#### Deploy instructions
```
drc restart migrations
drc restart delta-producer-publication-graph-maintainer resource
drc pull vendor-management-consumer; drc up -d vendor-management-consumer
drc restart db resource
drc pull frontend && drc up -d frontend
```
## 1.37.3 (2025-11-14)
### Backend
- Added cleanup job to clean duplicated data of municipalities and provinces [OP-3676]
- Delete local involvements for worship services [OP-3693]
### Deploy notes
```
# cleanup job
drc restart migrations
drc exec db-cleanup curl -X GET "http://localhost/runCronJob?cronJobID=8ffd9f11-db25-430d-a66a-31fc8b393d5f"
```
## 1.37.2 (2025-11-13)
- Bump frontend to v1.36.0
### Deploy notes
```
drc up -d frontend
```
## 1.37.1 (2025-11-04)
### Bakend
- Include v1.35.2 hotfix to the 1.37.x version. Already deployed so no deploy instructions

View File

@@ -2,14 +2,40 @@
Backend for the organization portal application, based on the mu.semte.ch microservices stack.
## How to
### Boot up the system in DEV environment
cd /path/to/mu-project
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
cd /path/to/app-organization-portal
docker compose -f docker-compose.yml -f docker-compose.dev.yml up
You can shut down using `docker-compose stop` and remove everything using `docker-compose rm`.
You can shut down using `docker compose stop` and remove everything using `docker compose rm`.
You need to wait until the migrations are ready.
After that, you need to trigger the ES index manually.
You can do it by:
```
# Assumes you are in root of app-organization-portal
/bin/bash scripts/reset-elastic.sh
```
And follow the steps. It takes a bit, from an install from scratch, about 10 mins. (Mileage may vary)
#### Tricks to make it a bit easier.
If you think typing the full command takes too long every time, run this in your shell:
```
# Assumes you are in root of app-organization-portal
echo "COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml:docker-compose.override.yml" > .env
touch docker-compose.override.yml
```
Now you can just run `docker compose up` and it will take the config files into account.
If you want to go a step further, and still think (like most of us) that `docker compose` is too long to type, you can alias it:
```
echo "alias drc='docker compose'" >> ~/.bashrc
echo "alias drcl='docker compose logs -ft --tail=100'" >> ~/.bashrc
```
Now everywhere `drc up -d` will work as shorthand for `docker compose up -d`.
#### Setup consumers
@@ -151,6 +177,34 @@ drc up -d
sh scripts/reset-elastic.sh
```
#### Setup vendors sync
Note: this is assuming you have never ran this before.
```
drc down;
```
Update `docker-compose.override.yml` to:
```
vendor-management-consumer:
environment:
DCR_SYNC_BASE_URL: "https://dev.loket.lblod.info/" # or another endpoint
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
# 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
To make sure the app can share data, producers need to be set up. There is an intial sync, that is potentially very expensive, and must be started manually

View File

@@ -1,270 +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"
]
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
}
}
]
},
%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
}
}
]
},
%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
}
}
]
},
%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
}
}
]
},
%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
}
}
]
},
%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
}
}
]
},
%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

@@ -19,16 +19,6 @@
"cronPatternHealingJob": "0 0 4 * * *",
"startInitialSync": true
},
{
"name": "organizations-public-info",
"jobsGraph": "http://mu.semte.ch/graphs/jobs",
"dumpFileCreationJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations-public-info",
"initialPublicationGraphSyncJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info",
"healingJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info",
"cronPatternDumpJob": "27 */4 * * *",
"cronPatternHealingJob": "0 0 4 * * *",
"startInitialSync": true
},
{
"name": "worship-posts",
"jobsGraph": "http://mu.semte.ch/graphs/jobs",

View File

@@ -17,24 +17,6 @@
"targetFilesGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
"cleanupOldDumps": true
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations-public-info": {
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsPublicInfoCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-public-info",
"fileBaseName": "dump-organizations-public-info",
"publicationGraphEndpoint": "http://publication-triplestore:8890/sparql",
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
"cleanupOldDumps": true
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info": {
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsPublicInfoCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-public-info",
"fileBaseName": "dump-organizations-public-info",
"publicationGraphEndpoint": "http://publication-triplestore:8890/sparql",
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
"cleanupOldDumps": true
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/public": {
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/PublicCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/public",

View File

@@ -525,6 +525,32 @@
"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"
]
},
{
"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": [
@@ -540,7 +566,8 @@
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/ns/org#role"
"http://www.w3.org/ns/org#role",
"http://data.vlaanderen.be/ns/mandaat#aantalHouders"
]
},
{

View File

@@ -44,29 +44,6 @@
"loginPath": "/public/login",
"logOutgoingDelta": true
},
"organizations-public-info": {
"deltaInterval": 10000,
"errorCreatorUri": "http://lblod.data.gift/services/delta-producer-publication-graph-maintainer-organizations-public-info",
"exportConfigPath": "/config/organizations-public-info/export.json",
"filesPath": "/organizations-public-info/files",
"healingJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info",
"initialPublicationGraphSyncJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info",
"jobsGraph": "http://mu.semte.ch/graphs/jobs",
"publicationGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-public-info",
"publisherUri": "http://data.lblod.info/services/delta-production-json-diff-file-manager/organizations-public-info",
"queuePollInterval": 3000,
"relativeFilePath": "/deltas/organizations-public-info",
"serveDeltaFiles": true,
"skipMuAuthInitialSync": true,
"skipMuAuthHealing": true,
"useFileDiff": true,
"healingInitialBatchSizeInsert": 1000,
"healingPatchPublicationGraphTaskOperation": 500,
"useVirtuosoForExpensiveSelects": true,
"errorGraph": "http://mu.semte.ch/graphs/jobs",
"loginPath": "/organizations-public-info/login",
"logOutgoingDelta": true
},
"worship-posts": {
"deltaInterval": 10000,
"errorCreatorUri": "http://lblod.data.gift/services/delta-producer-publication-graph-maintainer-worship-posts",

View File

@@ -178,6 +178,27 @@ export default [
ignoreFromSelf: true,
optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ]
}
},
{
match: {
predicate: {
type: 'uri',
value: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'
},
object: {
type: 'uri',
value:'http://open-services.net/ns/core#Error'
}
},
callback: {
url: 'http://error-alert/delta',
method:'POST'
},
options: {
resourceFormat: 'v0.0.1',
gracePeriod: 1000,
ignoreFromSelf: true
}
}
/*
Commenting ldes rules until ready to go to qa/prod. In the meantime, we override the configuration on dev.

View File

@@ -0,0 +1,19 @@
DELETE {
GRAPH ?g {
?s <http://www.w3.org/ns/regorg#orgStatus> ?status.
}
}
INSERT {
GRAPH ?g {
?s <http://www.w3.org/ns/regorg#orgStatus> <http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6>.
}
}
WHERE {
GRAPH ?g {
?s a <http://www.w3.org/ns/org#Organization>.
OPTIONAL {
?s <http://www.w3.org/ns/regorg#orgStatus> ?status.
}
}
}

View File

@@ -0,0 +1,33 @@
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> <http://www.w3.org/2004/02/skos/core#prefLabel> "Organisatie status code" .
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
<http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> <http://mu.semte.ch/vocabularies/core/uuid> "b8dcb04f0d1feb86ff01cc0677363b20" .
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://mu.semte.ch/vocabularies/core/uuid> "63cc561de9188d64ba5840a42ae8f0d6" .
<http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2004/02/skos/core#ConceptScheme> .
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode> .
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/2004/02/skos/core#prefLabel> "In oprichting" .
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode> .
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/b8dcb04f0d1feb86ff01cc0677363b20> .
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/2004/02/skos/core#prefLabel> "Niet Actief" .
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://mu.semte.ch/vocabularies/core/uuid> "abf4fee82019f88cf122f986830621ab" .
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/2004/02/skos/core#prefLabel> "Actief" .
<http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode> .
<http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> <http://mu.semte.ch/vocabularies/core/uuid> "d02c4e12bf88d2fdf5123b07f29c9311" .
<http://lblod.data.gift/concepts/abf4fee82019f88cf122f986830621ab> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
}
}

View File

@@ -386,7 +386,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
@@ -441,14 +441,6 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://delta-producer-publication-graph-maintainer/organizations/files/"
end
#################################################################
# DELTA: organizations-public-info
#################################################################
get "/sync/organizations-public-info/files/*path" do
Proxy.forward(conn, path, "http://delta-producer-publication-graph-maintainer/organizations-public-info/files/")
end
#################################################################
# DELTA: public
#################################################################
@@ -511,8 +503,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,8 @@
{
"creators": [
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/organizations",
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/public",
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/organizations-public-info",
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/worship-posts"
]
}

View File

@@ -63,38 +63,6 @@
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/initialPublicationGraphSyncing",
"nextIndex": "0"
},
{
"currentOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/initialPublicationGraphSyncing",
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/deltaDumpFileCreation",
"nextIndex": "1"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/healing/patchPublicationGraph",
"nextIndex": "0"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations-public-info": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/deltas/deltaDumpFileCreation",
"nextIndex": "0"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/public": {
"tasksConfiguration": [
{

View File

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

View File

@@ -0,0 +1,48 @@
@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/48ffd9f11-db25-430d-a66a-31fc8b393d5f> a cleanup:Job ;
mu:uuid "8ffd9f11-db25-430d-a66a-31fc8b393d5f" ;
dcterms:title "Cleaning duplicated data of municipalities and provinces" ;
cleanup:randomQuery """
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s ?p ?o .
}
}
WHERE {
VALUES (?g1 ?g2) {
(<http://mu.semte.ch/graphs/shared> <http://mu.semte.ch/graphs/administrative-unit>)
}
{
GRAPH ?g1 {
?s a besluit:Bestuurseenheid ;
?p ?o .
FILTER(?p != rdf:type)
}
GRAPH ?g2 {
?s a besluit:Bestuurseenheid ;
?p ?o .
FILTER(?p != rdf:type)
}
}
UNION
{
GRAPH ?g1 {
?s ?p ?o .
?o a besluit:Bestuurseenheid .
FILTER(?p != rdf:type)
}
GRAPH ?g2 {
?s ?p ?o .
?o a besluit:Bestuurseenheid .
FILTER(?p != rdf:type)
}
}
}
""" .

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?mandaat mandaat:aantalHouders ?oldValue .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?mandaat mandaat:aantalHouders "9"^^xsd:integer .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
VALUES ?mandaat {
<http://data.lblod.info/id/mandaten/1d6bf704b39472c5aa987779b7c0162183736d7990ddbd54835c0a6f98e52116>
<http://data.lblod.info/id/mandaten/273adda009e28c3512472f2e1e5bda0ee49272fca353eebde0f045e461c174d9>
<http://data.lblod.info/id/mandaten/23d2744cdb69fbdbbd4aa63f22752e19dc20b9a71bebbf260fa7812c20db483a>
<http://data.lblod.info/id/mandaten/1ba0b2b260793ace3bf8425b22fd22622e2fcc0f805c14db10ac8194b227a988>
}
OPTIONAL { ?mandaat mandaat:aantalHouders ?oldValue . }
}
}

View File

@@ -0,0 +1,24 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?mandaat mandaat:aantalHouders ?oldValue .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?mandaat mandaat:aantalHouders ?newValue .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
VALUES ?mandaat {
<http://data.lblod.info/id/mandaten/1d6bf704b39472c5aa987779b7c0162183736d7990ddbd54835c0a6f98e52116>
<http://data.lblod.info/id/mandaten/23d2744cdb69fbdbbd4aa63f22752e19dc20b9a71bebbf260fa7812c20db483a>
<http://data.lblod.info/id/mandaten/68021f6bbdb0835e116b252030c420fc15de36732dc50a50bb76e119bd273ec8>
}
?mandaat mandaat:aantalHouders ?oldValue .
BIND(?oldValue + 1 AS ?newValue)
}
}

View File

@@ -0,0 +1,44 @@
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/system/email> {
<http://data.lblod.info/id/mailboxes/1> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Mailbox>;
<http://mu.semte.ch/vocabularies/core/uuid> "cf9cb7e4-9a00-4855-9ee0-e8e3bbeba9e9";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/1>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/2>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/3>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/4>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/5>;
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#hasPart> <http://data.lblod.info/id/mail-folders/6>.
<http://data.lblod.info/id/mail-folders/1> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "891c67e5-4719-47f8-aec2-d898ba2c09e8";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "inbox";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your incoming mail goes here.".
<http://data.lblod.info/id/mail-folders/2> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "786a8cb0-4452-40f5-b8d8-046dd2d63281";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "outbox";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your outgoing mail goes here.".
<http://data.lblod.info/id/mail-folders/3> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "a6fb03f9-11be-4401-9d8f-b4dc0e9df5ee";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "sentbox";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your sent mail goes here.".
<http://data.lblod.info/id/mail-folders/4> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "a430a848-e595-49fa-bc11-f5579605877f";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "sending";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your mail goes here while being sent.".
<http://data.lblod.info/id/mail-folders/5> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "0cb108a9-1c0d-4c0a-bf53-60e304116e47";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "drafts";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your draft goes here.".
<http://data.lblod.info/id/mail-folders/6> a <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder>;
<http://mu.semte.ch/vocabularies/core/uuid> "70c0baba-17a0-11eb-adc1-0242ac120002";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#title> "failbox";
<http://www.semanticdesktop.org/ontologies/2007/01/19/nie#description> "Your email that failed while sending goes here.".
}
}

View File

@@ -0,0 +1,44 @@
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 prov: <http://www.w3.org/ns/prov#>
DELETE {
GRAPH ?g {
?aalter rdfs:label ?label .
}
} INSERT {
GRAPH ?g {
?aalter rdfs:label "Aalter (voor fusie)" .
}
} WHERE {
GRAPH ?g {
?aalter a prov:Location ;
rdfs:label ?label .
VALUES ?aalter {
<http://data.lblod.info/id/werkingsgebieden/7a7daa48e9e6449358cf96be6c7b30466648d31236e56b8958fae7d53e2308b8>
}
}
}
;
DELETE {
GRAPH ?g {
?deinze rdfs:label ?label .
}
} INSERT {
GRAPH ?g {
?deinze rdfs:label "Deinze (voor fusie)" .
}
} WHERE {
GRAPH ?g {
?deinze a prov:Location ;
rdfs:label ?label .
VALUES ?deinze {
<http://data.lblod.info/id/werkingsgebieden/a567b3fdb462a8513ffeeff0188317003c5bbb7debb8f1ea9245b83e1d43b437>
}
}
}

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,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,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,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,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,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 @@
CLEAR GRAPH <http://redpencil.data.gift/id/deltas/producer/organizations-public-info>

View File

@@ -0,0 +1,187 @@
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
?Classificatie
?Status
?KBO_nr
?OVO_nr
?Sharepoint_id
?NIS_code
?Regio
?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 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"),
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"),
Regio: getSafeValue(row, "Regio"),
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",
"Classificatie",
"Status",
"KBO_nr",
"OVO_nr",
"Sharepoint_id",
"NIS_code",
"Regio",
"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,5 +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

@@ -0,0 +1,137 @@
import { generateReportFromData, batchedQuery } from "../helpers.js";
import { PREFIXES } from "./utils";
export default {
cronPattern: "0 00 4 * * *",
name: "relatedOrganizations",
execute: async () => {
const reportData = {
title: "related organizations",
description: "List of related Organizations and their relationships",
filePrefix: "exports/related-organizations",
};
console.log("Generating related organizations report");
const queryString = `
${PREFIXES}
SELECT DISTINCT
?role_label_renamed
?organization
?organization_label
?organization_classification_label
?organization_status_label
?organization_kbo_number
?related_organization
?related_organization_label
?related_organization_classification_label
?related_organization_status_label
?related_organization_kbo_number
WHERE {
{
?membership org:member ?organization ;
org:role ?role ;
org:organization ?related_organization .
?role skos:prefLabel ?role_label .
BIND(
IF(?role_label = "participant", "Participeert in",
IF(?role_label = "stichtend lid", "Is oprichter van",
IF(?role_label = "gerelateerd", "Heeft een relatie met",
?role_label)))
AS ?role_label_renamed
)
}
UNION
{
?membership org:member ?related_organization ;
org:role ?role ;
org:organization ?organization .
?role skos:prefLabel ?role_label .
BIND(
IF(?role_label = "participant", "Heeft als participanten",
IF(?role_label = "stichtend lid", "Werd opgericht door",
IF(?role_label = "gerelateerd", "Heeft een relatie met",
?role_label)))
AS ?role_label_renamed
)
}
?organization a org:Organization ;
skos:prefLabel ?organization_label ;
regorg:orgStatus ?organization_status .
OPTIONAL { ?organization_status skos:prefLabel ?organization_status_label . }
?organization org:classification ?organization_classification .
?organization_classification skos:prefLabel ?organization_classification_label .
?related_organization skos:prefLabel ?related_organization_label ;
regorg:orgStatus ?related_organization_status .
OPTIONAL { ?related_organization_status skos:prefLabel ?related_organization_status_label . }
?related_organization org:classification ?related_organization_classification .
?related_organization_classification skos:prefLabel ?related_organization_classification_label .
OPTIONAL {
?organization adms:identifier ?identifier1 .
?identifier1 skos:notation "KBO nummer" ;
generiek:gestructureerdeIdentificator ?id1 .
?id1 generiek:lokaleIdentificator ?organization_kbo_number .
}
OPTIONAL {
?related_organization adms:identifier ?identifier2 .
?identifier2 skos:notation "KBO nummer" ;
generiek:gestructureerdeIdentificator ?id2 .
?id2 generiek:lokaleIdentificator ?related_organization_kbo_number .
}
}
ORDER BY ?organization
`;
const queryResponse = await batchedQuery(queryString);
const data = queryResponse.results.bindings.map((row) => ({
role_label_renamed: getSafeValue(row, "role_label_renamed"),
organization: getSafeValue(row, "organization"),
organization_label: getSafeValue(row, "organization_label"),
organization_classification_label: getSafeValue(row, "organization_classification_label"),
organization_status_label: getSafeValue(row, "organization_status_label"),
organization_kbo_number: getSafeValue(row, "organization_kbo_number"),
related_organization: getSafeValue(row, "related_organization"),
related_organization_label: getSafeValue(row, "related_organization_label"),
related_organization_classification_label: getSafeValue(row, "related_organization_classification_label"),
related_organization_status_label: getSafeValue(row, "related_organization_status_label"),
related_organization_kbo_number: getSafeValue(row, "related_organization_kbo_number"),
}));
await generateReportFromData(
data,
[
"role_label_renamed",
"organization",
"organization_label",
"organization_classification_label",
"organization_status_label",
"organization_kbo_number",
"related_organization",
"related_organization_label",
"related_organization_classification_label",
"related_organization_status_label",
"related_organization_kbo_number",
],
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

@@ -26,4 +26,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,11 @@
"target": "organization-status-codes",
"cardinality": "one"
},
"resulting-legal-form": {
"predicate": "code:resulterendeRechtsvorm",
"target": "concepts",
"cardinality": "one"
},
"result-from": {
"predicate": "code:veranderingsgebeurtenisResultaat",
"target": "change-events",

View File

@@ -30,7 +30,9 @@
"ext": "http://mu.semte.ch/vocabularies/ext/",
"geo": "http://www.opengis.net/ont/geosparql#",
"nacebel": "http://data.gift/vocabularies/nace-bel/",
"time": "http://www.w3.org/2006/time#"
"time": "http://www.w3.org/2006/time#",
"muAccount": "http://mu.semte.ch/vocabularies/account/",
"sh": "http://www.w3.org/ns/shacl#"
},
"resources": {
"agents": {
@@ -252,6 +254,12 @@
"mandates": {
"class": "mandaat:Mandaat",
"super": ["posts"],
"attributes": {
"aantal-houders": {
"type": "number",
"predicate": "mandaat:aantalHouders"
}
},
"relationships": {
"role-board": {
"predicate": "org:role",
@@ -397,6 +405,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",
@@ -467,7 +485,13 @@
"target": "kbo-organizations",
"cardinality": "one",
"inverse": true
}
},
"vendors": {
"predicate": "muAccount:canActOnBehalfOf",
"target": "vendors",
"cardinality": "many",
"inverse": true
}
},
"features": ["include-uri"],
"new-resource-base": "http://data.lblod.info/id/organisaties/"
@@ -553,6 +577,23 @@
},
"new-resource-base": "http://data.lblod.info/id/eredienstBestuurseenheden/"
},
"vendors": {
"class": "ext:Vendor",
"attributes": {
"name": {
"type": "string",
"predicate": "foaf:name"
}
},
"relationships": {
"organizations": {
"predicate": "muAccount:canActOnBehalfOf",
"target": "organizations",
"cardinality": "many"
}
},
"new-resource-base": "http://data.lblod.info/vendors/"
},
"worship-services": {
"class": "ere:BestuurVanDeEredienst",
"super": ["worship-administrative-units"],
@@ -908,10 +949,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": {

View File

@@ -693,6 +693,10 @@
"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/2004/02/skos/core#prefLabel"
]
},
"mappings": {
@@ -795,6 +799,15 @@
"normalizer": "identifier_normalizer"
}
}
},
"operation_area": {
"type": "keyword",
"fields": {
"field": {
"type": "keyword",
"normalizer": "custom_sort_normalizer"
}
}
}
}
}

View File

@@ -19,6 +19,8 @@ services:
restart: "no"
migrations-triggering-indexing:
restart: "no"
publication-triplestore-migrations:
restart: "no"
resource:
restart: "no"
cache:
@@ -95,6 +97,19 @@ services:
BASE_URL: "http://localhost/ldes/"
kbo-data-sync:
restart: "no"
link-adressenregister-uri:
restart: "no"
error-alert:
environment:
EMAIL_FROM: 'test@example.com'
EMAIL_TO: '123@example.com'
restart: "no"
deliver-email-service:
environment:
EMAIL_CRON_PATTERN: "*/5 * * * *"
WELL_KNOWN_SERVICE: "test"
FROM_NAME: "Your Name"
restart: "no"
# use this to test acmidm
# tlsproxy:
# image: caddy:2

View File

@@ -33,8 +33,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 +46,7 @@ services:
QUERY_MAX_EXECUTION_TIME: "300000"
volumes:
- ./config/authorization:/config
- ./data/authorization:/data
labels:
- "logging=true"
restart: always
@@ -78,10 +80,21 @@ services:
- "logging=true"
restart: always
logging: *default-logging
publication-triplestore-migrations:
image: semtech/mu-migrations-service:0.9.0
links:
- publication-triplestore:database
volumes:
- ./config/publication-triplestore-migrations:/data/migrations
labels:
- "logging=true"
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:
@@ -130,7 +143,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"
@@ -146,7 +159,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"
@@ -196,17 +209,18 @@ services:
links:
- db:database
adressenregister:
image: lblod/adressenregister-fuzzy-search-service:0.8.0
image: lblod/adressenregister-fuzzy-search-service:0.8.2
labels:
- "logging=true"
restart: always
logging: *default-logging
frontend:
image: lblod/frontend-organization-portal:1.35.0
image: lblod/frontend-organization-portal:1.40.4-1
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"
@@ -294,7 +308,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.1.3-1
links:
- db:database
labels:
@@ -334,13 +348,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
@@ -372,6 +394,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:
@@ -379,7 +403,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"
@@ -540,6 +564,27 @@ services:
- triplestore:virtuoso
logging: *default-logging
vendor-management-consumer:
image: lblod/delta-consumer:0.1.1
environment:
DCR_SYNC_BASE_URL: "https://loket.lblod.info/"
DCR_SYNC_LOGIN_ENDPOINT: 'https://loket.lblod.info/sync/vendor-management/login' # Add DCR_SECRET_KEY in docker-compose.override.yml
DCR_SERVICE_NAME: "vendor-management-consumer"
DCR_SYNC_FILES_PATH: "/sync/vendor-management/files"
DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/VendorManagementCacheGraphDump"
DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/initialSync/vendor-management"
DCR_JOB_CREATOR_URI: "http://data.lblod.info/services/id/vendor-management-consumer"
DCR_DISABLE_INITIAL_SYNC: "true"
DCR_KEEP_DELTA_FILES: "true"
DCR_DELTA_FILE_FOLDER: "/consumer-files"
DCR_DELTA_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/VendorManagementFileSyncing"
INGEST_GRAPH: "http://mu.semte.ch/graphs/vendor-management-data"
labels:
- "logging=true"
links:
- db:database
restart: always
logging: *default-logging
################################################################################
# DELTA CONSUMERS: END
################################################################################
@@ -605,6 +650,30 @@ services:
restart: always
logging: *default-logging
error-alert:
image: lblod/loket-error-alert-service:1.0.1
environment:
APP_NAME: 'OP'
volumes:
- ./config/error-alert:/config/
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
deliver-email-service:
image: redpencil/deliver-email-service:1.0.0
environment:
MAILBOX_URI: "http://data.lblod.info/id/mailboxes/1"
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
roles:
image: lblod/select-role-service:0.1.0
labels: