Compare commits

..

167 Commits

Author SHA1 Message Date
Laurent Deketelaere
800924db2e chore: Bump frontend to pre-release v1.24.0 2024-06-05 18:24:18 +02:00
Laurent Deketelaere
5bbd9a9d69 chore: Bump frontend to pre-release v1.24.0-4 2024-06-04 12:20:10 +02:00
Laurent Deketelaere
4435c1d544 Merge pull request #430 from lblod/fix/correct-agb-addresses-and-contact-data
Remove faulty address and contact data for AGBs
2024-06-04 12:14:57 +02:00
mirdono
714994bc3c fix: remove faulty contact data for some AGBs
The migrations importing the public OCMW association's contact data contained a
faulty query that matched on empty KBO numbers. As a result contact data was
incorrectly inserted to some AGBs that also do not have a KBO number. This
migration removes the incorrect data.
2024-06-03 16:07:52 +02:00
mirdono
74a0c92b31 fix: remove faulty address data for some AGBs
The migrations importing the public OCMW association's address data contained a
faulty query that matched on empty KBO numbers. As a result address data was
incorrectly inserted to some AGBs that also do not have a KBO number.

This migration removes the incorrect data, which as inserted into the
triplestore next to actual address. Furthermore, this also (re-)inserts the
correct provinces for the affected AGBs.
2024-06-03 14:55:12 +02:00
mirdono
a9e9e761c0 chore: removed faulty queries from migration
Removed incorrect queries that match on empty KBO numbers. This is to avoid the
same incorrect data being imported in case the migration is executed again at
some point.
2024-06-03 13:27:13 +02:00
Laurent Deketelaere
50c03a2205 chore: Bump frontend to pre-release v1.24.0-2 2024-05-24 12:38:14 +02:00
Laurent Deketelaere
2c7fa2d69e Merge pull request #427 from lblod/remove-sync-ovo-number-path
Remove obsolete kbo-data-sync endpoint
2024-05-23 15:37:23 +02:00
Laurent Deketelaere
66c3703f22 refactor: Remove obsolete kbo-data-sync endpoint 2024-05-23 11:28:31 +02:00
Laurent Deketelaere
842e9f7205 chore: Bump frontend to per-release v1.24.0-0 2024-05-16 10:06:09 +02:00
Laurent Deketelaere
c562698edf Merge pull request #422 from lblod/fix/sync-wegwijs-api
Fix kbo-data-sync rewrite all `fullAddress` and override `sameAs`
2024-05-03 09:35:40 +02:00
Laurent Deketelaere
a7708255f9 fix: kbo-data-sync rewrite all fullAddress and override sameAs
- Bump `sync-wegwijs-organization-service` to v2.0.2
- Stop using v0.1.0 when feature flag off on frontend
2024-05-02 22:18:26 +02:00
YJouhar47
697fd814fc add site to representative organs 2024-05-02 10:14:16 +00:00
mirdono
f30fcfda22 fix: remove dangling change event results
The change events related to an organisation contains some data errors:
- There is a change event result without any corresponding change event. This
  causes an error when visiting the change events page for this organisation.
- There are two identical change event results for the same change event. This
  causes the change event to be shown twice in the table. (Only on PROD)

The added migration removes these unnecessary elements change event results.
2024-05-02 07:39:50 +00:00
Laurent Deketelaere
26d5a23a3c Merge pull request #417 from lblod/fix/adminitrative-unit-dump-publisher
Fix prefLabel missing in Kalliope dump after edition
2024-04-29 14:40:43 +02:00
Laurent Deketelaere
e7129dc41d chore: Clear producer organizations graph from main triplestore 2024-04-29 11:08:13 +02:00
Laurent Deketelaere
b5b8df6610 chore: Bump delta-producer-publication-graph-maintainer to v1.1.1-rc.1 2024-04-26 13:22:15 +02:00
Dachamelemon
0616d24ad0 Merge pull request #419 from lblod/fix/change-event-date-update-migration
fix/change-event-date-update-migration
2024-04-26 10:23:20 +02:00
Laurent Deketelaere
94baeb539f chore: Bump delta-producer-publication-graph-maintainer to 1.0.9-rc2 + enable other producers 2024-04-25 16:10:28 +02:00
Elias Papanikitas
007b0a35ee removed references to administrative units 2024-04-25 10:47:35 +02:00
Elias Papanikitas
131ecd4f1e fixed migraition 2024-04-24 14:41:29 +02:00
Oscar Rodriguez Villalobos
c260c5c3df Merge pull request #416 from lblod/feat/consumer-perfomance-improvements
avoid inserting duplicate triples to the database
2024-04-23 15:56:57 +02:00
Laurent Deketelaere
723527fb62 chore: Disable more 2024-04-23 13:08:58 +02:00
Laurent Deketelaere
fc4fcfddf8 chore: Bum delta-producer organizations to v1.0.8 + disabled not need for testing purpose 2024-04-23 13:07:08 +02:00
Oscar
449204a9d1 avoid inserting duplicate triples to the database 2024-04-23 12:51:04 +02:00
mirdono
4252004fc2 Merge branch 'master' into development 2024-04-23 09:36:28 +02:00
Laurent Deketelaere
730f99cf2b Merge pull request #415 from lblod/fix/add-missing-prefix-reasoner
fix: add missing prefix
2024-04-22 19:58:09 +02:00
mirdono
6223301f6f fix: add missing prefix 2024-04-22 17:50:57 +02:00
Oscar Rodriguez Villalobos
09d499fc01 Merge pull request #414 from lblod/bug/fix-shared-graph-edge-case
Fix consumer problem with admin units in shared graph
2024-04-18 14:53:58 +02:00
Oscar Rodriguez Villalobos
6ef0386a2b Add clarifying comment 2024-04-18 09:43:42 +02:00
Oscar Rodriguez Villalobos
4edfd3d08a Fix consumer problem with admin units in shared graph 2024-04-17 13:10:46 +02:00
Dachamelemon
410377d3e5 Merge pull request #410 from lblod/improvement/update-change-event-dates
Improvement/update change event dates
2024-04-17 11:26:21 +02:00
Elias Papanikitas
6305343672 Merge branch 'development' into improvement/update-change-event-dates 2024-04-17 11:24:25 +02:00
Elias Papanikitas
1a0987afeb removed 2 migrations that snuck in by accident 2024-04-17 10:37:02 +02:00
Dachamelemon
30504c9135 Merge pull request #413 from lblod/enhancement/remove-empty-literals
Enhancement/remove empty literals
2024-04-17 10:06:19 +02:00
Alexander van den Berghe
cdf6f8f75f Merge pull request #412 from lblod/fix/correct-representative-body-classification-code-type
Fix: corrected type for representative body classification code to match resources configuration
2024-04-15 14:18:00 +00:00
Elias Papanikitas
976b2b02df Merge branch 'development' into enhancement/remove-empty-literals 2024-04-15 11:53:42 +02:00
Elias Papanikitas
95e737873a removed migration for empty URIs 2024-04-15 11:52:42 +02:00
mirdono
48b5a82fda fix: correct type for classification to match resource configuration 2024-04-15 11:21:02 +02:00
Oscar Rodriguez Villalobos
3b6b6d6b21 Merge pull request #383 from lblod/feat/clb-consumer
Feat/clb consumer
2024-04-12 10:59:37 +02:00
Laurent Deketelaere
4691a18407 Merge pull request #411 from lblod/bump-sync-wegwijs-organization-service
Bump sync-wegwijs-organization-service to v2.0.0
2024-04-11 19:56:06 +02:00
Laurent Deketelaere
43523ec37d chore: Bump sync-wegwijs-organization-service to v2.0.0 2024-04-11 18:11:36 +02:00
mirdono
f4bd10fa46 Merge branch 'master' into development 2024-04-11 17:43:12 +02:00
mirdono
df5d249246 chore: frontend bump 2024-04-11 17:38:07 +02:00
Oscar
9e3f365ee3 fixed bug with object not present in triggering triple 2024-04-11 14:03:48 +02:00
Oscar
41f5b74b8f revert to old version 2024-04-11 14:03:48 +02:00
Oscar
188d7f0e18 Fix bugs (not tested) 2024-04-11 14:03:47 +02:00
Oscar
3052bf8315 fix bug site and primary site was not being added to the correct graph 2024-04-11 14:03:47 +02:00
Oscar
c34ff82125 changed default landing zone graph 2024-04-11 14:03:47 +02:00
Oscar
c483546709 improve readability of the code 2024-04-11 14:03:47 +02:00
Oscar
ce93e787e6 typo cleanup and update consumer 2024-04-11 14:03:47 +02:00
Oscar
c0e802d1f3 Remove unused graph bindings 2024-04-11 14:03:47 +02:00
Oscar
0b1d8f3b12 avoid code between function and documentation 2024-04-11 14:03:47 +02:00
Oscar
1bf7b59905 Delete target graph as it's not used 2024-04-11 14:03:47 +02:00
Oscar
02b0e825f1 bug fixes 2024-04-11 14:03:47 +02:00
Oscar Rodriguez Villalobos
d569d15360 bug fixes 2024-04-11 14:03:47 +02:00
Oscar Rodriguez Villalobos
64044b2ce0 Added first version of the clb consumer 2024-04-11 14:03:47 +02:00
Elias Papanikitas
c0fad917f1 leave out structured identifiers from deletion 2024-04-11 12:38:22 +02:00
Elias Papanikitas
857919804d used regex for filtering empty literals 2024-04-11 10:22:07 +02:00
mirdono
a12293e460 Merge branch 'master' into development 2024-04-10 16:22:59 +02:00
mirdono
0ad11a2289 chore: bump frontend 2024-04-10 16:18:02 +02:00
Elias Papanikitas
ea83f49a0f updated dates for change events 2024-04-10 11:04:24 +02:00
Elias Papanikitas
27f240f25c removed empty literals and uris 2024-04-09 09:49:41 +02:00
mirdono
ed28ca6983 Merge branch 'master' into development 2024-04-08 13:48:59 +02:00
mirdono
6b89b32e99 chore: bump frontend 2024-04-08 13:45:34 +02:00
mirdono
c7650d6379 Merge branch 'master' into development 2024-04-05 16:16:11 +02:00
mirdono
8e090ca872 chore: bump frontend 2024-04-05 16:03:37 +02:00
Oscar Rodriguez Villalobos
2e4c0702a6 Merge pull request #406 from lblod/feat/add-legal-and-alternative-names
Add legal and alternative names to producer
2024-04-04 15:35:30 +02:00
mirdono
53c5bd1275 feat: export legal and alternative names via producers 2024-04-04 13:31:18 +00:00
Oscar Rodriguez Villalobos
675a984cc4 alt label was already present 2024-04-04 14:54:28 +02:00
Laurent Deketelaere
dc842b7c6b Merge branch 'master' into development 2024-04-04 11:59:00 +02:00
Laurent Deketelaere
e507c31a3d Merge pull request #407 from lblod/hotfix/1.23.1-1
Update adressenregister to use basisregisters adressen V2 API
2024-04-04 11:51:39 +02:00
Laurent Deketelaere
a966e25832 fix: Update adressenregister to use basisregisters adressen V2 API 2024-04-04 11:50:08 +02:00
Oscar Rodriguez Villalobos
9367256717 Add legal and alternative names to producer 2024-04-04 10:35:14 +02:00
Laurent Deketelaere
aa6b9c803b Merge pull request #405 from lblod/fix-reset-elastic-permission
Add execute permission on `scripts/reset-elastic.sh`
2024-04-03 15:38:54 +02:00
Laurent Deketelaere
0fd50697f6 chore: Add execute permission 2024-04-03 15:35:19 +02:00
mirdono
a8607f9c1a fix: remove empty alternative names for administrative units 2024-04-03 11:57:46 +00:00
Laurent Deketelaere
e97e0d3477 Merge pull request #391 from lblod/delta-producer-organisations-add-administrative-unit
Add administrative-unit in delta-producer/organisations
2024-04-02 13:47:52 +02:00
Laurent Deketelaere
8326d02d3c feat: Add Location in delta-producer/organisations
related to OP-3128
2024-04-02 10:55:17 +02:00
Laurent Deketelaere
b9911887c2 feat: Add page in organization ContactPoint export 2024-04-02 10:55:17 +02:00
Laurent Deketelaere
8a1c6323c0 Add administrative-unit in delta-producer/organisations 2024-04-02 10:55:17 +02:00
Dachamelemon
bff78b12d6 Merge pull request #375 from lblod/feat/wegwijs-service-integration
Feat/wegwijs service integration
2024-04-02 10:22:36 +02:00
Laurent Deketelaere
ec749c81dd Merge pull request #403 from lblod/hotfix/ws-consumer-tweaks
bump + tweaked ingestion blobs to smaller amounts
2024-04-02 10:16:08 +02:00
mirdono
aa7ce23a85 chore: bumped consumers to latest version 2024-04-02 08:10:18 +00:00
mirdono
0592e10a8c chore: bump mu-search version 2024-04-02 08:08:48 +00:00
felix
c24f56c7cb bump + tweaked ingestion blobs to smaller amounts
to make it more digestable for OP (+ search)
2024-04-02 10:01:10 +02:00
Laurent Deketelaere
69fa0b5d8b chore: Bump frontend to v1.23.0 2024-04-02 09:43:35 +02:00
Laurent Deketelaere
f07c1a561b Merge pull request #402 from lblod/revert-add-recognized-worship-types
Revert "Merge pull request #397 from lblod/fix/add-recognized-worship-types"
2024-04-02 09:24:20 +02:00
Laurent Deketelaere
954f72ef7e Revert "Merge pull request #397 from lblod/fix/add-recognized-worship-types"
This reverts commit 9ed2cfa080, reversing
changes made to 37f071c065.
2024-03-29 16:00:01 +01:00
Laurent Deketelaere
23e7ee7ff2 chore: Bump frontend to v1.23.0-1 2024-03-29 13:59:04 +01:00
Laurent Deketelaere
6e0e3cd8ea Merge pull request #399 from lblod/revert-exclude-clb-data-from-producer
Revert "Merge pull request #387 from lblod/feat/exclude-clb-data-from-producer"
2024-03-28 09:47:35 +01:00
Laurent Deketelaere
6c572992be Revert "Merge pull request #387 from lblod/feat/exclude-clb-data-from-producer"
This reverts commit 25a5adaf5e, reversing
changes made to c6bb94816d.
2024-03-27 16:17:41 +01:00
Elias Papanikitas
402f7ffce3 bumped new vervsion kbo-sync 2024-03-27 10:38:07 +01:00
Laurent Deketelaere
51d7c53970 Merge pull request #384 from lblod/chore/add-migration-template-samples
Chore: Add migration template samples
2024-03-27 09:55:14 +01:00
Laurent Deketelaere
54f1d8932c Add remove-stale-jobs.sparql-template migration 2024-03-27 09:52:28 +01:00
Elias Papanikitas
a169184fca renamed to kboOrganization and linked to organisation 2024-03-26 17:38:42 +01:00
Laurent Deketelaere
6ec4784a53 chore: Bump frontend to v1.23.0-0 2024-03-25 13:25:53 +01:00
mirdono
f5a23bc37b Merge branch 'master' into development 2024-03-22 15:49:32 +01:00
Alexander van den Berghe
4e0ec40f51 Merge pull request #393 from lblod/fix/remove-local-involvement
Fix: remove superfluous local involvement
2024-03-22 13:56:05 +00:00
Alexander van den Berghe
d493c7601a Merge pull request #396 from lblod/chore/add-merge-change-event-pz-aalter-maldegem
Feature: add merge change event pz aalter maldegem
2024-03-22 13:55:37 +00:00
Elias Papanikitas
23199fc896 updated kbo data sync service version 2024-03-22 13:12:22 +01:00
Dachamelemon
125b281eac Merge pull request #355 from lblod/improvement/convert-date-to-datetime
converted-date-to-datetime
2024-03-21 16:41:39 +01:00
Elias Papanikitas
7901485e01 updated to correct woodpecker release 2024-03-21 16:29:56 +01:00
mirdono
19f9d6f4e8 refactor: update backward arrow rule comment 2024-03-21 16:27:57 +01:00
mirdono
8755bbc432 fix/refactor: removed duplicate rule, correct predicate names, improved variable names 2024-03-21 15:35:22 +01:00
Elias Papanikitas
b00983c580 setup for async release 2024-03-21 15:34:41 +01:00
Elias Papanikitas
0b3d1febdf added 2 hours extra to timezone to prevent duplpication 2024-03-21 13:59:38 +01:00
Elias Papanikitas
d42986ff43 added reasoner to private-info 2024-03-21 13:26:52 +01:00
Elias Papanikitas
0e63fcc8b0 applied changed according to merge with development 2024-03-21 11:40:02 +01:00
Elias Papanikitas
6c80037fb5 Merge branch 'development' into feat/wegwijs-service-integration 2024-03-21 10:26:11 +01:00
Dachamelemon
e985662313 Merge pull request #398 from lblod/fix/typo-representative-organ
Fix:typo representative organ
2024-03-20 16:57:26 +01:00
Dachamelemon
9ed2cfa080 Merge pull request #397 from lblod/fix/add-recognized-worship-types
Adding 2 new recognized worship types
2024-03-20 16:57:10 +01:00
Elias Papanikitas
33a7d6eff6 Merge branch 'development' into improvement/convert-date-to-datetime 2024-03-19 16:06:21 +01:00
Elias Papanikitas
7c625b3348 fixed typo boeddistiche to boeddistische 2024-03-19 11:51:07 +01:00
Elias Papanikitas
20bf82a36a added Boeddistisch and Niet-confessioneel to reconized worship type and linked to Representative Organ 2024-03-19 11:48:22 +01:00
mirdono
37f071c065 Merge branch 'master' into development 2024-03-19 10:50:27 +01:00
mirdono
04a749020e feat: change merged PZ's status to not active 2024-03-15 17:31:57 +01:00
mirdono
0d1b610dcf feat: import fusion change event for PZ Aalter and PZ Maldegem 2024-03-15 12:08:46 +01:00
mirdono
7bdc6519a9 feat: import juridical and alternative names for PZ and HVZ 2024-03-14 15:59:20 +00:00
mirdono
84d59bb173 feat: include alternative name in search index 2024-03-14 15:29:59 +00:00
mirdono
6513bfcfd5 feat: allow organisations to have multiple alternative names 2024-03-14 15:29:59 +00:00
Oscar Rodriguez Villalobos
25a5adaf5e Merge pull request #387 from lblod/feat/exclude-clb-data-from-producer
Exclude the data of CLB from the producer
2024-03-14 11:39:47 +01:00
Elias Papanikitas
e80d231f35 fixed taking out Z in reasoner for date time conversion 2024-03-13 18:36:53 +01:00
Elias Papanikitas
7c7c6ffe60 Merge branch 'development' into improvement/convert-date-to-datetime 2024-03-13 16:41:38 +01:00
Elias Papanikitas
fc6f5139c4 added relationships for kbo administrative units 2024-03-13 16:18:51 +01:00
Elias Papanikitas
3f81847c94 updated the altlable for shortname/commercialname 2024-03-13 16:09:14 +01:00
mirdono
5b38e70b61 fix: remove superfluous local involvement 2024-03-13 15:24:45 +01:00
mirdono
c6bb94816d Merge branch 'master' into development 2024-03-06 17:14:58 +01:00
Nordine Bittich
b9e8d72f01 Update dispatcher.ex (#386) 2024-03-06 11:20:08 +01:00
Elias Papanikitas
1b2268fc6a updated configuration to handle new service name 2024-03-04 14:12:48 +01:00
mirdono
4e0a9170d9 refactor: combined different queries in migration into one 2024-03-04 09:20:12 +00:00
mirdono
3cc305982a fix: removed write access to shared graph
This access was required to edit the (legal) name of municipalities and
provinces. This did lead to an issue were data for administrative units was
incorrectly written to both graphs. To avoid this we decided that, at least for
the moment, the name of municipalities and provinces is not editable, removing
the need to be able to write to the shared graph.
2024-03-04 09:20:12 +00:00
mirdono
d10465b73f feat: allow administrator to edit data in shared graph, added error_type 2024-03-04 09:20:12 +00:00
mirdono
36670ebfa4 feat: index legal name for administrative units 2024-03-04 09:20:12 +00:00
mirdono
1289f1d78a refactor: added newline 2024-03-04 09:20:12 +00:00
mirdono
ead102d8c6 feat: Allow editor role to write to shared graph
The shared graph contains, among others, the (legal) names of municipalities and
provinces. So far their names were not modifiable in OP. This change allows
these names to be modified in that graph by the users with the appropriate role.
2024-03-04 09:20:12 +00:00
mirdono
b7279d2640 fix: also copy name to legal name for organisations in the shared graph 2024-03-04 09:20:12 +00:00
mirdono
e70c112f20 feat: Added migration to copy preferred name to new legal name property 2024-03-04 09:20:12 +00:00
mirdono
607844ae33 feat: added attribute for legal name to organisations 2024-03-04 09:20:12 +00:00
Oscar
f518646c06 Exclude the data of CLB from the producer 2024-03-01 14:33:03 +01:00
mirdono
12d3ae6d10 Chore: bump frontend to new pre-release version 2024-03-01 14:13:59 +01:00
Laurent Deketelaere
4dc4bf84fa Add remove-type-in-producer-graph.sparql-template 2024-02-28 12:16:35 +01:00
Laurent Deketelaere
60ba1df934 chore: gitignore migrations/local 2024-02-27 15:27:08 +01:00
Laurent Deketelaere
1fc6a43e9c chore: Add migration samples 2024-02-27 15:21:39 +01:00
mirdono
c5888b8f8d Chore: bump mu-cl-resources to latest version 2024-02-27 12:39:48 +00:00
Elias Papanikitas
a8274a8925 added all kbo fields to backend 2024-02-20 10:38:40 +01:00
Elias Papanikitas
cefdd9aaea fixed domain 2024-02-07 13:50:12 +01:00
Elias Papanikitas
108e29e4a1 Merge branch 'development' into feat/wegwijs-service-integration 2024-02-07 13:13:44 +01:00
Elias Papanikitas
52bb3b8d6b fixed missing } 2024-02-07 13:12:54 +01:00
Elias Papanikitas
24e9659c3d added contacts 2024-02-07 12:52:19 +01:00
Elias Papanikitas
b676c0a743 draft: adding more data to kbo-administrative-unit 2024-02-07 10:45:47 +01:00
Elias Papanikitas
764cfb6f1c added kbo-administrative-unit model 2024-02-06 11:08:40 +01:00
Elias Papanikitas
3bef65188c fixed migration accordingly due to bug in virtuoso 2024-01-18 15:05:33 +01:00
Elias Papanikitas
e414a9e086 replaced orignal backwards arrowrule with new rule 2024-01-18 14:59:14 +01:00
Elias Papanikitas
8b001b93c8 Merge branch 'development' into improvement/convert-date-to-datetime 2024-01-16 10:39:16 +01:00
Elias Papanikitas
97c1929346 re;oved bindingstart and eindedatum from mapping + added conversions to migrations 2024-01-10 14:48:10 +01:00
Elias Papanikitas
a53f0d3f30 fixed copy paste errors... 2024-01-09 11:35:42 +01:00
Elias Papanikitas
76784840a4 removed rule for mandaat because it's already datetime 2024-01-04 16:21:01 +01:00
Elias Papanikitas
6fae30d245 fixed typo 2024-01-02 12:18:16 +01:00
Elias Papanikitas
11105113a9 added backwards arrow rule to reasoner 2023-12-22 10:46:37 +01:00
Claire Lovisa
0e85e069b1 Merge branch 'development' into improvement/convert-date-to-datetime 2023-12-19 12:11:27 +01:00
Elias Papanikitas
e8061f6a0b commit 2023-12-19 11:01:02 +01:00
Elias Papanikitas
65efd72683 Merge branch 'improvement/convert-date-to-datetime' of github.com:lblod/app-organization-portal into improvement/convert-date-to-datetime 2023-12-19 10:58:40 +01:00
Elias Papanikitas
70e79734df removed datetime to date conversions from reasoner 2023-12-19 10:51:10 +01:00
Elias Papanikitas
329e87f0eb converted-date-to-datetime 2023-12-19 10:51:10 +01:00
Elias Papanikitas
663c975725 removed datetime to date conversions from reasoner 2023-12-19 10:50:50 +01:00
Elias Papanikitas
54e381bfad converted-date-to-datetime 2023-12-05 11:58:54 +01:00
51 changed files with 6524 additions and 254 deletions

