Compare commits

...

77 Commits

Author SHA1 Message Date
kikef98
ba3e33f01b release v1.38.4 2026-02-26 17:06:51 +01:00
kikef98
e2e64c9b0d bump frontend 2026-02-26 17:03:42 +01:00
kikef98
c3b44447ae release v1.38.3 2026-02-26 16:57:11 +01:00
kikef98
ce61bf3619 bump frontend 2026-02-26 16:44:29 +01:00
Damon Kennes
2a668d2138 Merge pull request #587 from lblod/OP-3743-Related-organisations-Duplicate-relations-between-municipalities-and-OCMWs
OP-3743: added migration that removes double memberships
2026-02-20 13:11:54 +01:00
Damon
aac6e59d2a OP-3743: added migration that removes double memberships 2026-02-20 11:56:30 +01:00
Damon
de3bc6b0cd release v1.38.2 2026-02-20 10:03:39 +01:00
cecemel
dcb053b036 Merge pull request #586 from lblod/chore/add-related-organizations-report.js
Chore/add related organizations report.js
2026-02-19 16:31:27 +01:00
felix
d325d1b60d Update CHANGELOG.md 2026-02-19 16:30:54 +01:00
felix
d8ded9809a remove comments 2026-02-19 16:16:19 +01:00
felix
f9c5c74c00 added related organizations report 2026-02-19 16:12:11 +01:00
Damon
419c322e5e edit changelog 2026-02-11 09:29:32 +01:00
Damon
2c28259da4 bump frontend 2026-02-11 09:22:29 +01:00
Damon
4e145e67ff edit changelog 2026-02-11 09:21:47 +01:00
Damon
07d4dde49c edit changelog 2026-02-10 16:01:35 +01:00
Damon Kennes
8bf3549cce Merge pull request #585 from lblod/OP-3724-Aalter-can-be-selected-twice-in-editing-werkingsgebied-when-making-a-new-Politiezone
OP-3724: added (voor fusie) to the location labels for the old locati…
2026-02-06 13:35:59 +01:00
Damon
aa1272cf0d OP-3724: added (voor fusie) to the location labels for the old location for Deinze and Aalter 2026-02-06 09:59:15 +01:00
felix
fce61a1a2c Update CHANGELOG.md 2026-02-04 18:35:46 +01:00
felix
54067e925e bump addresseregister 2026-02-04 18:34:54 +01:00
Damon
d55ac1ae5a DL-7142: bump loket-error-alert-service 2026-02-04 09:43:52 +01:00
Boris De Vloed
bb1044f539 Merge pull request #576 from lblod/internal/remove-organizations-public-info-producer
Remove organizations public info producer - consumers have been removed in downstream applications
2026-02-03 09:58:46 +01:00
Boris De Vloed
f982e63a7e remove duplicate line form merge 2026-02-03 09:56:49 +01:00
Boris De Vloed
b41b7ee81e Merge branch 'development' into internal/remove-organizations-public-info-producer 2026-02-03 09:49:56 +01:00
Damon
38d1343338 release v1.38.1 2026-01-30 09:50:45 +01:00
Damon
c701dfa8a5 frontend bump 2026-01-27 09:43:48 +01:00
Damon
b3ff36e184 edit changelog + docker.compose.dev based on feedback 2026-01-23 13:28:10 +01:00
Damon Kennes
fc6239d256 Merge pull request #584 from lblod/OP-3720-Delta-background-job-having-errors-getting-stuck-send-an-email
OP-3720: added error-alert and deliver-email-service to send mails wh…
2026-01-23 10:51:46 +01:00
Damon
ada6e3c781 edit changelog 2026-01-22 16:21:20 +01:00
Damon
dfcbef269d OP-3720: added error-alert and deliver-email-service to send mails when errors occur in dump jobs 2026-01-22 15:46:21 +01:00
wolfez
f47847d5fd release v1.38.0 2026-01-08 15:10:02 +01:00
Damon Kennes
5f36c2880c Merge pull request #583 from lblod/OP-3704-fix-aantalHouders-antwerpen-brecht-hasselt-vast-bureau
OP-3704: aantalHouders voor vast bureau brecht, antwerpen en hasselt …
2026-01-07 17:07:21 +01:00
Damon
0727ad4674 OP-3704: aantalHouders voor vast bureau brecht, antwerpen en hasselt +1 na opmerking van Karel 2026-01-07 16:43:41 +01:00
wolfez
e598e9334c bump frontend to v1.36.2 2026-01-07 11:17:05 +01:00
felix
d77dcd7ad6 Update CHANGELOG.md 2025-12-15 15:27:26 +01:00
wolfez
dd7f360268 update changelog 2025-12-12 11:06:40 +01:00
wolfez
cfa006d8e5 bump frontend to v1.36.1 2025-12-12 10:41:00 +01:00
Damon Kennes
0c6f8fe115 Merge pull request #580 from lblod/OP-3680-Indicate-whether-a-worship-service-is-a-customer-of-ReligioPoint-or
Op 3680 indicate whether a worship service is a customer of religio point or
2025-12-08 16:02:59 +01:00
Damon
a7d14d42af OP-3680: changelog + readme edits 2025-12-08 16:01:45 +01:00
Damon Kennes
9a0e8bfa4b Merge branch 'development' into OP-3680-Indicate-whether-a-worship-service-is-a-customer-of-ReligioPoint-or 2025-12-08 15:37:42 +01:00
Damon
7b3d0d94d1 OP-3680: vendor-management-consumer db link fix 2025-12-08 12:58:10 +01:00
cecemel
c5cebc7c08 Merge pull request #581 from lblod/OP-3699-Change-field-aantal-houders-for-schepenen-and-leden-Vast-Bureau-for-cities-Hasselt-and-Antwerp
Op 3699 | 3590 change field aantal houders for schepenen and leden vast bureau for cities hasselt and antwerp
2025-12-08 12:28:21 +01:00
felix
a6802e4c9d Update CHANGELOG.md 2025-12-08 12:26:10 +01:00
Damon
cec0ccca77 changelog edit 2025-12-01 14:17:56 +01:00
Damon
c27870a274 OP-3680: PR comments -> vendors for all organizations + multiple vendors 2025-12-01 14:00:37 +01:00
Damon
380dd9afaf OP-3680: added name to vendor-management 2025-11-28 09:54:30 +01:00
Damon
c74e32336c OP-3699: aantal-houders added to mandates resource + added correct value for Vast Bureau/schepenen Brecht via Karel 2025-11-28 09:35:51 +01:00
Damon
0c4df815e9 OP-3680: vendor-management-consumer works with triple remapping to only get the needed data 2025-11-25 10:59:05 +01:00
Damon
f2d66ba03b OP-3680: added vendor-management-consumer to ingest data from vendor management 2025-11-21 16:13:46 +01:00
Damon
b1322d1884 OP-3699: edit export for aantalHouders property 2025-11-21 14:08:31 +01:00
Damon
7f60f302b0 OP-3699: data migrations to bring in lmb aantalHouders + set Hasselt/Antwerp to 9 (TODO: set correct value for dubbel Vast Bureau Brecht) 2025-11-18 17:08:51 +01:00
cecemel
0674a8a998 Merge pull request #579 from lblod/chore/readme-improvements
Chore/readme improvements
2025-11-18 12:29:42 +01:00
felix
10b8b0dd0c update README.md 2025-11-18 12:28:21 +01:00
felix
3b0131f398 some migrations to make OP work out of the box 2025-11-18 12:25:21 +01:00
felix
49ac622757 Remove non needed example 2025-11-18 12:25:12 +01:00
felix
bacf26e75d Update README.md 2025-11-18 12:25:06 +01:00
wolfez
c82d7591e4 release v1.37.3 2025-11-14 13:45:17 +01:00
Claire Lovisa
b163cda6fa Merge branch 'master' into development 2025-11-13 14:19:54 +01:00
Claire Lovisa
01de4843a2 Release v1.37.2 2025-11-13 14:16:57 +01:00
Claire Lovisa
6555e00645 Bump frontend 2025-11-13 14:15:49 +01:00
wolfderechter
2efdf333d0 Merge pull request #578 from lblod/chore/remove-local-involvements
[OP-3693]: remove local involvements
2025-11-07 10:52:25 +01:00
wolfez
78c3882c10 update changelog 2025-11-05 14:05:58 +01:00
wolfez
7567343001 Add migrations to cleanup local involvements 2025-11-05 14:04:55 +01:00
Claire Lovisa
fa46345c57 Merge branch 'master' into development 2025-11-04 12:01:21 +01:00
Claire Lovisa
3dbba4b176 Release v1.37.1 2025-11-04 12:00:09 +01:00
Claire Lovisa
107efbcf09 Merge pull request #577 from lblod/hotfix/municipality-name-Heist-Op-Den-Berg
Fix Heist-op-den-Berg municipality in camel case
2025-11-04 11:57:32 +01:00
Claire Lovisa
8db80bf04f Merge branch 'master' into hotfix/municipality-name-Heist-Op-Den-Berg 2025-11-04 11:56:51 +01:00
Claire Lovisa
4e8d80935f Release v1.35.2 2025-11-04 11:52:47 +01:00
Claire Lovisa
b89bd61fa6 Fix Heist-op-den-Berg municipality in camel case 2025-11-03 16:49:06 +01:00
Claire Lovisa
bd62954cae Merge branch 'development' into internal/remove-organizations-public-info-producer 2025-10-24 15:43:48 +02:00
Claire Lovisa
11817eac09 Remove organizations-public-info producer 2025-10-24 15:41:18 +02:00
palexopoulos-triply
f27d122665 Update CHANGELOG.md 2025-10-24 15:32:48 +02:00
palexopoulos-triply
4289225cf7 Update CHANGELOG.md 2025-10-24 15:32:12 +02:00
palexopoulos-triply
ecb1736fcf Merge pull request #575 from lblod/OP-3676
Cleaning duplicated data of municipalities and provinces
2025-10-24 14:39:51 +02:00
palexopoulos-triply
973b791e00 Merge branch 'development' into OP-3676 2025-10-24 14:39:35 +02:00
Panos Alexopoulos
7374c861fb Updated changelog 2025-10-24 14:13:47 +02:00
Panos Alexopoulos
2eea02673b Debugged cleanup query and added entry to changelog 2025-10-24 14:04:32 +02:00
Panos Alexopoulos
3d7d56d9da Added a cleanup query to find the triples that involve entities of type Bestuurseenheid either as subject or object, and are shared between the shared and administrative unit graphs, and then remove them from the administrative unit graph 2025-10-24 09:57:15 +02:00
33 changed files with 7390 additions and 102 deletions

