Compare commits
173 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5f9884f4f | ||
|
|
19052da1b0 | ||
|
|
6887ee4451 | ||
|
|
a3e7e43237 | ||
|
|
4f8cc570b4 | ||
|
|
f4cec2cf57 | ||
|
|
22d449fad9 | ||
|
|
ec2482c8ce | ||
|
|
bfc15d7dc4 | ||
|
|
47307103e9 | ||
|
|
c74ced18a9 | ||
|
|
81a2c5bcbc | ||
|
|
71cb867edb | ||
|
|
2810ae60a5 | ||
|
|
b81d1319ed | ||
|
|
ee2830a10f | ||
|
|
c8c33d2c5b | ||
|
|
8753301534 | ||
|
|
d52c5d899e | ||
|
|
8fb620bf7b | ||
|
|
15a372325d | ||
|
|
edcb91433c | ||
|
|
adf006744c | ||
|
|
76a5741996 | ||
|
|
930241fcf3 | ||
|
|
39b6faa310 | ||
|
|
7a6a6ef192 | ||
|
|
504e3d491a | ||
|
|
a75adb7681 | ||
|
|
63a524a0ba | ||
|
|
15e33d39e2 | ||
|
|
ec60003754 | ||
|
|
bb4529cf82 | ||
|
|
9d6a14a81f | ||
|
|
0ba4f16031 | ||
|
|
ba26d24042 | ||
|
|
272f877281 | ||
|
|
8d44366829 | ||
|
|
f821710ea7 | ||
|
|
36484c851b | ||
|
|
7501ce4d4d | ||
|
|
7fc1ea1c29 | ||
|
|
d3751b2352 | ||
|
|
44fe1866ba | ||
|
|
7e84e9092e | ||
|
|
f0d0af671e | ||
|
|
9ed70419aa | ||
|
|
e2a23bb07b | ||
|
|
7adbe9fd4f | ||
|
|
863d7182f9 | ||
|
|
38b7297a3a | ||
|
|
8976b9f5d5 | ||
|
|
9483da5572 | ||
|
|
0a655ddcae | ||
|
|
1b053e26b6 | ||
|
|
7735ee88aa | ||
|
|
6987375abe | ||
|
|
d4d5ceed31 | ||
|
|
d95b331c99 | ||
|
|
bec67cf7eb | ||
|
|
38291891f6 | ||
|
|
a79d080eb4 | ||
|
|
6f53b2e8af | ||
|
|
3d7c704f76 | ||
|
|
ac5492430e | ||
|
|
935e649ef2 | ||
|
|
5dfadf5046 | ||
|
|
6f43ca2848 | ||
|
|
e4d6e1f2a7 | ||
|
|
1d51182bc5 | ||
|
|
008b382ddc | ||
|
|
b9654a33db | ||
|
|
0de3869c4f | ||
|
|
0c37112fd2 | ||
|
|
118eb4c1fa | ||
|
|
5b2a1b1ac6 | ||
|
|
c5a0326ab6 | ||
|
|
2b027a4829 | ||
|
|
9cdd931af3 | ||
|
|
9c3d8d5db2 | ||
|
|
71d6ee5ed4 | ||
|
|
70cff61d79 | ||
|
|
265c25d942 | ||
|
|
0cb5a4729a | ||
|
|
b554787ab0 | ||
|
|
51b35b04f9 | ||
|
|
81c8266bd4 | ||
|
|
e24c6eece6 | ||
|
|
0ad97119df | ||
|
|
d455f47c9f | ||
|
|
7581b12c25 | ||
|
|
48b74c546e | ||
|
|
ce4abe4d27 | ||
|
|
e1bb06ba2c | ||
|
|
0274737c84 | ||
|
|
bfd10583bf | ||
|
|
c63b0659eb | ||
|
|
b8e2bb3186 | ||
|
|
fb75ba1738 | ||
|
|
bd935ce795 | ||
|
|
fe3957382e | ||
|
|
c50d077435 | ||
|
|
5eaae75cc3 | ||
|
|
334adafbba | ||
|
|
2109ff77fc | ||
|
|
3b333f13a6 | ||
|
|
6912cec711 | ||
|
|
efb5760925 | ||
|
|
00ddb35f40 | ||
|
|
227f093ebe | ||
|
|
9daccc7736 | ||
|
|
b25514e580 | ||
|
|
789cbd5703 | ||
|
|
c174bfaa03 | ||
|
|
b2e6c0edd0 | ||
|
|
ba3e33f01b | ||
|
|
e2e64c9b0d | ||
|
|
c3b44447ae | ||
|
|
ce61bf3619 | ||
|
|
2a668d2138 | ||
|
|
aac6e59d2a | ||
|
|
de3bc6b0cd | ||
|
|
dcb053b036 | ||
|
|
d325d1b60d | ||
|
|
d8ded9809a | ||
|
|
f9c5c74c00 | ||
|
|
419c322e5e | ||
|
|
2c28259da4 | ||
|
|
4e145e67ff | ||
|
|
07d4dde49c | ||
|
|
8bf3549cce | ||
|
|
aa1272cf0d | ||
|
|
fce61a1a2c | ||
|
|
54067e925e | ||
|
|
d55ac1ae5a | ||
|
|
bb1044f539 | ||
|
|
f982e63a7e | ||
|
|
b41b7ee81e | ||
|
|
38d1343338 | ||
|
|
c701dfa8a5 | ||
|
|
b3ff36e184 | ||
|
|
fc6239d256 | ||
|
|
ada6e3c781 | ||
|
|
dfcbef269d | ||
|
|
f47847d5fd | ||
|
|
5f36c2880c | ||
|
|
0727ad4674 | ||
|
|
e598e9334c | ||
| fe789ce33f | |||
|
|
d77dcd7ad6 | ||
|
|
dd7f360268 | ||
|
|
cfa006d8e5 | ||
|
|
0c6f8fe115 | ||
|
|
a7d14d42af | ||
|
|
9a0e8bfa4b | ||
|
|
7b3d0d94d1 | ||
|
|
c5cebc7c08 | ||
|
|
a6802e4c9d | ||
|
|
cec0ccca77 | ||
|
|
c27870a274 | ||
|
|
380dd9afaf | ||
|
|
c74e32336c | ||
|
|
0c4df815e9 | ||
|
|
f2d66ba03b | ||
|
|
b1322d1884 | ||
|
|
7f60f302b0 | ||
|
|
0674a8a998 | ||
|
|
10b8b0dd0c | ||
|
|
3b0131f398 | ||
|
|
49ac622757 | ||
|
|
bacf26e75d | ||
|
|
bd62954cae | ||
|
|
11817eac09 |
@@ -1 +0,0 @@
|
||||
COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml
|
||||
233
CHANGELOG.md
233
CHANGELOG.md
@@ -1,4 +1,236 @@
|
||||
# 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]
|
||||
|
||||
### 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.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
|
||||
```
|
||||
|
||||
## 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
|
||||
@@ -7,6 +239,7 @@
|
||||
|
||||
### Deploy notes
|
||||
```
|
||||
# cleanup job
|
||||
drc restart migrations
|
||||
drc exec db-cleanup curl -X GET "http://localhost/runCronJob?cronJobID=8ffd9f11-db25-430d-a66a-31fc8b393d5f"
|
||||
```
|
||||
|
||||
64
README.md
64
README.md
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
369
config/authorization/config.lisp
Normal file
369
config/authorization/config.lisp
Normal 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")
|
||||
@@ -1,5 +0,0 @@
|
||||
defmodule Delta.Config do
|
||||
def targets do
|
||||
[ "http://deltanotifier" ]
|
||||
end
|
||||
end
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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> .
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
###############################################################
|
||||
|
||||
8
config/error-alert/config.json
Normal file
8
config/error-alert/config.json
Normal 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"
|
||||
]
|
||||
}
|
||||
@@ -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": [
|
||||
{
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
http://mu.semte.ch/graphs/administrative-unit
|
||||
6481
config/migrations/2025/20251118155546-ingest-aantal-houders-lmb.ttl
Normal file
6481
config/migrations/2025/20251118155546-ingest-aantal-houders-lmb.ttl
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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 . }
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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.".
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
))
|
||||
}
|
||||
@@ -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>
|
||||
}
|
||||
}
|
||||
@@ -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 .
|
||||
}
|
||||
@@ -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" .
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 .
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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> .
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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>
|
||||
}
|
||||
}
|
||||
@@ -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> .
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
http://mu.semte.ch/graphs/public
|
||||
@@ -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 .
|
||||
@@ -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> .
|
||||
}
|
||||
}
|
||||
@@ -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> .
|
||||
}
|
||||
}
|
||||
@@ -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 .
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
http://mu.semte.ch/graphs/public
|
||||
2031
config/migrations/2026/20260707145350-operation-area-codelist.ttl
Normal file
2031
config/migrations/2026/20260707145350-operation-area-codelist.ttl
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1 @@
|
||||
http://mu.semte.ch/graphs/public
|
||||
@@ -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 .
|
||||
@@ -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> .
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
CLEAR GRAPH <http://redpencil.data.gift/id/deltas/producer/organizations-public-info>
|
||||
187
config/reports/administrative-units-report.js
Normal file
187
config/reports/administrative-units-report.js
Normal 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}\"`;
|
||||
}
|
||||
135
config/reports/change-events-report.js
Normal file
135
config/reports/change-events-report.js
Normal 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}\"`;
|
||||
}
|
||||
@@ -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,
|
||||
];
|
||||
|
||||
108
config/reports/kbo-organizations-report.js
Normal file
108
config/reports/kbo-organizations-report.js
Normal 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}\"`;
|
||||
}
|
||||
147
config/reports/organizations-detail-report.js
Normal file
147
config/reports/organizations-detail-report.js
Normal 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}\"`;
|
||||
}
|
||||
102
config/reports/organizations-in-frontend-report.js
Normal file
102
config/reports/organizations-in-frontend-report.js
Normal 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}\"`;
|
||||
}
|
||||
98
config/reports/organizations-no-address-report.js
Normal file
98
config/reports/organizations-no-address-report.js
Normal 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}\"`;
|
||||
}
|
||||
123
config/reports/organizations-platform-report.js
Normal file
123
config/reports/organizations-platform-report.js
Normal 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}\"`;
|
||||
}
|
||||
@@ -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,
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
137
config/reports/related-organizations-report.js
Normal file
137
config/reports/related-organizations-report.js
Normal 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}\"`;
|
||||
}
|
||||
@@ -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#>
|
||||
`;
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.36.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
|
||||
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
|
||||
@@ -379,7 +401,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 +562,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 +648,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:
|
||||
|
||||
Reference in New Issue
Block a user