1
.gitignore vendored
View File

@@ -19,6 +19,7 @@ docker-compose.override.yml
.env
/config/migrations/private-data/*
/config/migrations/local/*
/config/proxy/nginx.htpasswd

View File

@@ -76,7 +76,8 @@ defmodule Acl.UserGroups.Config do
"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://data.lblod.info/vocabularies/contacthub/AgentInPositie",
"http://mu.semte.ch/vocabularies/ext/KboOrganisatie",
]
@shared_protected_type [

View File

@@ -0,0 +1,30 @@
const BATCH_SIZE = parseInt(process.env.BATCH_SIZE) || 1000;
const MU_CALL_SCOPE_ID_INITIAL_SYNC = process.env.MU_CALL_SCOPE_ID_INITIAL_SYNC || 'http://redpencil.data.gift/id/concept/muScope/deltas/consumer/initialSync';
const BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES = process.env.BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES == 'true' ? true : false;
const DIRECT_DATABASE_ENDPOINT = process.env.DIRECT_DATABASE_ENDPOINT || 'http://virtuoso:8890/sparql';
const MAX_DB_RETRY_ATTEMPTS = parseInt(process.env.MAX_DB_RETRY_ATTEMPTS || 5);
const MAX_REASONING_RETRY_ATTEMPTS = parseInt(process.env.MAX_REASONING_RETRY_ATTEMPTS || 5);
const SLEEP_BETWEEN_BATCHES = parseInt(process.env.SLEEP_BETWEEN_BATCHES || 100);
const SLEEP_TIME_AFTER_FAILED_REASONING_OPERATION = parseInt(process.env.SLEEP_TIME_AFTER_FAILED_REASONING_OPERATION || 10000);
const SLEEP_TIME_AFTER_FAILED_DB_OPERATION = parseInt(process.env.SLEEP_TIME_AFTER_FAILED_DB_OPERATION || 60000);
// Graphs
const LANDING_ZONE_GRAPH = process.env.DCR_LANDING_ZONE_GRAPH || `http://mu.semte.ch/graphs/landing-zone/clb-contact-data`;
// ENDPOINTS
const LANDING_ZONE_DATABASE = process.env.DCR_LANDING_ZONE_DATABASE || 'database';
const LANDING_ZONE_DATABASE_ENDPOINT = process.env.DCR_LANDING_ZONE_DATABASE_ENDPOINT || `http://${LANDING_ZONE_DATABASE}:8890/sparql`;
module.exports = {
BATCH_SIZE,
MU_CALL_SCOPE_ID_INITIAL_SYNC,
BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES,
DIRECT_DATABASE_ENDPOINT,
MAX_DB_RETRY_ATTEMPTS,
MAX_REASONING_RETRY_ATTEMPTS,
SLEEP_BETWEEN_BATCHES,
SLEEP_TIME_AFTER_FAILED_DB_OPERATION,
SLEEP_TIME_AFTER_FAILED_REASONING_OPERATION,
LANDING_ZONE_GRAPH,
LANDING_ZONE_DATABASE_ENDPOINT
};

View File

@@ -0,0 +1,268 @@
const PREFIXES = `
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX lblodgeneriek: <https://data.lblod.info/vocabularies/generiek/>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX code: <http://lblod.data.gift/vocabularies/organisatie/>
PREFIX adms: <http://www.w3.org/ns/adms#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX organisatie: <https://data.vlaanderen.be/ns/organisatie#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX euvoc: <http://publications.europa.eu/ontology/euvoc#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX schema: <http://schema.org/>
PREFIX locn: <http://www.w3.org/ns/locn#>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>`
const contextConfig = {
addTypes: {
scope: 'all', // 'inserts, 'deletes', 'all' or none. To add rdf:type to subjects of inserts, deletes or both
exhausitive: false, // true or false: find all types for a subject, even if one is already present in delta
},
contextQueries: [
{
trigger: { // subjectType or predicateValue
subjectType: "org:Site"
},
queryTemplate: (subject) => `
${PREFIXES}
CONSTRUCT {
${subject} ext:goesInGraph ?graphOne.
${subject} ext:goesInGraph ?graphTwo.
${subject} ext:goesInGraph ?graphThree.
${subject} ext:goesInGraph ?graphFour.
} WHERE {
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?adminUnitOne org:hasPrimarySite ${subject}.
}
BIND(<http://mu.semte.ch/graphs/administrative-unit> AS ?graphOne)
}
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?adminUnitTwo org:hasSite ${subject}.
}
BIND(<http://mu.semte.ch/graphs/administrative-unit> AS ?graphTwo)
}
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?adminUnitThree org:hasPrimarySite ${subject}.
}
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?graphThree)
}
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?adminUnitFour org:hasSite ${subject}.
}
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?graphFour)
}
}`
},
{
trigger: { // subjectType or predicateValue
subjectType: "schema:ContactPoint"
},
queryTemplate: (subject) => `
${PREFIXES}
CONSTRUCT {
${subject} ext:goesInGraph ?graphOne.
${subject} ext:goesInGraph ?graphTwo.
} WHERE {
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?siteOne org:siteAddress ${subject}.
}
BIND(<http://mu.semte.ch/graphs/administrative-unit> AS ?graphOne)
}
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?siteTwo org:siteAddress ${subject}.
}
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?graphTwo)
}
}`
},
{
trigger: { // subjectType or predicateValue
subjectType: "locn:Address"
},
queryTemplate: (subject) => `
${PREFIXES}
CONSTRUCT {
${subject} ext:goesInGraph ?graphOne.
${subject} ext:goesInGraph ?graphTwo.
} WHERE {
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?siteOne organisatie:bestaatUit ${subject}.
}
BIND(<http://mu.semte.ch/graphs/administrative-unit> AS ?graphOne)
}
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?siteTwo organisatie:bestaatUit ${subject}.
}
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?graphTwo)
}
}`
},
//Predicate triggers to solve out of order deltas
{
trigger: { // subjectType or predicateValue
predicateValue: "org:hasSite"
},
//We assume that only administrative units are in the shared graph of OP due to the need of sharing the prefLabel with worships services
queryTemplate: (subject) => `
${PREFIXES}
CONSTRUCT {
${subject} ext:goesInGraph ?graphOne.
${subject} ext:goesInGraph ?graphTwo.
?site ?pSite ?oSite.
?contact ?pContact ?oContact.
?address ?pAddress ?oAddress.
?addressContact ?pAddressContact ?oAddressContact.
} WHERE {
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
${subject} a ?type.
}
BIND(<http://mu.semte.ch/graphs/administrative-unit> AS ?graphOne)
}
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/shared> {
${subject} a ?type.
}
BIND(<http://mu.semte.ch/graphs/administrative-unit> AS ?graphOne)
}
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
${subject} a ?type.
}
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?graphTwo)
}
${subject} org:hasSite ?site.
?site ?pSite ?oSite.
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
?contact locn:address ?addressContact.
?addressContact ?pAddressContact ?oAddressContact.
}
UNION
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
}
UNION
{
?site organisatie:bestaatUit ?address.
?address ?pAddress ?oAddress.
}
}`
},
{
trigger: { // subjectType or predicateValue
predicateValue: "org:hasPrimarySite"
},
//We assume that only administrative units are in the shared graph of OP due to the need of sharing the prefLabel with worships services
queryTemplate: (subject) => `
${PREFIXES}
CONSTRUCT {
${subject} ext:goesInGraph ?graphOne.
${subject} ext:goesInGraph ?graphTwo.
?site ?pSite ?oSite.
?contact ?pContact ?oContact.
?address ?pAddress ?oAddress.
?addressContact ?pAddressContact ?oAddressContact.
} WHERE {
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
${subject} a ?type.
}
BIND(<http://mu.semte.ch/graphs/administrative-unit> AS ?graphOne)
}
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/shared> {
${subject} a ?type.
}
BIND(<http://mu.semte.ch/graphs/administrative-unit> AS ?graphOne)
}
OPTIONAL {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
${subject} a ?type.
}
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?graphTwo)
}
${subject} org:hasPrimarySite ?site.
?site ?pSite ?oSite.
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
?contact locn:address ?addressContact.
?addressContact ?pAddressContact ?oAddressContact.
}
UNION
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
}
UNION
{
?site organisatie:bestaatUit ?address.
?address ?pAddress ?oAddress.
}
}`
},
{
trigger: { // subjectType or predicateValue
predicateValue: "org:siteAddress"
},
queryTemplate: (subject) => `
${PREFIXES}
CONSTRUCT {
?contact ?pContact ?oContact.
?addressContact ?pAddressContact ?oAddressContact.
} WHERE {
${subject} org:siteAddress ?contact.
?contact ?pContact ?oContact.
OPTIONAL {
?contact locn:address ?addressContact.
?addressContact ?pAddressContact ?oAddressContact.
}
}`
},
{
trigger: { // subjectType or predicateValue
predicateValue: "locn:address"
},
queryTemplate: (subject) => `
${PREFIXES}
CONSTRUCT {
?addressContact ?pAddressContact ?oAddressContact.
} WHERE {
${subject} locn:address ?addressContact.
?addressContact ?pAddressContact ?oAddressContact.
}`
},
{
trigger: { // subjectType or predicateValue
predicateValue: "organisatie:bestaatUit"
},
queryTemplate: (subject) => `
${PREFIXES}
CONSTRUCT {
?address ?pAddress ?oAddress.
} WHERE {
${subject} organisatie:bestaatUit ?address.
?address ?pAddress ?oAddress.
}`
}
]
}
module.exports = {
contextConfig,
PREFIXES
};

View File

@@ -0,0 +1,104 @@
const {
deleteFromPublicGraph,
insertIntoPublicGraph,
deleteFromSpecificGraphs,
insertIntoSpecificGraphs
} = require('./util');
const {
LANDING_ZONE_GRAPH
} = require('./config')
const publicTypes = [
'<http://lblod.data.gift/vocabularies/organisatie/TypeVestiging>'
]
/**
* Dispatch the fetched information to a target graph.
* Note: <share://file/data> will be ADDED to it's own graph.
* We take only care of adding them, not updating triples, this is a TODO
* @param { mu, muAuthSudo } lib - The provided libraries from the host service.
* @param { termObjectChangeSets: { deletes, inserts } } data - The fetched changes sets, which objects of serialized Terms
* [ {
* graph: "<http://foo>",
* subject: "<http://bar>",
* predicate: "<http://baz>",
* object: "<http://boom>^^<http://datatype>"
* }
* ]
* @return {void} Nothing
*/
async function dispatch(lib, data) {
let { termObjectChangeSets, termObjectChangeSetsWithContext } = data;
// Both arrays are the same length, so we can zip them together for easier processing
zippedChangeSets = termObjectChangeSets.map((o, i) => ({
original: o,
withContext: termObjectChangeSetsWithContext && termObjectChangeSetsWithContext[i]
}));
console.log(`Received ${zippedChangeSets.length} change sets`)
for (let { original, withContext } of zippedChangeSets) {
const {public: insertsOnPublic, target: insertsOnGraphs} = separateBetweenTargetAndPublic(original.inserts, withContext.inserts)
const {public: deletesOnPublic, target: deletesOnGraphs} = separateBetweenTargetAndPublic(original.deletes, withContext.deletes)
await deleteFromPublicGraph(lib, deletesOnPublic);
await deleteFromSpecificGraphs(lib, deletesOnGraphs);
await insertIntoPublicGraph(lib, insertsOnPublic);
await insertIntoSpecificGraphs(lib, insertsOnGraphs);
}
}
function separateBetweenTargetAndPublic(changes, context) {
const changesOnPublic = new Set();
const changesOnGraphs = {};
for(let change of changes) {
const subject = change.subject;
const contextTriples = context.filter((context) => context.subject === subject);
const graphTriple = contextTriples.find(
(context) => context.predicate === '<http://mu.semte.ch/vocabularies/ext/goesInGraph>'
&& context.object !== `<${LANDING_ZONE_GRAPH}>`
)
const otherContextTriples = context.filter(
(context) => context.predicate !== '<http://mu.semte.ch/vocabularies/ext/goesInGraph>'
&& context.predicate !== '<http://mu.semte.ch/vocabularies/ext/contextDataGoesInGraph>'
&& !(context.subject === subject && context.predicate === '<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>')
);
if(graphTriple) {
const graph = graphTriple.object.slice(1,-1); // We have to slice it to remove the "<" and ">"
if(change.object !== '') {
if(!changesOnGraphs[graph]) {
changesOnGraphs[graph] = new Set();
}
changesOnGraphs[graph].add(`${change.subject} ${change.predicate} ${change.object}.`)
}
for(let triple of otherContextTriples) {
if(triple.object === '') continue;
if(!changesOnGraphs[graph]) {
changesOnGraphs[graph] = new Set();
}
changesOnGraphs[graph].add(`${triple.subject} ${triple.predicate} ${triple.object}.`)
}
}
const typeTriple = contextTriples.find(
(context) => context.subject === subject
&& context.predicate === '<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>'
);
if(!typeTriple) continue;
const type = typeTriple.object;
if(publicTypes.includes(type)) {
changesOnPublic.add(`${change.subject} ${change.predicate} ${change.object}.`)
for(let triple of otherContextTriples) {
changesOnPublic.add(`${triple.subject} ${triple.predicate} ${triple.object}.`)
}
}
}
return {public: changesOnPublic, target: changesOnGraphs}
}
module.exports = {
dispatch
};

View File

@@ -0,0 +1,69 @@
const { batchedDbUpdate, moveDataAfterInitialSync } = require('./util');
const {
BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES,
DIRECT_DATABASE_ENDPOINT,
MU_CALL_SCOPE_ID_INITIAL_SYNC,
BATCH_SIZE,
MAX_DB_RETRY_ATTEMPTS,
SLEEP_BETWEEN_BATCHES,
SLEEP_TIME_AFTER_FAILED_DB_OPERATION,
LANDING_ZONE_GRAPH,
} = require('./config');
const endpoint = BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES ? DIRECT_DATABASE_ENDPOINT : process.env.MU_SPARQL_ENDPOINT;
/**
* Dispatch the fetched information to a target graph.
* @param { mu, muAuthSudo } lib - The provided libraries from the host service.
* @param { termObjects } data - The fetched quad information, which objects of serialized Terms
* [ {
* graph: "<http://foo>",
* subject: "<http://bar>",
* predicate: "<http://baz>",
* object: "<http://boom>^^<http://datatype>"
* }
* ]
* @return {void} Nothing
*/
async function dispatch(lib, data) {
const { mu, muAuthSudo } = lib;
const { termObjects } = data;
// Steps:
// 1. Write the triples to the landing zone graph - without any mapping or filtering
// 2. One-time reasoning run with the full landing zone graph and write the results to the target graph (on-finish)
if (BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES) {
console.warn(`Service configured to skip MU_AUTH!`);
}
console.log(`Using ${endpoint} to insert triples`);
if (termObjects.length) {
const originalInsertTriples = termObjects.map(o => `${o.subject} ${o.predicate} ${o.object}.`);
await batchedDbUpdate(
muAuthSudo.updateSudo,
LANDING_ZONE_GRAPH,
originalInsertTriples,
{ 'mu-call-scope-id': MU_CALL_SCOPE_ID_INITIAL_SYNC },
endpoint,
BATCH_SIZE,
MAX_DB_RETRY_ATTEMPTS,
SLEEP_BETWEEN_BATCHES,
SLEEP_TIME_AFTER_FAILED_DB_OPERATION
);
}
}
async function onFinishInitialIngest(lib,data) {
const { muAuthSudo } = lib;
console.log(`!! On-finish triggered !!`);
await moveDataAfterInitialSync(muAuthSudo.updateSudo, endpoint)
}
module.exports = {
dispatch,
onFinishInitialIngest
};

View File

@@ -0,0 +1,337 @@
const {
MAX_DB_RETRY_ATTEMPTS,
SLEEP_BETWEEN_BATCHES,
SLEEP_TIME_AFTER_FAILED_DB_OPERATION,
LANDING_ZONE_GRAPH,
BATCH_SIZE,
} = require('./config');
const prefixes = `
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX lblodgeneriek: <https://data.lblod.info/vocabularies/generiek/>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX code: <http://lblod.data.gift/vocabularies/organisatie/>
PREFIX adms: <http://www.w3.org/ns/adms#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX organisatie: <https://data.vlaanderen.be/ns/organisatie#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX euvoc: <http://publications.europa.eu/ontology/euvoc#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX schema: <http://schema.org/>
PREFIX locn: <http://www.w3.org/ns/locn#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX ext:<http://mu.semte.ch/vocabularies/ext/>
`
async function batchedDbUpdate(
muUpdate,
graph,
triples,
extraHeaders,
endpoint,
batchSize,
maxAttempts,
sleepBetweenBatches = 1000,
sleepTimeOnFail = 1000,
operation = 'INSERT'
) {
for (let i = 0; i < triples.length; i += batchSize) {
console.log(`Inserting triples in batch: ${i}-${i + batchSize}`);
const batch = triples.slice(i, i + batchSize).join('\n');
const insertCall = async () => {
await muUpdate(`
${operation} DATA {
GRAPH <${graph}> {
${batch}
}
}
`, extraHeaders, endpoint);
};
await operationWithRetry(insertCall, 0, maxAttempts, sleepTimeOnFail);
console.log(`Sleeping before next query execution: ${sleepBetweenBatches}`);
await new Promise(r => setTimeout(r, sleepBetweenBatches));
}
}
async function operationWithRetry(callback,
attempt,
maxAttempts,
sleepTimeOnFail) {
try {
if (typeof callback === "function")
return await callback();
else // Catch error from promise - not how I would do it normally, but allows re use of existing code.
return await callback;
}
catch (e) {
console.log(`Operation failed for ${callback.toString()}, attempt: ${attempt} of ${maxAttempts}`);
console.log(`Error: ${e}`);
console.log(`Sleeping ${sleepTimeOnFail} ms`);
if (attempt >= maxAttempts) {
console.log(`Max attempts reached for ${callback.toString()}, giving up`);
throw e;
}
await new Promise(r => setTimeout(r, sleepTimeOnFail));
return operationWithRetry(callback, ++attempt, maxAttempts, sleepTimeOnFail);
}
}
async function insertIntoPublicGraph(lib, statements) {
console.log(`Inserting ${statements.length} statements into public graph`);
await batchedDbUpdate(
lib.muAuthSudo.updateSudo,
'http://mu.semte.ch/graphs/public',
Array.from(statements),
{},
process.env.MU_SPARQL_ENDPOINT,
BATCH_SIZE,
MAX_DB_RETRY_ATTEMPTS,
SLEEP_BETWEEN_BATCHES,
SLEEP_TIME_AFTER_FAILED_DB_OPERATION,
'INSERT');
}
async function insertIntoSpecificGraphs(lib, statementsWithGraphs) {
for( let graph in statementsWithGraphs) {
console.log(`Inserting ${statementsWithGraphs[graph].length} statements into ${graph} graph`);
await batchedDbUpdate(
lib.muAuthSudo.updateSudo,
graph,
Array.from(statementsWithGraphs[graph]),
{},
process.env.MU_SPARQL_ENDPOINT,
BATCH_SIZE,
MAX_DB_RETRY_ATTEMPTS,
SLEEP_BETWEEN_BATCHES,
SLEEP_TIME_AFTER_FAILED_DB_OPERATION,
'INSERT');
}
}
async function deleteFromPublicGraph(lib, statements) {
console.log(`Deleting ${statements.length} statements from public graph`);
await batchedDbUpdate(
lib.muAuthSudo.updateSudo,
'http://mu.semte.ch/graphs/public',
Array.from(statements),
{},
process.env.MU_SPARQL_ENDPOINT,
BATCH_SIZE,
MAX_DB_RETRY_ATTEMPTS,
SLEEP_BETWEEN_BATCHES,
SLEEP_TIME_AFTER_FAILED_DB_OPERATION,
'DELETE');
}
async function deleteFromSpecificGraphs(lib, statementsWithGraphs) {
for( let graph in statementsWithGraphs) {
console.log(`Deleting ${statementsWithGraphs[graph].length} statements from ${graph} graph`);
await batchedDbUpdate(
lib.muAuthSudo.updateSudo,
graph,
Array.from(statementsWithGraphs[graph]),
{},
process.env.MU_SPARQL_ENDPOINT,
BATCH_SIZE,
MAX_DB_RETRY_ATTEMPTS,
SLEEP_BETWEEN_BATCHES,
SLEEP_TIME_AFTER_FAILED_DB_OPERATION,
'DELETE');
}
}
async function moveDataAfterInitialSync(muUpdate, endpoint) {
// Move primary sites admin units
await muUpdate(`
${prefixes}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?adminUnit org:hasPrimarySite ?site.
?site ?pSite ?oSite.
?contact ?pContact ?oContact.
?address ?pAddress ?oAddress.
?addressContact ?pAddressContact ?oAddressContact.
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?adminUnit a ?type.
}
GRAPH <${LANDING_ZONE_GRAPH}> {
?adminUnit org:hasPrimarySite ?site.
?site ?pSite ?oSite.
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
?contact locn:address ?addressContact.
?addressContact ?pAddressContact ?oAddressContact.
}
UNION
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
}
UNION
{
?site organisatie:bestaatUit ?address.
?address ?pAddress ?oAddress.
}
}
}
`, undefined, endpoint)
// Move sites administrative units
await muUpdate(`
${prefixes}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?adminUnit org:hasSite ?site.
?site ?pSite ?oSite.
?contact ?pContact ?oContact.
?address ?pAddress ?oAddress.
?addressContact ?pAddressContact ?oAddressContact.
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?adminUnit a ?type.
}
GRAPH <${LANDING_ZONE_GRAPH}> {
?adminUnit org:hasSite ?site.
?site ?pSite ?oSite.
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
?contact locn:address ?addressContact.
?addressContact ?pAddressContact ?oAddressContact.
}
UNION
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
}
UNION
{
?site organisatie:bestaatUit ?address.
?address ?pAddress ?oAddress.
}
}
}
`, undefined, endpoint)
// Move primary sites worships
await muUpdate(`
${prefixes}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?adminUnit org:hasPrimarySite ?site.
?site ?pSite ?oSite.
?contact ?pContact ?oContact.
?address ?pAddress ?oAddress.
?addressContact ?pAddressContact ?oAddressContact.
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?adminUnit a ?type.
}
GRAPH <${LANDING_ZONE_GRAPH}> {
?adminUnit org:hasPrimarySite ?site.
?site ?pSite ?oSite.
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
?contact locn:address ?addressContact.
?addressContact ?pAddressContact ?oAddressContact.
}
UNION
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
}
UNION
{
?site organisatie:bestaatUit ?address.
?address ?pAddress ?oAddress.
}
}
}
`, undefined, endpoint)
// Move sites worships
await muUpdate(`
${prefixes}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?adminUnit org:hasSite ?site.
?site ?pSite ?oSite.
?contact ?pContact ?oContact.
?address ?pAddress ?oAddress.
?addressContact ?pAddressContact ?oAddressContact.
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?adminUnit a ?type.
}
GRAPH <${LANDING_ZONE_GRAPH}> {
?adminUnit org:hasSite ?site.
?site ?pSite ?oSite.
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
?contact locn:address ?addressContact.
?addressContact ?pAddressContact ?oAddressContact.
}
UNION
{
?site org:siteAddress ?contact.
?contact ?pContact ?oContact.
}
UNION
{
?site organisatie:bestaatUit ?address.
?address ?pAddress ?oAddress.
}
}
}
`, undefined, endpoint)
// Move sites worships
await muUpdate(`
${prefixes}
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?type a <http://lblod.data.gift/vocabularies/organisatie/TypeVestiging>.
?type ?a ?b.
}
} WHERE {
GRAPH <${LANDING_ZONE_GRAPH}> {
?type a <http://lblod.data.gift/vocabularies/organisatie/TypeVestiging>.
?type ?a ?b.
}
}
`, undefined, endpoint)
}
module.exports = {
batchedDbUpdate,
moveDataAfterInitialSync,
insertIntoPublicGraph,
deleteFromPublicGraph,
insertIntoSpecificGraphs,
deleteFromSpecificGraphs,
};

View File

@@ -0,0 +1,12 @@
[
{
"name": "organizations",
"jobsGraph": "http://mu.semte.ch/graphs/jobs",
"dumpFileCreationJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations",
"initialPublicationGraphSyncJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations",
"healingJobOperation": "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations",
"cronPatternDumpJob": "42 * * * *",
"cronPatternHealingJob": "0 0 4 * * *",
"startInitialSync": true
}
]

View File

@@ -3,7 +3,7 @@
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations",
"fileBaseName": "dump-organizations",
"publicationGraphEndpoint": "http://triplestore:8890/sparql",
"publicationGraphEndpoint": "http://publication-triplestore:8890/sparql",
"targetDcatGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
"targetFilesGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
"cleanupOldDumps": true
@@ -12,7 +12,7 @@
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations",
"fileBaseName": "dump-organizations",
"publicationGraphEndpoint": "http://triplestore:8890/sparql",
"publicationGraphEndpoint": "http://publication-triplestore:8890/sparql",
"targetDcatGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
"targetFilesGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
"cleanupOldDumps": true

View File

@@ -1,7 +1,6 @@
{
"conceptScheme": "http://lblod.data.gift/concept-schemes/0d101f02-609d-4cde-bb07-639d874470c4",
"export": [
{
"type": "http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst",
"strictTypeExport": "true",
@@ -13,6 +12,7 @@
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/regorg#orgStatus",
"http://www.w3.org/ns/org#hasPrimarySite",
@@ -40,6 +40,7 @@
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/regorg#orgStatus",
"http://www.w3.org/ns/org#hasPrimarySite",
@@ -72,6 +73,7 @@
"http://www.opengis.net/ont/geosparql#sfWithin",
"http://www.w3.org/2002/07/owl#sameAs",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/org#changedBy",
@@ -98,7 +100,11 @@
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/org#linkedTo",
"http://data.lblod.info/vocabularies/erediensten/typeEredienst",
"http://www.w3.org/ns/adms#identifier"
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/org#hasPrimarySite",
"http://www.w3.org/ns/org#hasSite"
]
},
{
@@ -371,4 +377,4 @@
]
}
]
}
}

View File

@@ -65,6 +65,7 @@
"http://schema.org/email",
"http://schema.org/faxNumber",
"http://schema.org/telephone",
"http://xmlns.com/foaf/0.1/page",
"http://www.w3.org/ns/locn#address"
]
},
@@ -126,6 +127,7 @@
],
"properties": [
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/regorg#orgStatus",
@@ -154,6 +156,7 @@
],
"properties": [
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/regorg#orgStatus",
@@ -170,6 +173,41 @@
"http://data.lblod.info/vocabularies/erediensten/typeEredienst"
]
},
{
"type": "http://data.vlaanderen.be/ns/besluit#Bestuurseenheid",
"strictTypeExport": "true",
"graphsFilter": [
"http://mu.semte.ch/graphs/worship-service",
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/administrative-unit"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur",
"http://data.lblod.info/vocabularies/erediensten/denominatie",
"http://data.lblod.info/vocabularies/erediensten/grensoverschrijdend",
"http://data.lblod.info/vocabularies/erediensten/typeEredienst",
"http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor",
"http://data.vlaanderen.be/ns/besluit#werkingsgebied",
"http://www.opengis.net/ont/geosparql#sfWithin",
"http://www.w3.org/2002/07/owl#sameAs",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/org#changedBy",
"http://www.w3.org/ns/org#classification",
"http://www.w3.org/ns/org#hasPost",
"http://www.w3.org/ns/org#hasPrimarySite",
"http://www.w3.org/ns/org#hasSite",
"http://www.w3.org/ns/org#hasSubOrganization",
"http://www.w3.org/ns/org#linkedTo",
"http://www.w3.org/ns/org#resultedFrom",
"http://www.w3.org/ns/regorg#orgStatus",
"https://data.lblod.info/vocabularies/generiek/geplandeEindDatum",
"http://www.w3.org/ns/org#purpose"
]
},
{
"type": "http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan",
"strictTypeExport": "true",
@@ -179,6 +217,7 @@
],
"properties": [
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/regorg#orgStatus",
@@ -317,6 +356,18 @@
"http://www.w3.org/2004/02/skos/core#prefLabel"
]
},
{
"type": "http://www.w3.org/ns/prov#Location",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared"
],
"properties": [
"http://www.w3.org/2000/01/rdf-schema#label",
"http://www.opengis.net/ont/geosparql#sfWithin",
"http://mu.semte.ch/vocabularies/ext/werkingsgebiedNiveau",
"http://www.w3.org/2004/02/skos/core#exactMatch"
]
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode",
"graphsFilter": [

View File

@@ -15,6 +15,7 @@
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/regorg#orgStatus",
@@ -46,6 +47,7 @@
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/regorg#orgStatus",
@@ -84,6 +86,7 @@
"http://www.w3.org/2002/07/owl#sameAs",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/ns/adms#identifier",
"http://www.w3.org/ns/org#changedBy",
"http://www.w3.org/ns/org#classification",
@@ -105,6 +108,8 @@
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/org#linkedTo",
"http://data.lblod.info/vocabularies/erediensten/typeEredienst",
"http://www.w3.org/ns/adms#identifier"

View File

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

View File

@@ -22,6 +22,7 @@
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/regorg#orgStatus",
"http://data.lblod.info/vocabularies/erediensten/typeEredienst",
@@ -42,6 +43,7 @@
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/regorg#orgStatus",
"http://data.lblod.info/vocabularies/erediensten/typeEredienst",
@@ -61,6 +63,7 @@
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/regorg#orgStatus",
"http://data.lblod.info/vocabularies/erediensten/typeEredienst",
@@ -121,6 +124,7 @@
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel",
"http://www.w3.org/ns/regorg#legalName",
"http://www.w3.org/2004/02/skos/core#altLabel",
"http://www.w3.org/ns/regorg#orgStatus",
"http://www.w3.org/ns/org#hasPrimarySite",

View File

@@ -92,7 +92,7 @@ export default [
match: {
},
callback: {
url: 'http://delta-producer-pub-graph-maintainer-organizations/delta',
url: 'http://delta-producer-publication-graph-maintainer/organizations/delta',
method: 'POST'
},
options: {

View File

@@ -219,6 +219,10 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://cache/decision-activities/"
end
match "/kbo-organizations/*path", %{ accept: [:any], layer: :api} do
Proxy.forward conn, path, "http://resource/kbo-organizations/"
end
###############
# LOGIN
###############
@@ -249,7 +253,6 @@ defmodule Dispatcher do
###############################################################
match "/search/*path", %{ accept: %{ json: true }, layer: :api_services} do
IO.puts("hey")
Proxy.forward conn, path, "http://search/"
end
@@ -309,8 +312,8 @@ defmodule Dispatcher do
forward conn, path, "http://construct-administrative-unit-relationships/create-relationships/"
end
post "/sync-ovo-number/*path", %{ layer: :api_services, accept: %{ json: true } } do
forward conn, path, "http://sync-ovo-numbers/sync-from-kbo/"
post "/kbo-data-sync/*path", %{ layer: :api_services, accept: %{ json: true } } do
forward conn, path, "http://kbo-data-sync/sync-kbo-data/"
end
get "/ldes/*path", %{ layer: :api_services } do
@@ -354,7 +357,7 @@ defmodule Dispatcher do
#################################################################
get "/sync/organizations/files/*path" do
Proxy.forward conn, path, "http://delta-producer-pub-graph-maintainer-organizations/files/"
Proxy.forward conn, path, "http://delta-producer-publication-graph-maintainer/files/"
end
#################################################################

View File

@@ -0,0 +1,15 @@
# Motivation
This folder contains migration files that are typically executed on an as-needed, or ad hoc, basis.
In addition, these files can function as templates or provide inspiration for future migrations.
## Warning
- Please keep in mind, when adding these files to the migrations folder, it's important to rename them according to the conventions established by the migration service
- As the data model or the data location may undergo changes over time, it's imporant to have a clear understanding of the implications when using these files.
## Template files
- `pseudonimyze-data.sparql-template` - the file that contains the sparql for pseudonymizing data in the triplestore. It should run every time the db is "refreshed" with a copy from PROD.
- `remove-stale-jobs.sparql-template` - removing `busy` and `scheduled` jobs.
- `remove-type-in-producer-graph.sparql-template` - the migration to handle the occasional sync issue between OP and Loket.

View File

@@ -0,0 +1,149 @@
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX person: <http://www.w3.org/ns/person#>
PREFIX persoon: <https://data.vlaanderen.be/ns/persoon#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX schema: <http://schema.org/>
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX locn: <http://www.w3.org/ns/locn#>
PREFIX adres: <https://data.vlaanderen.be/ns/adres#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
DELETE {
GRAPH ?g {
?person foaf:familyName ?fn.
?person foaf:givenName ?gn.
?person persoon:gebruikteVoornaam ?gvn.
}
} INSERT {
GRAPH ?g {
?person foaf:givenName ?gn_s.
?person foaf:familyName ?fn_s.
?person persoon:gebruikteVoornaam ?gvn_s.
}
} WHERE {
VALUES ?g { <http://mu.semte.ch/graphs/organisatieportaal> <http://redpencil.data.gift/id/deltas/producer/organizations>}
GRAPH ?g {
BIND("njbyevfeRTE8651B" AS ?salt).
?person a person:Person.
OPTIONAL {
?person foaf:givenName ?gn.
BIND(SHA1(CONCAT(?salt, ?gn)) AS ?gn_s).
}
OPTIONAL {
?person foaf:familyName ?fn.
BIND(SHA1(CONCAT(?salt, ?fn)) AS ?fn_s).
}
OPTIONAL {
?person persoon:gebruikteVoornaam ?gvn.
BIND(SHA1(CONCAT(?salt, ?gvn)) AS ?gvn_s).
}
}
}
;
DELETE {
GRAPH ?h {
?birth persoon:datum ?dob.
?identificator generiek:lokaleIdentificator ?rrn .
?person persoon:heeftNationaliteit ?nationality .
?person persoon:geslacht ?gender .
}
} INSERT {
GRAPH ?h {
?birth persoon:datum "1977-01-01T00:00:00Z"^^xsd:dateTime .
?identificator generiek:lokaleIdentificator "42012205181" .
}
} WHERE {
VALUES ?g { <http://mu.semte.ch/graphs/organisatieportaal> <http://redpencil.data.gift/id/deltas/producer/organizations>}
VALUES ?h { <http://mu.semte.ch/graphs/privacy-centric-graph> }
GRAPH ?g {
?person a person:Person.
}
GRAPH ?h {
OPTIONAL {
?person persoon:heeftGeboorte ?birth .
?birth persoon:datum ?dob.
}
OPTIONAL {
?person persoon:registratie/generiek:gestructureerdeIdentificator ?identificator .
?identificator generiek:lokaleIdentificator ?rrn .
}
OPTIONAL {
?person persoon:geslacht ?gender .
}
OPTIONAL {
?person persoon:heeftNationaliteit ?nationality .
}
}
}
;
DELETE {
GRAPH ?g {
?cp schema:telephone ?phone.
?cp schema:email ?mail.
?address locn:fullAddress ?fa.
?address adres:Adresvoorstelling.huisnummer ?huisnr.
?address adres:Adresvoorstelling.busnummer ?busnr.
?address locn:thoroughfare ?street.
?address locn:postCode ?postCode.
?address adres:gemeentenaam ?gemeente.
}
} INSERT {
GRAPH ?g {
?cp schema:telephone ?phone_s.
?cp schema:email ?mail_s.
?address locn:fullAddress ?fa_s.
?address adres:Adresvoorstelling.huisnummer ?huisnr_s.
?address adres:Adresvoorstelling.busnummer ?busnr_s.
?address locn:thoroughfare ?street_s.
?address locn:postCode ?postCode_s.
?address adres:gemeentenaam ?gemeente_s.
}
} WHERE {
VALUES ?g { <http://mu.semte.ch/graphs/organisatieportaal> <http://redpencil.data.gift/id/deltas/producer/organizations>}
GRAPH ?g {
BIND("njbyevfeRTE8651B" AS ?salt).
?cp a <http://schema.org/ContactPoint> .
OPTIONAL {
?cp schema:telephone ?phone.
BIND(SHA1(CONCAT(?salt, ?phone)) AS ?phone_s).
}
OPTIONAL {
?cp schema:email ?mail.
BIND(CONCAT(SHA1(CONCAT(?salt, ?mail)), "@email.com") AS ?mail_s).
}
OPTIONAL {
?cp locn:address ?address.
OPTIONAL {
?address locn:fullAddress ?fa.
BIND(SHA1(CONCAT(?salt, ?fa)) AS ?fa_s).
}
OPTIONAL {
?address adres:Adresvoorstelling.huisnummer ?huisnr.
BIND(SHA1(CONCAT(?salt, ?huisnr)) AS ?huisnr_s).
}
OPTIONAL {
?address adres:Adresvoorstelling.busnummer ?busnr.
BIND(SHA1(CONCAT(?salt, ?busnr)) AS ?busnr_s).
}
OPTIONAL {
?address locn:thoroughfare ?street.
BIND(SHA1(CONCAT(?salt, ?street)) AS ?street_s).
}
OPTIONAL {
?address locn:postCode ?postCode.
BIND(SHA1(CONCAT(?salt, ?postCode)) AS ?postCode_s).
}
OPTIONAL {
?address adres:gemeentenaam ?gemeente.
BIND(SHA1(CONCAT(?salt, ?gemeente)) AS ?gemeente_s).
}
}
}
}

View File

@@ -0,0 +1,25 @@
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX task: <http://redpencil.data.gift/vocabularies/tasks/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX oslc: <http://open-services.net/ns/core#>
PREFIX cogs: <http://vocab.deri.ie/cogs#>
PREFIX adms: <http://www.w3.org/ns/adms#>
DELETE {
GRAPH ?g {
?jobUri a <http://vocab.deri.ie/cogs#Job>.
?jobUri adms:status ?status.
?jobUri ?p ?o
}
}
WHERE {
GRAPH ?g {
?jobUri a <http://vocab.deri.ie/cogs#Job>.
?jobUri adms:status ?status.
?jobUri ?p ?o
FILTER(?status IN (<http://redpencil.data.gift/id/concept/JobStatus/busy>, <http://redpencil.data.gift/id/concept/JobStatus/scheduled>))
}
}

View File

@@ -0,0 +1,9 @@
DELETE WHERE {
GRAPH <http://redpencil.data.gift/id/deltas/producer/public> {
<http://data.lblod.info/id/besturenVanDeEredienst/4ea0cc455e37195c10acf457a8902ffb> a ?firsttype.
<http://data.lblod.info/id/besturenVanDeEredienst/66ce16dcb455dc95588c05916736d511> a ?secondtype.
<http://data.lblod.info/id/besturenVanDeEredienst/69dca6d7c6bf9d6073771788358c74e5> a ?thirdtype.
<http://data.lblod.info/id/besturenVanDeEredienst/c9ce0539d719b63b60598148b084a7e8> a ?fourthtype.
<http://data.lblod.info/id/besturenVanDeEredienst/560d86a055eddb83fd60e0ea3043a708> a ?fifthtype.
}
}

View File

@@ -0,0 +1,151 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
DELETE {
GRAPH ?g {
?s mandaat:start ?o .
}
}
INSERT {
GRAPH ?g {
?s mandaat:start ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s mandaat:start ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(IF(strlen(str(?o)) = 10, strdt(concat(str(?o), 'T02:00:00'), xsd:dateTime), ?o) as ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s mandaat:einde ?o .
}
}
INSERT {
GRAPH ?g {
?s mandaat:einde ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s mandaat:einde ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(IF(strlen(str(?o)) = 10, strdt(concat(str(?o), 'T02:00:00'), xsd:dateTime), ?o) as ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s mandaat:bindingStart ?o .
}
}
INSERT {
GRAPH ?g {
?s mandaat:bindingStart ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s mandaat:bindingStart ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(IF(strlen(str(?o)) = 10, strdt(concat(str(?o), 'T02:00:00'), xsd:dateTime), ?o) as ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s mandaat:bindingEinde ?o .
}
}
INSERT {
GRAPH ?g {
?s mandaat:bindingEinde ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s mandaat:bindingEinde ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(IF(strlen(str(?o)) = 10, strdt(concat(str(?o), 'T02:00:00'), xsd:dateTime), ?o) as ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s ch:startdatum ?o .
}
}
INSERT {
GRAPH ?g {
?s ch:startdatum ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s ch:startdatum ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(IF(strlen(str(?o)) = 10, strdt(concat(str(?o), 'T02:00:00'), xsd:dateTime), ?o) as ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s ch:eindedatum ?o .
}
}
INSERT {
GRAPH ?g {
?s ch:eindedatum ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s ch:eindedatum ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(IF(strlen(str(?o)) = 10, strdt(concat(str(?o), 'T02:00:00'), xsd:dateTime), ?o) as ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s ere:geplandeEinddatumAanstelling ?o .
}
}
INSERT {
GRAPH ?g {
?s ere:geplandeEinddatumAanstelling ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s ere:geplandeEinddatumAanstelling ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(IF(strlen(str(?o)) = 10, strdt(concat(str(?o), 'T02:00:00'), xsd:dateTime), ?o) as ?converteddate).
}
;

View File

@@ -2127,34 +2127,6 @@
}
INSERT {
GRAPH ?g {
?addressUri
<https://data.vlaanderen.be/ns/adres#Adresvoorstelling.huisnummer> "15";
<http://www.w3.org/ns/locn#postCode> "8710";
<http://www.w3.org/ns/locn#adminUnitL2> "Wielsbeke";
<http://www.w3.org/ns/locn#thoroughfare> "Hernieuwenstraat";
<https://data.vlaanderen.be/ns/adres#gemeentenaam> "Wielsbeke";
<https://data.vlaanderen.be/ns/adres#land> "België";
<http://www.w3.org/ns/locn#fullAddress> "Hernieuwenstraat 15, 8710 Wielsbeke, België".
}
}
WHERE {
GRAPH ?g {
?adminUnit <http://www.w3.org/ns/adms#identifier> ?id ;
<http://www.w3.org/ns/org#hasPrimarySite> ?site .
?id <http://www.w3.org/2004/02/skos/core#notation> "KBO nummer" ;
<https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator>/<https://data.vlaanderen.be/ns/generiek#lokaleIdentificator> "" .
?site <https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?boundAddress .
BIND( ?boundAddress AS ?addressUri )
}
}
INSERT {
GRAPH ?g {
?addressUri

View File

@@ -1554,31 +1554,3 @@
?contact <http://schema.org/contactType> "Primary" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?contact <http://schema.org/telephone> "tel:+3256674504" .
?contact <http://xmlns.com/foaf/0.1/page> "https://www.wielsbeke.be/producten/woonzorgcentrum-ter-lembeek" .
?contact <http://schema.org/email> "ouderenhuisvesting@wielsbeke.be" .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?adminUnit <http://www.w3.org/ns/adms#identifier> ?id ;
<http://www.w3.org/ns/org#hasPrimarySite> ?primarySite .
?id <http://www.w3.org/2004/02/skos/core#notation> "KBO nummer" ;
<https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator>/<https://data.vlaanderen.be/ns/generiek#lokaleIdentificator> "" .
?primarySite <http://www.w3.org/ns/org#siteAddress> ?contact .
?contact <http://schema.org/contactType> "Primary" .
}
}

View File

@@ -0,0 +1,20 @@
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
INSERT {
GRAPH ?g {
?org regorg:legalName ?legalName .
}
} WHERE {
GRAPH ?g {
?org a org:Organization ;
skos:prefLabel ?name .
}
VALUES ?g {
<http://mu.semte.ch/graphs/administrative-unit>
<http://mu.semte.ch/graphs/shared>
<http://mu.semte.ch/graphs/worship-service>
}
BIND(?name AS ?legalName)
}

View File

@@ -0,0 +1,17 @@
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel ?name .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s org:classification ?class ;
skos:altLabel ?name .
}
VALUES ?class {
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/ea446861-2c51-45fa-afd3-4e4a37b71562> # HVZ
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/a3922c6d-425b-474f-9a02-ffb71a436bfc> # PZ
}
}

View File

@@ -0,0 +1,583 @@
PREFIX core: <http://mu.semte.ch/vocabularies/core/>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5408 AMOW" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "90688b32e0808b6ebbb7b36030526750236527e8019414449065f57ea384ce71" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5462 ARRO IEPER" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "195d911f1417b20a4b715b1a54e8ae6e92b9a23cde908f2fb03a0081910d8fce" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5359 BoDuKaP" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "f4838c2bb548a35f92a6ddcf725676b9f137f3fcb11e6737caa7cab1f1314e27" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5399 BRT" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "81083789b63917e32ab90ef1a45adf893f370ee38da2e0542e5c035db4f60794" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5426 Brakel" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "b7af3483cb5d0021c6f5864a433b211fce30246ef685621d104b1951915c21c4" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5909 CARMA" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "e7692f99-9a36-43e3-af78-b320390318dc" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5396 Demerdal-DSZ" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "41e3bb71cb1fe2763a64ce47ee758fbeb532fbd4348281f34a86a5f88dd71980" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5402 Druivenstreek" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "b5aee7f43fc9c5d0df74e2cbb9214c03c425cf026b1fd77dd1e3b08e5fc7f875" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5458 Gavers" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "479036ca47b011e16fefafbe4d3512a44c564804dc26d331ce4dcbe0fa3366d2" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5910 Getevallei" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "81334af3-1b6f-4308-aca3-107121462d56" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5350 GRENS" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "4ffd00c0ba7ceab20db24832a4b9963112ed66914dcca05f3e5dc8b8b9d4479d" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5455 Grensleie" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "e39d8bf95a03ade08ef25a79ebc050abfc81a69731f1de66fe6d031d27135aac" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5372 HANO" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "77801115dec7f63400134c21d897a41bddb775eb438d81b354ad18fb6d7ab956" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5349 HEKLA" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "bb9a9db9c00189c27a851f0b772772675cba77e2463ab734477d00e4294db5df" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5389 Hageland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "39e0e2e69be463a4628f87bffe7dc6206aa6daa4a5516fb4ce11907f57d77079" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5362 Heist" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "52bda330e11552b586106748bf652e5dd41163670d5c4226b2c02bfa2f579946" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5393 HerKo" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "b6fb86dcca01c89d6787801c958d6b8551f3755ec6f1c35bb97c0cf37b9ddc2c" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5447 Het Houtsche" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "2ca642d589b8012fe65bf54df3a87f740acac78624a902ad378dc4ee6c50a848" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5409 K - L - M" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "c7778ecc532ee037ab821de348f7c6d98ed5b2401abce2e7da64687290c08962" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5412 KASTZE" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "7ddda00fc45a0994092bc26f30d97352b7586676438d5557b3f5cc336daab063" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5379 PZ Kanton Borgloon" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "150440a8bb763d6f53d24ca1c6f1460cb5817c8a261fd90e74aadac3292c3efe" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5367 Kempen N-O" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "306340a51c1504e59f1c3b85c1ba1b62de8c70cb94d3998f27819761bcee5a98" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5377 Kempenland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "ee07affaf869f10517967da1ba7e79151646a1f3621b3cbca591cec2b8c549b7" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5452 Kouter" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "a32dc005ecbc001abd3338cdacb111895d3053b313654136ef1903035c10a53c" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5853 LaMA" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "1db0e6fb09e60db1e8534b20c69abb03584870612717a454937717be9b7fd019" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5907 Limburg Regio Hoofdstad" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "ff7d80dc-ec00-43ac-ac7e-d51694df37ff" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5454 MIDOW" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "fa52110c7c3e70feab724980e2d991a97712a1deeeb25b168ef6de7b16de41ae" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5351 Minos" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "80a9ab8eb46716ab23c597d13313ce24b17884ffcbdf00d216b877d57a52ade4" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5457 Mira" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "7b6bbae823b20191525038cd52089d22128163fb3c7f851ce56149938628d941" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5383 Maasland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "97028faf77fd95eb5016a13c19f3a3a8ccf97c6c937398ba96976e52d171dbd8" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5417 Meetjesland Centrum" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "d8d1b52a9170168ad481f2495652e1b9753aea23385f79710abd86549f1373fa" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5888 MidLim" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "3efb7cb7fad9f61917093d42513c8a7153120906e9701b08e3560c8f109e64c1" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5369 Neteland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "97a393c64a3c30e619bc115ab8b2bbe0bd7a83265ebb8960c0f1154b9628d340" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5348 Noord" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "0594a740b99274c7347f3492ae4d05f9b05d057a1cbad30683634296e189cc38" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5363 PZ Noorderkempen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "b2fdc615ffb131e53a200e14c74ac92d4ed6dac176e3e6ea2c79d227835077c9" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5405 Pajottenland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "7cb2089a8c6746d514711908abfd38414a2b01f6ad9a83f28be2e835888b3da7" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5460 Polder" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "95871bddebd4ad93db54cb1b40d41af29f7ce08f0b59698b0540be129a9a3433" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5453 RIHO" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "5ba4a42bd459dda75ce452a253ddc09547174265456ad1e3f9389a3ff139a1f9" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5416 Regio Puyenbroeck" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "9cb5a65d9190da4bb96d0f59882cbcfb34248d354e6bd27101fccba186f4c7b7" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5418 Regio Rhode & Schelde" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "93389f5157ceb037c5e38d7b8119cef632528b870e91e209c033bc2eac220cc1" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5448 Regio Tielt" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "39e3e46f7cf031133152e763eaa26cab3df81f842f9912a25c69c445f0c428b8" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5364 Regio Turnhout" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "a31131dd72b614c89184b331821c10a0f8feb109881a1b164749e9c8941c5e6b" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5913 Rivierenland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "81dd243d-f66c-4157-b105-5407aa83cb62" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5403 Politiezone Rode" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "a691d36ff95b67005d30d5fb89594dab69ec7fdbf975ffdcd36ef9bb39efb06d" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5347 Politiezone Rupel" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "46616861cfaae13b550a36ae5c05187638df0873024f13043d3f40f24cabf4e6" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5419 Schelde-Leie" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "c16d166294750ae2c48acae9855a49cd3280a3597c0d8f3257021c68fdede345" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5459 Spoorkin" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "a62fddadcb0a8fb878c3edbdc71a4eb1e6c419b212d41a8bd589fb1a370eb112" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5407 TARL" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "0610b306e95fae751dc07050565e987f31ba06420863bc44616b2e05452d8822" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5456 VLAS" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "477e468496131b7d35f145b0361bca5c2cad577fd9ec27d385d703942dc944d0" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5425 Vlaamse Ardennen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "4deae42b2b25bff407f5abc7cbb6d62eb02afaf2892086341c324fdf2c0e6e92" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5908 Voer en Dijle" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "cdcd4403-d4cd-4400-80a3-9882d79933f4" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5355 Voorkempen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "5dab8a7b0656aaf0db13044fcafc0088f9f0b7776c294a6e9abfdbf7420effae" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5401 Wokra" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "beff71011cde3ac0ee0d94b592462be141cc9f0deb5c6ea996ea191bf79ae2fe" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5904 Waasland-Noord" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "541c1603eb8c01968f95d1f262854134499e00d135cd7c9147d307ccbd1e20fd" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5461 Westkust" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "68ad1301fbb5f209b4ef0fe2b11e77c7bea6011f5e28f8f6875597a7b08f0f1e" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5354 ZARA" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "805a977a29725d94f50bf7f0d91a0de1a727c4eec88940e90035f71c6c9b1655" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5905 Zennevallei" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "e4f4aa293734f92302439270cf98805e4b617088cb19144b558db2dff087d886" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "5365 Zuiderkempen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "dbfedd56289924d8a7cc26a5aada392281547e053a10c0678238fc08a219fb6e" .
}
}

View File

@@ -0,0 +1,303 @@
PREFIX core: <http://mu.semte.ch/vocabularies/core/>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweer Westhoek" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "c74e71fb4ccf2e143731873471a890b87076a9b1dcc470b937b339d7c191fce4" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweer Zone Antwerpen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "c8d171d9735146131fcb9e2ad7f4e271585b0bf68f7a43d8873b6848576d13a1" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweer Zone Centrum" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "4bb83a0635b69132a4de91667c0a30f228720bda01584b3a01c4cf7ddfc12664" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweer zone Kempen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "215d1409dda860a1ce4f39f1f6c082c5662620d9d29de456f4242fb6cc6df0b5" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweerzone Midwest" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "b312420a9e4331da36afd70237db5061825cacadcdaa68e6ad0f1ea8a9426f77" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweerzone Oost-Limburg" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "7800a6f5e9c3f646e274b280703730ed5e83fe0cba1f0d6c7fb18141337fe781" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweer Zone Rand" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "2d25be1712e809bbeed7d439c93bace752e0742f6b2ed9802302dec9a8906e2a" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone West" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "b3e202bf5ab9d30f1928f7a1ea8911c60da595819774702eb1745e83c25cf106" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone Fluvia" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "9d0e3fc23f4fb9c23cbcc30474a1e518c9725c069255090d46eb58c13d62baef" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone Meetjesland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "0e951dd15341d38413bf809f16ef5f1bd163092001ac04ce78a4de5b5e9cdd37" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone Noord-Limburg" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "505e727b7b078c3eb9a05f754d834fca559d28cb3cdb02d5e4cdb3be300ea699" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweerzone Oost" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "db299add14cc24e7a99ce4eb51015f32925690fb9816962e500f3341842ef6fa" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone Oost" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "9fdf19f0cfc9e12bd58fc10c4da6e8c6c40e813ec5b9f3bdde92cb00ecd972fe" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweerzone Rivierenland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "98967d1e1e3dd66ac9e32bd1d536ee8e85c9126cc5fc04354a335d5aabcf9b01" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone Taxandria" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "c1fcc0a6c6132cb34dff9ed6e6f361d1587c211ac8ec1ddef409510bf68b724b" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Brandweerzone Vlaamse Ardennen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "bfc36f138e0c7d11757eb321d034cfbffce281679eae93c2bc5df1048aa05789" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone Waasland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "e8bd746e2dc3c5a72fe4fb3da0c92803b0728150bdd66e860d6218bc83098941" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone 1" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "2c1fc56876479e83c7b144e98b84174dd10087ae59621204b9d6701d968e8aba" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone Zuid-Oost" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "db5adb1e2e7ad0e33725b83edda44f9b4638e328a1534a1b4eef2683d337975a" ;
regorg:legalName ?oldName .
}
}
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName ?oldName .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:legalName "Hulpverleningszone Zuidwest" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "a3b32431cfbb18905e2c7deeaf9ef7af35cd17c55d053a05ed9cd8fdec550724" ;
regorg:legalName ?oldName .
}
}

View File

@@ -0,0 +1,203 @@
PREFIX core: <http://mu.semte.ch/vocabularies/core/>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Brandweer Westhoek" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "c74e71fb4ccf2e143731873471a890b87076a9b1dcc470b937b339d7c191fce4" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Brandweer Zone Antwerpen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "c8d171d9735146131fcb9e2ad7f4e271585b0bf68f7a43d8873b6848576d13a1" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Brandweer Zone Centrum" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "4bb83a0635b69132a4de91667c0a30f228720bda01584b3a01c4cf7ddfc12664" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Brandweer Zone Kempen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "215d1409dda860a1ce4f39f1f6c082c5662620d9d29de456f4242fb6cc6df0b5" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Brandweer Zone Midwest" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "b312420a9e4331da36afd70237db5061825cacadcdaa68e6ad0f1ea8a9426f77" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Brandweer Zone Oost-Limburg" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "7800a6f5e9c3f646e274b280703730ed5e83fe0cba1f0d6c7fb18141337fe781" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Brandweer Zone Rand" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "2d25be1712e809bbeed7d439c93bace752e0742f6b2ed9802302dec9a8906e2a" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Brandweer Zone Vlaams-Brabant West" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "b3e202bf5ab9d30f1928f7a1ea8911c60da595819774702eb1745e83c25cf106" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Fluvia" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "9d0e3fc23f4fb9c23cbcc30474a1e518c9725c069255090d46eb58c13d62baef" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Meetjesland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "0e951dd15341d38413bf809f16ef5f1bd163092001ac04ce78a4de5b5e9cdd37" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Noord-Limburg" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "505e727b7b078c3eb9a05f754d834fca559d28cb3cdb02d5e4cdb3be300ea699" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Oost" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "db299add14cc24e7a99ce4eb51015f32925690fb9816962e500f3341842ef6fa" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Oost-Vlaams-Brabant" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "9fdf19f0cfc9e12bd58fc10c4da6e8c6c40e813ec5b9f3bdde92cb00ecd972fe" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Rivierenland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "98967d1e1e3dd66ac9e32bd1d536ee8e85c9126cc5fc04354a335d5aabcf9b01" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Taxandria" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "c1fcc0a6c6132cb34dff9ed6e6f361d1587c211ac8ec1ddef409510bf68b724b" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Vlaamse Ardennen" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "bfc36f138e0c7d11757eb321d034cfbffce281679eae93c2bc5df1048aa05789" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Waasland" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "e8bd746e2dc3c5a72fe4fb3da0c92803b0728150bdd66e860d6218bc83098941" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Zone 1" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "2c1fc56876479e83c7b144e98b84174dd10087ae59621204b9d6701d968e8aba" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Zuid-Oost" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "db5adb1e2e7ad0e33725b83edda44f9b4638e328a1534a1b4eef2683d337975a" .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel "HVZ Zuid-West-Limburg" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s core:uuid "a3b32431cfbb18905e2c7deeaf9ef7af35cd17c55d053a05ed9cd8fdec550724" .
}
}

View File

@@ -0,0 +1,18 @@
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX core: <http://mu.semte.ch/vocabularies/core/>
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?localInvolvement ?p1 ?o .
?s ?p2 ?localInvolvement .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?service core:uuid "d36c339e23c9d4382b882d00e2ad9235" .
?localInvolvement org:organization ?service ;
core:uuid "b76a291065c633ada0391f5e99661210" .
?localInvolvement ?p1 ?o .
?s ?p2 ?localInvolvement .
}
}

View File

@@ -0,0 +1,73 @@
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX lblodOrg: <http://lblod.data.gift/vocabularies/organisatie/>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
# Add fusion change event
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?changeEvent a org:ChangeEvent ;
mu:uuid ?uuidChangeEvent ;
ch:typeWijziging <http://lblod.data.gift/concepts/fa80032794c841ecac73ff874f856db1> ; # Fusie
org:resultingOrganization ?resultingOrganisation ;
dct:date "2024-01-01"^^xsd:date ;
dct:description "Fusie tussen PZ Aalter en PZ Maldegem resulteert in PZ Aalter/Maldegem" ;
org:originalOrganization ?originalAalter ;
org:originalOrganization ?originalMaldegem ;
lblodOrg:veranderingsgebeurtenisResultaat ?changeEventFirstNotActiveResult ;
lblodOrg:veranderingsgebeurtenisResultaat ?changeEventSecondNotActiveResult ;
lblodOrg:veranderingsgebeurtenisResultaat ?changeEventActiveResult .
?changeEventFirstNotActiveResult a lblodOrg:VeranderingsgebeurtenisResultaat ;
mu:uuid ?uuidChangeEventFirstNotActiveResult ;
lblodOrg:resulterendeStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> ; # not active
ext:resultingOrganization ?originalAalter .
?changeEventSecondNotActiveResult a lblodOrg:VeranderingsgebeurtenisResultaat ;
mu:uuid ?uuidChangeEventSecondNotActiveResult ;
lblodOrg:resulterendeStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> ; # not active
ext:resultingOrganization ?originalMaldegem .
?changeEventActiveResult a lblodOrg:VeranderingsgebeurtenisResultaat ;
mu:uuid ?uuidChangeEventActiveResult ;
lblodOrg:resulterendeStatus <http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> ; # active
ext:resultingOrganization ?resultingOrganisation .
}
} WHERE {
VALUES (?originalAalter ?originalMaldegem ?resultingOrganisation) {
(<http://data.lblod.info/id/bestuurseenheden/e06ce64825e386178b350aa6b2fa869c70ad39aa99ddb3ca2a73d6b103e91161>
<http://data.lblod.info/id/bestuurseenheden/3b7a6d691943806c23f59d22482dea27e451bd440f91f884aeb42e8c72016ee3>
<http://data.lblod.info/id/bestuurseenheden/65EB0324E77A4F2289F6B63D>)
}
BIND(SHA256(CONCAT(STR(?originalAalter), STR(?originalMaldegem), STR(?resultingOrganization))) AS ?uuidChangeEvent) .
BIND(IRI(CONCAT("http://data.lblod.info/id/veranderingsgebeurtenissen/", STR(?uuidChangeEvent))) AS ?changeEvent) .
BIND(SHA256(CONCAT(STR(?originalAalter), "fusieChangeEventFirstNotActiveResult")) AS ?uuidChangeEventFirstNotActiveResult) .
BIND(IRI(CONCAT("http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/", STR(?uuidChangeEventFirstNotActiveResult))) AS ?changeEventFirstNotActiveResult) .
BIND(SHA256(CONCAT(STR(?originalMaldegem), "fusieChangeEventSecondNotActiveResult")) AS ?uuidChangeEventSecondNotActiveResult) .
BIND(IRI(CONCAT("http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/", STR(?uuidChangeEventSecondNotActiveResult))) AS ?changeEventSecondNotActiveResult) .
BIND(SHA256(CONCAT(STR(?originalAalter), STR(?originalMaldegem), STR(?resultingOrganization), "fusieChangeEventActiveResult")) AS ?uuidChangeEventActiveResult) .
BIND(IRI(CONCAT("http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/", STR(?uuidChangeEventActiveResult))) AS ?changeEventActiveResult) .
}
;
# Set merged PZs to not active
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:orgStatus <http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6> # Active
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s regorg:orgStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> # Not active
}
} WHERE {
VALUES ?s {
<http://data.lblod.info/id/bestuurseenheden/e06ce64825e386178b350aa6b2fa869c70ad39aa99ddb3ca2a73d6b103e91161> # PZ Aalter
<http://data.lblod.info/id/bestuurseenheden/3b7a6d691943806c23f59d22482dea27e451bd440f91f884aeb42e8c72016ee3> #PZ Maldegem
}
}

View File

@@ -0,0 +1,26 @@
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX core: <http://mu.semte.ch/vocabularies/core/>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
DELETE{
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s skos:prefLabel ?name ;
regorg:legalName ?legalName .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s skos:prefLabel "Boeddhistische Unie van België" ;
regorg:legalName "Boeddhistische Unie van België" .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s a ere:RepresentatiefOrgaan ;
core:uuid "5871503aa86b44cd470f97228a2ce413" ;
skos:prefLabel ?name ;
regorg:legalName ?legalName .
}
}

View File

@@ -0,0 +1,20 @@
DELETE {
GRAPH ?g {
?s ?p ?o .
}
}
WHERE {
VALUES ?g {
<http://mu.semte.ch/graphs/administrative-unit>
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/public>
<http://mu.semte.ch/graphs/privacy-centric-graph>
<http://mu.semte.ch/graphs/worship-privacy-centric-graph>
}
graph ?g {
?s ?p ?o
FILTER (isLiteral(?o))
FILTER regex(str(?o), "^\\s*$")
}
}

View File

@@ -0,0 +1,14 @@
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s skos:altLabel ?alt .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s a besluit:Bestuurseenheid ;
skos:altLabel ?alt .
FILTER (strLen(?alt) = 0)
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
DELETE {
GRAPH <http://mu.semte.ch/graphs/public> {
?s a ext:RepresentatieveOrgaanClassificatieCode .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?s a ext:RepresentatiefOrgaanClassificatieCode .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/public> {
?s a ext:RepresentatieveOrgaanClassificatieCode .
}
}

View File

@@ -0,0 +1,3 @@
# The producer organizations graph is now in the publication-triplestore
# Lets remove it from the main triplestore
CLEAR GRAPH <http://redpencil.data.gift/id/deltas/producer/organizations>

View File

@@ -0,0 +1,35 @@
# The change events related to organisation <http://data.lblod.info/id/besturenVanDeEredienst/a8d9f1a45c11c6761306bdf680349593>
# contains some data errors:
# - There is a change event result without any corresponding change event. This
# causes an error when visiting the change events page for this organisation.
# - There are two identical change event results for the same change event. This
# causes the change event to be shown twice in the table. (Only on PROD)
#
# Note: may require restarting the cache before the changes are noticeable.
PREFIX code: <http://lblod.data.gift/vocabularies/organisatie/>
# Remove the dangling change event result
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
<http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/6346C0C38DE5818A7C9F40D8> ?p ?o .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
<http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/6346C0C38DE5818A7C9F40D8> ?p ?o .
}
}
# Remove one of the duplicate change event results for the change event
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/veranderingsgebeurtenissen/63C512F34E1F899807CFFB75> code:veranderingsgebeurtenisResultaat <http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/63C512F74E1F899807CFFB77> .
<http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/63C512F74E1F899807CFFB77> ?p ?o .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/veranderingsgebeurtenissen/63C512F34E1F899807CFFB75> code:veranderingsgebeurtenisResultaat <http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/63C512F74E1F899807CFFB77> .
<http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/63C512F74E1F899807CFFB77> ?p ?o .
}
}

View File

@@ -0,0 +1,35 @@
PREFIX adres: <https://data.vlaanderen.be/ns/adres#>
PREFIX locn: <http://www.w3.org/ns/locn#>
# Remove incorrect address triples
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?address adres:Adresvoorstelling.huisnummer "15" ;
locn:postCode "8710" ;
locn:adminUnitL2 "West-Vlaanderen" ;
locn:thoroughfare "Hernieuwenstraat" ;
locn:fullAddress "Hernieuwenstraat 15, 8710 Wielsbeke, België" ;
adres:gemeentenaam "Wielsbeke" .
}
} WHERE {
VALUES ?address {
<http://data.lblod.info/id/adressen/5ab4e6f7-d793-4262-81b6-b84f867c18ae> # AGB LEUVEN (Parkeerbedrijf)
<http://data.lblod.info/id/adressen/76a69cd2-f447-4372-8dd5-79c917d0040d> # AGB MECHELEN (Exploitatie)
<http://data.lblod.info/id/adressen/af5d342d-0b4c-46fb-bee3-ce46dee74d1f> # AGB MECHELEN (Patrimonium)
<http://data.lblod.info/id/adressen/63c85a14-4ee4-4299-b0c1-b3a907ff1ebf> # AGB Renov'O
<http://data.lblod.info/id/adressen/df102cb4-8abb-4588-a199-1ce22c211812> # AGB STEKENE
<http://data.lblod.info/id/adressen/6cff33b8-6aff-436c-aa34-e9d32d446934> # Vrijetijdsbedrijf Knokke-Heist AG
}
}
# Insert the correct the provinces
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
<http://data.lblod.info/id/adressen/5ab4e6f7-d793-4262-81b6-b84f867c18ae> locn:adminUnitL2 "Vlaams-Brabant" . # AGB LEUVEN (Parkeerbedrijf)
<http://data.lblod.info/id/adressen/76a69cd2-f447-4372-8dd5-79c917d0040d> locn:adminUnitL2 "Antwerpen" . # AGB MECHELEN (Exploitatie)
<http://data.lblod.info/id/adressen/af5d342d-0b4c-46fb-bee3-ce46dee74d1f> locn:adminUnitL2 "Antwerpen" . # AGB MECHELEN (Patrimonium)
<http://data.lblod.info/id/adressen/63c85a14-4ee4-4299-b0c1-b3a907ff1ebf> locn:adminUnitL2 "West-Vlaanderen" . # AGB Renov'O (located in Oostende)
<http://data.lblod.info/id/adressen/df102cb4-8abb-4588-a199-1ce22c211812> locn:adminUnitL2 "Oost-Vlaanderen" . # AGB STEKENE
<http://data.lblod.info/id/adressen/6cff33b8-6aff-436c-aa34-e9d32d446934> locn:adminUnitL2 "West-Vlaanderen" . # Vrijetijdsbedrijf Knokke-Heist AG
}
}

View File

@@ -0,0 +1,19 @@
PREFIX schema: <http://schema.org/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?contactPoint schema:telephone "tel:+3256674504" ;
foaf:page "https://www.wielsbeke.be/producten/woonzorgcentrum-ter-lembeek" ;
schema:email "ouderenhuisvesting@wielsbeke.be" .
}
} WHERE {
VALUES ?contactPoint {
<http://data.lblod.info/id/contact-punten/f5df2649-afba-4cbb-8e97-b3a46e0f5c88> # AGB LEUVEN (Parkeerbedrijf)
<http://data.lblod.info/id/contact-punten/58aa2df7-2c48-4dc8-ba60-da72748bcff1> # AGB MECHELEN (Exploitatie)
<http://data.lblod.info/id/contact-punten/0a3a1313-511d-41a9-a1f3-32f41f2e613c> # AGB MECHELEN (Patrimonium)
<http://data.lblod.info/id/contact-punten/82e65e70-2c3b-4e3c-8f39-ce6f05ec42ea> # AGB Renov'O
<http://data.lblod.info/id/contact-punten/364d8e1a-cb18-4970-aeaf-5f6f307370ad> # AGB STEKENE
<http://data.lblod.info/id/contact-punten/0d680616-e2a3-41af-bfeb-c76992552c5c> # Vrijetijdsbedrijf Knokke-Heist AG
}
}

View File

View File

@@ -0,0 +1,3 @@
# Motivation
This folder is designed to contain migration files specific to a specific deployed instance of the app. These files will be ignored by git. The typical use case for this folder includes migrations containing sensitive data or those related to a re-sync of consumers. Migrations that should be applied to all instances of the app should be stored outside of this folder, but within the 'migrations' folder.

View File

@@ -67,54 +67,113 @@ PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
?s persoon:gebruikteVoornaam ?o
}.
# Test
# ex:s <http://data.vlaanderen.be/ns/mandaat#start> "2019-01-01T19:32:52+00:00"^^xsd:dateTime.
{
?s mandaat:start ?startDateTime.
# use backward arrow rule defined below
?startDateTime :dateFromDateTime ?startDate.
{
?s mandaat:start ?startDateTime
} e:becomes {
?s mandaat:start ?startDate
}.
} => {
?s mandaat:start ?startDate
}.
# Test
# ex:s <http://data.vlaanderen.be/ns/mandaat#einde> "2019-02-01T10:32:52+00:00"^^xsd:dateTime.
{
?s mandaat:einde ?eindeDateTime.
?s mandaat:bindingEinde ?eindeDate.
# use backward arrow rule defined below
?eindeDateTime :dateFromDateTime ?eindeDate.
?eindeDate :dateTimeFromDate ?eindeDateTime.
{
?s mandaat:einde ?eindeDateTime
?s mandaat:bindingEinde ?eindeDate
} e:becomes {
?s mandaat:einde ?eindeDate
?s mandaat:bindingEinde ?eindeDateTime
}.
} => {
?s mandaat:einde ?eindeDate
?s mandaat:bindingEinde ?eindeDateTime
}.
{
?s mandaat:bindingStart ?startDate.
# use backward arrow rule defined below
?startDate :dateTimeFromDate ?startDateTime.
{
?s mandaat:bindingStart ?startDate
} e:becomes {
?s mandaat:bindingStart ?startDateTime
}.
} => {
?s mandaat:bindingStart ?startDateTime
}.
{
?s ch:startdatum ?startDate.
# use backward arrow rule defined below
?startDate :dateTimeFromDate ?startDateTime.
{
?s ch:startdatum ?startDate
} e:becomes {
?s ch:startdatum ?startDateTime
}.
} => {
?s ch:startdatum ?startDateTime
}.
{
?s mandaat:start ?startDate.
# use backward arrow rule defined below
?startDate :dateTimeFromDate ?startDateTime.
{
?s mandaat:start ?startDate
} e:becomes {
?s mandaat:start ?startDateTime
}.
} => {
?s mandaat:start ?startDateTime
}.
{
?s mandaat:einde ?eindeDate.
# use backward arrow rule defined below
?eindeDate :dateTimeFromDate ?eindeDateTime.
{
?s mandaat:einde ?eindeDate
} e:becomes {
?s mandaat:einde ?eindeDateTime
}.
} => {
?s mandaat:einde ?eindeDateTime
}.
{
?s ch:eindedatum ?endDate.
# use backward arrow rule defined below
?endDate :dateTimeFromDate ?endDateTime.
{
?s ch:eindedatum ?endDate
} e:becomes {
?s ch:eindedatum ?endDateTime
}.
} => {
?s ch:eindedatum ?endDateTime
}.
{
?s ere:geplandeEinddatumAanstelling ?endDate.
# use backward arrow rule defined below
?endDate :dateTimeFromDate ?endDateTime.
{
?s ere:geplandeEinddatumAanstelling ?endDate
} e:becomes {
?s ere:geplandeEinddatumAanstelling ?endDateTime
}.
} => {
?s ere:geplandeEinddatumAanstelling ?endDateTime
}.
# Backward arrow rule is like a function call.
# Removes time info in the returned date
# The user in DL selects a date via the UI.
# These dates are persisted as midnight dateTimes in UTC.
# Meaning that 1st of July is stored as
# "2022-06-30T22:00:00Z"^^xsd:dateTime
# and 1 December
# "2022-11-30T23:00:00Z"^^xsd:dateTime
# So, the following rule adds 2 hours to the datetime, and then takes the date part of the UTC date time
# to come to the date that the DL user selected (in CE(S)T)
# Removes the timezone indicator "Z" from incoming datetimes
# To make sure all datetimes have the same convention we now save them as
# datetime without the timezone indicator
# We use "T02:00:00" as time indicator to work around a virtuoso bug that
# results in datetimes being converted to a date when using "T00:00:00"
{
?dateTime :dateFromDateTime ?date
} <= {
(?dateTimeLiteral xsd:dateTime) log:dtlit ?dateTime.
(?dateTime "PT2H"^^xsd:dayTimeDuration) func:add-dayTimeDuration-to-dateTime ?localDateTime.
(?localDateTimeLiteral xsd:dateTime) log:dtlit ?localDateTime.
(?localDateTimeLiteral 0 11) func:substring ?dateLiteral.
(?dateLiteral xsd:date) log:dtlit ?date.
?date :dateTimeFromDate ?dateTime
}
<=
{
( ?date 1 10 ) string:substring ?dateSolo .
(?dateSolo "T02:00:00") string:concatenation ?datePlusTime.
(?datePlusTime xsd:dateTime) log:dtlit ?dateTime .
}.

View File

