Compare commits

..

57 Commits

Author SHA1 Message Date
mirdono
5b3b68b3c7 Added migration to combine merger change events 2024-02-08 16:24:09 +01:00
Nordine Bittich
a093ecb309 fix missing resulting org & betrokke (#369) (#376) 2024-02-08 16:07:40 +01:00
Claire Lovisa
518db8fb3f Bump frontend 2023-12-19 17:00:30 +01:00
mirdono
9c322a2fab Bump frontend version 2023-12-14 14:24:15 +01:00
Claire Lovisa
76a0715df3 Add purpose and expected end date to producer (#361) 2023-12-14 11:04:00 +01:00
Claire Lovisa
17f7c04065 Import contact data from sharepoint (#360) 2023-12-12 16:31:26 +01:00
Claire Lovisa
6429ae4ab8 Fix file graph for organizations public info dumps 2023-12-12 11:15:25 +01:00
Alexander van den Berghe
c93bfa6a2e Merge pull request #359 from lblod/fix/delete-change-event
Fix: delete unnecessary change event
2023-12-11 12:57:03 +00:00
mirdono
6d790078a3 Also delete the decision related to the change event 2023-12-11 12:10:30 +01:00
mirdono
cdf17e128b Fix: delete unnecessary change event 2023-12-08 20:09:42 +01:00
Dachamelemon
51c2476562 Merge pull request #358 from lblod/fix/reasoner-phone-number-rule
Fix/reasoner phone number rule
2023-12-07 16:23:09 +01:00
Elias Papanikitas
fbde10887b cleaned up code 2023-12-07 13:35:47 +01:00
Elias Papanikitas
b9263514b2 updated to handle more number correctly 2023-12-07 13:09:31 +01:00
Alexander van den Berghe
7bcc9f09ee Merge pull request #357 from lblod/chore/bump-construct-administrative-unit-relationships-service
Bump construct-administrative-unit-relationships-service
2023-12-07 09:49:52 +00:00
mirdono
8c2cd9c959 Chore: bumped construct-administrative-unit-relationships-service to v0.1.6 2023-12-07 10:43:00 +01:00
Claire Lovisa
ddb13e210d Fix relative file path of producer 2023-12-06 14:50:57 +01:00
Claire Lovisa
79d2dda77a Add publication triplestore and organizations public info producer (#356) 2023-12-06 14:09:38 +01:00
Dachamelemon
2a66359ebd Merge pull request #354 from lblod/fix/migratin-name-typo-fix
fixed typo
2023-12-04 17:33:00 +01:00
Elias Papanikitas
7cbf418fcc fixed typo 2023-12-04 16:36:36 +01:00
Dachamelemon
7eb7a50e41 Merge pull request #349 from lblod/feat/phone-number-format-migration
Feat/phone number format migration
2023-12-04 14:49:14 +01:00
Claire Lovisa
562f463af3 Add missing rule for contact point of leidinggevenden 2023-12-04 11:51:52 +01:00
Claire Lovisa
771ac03c13 Merge branch 'development' into feat/phone-number-format-migration 2023-12-04 10:40:12 +01:00
Claire Lovisa
bf425b7dbb Bump reasoner service 2023-12-04 10:24:35 +01:00
Claire Lovisa
4dfe1953a7 Bump reasoner service 2023-12-04 09:34:07 +01:00
Elias Papanikitas
d5c6a3f666 added rules to maininfo 2023-11-30 18:36:54 +01:00
Elias Papanikitas
a944075616 updated prefixes 2023-11-30 18:30:48 +01:00
Elias Papanikitas
78baadce4f changed :s to ?s 2023-11-30 13:42:39 +01:00
Claire Lovisa
d34e28ec0e Add report generation service + orgs report (#331)
* Add report generation service + orgs report

* Adapt configuration

* Add download-exports service to the stack

* Update gitignore

* Bump report generation service

* Remove unnecessary import

* Add dispatcher rule for download exports
2023-11-30 13:18:50 +01:00
Elias Papanikitas
4e8af93f23 reasoner changes 2023-11-30 11:43:07 +01:00
Elias Papanikitas
122b51ad0e migration check 2023-11-30 11:12:02 +01:00
Elias Papanikitas
672b4bce6a reasoner buf fixed 2023-11-30 10:49:47 +01:00
Elias Papanikitas
674f27bff8 saving progress for pr review 2023-11-29 09:57:47 +01:00
Claire Lovisa
a462b53d06 Bump op-sync-with-sharepoint-service 2023-11-28 19:22:55 +01:00
Claire Lovisa
2fd9ce3774 Sync with Sharepoint list Organisaties (#304)
* Set up deltas for sync with sharepoint

* add service

* add dev environment variables

* Extract config to the stack

* Adjust the config and mappings

* Filter out worship services

* Add contacten sp list service

* Add configuration for contact list

* Add config files for contacten sync

* Wire sharepoint sync on main graph instead of producer

* Add env variables

* Add op sync initiator

* Minor updates

* Improve config, add job controller rules and more

* Adjust rules

* Remove unused producer changes

* Don't restart initiator on dev setup

* Sync OP status to a dedicated column

* Add ABB_ID and split bus and house numbers

* Remove config file we will not use

* Add NIS and secondary phone number, rename columns

* Remove isInitialMatchingMapping, not used anymore

* Match on URI instead of UUID

* Adapt field names to new lists

* Specify matching field in config

* Set version of op-sync-with-sharepoint

---------

Co-authored-by: Nordine Bittich <nordine@bittich.be>
2023-11-28 16:49:58 +01:00
Alexander van den Berghe
1324cd4e58 Merge pull request #350 from lblod/refactor/model-agent-person-organization
Refactor: Introduce generic Agent resource
2023-11-27 15:52:15 +00:00
Claire Lovisa
a114380a6b Update main-info config so that added types can flow over 2023-11-27 15:40:35 +01:00
Claire Lovisa
00ca7aded0 Add missing prefix 2023-11-27 15:40:10 +01:00
mirdono
cc1aa08b36 Put general rule below specific ones 2023-11-27 10:59:36 +01:00
mirdono
90012767a2 Added agent-in-position and agent rules to main-info 2023-11-27 10:59:04 +01:00
mirdono
3259a80083 Added rule to add AgentInPositie and Agent types for mandatories 2023-11-27 10:19:29 +01:00
Claire Lovisa
51c1889a7f Fix dev mandatarissen without persons (#353)
* Fix dev mandatarissen without persons

* Extend migration to mandatarissen without type

Fortunately they all seemed to have a start date, so I used this
predicate to get all the mandatarissen without a type and delete them.
2023-11-27 07:31:49 +01:00
Claire Lovisa
67bedc108c Remove mandataris without person (#352) 2023-11-25 20:50:45 +01:00
Claire Lovisa
b1d5a374f2 Fix typo in migration name 2023-11-24 23:03:19 +01:00
mirdono
f295f10d00 Added rules to add Agent and AgentInPosition types 2023-11-24 14:01:58 +01:00
mirdono
90f8e4b5d1 Added migration to ensure mandatories are also agents-in-position and agents 2023-11-23 16:34:35 +01:00
mirdono
9a3c0b3dbc Added migration to make functionaries agents-in-position and agent 2023-11-23 16:09:18 +01:00
Dachamelemon
7d93978327 Merge pull request #351 from lblod/fix/typo-bedienaarsfinancieringcode-migration
fixed typo
2023-11-23 10:57:09 +01:00
Elias Papanikitas
89f6c5dc7b limited graphs, corrected migration name 2023-11-23 10:36:02 +01:00
Elias Papanikitas
45b145847a fixed typo 2023-11-22 11:37:24 +01:00
Elias Papanikitas
866cff52cc fixed weird + issue 2023-11-21 11:09:07 +01:00
mirdono
a23c817256 Fix: added missing relation 2023-11-20 14:49:47 +01:00
Elias Papanikitas
30f4341e01 fixnig remarks 2023-11-20 11:03:31 +01:00
mirdono
118c78ce97 Added migrations to introduce Agent type for people, organisations, and agents-in-position 2023-11-20 10:24:47 +01:00
mirdono
de9f2f19c1 Added new Agent resource 2023-11-20 10:20:28 +01:00
mirdono
375865e548 Renamed Agent/Agents to Functionary/Functionaries 2023-11-20 08:59:08 +01:00
Elias Papanikitas
57e09e9b47 migration OK 2023-11-17 11:41:06 +01:00
Elias Papanikitas
f120638741 phone number migration OP-1464 2023-11-17 09:54:53 +01:00
41 changed files with 25524 additions and 107 deletions

1
.gitignore vendored
View File

@@ -5,6 +5,7 @@
!/data/db/toLoad
!/data/db/toLoad/*
/data/files/*
!/data/files/exports/.gitkeep
/data/temp/*
docker-compose.override.yml
.idea

View File

@@ -43,7 +43,7 @@ defmodule Acl.UserGroups.Config do
"http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode",
"http://lblod.data.gift/vocabularies/organisatie/TypeEredienst",
"http://www.w3.org/2004/02/skos/core#ConceptScheme",
"http://lblod.data.gift/vocabularies/organisatie/BedienaarFinanceringCode",
"http://lblod.data.gift/vocabularies/organisatie/BedienaarFinancieringCode",
"http://www.w3.org/2004/02/skos/core#Concept",
"http://publications.europa.eu/ontology/euvoc#Country",
"http://lblod.data.gift/vocabularies/organisatie/TypeVestiging",
@@ -57,6 +57,7 @@ defmodule Acl.UserGroups.Config do
]
@org_type [
"http://purl.org/dc/terms/Agent",
"http://www.w3.org/ns/org#Organization",
"http://data.vlaanderen.be/ns/besluit#Besluit",
"https://data.vlaanderen.be/ns/besluitvorming#Beslissingsactiviteit",

View File

@@ -3,6 +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",
"targetDcatGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
"targetFilesGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
"cleanupOldDumps": true
@@ -11,14 +12,34 @@
"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",
"targetDcatGraph": "http://redpencil.data.gift/id/deltas/producer/organizations-deltas",
"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",
"fileBaseName": "dump-public",
"publicationGraphEndpoint": "http://triplestore:8890/sparql",
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
"cleanupOldDumps": true
@@ -27,6 +48,7 @@
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/PublicCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/public",
"fileBaseName": "dump-public",
"publicationGraphEndpoint": "http://triplestore:8890/sparql",
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
"cleanupOldDumps": true
@@ -35,6 +57,7 @@
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/WorshipPostsCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/worship-posts",
"fileBaseName": "dump-worship-posts",
"publicationGraphEndpoint": "http://triplestore:8890/sparql",
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
"cleanupOldDumps": true
@@ -43,6 +66,7 @@
"dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/WorshipPostsCacheGraphDump",
"targetGraph": "http://redpencil.data.gift/id/deltas/producer/worship-posts",
"fileBaseName": "dump-worship-posts",
"publicationGraphEndpoint": "http://triplestore:8890/sparql",
"targetDcatGraph": "http://mu.semte.ch/graphs/public",
"targetFilesGraph": "http://mu.semte.ch/graphs/public",
"cleanupOldDumps": true

View File

@@ -0,0 +1,351 @@
{
"export": [
{
"type": "http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst",
"strictTypeExport": "true",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service"
],
"properties": [
"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/adms#identifier",
"http://www.w3.org/ns/regorg#orgStatus",
"http://www.w3.org/ns/org#hasPrimarySite",
"http://www.w3.org/ns/org#hasSite",
"http://www.w3.org/ns/org#changedBy",
"http://www.w3.org/ns/org#resultedFrom",
"http://www.w3.org/ns/org#hasPost",
"http://www.w3.org/ns/org#linkedTo",
"http://www.w3.org/ns/org#hasSubOrganization",
"http://www.w3.org/ns/org#classification",
"http://data.lblod.info/vocabularies/erediensten/denominatie",
"http://data.lblod.info/vocabularies/erediensten/grensoverschrijdend",
"http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor",
"http://data.lblod.info/vocabularies/erediensten/typeEredienst"
]
},
{
"type": "http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst",
"strictTypeExport": "true",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service"
],
"properties": [
"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/adms#identifier",
"http://www.w3.org/ns/regorg#orgStatus",
"http://www.w3.org/ns/org#hasPrimarySite",
"http://www.w3.org/ns/org#hasSite",
"http://www.w3.org/ns/org#changedBy",
"http://www.w3.org/ns/org#resultedFrom",
"http://www.w3.org/ns/org#hasPost",
"http://www.w3.org/ns/org#linkedTo",
"http://www.w3.org/ns/org#hasSubOrganization",
"http://www.w3.org/ns/org#classification",
"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/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",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"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"
]
},
{
"type": "http://data.lblod.info/vocabularies/erediensten/BetrokkenLokaleBesturen",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://data.lblod.info/vocabularies/erediensten/typebetrokkenheid",
"http://www.w3.org/ns/org#organization",
"http://data.lblod.info/vocabularies/erediensten/financieringspercentage"
]
},
{
"type": "http://data.lblod.info/vocabularies/erediensten/PositieBedienaar",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/ns/org#role",
"http://data.lblod.info/vocabularies/erediensten/functie"
]
},
{
"type": "http://www.w3.org/ns/org#Site",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service",
"http://mu.semte.ch/graphs/administrative-unit"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/ns/org#siteAddress",
"https://data.vlaanderen.be/ns/organisatie#bestaatUit",
"http://data.lblod.info/vocabularies/erediensten/vestigingstype"
]
},
{
"type": "http://www.w3.org/ns/locn#Address",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service",
"http://mu.semte.ch/graphs/administrative-unit"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"https://data.vlaanderen.be/ns/adres#Adresvoorstelling.huisnummer",
"https://data.vlaanderen.be/ns/adres#Adresvoorstelling.busnummer",
"http://www.w3.org/ns/locn#thoroughfare",
"http://www.w3.org/ns/locn#postCode",
"https://data.vlaanderen.be/ns/adres#gemeentenaam",
"http://www.w3.org/ns/locn#adminUnitL2",
"https://data.vlaanderen.be/ns/adres#land",
"http://www.w3.org/ns/locn#fullAddress",
"https://data.vlaanderen.be/ns/adres#verwijstNaar",
"http://purl.org/dc/terms/source"
]
},
{
"type": "http://schema.org/ContactPoint",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service",
"http://mu.semte.ch/graphs/administrative-unit"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/ns/locn#address",
"http://xmlns.com/foaf/0.1/page",
"http://schema.org/faxNumber",
"http://schema.org/contactType",
"http://xmlns.com/foaf/0.1/page",
"http://schema.org/email",
"http://schema.org/telephone"
]
},
{
"type": "http://www.w3.org/ns/adms#Identifier",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service",
"http://mu.semte.ch/graphs/administrative-unit"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#notation",
"https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator"
]
},
{
"type": "http://www.w3.org/ns/adms#Identifier",
"graphsFilter": [
"http://mu.semte.ch/graphs/worship-service"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#notation",
"https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator"
],
"additionalFilter": "?ro <http://www.w3.org/ns/adms#identifier> ?subject ; a <http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan> ."
},
{
"type": "https://data.vlaanderen.be/ns/generiek#GestructureerdeIdentificator",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service",
"http://mu.semte.ch/graphs/administrative-unit"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"https://data.vlaanderen.be/ns/generiek#lokaleIdentificator"
]
},
{
"type": "https://data.vlaanderen.be/ns/generiek#GestructureerdeIdentificator",
"graphsFilter": [
"http://mu.semte.ch/graphs/worship-service"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"https://data.vlaanderen.be/ns/generiek#lokaleIdentificator"
],
"additionalFilter": "?ro <http://www.w3.org/ns/adms#identifier>/<https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator> ?subject ; a <http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan> ."
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode",
"graphsFilter": [
"http://mu.semte.ch/graphs/public"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel"
]
},
{
"type": "http://data.vlaanderen.be/ns/besluit#Bestuursorgaan",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/administrative-unit",
"http://mu.semte.ch/graphs/worship-service"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://data.vlaanderen.be/ns/besluit#bestuurt",
"http://www.w3.org/ns/org#classification",
"http://data.vlaanderen.be/ns/mandaat#bindingEinde",
"http://data.vlaanderen.be/ns/mandaat#bindingStart",
"https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan",
"http://www.w3.org/ns/org#hasPost"
]
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/TypeEredienst",
"graphsFilter": [
"http://mu.semte.ch/graphs/public"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel"
]
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/BestuursorgaanClassificatieCode",
"graphsFilter": [
"http://mu.semte.ch/graphs/public"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel"
]
},
{
"type": "http://www.w3.org/ns/org#ChangeEvent",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service",
"http://mu.semte.ch/graphs/administrative-unit"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://purl.org/dc/terms/date",
"http://purl.org/dc/terms/description",
"http://data.lblod.info/vocabularies/contacthub/typeWijziging",
"http://www.w3.org/ns/org#resultedFrom",
"http://www.w3.org/ns/org#changedBy",
"http://lblod.data.gift/vocabularies/organisatie/veranderingsgebeurtenisResultaat",
"http://www.w3.org/ns/org#originalOrganization",
"http://www.w3.org/ns/org#resultingOrganization",
"http://data.europa.eu/m8g/hasFormalFramework"
]
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/Veranderingsgebeurtenis",
"graphsFilter": [
"http://mu.semte.ch/graphs/public"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel"
]
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode",
"graphsFilter": [
"http://mu.semte.ch/graphs/public"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel"
]
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/TypeVestiging",
"graphsFilter": [
"http://mu.semte.ch/graphs/public"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/2004/02/skos/core#prefLabel"
]
},
{
"type": "http://data.vlaanderen.be/ns/mandaat#Mandaat",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service",
"http://mu.semte.ch/graphs/administrative-unit"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/ns/org#role"
]
},
{
"type": "http://data.lblod.info/vocabularies/leidinggevenden/Bestuursfunctie",
"graphsFilter": [
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/worship-service",
"http://mu.semte.ch/graphs/administrative-unit"
],
"properties": [
"http://mu.semte.ch/vocabularies/core/uuid",
"http://www.w3.org/ns/org#role",
"http://www.w3.org/2004/02/skos/core#prefLabel"
]
}
]
}

View File

@@ -396,7 +396,7 @@
]
},
{
"type": "http://lblod.data.gift/vocabularies/organisatie/BedienaarFinanceringCode",
"type": "http://lblod.data.gift/vocabularies/organisatie/BedienaarFinancieringCode",
"graphsFilter": [
"http://mu.semte.ch/graphs/public"
],

View File

@@ -105,6 +105,23 @@ export default [
]
}
},
{
match: {
},
callback: {
url: 'http://delta-producer-pub-graph-maintainer-organizations-public-info/delta',
method: 'POST'
},
options: {
resourceFormat: 'v0.0.1',
gracePeriod: 1000,
ignoreFromSelf: true,
optOutMuScopeIds: [
"http://redpencil.data.gift/id/concept/muScope/deltas/initialSync",
"http://redpencil.data.gift/id/concept/muScope/deltas/publicationGraphMaintenance"
]
}
},
{
match: {
},
@@ -162,6 +179,61 @@ export default [
optOutMuScopeIds: ["http://redpencil.data.gift/id/concept/muScope/deltas/initialSync"]
}
},
// organizations-sync-with-sharepoint/delta : jobs come from the jobs graph, data from the two main graphs
{
match: {
graph: {
type: 'uri',
value: 'http://mu.semte.ch/graphs/jobs'
}
},
callback: {
url: 'http://organizations-sync-with-sharepoint/delta',
method: 'POST'
},
options: {
resourceFormat: 'v0.0.1',
gracePeriod: 1000,
ignoreFromSelf: true,
optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ]
}
},
{
match: {
graph: {
type: 'uri',
value: 'http://mu.semte.ch/graphs/shared'
}
},
callback: {
url: 'http://organizations-sync-with-sharepoint/delta',
method: 'POST'
},
options: {
resourceFormat: 'v0.0.1',
gracePeriod: 1000,
ignoreFromSelf: true,
optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ]
}
},
{
match: {
graph: {
type: 'uri',
value: 'http://mu.semte.ch/graphs/administrative-unit'
}
},
callback: {
url: 'http://organizations-sync-with-sharepoint/delta',
method: 'POST'
},
options: {
resourceFormat: 'v0.0.1',
gracePeriod: 1000,
ignoreFromSelf: true,
optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ]
}
}
/*
Commenting ldes rules until ready to go to qa/prod. In the meantime, we override the configuration on dev.
{

View File

@@ -0,0 +1,38 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX org: <http://www.w3.org/ns/org#>
DELETE {
GRAPH ?g {
?mandaat ?pmandaat ?omandaat .
}
} WHERE {
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
GRAPH ?g {
?mandaat mandaat:isBestuurlijkeAliasVan ?person ;
?pmandaat ?omandaat .
}
FILTER NOT EXISTS { ?person ?pperson ?operson . }
}
;
DELETE {
GRAPH ?g {
?mandaat ?pmandaat ?omandaat .
}
} WHERE {
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
GRAPH ?g {
?mandaat mandaat:start ?start ;
?pmandaat ?omandaat .
}
FILTER NOT EXISTS { ?mandaat a ?type . }
}

View File

@@ -60,8 +60,8 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://cache/board-position-codes/"
end
match "/agents/*path", %{ accept: [:json], layer: :api} do
Proxy.forward conn, path, "http://cache/agents/"
match "/functionaries/*path", %{ accept: [:json], layer: :api} do
Proxy.forward conn, path, "http://cache/functionaries/"
end
match "/agent-status-codes/*path", %{ accept: [:json], layer: :api} do
@@ -357,6 +357,14 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://delta-producer-pub-graph-maintainer-organizations/files/"
end
#################################################################
# DELTA: organizations-public-info
#################################################################
get "/sync/organizations-public-info/files/*path" do
Proxy.forward conn, path, "http://delta-producer-pub-graph-maintainer-organizations-public-info/files/"
end
#################################################################
# DELTA: public
#################################################################
@@ -373,6 +381,14 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://delta-producer-pub-graph-maintainer-worship-posts/files/"
end
#################################################################
# Exports
#################################################################
get "/download-exports/*path" do
Proxy.forward conn, path, "http://download-exports/"
end
###############################################################
# frontend layer
###############################################################

View File

@@ -63,6 +63,38 @@
}
]
},
"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": [
{
@@ -126,5 +158,23 @@
"nextIndex": "0"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/initialSyncing/organizations": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/initialSyncing",
"nextIndex": "0"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/healingOperation/organizations": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/healing",
"nextIndex": "0"
}
]
}
}

View File

@@ -0,0 +1,202 @@
#fix nrs starting with 0032 in Administrative-unit
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?fixedTel .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?o .
}
FILTER(!regex(?o, ".*[a-zA-Z].*", "i")) .
BIND(REPLACE(STR(?o),"[. -/();:=+]","") AS ?removedSpaces) .
FILTER(STRSTARTS(?removedSpaces, "0032")) .
BIND(CONCAT("32", SUBSTR(?removedSpaces, 5)) as ?newTel ) .
FILTER(STRLEN(?newTel) > 9 and STRLEN(?newTel) < 12) .
BIND(CONCAT("+", ?newTel) AS ?fixedTel) .
}
;
#fix nrs starting with 0032 in worship-service
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?fixedTel .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?o .
}
FILTER(!regex(?o, ".*[a-zA-Z].*", "i")) .
BIND(REPLACE(STR(?o),"[. -/();:=+]","") AS ?removedSpaces) .
FILTER(STRSTARTS(?removedSpaces, "0032")) .
BIND(CONCAT("32", SUBSTR(?removedSpaces, 5)) as ?newTel ) .
FILTER(STRLEN(?newTel) > 9 and STRLEN(?newTel) < 12) .
BIND(CONCAT("+", ?newTel) AS ?fixedTel) .
}
;
#fix nrs starting with 320 in administrative-unit
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?fixedTel .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?o .
}
FILTER(!regex(?o, ".*[a-zA-Z].*", "i")) .
BIND(REPLACE(STR(?o),"[. -/();:=+]","") AS ?removedSpaces) .
FILTER(STRSTARTS(?removedSpaces, "320")) .
BIND(CONCAT("32", SUBSTR(?removedSpaces, 4)) as ?newTel ) .
FILTER(STRLEN(?newTel) > 9 and STRLEN(?newTel) < 12) .
BIND(CONCAT("+", ?newTel) AS ?fixedTel) .
}
;
#fix nrs starting with 320 in worship-service
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?fixedTel .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?o .
}
FILTER(!regex(?o, ".*[a-zA-Z].*", "i")) .
BIND(REPLACE(STR(?o),"[. -/();:=+]","") AS ?removedSpaces) .
FILTER(STRSTARTS(?removedSpaces, "0032")) .
BIND(CONCAT("+32", SUBSTR(?removedSpaces, 5)) as ?newTel ) .
FILTER(STRLEN(?newTel) > 9 and STRLEN(?newTel) < 12) .
BIND(CONCAT("+", ?newTel) AS ?fixedTel) .
}
;
#fix nrs starting with 0 in administrative-unit
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?fixedTel .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?o .
}
FILTER(!regex(?o, ".*[a-zA-Z].*", "i")) .
BIND(REPLACE(STR(?o),"[. -/();:=+]","") AS ?removedSpaces) .
FILTER(STRSTARTS(?removedSpaces, "0")) .
BIND(CONCAT("32", SUBSTR(?removedSpaces, 2)) as ?newTel ) .
FILTER(STRLEN(?newTel) > 9 and STRLEN(?newTel) < 12) .
BIND(CONCAT("+", ?newTel) AS ?fixedTel) .
}
;
#fix nrs starting with 03/04 in worship-service
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?fixedTel .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?o .
}
FILTER(!regex(?o, ".*[a-zA-Z].*", "i")) .
BIND(REPLACE(STR(?o),"[. -/();:=+]","") AS ?removedSpaces) .
FILTER(STRSTARTS(?removedSpaces, "0")) .
BIND(CONCAT("32", SUBSTR(?removedSpaces, 2)) as ?newTel ) .
FILTER(STRLEN(?newTel) > 9 and STRLEN(?newTel) < 12) .
BIND(CONCAT("+", ?newTel) AS ?fixedTel) .
}
;
#convert all nrs starting with 32 in administrative-unit
DELETE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?convertedTel .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?s <http://schema.org/telephone> ?o .
}
FILTER(!regex(?o, ".*[a-zA-Z].*", "i")) .
BIND(REPLACE(STR(?o),"[. -/();:=+]","") AS ?removedSpaces) .
FILTER(STRSTARTS(?removedSpaces, "32") AND STRLEN(?removedSpaces) > 9 and STRLEN(?removedSpaces) < 12) .
BIND(CONCAT("tel:+", ?removedSpaces) as ?convertedTel) .
}
;
#convert all nrs starting with 32 in worship-service
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?o .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?convertedTel .
}
}
WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?s <http://schema.org/telephone> ?o .
}
FILTER(!regex(?o, ".*[a-zA-Z].*", "i")) .
BIND(REPLACE(STR(?o),"[. -/();:=+]","") AS ?removedSpaces) .
FILTER(STRSTARTS(?removedSpaces, "32") AND STRLEN(?removedSpaces) > 9 and STRLEN(?removedSpaces) < 12) .
BIND(CONCAT("tel:+", ?removedSpaces) as ?convertedTel) .
}
;

View File

@@ -0,0 +1,32 @@
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX dc_terms: <http://purl.org/dc/terms/>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?org a dc_terms:Agent .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?org a org:Organization .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?org a dc_terms:Agent .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?org a org:Organization .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/shared> {
?org a dc_terms:Agent .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/shared> {
?org a org:Organization .
}
}

View File

@@ -0,0 +1,33 @@
PREFIX person: <http://www.w3.org/ns/person#>
PREFIX dc_terms: <http://purl.org/dc/terms/>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?person a dc_terms:Agent .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?person a person:Person .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?person a dc_terms:Agent .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?person a person:Person .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/shared> {
?person a dc_terms:Agent .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/shared> {
?person a person:Person .
}
}

View File

@@ -0,0 +1,32 @@
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX dc_terms: <http://purl.org/dc/terms/>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?agentInPosition a dc_terms:Agent .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?agentInPosition a ch:AgentInPositie .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?agentInPosition a dc_terms:Agent .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?agentInPosition a ch:AgentInPositie .
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/shared> {
?agentInPosition a dc_terms:Agent .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/shared> {
?agentInPosition a ch:AgentInPositie .
}
}

View File

@@ -0,0 +1,36 @@
PREFIX lblodlg: <http://data.lblod.info/vocabularies/leidinggevenden/>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX dc_terms: <http://purl.org/dc/terms/>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?functionary a dc_terms:Agent .
?functionary a ch:AgentInPositie .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?functionary a lblodlg:Functionaris
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?functionary a dc_terms:Agent .
?functionary a ch:AgentInPositie .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?functionary a lblodlg:Functionaris
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/shared> {
?functionary a dc_terms:Agent .
?functionary a ch:AgentInPositie .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/shared> {
?functionary a lblodlg:Functionaris
}
}

View File

@@ -0,0 +1,39 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX dc_terms: <http://purl.org/dc/terms/>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?mandatory a dc_terms:Agent .
?mandatory a ch:AgentInPositie .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?mandatory a mandaat:Mandataris
FILTER NOT EXISTS { ?mandatory a ch:AgentInPositie }
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?mandatory a dc_terms:Agent .
?mandatory a ch:AgentInPositie .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?mandatory a mandaat:Mandataris
FILTER NOT EXISTS { ?mandatory a ch:AgentInPositie }
}
}
INSERT {
GRAPH <http://mu.semte.ch/graphs/shared> {
?mandatory a dc_terms:Agent .
?mandatory a ch:AgentInPositie .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/shared> {
?mandatory a mandaat:Mandataris
FILTER NOT EXISTS { ?mandatory a ch:AgentInPositie }
}
}

View File

@@ -0,0 +1,17 @@
DELETE {
graph <http://mu.semte.ch/graphs/public> {
?instance rdf:type ?oldClass
}
}
INSERT {
graph <http://mu.semte.ch/graphs/public>{
?instance rdf:type ?newClass
}
}
where {
graph <http://mu.semte.ch/graphs/public>{
BIND (<http://lblod.data.gift/vocabularies/organisatie/BedienaarFinanceringCode> as ?oldClass)
BIND (<http://lblod.data.gift/vocabularies/organisatie/BedienaarFinancieringCode> as ?newClass)
?instance rdf:type ?oldClass .
}
}

View File

@@ -0,0 +1,9 @@
DELETE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/mandatarissen/fb8ce507f9dfc141e8353d33a7c0070f> ?p ?o .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
<http://data.lblod.info/id/mandatarissen/fb8ce507f9dfc141e8353d33a7c0070f> ?p ?o .
}
}

View File

@@ -0,0 +1,21 @@
PREFIX core: <http://mu.semte.ch/vocabularies/core/>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX lblodorg: <http://lblod.data.gift/vocabularies/organisatie/>
PREFIX euro: <http://data.europa.eu/m8g/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
DELETE WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?event a org:ChangeEvent ;
core:uuid "65699ADF6DEE214B7207D42F" ;
lblodorg:veranderingsgebeurtenisResultaat ?result ;
euro:hasFormalFramework ?decision ;
?ep ?eo .
?result a lblodorg:VeranderingsgebeurtenisResultaat ;
?rp ?ro .
?decision a besluit:Besluit ;
?de ?do .
}
}

View File

@@ -0,0 +1,24 @@
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX code: <http://lblod.data.gift/vocabularies/organisatie/>
INSERT {
graph ?g {
?ce org:resultingOrganization ?extResultingOrg.
?ce org:originalOrganization ?extResultingOrg
}
}
WHERE {
graph ?g {
?ce rdf:type org:ChangeEvent ;
code:veranderingsgebeurtenisResultaat ?resultaat.
?resultaat <http://lblod.data.gift/vocabularies/organisatie/resulterendeStatus> <http://lblod.data.gift/concepts/63cc561de9188d64ba5840a42ae8f0d6>.
?resultaat ext:resultingOrganization ?extResultingOrg.
filter not exists {?ce org:resultingOrganization ?result }
}
}

View File

@@ -0,0 +1,90 @@
PREFIX core: <http://mu.semte.ch/vocabularies/core/>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX lblodorg: <http://lblod.data.gift/vocabularies/organisatie/>
PREFIX euro: <http://data.europa.eu/m8g/>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX eredienst: <http://data.lblod.info/id/besturenVanDeEredienst/>
PREFIX changeEventResult: <http://lblod.data.info/id/veranderingsgebeurtenis-resultaten/>
PREFIX changeEvent: <http://data.lblod.info/id/veranderingsgebeurtenissen/>
# Delete unnecessary merger change events
DELETE WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?event a org:ChangeEvent ;
core:uuid "657AC8316DEE214B7207D455";
lblodorg:veranderingsgebeurtenisResultaat ?result ;
euro:hasFormalFramework ?decision ;
?ep ?eo .
?result a lblodorg:VeranderingsgebeurtenisResultaat ;
?rp ?ro .
?decision a besluit:Besluit ;
?de ?do .
}
}
;
DELETE WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?event a org:ChangeEvent ;
core:uuid "657AC9676DEE214B7207D45F" ;
lblodorg:veranderingsgebeurtenisResultaat ?result ;
euro:hasFormalFramework ?decision ;
?ep ?eo .
?result a lblodorg:VeranderingsgebeurtenisResultaat ;
?rp ?ro .
?decision a besluit:Besluit ;
?de ?do .
}
}
;
DELETE WHERE {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
?event a org:ChangeEvent ;
core:uuid "657AC7246DEE214B7207D450" ;
lblodorg:veranderingsgebeurtenisResultaat ?result ;
euro:hasFormalFramework ?decision ;
?ep ?eo .
?result a lblodorg:VeranderingsgebeurtenisResultaat ;
?rp ?ro .
?decision a besluit:Besluit ;
?de ?do .
}
}
;
# Update correct merger change event
INSERT {
GRAPH <http://mu.semte.ch/graphs/worship-service> {
# Add additional original organisations
?changeEvent org:originalOrganization eredienst:441c4d0f38df06ce1319c64bdd89999c ,
eredienst:eff52265e7a466ab9920499d7fb2c5d5 ,
eredienst:e2767a25df8f412df71b785164828874 .
# Add additional change event results
?changeEvent lblodorg:veranderingsgebeurtenisResultaat changeEventResult:65BA04DCBB8AD42C21C8B2EE .
changeEventResult:65BA04DCBB8AD42C21C8B2EE a lblodorg:VeranderingsgebeurtenisResultaat ;
core:uuid "65BA04DCBB8AD42C21C8B2EE" ;
lblodorg:resulterendeStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> ;
ext:resultingOrganization eredienst:441c4d0f38df06ce1319c64bdd89999c .
?changeEvent lblodorg:veranderingsgebeurtenisResultaat changeEventResult:65BA04DCBB8AD42C21C8B2ED .
changeEventResult:65BA04DCBB8AD42C21C8B2ED a lblodorg:VeranderingsgebeurtenisResultaat ;
core:uuid "65BA04DCBB8AD42C21C8B2ED" ;
lblodorg:resulterendeStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> ;
ext:resultingOrganization eredienst:eff52265e7a466ab9920499d7fb2c5d5 .
?changeEvent lblodorg:veranderingsgebeurtenisResultaat changeEventResult:65BA04DCBB8AD42C21C8B2EC .
changeEventResult:65BA04DCBB8AD42C21C8B2EC a lblodorg:VeranderingsgebeurtenisResultaat ;
core:uuid "65BA04DCBB8AD42C21C8B2EC" ;
lblodorg:resulterendeStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> ;
ext:resultingOrganization eredienst:e2767a25df8f412df71b785164828874 .
}
} WHERE {
?changeEvent a org:ChangeEvent ;
core:uuid "657AC8BF6DEE214B7207D45A" .
}

View File

@@ -0,0 +1,253 @@
;
; virtuoso.ini
;
; Configuration file for the OpenLink Virtuoso VDBMS Server
;
; To learn more about this product, or any other product in our
; portfolio, please check out our web site at:
;
; http://virtuoso.openlinksw.com/
;
; or contact us at:
;
; general.information@openlinksw.com
;
; If you have any technical questions, please contact our support
; staff at:
;
; technical.support@openlinksw.com
;
;
; Database setup
;
[Database]
DatabaseFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.db
ErrorLogFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.log
LockFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.lck
TransactionFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.trx
xa_persistent_file = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.pxa
ErrorLogLevel = 7
FileExtend = 200
MaxCheckpointRemap = 17000 ;;niels 1/4 of the number of buffers (assuming db uses most of the available buffers, you can check with `status()` in isql-v
Striping = 0
TempStorage = TempDatabase
Syslog = 1 ; write to syslog in case of failures where writing to log is not possible
[TempDatabase]
DatabaseFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso-temp.db
TransactionFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso-temp.trx
MaxCheckpointRemap = 2000
Striping = 0
;
; Server parameters
;
[Parameters]
ServerPort = 1111
LiteMode = 0
DisableUnixSocket = 1
DisableTcpSocket = 0
;SSLServerPort = 2111
;SSLCertificate = cert.pem
;SSLPrivateKey = pk.pem
;X509ClientVerify = 0
;X509ClientVerifyDepth = 0
;X509ClientVerifyCAFile = ca.pem
MaxClientConnections = 10
CheckpointInterval = 60
TraceOn = errors ; write traces
O_DIRECT = 0
CaseMode = 2
MaxStaticCursorRows = 5000
CheckpointAuditTrail = 0
AllowOSCalls = 0
SchedulerInterval = 10
DirsAllowed = ., /usr/local/virtuoso-opensource/share/virtuoso/vad
ThreadCleanupInterval = 10
ThreadThreshold = 10
ResourcesCleanupInterval = 10
FreeTextBatchSize = 100000
SingleCPU = 0
VADInstallDir = /usr/local/virtuoso-opensource/share/virtuoso/vad/
PrefixResultNames = 0
RdfFreeTextRulesSize = 100
IndexTreeMaps = 256
MaxMemPoolSize = 200000000
PrefixResultNames = 0
MacSpotlight = 0
MaxQueryMem = 4G ; memory allocated to query processor ;;Niels said to 4g
VectorSize = 1000 ; initial parallel query vector (array of query operations) size
MaxVectorSize = 1000000 ; query vector size threshold.
AdjustVectorSize = 0
ThreadsPerQuery = 4
AsyncQueueMaxThreads = 10
TransactionAfterImageLimit = 150000000 ; max 150MB transaction, total transient consumption is 450MB (roll forward + roll back)
;;
;; When running with large data sets, one should configure the Virtuoso
;; process to use between 2/3 to 3/5 of free system memory and to stripe
;; storage on all available disks.
;;
;; Uncomment next two lines if there is 2 GB system memory free
;;NumberOfBuffers = 170000
;;MaxDirtyBuffers = 130000
;; Uncomment next two lines if there is 4 GB system memory free
;;NumberOfBuffers = 340000
;;MaxDirtyBuffers = 250000
;; Uncomment next two lines if there is 8 GB system memory free
NumberOfBuffers = 680000
MaxDirtyBuffers = 500000
;; Uncomment next two lines if there is 16 GB system memory free
;NumberOfBuffers = 1360000
;MaxDirtyBuffers = 1000000
;; Uncomment next two lines if there is 32 GB system memory free
;NumberOfBuffers = 2720000
;MaxDirtyBuffers = 2000000
;; Uncomment next two lines if there is 48 GB system memory free
;NumberOfBuffers = 4000000
;MaxDirtyBuffers = 3000000
;; Uncomment next two lines if there is 64 GB system memory free
;NumberOfBuffers = 5450000
;MaxDirtyBuffers = 4000000
;;
;; Note the default settings will take very little memory
;; but will not result in very good performance
;;
;NumberOfBuffers = 10000
;MaxDirtyBuffers = 6000
;; Introduced after bug with export service
MaxSortedTopRows = 1000000 ; 1 million!
[HTTPServer]
ServerPort = 8890
ServerRoot = /usr/local/virtuoso-opensource/var/lib/virtuoso/vsp
MaxClientConnections = 10
DavRoot = DAV
EnabledDavVSP = 0
HTTPProxyEnabled = 0
TempASPXDir = 0
DefaultMailServer = localhost:25
ServerThreads = 10
MaxKeepAlives = 10
KeepAliveTimeout = 10
MaxCachedProxyConnections = 10
ProxyConnectionCacheTimeout = 15
HTTPThreadSize = 280000
HttpPrintWarningsInOutput = 0
Charset = UTF-8
;;HTTPLogFile = http.log
MaintenancePage = atomic.html
EnabledGzipContent = 1
[AutoRepair]
BadParentLinks = 0
[Client]
SQL_PREFETCH_ROWS = 100
SQL_PREFETCH_BYTES = 16000
SQL_QUERY_TIMEOUT = 0
SQL_TXN_TIMEOUT = 0
;SQL_NO_CHAR_C_ESCAPE = 1
;SQL_UTF8_EXECS = 0
;SQL_NO_SYSTEM_TABLES = 0
;SQL_BINARY_TIMESTAMP = 1
;SQL_ENCRYPTION_ON_PASSWORD = -1
[VDB]
ArrayOptimization = 0
NumArrayParameters = 10
VDBDisconnectTimeout = 1000
KeepConnectionOnFixedThread = 0
[Replication]
ServerName = db-D602566B774E
ServerEnable = 1
QueueMax = 50000
;
; Striping setup
;
; These parameters have only effect when Striping is set to 1 in the
; [Database] section, in which case the DatabaseFile parameter is ignored.
;
; With striping, the database is spawned across multiple segments
; where each segment can have multiple stripes.
;
; Format of the lines below:
; Segment<number> = <size>, <stripe file name> [, <stripe file name> .. ]
;
; <number> must be ordered from 1 up.
;
; The <size> is the total size of the segment which is equally divided
; across all stripes forming the segment. Its specification can be in
; gigabytes (g), megabytes (m), kilobytes (k) or in database blocks
; (b, the default)
;
; Note that the segment size must be a multiple of the database page size
; which is currently 8k. Also, the segment size must be divisible by the
; number of stripe files forming the segment.
;
; The example below creates a 200 meg database striped on two segments
; with two stripes of 50 meg and one of 100 meg.
;
; You can always add more segments to the configuration, but once
; added, do not change the setup.
;
[Striping]
Segment1 = 100M, db-seg1-1.db, db-seg1-2.db
Segment2 = 100M, db-seg2-1.db
;...
;[TempStriping]
;Segment1 = 100M, db-seg1-1.db, db-seg1-2.db
;Segment2 = 100M, db-seg2-1.db
;...
;[Ucms]
;UcmPath = <path>
;Ucm1 = <file>
;Ucm2 = <file>
;...
[Zero Config]
ServerName = virtuoso (D602566B774E)
;ServerDSN = ZDSN
;SSLServerName =
;SSLServerDSN =
[Mono]
;MONO_TRACE = Off
;MONO_PATH = <path_here>
;MONO_ROOT = <path_here>
;MONO_CFG_DIR = <path_here>
;virtclr.dll =
[URIQA]
DynamicLocal = 0
DefaultHost = localhost:8890
[SPARQL]
;ExternalQuerySource = 1
;ExternalXsltSource = 1
;DefaultGraph = http://localhost:8890/dataspace
;ImmutableGraphs = http://localhost:8890/dataspace
ResultSetMaxRows = 1000000 ; 1 million
;MaxQueryCostEstimationTime = 4000 ; in seconds
MaxQueryExecutionTime = 1200 ; in seconds
DefaultQuery = select distinct ?Concept where {[] a ?Concept} LIMIT 100
DeferInferenceRulesInit = 0 ; controls inference rules loading
;PingService = http://rpc.pingthesemanticweb.com/
[Plugins]
LoadPath = /usr/local/virtuoso-opensource/lib/virtuoso/hosting
;Load1 = plain, wikiv
;Load2 = plain, mediawiki
;Load3 = plain, creolewiki
;Load4 = plain, im
;Load5 = plain, wbxml2
;Load6 = plain, hslookup
;Load7 = attach, libphp5.so
;Load8 = Hosting, hosting_php.so
;Load9 = Hosting,hosting_perl.so
;Load10 = Hosting,hosting_python.so
;Load11 = Hosting,hosting_ruby.so
;Load12 = msdtc,msdtc_sample

View File

@@ -0,0 +1,253 @@
;
; virtuoso.ini
;
; Configuration file for the OpenLink Virtuoso VDBMS Server
;
; To learn more about this product, or any other product in our
; portfolio, please check out our web site at:
;
; http://virtuoso.openlinksw.com/
;
; or contact us at:
;
; general.information@openlinksw.com
;
; If you have any technical questions, please contact our support
; staff at:
;
; technical.support@openlinksw.com
;
;
; Database setup
;
[Database]
DatabaseFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.db
ErrorLogFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.log
LockFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.lck
TransactionFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.trx
xa_persistent_file = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.pxa
ErrorLogLevel = 7
FileExtend = 200
MaxCheckpointRemap = 8500 ;;niels 1/4 of the number of buffers (assuming db uses most of the available buffers, you can check with `status()` in isql-v
Striping = 0
TempStorage = TempDatabase
Syslog = 1 ; write to syslog in case of failures where writing to log is not possible
[TempDatabase]
DatabaseFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso-temp.db
TransactionFile = /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso-temp.trx
MaxCheckpointRemap = 2000
Striping = 0
;
; Server parameters
;
[Parameters]
ServerPort = 1111
LiteMode = 0
DisableUnixSocket = 1
DisableTcpSocket = 0
;SSLServerPort = 2111
;SSLCertificate = cert.pem
;SSLPrivateKey = pk.pem
;X509ClientVerify = 0
;X509ClientVerifyDepth = 0
;X509ClientVerifyCAFile = ca.pem
MaxClientConnections = 10
CheckpointInterval = 60
TraceOn = errors ; write traces
O_DIRECT = 0
CaseMode = 2
MaxStaticCursorRows = 5000
CheckpointAuditTrail = 0
AllowOSCalls = 0
SchedulerInterval = 10
DirsAllowed = ., /usr/local/virtuoso-opensource/share/virtuoso/vad
ThreadCleanupInterval = 10
ThreadThreshold = 10
ResourcesCleanupInterval = 10
FreeTextBatchSize = 100000
SingleCPU = 0
VADInstallDir = /usr/local/virtuoso-opensource/share/virtuoso/vad/
PrefixResultNames = 0
RdfFreeTextRulesSize = 100
IndexTreeMaps = 256
MaxMemPoolSize = 200000000
PrefixResultNames = 0
MacSpotlight = 0
MaxQueryMem = 2G
VectorSize = 1000 ; initial parallel query vector (array of query operations) size
MaxVectorSize = 1000000 ; query vector size threshold.
AdjustVectorSize = 0
ThreadsPerQuery = 4
AsyncQueueMaxThreads = 10
TransactionAfterImageLimit = 150000000 ; max 150MB transaction, total transient consumption is 450MB (roll forward + roll back)
;;
;; When running with large data sets, one should configure the Virtuoso
;; process to use between 2/3 to 3/5 of free system memory and to stripe
;; storage on all available disks.
;;
;; Uncomment next two lines if there is 2 GB system memory free
;;NumberOfBuffers = 170000
;;MaxDirtyBuffers = 130000
;; Uncomment next two lines if there is 4 GB system memory free
NumberOfBuffers = 340000
MaxDirtyBuffers = 250000
;; Uncomment next two lines if there is 8 GB system memory free
;NumberOfBuffers = 680000
;MaxDirtyBuffers = 500000
;; Uncomment next two lines if there is 16 GB system memory free
;NumberOfBuffers = 1360000
;MaxDirtyBuffers = 1000000
;; Uncomment next two lines if there is 32 GB system memory free
;NumberOfBuffers = 2720000
;MaxDirtyBuffers = 2000000
;; Uncomment next two lines if there is 48 GB system memory free
;NumberOfBuffers = 4000000
;MaxDirtyBuffers = 3000000
;; Uncomment next two lines if there is 64 GB system memory free
;NumberOfBuffers = 5450000
;MaxDirtyBuffers = 4000000
;;
;; Note the default settings will take very little memory
;; but will not result in very good performance
;;
;NumberOfBuffers = 10000
;MaxDirtyBuffers = 6000
;; Introduced after bug with export service
MaxSortedTopRows = 1000000 ; 1 million!
[HTTPServer]
ServerPort = 8890
ServerRoot = /usr/local/virtuoso-opensource/var/lib/virtuoso/vsp
MaxClientConnections = 10
DavRoot = DAV
EnabledDavVSP = 0
HTTPProxyEnabled = 0
TempASPXDir = 0
DefaultMailServer = localhost:25
ServerThreads = 10
MaxKeepAlives = 10
KeepAliveTimeout = 10
MaxCachedProxyConnections = 10
ProxyConnectionCacheTimeout = 15
HTTPThreadSize = 280000
HttpPrintWarningsInOutput = 0
Charset = UTF-8
;;HTTPLogFile = http.log
MaintenancePage = atomic.html
EnabledGzipContent = 1
[AutoRepair]
BadParentLinks = 0
[Client]
SQL_PREFETCH_ROWS = 100
SQL_PREFETCH_BYTES = 16000
SQL_QUERY_TIMEOUT = 0
SQL_TXN_TIMEOUT = 0
;SQL_NO_CHAR_C_ESCAPE = 1
;SQL_UTF8_EXECS = 0
;SQL_NO_SYSTEM_TABLES = 0
;SQL_BINARY_TIMESTAMP = 1
;SQL_ENCRYPTION_ON_PASSWORD = -1
[VDB]
ArrayOptimization = 0
NumArrayParameters = 10
VDBDisconnectTimeout = 1000
KeepConnectionOnFixedThread = 0
[Replication]
ServerName = db-D602566B774E
ServerEnable = 1
QueueMax = 50000
;
; Striping setup
;
; These parameters have only effect when Striping is set to 1 in the
; [Database] section, in which case the DatabaseFile parameter is ignored.
;
; With striping, the database is spawned across multiple segments
; where each segment can have multiple stripes.
;
; Format of the lines below:
; Segment<number> = <size>, <stripe file name> [, <stripe file name> .. ]
;
; <number> must be ordered from 1 up.
;
; The <size> is the total size of the segment which is equally divided
; across all stripes forming the segment. Its specification can be in
; gigabytes (g), megabytes (m), kilobytes (k) or in database blocks
; (b, the default)
;
; Note that the segment size must be a multiple of the database page size
; which is currently 8k. Also, the segment size must be divisible by the
; number of stripe files forming the segment.
;
; The example below creates a 200 meg database striped on two segments
; with two stripes of 50 meg and one of 100 meg.
;
; You can always add more segments to the configuration, but once
; added, do not change the setup.
;
[Striping]
Segment1 = 100M, db-seg1-1.db, db-seg1-2.db
Segment2 = 100M, db-seg2-1.db
;...
;[TempStriping]
;Segment1 = 100M, db-seg1-1.db, db-seg1-2.db
;Segment2 = 100M, db-seg2-1.db
;...
;[Ucms]
;UcmPath = <path>
;Ucm1 = <file>
;Ucm2 = <file>
;...
[Zero Config]
ServerName = virtuoso (D602566B774E)
;ServerDSN = ZDSN
;SSLServerName =
;SSLServerDSN =
[Mono]
;MONO_TRACE = Off
;MONO_PATH = <path_here>
;MONO_ROOT = <path_here>
;MONO_CFG_DIR = <path_here>
;virtclr.dll =
[URIQA]
DynamicLocal = 0
DefaultHost = localhost:8890
[SPARQL]
;ExternalQuerySource = 1
;ExternalXsltSource = 1
;DefaultGraph = http://localhost:8890/dataspace
;ImmutableGraphs = http://localhost:8890/dataspace
ResultSetMaxRows = 1000000 ; 1 million
;MaxQueryCostEstimationTime = 4000 ; in seconds
MaxQueryExecutionTime = 1200 ; in seconds
DefaultQuery = select distinct ?Concept where {[] a ?Concept} LIMIT 100
DeferInferenceRulesInit = 0 ; controls inference rules loading
;PingService = http://rpc.pingthesemanticweb.com/
[Plugins]
LoadPath = /usr/local/virtuoso-opensource/lib/virtuoso/hosting
;Load1 = plain, wikiv
;Load2 = plain, mediawiki
;Load3 = plain, creolewiki
;Load4 = plain, im
;Load5 = plain, wbxml2
;Load6 = plain, hslookup
;Load7 = attach, libphp5.so
;Load8 = Hosting, hosting_php.so
;Load9 = Hosting,hosting_perl.so
;Load10 = Hosting,hosting_python.so
;Load11 = Hosting,hosting_ruby.so
;Load12 = msdtc,msdtc_sample

View File

@@ -17,7 +17,11 @@ 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 dc_terms: <http://purl.org/dc/terms/>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX person: <http://www.w3.org/ns/person#>
PREFIX lblodlg: <http://data.lblod.info/vocabularies/leidinggevenden/>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
# DL and OP both use persoon:gebruikteVoornaam but with different semantics (!)
# Hence the mapping is in two steps.
@@ -148,3 +152,34 @@ PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
} => {
?s generiek:isTijdspecialisatieVan ?o.
}.
# In OP functionaris inherits from agents-in-position, which inherits from Agent
{
?s a lblodlg:Functionaris .
} => {
?s a ch:AgentInPositie ,
dc_terms:Agent .
} .
# In OP mandataris inherits from agents-in-position, which inherits from Agent
{
?s a mandaat:Mandataris .
} => {
?s a ch:AgentInPositie ,
dc_terms:Agent .
} .
# In OP minister inherits from agents-in-position, which inherits from Agent
{
?s a ere:RolBedienaar .
} => {
?s a ch:AgentInPositie ,
dc_terms:Agent .
} .
# In OP Person inherits from Agent
{
?s a person:Person .
} => {
?s a dc_terms:Agent .
} .

View File

@@ -0,0 +1,32 @@
PREFIX string: <http://www.w3.org/2000/10/swap/string#>
PREFIX e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>
PREFIX schema: <http://schema.org/>
PREFIX : <#>
{
?s schema:telephone ?number.
# Remove all non digits
( ?number ("""[^+\\d]""") ("") ) string:replaceAll ?scrape_result.
# Replace leading 00 with +
( ?scrape_result """^00""" "+") string:replace ?replaced_zero_zero.
( ?replaced_zero_zero """^0""" "+32") string:replace ?default_be.
( ?default_be """\\+320""" "+32" ) string:replace ?replace_320.
( ?replace_320 """^320""" "+32" ) string:replace ?final_result.
?final_result string:matches """^\\+((32\\d{8})|(324\\d{8})|((?!32)\\d+))$""".
( "tel:" ?final_result ) string:concatenation ?parsed_result .
{
?s schema:telephone ?number.
} e:becomes {
?s schema:telephone ?parsed_result .
}.
} => {
?s schema:telephone ?parsed_result .
}.

View File

@@ -127,6 +127,18 @@
?s a <http://www.w3.org/ns/person#Person>
}.
{
?s a <http://purl.org/dc/terms/Agent>
} => {
?s a <http://purl.org/dc/terms/Agent>
}.
{
?s a <http://data.lblod.info/vocabularies/contacthub/AgentInPositie>
} => {
?s a <http://data.lblod.info/vocabularies/contacthub/AgentInPositie>
}.
{
?s a <http://www.w3.org/ns/prov#Location>
} => {

View File

@@ -17,6 +17,10 @@ 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 dc_terms: <http://purl.org/dc/terms/>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX person: <http://www.w3.org/ns/person#>
PREFIX lblodlg: <http://data.lblod.info/vocabularies/leidinggevenden/>
# DL and OP both use persoon:gebruikteVoornaam but with different semantics (!)
# Hence the mapping is in two steps.
@@ -171,4 +175,34 @@ PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
}
} => {
?s generiek:isTijdspecialisatieVan ?o.
}.
} .
# In OP functionaris inherits from agents-in-position, which inherits from Agent
{
?s a lblodlg:Functionaris .
} => {
?s a ch:AgentInPositie ,
dc_terms:Agent .
} .
# In OP mandataris inherits from agents-in-position, which inherits from Agent
{
?s a mandaat:Mandataris .
} => {
?s a ch:AgentInPositie ,
dc_terms:Agent .
} .
# In OP AgentInPositie inherits from Agent
{
?s a ch:AgentInPositie .
} => {
?s a dc_terms:Agent .
} .
# In OP Person inherits from Agent
{
?s a person:Person .
} => {
?s a dc_terms:Agent .
} .

View File

@@ -0,0 +1,32 @@
PREFIX string: <http://www.w3.org/2000/10/swap/string#>
PREFIX e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>
PREFIX schema: <http://schema.org/>
PREFIX : <#>
{
?s schema:telephone ?number.
# Remove all non digits
( ?number ("""[^+\\d]""") ("") ) string:replaceAll ?scrape_result.
# Replace leading 00 with +
( ?scrape_result """^00""" "+") string:replace ?replaced_zero_zero.
( ?replaced_zero_zero """^0""" "+32") string:replace ?default_be.
( ?default_be """\\+320""" "+32" ) string:replace ?replace_320.
( ?replace_320 """^320""" "+32" ) string:replace ?final_result.
?final_result string:matches """^\\+((32\\d{8})|(324\\d{8})|((?!32)\\d+))$""".
( "tel:" ?final_result ) string:concatenation ?parsed_result .
{
?s schema:telephone ?number.
} e:becomes {
?s schema:telephone ?parsed_result .
}.
} => {
?s schema:telephone ?parsed_result .
}.

View File

@@ -26,6 +26,16 @@
?p ?o .
}.
# For functionarissen, the contact point is on the bestuursfunctie and not on the agent in position
{
?s a <http://data.lblod.info/vocabularies/leidinggevenden/Bestuursfunctie> ;
<http://schema.org/contactPoint> ?o .
} => {
?s a <http://data.lblod.info/vocabularies/leidinggevenden/Bestuursfunctie> ;
<http://schema.org/contactPoint> ?o .
}.
# Functionarissen should be linked to an igs, agb, apb, gemeente, district, provincie or ocmw only (FOR NOW)
{
@@ -225,8 +235,6 @@
?p ?o .
}.
{
?s a <http://www.w3.org/ns/org#Membership> ;
?p ?o .

5
config/reports/index.js Normal file
View File

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

View File

@@ -0,0 +1,115 @@
import { generateReportFromData, batchedQuery } from '../helpers.js';
import { PREFIXES } from './utils'
export default {
cronPattern: '0 00 23 * * *',
name: 'organizations',
execute: async () => {
const reportData = {
title: 'organizations',
description: 'List of the Organizations',
filePrefix: 'exports/organizations'
};
console.log('Generating organizations report');
const queryStringPart1 = `
${PREFIXES}
SELECT DISTINCT ?bestuur ?label ?classification ?typeEredienst
WHERE {
VALUES ?type {
org:Organization
besluit:Bestuurseenheid
}
GRAPH ?g {
?bestuur a ?type .
OPTIONAL { ?bestuur skos:prefLabel ?label. }
}
OPTIONAL {
?bestuur org:classification ?classificationUri .
?classificationUri skos:prefLabel ?classification.
}
OPTIONAL {
?bestuur ere:typeEredienst ?typeEredienstUri.
?typeEredienstUri skos:prefLabel ?typeEredienst.
}
FILTER (?g IN ( <http://mu.semte.ch/graphs/administrative-unit>, <http://mu.semte.ch/graphs/worship-service>, <http://mu.semte.ch/graphs/shared>))
}
`;
const queryResponsePart1 = await batchedQuery(queryStringPart1);
const dataPart1 = queryResponsePart1.results.bindings.reduce( (acc, row) => {
acc[getSafeValue(row, 'bestuur')] = {
bestuur: getSafeValue(row, 'bestuur'),
label: getSafeValue(row, 'label'),
classification: getSafeValue(row, 'classification'),
typeEredienst: getSafeValue(row, 'typeEredienst'),
};
return acc;
}, {});
const queryStringPart2 = `
${PREFIXES}
SELECT DISTINCT ?bestuur ?provincie
WHERE {
VALUES ?type {
org:Organization
besluit:Bestuurseenheid
}
GRAPH ?g {
?bestuur a ?type .
}
GRAPH ?h {
OPTIONAL {
?bestuur org:hasPrimarySite ?primarySite.
OPTIONAL {
?primarySite organisatie:bestaatUit ?sa.
OPTIONAL { ?sa locn:adminUnitL2 ?provincie. }
}
}
}
FILTER (?g IN ( <http://mu.semte.ch/graphs/administrative-unit>, <http://mu.semte.ch/graphs/worship-service>, <http://mu.semte.ch/graphs/shared>))
FILTER (?h IN ( <http://mu.semte.ch/graphs/administrative-unit>, <http://mu.semte.ch/graphs/worship-service>, <http://mu.semte.ch/graphs/shared>))
}
`;
const queryResponsePart2 = await batchedQuery(queryStringPart2);
const dataPart2 = queryResponsePart2.results.bindings.reduce( (acc, row) => {
let dataPart = {
bestuur: getSafeValue(row, 'bestuur'),
provincie: getSafeValue(row, 'provincie')
};
acc[getSafeValue(row, 'bestuur')] = Object.assign(dataPart, dataPart1[getSafeValue(row, 'bestuur')]);
return acc;
}, {});
await generateReportFromData(Object.values(dataPart2), [
'bestuur',
'label',
'classification',
'typeEredienst',
'provincie'
], 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}\"`;
}

29
config/reports/utils.js Normal file
View File

@@ -0,0 +1,29 @@
export const PREFIXES = `
PREFIX adms: <http://www.w3.org/ns/adms#>
PREFIX adres: <https://data.vlaanderen.be/ns/adres#>
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX code: <http://lblod.data.gift/vocabularies/organisatie/>
PREFIX dbpedia: <http://dbpedia.org/ontology/>
PREFIX dc_terms: <http://purl.org/dc/terms/>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX euro: <http://data.europa.eu/m8g/>
PREFIX euvoc: <http://publications.europa.eu/ontology/euvoc#>
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
PREFIX lblodlg: <https://data.lblod.info/vocabularies/leidinggevenden/>
PREFIX locn: <http://www.w3.org/ns/locn#>
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX organisatie: <https://data.vlaanderen.be/ns/organisatie#>
PREFIX person: <http://www.w3.org/ns/person#>
PREFIX persoon: <https://data.vlaanderen.be/ns/persoon#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX regorg: <http://www.w3.org/ns/regorg#>
PREFIX schema: <http://schema.org/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
`;

View File

@@ -32,8 +32,25 @@
"nacebel": "http://data.gift/vocabularies/nace-bel/"
},
"resources": {
"agents": {
"class": "dc_terms:Agent",
"relationships": {
"position": {
"predicate": "org:holds",
"target": "posts",
"cardinality": "many"
},
"contacts": {
"predicate": "schema:contactPoint",
"target": "contact-points",
"cardinality": "many"
}
},
"new-resource-base": "http://data.lblod.info/id/agenten/"
},
"people": {
"class": "person:Person",
"super": ["agents"],
"attributes": {
"given-name": {
"type": "string",
@@ -61,9 +78,9 @@
"cardinality": "many",
"inverse": true
},
"agents": {
"functionaries": {
"predicate": "mandaat:isBestuurlijkeAliasVan",
"target": "agents",
"target": "functionaries",
"cardinality": "many",
"inverse": true
}
@@ -72,6 +89,7 @@
},
"agents-in-position": {
"class": "ch:AgentInPositie",
"super": ["agents"],
"attributes": {
"agent-start-date": {
"type": "date",
@@ -83,11 +101,6 @@
}
},
"relationships": {
"position": {
"predicate": "org:holds",
"target": "posts",
"cardinality": "one"
},
"person": {
"predicate": "org:heldBy",
"target": "people",
@@ -114,20 +127,17 @@
"target": "organizations",
"cardinality": "one"
},
"agents-in-position": {
"predicate": "org:holds",
"target": "agents-in-position",
"cardinality": "many",
"inverse": true
"agent": {
"predicate": "org:heldBy",
"target": "agents",
"cardinality": "one"
}
},
"new-resource-base": "http://data.lblod.info/id/posities/"
},
"mandatories": {
"class": "mandaat:Mandataris",
"super": [
"agents-in-position"
],
"super": ["agents-in-position"],
"attributes": {
"start-date": {
"type": "date",
@@ -170,16 +180,12 @@
"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",
@@ -244,9 +250,7 @@
},
"mandates": {
"class": "mandaat:Mandaat",
"super": [
"posts"
],
"super": ["posts"],
"relationships": {
"role-board": {
"predicate": "org:role",
@@ -268,11 +272,9 @@
},
"new-resource-base": "http://data.lblod.info/id/mandaten/"
},
"agents": {
"functionaries": {
"class": "lblodlg:Functionaris",
"super": [
"agents-in-position"
],
"super": ["agents-in-position"],
"attributes": {
"start-date": {
"type": "datetime",
@@ -310,16 +312,12 @@
"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",
@@ -369,6 +367,7 @@
},
"organizations": {
"class": "org:Organization",
"super": ["agents"],
"attributes": {
"name": {
"type": "string",
@@ -490,9 +489,7 @@
},
"administrative-units": {
"class": "besluit:Bestuurseenheid",
"super": [
"organizations"
],
"super": ["organizations"],
"relationships": {
"classification": {
"predicate": "org:classification",
@@ -540,16 +537,12 @@
},
"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",
@@ -572,9 +565,7 @@
},
"worship-services": {
"class": "ere:BestuurVanDeEredienst",
"super": [
"worship-administrative-units"
],
"super": ["worship-administrative-units"],
"attributes": {
"denomination": {
"type": "string",
@@ -599,16 +590,12 @@
},
"central-worship-services": {
"class": "ere:CentraalBestuurVanDeEredienst",
"super": [
"worship-administrative-units"
],
"super": ["worship-administrative-units"],
"new-resource-base": "http://data.lblod.info/id/centraleBesturenVanDeEredienst/"
},
"representative-bodies": {
"class": "ere:RepresentatiefOrgaan",
"super": [
"organizations"
],
"super": ["organizations"],
"relationships": {
"classification": {
"predicate": "org:classification",
@@ -631,9 +618,7 @@
},
"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": {
@@ -851,9 +836,7 @@
"predicate": "skos:prefLabel"
}
},
"features": [
"include-uri"
],
"features": ["include-uri"],
"new-resource-base": "http://lblod.data.gift/concepts/"
},
"locations": {
@@ -906,9 +889,7 @@
},
"ministers": {
"class": "ere:RolBedienaar",
"super": [
"agents-in-position"
],
"super": ["agents-in-position"],
"relationships": {
"minister-position": {
"predicate": "org:holds",
@@ -976,9 +957,7 @@
},
"minister-positions": {
"class": "ere:PositieBedienaar",
"super": [
"posts"
],
"super": ["posts"],
"relationships": {
"function": {
"predicate": "ere:functie",
@@ -1016,7 +995,7 @@
"new-resource-base": "http://lblod.data.gift/concepts/"
},
"financing-codes": {
"class": "code:BedienaarFinanceringCode",
"class": "code:BedienaarFinancieringCode",
"attributes": {
"label": {
"type": "string",

View File

@@ -250,8 +250,8 @@
}
},
{
"type": "agent",
"on_path": "agents",
"type": "functionary",
"on_path": "functionaries",
"rdf_type": "http://data.lblod.info/vocabularies/leidinggevenden/Functionaris",
"properties": {
"given_name": [
@@ -568,14 +568,14 @@
},
{
"type": "person",
"composite_types": ["minister", "agent", "mandatory"],
"composite_types": ["minister", "functionary", "mandatory"],
"on_path": "people",
"properties": [
{
"name": "given_name",
"mappings": {
"minister": "given_name",
"agent": "given_name",
"functionary": "given_name",
"mandatory": "given_name"
}
},
@@ -583,7 +583,7 @@
"name": "person_id",
"mappings": {
"minister": "person_id",
"agent": "person_id",
"functionary": "person_id",
"mandatory": "person_id"
}
},
@@ -591,7 +591,7 @@
"name": "family_name",
"mappings": {
"minister": "family_name",
"agent": "family_name",
"functionary": "family_name",
"mandatory": "family_name"
}
},
@@ -599,7 +599,7 @@
"name": "first_name_used",
"mappings": {
"minister": "first_name_used",
"agent": "first_name_used",
"functionary": "first_name_used",
"mandatory": "first_name_used"
}
},
@@ -607,7 +607,7 @@
"name": "end_date",
"mappings": {
"minister": "end_date",
"agent": "end_date",
"functionary": "end_date",
"mandatory": "end_date"
}
},
@@ -615,7 +615,7 @@
"name": "organization_id",
"mappings": {
"minister": "organization_id",
"agent": "organization_id",
"functionary": "organization_id",
"mandatory": "organization_id"
}
},
@@ -623,7 +623,7 @@
"name": "organization_classification",
"mappings": {
"minister": "organization_classification",
"agent": "organization_classification",
"functionary": "organization_classification",
"mandatory": "organization_classification"
}
},
@@ -631,7 +631,7 @@
"name": "organization_name",
"mappings": {
"minister": "organization_name",
"agent": "organization_name",
"functionary": "organization_name",
"mandatory": "organization_name"
}
},
@@ -639,7 +639,7 @@
"name": "organization_municipality",
"mappings": {
"minister": "organization_municipality",
"agent": "organization_municipality",
"functionary": "organization_municipality",
"mandatory": "organization_municipality"
}
},
@@ -647,7 +647,7 @@
"name": "organization_province",
"mappings": {
"minister": "organization_province",
"agent": "organization_province",
"functionary": "organization_province",
"mandatory": "organization_province"
}
},
@@ -655,7 +655,7 @@
"name": "position_id",
"mappings": {
"minister": "position_id",
"agent": "position_id",
"functionary": "position_id",
"mandatory": "position_id"
}
},
@@ -663,7 +663,7 @@
"name": "position_name",
"mappings": {
"minister": "position_name",
"agent": "position_name",
"functionary": "position_name",
"mandatory": "position_name"
}
}

View File

@@ -222,8 +222,8 @@
}
},
{
"type": "agent",
"on_path": "agents",
"type": "functionary",
"on_path": "functionaries",
"rdf_type": "http://data.lblod.info/vocabularies/leidinggevenden/Functionaris",
"properties": {
"given_name": [
@@ -540,14 +540,14 @@
},
{
"type": "person",
"composite_types": ["minister", "agent", "mandatory"],
"composite_types": ["minister", "functionary", "mandatory"],
"on_path": "people",
"properties": [
{
"name": "given_name",
"mappings": {
"minister": "given_name",
"agent": "given_name",
"functionary": "given_name",
"mandatory": "given_name"
}
},
@@ -555,7 +555,7 @@
"name": "person_id",
"mappings": {
"minister": "person_id",
"agent": "person_id",
"functionary": "person_id",
"mandatory": "person_id"
}
},
@@ -563,7 +563,7 @@
"name": "family_name",
"mappings": {
"minister": "family_name",
"agent": "family_name",
"functionary": "family_name",
"mandatory": "family_name"
}
},
@@ -571,7 +571,7 @@
"name": "first_name_used",
"mappings": {
"minister": "first_name_used",
"agent": "first_name_used",
"functionary": "first_name_used",
"mandatory": "first_name_used"
}
},
@@ -579,7 +579,7 @@
"name": "end_date",
"mappings": {
"minister": "end_date",
"agent": "end_date",
"functionary": "end_date",
"mandatory": "end_date"
}
},
@@ -587,7 +587,7 @@
"name": "organization_id",
"mappings": {
"minister": "organization_id",
"agent": "organization_id",
"functionary": "organization_id",
"mandatory": "organization_id"
}
},
@@ -595,7 +595,7 @@
"name": "organization_classification",
"mappings": {
"minister": "organization_classification",
"agent": "organization_classification",
"functionary": "organization_classification",
"mandatory": "organization_classification"
}
},
@@ -603,7 +603,7 @@
"name": "organization_name",
"mappings": {
"minister": "organization_name",
"agent": "organization_name",
"functionary": "organization_name",
"mandatory": "organization_name"
}
},
@@ -611,7 +611,7 @@
"name": "organization_municipality",
"mappings": {
"minister": "organization_municipality",
"agent": "organization_municipality",
"functionary": "organization_municipality",
"mandatory": "organization_municipality"
}
},
@@ -619,7 +619,7 @@
"name": "organization_province",
"mappings": {
"minister": "organization_province",
"agent": "organization_province",
"functionary": "organization_province",
"mandatory": "organization_province"
}
},
@@ -627,7 +627,7 @@
"name": "position_id",
"mappings": {
"minister": "position_id",
"agent": "position_id",
"functionary": "position_id",
"mandatory": "position_id"
}
},
@@ -635,7 +635,7 @@
"name": "position_name",
"mappings": {
"minister": "position_name",
"agent": "position_name",
"functionary": "position_name",
"mandatory": "position_name"
}
}

View File

@@ -0,0 +1,108 @@
{
"sourceGraphs": [
"http://mu.semte.ch/graphs/administrative-unit",
"http://mu.semte.ch/graphs/shared",
"http://mu.semte.ch/graphs/public"
],
"objects": [
{
"type": "http://data.vlaanderen.be/ns/besluit#Bestuurseenheid",
"mappings": [
{
"op": ["http://www.w3.org/2004/02/skos/core#prefLabel"],
"sl": "Title"
},
{
"op": ["http://www.w3.org/ns/org#classification", "http://www.w3.org/2004/02/skos/core#prefLabel"],
"sl": "OP_Type"
},
{
"op": ["http://www.w3.org/ns/regorg#orgStatus", "http://www.w3.org/2004/02/skos/core#prefLabel"],
"sl": "OP_Status"
},
{
"op": ["http://mu.semte.ch/vocabularies/core/uuid"],
"sl": "OP_Uuid"
},
{
"op": ["http://mu.semte.ch/vocabularies/core/uuid", "^http://mu.semte.ch/vocabularies/core/uuid"],
"sl": "OP_Uri",
"isMatchingField": "true"
},
{
"op": ["http://data.vlaanderen.be/ns/besluit#werkingsgebied", "http://www.w3.org/2004/02/skos/core#exactMatch", "http://www.w3.org/2004/02/skos/core#notation"],
"sl": "OP_NIScode"
}
],
"pathToMatchingUri": "?s a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> . BIND (?s as ?matchingUri)"
},
{
"type": "https://data.vlaanderen.be/ns/generiek#GestructureerdeIdentificator",
"mappings": [
{
"op": ["https://data.vlaanderen.be/ns/generiek#lokaleIdentificator"],
"sl": "OP_KBO"
}
],
"pathToMatchingUri": "?matchingUri a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> ;\n\t <http://www.w3.org/ns/adms#identifier> ?kboIdentifier .\n ?kboIdentifier <http://www.w3.org/2004/02/skos/core#notation> ?kboLabel ;\n\t <https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator> ?s . FILTER (?kboLabel IN (\"KBO nummer\"@nl, \"KBO nummer\"))"
},
{
"type": "http://www.w3.org/ns/locn#Address",
"mappings": [
{
"op": ["http://www.w3.org/ns/locn#thoroughfare"],
"sl": "OP_Straat"
},
{
"op": ["https://data.vlaanderen.be/ns/adres#Adresvoorstelling.huisnummer"],
"sl": "OP_Huisnummer"
},
{
"op": ["https://data.vlaanderen.be/ns/adres#Adresvoorstelling.busnummer"],
"sl": "OP_Busnummer"
},
{
"op": ["http://www.w3.org/ns/locn#postCode"],
"sl": "OP_Postcode"
},
{
"op": ["https://data.vlaanderen.be/ns/adres#gemeentenaam"],
"sl": "OP_Gemeente"
},
{
"op": ["http://www.w3.org/ns/locn#adminUnitL2"],
"sl": "OP_Provincie"
}
],
"pathToMatchingUri": "?matchingUri a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> ;\n\t <http://www.w3.org/ns/org#hasPrimarySite>/<https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?s ."
},
{
"type": "http://schema.org/ContactPoint",
"mappings": [
{
"op": ["http://schema.org/telephone"],
"sl": "OP_Primair_Telefoonnummer"
},
{
"op": ["http://xmlns.com/foaf/0.1/page"],
"sl": "OP_Website"
},
{
"op": ["http://schema.org/email"],
"sl": "OP_Email"
}
],
"pathToMatchingUri": "?matchingUri a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> ;\n\t <http://www.w3.org/ns/org#hasPrimarySite>/<http://www.w3.org/ns/org#siteAddress> ?s . ?s <http://schema.org/contactType> \"Primary\""
},
{
"type": "http://schema.org/ContactPoint",
"mappings": [
{
"op": ["http://schema.org/telephone"],
"sl": "OP_Secundair_Telefoonnummer"
}
],
"pathToMatchingUri": "?matchingUri a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> ;\n\t <http://www.w3.org/ns/org#hasPrimarySite>/<http://www.w3.org/ns/org#siteAddress> ?s . ?s <http://schema.org/contactType> \"Secondary\""
}
]
}

View File

@@ -63,8 +63,16 @@ services:
restart: "no"
file:
restart: "no"
publication-triplestore:
restart: "no"
ports:
- "8891:8890"
delta-producer-dump-file-publisher:
restart: "no"
organizations-sync-with-sharepoint-jobs-initiator:
restart: "no"
organizations-sync-with-sharepoint:
restart: "no"
construct-administrative-unit-relationships:
restart: "no"
delta-producer-bg-jobs-initiator-worship-posts:

View File

@@ -181,7 +181,7 @@ services:
restart: always
logging: *default-logging
frontend:
image: lblod/frontend-organization-portal:1.20.0
image: lblod/frontend-organization-portal:1.21.0
volumes:
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
environment:
@@ -222,8 +222,39 @@ services:
- "logging=true"
restart: always
logging: *default-logging
organizations-sync-with-sharepoint-jobs-initiator:
image: lblod/delta-producer-background-jobs-initiator:0.4.3
environment:
JOBS_GRAPH: "http://mu.semte.ch/graphs/jobs"
INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/initialSyncing/organizations"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/healingOperation/organizations"
INITIAL_PUBLICATION_GRAPH_SYNC_TASK_OPERATION: "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/initialSyncing"
HEALING_TASK_OPERATION: "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/healing"
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.
ENABLE_DUMP_FILE_CREATION: "false"
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
organizations-sync-with-sharepoint:
image: lblod/op-sync-with-sharepoint-service:0.1.2
environment:
INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/initialSyncing/organizations"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/healingOperation/organizations"
USE_VIRTUOSO_FOR_EXPENSIVE_SELECTS: "true"
links:
- db:database
volumes:
- ./config/sharepoint/sync/organizations/:/config/
labels:
- "logging=true"
restart: always
logging: *default-logging
construct-administrative-unit-relationships:
image: lblod/construct-administrative-unit-relationships-service:0.1.5
image: lblod/construct-administrative-unit-relationships-service:0.1.6
environment:
START_DATE_WORSHIP_GOVERNING_BODY: "2023-04-01T00:00:00"
END_DATE_WORSHIP_GOVERNING_BODY: "2026-03-31T00:00:00"
@@ -232,13 +263,37 @@ services:
restart: always
logging: *default-logging
reasoner:
image: eyereasoner/reasoning-service:increased-stack-limit
image: eyereasoner/reasoning-service:1.0.4
volumes:
- ./config/reasoner:/config
labels:
- "logging=true"
restart: always
logging: *default-logging
report-generation:
image: lblod/loket-report-generation-service:0.7.0
environment:
DEFAULT_GRAPH: "http://mu.semte.ch/graphs/shared"
ONLY_KEEP_LATEST_REPORT: "true"
links:
- db:database
volumes:
- ./data/files:/share
- ./config/reports:/config
labels:
- "logging=true"
restart: always
logging: *default-logging
download-exports:
image: lblod/download-exports-service:0.1.0
links:
- db:database
volumes:
- ./data/files:/share
labels:
- "logging=true"
restart: always
logging: *default-logging
sync-ovo-numbers:
image: lblod/sync-ovo-numbers-service:0.1.0
links:
@@ -247,11 +302,22 @@ services:
- "logging=true"
restart: always
logging: *default-logging
################################################################################
# DELTA GENERAL
################################################################################
publication-triplestore:
image: redpencil/virtuoso:1.2.0-rc.1
environment:
SPARQL_UPDATE: "true"
DEFAULT_GRAPH: "http://mu.semte.ch/application"
volumes:
- ./data/publication-triplestore:/data
- ./config/publication-triplestore/virtuoso.ini:/data/virtuoso.ini
restart: always
logging: *default-logging
delta-producer-dump-file-publisher:
image: lblod/delta-producer-dump-file-publisher:0.9.1
image: lblod/delta-producer-dump-file-publisher:0.10.2
volumes:
- ./config/delta-producer/dump-file-publisher:/config
- ./data/files:/share
@@ -259,6 +325,7 @@ services:
- db:database
restart: always
logging: *default-logging
################################################################################
# DELTA ORGANIZATIONS: START
################################################################################
@@ -308,6 +375,57 @@ services:
# DELTA ORGANIZATIONS: END
################################################################################
################################################################################
# DELTA ORGANIZATIONS PUBLIC INFO: START
################################################################################
delta-producer-bg-jobs-initiator-organizations-public-info:
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-public-info"
INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info"
CRON_PATTERN_DUMP_JOB: "27 */4 * * *" # At minute 27 every 4 hours
CRON_PATTERN_HEALING_JOB: "0 0 4 * * *" # everyday at 4 AM
START_INITIAL_SYNC: "false" # Enable in override when ready to initial sync
labels:
- "logging=true"
links:
- db:database
restart: always
logging: *default-logging
delta-producer-pub-graph-maintainer-organizations-public-info:
image: lblod/delta-producer-publication-graph-maintainer:0.15.4
environment:
MAX_BODY_SIZE: "50mb"
JOBS_GRAPH: "http://mu.semte.ch/graphs/jobs"
RELATIVE_FILE_PATH: "deltas/organizations-public-info"
PUBLICATION_GRAPH: "http://redpencil.data.gift/id/deltas/producer/organizations-public-info"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/healingOperation/organizations-public-info"
INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/organizations-public-info"
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-public-info"
DELTA_INTERVAL_MS: 10000
PRETTY_PRINT_DIFF_JSON: "true"
PUBLICATION_VIRTUOSO_ENDPOINT: "http://publication-triplestore:8890/sparql"
PUBLICATION_MU_AUTH_ENDPOINT: "http://publication-triplestore:8890/sparql"
ERROR_GRAPH: "http://mu.semte.ch/graphs/jobs"
volumes:
- ./config/delta-producer/organizations-public-info:/config
- ./data/files/:/share
links:
- db:database
- triplestore:virtuoso
restart: always
logging: *default-logging
################################################################################
# DELTA ORGANIZATIONS PUBLIC INFO: END
################################################################################
################################################################################
# DELTA PUBLIC INFORMATION: START
################################################################################