Compare commits
60 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f0d0af671e | ||
|
|
9ed70419aa | ||
|
|
7adbe9fd4f | ||
|
|
863d7182f9 | ||
|
|
38b7297a3a | ||
|
|
8976b9f5d5 | ||
|
|
9483da5572 | ||
|
|
0a655ddcae | ||
|
|
1b053e26b6 | ||
|
|
7735ee88aa | ||
|
|
6987375abe | ||
|
|
d4d5ceed31 | ||
|
|
d95b331c99 | ||
|
|
bec67cf7eb | ||
|
|
38291891f6 | ||
|
|
a79d080eb4 | ||
|
|
6f53b2e8af | ||
|
|
3d7c704f76 | ||
|
|
ac5492430e | ||
|
|
935e649ef2 | ||
|
|
5dfadf5046 | ||
|
|
6f43ca2848 | ||
|
|
e4d6e1f2a7 | ||
|
|
1d51182bc5 | ||
|
|
008b382ddc | ||
|
|
b9654a33db | ||
|
|
0de3869c4f | ||
|
|
0c37112fd2 | ||
|
|
118eb4c1fa | ||
|
|
5b2a1b1ac6 | ||
|
|
c5a0326ab6 | ||
|
|
2b027a4829 | ||
|
|
9cdd931af3 | ||
|
|
9c3d8d5db2 | ||
|
|
71d6ee5ed4 | ||
|
|
70cff61d79 | ||
|
|
265c25d942 | ||
|
|
0cb5a4729a | ||
|
|
b554787ab0 | ||
|
|
51b35b04f9 | ||
|
|
81c8266bd4 | ||
|
|
e24c6eece6 | ||
|
|
0ad97119df | ||
|
|
d455f47c9f | ||
|
|
7581b12c25 | ||
|
|
48b74c546e | ||
|
|
ce4abe4d27 | ||
|
|
e1bb06ba2c | ||
|
|
0274737c84 | ||
|
|
bfd10583bf | ||
|
|
c63b0659eb | ||
|
|
b8e2bb3186 | ||
|
|
fb75ba1738 | ||
|
|
bd935ce795 | ||
|
|
fe3957382e | ||
|
|
c50d077435 | ||
|
|
5eaae75cc3 | ||
|
|
334adafbba | ||
|
|
2109ff77fc | ||
|
|
3b333f13a6 |
52
CHANGELOG.md
52
CHANGELOG.md
@@ -1,4 +1,48 @@
|
||||
# Changelog
|
||||
## v1.41.0
|
||||
- added explicit healtchecks [DL-7466]
|
||||
|
||||
### Deploy notes
|
||||
```
|
||||
drc restart dispatcher
|
||||
```
|
||||
|
||||
## v1.40.0
|
||||
- Query to check missing address URI's [OP-3784]
|
||||
- Create new query 'organisations shown in OP frontend' in Dashboard [OP-3774]
|
||||
- Moved AGB BRUGGE to correct graph [OP-3790]
|
||||
- Bump acm-login service [DL-7346]
|
||||
- Frontend [v1.37.0](https://github.com/lblod/frontend-organization-portal/blob/99e0ca22617d17cbc8a23dfa2f6d31691fed90b9/CHANGELOG.md#v1370-2026-05-27)
|
||||
|
||||
### Deploy notes
|
||||
```
|
||||
drc restart report-generation
|
||||
drc restart migrations
|
||||
scripts/reset-elastic.sh
|
||||
drc up -d login login-dashboard frontend
|
||||
```
|
||||
|
||||
## 1.39.1 (2026-04-24)
|
||||
- OP-3771: Adds labels for: EredienstBeroepen and TypeBetrokkenheid
|
||||
- Bump to kbo-data-sync [OP-3765]
|
||||
- Added administrativeUnits report with strekking [OP-3766]
|
||||
- Cleanup local involvement for oud heverlee [OP-3757]
|
||||
- Add column to query organizations in Dashboard [OP-3758]
|
||||
- Query list change events of organisations in Dashboard [OP-3760]
|
||||
- Disable SPARQL endpoint
|
||||
- Prepare worship election period: backfill missing 2026-2029 governing bodies + mandates, seed fresh 2029-2032 period, and clean up `hhttp://` Secretaris typo from the 2022 central-worship migrations and bumped construct-organization-relationships to 1.1.1[OP-3776] and [DL-7294]
|
||||
- Cleanup local involvements for Sint Laureins [OP-3775]
|
||||
- sparql-parser [DL-6575]
|
||||
|
||||
### Deploy notes
|
||||
```
|
||||
drc pull kbo-data-sync db resource && drc up -d kbo-data-sync db resource
|
||||
drc restart report-generation
|
||||
drc restart migrations && drc logs -ft --tail=200 migrations
|
||||
drc up -d delta-producer-publication-graph-maintainer
|
||||
drc restart dispatcher
|
||||
```
|
||||
|
||||
## 1.39.0 (2026-04-02)
|
||||
- Add KBO organizations report to report generation service [OP-3738]
|
||||
- Add organizations detail report (addresses and contact info) to report generation service [OP-3738]
|
||||
@@ -56,7 +100,7 @@ drc pull report-generation; drc up -d report-generation
|
||||
|
||||
### Deploy instructions
|
||||
#### For error-alert and deliver-email-service
|
||||
Per environment a specfic configuration for the email service similar to loket config.
|
||||
Per environment a specfic configuration for the email service similar to loket config.
|
||||
Ask colleague for specfic credentials.
|
||||
|
||||
```
|
||||
@@ -65,13 +109,13 @@ Ask colleague for specfic credentials.
|
||||
EMAIL_PROTOCOL: "smtp"
|
||||
#WELL_KNOWN_SERVICE: "smtp"
|
||||
EMAIL_HOST: "Fill in Email host adress"
|
||||
EMAIL_ADDRESS: "Fill in email"
|
||||
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
|
||||
@@ -88,7 +132,7 @@ drc up -d error-alert deliver-email-service frontend
|
||||
### 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
|
||||
- [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
|
||||
|
||||
@@ -1,311 +0,0 @@
|
||||
alias Acl.Accessibility.Always, as: AlwaysAccessible
|
||||
alias Acl.GraphSpec.Constraint.Resource, as: ResourceConstraint
|
||||
alias Acl.GraphSpec.Constraint.ResourceFormat, as: ResourceFormatConstraint
|
||||
alias Acl.Accessibility.ByQuery, as: AccessByQuery
|
||||
alias Acl.GraphSpec, as: GraphSpec
|
||||
alias Acl.GroupSpec, as: GroupSpec
|
||||
alias Acl.GroupSpec.GraphCleanup, as: GraphCleanup
|
||||
|
||||
defmodule Acl.UserGroups.Config do
|
||||
@error_type [
|
||||
"https://docs.oasis-open-projects.org/oslc-op/core/v3.0/os/core-vocab.html#Error"
|
||||
]
|
||||
|
||||
@worship_type [
|
||||
"http://data.lblod.info/vocabularies/erediensten/EredienstMandataris",
|
||||
"http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst",
|
||||
"http://data.lblod.info/vocabularies/erediensten/EredienstBestuurseenheid",
|
||||
"http://data.lblod.info/vocabularies/erediensten/RolBedienaar",
|
||||
"http://data.lblod.info/vocabularies/erediensten/VoorwaardenBedienaar",
|
||||
"http://data.lblod.info/vocabularies/erediensten/PositieBedienaar",
|
||||
"http://data.lblod.info/vocabularies/erediensten/BetrokkenLokaleBesturen",
|
||||
"http://data.lblod.info/vocabularies/erediensten/VerbondenJuridischeStructuren",
|
||||
"http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst",
|
||||
"http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan"
|
||||
]
|
||||
|
||||
@public_type [
|
||||
"http://www.w3.org/ns/org#Role",
|
||||
"http://data.vlaanderen.be/ns/besluit#Bestuurseenheid",
|
||||
"http://xmlns.com/foaf/0.1/Person",
|
||||
"http://xmlns.com/foaf/0.1/OnlineAccount",
|
||||
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject",
|
||||
"http://www.w3.org/ns/dcat#Dataset",
|
||||
"http://www.w3.org/ns/dcat#Distribution",
|
||||
"http://www.w3.org/ns/dcat#Catalog",
|
||||
"http://mu.semte.ch/vocabularies/ext/GeslachtCode",
|
||||
"http://data.lblod.info/vocabularies/leidinggevenden/FunctionarisStatusCode",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/BestuursfunctieCode",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/BestuursorgaanClassificatieCode",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/MandatarisStatusCode",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode",
|
||||
"http://mu.semte.ch/vocabularies/ext/GeregistreerdeOrganisatieClassificatieCode",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/TypeEredienst",
|
||||
"http://www.w3.org/2004/02/skos/core#ConceptScheme",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/BedienaarFinancieringCode",
|
||||
"http://www.w3.org/2004/02/skos/core#Concept",
|
||||
"http://publications.europa.eu/ontology/euvoc#Country",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/TypeVestiging",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/HelftVerkiezing",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/Veranderingsgebeurtenis",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/TypeBetrokkenheid",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/VoorwaardenBedienaarCriterium",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/BedienaarCriteriumBewijsstuk",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/EredienstBeroepen",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/Rechtsvormtype",
|
||||
"http://www.w3.org/ns/prov#Location"
|
||||
]
|
||||
|
||||
@org_type [
|
||||
"http://purl.org/dc/terms/Agent",
|
||||
"http://www.w3.org/ns/org#Organization",
|
||||
"http://www.w3.org/ns/regorg#RegisteredOrganization",
|
||||
"http://data.vlaanderen.be/ns/besluit#Besluit",
|
||||
"https://data.vlaanderen.be/ns/besluitvorming#Beslissingsactiviteit",
|
||||
"http://www.w3.org/ns/org#Site",
|
||||
"http://www.w3.org/ns/locn#Address",
|
||||
"http://www.w3.org/ns/person#Person",
|
||||
"http://schema.org/ContactPoint",
|
||||
"http://data.vlaanderen.be/ns/besluit#Bestuurseenheid",
|
||||
"http://data.vlaanderen.be/ns/besluit#Bestuursorgaan",
|
||||
"http://www.w3.org/ns/adms#Identifier",
|
||||
"https://data.vlaanderen.be/ns/generiek#GestructureerdeIdentificator",
|
||||
"http://data.vlaanderen.be/ns/mandaat#Mandaat",
|
||||
"http://data.vlaanderen.be/ns/mandaat#Mandataris",
|
||||
"http://data.lblod.info/vocabularies/leidinggevenden/Functionaris",
|
||||
"http://data.lblod.info/vocabularies/leidinggevenden/Bestuursfunctie",
|
||||
"http://lblod.data.gift/vocabularies/organisatie/VeranderingsgebeurtenisResultaat",
|
||||
"http://www.w3.org/ns/org#Post",
|
||||
"http://www.w3.org/ns/org#ChangeEvent",
|
||||
"http://data.lblod.info/vocabularies/contacthub/AgentInPositie",
|
||||
"http://mu.semte.ch/vocabularies/ext/KboOrganisatie",
|
||||
"http://www.w3.org/ns/org#Membership",
|
||||
"http://www.w3.org/2006/time#ProperInterval",
|
||||
]
|
||||
|
||||
@shared_protected_type [
|
||||
"http://xmlns.com/foaf/0.1/Image",
|
||||
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
|
||||
]
|
||||
|
||||
@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
|
||||
vars: [],
|
||||
query: sparql_query_for_access_role(group_string)
|
||||
}
|
||||
end
|
||||
|
||||
defp sparql_query_for_access_role(group_string) do
|
||||
"PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
SELECT distinct ?session_group ?session_role WHERE {
|
||||
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
|
||||
ext:activeSessionRole ?session_role.
|
||||
FILTER( ?session_role = \"#{group_string}\" )
|
||||
}"
|
||||
end
|
||||
|
||||
defp can_access_dashboard() do
|
||||
%AccessByQuery{
|
||||
vars: [],
|
||||
query: "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
SELECT DISTINCT ?session WHERE {
|
||||
VALUES ?session { <SESSION_ID> }
|
||||
?session ext:sessionRole \"LoketLB-AdminDashboardOrganisatiePortaalGebruiker\" .
|
||||
}"
|
||||
}
|
||||
end
|
||||
|
||||
def user_groups do
|
||||
[
|
||||
%GroupSpec{
|
||||
name: "acmidm-lezer",
|
||||
useage: [:read],
|
||||
access: access_by_role("ABBOrganisatiePortaalGebruiker-lezer"),
|
||||
graphs: [
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/administrative-unit",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
%GroupSpec{
|
||||
name: "acmidm-editeerder",
|
||||
useage: [:read, :write, :read_for_write],
|
||||
access: access_by_role("ABBOrganisatiePortaalGebruiker-editeerder"),
|
||||
graphs: [
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/administrative-unit",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @error_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
%GroupSpec{
|
||||
name: "acmidm-beheerder",
|
||||
useage: [:read, :write, :read_for_write],
|
||||
access: access_by_role("ABBOrganisatiePortaalGebruiker-beheerder"),
|
||||
graphs: [
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/administrative-unit",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @error_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
%GroupSpec{
|
||||
name: "acmidm-worship-lezer",
|
||||
useage: [:read],
|
||||
access: access_by_role("ABBOrganisatiePortaalErediensten-lezer"),
|
||||
graphs: [
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/worship-service",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @worship_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
%GroupSpec{
|
||||
name: "acmidm-worship-editeerder",
|
||||
useage: [:read, :write, :read_for_write],
|
||||
access: access_by_role("ABBOrganisatiePortaalErediensten-editeerder"),
|
||||
graphs: [
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/worship-service",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @error_type ++ @worship_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
%GroupSpec{
|
||||
name: "acmidm-worship-beheerder",
|
||||
useage: [:read, :write, :read_for_write],
|
||||
access: access_by_role("ABBOrganisatiePortaalErediensten-beheerder"),
|
||||
graphs: [
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/worship-service",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @org_type ++ @error_type ++ @worship_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/vendor-management-data",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @vendor_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
%GroupSpec{
|
||||
name: "public",
|
||||
useage: [:read],
|
||||
access: %AlwaysAccessible{},
|
||||
graphs: [
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/public",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @public_type
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/shared",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: @shared_protected_type ++ @org_type
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
# // Dashboard admin
|
||||
%GroupSpec{
|
||||
name: "o-admin-rwf",
|
||||
useage: [:read, :write, :read_for_write],
|
||||
access: can_access_dashboard(),
|
||||
graphs: [
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/reports",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: [
|
||||
"http://lblod.data.gift/vocabularies/reporting/Report",
|
||||
"http://open-services.net/ns/core#Error",
|
||||
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer",
|
||||
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
|
||||
]
|
||||
}
|
||||
},
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/system/jobs",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: [
|
||||
"http://vocab.deri.ie/cogs#Job",
|
||||
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer",
|
||||
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
|
||||
]
|
||||
}
|
||||
},
|
||||
# OP stores jobs in multiple graphs, so we configure both until they are merged into one graph
|
||||
%GraphSpec{
|
||||
graph: "http://mu.semte.ch/graphs/jobs",
|
||||
constraint: %ResourceConstraint{
|
||||
resource_types: [
|
||||
"http://vocab.deri.ie/cogs#Job",
|
||||
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer",
|
||||
"http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
# // CLEANUP
|
||||
#
|
||||
%GraphCleanup{
|
||||
originating_graph: "http://mu.semte.ch/application",
|
||||
useage: [:read, :write],
|
||||
name: "clean"
|
||||
}
|
||||
]
|
||||
end
|
||||
end
|
||||
368
config/authorization/config.lisp
Normal file
368
config/authorization/config.lisp
Normal file
@@ -0,0 +1,368 @@
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
;;; delta messenger
|
||||
(in-package :delta-messenger)
|
||||
|
||||
(add-delta-logger)
|
||||
(add-delta-messenger "http://deltanotifier/")
|
||||
|
||||
;;;;;;;;;;;;;;;;;
|
||||
;;; configuration
|
||||
(in-package :client)
|
||||
(setf *log-sparql-query-roundtrip* t)
|
||||
(setf *backend* "http://triplestore:8890/sparql")
|
||||
|
||||
(in-package :server)
|
||||
(setf *log-incoming-requests-p* nil)
|
||||
|
||||
;;;;;;;;;;;;;;;;;
|
||||
;;; access rights
|
||||
(in-package :acl)
|
||||
|
||||
(defparameter *access-specifications* nil
|
||||
"All known ACCESS specifications.")
|
||||
|
||||
(defparameter *graphs* nil
|
||||
"All known GRAPH-SPECIFICATION instances.")
|
||||
|
||||
(defparameter *rights* nil
|
||||
"All known GRANT instances connecting ACCESS-SPECIFICATION to GRAPH.")
|
||||
|
||||
;; Prefixes used in the constraints below (not in the SPARQL queries)
|
||||
(define-prefixes
|
||||
:org "http://www.w3.org/ns/org#"
|
||||
:locn "http://www.w3.org/ns/locn#"
|
||||
:schema "http://schema.org/"
|
||||
:regorg "http://www.w3.org/ns/regorg#"
|
||||
:person "http://www.w3.org/ns/person#"
|
||||
:adms "http://www.w3.org/ns/adms#"
|
||||
:prov "http://www.w3.org/ns/prov#"
|
||||
:generiek "https://data.vlaanderen.be/ns/generiek#"
|
||||
:mandaat "http://data.vlaanderen.be/ns/mandaat#"
|
||||
:besluit "http://data.vlaanderen.be/ns/besluit#"
|
||||
:lblodlg "http://data.lblod.info/vocabularies/leidinggevenden/"
|
||||
:dc_terms "http://purl.org/dc/terms/"
|
||||
:foaf "http://xmlns.com/foaf/0.1/"
|
||||
:skos "http://www.w3.org/2004/02/skos/core#"
|
||||
:euvoc "http://publications.europa.eu/ontology/euvoc#"
|
||||
:ere "http://data.lblod.info/vocabularies/erediensten/"
|
||||
:ch "http://data.lblod.info/vocabularies/contacthub/"
|
||||
:code "http://lblod.data.gift/vocabularies/organisatie/"
|
||||
:ext "http://mu.semte.ch/vocabularies/ext/"
|
||||
:time "http://www.w3.org/2006/time#"
|
||||
:oasis "https://docs.oasis-open-projects.org/oslc-op/core/v3.0/os/core-vocab.html#"
|
||||
:nfo "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#"
|
||||
:dcat "http://www.w3.org/ns/dcat#"
|
||||
:besluitvorming "https://data.vlaanderen.be/ns/besluitvorming#"
|
||||
:reporting "http://lblod.data.gift/vocabularies/reporting/"
|
||||
:oslc "http://open-services.net/ns/core#"
|
||||
:cogs "http://vocab.deri.ie/cogs#"
|
||||
)
|
||||
|
||||
(type-cache::add-type-for-prefix "http://mu.semte.ch/sessions/" "http://mu.semte.ch/vocabularies/session/Session")
|
||||
|
||||
(define-graph acmidm-lezer ("http://mu.semte.ch/graphs/administrative-unit")
|
||||
("dc_terms:Agent" -> _)
|
||||
("org:Organization" -> _)
|
||||
("regorg:RegisteredOrganization" -> _)
|
||||
("besluit:Besluit" -> _)
|
||||
("besluitvorming:Beslissingsactiviteit" -> _)
|
||||
("org:Site" -> _)
|
||||
("locn:Address" -> _)
|
||||
("person:Person" -> _)
|
||||
("schema:ContactPoint" -> _)
|
||||
("besluit:Bestuurseenheid" -> _)
|
||||
("besluit:Bestuursorgaan" -> _)
|
||||
("adms:Identifier" -> _)
|
||||
("generiek:GestructureerdeIdentificator" -> _)
|
||||
("mandaat:Mandaat" -> _)
|
||||
("mandaat:Mandataris" -> _)
|
||||
("lblodlg:Functionaris" -> _)
|
||||
("lblodlg:Bestuursfunctie" -> _)
|
||||
("code:VeranderingsgebeurtenisResultaat" -> _)
|
||||
("org:Post" -> _)
|
||||
("org:ChangeEvent" -> _)
|
||||
("ch:AgentInPositie" -> _)
|
||||
("ext:KboOrganisatie" -> _)
|
||||
("org:Membership" -> _)
|
||||
("time:ProperInterval" -> _))
|
||||
|
||||
(define-graph acmidm-vendor ("http://mu.semte.ch/graphs/vendor-management-data")
|
||||
("ext:Vendor" -> _))
|
||||
|
||||
(define-graph acmidm-editeerder ("http://mu.semte.ch/graphs/administrative-unit")
|
||||
("oasis:Error" -> _)
|
||||
("dc_terms:Agent" -> _)
|
||||
("org:Organization" -> _)
|
||||
("regorg:RegisteredOrganization" -> _)
|
||||
("besluit:Besluit" -> _)
|
||||
("besluitvorming:Beslissingsactiviteit" -> _)
|
||||
("org:Site" -> _)
|
||||
("locn:Address" -> _)
|
||||
("person:Person" -> _)
|
||||
("schema:ContactPoint" -> _)
|
||||
("besluit:Bestuurseenheid" -> _)
|
||||
("besluit:Bestuursorgaan" -> _)
|
||||
("adms:Identifier" -> _)
|
||||
("generiek:GestructureerdeIdentificator" -> _)
|
||||
("mandaat:Mandaat" -> _)
|
||||
("mandaat:Mandataris" -> _)
|
||||
("lblodlg:Functionaris" -> _)
|
||||
("lblodlg:Bestuursfunctie" -> _)
|
||||
("code:VeranderingsgebeurtenisResultaat" -> _)
|
||||
("org:Post" -> _)
|
||||
("org:ChangeEvent" -> _)
|
||||
("ch:AgentInPositie" -> _)
|
||||
("ext:KboOrganisatie" -> _)
|
||||
("org:Membership" -> _)
|
||||
("time:ProperInterval" -> _))
|
||||
|
||||
(define-graph acmidm-worship-lezer ("http://mu.semte.ch/graphs/worship-service")
|
||||
("ere:EredienstMandataris" -> _)
|
||||
("ere:BestuurVanDeEredienst" -> _)
|
||||
("ere:EredienstBestuurseenheid" -> _)
|
||||
("ere:RolBedienaar" -> _)
|
||||
("ere:VoorwaardenBedienaar" -> _)
|
||||
("ere:PositieBedienaar" -> _)
|
||||
("ere:BetrokkenLokaleBesturen" -> _)
|
||||
("ere:VerbondenJuridischeStructuren" -> _)
|
||||
("ere:CentraalBestuurVanDeEredienst" -> _)
|
||||
("ere:RepresentatiefOrgaan" -> _)
|
||||
("dc_terms:Agent" -> _)
|
||||
("org:Organization" -> _)
|
||||
("regorg:RegisteredOrganization" -> _)
|
||||
("besluit:Besluit" -> _)
|
||||
("besluitvorming:Beslissingsactiviteit" -> _)
|
||||
("org:Site" -> _)
|
||||
("locn:Address" -> _)
|
||||
("person:Person" -> _)
|
||||
("schema:ContactPoint" -> _)
|
||||
("besluit:Bestuurseenheid" -> _)
|
||||
("besluit:Bestuursorgaan" -> _)
|
||||
("adms:Identifier" -> _)
|
||||
("generiek:GestructureerdeIdentificator" -> _)
|
||||
("mandaat:Mandaat" -> _)
|
||||
("mandaat:Mandataris" -> _)
|
||||
("lblodlg:Functionaris" -> _)
|
||||
("lblodlg:Bestuursfunctie" -> _)
|
||||
("code:VeranderingsgebeurtenisResultaat" -> _)
|
||||
("org:Post" -> _)
|
||||
("org:ChangeEvent" -> _)
|
||||
("ch:AgentInPositie" -> _)
|
||||
("ext:KboOrganisatie" -> _)
|
||||
("org:Membership" -> _)
|
||||
("time:ProperInterval" -> _))
|
||||
|
||||
(define-graph acmidm-worship-editeerder ("http://mu.semte.ch/graphs/worship-service")
|
||||
("oasis:Error" -> _)
|
||||
("ere:EredienstMandataris" -> _)
|
||||
("ere:BestuurVanDeEredienst" -> _)
|
||||
("ere:EredienstBestuurseenheid" -> _)
|
||||
("ere:RolBedienaar" -> _)
|
||||
("ere:VoorwaardenBedienaar" -> _)
|
||||
("ere:PositieBedienaar" -> _)
|
||||
("ere:BetrokkenLokaleBesturen" -> _)
|
||||
("ere:VerbondenJuridischeStructuren" -> _)
|
||||
("ere:CentraalBestuurVanDeEredienst" -> _)
|
||||
("ere:RepresentatiefOrgaan" -> _)
|
||||
("dc_terms:Agent" -> _)
|
||||
("org:Organization" -> _)
|
||||
("regorg:RegisteredOrganization" -> _)
|
||||
("besluit:Besluit" -> _)
|
||||
("besluitvorming:Beslissingsactiviteit" -> _)
|
||||
("org:Site" -> _)
|
||||
("locn:Address" -> _)
|
||||
("person:Person" -> _)
|
||||
("schema:ContactPoint" -> _)
|
||||
("besluit:Bestuurseenheid" -> _)
|
||||
("besluit:Bestuursorgaan" -> _)
|
||||
("adms:Identifier" -> _)
|
||||
("generiek:GestructureerdeIdentificator" -> _)
|
||||
("mandaat:Mandaat" -> _)
|
||||
("mandaat:Mandataris" -> _)
|
||||
("lblodlg:Functionaris" -> _)
|
||||
("lblodlg:Bestuursfunctie" -> _)
|
||||
("code:VeranderingsgebeurtenisResultaat" -> _)
|
||||
("org:Post" -> _)
|
||||
("org:ChangeEvent" -> _)
|
||||
("ch:AgentInPositie" -> _)
|
||||
("ext:KboOrganisatie" -> _)
|
||||
("org:Membership" -> _)
|
||||
("time:ProperInterval" -> _))
|
||||
|
||||
(define-graph public ("http://mu.semte.ch/graphs/public")
|
||||
("org:Role" -> _)
|
||||
("besluit:Bestuurseenheid" -> _)
|
||||
("foaf:Person" -> _)
|
||||
("foaf:OnlineAccount" -> _)
|
||||
("nfo:FileDataObject" -> _)
|
||||
("dcat:Dataset" -> _)
|
||||
("dcat:Distribution" -> _)
|
||||
("dcat:Catalog" -> _)
|
||||
("ext:GeslachtCode" -> _)
|
||||
("lblodlg:FunctionarisStatusCode" -> _)
|
||||
("code:OrganisatieStatusCode" -> _)
|
||||
("code:BestuursfunctieCode" -> _)
|
||||
("code:BestuursorgaanClassificatieCode" -> _)
|
||||
("code:MandatarisStatusCode" -> _)
|
||||
("code:BestuurseenheidClassificatieCode" -> _)
|
||||
("ext:GeregistreerdeOrganisatieClassificatieCode" -> _)
|
||||
("code:TypeEredienst" -> _)
|
||||
("skos:ConceptScheme" -> _)
|
||||
("code:BedienaarFinancieringCode" -> _)
|
||||
("skos:Concept" -> _)
|
||||
("euvoc:Country" -> _)
|
||||
("code:TypeVestiging" -> _)
|
||||
("code:HelftVerkiezing" -> _)
|
||||
("code:Veranderingsgebeurtenis" -> _)
|
||||
("code:TypeBetrokkenheid" -> _)
|
||||
("code:VoorwaardenBedienaarCriterium" -> _)
|
||||
("code:BedienaarCriteriumBewijsstuk" -> _)
|
||||
("code:EredienstBeroepen" -> _)
|
||||
("code:Rechtsvormtype" -> _)
|
||||
("prov:Location" -> _))
|
||||
|
||||
(define-graph shared ("http://mu.semte.ch/graphs/shared")
|
||||
("foaf:Image" -> _)
|
||||
("nfo:FileDataObject" -> _)
|
||||
("dc_terms:Agent" -> _)
|
||||
("org:Organization" -> _)
|
||||
("regorg:RegisteredOrganization" -> _)
|
||||
("besluit:Besluit" -> _)
|
||||
("besluitvorming:Beslissingsactiviteit" -> _)
|
||||
("org:Site" -> _)
|
||||
("locn:Address" -> _)
|
||||
("person:Person" -> _)
|
||||
("schema:ContactPoint" -> _)
|
||||
("besluit:Bestuurseenheid" -> _)
|
||||
("besluit:Bestuursorgaan" -> _)
|
||||
("adms:Identifier" -> _)
|
||||
("generiek:GestructureerdeIdentificator" -> _)
|
||||
("mandaat:Mandaat" -> _)
|
||||
("mandaat:Mandataris" -> _)
|
||||
("lblodlg:Functionaris" -> _)
|
||||
("lblodlg:Bestuursfunctie" -> _)
|
||||
("code:VeranderingsgebeurtenisResultaat" -> _)
|
||||
("org:Post" -> _)
|
||||
("org:ChangeEvent" -> _)
|
||||
("ch:AgentInPositie" -> _)
|
||||
("ext:KboOrganisatie" -> _)
|
||||
("org:Membership" -> _)
|
||||
("time:ProperInterval" -> _))
|
||||
|
||||
(define-graph reports ("http://mu.semte.ch/graphs/reports")
|
||||
("reporting:Report" -> _)
|
||||
("oslc:Error" -> _)
|
||||
("nfo:DataContainer" -> _)
|
||||
("nfo:FileDataObject" -> _))
|
||||
|
||||
(define-graph system-jobs ("http://mu.semte.ch/graphs/system/jobs")
|
||||
("cogs:Job" -> _)
|
||||
("nfo:DataContainer" -> _)
|
||||
("nfo:FileDataObject" -> _))
|
||||
|
||||
(define-graph jobs ("http://mu.semte.ch/graphs/jobs")
|
||||
("cogs:Job" -> _)
|
||||
("nfo:DataContainer" -> _)
|
||||
("nfo:FileDataObject" -> _))
|
||||
|
||||
(supply-allowed-group "public")
|
||||
|
||||
(supply-allowed-group "o-admin-rwf"
|
||||
:parameters ()
|
||||
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
SELECT DISTINCT ?session WHERE {
|
||||
<SESSION_ID> ext:sessionRole \"LoketLB-AdminDashboardOrganisatiePortaalGebruiker\" .
|
||||
}")
|
||||
|
||||
(supply-allowed-group "ABBOrganisatiePortaalGebruiker-lezer"
|
||||
:parameters ()
|
||||
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
SELECT DISTINCT ?session_group ?session_role WHERE {
|
||||
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
|
||||
ext:activeSessionRole ?session_role.
|
||||
FILTER( ?session_role = \"ABBOrganisatiePortaalGebruiker-lezer\" )
|
||||
}")
|
||||
|
||||
(supply-allowed-group "ABBOrganisatiePortaalGebruiker-editeerder"
|
||||
:parameters ()
|
||||
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
SELECT DISTINCT ?session_group ?session_role WHERE {
|
||||
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
|
||||
ext:activeSessionRole ?session_role.
|
||||
FILTER( ?session_role = \"ABBOrganisatiePortaalGebruiker-editeerder\" )
|
||||
}")
|
||||
|
||||
(supply-allowed-group "ABBOrganisatiePortaalGebruiker-beheerder"
|
||||
:parameters ()
|
||||
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
SELECT DISTINCT ?session_group ?session_role WHERE {
|
||||
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
|
||||
ext:activeSessionRole ?session_role.
|
||||
FILTER( ?session_role = \"ABBOrganisatiePortaalGebruiker-beheerder\" )
|
||||
}")
|
||||
|
||||
|
||||
(supply-allowed-group "ABBOrganisatiePortaalErediensten-lezer"
|
||||
:parameters ()
|
||||
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
SELECT DISTINCT ?session_group ?session_role WHERE {
|
||||
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
|
||||
ext:activeSessionRole ?session_role.
|
||||
FILTER( ?session_role = \"ABBOrganisatiePortaalErediensten-lezer\" )
|
||||
}")
|
||||
|
||||
(supply-allowed-group "ABBOrganisatiePortaalErediensten-editeerder"
|
||||
:parameters ()
|
||||
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
SELECT DISTINCT ?session_group ?session_role WHERE {
|
||||
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
|
||||
ext:activeSessionRole ?session_role.
|
||||
FILTER( ?session_role = \"ABBOrganisatiePortaalErediensten-editeerder\" )
|
||||
}")
|
||||
|
||||
(supply-allowed-group "ABBOrganisatiePortaalErediensten-beheerder"
|
||||
:parameters ()
|
||||
:query "PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
SELECT DISTINCT ?session_group ?session_role WHERE {
|
||||
<SESSION_ID> ext:sessionGroup/mu:uuid ?session_group;
|
||||
ext:activeSessionRole ?session_role.
|
||||
FILTER( ?session_role = \"ABBOrganisatiePortaalErediensten-beheerder\" )
|
||||
}")
|
||||
|
||||
(grant (read)
|
||||
:to-graph (acmidm-lezer acmidm-vendor)
|
||||
:for-allowed-group "ABBOrganisatiePortaalGebruiker-lezer")
|
||||
|
||||
(grant (read write)
|
||||
:to-graph (acmidm-editeerder acmidm-vendor)
|
||||
:for-allowed-group "ABBOrganisatiePortaalGebruiker-editeerder")
|
||||
|
||||
(grant (read write)
|
||||
:to-graph (acmidm-editeerder acmidm-vendor)
|
||||
:for-allowed-group "ABBOrganisatiePortaalGebruiker-beheerder")
|
||||
|
||||
(grant (read)
|
||||
:to-graph (acmidm-worship-lezer acmidm-vendor)
|
||||
:for-allowed-group "ABBOrganisatiePortaalErediensten-lezer")
|
||||
|
||||
(grant (read write)
|
||||
:to-graph (acmidm-worship-editeerder acmidm-vendor)
|
||||
:for-allowed-group "ABBOrganisatiePortaalErediensten-editeerder")
|
||||
|
||||
(grant (read write)
|
||||
:to-graph (acmidm-worship-editeerder acmidm-vendor)
|
||||
:for-allowed-group "ABBOrganisatiePortaalErediensten-beheerder")
|
||||
|
||||
(grant (read)
|
||||
:to-graph (public shared)
|
||||
:for-allowed-group "public")
|
||||
|
||||
(grant (read write)
|
||||
:to-graph (reports jobs system-jobs)
|
||||
:for-allowed-group "o-admin-rwf")
|
||||
@@ -1,5 +0,0 @@
|
||||
defmodule Delta.Config do
|
||||
def targets do
|
||||
[ "http://deltanotifier" ]
|
||||
end
|
||||
end
|
||||
@@ -525,6 +525,32 @@
|
||||
"http://www.w3.org/2004/02/skos/core#prefLabel"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "http://lblod.data.gift/vocabularies/organisatie/EredienstBeroepen",
|
||||
"graphsFilter": [
|
||||
"http://mu.semte.ch/graphs/public"
|
||||
],
|
||||
"pathToConceptScheme": [
|
||||
"http://www.w3.org/2004/02/skos/core#inScheme"
|
||||
],
|
||||
"properties": [
|
||||
"http://mu.semte.ch/vocabularies/core/uuid",
|
||||
"http://www.w3.org/2004/02/skos/core#prefLabel"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "http://lblod.data.gift/vocabularies/organisatie/TypeBetrokkenheid",
|
||||
"graphsFilter": [
|
||||
"http://mu.semte.ch/graphs/public"
|
||||
],
|
||||
"pathToConceptScheme": [
|
||||
"http://www.w3.org/2004/02/skos/core#inScheme"
|
||||
],
|
||||
"properties": [
|
||||
"http://mu.semte.ch/vocabularies/core/uuid",
|
||||
"http://www.w3.org/2004/02/skos/core#prefLabel"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "http://data.vlaanderen.be/ns/mandaat#Mandaat",
|
||||
"graphsFilter": [
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
DELETE {
|
||||
GRAPH ?g {
|
||||
?s a <http://www.w3.org/ns/org#Organization>.
|
||||
?s <http://www.w3.org/ns/regorg#orgStatus> ?status.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -503,8 +503,16 @@ defmodule Dispatcher do
|
||||
# sparql endpoint
|
||||
###############################################################
|
||||
|
||||
post "/sparql/*path", %{layer: :api_services, accept: %{sparql_json: true}} do
|
||||
forward(conn, path, "http://db:8890/sparql/")
|
||||
# post "/sparql/*path", %{layer: :api_services, accept: %{sparql_json: true}} do
|
||||
# forward(conn, path, "http://db:8890/sparql/")
|
||||
# end
|
||||
|
||||
#################################################################
|
||||
# Health checks
|
||||
#################################################################
|
||||
|
||||
get "/health/accounts", %{layer: :api} do
|
||||
Proxy.forward(conn, [], "http://resource/accounts/")
|
||||
end
|
||||
|
||||
###############################################################
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
DELETE WHERE {
|
||||
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||
<http://data.lblod.info/id/betrokkenLokaleBesturen/a648cf4f6e94d3ea0b0ed32b73b75dd9> ?p ?o.
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
DELETE WHERE {
|
||||
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||
<http://data.lblod.info/id/bestuurseenheden/c648ea5d12626ee3364a02debb223908a71e68f53d69a7a7136585b58a083e77> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/a648cf4f6e94d3ea0b0ed32b73b75dd9>.
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
DELETE {
|
||||
GRAPH ?g {
|
||||
?localInvolvementOudHeverlee <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||
}
|
||||
}
|
||||
INSERT {
|
||||
GRAPH ?g {
|
||||
?localInvolvementOudHeverlee <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> 100.
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?g)
|
||||
GRAPH ?g {
|
||||
?localInvolvementOudHeverlee <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||
}
|
||||
VALUES ?localInvolvementOudHeverlee {
|
||||
<http://data.lblod.info/id/betrokkenLokaleBesturen/3c8696890fb0bb865a798923acf58dcf>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?s <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
|
||||
}
|
||||
} WHERE {
|
||||
VALUES ?type {
|
||||
<http://lblod.data.gift/vocabularies/organisatie/EredienstBeroepen>
|
||||
<http://lblod.data.gift/vocabularies/organisatie/TypeBetrokkenheid>
|
||||
}
|
||||
|
||||
?s a ?type .
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
PREFIX prov: <http://www.w3.org/ns/prov#>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?vlaamsGewest a prov:Location ;
|
||||
mu:uuid ?uuid ;
|
||||
rdfs:label "Vlaams Gewest" ;
|
||||
ext:werkingsgebiedNiveau "Gewest" ;
|
||||
skos:exactMatch <http://vocab.belgif.be/auth/refnis2025/2000> ,
|
||||
<http://vocab.belgif.be/auth/refnis2019/2000> .
|
||||
}
|
||||
} WHERE {
|
||||
BIND(SHA256(CONCAT("Werkingsgebied for Vlaams Gewest")) AS ?uuid)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/werkingsgebieden/", STR(?uuid))) AS ?vlaamsGewest)
|
||||
FILTER NOT EXISTS {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?existing ext:werkingsgebiedNiveau "Gewest" ;
|
||||
rdfs:label "Vlaams Gewest" .
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
PREFIX prov: <http://www.w3.org/ns/prov#>
|
||||
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
|
||||
PREFIX ext: <http://mu.semte.ch/vocabularies/ext/>
|
||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
|
||||
# 1) Link the 5 Flemish province werkingsgebieden themselves to Vlaams Gewest
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?provWg geo:sfWithin ?vlaamsGewest .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?vlaamsGewest a prov:Location ;
|
||||
ext:werkingsgebiedNiveau "Gewest" ;
|
||||
rdfs:label "Vlaams Gewest" .
|
||||
}
|
||||
GRAPH <http://mu.semte.ch/graphs/shared> {
|
||||
?province a besluit:Bestuurseenheid ;
|
||||
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000000> .
|
||||
}
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?province besluit:werkingsgebied ?provWg .
|
||||
}
|
||||
FILTER NOT EXISTS {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?provWg geo:sfWithin ?vlaamsGewest .
|
||||
}
|
||||
}
|
||||
} ;
|
||||
|
||||
# 2) Link Flemish municipality werkingsgebieden to Vlaams Gewest
|
||||
# Selector: any Gemeente-level location whose sfWithin is a werkingsgebied
|
||||
# belonging to a Bestuurseenheid classified as Provincie (i.e. a Flemish province).
|
||||
# Brussels has no provinces, and there are no Waals-Gewest provinces in OP,
|
||||
# so "classified as Provincie" == "Flemish province".
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?munWg geo:sfWithin ?vlaamsGewest .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?vlaamsGewest a prov:Location ;
|
||||
ext:werkingsgebiedNiveau "Gewest" ;
|
||||
rdfs:label "Vlaams Gewest" .
|
||||
?munWg a prov:Location ;
|
||||
ext:werkingsgebiedNiveau "Gemeente" ;
|
||||
geo:sfWithin ?provWg .
|
||||
}
|
||||
GRAPH <http://mu.semte.ch/graphs/shared> {
|
||||
?province a besluit:Bestuurseenheid ;
|
||||
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000000> .
|
||||
}
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?province besluit:werkingsgebied ?provWg .
|
||||
}
|
||||
FILTER NOT EXISTS {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?munWg geo:sfWithin ?vlaamsGewest .
|
||||
}
|
||||
}
|
||||
} ;
|
||||
|
||||
# 3) Link all District and Referentieregio werkingsgebieden to Vlaams Gewest
|
||||
# All districts and referentieregios in the data are Flemish by scope;
|
||||
# no further filtering required.
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?wg geo:sfWithin ?vlaamsGewest .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?vlaamsGewest a prov:Location ;
|
||||
ext:werkingsgebiedNiveau "Gewest" ;
|
||||
rdfs:label "Vlaams Gewest" .
|
||||
?wg a prov:Location ; ext:werkingsgebiedNiveau ?niveau .
|
||||
VALUES ?niveau { "District" "Referentieregio" }
|
||||
}
|
||||
FILTER NOT EXISTS {
|
||||
GRAPH <http://mu.semte.ch/graphs/public> {
|
||||
?wg geo:sfWithin ?vlaamsGewest .
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
|
||||
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
PREFIX regorg: <http://www.w3.org/ns/regorg#>
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime a besluit:Bestuursorgaan ;
|
||||
mu:uuid ?uuidOrgaanInTime ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime ;
|
||||
generiek:isTijdspecialisatieVan ?bestuursorgaan .
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
VALUES ?type {
|
||||
ere:BestuurVanDeEredienst
|
||||
ere:CentraalBestuurVanDeEredienst
|
||||
}
|
||||
|
||||
?bestuurseenheid a ?type .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?bestuurseenheid regorg:orgStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> .
|
||||
}
|
||||
|
||||
?bestuursorgaan besluit:bestuurt ?bestuurseenheid .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?missingOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
|
||||
?missingOrgaanInTime mandaat:bindingStart ?start .
|
||||
FILTER CONTAINS(STR(?start), "2026")
|
||||
}
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?missingOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
|
||||
?missingOrgaanInTime mandaat:bindingEinde ?end .
|
||||
FILTER CONTAINS(STR(?end), "2029")
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?bestuurseenheid, ?bestuursorgaan, "2026-2029")) as ?uuidOrgaanInTime)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/bestuursorganen/", ?uuidOrgaanInTime)) AS ?orgaanInTime)
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
# Add missing mandates to worship services for period 2026-2029
|
||||
|
||||
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
|
||||
## Case LidVanRechtswege : shared mandate for all the organen in time
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?lidVanRechtswege .
|
||||
|
||||
?lidVanRechtswege a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidLidVanRechtswege ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
VALUES (?start ?end) {
|
||||
("2026-04-01T00:00:00"^^xsd:dateTime "2029-03-31T00:00:00"^^xsd:dateTime)
|
||||
}
|
||||
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart ?start ;
|
||||
mandaat:bindingEinde ?end .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?lidVanRechtswege .
|
||||
?lidVanRechtswege org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Rechtswege")) as ?uuidLidVanRechtswege)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidLidVanRechtswege)) AS ?lidVanRechtswege)
|
||||
}
|
||||
|
||||
## Case Bestuursleden, small or big half : 2026 is the beginning of a GH
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?bestuurslidGH .
|
||||
|
||||
?bestuurslidGH a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidBestuurslidGH ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?bestuurslidGH .
|
||||
?bestuurslidGH org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "BestuurslidGH 2026-2032")) as ?uuidBestuurslidGH)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslidGH)) AS ?bestuurslidGH)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?bestuurslidKH .
|
||||
|
||||
?bestuurslidKH a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidBestuurslidKH ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/2962f0bd-2836-4758-9866-8ce8ea2c536f> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
VALUES (?start ?end) {
|
||||
("2026-04-01T00:00:00"^^xsd:dateTime "2029-03-31T00:00:00"^^xsd:dateTime)
|
||||
}
|
||||
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart ?start ;
|
||||
mandaat:bindingEinde ?end .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?bestuurslidKH .
|
||||
?bestuurslidKH org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/2962f0bd-2836-4758-9866-8ce8ea2c536f> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "BestuurslidKH 2023-2029")) as ?uuidBestuurslidKH)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslidKH)) AS ?bestuurslidKH)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
## Other cases are simpler, one mandate is linked to only one orgaan in time. Creating them when missing.
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?voorzitter .
|
||||
|
||||
?voorzitter a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidVoorzitter ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?voorzitter .
|
||||
?voorzitter org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Voorzitter 2026-2029")) as ?uuidVoorzitter)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVoorzitter)) AS ?voorzitter)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?secretaris .
|
||||
|
||||
?secretaris a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidSecretaris ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?secretaris .
|
||||
?secretaris org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Secretaris 2026-2029")) as ?uuidSecretaris)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidSecretaris)) AS ?secretaris)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?penningmeester .
|
||||
|
||||
?penningmeester a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidPenningmeester ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?penningmeester .
|
||||
?penningmeester org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Penningmeester 2026-2029")) as ?uuidPenningmeester)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidPenningmeester)) AS ?penningmeester)
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
# Add missing mandates to central worship services
|
||||
|
||||
## 2026 - 2029
|
||||
|
||||
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
PREFIX regorg: <http://www.w3.org/ns/regorg#>
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?expert .
|
||||
|
||||
?expert a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidExpert ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/8c91c321ad477c4fc372ee36358d3ed4> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?expert .
|
||||
?expert org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/8c91c321ad477c4fc372ee36358d3ed4> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Expert 2026-2029")) as ?uuidExpert)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidExpert)) AS ?expert)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?vertegenwoordiger .
|
||||
|
||||
?vertegenwoordiger a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidVertegenwoordiger ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/6e26e94ea4b127eeb850fb6debe07271> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?vertegenwoordiger .
|
||||
?vertegenwoordiger org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/6e26e94ea4b127eeb850fb6debe07271> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Vertegenwoordiger 2026-2029")) as ?uuidVertegenwoordiger)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVertegenwoordiger)) AS ?vertegenwoordiger)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?secretaris .
|
||||
|
||||
?secretaris a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidSecretaris ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?secretaris .
|
||||
?secretaris org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Secretaris 2026-2029")) as ?uuidSecretaris)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidSecretaris)) AS ?secretaris)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?voorzitter .
|
||||
|
||||
?voorzitter a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidVoorzitter ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5960262f753661cf84329f3afa9f7df7> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?voorzitter .
|
||||
?voorzitter org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5960262f753661cf84329f3afa9f7df7> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Voorzitter 2026-2029")) as ?uuidVoorzitter)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVoorzitter)) AS ?voorzitter)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?bestuurslid .
|
||||
|
||||
?bestuurslid a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidBestuurslid ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/f848fa3cc2c5fb7c581a116866293925> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2026-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2029-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?worshipService regorg:orgStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> .
|
||||
}
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?bestuurslid .
|
||||
?bestuurslid org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/f848fa3cc2c5fb7c581a116866293925> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Bestuurslid 2026-2029")) as ?uuidBestuurslid)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslid)) AS ?bestuurslid)
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
# Cleanup leftover `hhttp://` malformed Secretaris org:role triples introduced by
|
||||
# the 2022 migrations `20220929092641-create-central-worship-organen-2023-2026.sparql`
|
||||
# and `20220929104939-create-central-worship-organen-2026-2029.sparql` (line 31).
|
||||
#
|
||||
# By this point migration C (20260420100300) has already inserted the correct
|
||||
# Secretaris `org:role` triple on the same mandate IRI, so removing the malformed
|
||||
# one leaves each central-worship Secretaris mandate with exactly one valid role.
|
||||
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?s org:role <hhttp://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?s org:role <hhttp://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
|
||||
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
PREFIX regorg: <http://www.w3.org/ns/regorg#>
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime a besluit:Bestuursorgaan ;
|
||||
mu:uuid ?uuidOrgaanInTime ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime ;
|
||||
generiek:isTijdspecialisatieVan ?bestuursorgaan .
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
VALUES ?type {
|
||||
ere:BestuurVanDeEredienst
|
||||
ere:CentraalBestuurVanDeEredienst
|
||||
}
|
||||
|
||||
?bestuurseenheid a ?type .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?bestuurseenheid regorg:orgStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> .
|
||||
}
|
||||
|
||||
?bestuursorgaan besluit:bestuurt ?bestuurseenheid .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?missingOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
|
||||
?missingOrgaanInTime mandaat:bindingStart ?start .
|
||||
FILTER CONTAINS(STR(?start), "2029")
|
||||
}
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?missingOrgaanInTime generiek:isTijdspecialisatieVan ?bestuursorgaan .
|
||||
?missingOrgaanInTime mandaat:bindingEinde ?end .
|
||||
FILTER CONTAINS(STR(?end), "2032")
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?bestuurseenheid, ?bestuursorgaan, "2029-2032")) as ?uuidOrgaanInTime)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/bestuursorganen/", ?uuidOrgaanInTime)) AS ?orgaanInTime)
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
# Create mandates for worship services for period 2029-2032
|
||||
|
||||
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
|
||||
## Case LidVanRechtswege : shared mandate for all the organen in time
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?lidVanRechtswege .
|
||||
|
||||
?lidVanRechtswege a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidLidVanRechtswege ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
VALUES (?start ?end) {
|
||||
("2029-04-01T00:00:00"^^xsd:dateTime "2032-03-31T00:00:00"^^xsd:dateTime)
|
||||
}
|
||||
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart ?start ;
|
||||
mandaat:bindingEinde ?end .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?lidVanRechtswege .
|
||||
?lidVanRechtswege org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5972fccd87f864c4ec06bfbd20b5008b> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Rechtswege")) as ?uuidLidVanRechtswege)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidLidVanRechtswege)) AS ?lidVanRechtswege)
|
||||
}
|
||||
|
||||
## Case Bestuursleden, small or big half : 2029 is the beginning of a KH (cycle 2029-2035); GH continues its 2026-2032 cycle.
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?bestuurslidGH .
|
||||
|
||||
?bestuurslidGH a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidBestuurslidGH ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?bestuurslidGH .
|
||||
?bestuurslidGH org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/a8b5509b-f86b-48f8-94d6-fe463a9b77e3> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "BestuurslidGH 2026-2032")) as ?uuidBestuurslidGH)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslidGH)) AS ?bestuurslidGH)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?bestuurslidKH .
|
||||
|
||||
?bestuurslidKH a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidBestuurslidKH ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/2962f0bd-2836-4758-9866-8ce8ea2c536f> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
VALUES (?start ?end) {
|
||||
("2029-04-01T00:00:00"^^xsd:dateTime "2032-03-31T00:00:00"^^xsd:dateTime)
|
||||
}
|
||||
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart ?start ;
|
||||
mandaat:bindingEinde ?end .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?bestuurslidKH .
|
||||
?bestuurslidKH org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/2962f0bd-2836-4758-9866-8ce8ea2c536f> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "BestuurslidKH 2029-2035")) as ?uuidBestuurslidKH)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslidKH)) AS ?bestuurslidKH)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
## Other cases are simpler, one mandate is linked to only one orgaan in time. Creating them when missing.
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?voorzitter .
|
||||
|
||||
?voorzitter a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidVoorzitter ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?voorzitter .
|
||||
?voorzitter org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/67e6e585166cd97575b3e17ffc430a43> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Voorzitter 2029-2032")) as ?uuidVoorzitter)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVoorzitter)) AS ?voorzitter)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?secretaris .
|
||||
|
||||
?secretaris a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidSecretaris ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?secretaris .
|
||||
?secretaris org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5ac134b9800b81da3c450d6b9605cef2> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Secretaris 2029-2032")) as ?uuidSecretaris)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidSecretaris)) AS ?secretaris)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?penningmeester .
|
||||
|
||||
?penningmeester a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidPenningmeester ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:BestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?penningmeester .
|
||||
?penningmeester org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/180d13930d6f1a3938e0aa7fa9990002> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Penningmeester 2029-2032")) as ?uuidPenningmeester)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidPenningmeester)) AS ?penningmeester)
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
# Create mandates for central worship services
|
||||
|
||||
## 2029 - 2032
|
||||
|
||||
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX mu: <http://mu.semte.ch/vocabularies/core/>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
PREFIX regorg: <http://www.w3.org/ns/regorg#>
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?expert .
|
||||
|
||||
?expert a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidExpert ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/8c91c321ad477c4fc372ee36358d3ed4> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?expert .
|
||||
?expert org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/8c91c321ad477c4fc372ee36358d3ed4> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Expert 2029-2032")) as ?uuidExpert)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidExpert)) AS ?expert)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?vertegenwoordiger .
|
||||
|
||||
?vertegenwoordiger a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidVertegenwoordiger ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/6e26e94ea4b127eeb850fb6debe07271> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?vertegenwoordiger .
|
||||
?vertegenwoordiger org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/6e26e94ea4b127eeb850fb6debe07271> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Vertegenwoordiger 2029-2032")) as ?uuidVertegenwoordiger)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVertegenwoordiger)) AS ?vertegenwoordiger)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?secretaris .
|
||||
|
||||
?secretaris a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidSecretaris ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?secretaris .
|
||||
?secretaris org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/e2af0ea1a6af96cfb698ac39ad985eea> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Secretaris 2029-2032")) as ?uuidSecretaris)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidSecretaris)) AS ?secretaris)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?voorzitter .
|
||||
|
||||
?voorzitter a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidVoorzitter ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5960262f753661cf84329f3afa9f7df7> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?voorzitter .
|
||||
?voorzitter org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/5960262f753661cf84329f3afa9f7df7> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Voorzitter 2029-2032")) as ?uuidVoorzitter)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidVoorzitter)) AS ?voorzitter)
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?orgaanInTime org:hasPost ?bestuurslid .
|
||||
|
||||
?bestuurslid a mandaat:Mandaat ;
|
||||
mu:uuid ?uuidBestuurslid ;
|
||||
org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/f848fa3cc2c5fb7c581a116866293925> .
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/graphs/worship-service> {
|
||||
?worshipService a ere:CentraalBestuurVanDeEredienst .
|
||||
?orgaan besluit:bestuurt ?worshipService .
|
||||
?orgaanInTime generiek:isTijdspecialisatieVan ?orgaan ;
|
||||
mandaat:bindingStart "2029-04-01T00:00:00"^^xsd:dateTime ;
|
||||
mandaat:bindingEinde "2032-03-31T00:00:00"^^xsd:dateTime .
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?worshipService regorg:orgStatus <http://lblod.data.gift/concepts/d02c4e12bf88d2fdf5123b07f29c9311> .
|
||||
}
|
||||
|
||||
FILTER NOT EXISTS {
|
||||
?orgaanInTime org:hasPost ?bestuurslid .
|
||||
?bestuurslid org:role <http://data.vlaanderen.be/id/concept/BestuursfunctieCode/f848fa3cc2c5fb7c581a116866293925> .
|
||||
}
|
||||
}
|
||||
|
||||
BIND(MD5(CONCAT(?worshipService, ?orgaan, "Bestuurslid 2029-2032")) as ?uuidBestuurslid)
|
||||
BIND(IRI(CONCAT("http://data.lblod.info/id/mandaten/", ?uuidBestuurslid)) AS ?bestuurslid)
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
DELETE WHERE {
|
||||
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||
<http://data.lblod.info/id/betrokkenLokaleBesturen/912bd10fb40c208e9b6e2a20af23fc80> ?p ?o.
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
DELETE WHERE {
|
||||
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||
<http://data.lblod.info/id/bestuurseenheden/e971816acb021c37576835e6a96922442628956fd029d885fd849c9f07414469> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/912bd10fb40c208e9b6e2a20af23fc80>.
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
DELETE WHERE {
|
||||
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||
<http://data.lblod.info/id/betrokkenLokaleBesturen/4495dfe049edadb53a29379426ab1c50> ?p ?o.
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
DELETE WHERE {
|
||||
graph <http://mu.semte.ch/graphs/worship-service> {
|
||||
<http://data.lblod.info/id/bestuurseenheden/d3000e1841d968dd70d4534bf216699d830d146ccc1f88b902b0793caad9daf2> <http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur> <http://data.lblod.info/id/betrokkenLokaleBesturen/4495dfe049edadb53a29379426ab1c50>.
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
DELETE {
|
||||
GRAPH ?g {
|
||||
?localInvolvementSintLaureins <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||
}
|
||||
}
|
||||
INSERT {
|
||||
GRAPH ?g {
|
||||
?localInvolvementSintLaureins <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> 100.
|
||||
}
|
||||
}
|
||||
WHERE {
|
||||
BIND(<http://mu.semte.ch/graphs/worship-service> AS ?g)
|
||||
GRAPH ?g {
|
||||
?localInvolvementSintLaureins <http://data.lblod.info/vocabularies/erediensten/financieringspercentage> ?percentage.
|
||||
}
|
||||
VALUES ?localInvolvementSintLaureins {
|
||||
<http://data.lblod.info/id/betrokkenLokaleBesturen/479bf2ff79dc2af870f371f5d86b08bc>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX dcterms: <http://purl.org/dc/terms/>
|
||||
PREFIX regorg: <http://www.w3.org/ns/regorg#>
|
||||
PREFIX adres: <https://data.vlaanderen.be/ns/adres#>
|
||||
|
||||
DELETE {
|
||||
GRAPH <http://mu.semte.ch/application> {
|
||||
?s ?p ?o
|
||||
}
|
||||
} INSERT {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
?s ?p ?o
|
||||
}
|
||||
} WHERE {
|
||||
GRAPH <http://mu.semte.ch/application> {
|
||||
VALUES ?s {
|
||||
<http://data.lblod.info/id/bestuurseenheden/5c6ab343-3405-475d-a184-d44bbe7e787a>
|
||||
<http://data.lblod.info/id/identificatoren/2aa74846-a99d-423b-8c9e-b2a344b39f2a>
|
||||
<http://data.lblod.info/id/gestructureerdeIdentificatoren/0edd4e8e-44b6-4e86-8717-cda144f91ebb>
|
||||
<http://data.lblod.info/id/vestigingen/29faec77-652a-4d8e-afbb-635b141b13f0>
|
||||
<http://data.lblod.info/id/contact-punten/bc66afca-f8cf-4e4d-b038-500906e9ffa9>
|
||||
<http://data.lblod.info/id/contact-punten/1d1da2b5-8f38-41b6-a81d-5bfa72e7d7db>
|
||||
<http://data.lblod.info/id/adressen/2d6c327a-cf81-43a6-8536-17602781fb2f>
|
||||
}
|
||||
?s ?p ?o.
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
INSERT DATA {
|
||||
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
|
||||
<http://data.lblod.info/id/bestuurseenheden/5c6ab343-3405-475d-a184-d44bbe7e787a> a dcterms:Agent ;
|
||||
regorg:legalName "AGB BRUGGE" ;
|
||||
besluit:werkingsgebied <http://data.lblod.info/id/werkingsgebieden/e1a7aa197d1fa117ad5fdc30dee57cf95974c149ed0f319237bb8fb1355d911e> .
|
||||
|
||||
<http://data.lblod.info/id/adressen/2d6c327a-cf81-43a6-8536-17602781fb2f> adres:adresIsGelegenIn <http://data.lblod.info/id/werkingsgebieden/9c503a712d448bc8b89c1f8802c207e30bd192bc8da3bf22509a547949a45301> .
|
||||
}
|
||||
}
|
||||
187
config/reports/administrative-units-report.js
Normal file
187
config/reports/administrative-units-report.js
Normal file
@@ -0,0 +1,187 @@
|
||||
import { generateReportFromData, batchedQuery } from "../helpers.js";
|
||||
import { PREFIXES } from "./utils";
|
||||
|
||||
export default {
|
||||
cronPattern: "0 00 1 * * *",
|
||||
name: "administrativeUnits",
|
||||
execute: async () => {
|
||||
const reportData = {
|
||||
title: "administrative units",
|
||||
description: "List of the administrative units",
|
||||
filePrefix: "exports/administrative-units",
|
||||
};
|
||||
|
||||
console.log("Generating administrative units report");
|
||||
|
||||
const queryString = `
|
||||
${PREFIXES}
|
||||
|
||||
SELECT DISTINCT
|
||||
?Bestuurseenheid
|
||||
?Classificatie
|
||||
?Status
|
||||
?KBO_nr
|
||||
?OVO_nr
|
||||
?Sharepoint_id
|
||||
?NIS_code
|
||||
?Regio
|
||||
?Provincie
|
||||
?Straat
|
||||
?Huisnummer
|
||||
?Busnummer
|
||||
?Postcode
|
||||
?Gemeente
|
||||
(STR(?GrensoverschrijdendBoolean) AS ?Grensoverschrijdend)
|
||||
?TypeEredienst
|
||||
?BestuurseenheidURI
|
||||
?Stekking
|
||||
{
|
||||
VALUES ?type {
|
||||
besluit:Bestuurseenheid
|
||||
ere:BestuurVanDeEredienst
|
||||
org:Organization
|
||||
ere:EredienstBestuurseenheid
|
||||
ere:CentraalBestuurVanDeEredienst
|
||||
}
|
||||
|
||||
?BestuurseenheidURI
|
||||
a ?type.
|
||||
OPTIONAL { ?BestuurseenheidURI skos:prefLabel ?Bestuurseenheid . }
|
||||
OPTIONAL { ?BestuurseenheidURI org:classification/skos:prefLabel ?Classificatie. }
|
||||
|
||||
OPTIONAL {
|
||||
?BestuurseenheidURI besluit:werkingsgebied ?werkingsgebiedURI.
|
||||
?werkingsgebiedURI rdfs:label ?werkingsgebied.
|
||||
OPTIONAL {
|
||||
?werkingsgebiedURI geo:sfWithin ?regionURI.
|
||||
?regionURI
|
||||
ext:werkingsgebiedNiveau "Referentieregio"@nl;
|
||||
rdfs:label ?langRegio.
|
||||
}
|
||||
OPTIONAL {
|
||||
?werkingsgebiedURI skos:exactMatch ?nisArea.
|
||||
?nisArea skos:inScheme ?NISCodeScheme;
|
||||
skos:notation ?NIS_code.
|
||||
|
||||
FILTER (?NISCodeScheme IN ( <http://vocab.belgif.be/auth/refnis2019>, <http://vocab.belgif.be/auth/refnis2025>))
|
||||
}
|
||||
}
|
||||
OPTIONAL {
|
||||
?BestuurseenheidURI org:hasPrimarySite/organisatie:bestaatUit ?address .
|
||||
?address adres:gemeentenaam ?Gemeente .
|
||||
|
||||
?municipalityRegio a besluit:Bestuurseenheid ;
|
||||
skos:prefLabel ?Gemeente ;
|
||||
org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000001> ;
|
||||
besluit:werkingsgebied ?werkingsgebiedRegioURI.
|
||||
|
||||
?werkingsgebiedRegioURI geo:sfWithin ?regioViaAddressURI.
|
||||
?regioViaAddressURI
|
||||
ext:werkingsgebiedNiveau "Referentieregio"@nl;
|
||||
rdfs:label ?langRegioViaAddress.
|
||||
}
|
||||
|
||||
BIND(IF(BOUND(?langRegio) && strlen(?langRegio)>0, str(?langRegio), str(?langRegioViaAddress)) AS ?Regio)
|
||||
|
||||
OPTIONAL { ?BestuurseenheidURI regorg:orgStatus/skos:prefLabel ?Status. }
|
||||
OPTIONAL { ?BestuurseenheidURI ere:typeEredienst ?typeEredienstUri.
|
||||
OPTIONAL { ?typeEredienstUri skos:prefLabel ?TypeEredienst. }
|
||||
}
|
||||
OPTIONAL { ?BestuurseenheidURI ere:grensoverschrijdend ?GrensoverschrijdendBoolean. }
|
||||
OPTIONAL { ?BestuurseenheidURI org:hasPrimarySite/organisatie:bestaatUit ?address .
|
||||
OPTIONAL { ?address locn:thoroughfare ?Straat }
|
||||
OPTIONAL { ?address adres:Adresvoorstelling.huisnummer ?Huisnummer . }
|
||||
OPTIONAL { ?address adres:Adresvoorstelling.busnummer ?Busnummer . }
|
||||
OPTIONAL { ?address locn:postCode ?Postcode . }
|
||||
OPTIONAL { ?address adres:gemeentenaam ?Gemeente . }
|
||||
OPTIONAL { ?address locn:adminUnitL2 ?Provincie . }
|
||||
OPTIONAL { ?address adres:land ?Land . }
|
||||
}
|
||||
OPTIONAL {
|
||||
?BestuurseenheidURI adms:identifier ?kbo_identifier .
|
||||
?kbo_identifier
|
||||
skos:notation ?kbo_notation;
|
||||
generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator ?KBO_nr.
|
||||
FILTER (str(?kbo_notation) = "KBO nummer")
|
||||
}
|
||||
OPTIONAL {
|
||||
?BestuurseenheidURI adms:identifier ?ovo_identifier .
|
||||
?ovo_identifier
|
||||
skos:notation ?ovo_notation;
|
||||
generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator ?OVO_nr.
|
||||
FILTER (str(?ovo_notation) = "OVO-nummer")
|
||||
}
|
||||
OPTIONAL {
|
||||
?BestuurseenheidURI adms:identifier ?sp_identifier .
|
||||
?sp_identifier
|
||||
skos:notation ?sp_notation;
|
||||
generiek:gestructureerdeIdentificator/generiek:lokaleIdentificator ?Sharepoint_id.
|
||||
FILTER (str(?sp_notation) = "SharePoint identificator")
|
||||
}
|
||||
OPTIONAL {
|
||||
?changeEvent org:resultingOrganization ?BestuurseenheidURI;
|
||||
ch:typeWijziging <http://lblod.data.gift/concepts/e4c3d1ef-a34d-43b0-a18c-f4e60e2c8af3>.
|
||||
<http://lblod.data.gift/concepts/e4c3d1ef-a34d-43b0-a18c-f4e60e2c8af3> skos:prefLabel ?stadsTitel
|
||||
}
|
||||
OPTIONAL { ?BestuurseenheidURI ere:denominatie ?Stekking. }
|
||||
} ORDER BY DESC(?Classificatie) ?Bestuurseenheid
|
||||
`;
|
||||
|
||||
const queryResponse = await batchedQuery(queryString);
|
||||
|
||||
const data = queryResponse.results.bindings.map((row) => ({
|
||||
Bestuurseenheid: getSafeValue(row, "Bestuurseenheid"),
|
||||
Classificatie: getSafeValue(row, "Classificatie"),
|
||||
Status: getSafeValue(row, "Status"),
|
||||
KBO_nr: getSafeValue(row, "KBO_nr"),
|
||||
OVO_nr: getSafeValue(row, "OVO_nr"),
|
||||
Sharepoint_id: getSafeValue(row, "Sharepoint_id"),
|
||||
NIS_code: getSafeValue(row, "NIS_code"),
|
||||
Regio: getSafeValue(row, "Regio"),
|
||||
Provincie: getSafeValue(row, "Provincie"),
|
||||
Straat: getSafeValue(row, "Straat"),
|
||||
Huisnummer: getSafeValue(row, "Huisnummer"),
|
||||
Busnummer: getSafeValue(row, "Busnummer"),
|
||||
Postcode: getSafeValue(row, "Postcode"),
|
||||
Gemeente: getSafeValue(row, "Gemeente"),
|
||||
Grensoverschrijdend: getSafeValue(row, "Grensoverschrijdend"),
|
||||
TypeEredienst: getSafeValue(row, "TypeEredienst"),
|
||||
BestuurseenheidURI: getSafeValue(row, "BestuurseenheidURI"),
|
||||
Stekking: getSafeValue(row, "Stekking"),
|
||||
}));
|
||||
|
||||
await generateReportFromData(
|
||||
data,
|
||||
[
|
||||
"Bestuurseenheid",
|
||||
"Classificatie",
|
||||
"Status",
|
||||
"KBO_nr",
|
||||
"OVO_nr",
|
||||
"Sharepoint_id",
|
||||
"NIS_code",
|
||||
"Regio",
|
||||
"Provincie",
|
||||
"Straat",
|
||||
"Huisnummer",
|
||||
"Busnummer",
|
||||
"Postcode",
|
||||
"Gemeente",
|
||||
"Grensoverschrijdend",
|
||||
"TypeEredienst",
|
||||
"BestuurseenheidURI",
|
||||
"Stekking",
|
||||
],
|
||||
reportData,
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
function getSafeValue(entry, property) {
|
||||
return entry[property] ? wrapInQuote(entry[property].value) : null;
|
||||
}
|
||||
|
||||
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
|
||||
function wrapInQuote(value) {
|
||||
return `\"${value}\"`;
|
||||
}
|
||||
135
config/reports/change-events-report.js
Normal file
135
config/reports/change-events-report.js
Normal file
@@ -0,0 +1,135 @@
|
||||
import {generateReportFromData, batchedQuery} from "../helpers.js";
|
||||
import {PREFIXES} from "./utils";
|
||||
|
||||
export default {
|
||||
cronPattern: "0 00 3 * * *",
|
||||
name: "changeEvents",
|
||||
execute: async () => {
|
||||
const reportData = {
|
||||
title: "change events",
|
||||
description:
|
||||
"List of change events",
|
||||
filePrefix: "exports/change-events",
|
||||
};
|
||||
|
||||
console.log("Generating change events report");
|
||||
|
||||
const queryString = `
|
||||
${PREFIXES}
|
||||
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX regorg: <http://www.w3.org/ns/regorg#>
|
||||
PREFIX dct: <http://purl.org/dc/terms/>
|
||||
PREFIX m8g: <http://data.europa.eu/m8g/>
|
||||
PREFIX eli: <http://data.europa.eu/eli/ontology#>
|
||||
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
|
||||
PREFIX prov: <http://www.w3.org/ns/prov#>
|
||||
PREFIX dossier: <https://data.vlaanderen.be/ns/dossier#>
|
||||
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
|
||||
|
||||
SELECT DISTINCT
|
||||
?organisatie
|
||||
?organisatieLabel
|
||||
?classificatieLabel
|
||||
?statusLabel
|
||||
?resulterendeOrganisatie
|
||||
?resulterendeOrganisatieLabel
|
||||
?resulterendeClassificatieLabel
|
||||
?resulterendeStatusLabel
|
||||
?veranderingsgebeurtenisTypeLabel
|
||||
?beschrijving
|
||||
?linkNaarBesluit
|
||||
?datumMinisterieelBesluit
|
||||
?datumPublicatieBS
|
||||
?datumVeranderingsgebeurtenis
|
||||
WHERE {
|
||||
{
|
||||
SELECT DISTINCT ?organisatie ?organisatieLabel ?veranderingsgebeurtenis
|
||||
WHERE {
|
||||
?organisatie a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> ;
|
||||
skos:prefLabel ?organisatieLabel .
|
||||
|
||||
?veranderingsgebeurtenis a org:ChangeEvent ;
|
||||
org:originalOrganization ?organisatie .
|
||||
}
|
||||
}
|
||||
|
||||
OPTIONAL { ?organisatie org:classification/skos:prefLabel ?classificatieLabel . }
|
||||
OPTIONAL { ?organisatie regorg:orgStatus/skos:prefLabel ?statusLabel . }
|
||||
|
||||
OPTIONAL {
|
||||
?veranderingsgebeurtenis org:resultingOrganization ?resulterendeOrganisatie .
|
||||
OPTIONAL { ?resulterendeOrganisatie skos:prefLabel ?resulterendeOrganisatieLabel . }
|
||||
OPTIONAL { ?resulterendeOrganisatie org:classification/skos:prefLabel ?resulterendeClassificatieLabel . }
|
||||
OPTIONAL { ?resulterendeOrganisatie regorg:orgStatus/skos:prefLabel ?resulterendeStatusLabel . }
|
||||
}
|
||||
|
||||
OPTIONAL { ?veranderingsgebeurtenis ch:typeWijziging/skos:prefLabel ?veranderingsgebeurtenisTypeLabel . }
|
||||
OPTIONAL { ?veranderingsgebeurtenis dct:description ?beschrijving . }
|
||||
OPTIONAL { ?veranderingsgebeurtenis dct:date ?datumVeranderingsgebeurtenis . }
|
||||
|
||||
OPTIONAL {
|
||||
?veranderingsgebeurtenis m8g:hasFormalFramework ?besluit .
|
||||
OPTIONAL { ?besluit foaf:page ?linkNaarBesluit . }
|
||||
OPTIONAL { ?besluit eli:date_publication ?datumPublicatieBS . }
|
||||
OPTIONAL {
|
||||
?beslissingsactiviteit prov:generated ?besluit ;
|
||||
dossier:Activiteit.einddatum ?datumMinisterieelBesluit .
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
ORDER BY ?organisatieLabel ?datumVeranderingsgebeurtenis
|
||||
`;
|
||||
|
||||
const queryResponse = await batchedQuery(queryString);
|
||||
|
||||
const data = queryResponse.results.bindings.map((row) => ({
|
||||
organisatie: getSafeValue(row, "organisatie"),
|
||||
organisatieLabel: getSafeValue(row, "organisatieLabel"),
|
||||
classificatieLabel: getSafeValue(row, "classificatieLabel"),
|
||||
statusLabel: getSafeValue(row, "statusLabel"),
|
||||
resulterendeOrganisatie: getSafeValue(row, "resulterendeOrganisatie"),
|
||||
resulterendeOrganisatieLabel: getSafeValue(row, "resulterendeOrganisatieLabel"),
|
||||
resulterendeClassificatieLabel: getSafeValue(row, "resulterendeClassificatieLabel"),
|
||||
resulterendeStatusLabel: getSafeValue(row, "resulterendeStatusLabel"),
|
||||
veranderingsgebeurtenisTypeLabel: getSafeValue(row, "veranderingsgebeurtenisTypeLabel"),
|
||||
beschrijving: getSafeValue(row, "beschrijving"),
|
||||
linkNaarBesluit: getSafeValue(row, "linkNaarBesluit"),
|
||||
datumMinisterieelBesluit: getSafeValue(row, "datumMinisterieelBesluit"),
|
||||
datumPublicatieBS: getSafeValue(row, "datumPublicatieBS"),
|
||||
datumVeranderingsgebeurtenis: getSafeValue(row, "datumVeranderingsgebeurtenis"),
|
||||
}));
|
||||
|
||||
await generateReportFromData(
|
||||
data,
|
||||
[
|
||||
"organisatie",
|
||||
"organisatieLabel",
|
||||
"classificatieLabel",
|
||||
"statusLabel",
|
||||
"resulterendeOrganisatie",
|
||||
"resulterendeOrganisatieLabel",
|
||||
"resulterendeClassificatieLabel",
|
||||
"resulterendeStatusLabel",
|
||||
"veranderingsgebeurtenisTypeLabel",
|
||||
"beschrijving",
|
||||
"linkNaarBesluit",
|
||||
"datumMinisterieelBesluit",
|
||||
"datumPublicatieBS",
|
||||
"datumVeranderingsgebeurtenis",
|
||||
],
|
||||
reportData,
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
function getSafeValue(entry, property) {
|
||||
return entry[property] ? wrapInQuote(entry[property].value) : null;
|
||||
}
|
||||
|
||||
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
|
||||
function wrapInQuote(value) {
|
||||
return `\"${value}\"`;
|
||||
}
|
||||
@@ -3,6 +3,10 @@ import RelatedOrganizationsReport from './related-organizations-report'
|
||||
import KboOrganizationsReport from './kbo-organizations-report'
|
||||
import OrganizationsDetailReport from './organizations-detail-report'
|
||||
import OrganizationsPlatformReport from './organizations-platform-report'
|
||||
import AdministrativeUnitsReport from "./administrative-units-report";
|
||||
import ChangeEventsReport from "./change-events-report";
|
||||
import OrganizationsNoAddressReport from "./organizations-no-address-report";
|
||||
import OrganizationsInFrontendReport from "./organizations-in-frontend-report";
|
||||
|
||||
export default [
|
||||
OrganizationsReport,
|
||||
@@ -10,4 +14,8 @@ export default [
|
||||
KboOrganizationsReport,
|
||||
OrganizationsDetailReport,
|
||||
OrganizationsPlatformReport,
|
||||
AdministrativeUnitsReport,
|
||||
ChangeEventsReport,
|
||||
OrganizationsNoAddressReport,
|
||||
OrganizationsInFrontendReport,
|
||||
];
|
||||
|
||||
102
config/reports/organizations-in-frontend-report.js
Normal file
102
config/reports/organizations-in-frontend-report.js
Normal file
@@ -0,0 +1,102 @@
|
||||
import { generateReportFromData, batchedQuery } from "../helpers.js";
|
||||
import { PREFIXES } from "./utils";
|
||||
|
||||
export default {
|
||||
cronPattern: "0 00 23 * * *",
|
||||
name: "organizationsInFrontend",
|
||||
execute: async () => {
|
||||
const reportData = {
|
||||
title: "organisations in frontend",
|
||||
description: "List of the Organisations shown in the frontend",
|
||||
filePrefix: "exports/organizations-in-frontend",
|
||||
};
|
||||
|
||||
console.log("Generating organizations in frontend report");
|
||||
|
||||
const queryString = `
|
||||
${PREFIXES}
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX adms: <http://www.w3.org/ns/adms#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
PREFIX geosparql: <http://www.opengis.net/ont/geosparql#>
|
||||
PREFIX dct: <http://purl.org/dc/terms/>
|
||||
SELECT DISTINCT
|
||||
?bestuur
|
||||
?label
|
||||
?classification
|
||||
?typeEredienst
|
||||
?provincie
|
||||
?status
|
||||
WHERE {
|
||||
?bestuur a org:Organization .
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/org#hasPrimarySite> ?site.
|
||||
?site <https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?address.
|
||||
?address <http://www.w3.org/ns/locn#adminUnitL2> ?provincie.
|
||||
}
|
||||
OPTIONAL {?bestuur <http://data.lblod.info/vocabularies/erediensten/typeEredienst> ?typeEredienst.}
|
||||
OPTIONAL {?bestuur skos:prefLabel ?label}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/org#classification> ?org_classification .
|
||||
?org_classification skos:prefLabel ?classification.
|
||||
}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/regorg#orgStatus> ?org_status.
|
||||
?org_status skos:prefLabel ?status.
|
||||
}
|
||||
|
||||
FILTER(
|
||||
NOT EXISTS {
|
||||
?bestuur org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000001>.
|
||||
}
|
||||
||
|
||||
EXISTS {
|
||||
?bestuur besluit:werkingsgebied ?werkingsgebied .
|
||||
?werkingsgebied geosparql:sfWithin ?parent .
|
||||
}
|
||||
)
|
||||
|
||||
FILTER(
|
||||
NOT EXISTS {
|
||||
?bestuur org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/52cc9d8d-1c9a-4d92-9936-da9d4a622ec4>.
|
||||
}
|
||||
|
||||
)
|
||||
}
|
||||
`;
|
||||
|
||||
const queryResponse = await batchedQuery(queryString);
|
||||
|
||||
const data = queryResponse.results.bindings.map((row) => ({
|
||||
bestuur: getSafeValue(row, "bestuur"),
|
||||
label: getSafeValue(row, "label"),
|
||||
classification: getSafeValue(row, "classification"),
|
||||
typeEredienst: getSafeValue(row, "typeEredienst"),
|
||||
provincie: getSafeValue(row, "provincie"),
|
||||
status: getSafeValue(row, "status"),
|
||||
}));
|
||||
|
||||
await generateReportFromData(
|
||||
data,
|
||||
[
|
||||
"bestuur",
|
||||
"label",
|
||||
"classification",
|
||||
"typeEredienst",
|
||||
"provincie",
|
||||
"status",
|
||||
],
|
||||
reportData,
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
function getSafeValue(entry, property) {
|
||||
return entry[property] ? wrapInQuote(entry[property].value) : null;
|
||||
}
|
||||
|
||||
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
|
||||
function wrapInQuote(value) {
|
||||
return `\"${value}\"`;
|
||||
}
|
||||
98
config/reports/organizations-no-address-report.js
Normal file
98
config/reports/organizations-no-address-report.js
Normal file
@@ -0,0 +1,98 @@
|
||||
import { generateReportFromData, batchedQuery } from "../helpers.js";
|
||||
import { PREFIXES } from "./utils";
|
||||
|
||||
export default {
|
||||
cronPattern: "0 00 23 * * *",
|
||||
name: "organizationsNoAddressregister",
|
||||
execute: async () => {
|
||||
const reportData = {
|
||||
title: "missing address URI's",
|
||||
description: "List of Organizations with addresses that have no address URI",
|
||||
filePrefix: "exports/organizations-no-addressregister",
|
||||
};
|
||||
|
||||
console.log("Generating organizations no addressregister report");
|
||||
|
||||
const queryString = `
|
||||
${PREFIXES}
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX adms: <http://www.w3.org/ns/adms#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
SELECT DISTINCT
|
||||
?bestuur
|
||||
?label
|
||||
?classification
|
||||
?status
|
||||
?street
|
||||
?number
|
||||
?bus
|
||||
?postal
|
||||
?location
|
||||
WHERE {
|
||||
?bestuur a org:Organization .
|
||||
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/org#hasPrimarySite> ?site .
|
||||
?site <https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?address .
|
||||
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#verwijstNaar> ?adressenregister .}
|
||||
OPTIONAL{?address <http://www.w3.org/ns/locn#thoroughfare> ?street . }
|
||||
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#Adresvoorstelling.huisnummer> ?number . }
|
||||
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#Adresvoorstelling.busnummer> ?bus . }
|
||||
OPTIONAL{?address <http://www.w3.org/ns/locn#postCode> ?postal . }
|
||||
OPTIONAL{?address <https://data.vlaanderen.be/ns/adres#gemeentenaam> ?location . }
|
||||
}
|
||||
|
||||
OPTIONAL {?bestuur skos:prefLabel ?label}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/org#classification> ?org_classification .
|
||||
?org_classification skos:prefLabel ?classification .
|
||||
}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/regorg#orgStatus> ?org_status .
|
||||
?org_status skos:prefLabel ?status .
|
||||
}
|
||||
FILTER(!BOUND(?adressenregister))
|
||||
}
|
||||
`;
|
||||
|
||||
const queryResponse = await batchedQuery(queryString);
|
||||
|
||||
const data = queryResponse.results.bindings.map((row) => ({
|
||||
bestuur: getSafeValue(row, "bestuur"),
|
||||
label: getSafeValue(row, "label"),
|
||||
classification: getSafeValue(row, "classification"),
|
||||
status: getSafeValue(row, "status"),
|
||||
street: getSafeValue(row, "street"),
|
||||
number: getSafeValue(row, "number"),
|
||||
bus: getSafeValue(row, "bus"),
|
||||
postal: getSafeValue(row, "postal"),
|
||||
location: getSafeValue(row, "location"),
|
||||
}));
|
||||
|
||||
await generateReportFromData(
|
||||
data,
|
||||
[
|
||||
"bestuur",
|
||||
"label",
|
||||
"classification",
|
||||
"status",
|
||||
"street",
|
||||
"number",
|
||||
"bus",
|
||||
"postal",
|
||||
"location",
|
||||
],
|
||||
reportData,
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
function getSafeValue(entry, property) {
|
||||
return entry[property] ? wrapInQuote(entry[property].value) : null;
|
||||
}
|
||||
|
||||
// Some values might contain commas; wrapping them in escapes quotes doesn't disrupt the columns.
|
||||
function wrapInQuote(value) {
|
||||
return `\"${value}\"`;
|
||||
}
|
||||
@@ -6,93 +6,68 @@ export default {
|
||||
name: "organizations",
|
||||
execute: async () => {
|
||||
const reportData = {
|
||||
title: "organizations",
|
||||
description: "List of the Organizations",
|
||||
title: "organisations in database",
|
||||
description: "List of the Organisations in the database",
|
||||
filePrefix: "exports/organizations",
|
||||
};
|
||||
|
||||
console.log("Generating organizations report");
|
||||
|
||||
const queryStringPart1 = `
|
||||
const queryString = `
|
||||
${PREFIXES}
|
||||
|
||||
SELECT DISTINCT ?bestuur ?label ?classification ?typeEredienst
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX adms: <http://www.w3.org/ns/adms#>
|
||||
PREFIX generiek: <https://data.vlaanderen.be/ns/generiek#>
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
SELECT DISTINCT
|
||||
?bestuur
|
||||
?label
|
||||
?classification
|
||||
?typeEredienst
|
||||
?provincie
|
||||
?status
|
||||
WHERE {
|
||||
GRAPH ?g {
|
||||
?bestuur a org:Organization .
|
||||
OPTIONAL { ?bestuur skos:prefLabel ?label. }
|
||||
}
|
||||
|
||||
OPTIONAL {
|
||||
?bestuur org:classification ?classificationUri .
|
||||
?classificationUri skos:prefLabel ?classification.
|
||||
}
|
||||
|
||||
OPTIONAL {
|
||||
?bestuur ere:typeEredienst ?typeEredienstUri.
|
||||
?typeEredienstUri skos:prefLabel ?typeEredienst.
|
||||
}
|
||||
|
||||
FILTER (?g IN ( <http://mu.semte.ch/graphs/administrative-unit>, <http://mu.semte.ch/graphs/worship-service>, <http://mu.semte.ch/graphs/shared>))
|
||||
}
|
||||
`;
|
||||
|
||||
const queryResponsePart1 = await batchedQuery(queryStringPart1);
|
||||
|
||||
const dataPart1 = queryResponsePart1.results.bindings.reduce((acc, row) => {
|
||||
acc[getSafeValue(row, "bestuur")] = {
|
||||
bestuur: getSafeValue(row, "bestuur"),
|
||||
label: getSafeValue(row, "label"),
|
||||
classification: getSafeValue(row, "classification"),
|
||||
typeEredienst: getSafeValue(row, "typeEredienst"),
|
||||
};
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
const queryStringPart2 = `
|
||||
${PREFIXES}
|
||||
|
||||
SELECT DISTINCT ?bestuur ?provincie
|
||||
WHERE {
|
||||
GRAPH ?g {
|
||||
?bestuur a org:Organization .
|
||||
}
|
||||
|
||||
OPTIONAL {
|
||||
GRAPH ?h {
|
||||
?bestuur org:hasPrimarySite ?primarySite.
|
||||
|
||||
?bestuur a org:Organization .
|
||||
OPTIONAL {
|
||||
?primarySite organisatie:bestaatUit ?sa.
|
||||
OPTIONAL { ?sa locn:adminUnitL2 ?provincie. }
|
||||
?bestuur <http://www.w3.org/ns/org#hasPrimarySite> ?site.
|
||||
?site <https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?address.
|
||||
?address <http://www.w3.org/ns/locn#adminUnitL2> ?provincie
|
||||
}
|
||||
}
|
||||
FILTER (?h IN ( <http://mu.semte.ch/graphs/administrative-unit>, <http://mu.semte.ch/graphs/worship-service> ))
|
||||
}
|
||||
|
||||
FILTER (?g IN ( <http://mu.semte.ch/graphs/administrative-unit>, <http://mu.semte.ch/graphs/worship-service>, <http://mu.semte.ch/graphs/shared>))
|
||||
|
||||
OPTIONAL {?bestuur <http://data.lblod.info/vocabularies/erediensten/typeEredienst> ?typeEredienst.}
|
||||
OPTIONAL {?bestuur skos:prefLabel ?label}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/org#classification> ?org_classification .
|
||||
?org_classification skos:prefLabel ?classification
|
||||
}
|
||||
OPTIONAL {
|
||||
?bestuur <http://www.w3.org/ns/regorg#orgStatus> ?org_status.
|
||||
?org_status skos:prefLabel ?status.
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
const queryResponsePart2 = await batchedQuery(queryStringPart2);
|
||||
const dataPart2 = queryResponsePart2.results.bindings.reduce((acc, row) => {
|
||||
let dataPart = {
|
||||
bestuur: getSafeValue(row, "bestuur"),
|
||||
provincie: getSafeValue(row, "provincie"),
|
||||
};
|
||||
const queryResponse = await batchedQuery(queryString);
|
||||
|
||||
acc[getSafeValue(row, "bestuur")] = Object.assign(
|
||||
dataPart,
|
||||
dataPart1[getSafeValue(row, "bestuur")],
|
||||
);
|
||||
return acc;
|
||||
}, {});
|
||||
const data = queryResponse.results.bindings.map((row) => ({
|
||||
"bestuur": getSafeValue(row, "bestuur"),
|
||||
"label": getSafeValue(row, "label"),
|
||||
"classification": getSafeValue(row, "classification"),
|
||||
"typeEredienst": getSafeValue(row, "typeEredienst"),
|
||||
"provincie": getSafeValue(row, "provincie"),
|
||||
"status": getSafeValue(row, "status"),
|
||||
}));
|
||||
|
||||
await generateReportFromData(
|
||||
Object.values(dataPart2),
|
||||
["bestuur", "label", "classification", "typeEredienst", "provincie"],
|
||||
reportData,
|
||||
data,
|
||||
[
|
||||
"bestuur",
|
||||
"label",
|
||||
"classification",
|
||||
"typeEredienst",
|
||||
"provincie",
|
||||
"status",
|
||||
],
|
||||
reportData,
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -26,4 +26,5 @@ export const PREFIXES = `
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
|
||||
`;
|
||||
|
||||
@@ -33,8 +33,9 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
db:
|
||||
image: semtech/mu-authorization:feature-service-roam-r1.1
|
||||
image: semtech/sparql-parser:0.0.15
|
||||
environment:
|
||||
LISP_DYNAMIC_SPACE_SIZE: 8192
|
||||
MU_SPARQL_ENDPOINT: "http://triplestore:8890/sparql"
|
||||
LOG_OUTGOING_SPARQL_QUERIES: "true"
|
||||
LOG_INCOMING_SPARQL_QUERIES: "true"
|
||||
@@ -45,6 +46,7 @@ services:
|
||||
QUERY_MAX_EXECUTION_TIME: "300000"
|
||||
volumes:
|
||||
- ./config/authorization:/config
|
||||
- ./data/authorization:/data
|
||||
labels:
|
||||
- "logging=true"
|
||||
restart: always
|
||||
@@ -89,9 +91,10 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
resource:
|
||||
image: semtech/mu-cl-resources:1.24.0
|
||||
image: semtech/mu-cl-resources:1.27.2
|
||||
environment:
|
||||
CACHE_CLEAR_PATH: "http://cache/.mu/clear-keys"
|
||||
LISP_DYNAMIC_SPACE_SIZE: "8192" # 1GB by default, increase to 8GB on systems with a lot of data
|
||||
links:
|
||||
- db:database
|
||||
volumes:
|
||||
@@ -140,7 +143,7 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
login:
|
||||
image: lblod/acmidm-login-service:0.12.0
|
||||
image: lblod/acmidm-login-service:0.12.1.rc-2
|
||||
environment:
|
||||
MU_APPLICATION_AUTH_USERID_CLAIM: "vo_id"
|
||||
MU_APPLICATION_GRAPH: "http://mu.semte.ch/graphs/contacthub/accounts"
|
||||
@@ -156,7 +159,7 @@ services:
|
||||
links:
|
||||
- db:database
|
||||
login-dashboard:
|
||||
image: lblod/acmidm-login-service:0.12.0
|
||||
image: lblod/acmidm-login-service:0.12.1.rc-2
|
||||
environment:
|
||||
LOG_SINK_URL: "http://sink"
|
||||
MU_APPLICATION_AUTH_ROLE_CLAIM: "abb_organisatieportaal_rol_2d"
|
||||
@@ -212,7 +215,7 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
frontend:
|
||||
image: lblod/frontend-organization-portal:1.36.5
|
||||
image: lblod/frontend-organization-portal:1.37.0
|
||||
volumes:
|
||||
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
|
||||
environment:
|
||||
@@ -304,7 +307,7 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
construct-organization-relationships:
|
||||
image: lblod/construct-organization-relationships-service:1.0.3
|
||||
image: lblod/construct-organization-relationships-service:1.1.1
|
||||
links:
|
||||
- db:database
|
||||
labels:
|
||||
@@ -344,7 +347,7 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
kbo-data-sync:
|
||||
image: lblod/sync-wegwijs-organization-service:2.0.4
|
||||
image: lblod/sync-wegwijs-organization-service:2.0.5
|
||||
links:
|
||||
- db:database
|
||||
labels:
|
||||
@@ -389,7 +392,7 @@ services:
|
||||
restart: always
|
||||
logging: *default-logging
|
||||
delta-producer-publication-graph-maintainer:
|
||||
image: lblod/delta-producer-publication-graph-maintainer:1.2.2
|
||||
image: lblod/delta-producer-publication-graph-maintainer:1.4.3
|
||||
environment:
|
||||
MAX_BODY_SIZE: "50mb"
|
||||
PRETTY_PRINT_DIFF_JSON: "true"
|
||||
|
||||
Reference in New Issue
Block a user