@@ -67,81 +67,102 @@ PREFIX lblodlg: <http://data.lblod.info/vocabularies/leidinggevenden/>
}.
# Test
# ex:s <http://data.vlaanderen.be/ns/mandaat#start> "2019-01-01T19:32:52+00:00"^^xsd:dateTime.
{
?s mandaat:start ?startDateTime.
# use backward arrow rule defined below
?startDateTime :dateFromDateTime ?startDate.
{
?s mandaat:start ?startDateTime
} e:becomes {
?s mandaat:start ?startDate
}.
} => {
?s mandaat:start ?startDate
}.
# ex:s <http://data.vlaanderen.be/ns/mandaat#einde> "2019-02-01T10:32:52+00:00"^^xsd:dateTime.
{
?s mandaat:einde ?eindeDateTime.
?s mandaat:bindingEinde ?eindeDate.
# use backward arrow rule defined below
?eindeDateTime :dateFromDateTime ?eindeDate.
?eindeDate :dateTimeFromDate ?eindeDateTime.
{
?s mandaat:einde ?eindeDateTime
?s mandaat:bindingEinde ?eindeDate
} e:becomes {
?s mandaat:bindingEinde ?eindeDateTime
}.
} => {
?s mandaat:bindingEinde ?eindeDateTime
}.
{
?s mandaat:start ?startDate.
# use backward arrow rule defined below
?startDate :dateTimeFromDate ?startDateTime.
{
?s mandaat:start ?startDate
} e:becomes {
?s mandaat:start ?startDateTime
}.
} => {
?s mandaat:start ?startDateTime
}.
{
?s mandaat:einde ?eindeDate.
# use backward arrow rule defined below
?eindeDate :dateTimeFromDate ?eindeDateTime.
{
?s mandaat:einde ?eindeDate
} e:becomes {
?s mandaat:einde ?eindeDateTime
}.
} => {
?s mandaat:einde ?eindeDate
?s mandaat:einde ?eindeDateTime
}.
{
?s mandaat:bindingStart ?bindingStartDateTime.
?s mandaat:bindingStart ?startDate.
# use backward arrow rule defined below
?bindingStartDateTime :dateFromDateTime ?bindingStartDate.
?startDate :dateTimeFromDate ?startDateTime.
{
?s mandaat:bindingStart ?bindingStartDateTime
?s mandaat:bindingStart ?startDate
} e:becomes {
?s mandaat:bindingStart ?bindingStartDate
?s mandaat:bindingStart ?startDateTime
}.
} => {
?s mandaat:bindingStart ?bindingStartDate
?s mandaat:bindingStart ?startDateTime
}.
{
?s mandaat:bindingEinde ?bindingEindeDateTime.
?s ch:startdatum ?startDate.
# use backward arrow rule defined below
?bindingEindeDateTime :dateFromDateTime ?bindingEindeDate.
?startDate :dateTimeFromDate ?startDateTime.
{
?s mandaat:bindingEinde ?bindingEindeDateTime
?s ch:startdatum ?startDate
} e:becomes {
?s mandaat:bindingEinde ?bindingEindeDate
?s ch:startdatum ?startDateTime
}.
} => {
?s mandaat:bindingEinde ?bindingEindeDate
?s ch:startdatum ?startDateTime
}.
{
?s ch:eindedatum ?endDate.
# use backward arrow rule defined below
?endDate :dateTimeFromDate ?endDateTime.
{
?s ch:eindedatum ?endDate
} e:becomes {
?s ch:eindedatum ?endDateTime
}.
} => {
?s ch:eindedatum ?endDateTime
}.
# Backward arrow rule is like a function call.
# Removes time info in the returned date
# The user in DL selects a date via the UI.
# These dates are persisted as midnight dateTimes in UTC.
# Meaning that 1st of July is stored as
# "2022-06-30T22:00:00Z"^^xsd:dateTime
# and 1 December
# "2022-11-30T23:00:00Z"^^xsd:dateTime
# So, the following rule adds 2 hours to the datetime, and then takes the date part of the UTC date time
# to come to the date that the DL user selected (in CE(S)T)
# Removes the timezone indicator "Z" from incoming datetimes
# To make sure all datetimes have the same convention we now save them as
# datetime without the timezone indicator
# We use "T02:00:00" as time indicator to work around a virtuoso bug that
# results in datetimes being converted to a date when using "T00:00:00"
{
?dateTime :dateFromDateTime ?date
} <= {
(?dateTimeLiteral xsd:dateTime) log:dtlit ?dateTime.
(?dateTime "PT2H"^^xsd:dayTimeDuration) func:add-dayTimeDuration-to-dateTime ?localDateTime.
(?localDateTimeLiteral xsd:dateTime) log:dtlit ?localDateTime.
(?localDateTimeLiteral 0 11) func:substring ?dateLiteral.
(?dateLiteral xsd:date) log:dtlit ?date.
?date :dateTimeFromDate ?dateTime
}
<=
{
( ?date 1 10 ) string:substring ?dateSolo .
(?dateSolo "T02:00:00") string:concatenation ?datePlusTime.
(?datePlusTime xsd:dateTime) log:dtlit ?dateTime .
}.
# ex:orgA besluit:classificatie <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000002>.
{
{

View File

@@ -17,6 +17,7 @@ PREFIX persoon_loket: <http://data.vlaanderen.be/ns/persoon#>
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX string: <http://www.w3.org/2000/10/swap/string#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
# DL and OP both use persoon:gebruikteVoornaam but with different semantics (!)
@@ -66,54 +67,99 @@ PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
# Test
# ex:s <http://data.vlaanderen.be/ns/mandaat#start> "2019-01-01T19:32:52+00:00"^^xsd:dateTime.
{
?s mandaat:start ?startDateTime.
?s mandaat:bindingStart ?startDate.
# use backward arrow rule defined below
?startDateTime :dateFromDateTime ?startDate.
?startDate :dateTimeFromDate ?startDateTime.
{
?s mandaat:start ?startDateTime
?s mandaat:bindingStart ?startDate
} e:becomes {
?s mandaat:start ?startDate
?s mandaat:bindingStart ?startDateTime
}.
} => {
?s mandaat:start ?startDate
?s mandaat:bindingStart ?startDateTime
}.
# ex:s <http://data.vlaanderen.be/ns/mandaat#einde> "2019-02-01T10:32:52+00:00"^^xsd:dateTime.
{
?s mandaat:einde ?eindeDateTime.
?s mandaat:bindingEinde ?eindeDate.
# use backward arrow rule defined below
?eindeDateTime :dateFromDateTime ?eindeDate.
?eindeDate :dateTimeFromDate ?eindeDateTime.
{
?s mandaat:einde ?eindeDateTime
?s mandaat:bindingEinde ?eindeDate
} e:becomes {
?s mandaat:einde ?eindeDate
?s mandaat:bindingEinde ?eindeDateTime
}.
} => {
?s mandaat:einde ?eindeDate
?s mandaat:bindingEinde ?eindeDateTime
}.
{
?s mandaat:start ?startDate.
# use backward arrow rule defined below
?startDate :dateTimeFromDate ?startDateTime.
{
?s mandaat:start ?startDate
} e:becomes {
?s mandaat:start ?startDateTime
}.
} => {
?s mandaat:start ?startDateTime
}.
{
?s mandaat:einde ?eindeDate.
# use backward arrow rule defined below
?eindeDate :dateTimeFromDate ?eindeDateTime.
{
?s mandaat:einde ?eindeDate
} e:becomes {
?s mandaat:einde ?eindeDateTime
}.
} => {
?s mandaat:einde ?eindeDateTime
}.
{
?s ch:startdatum ?startDate.
# use backward arrow rule defined below
?startDate :dateTimeFromDate ?startDateTime.
{
?s ch:startdatum ?startDate
} e:becomes {
?s ch:startdatum ?startDateTime
}.
} => {
?s ch:startdatum ?startDateTime
}.
{
?s ch:eindedatum ?endDate.
# use backward arrow rule defined below
?endDate :dateTimeFromDate ?endDateTime.
{
?s ch:eindedatum ?endDate
} e:becomes {
?s ch:eindedatum ?endDateTime
}.
} => {
?s ch:eindedatum ?endDateTime
}.
# Backward arrow rule is like a function call.
# Removes time info in the returned date
# The user in DL selects a date via the UI.
# These dates are persisted as midnight dateTimes in UTC.
# Meaning that 1st of July is stored as
# "2022-06-30T22:00:00Z"^^xsd:dateTime
# and 1 December
# "2022-11-30T23:00:00Z"^^xsd:dateTime
# So, the following rule adds 2 hours to the datetime, and then takes the date part of the UTC date time
# to come to the date that the DL user selected (in CE(S)T)
# Removes the timezone indicator "Z" from incoming datetimes
# To make sure all datetimes have the same convention we now save them as
# datetime without the timezone indicator
# We use "T02:00:00" as time indicator to work around a virtuoso bug that
# results in datetimes being converted to a date when using "T00:00:00"
{
?dateTime :dateFromDateTime ?date
} <= {
(?dateTimeLiteral xsd:dateTime) log:dtlit ?dateTime.
(?dateTime "PT2H"^^xsd:dayTimeDuration) func:add-dayTimeDuration-to-dateTime ?localDateTime.
(?localDateTimeLiteral xsd:dateTime) log:dtlit ?localDateTime.
(?localDateTimeLiteral 0 11) func:substring ?dateLiteral.
(?dateLiteral xsd:date) log:dtlit ?date.
?date :dateTimeFromDate ?dateTime
}
<=
{
( ?date 1 10 ) string:substring ?dateSolo .
(?dateSolo "T02:00:00") string:concatenation ?datePlusTime.
(?datePlusTime xsd:dateTime) log:dtlit ?dateTime .
}.
# ex:orgA besluit:classificatie <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000002>.
{
{

View File

@@ -50,7 +50,9 @@
},
"people": {
"class": "person:Person",
"super": ["agents"],
"super": [
"agents"
],
"attributes": {
"given-name": {
"type": "string",
@@ -89,14 +91,16 @@
},
"agents-in-position": {
"class": "ch:AgentInPositie",
"super": ["agents"],
"super": [
"agents"
],
"attributes": {
"agent-start-date": {
"type": "date",
"type": "datetime",
"predicate": "ch:startdatum"
},
"agent-end-date": {
"type": "date",
"type": "datetime",
"predicate": "ch:eindedatum"
}
},
@@ -137,14 +141,16 @@
},
"mandatories": {
"class": "mandaat:Mandataris",
"super": ["agents-in-position"],
"super": [
"agents-in-position"
],
"attributes": {
"start-date": {
"type": "date",
"type": "datetime",
"predicate": "mandaat:start"
},
"end-date": {
"type": "date",
"type": "datetime",
"predicate": "mandaat:einde"
}
},
@@ -180,15 +186,19 @@
"predicate": "skos:prefLabel"
}
},
"features": ["include-uri"],
"features": [
"include-uri"
],
"new-resource-base": "http://data.vlaanderen.be/id/concept/MandatarisStatusCode/"
},
"worship-mandatories": {
"class": "ere:EredienstMandataris",
"super": ["mandatories"],
"super": [
"mandatories"
],
"attributes": {
"expected-end-date": {
"type": "date",
"type": "datetime",
"predicate": "ere:geplandeEinddatumAanstelling"
},
"reason-stopped": {
@@ -250,7 +260,9 @@
},
"mandates": {
"class": "mandaat:Mandaat",
"super": ["posts"],
"super": [
"posts"
],
"relationships": {
"role-board": {
"predicate": "org:role",
@@ -274,7 +286,9 @@
},
"functionaries": {
"class": "lblodlg:Functionaris",
"super": ["agents-in-position"],
"super": [
"agents-in-position"
],
"attributes": {
"start-date": {
"type": "datetime",
@@ -312,12 +326,16 @@
"predicate": "skos:prefLabel"
}
},
"features": ["include-uri"],
"features": [
"include-uri"
],
"new-resource-base": "http://data.vlaanderen.be/id/concept/functionarisStatusCode/"
},
"board-positions": {
"class": "lblodlg:Bestuursfunctie",
"super": ["posts"],
"super": [
"posts"
],
"relationships": {
"role-board": {
"predicate": "org:role",
@@ -367,16 +385,22 @@
},
"organizations": {
"class": "org:Organization",
"super": ["agents"],
"super": [
"agents"
],
"attributes": {
"name": {
"type": "string",
"predicate": "skos:prefLabel"
},
"alternative-name": {
"type": "string",
"type": "string-set",
"predicate": "skos:altLabel"
},
"legal-name": {
"type": "string",
"predicate": "regorg:legalName"
},
"expected-end-date": {
"type": "date",
"predicate": "lblodgeneriek:geplandeEindDatum"
@@ -483,13 +507,21 @@
"target": "organizations",
"cardinality": "many",
"inverse": true
},
"kbo-organization": {
"predicate": "owl:sameAs",
"target": "kbo-organizations",
"cardinality": "one",
"inverse": true
}
},
"new-resource-base": "http://data.lblod.info/id/organisaties/"
},
"administrative-units": {
"class": "besluit:Bestuurseenheid",
"super": ["organizations"],
"super": [
"organizations"
],
"relationships": {
"classification": {
"predicate": "org:classification",
@@ -537,12 +569,16 @@
},
"administrative-unit-classification-codes": {
"class": "code:BestuurseenheidClassificatieCode",
"super": ["organization-classification-codes"],
"super": [
"organization-classification-codes"
],
"new-resource-base": "http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/"
},
"worship-administrative-units": {
"class": "ere:EredienstBestuurseenheid",
"super": ["administrative-units"],
"super": [
"administrative-units"
],
"relationships": {
"recognized-worship-type": {
"predicate": "ere:typeEredienst",
@@ -565,7 +601,9 @@
},
"worship-services": {
"class": "ere:BestuurVanDeEredienst",
"super": ["worship-administrative-units"],
"super": [
"worship-administrative-units"
],
"attributes": {
"denomination": {
"type": "string",
@@ -590,12 +628,44 @@
},
"central-worship-services": {
"class": "ere:CentraalBestuurVanDeEredienst",
"super": ["worship-administrative-units"],
"super": [
"worship-administrative-units"
],
"new-resource-base": "http://data.lblod.info/id/centraleBesturenVanDeEredienst/"
},
"kbo-organizations": {
"class": "ext:KboOrganisatie",
"super": [
"organizations"
],
"attributes": {
"rechtsvorm": {
"type": "string",
"predicate": "ext:rechtsvorm"
},
"start-date": {
"type": "date",
"predicate": "ext:startDate"
},
"modified": {
"type": "date",
"predicate": "dc_terms:modified"
}
},
"relationships": {
"organization": {
"predicate": "owl:sameAs",
"target": "organizations",
"cardinality": "one"
}
},
"new-resource-base": "http://data.lblod.info/id/kboOrganisaties/"
},
"representative-bodies": {
"class": "ere:RepresentatiefOrgaan",
"super": ["organizations"],
"super": [
"organizations"
],
"relationships": {
"classification": {
"predicate": "org:classification",
@@ -618,7 +688,9 @@
},
"representative-body-classification-codes": {
"class": "ext:RepresentatiefOrgaanClassificatieCode",
"super": ["organization-classification-codes"],
"super": [
"organization-classification-codes"
],
"new-resource-base": "http://data.vlaanderen.be/id/concept/RepresentatiefOrgaanClassificatieCode/"
},
"governing-bodies": {
@@ -842,7 +914,9 @@
"predicate": "skos:prefLabel"
}
},
"features": ["include-uri"],
"features": [
"include-uri"
],
"new-resource-base": "http://lblod.data.gift/concepts/"
},
"locations": {
@@ -895,7 +969,9 @@
},
"ministers": {
"class": "ere:RolBedienaar",
"super": ["agents-in-position"],
"super": [
"agents-in-position"
],
"relationships": {
"minister-position": {
"predicate": "org:holds",
@@ -963,7 +1039,9 @@
},
"minister-positions": {
"class": "ere:PositieBedienaar",
"super": ["posts"],
"super": [
"posts"
],
"relationships": {
"function": {
"predicate": "ere:functie",
@@ -1065,4 +1143,4 @@
"new-resource-base": "http://data.relance.lblod.info/id/nace-bel/"
}
}
}
}

View File

@@ -765,6 +765,8 @@
],
"properties": {
"name": "http://www.w3.org/2004/02/skos/core#prefLabel",
"legal_name": "http://www.w3.org/ns/regorg#legalName",
"alternative_name": "http://www.w3.org/2004/02/skos/core#altLabel",
"classification_id": [
"http://www.w3.org/ns/org#classification",
"http://mu.semte.ch/vocabularies/core/uuid"
@@ -822,6 +824,24 @@
}
}
},
"legal_name": {
"type": "text",
"fields": {
"field": {
"type": "keyword",
"normalizer": "custom_sort_normalizer"
}
}
},
"alternative_name": {
"type": "text",
"fields": {
"field": {
"type": "keyword",
"normalizer": "custom_sort_normalizer"
}
}
},
"classification_name": {
"type": "text",
"fields": {

View File

@@ -738,6 +738,8 @@
],
"properties": {
"name": "http://www.w3.org/2004/02/skos/core#prefLabel",
"legal_name": "http://www.w3.org/ns/regorg#legalName",
"alternative_name": "http://www.w3.org/2004/02/skos/core#altLabel",
"classification_id": [
"http://www.w3.org/ns/org#classification",
"http://mu.semte.ch/vocabularies/core/uuid"
@@ -795,6 +797,24 @@
}
}
},
"legal_name": {
"type": "text",
"fields": {
"field": {
"type": "keyword",
"normalizer": "custom_sort_normalizer"
}
}
},
"alternative_name": {
"type": "text",
"fields": {
"field": {
"type": "keyword",
"normalizer": "custom_sort_normalizer"
}
}
},
"classification_name": {
"type": "text",
"fields": {

View File

@@ -51,9 +51,9 @@ services:
restart: "no"
uri-info:
restart: "no"
delta-producer-bg-jobs-initiator-organizations:
delta-producer-background-jobs-initiator:
restart: "no"
delta-producer-pub-graph-maintainer-organizations:
delta-producer-publication-graph-maintainer:
restart: "no"
search:
restart: "no"
@@ -92,7 +92,7 @@ services:
ldes-backend:
environment:
BASE_URL: "http://localhost/ldes/"
sync-ovo-numbers:
kbo-data-sync:
restart: "no"
# use this to test acmidm
# tlsproxy:

View File

@@ -72,7 +72,7 @@ services:
restart: always
logging: *default-logging
resource:
image: semtech/mu-cl-resources:feature-optional-native-booleans
image: semtech/mu-cl-resources:1.23.0
environment:
CACHE_CLEAR_PATH: "http://cache/.mu/clear-keys"
links:
@@ -175,13 +175,13 @@ services:
links:
- db:database
adressenregister:
image: lblod/adressenregister-fuzzy-search-service:0.7.0
image: lblod/adressenregister-fuzzy-search-service:0.8.0
labels:
- "logging=true"
restart: always
logging: *default-logging
frontend:
image: lblod/frontend-organization-portal:1.22.0
image: lblod/frontend-organization-portal:1.24.0
volumes:
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
environment:
@@ -206,10 +206,10 @@ services:
image: semtech/mu-file-service:3.2.0
volumes:
- ./data/files:/share
labels:
- "logging=true"
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
jobs-controller:
@@ -264,6 +264,8 @@ services:
END_DATE_WORSHIP_GOVERNING_BODY: "2026-03-31T00:00:00"
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
reasoner:
@@ -298,8 +300,8 @@ services:
- "logging=true"
restart: always
logging: *default-logging
sync-ovo-numbers:
image: lblod/sync-ovo-numbers-service:0.1.0
kbo-data-sync:
image: lblod/sync-wegwijs-organization-service:2.0.2
links:
- db:database
labels:
@@ -318,6 +320,8 @@ services:
volumes:
- ./data/publication-triplestore:/data
- ./config/publication-triplestore/virtuoso.ini:/data/virtuoso.ini
labels:
- "logging=true"
restart: always
logging: *default-logging
delta-producer-dump-file-publisher:
@@ -327,57 +331,39 @@ services:
- ./data/files:/share
links:
- db:database
restart: always
logging: *default-logging
################################################################################
# DELTA ORGANIZATIONS: START
################################################################################
delta-producer-bg-jobs-initiator-organizations:
image: lblod/delta-producer-background-jobs-initiator:0.3.1
environment:
JOBS_GRAPH: "http://mu.semte.ch/graphs/jobs"
DUMP_FILE_CREATION_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/organizations"
INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations"
CRON_PATTERN_DUMP_JOB: "42 * * * *" # At minute 42 every hour
CRON_PATTERN_HEALING_JOB: "0 0 4 * * *" # everyday at 4 AM
START_INITIAL_SYNC: "false" # prefer to disable it now. We want to have feeling with how the DB acts.
labels:
- "logging=true"
links:
- db:database
restart: always
logging: *default-logging
delta-producer-pub-graph-maintainer-organizations:
image: lblod/delta-producer-publication-graph-maintainer:0.15.4
delta-producer-background-jobs-initiator:
image: lblod/delta-producer-background-jobs-initiator:1.0.1
volumes:
- ./config/delta-producer/background-job-initiator:/config
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
delta-producer-publication-graph-maintainer:
image: lblod/delta-producer-publication-graph-maintainer:1.1.1-rc.1
environment:
MAX_BODY_SIZE: "50mb"
JOBS_GRAPH: "http://mu.semte.ch/graphs/jobs"
RELATIVE_FILE_PATH: "deltas/organizations"
PUBLICATION_GRAPH: "http://redpencil.data.gift/id/deltas/producer/organizations"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations"
INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations"
QUEUE_POLL_INTERVAL: 3000
USE_VIRTUOSO_FOR_EXPENSIVE_SELECTS: "true" # some queries are just too expensive
SKIP_MU_AUTH_INITIAL_SYNC: "true"
HEALING_PATCH_GRAPH_BATCH_SIZE: 500
SERVE_DELTA_FILES: "true"
PUBLISHER_URI: "http://data.lblod.info/services/delta-production-json-diff-file-manager/organizations"
DELTA_INTERVAL_MS: 10000
PRETTY_PRINT_DIFF_JSON: "true"
ERROR_GRAPH: "http://mu.semte.ch/graphs/jobs"
PUBLICATION_VIRTUOSO_ENDPOINT: "http://publication-triplestore:8890/sparql"
PUBLICATION_MU_AUTH_ENDPOINT: "http://publication-triplestore:8890/sparql"
SUDO_QUERY_RETRY_FOR_HTTP_STATUS_CODES: "404,500,503"
CONFIG_SERVICES_JSON_PATH: '/config/publication-graph-maintainer/config.json'
volumes:
- ./config/delta-producer/organizations:/config
- ./config/delta-producer:/config
- ./data/files/:/share
links:
- db:database
- triplestore:virtuoso
labels:
- "logging=true"
restart: always
logging: *default-logging
################################################################################
# DELTA ORGANIZATIONS: END
################################################################################
################################################################################
# DELTA ORGANIZATIONS PUBLIC INFO: START
@@ -425,6 +411,8 @@ services:
- db:database
- triplestore:virtuoso
restart: always
labels:
- "logging=true"
logging: *default-logging
################################################################################
# DELTA ORGANIZATIONS PUBLIC INFO: END
@@ -474,6 +462,8 @@ services:
- db:database
- triplestore:virtuoso
restart: always
labels:
- "logging=true"
logging: *default-logging
################################################################################
# DELTA PUBLIC INFORMATION: END
@@ -523,6 +513,8 @@ services:
- db:database
- triplestore:virtuoso
restart: always
labels:
- "logging=true"
logging: *default-logging
################################################################################
# DELTA WORSHIP POSTS: END
@@ -535,7 +527,7 @@ services:
# LOKET MANDATARISSEN CONSUMERS
################################################################################
mandatarissen-consumer:
image: lblod/delta-consumer:0.0.17-rc.7
image: lblod/delta-consumer:0.0.24
environment:
DCR_SERVICE_NAME: "mandatarissen-consumer"
DCR_SYNC_BASE_URL: "https://loket.lblod.info" # replace with link to Loket API
@@ -566,7 +558,7 @@ services:
# LOKET LEIDINGGEVENDEN CONSUMERS
################################################################################
leidinggevenden-consumer:
image: lblod/delta-consumer:0.0.18
image: lblod/delta-consumer:0.0.24
environment:
DCR_SERVICE_NAME: "leidinggevenden-consumer"
DCR_SYNC_BASE_URL: "https://loket.lblod.info" # replace with link to Loket API
@@ -597,7 +589,7 @@ services:
# LOKET WORSHIP SENSITIVE CONSUMERS
################################################################################
worship-services-sensitive-consumer:
image: lblod/delta-consumer:0.0.17-rc.7
image: lblod/delta-consumer:0.0.24
environment:
DCR_SYNC_BASE_URL: "https://loket.lblod.info/"
DCR_SERVICE_NAME: "worship-services-sensitive-consumer"
@@ -608,7 +600,8 @@ services:
DCR_DISABLE_INITIAL_SYNC: "true"
BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES: "true"
DCR_SYNC_FILES_PATH: "/sync/worship-services-sensitive/files"
BATCH_SIZE: 1000
BATCH_SIZE: 50
SLEEP_BETWEEN_BATCHES: 10
DCR_KEEP_DELTA_FILES: "true"
DCR_ENABLE_DELTA_CONTEXT: "true"
DCR_LANDING_ZONE_DATABASE: "triplestore"
@@ -624,6 +617,37 @@ services:
- triplestore:virtuoso
logging: *default-logging
################################################################################
# CLB CONSUMERS
################################################################################
clb-contact-data-consumer:
image: lblod/delta-consumer:0.0.18
environment:
DCR_SYNC_BASE_URL: "https://dev.contactgegevens-loket.lblod.info/"
DCR_SERVICE_NAME: "clb-contact-data-consumer"
DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/ContactGegevensCacheGraphDump"
DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/contactData"
DCR_DELTA_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/contactDataDeltaFileSyncing"
DCR_JOB_CREATOR_URI: "http://data.lblod.info/services/id/clb-contact-data-consumer"
DCR_DISABLE_INITIAL_SYNC: "false"
BYPASS_MU_AUTH_FOR_EXPENSIVE_QUERIES: "true"
DCR_SYNC_FILES_PATH: "/sync/contact-data/files"
BATCH_SIZE: 1000
DCR_KEEP_DELTA_FILES: "true"
DCR_ENABLE_DELTA_CONTEXT: "true"
DCR_LANDING_ZONE_DATABASE: "triplestore"
DCR_LANDING_ZONE_GRAPH: "http://mu.semte.ch/graphs/landing-zone/clb-contact-data"
volumes:
- ./config/clb-consumer/contact-data:/config/triples-dispatching/custom-dispatching
- ./data/files/consumer-files/clb-contact-data:/consumer-files/
restart: always
labels:
- "logging=true"
links:
- db:database
- triplestore:virtuoso
logging: *default-logging
################################################################################
# DELTA CONSUMERS: END
################################################################################
@@ -662,7 +686,7 @@ services:
# MU SEARCH
################################################################################
search:
image: semtech/mu-search:0.9.1
image: semtech/mu-search:0.10.0-beta.5
links:
- db:database
restart: always

0
scripts/reset-elastic.sh Normal file → Executable file
View File