View File

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

View File

@@ -1,5 +1,151 @@
# Changelog
## 1.38.4 (2026-02-26)
### Backend
- Bump frontend [OP-3735]
### Deploy instructions
```
drc pull frontend && drc up -d frontend
```
## 1.38.3 (2026-02-26)
### Backend
- Related organisations: Duplicate relations between municipalities and OCMWs [OP-3743]
### Deploy instructions
```
drc restart migrations cache
```
## 1.38.2 (2026-02-20)
### Backend
- Remove deprecated organizations-public-info producer [OP-3581]
- bump loket-error-alert-service [DL-7142]
- bump adressenregister [OP-3721]
- Aalter can be selected twice in editing "werkingsgebied" when making a new Politiezone [OP-3724]
- bump frontend [OP-3726]
- Add related organizations report to report generation service [OP-3739]
### Deploy instructions
```
# removing producer
drc restart dispatcher delta-producer-dump-file-publisher delta-producer-background-jobs-initiator delta-producer-publication-graph-maintainer jobs-controller migrations cache
drc up -d publication-triplestore-migrations error-alert adressenregister frontend
rm -r data/files/deltas/organizations-public-info
rm -r data/files/delta-producer-dumps/dump-organizations-public-info
# new related organizations report
drc pull report-generation; drc up -d report-generation
```
### Deploy instructions
## 1.38.1 (2026-01-30)
### General
- Bump frontend to v1.36.3 [OP-3428]
- [OP-3720]: Delta background job having errors/getting stuck, send an email
### Deploy instructions
#### For error-alert and deliver-email-service
Per environment a specfic configuration for the email service similar to loket config.
Ask colleague for specfic credentials.
```
deliver-email-service:
environment:
EMAIL_PROTOCOL: "smtp"
#WELL_KNOWN_SERVICE: "smtp"
EMAIL_HOST: "Fill in Email host adress"
EMAIL_ADDRESS: "Fill in email"
EMAIL_PASSWORD: "Fill in email password"
EMAIL_PORT: "Fill in port"
SECURE_CONNECTION: "true"
EMAIL_CRON_PATTERN: "*/1 * * * *"
restart: "no"
error-alert:
environment:
EMAIL_FROM: "Fill in email adress of sender
EMAIL_TO: "Fill in email adress of receiver"
```
#### Deploy instructions
```
drc restart migrations deltanotifier
drc up -d error-alert deliver-email-service frontend
```
## 1.38.0 (2026-01-08)
### General
- [OP-3590]: OP is now master of "aantal houders" of mandates
- [OP-3699]: Update aantal houders for some mandates Hasselt and Antwerp
- [OP-3680]: Indicate whether a worship service is a customer of ReligioPoint or Loket voor Lokale Besturen
- Bump frontend to v1.36.2 [OP-3623] [OP-3681] [OP-3703] [OP-2712]
### Deploy instructions
#### For the vendor-management-consumer
Per environment a slightly different configuration is needed. Update the `docker-compose.override.yml` accordingly.
##### development
```
vendor-management-consumer:
environment:
DCR_SYNC_BASE_URL: "https://dev.loket.lblod.info/"
DCR_SYNC_LOGIN_ENDPOINT: "https://dev.loket.lblod.info/sync/vendor-management/login" # Add DCR_SECRET_KEY in docker-compose.override.yml
DCR_DISABLE_INITIAL_SYNC: "false"
DCR_DISABLE_DELTA_INGEST: "false"
DCR_SECRET_KEY: "SECRECT KEY TO ASK"
```
##### qa
```
vendor-management-consumer:
environment:
DCR_SYNC_BASE_URL: "https://loket.lblod.info/"
DCR_SYNC_LOGIN_ENDPOINT: "https://loket.lblod.info/sync/vendor-management/login" # Add DCR_SECRET_KEY in docker-compose.override.yml
DCR_DISABLE_INITIAL_SYNC: "false"
DCR_DISABLE_DELTA_INGEST: "false"
DCR_SECRET_KEY: "SECRECT KEY TO ASK"
```
##### production
```
vendor-management-consumer:
environment:
DCR_SYNC_BASE_URL: "https://loket.lokaalbestuur.vlaanderen.be/"
DCR_SYNC_LOGIN_ENDPOINT: "https://loket.lokaalbestuur.vlaanderen.be/sync/vendor-management/login" # Add DCR_SECRET_KEY in docker-compose.override.yml
DCR_DISABLE_INITIAL_SYNC: "false"
DCR_DISABLE_DELTA_INGEST: "false"
DCR_SECRET_KEY: "SECRECT KEY TO ASK"
```
#### Deploy instructions
```
drc restart migrations
drc restart delta-producer-publication-graph-maintainer resource
drc pull vendor-management-consumer; drc up -d vendor-management-consumer
drc restart db resource
drc pull frontend && drc up -d frontend
```
## 1.37.3 (2025-11-14)
### Backend
- Added cleanup job to clean duplicated data of municipalities and provinces [OP-3676]
- Delete local involvements for worship services [OP-3693]
### Deploy notes
```
# cleanup job
drc restart migrations
drc exec db-cleanup curl -X GET "http://localhost/runCronJob?cronJobID=8ffd9f11-db25-430d-a66a-31fc8b393d5f"
```
## 1.37.2 (2025-11-13)
- Bump frontend to v1.36.0
### Deploy notes
```
drc up -d frontend
```
## 1.37.1 (2025-11-04)
### Bakend
- Include v1.35.2 hotfix to the 1.37.x version. Already deployed so no deploy instructions
## 1.37.0 (2025-10-24)
### Backend
- Add municipalities and werkingsgebieden in the area of Brussel [OP-3669]
@@ -61,6 +207,14 @@ drc pull frontend; drc up -d frontend
drc restart migrations-triggering-indexing; drc logs -ft --tail=200 migrations-triggering-indexing
```
## v1.35.2 (2025-11-04)
### Backend
- Fix camel case name of municipality Heist-op-den-Berg in addresses [OP-3694]
### Deploy notes
```
drc restart migrations-triggering-indexing
```
## v1.35.1 (2025-09-15)
### Backend
- Produce memberships and their roles in organizations and public producers [OP-3658] & [OP-3661]

View File

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

View File

@@ -89,6 +89,11 @@ defmodule Acl.UserGroups.Config do
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
]
@vendor_type [
"http://mu.semte.ch/vocabularies/ext/Vendor"
]
defp access_by_role(group_string) do
%AccessByQuery{
# vars: ["session_group","session_role"], todo we might have to create multiple graph depending on role
@@ -130,6 +135,12 @@ defmodule Acl.UserGroups.Config do
constraint: %ResourceConstraint{
resource_types: @org_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
@@ -143,6 +154,12 @@ defmodule Acl.UserGroups.Config do
constraint: %ResourceConstraint{
resource_types: @org_type ++ @error_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
@@ -156,6 +173,12 @@ defmodule Acl.UserGroups.Config do
constraint: %ResourceConstraint{
resource_types: @org_type ++ @error_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
@@ -169,6 +192,12 @@ defmodule Acl.UserGroups.Config do
constraint: %ResourceConstraint{
resource_types: @org_type ++ @worship_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
@@ -182,6 +211,12 @@ defmodule Acl.UserGroups.Config do
constraint: %ResourceConstraint{
resource_types: @org_type ++ @error_type ++ @worship_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},
@@ -195,6 +230,12 @@ defmodule Acl.UserGroups.Config do
constraint: %ResourceConstraint{
resource_types: @org_type ++ @error_type ++ @worship_type
}
},
%GraphSpec{
graph: "http://mu.semte.ch/graphs/vendor-management-data",
constraint: %ResourceConstraint{
resource_types: @vendor_type
}
}
]
},

View File

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

View File

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

View File

@@ -540,7 +540,8 @@
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/ns/org#role"
"http://www.w3.org/ns/org#role",
"http://data.vlaanderen.be/ns/mandaat#aantalHouders"
]
},
{

View File

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

View File

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

View File

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

View File

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

View File

@@ -441,14 +441,6 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://delta-producer-publication-graph-maintainer/organizations/files/"
end
#################################################################
# DELTA: organizations-public-info
#################################################################
get "/sync/organizations-public-info/files/*path" do
Proxy.forward(conn, path, "http://delta-producer-publication-graph-maintainer/organizations-public-info/files/")
end
#################################################################
# DELTA: public
#################################################################

View File

@@ -0,0 +1,8 @@
{
"creators": [
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/organizations",
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/public",
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/organizations-public-info",
"http://lblod.data.gift/services/delta-producer-background-jobs-initiator/worship-posts"
]
}

View File

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

View File

@@ -0,0 +1,16 @@
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s a <http://www.w3.org/ns/locn#Address> ;
<https://data.vlaanderen.be/ns/adres#gemeentenaam> "Heist-Op-Den-Berg" .
}
} INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s a <http://www.w3.org/ns/locn#Address> ;
<https://data.vlaanderen.be/ns/adres#gemeentenaam> "Heist-op-den-Berg" .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s a <http://www.w3.org/ns/locn#Address> ;
<https://data.vlaanderen.be/ns/adres#gemeentenaam> "Heist-Op-Den-Berg" .
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,44 @@
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX prov: <http://www.w3.org/ns/prov#>
DELETE {
GRAPH ?g {
?aalter rdfs:label ?label .
}
} INSERT {
GRAPH ?g {
?aalter rdfs:label "Aalter (voor fusie)" .
}
} WHERE {
GRAPH ?g {
?aalter a prov:Location ;
rdfs:label ?label .
VALUES ?aalter {
<http://data.lblod.info/id/werkingsgebieden/7a7daa48e9e6449358cf96be6c7b30466648d31236e56b8958fae7d53e2308b8>
}
}
}
;
DELETE {
GRAPH ?g {
?deinze rdfs:label ?label .
}
} INSERT {
GRAPH ?g {
?deinze rdfs:label "Deinze (voor fusie)" .
}
} WHERE {
GRAPH ?g {
?deinze a prov:Location ;
rdfs:label ?label .
VALUES ?deinze {
<http://data.lblod.info/id/werkingsgebieden/a567b3fdb462a8513ffeeff0188317003c5bbb7debb8f1ea9245b83e1d43b437>
}
}
}

View File

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

View File

@@ -0,0 +1 @@
CLEAR GRAPH <http://redpencil.data.gift/id/deltas/producer/organizations-public-info>

View File

@@ -1,5 +1,7 @@
import OrganizationsReport from './organizations-report'
import RelatedOrganizationsReport from './related-organizations-report'
export default [
OrganizationsReport,
RelatedOrganizationsReport,
];

View File

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

View File

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

View File

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

View File

@@ -78,6 +78,16 @@ services:
- "logging=true"
restart: always
logging: *default-logging
publication-triplestore-migrations:
image: semtech/mu-migrations-service:0.9.0
links:
- publication-triplestore:database
volumes:
- ./config/publication-triplestore-migrations:/data/migrations
labels:
- "logging=true"
restart: always
logging: *default-logging
resource:
image: semtech/mu-cl-resources:1.24.0
environment:
@@ -196,13 +206,13 @@ services:
links:
- db:database
adressenregister:
image: lblod/adressenregister-fuzzy-search-service:0.8.0
image: lblod/adressenregister-fuzzy-search-service:0.8.2
labels:
- "logging=true"
restart: always
logging: *default-logging
frontend:
image: lblod/frontend-organization-portal:1.35.0
image: lblod/frontend-organization-portal:1.36.5
volumes:
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
environment:
@@ -540,6 +550,27 @@ services:
- triplestore:virtuoso
logging: *default-logging
vendor-management-consumer:
image: lblod/delta-consumer:0.1.1
environment:
DCR_SYNC_BASE_URL: "https://loket.lblod.info/"
DCR_SYNC_LOGIN_ENDPOINT: 'https://loket.lblod.info/sync/vendor-management/login' # Add DCR_SECRET_KEY in docker-compose.override.yml
DCR_SERVICE_NAME: "vendor-management-consumer"
DCR_SYNC_FILES_PATH: "/sync/vendor-management/files"
DCR_SYNC_DATASET_SUBJECT: "http://data.lblod.info/datasets/delta-producer/dumps/VendorManagementCacheGraphDump"
DCR_INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/initialSync/vendor-management"
DCR_JOB_CREATOR_URI: "http://data.lblod.info/services/id/vendor-management-consumer"
DCR_DISABLE_INITIAL_SYNC: "true"
DCR_KEEP_DELTA_FILES: "true"
DCR_DELTA_FILE_FOLDER: "/consumer-files"
DCR_DELTA_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/consumer/VendorManagementFileSyncing"
INGEST_GRAPH: "http://mu.semte.ch/graphs/vendor-management-data"
labels:
- "logging=true"
links:
- db:database
restart: always
logging: *default-logging
################################################################################
# DELTA CONSUMERS: END
################################################################################
@@ -605,6 +636,30 @@ services:
restart: always
logging: *default-logging
error-alert:
image: lblod/loket-error-alert-service:1.0.1
environment:
APP_NAME: 'OP'
volumes:
- ./config/error-alert:/config/
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
deliver-email-service:
image: redpencil/deliver-email-service:1.0.0
environment:
MAILBOX_URI: "http://data.lblod.info/id/mailboxes/1"
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
roles:
image: lblod/select-role-service:0.1.0
labels: