Merge branch 'development' into feat/phone-number-format-migration

This commit is contained in:
Claire Lovisa
2023-12-04 10:40:12 +01:00
49 changed files with 23132 additions and 123 deletions

1
.gitignore vendored
View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -60,8 +60,8 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://cache/board-position-codes/"
end
match "/agents/*path", %{ accept: [:json], layer: :api} do
Proxy.forward conn, path, "http://cache/agents/"
match "/functionaries/*path", %{ accept: [:json], layer: :api} do
Proxy.forward conn, path, "http://cache/functionaries/"
end
match "/agent-status-codes/*path", %{ accept: [:json], layer: :api} do
@@ -84,6 +84,10 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://cache/administrative-unit-classification-codes/"
end
match "/organization-classification-codes/*path", %{ accept: [:json], layer: :api} do
Proxy.forward conn, path, "http://cache/organization-classification-codes/"
end
match "/worship-administrative-units/*path", %{ accept: [:json], layer: :api} do
Proxy.forward conn, path, "http://resource/worship-administrative-units/"
end
@@ -305,6 +309,10 @@ defmodule Dispatcher do
forward conn, path, "http://construct-administrative-unit-relationships/create-relationships/"
end
post "/sync-ovo-number/*path", %{ layer: :api_services, accept: %{ json: true } } do
forward conn, path, "http://sync-ovo-numbers/sync-from-kbo/"
end
get "/ldes/*path", %{ layer: :api_services } do
forward conn, path, "http://ldes-backend/"
end
@@ -365,6 +373,14 @@ defmodule Dispatcher do
Proxy.forward conn, path, "http://delta-producer-pub-graph-maintainer-worship-posts/files/"
end
#################################################################
# Exports
#################################################################
get "/download-exports/*path" do
Proxy.forward conn, path, "http://download-exports/"
end
###############################################################
# frontend layer
###############################################################

View File

@@ -126,5 +126,23 @@
"nextIndex": "0"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/initialSyncing/organizations": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/initialSyncing",
"nextIndex": "0"
}
]
},
"http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/healingOperation/organizations": {
"tasksConfiguration": [
{
"currentOperation": null,
"nextOperation": "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/healing",
"nextIndex": "0"
}
]
}
}

View File

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

View File

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

View File

@@ -0,0 +1,10 @@
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://lblod.data.gift/concepts/0ed15289-1f3d-4172-8c46-0506de5aa2a3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lblod.data.gift/vocabularies/organisatie/TypeVestiging> .
<http://lblod.data.gift/concepts/0ed15289-1f3d-4172-8c46-0506de5aa2a3> <http://www.w3.org/2004/02/skos/core#prefLabel> "Hoofdcommissariaat" .
<http://lblod.data.gift/concepts/0ed15289-1f3d-4172-8c46-0506de5aa2a3> <http://mu.semte.ch/vocabularies/core/uuid> "0ed15289-1f3d-4172-8c46-0506de5aa2a3" .
<http://lblod.data.gift/concepts/0ed15289-1f3d-4172-8c46-0506de5aa2a3> <http://www.w3.org/2004/02/skos/core#topConceptOf> <http://lblod.data.gift/concept-schemes/f8319ccf40fc2a1697edc5cf7e03018f> .
<http://lblod.data.gift/concepts/0ed15289-1f3d-4172-8c46-0506de5aa2a3> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/f8319ccf40fc2a1697edc5cf7e03018f> .
<http://lblod.data.gift/concepts/0ed15289-1f3d-4172-8c46-0506de5aa2a3> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> .
}
}

View File

@@ -0,0 +1,23 @@
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?municipality <http://www.w3.org/ns/org#hasSubOrganization> ?bestuur .
}
} WHERE {
VALUES ?classificationIgs {
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/a3922c6d-425b-474f-9a02-ffb71a436bfc>
<http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/ea446861-2c51-45fa-afd3-4e4a37b71562>
}
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?bestuur a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> ;
<http://www.w3.org/ns/org#classification> ?classificationIgs ;
<http://www.w3.org/ns/org#hasPrimarySite>/<https://data.vlaanderen.be/ns/organisatie#bestaatUit> ?address .
?address <https://data.vlaanderen.be/ns/adres#gemeentenaam> ?municipalityLabel .
}
GRAPH <http://mu.semte.ch/graphs/shared> {
?municipality a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> ;
skos:prefLabel ?municipalityLabel ;
<http://www.w3.org/ns/org#classification> <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000001> .
}
}

View File

@@ -0,0 +1,26 @@
PREFIX org: <http://www.w3.org/ns/org#>
INSERT {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?secondarySiteContact <http://schema.org/telephone> ?phone .
?secondarySiteContact <http://xmlns.com/foaf/0.1/page> ?website .
?secondarySiteContact <http://schema.org/email> ?email .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/administrative-unit> {
?adminUnit org:classification <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/a3922c6d-425b-474f-9a02-ffb71a436bfc> ;
<http://www.w3.org/ns/org#hasPrimarySite> ?primarySite ;
<http://www.w3.org/ns/org#hasSite> ?secondarySite .
?primarySite <http://www.w3.org/ns/org#siteAddress> ?primarySiteContact .
?primarySiteContact <http://schema.org/contactType> "Primary" .
?secondarySite <http://www.w3.org/ns/org#siteAddress> ?secondarySiteContact .
?secondarySiteContact <http://schema.org/contactType> "Primary" .
OPTIONAL { ?primarySiteContact <http://schema.org/telephone> ?phone . }
OPTIONAL { ?primarySiteContact <http://xmlns.com/foaf/0.1/page> ?website . }
OPTIONAL { ?primarySiteContact <http://schema.org/email> ?email . }
}
}

View File

@@ -0,0 +1,16 @@
DELETE {
GRAPH ?h {
?s ?p ?o .
}
} WHERE {
GRAPH ?g {
?s a <http://data.vlaanderen.be/ns/besluit#Bestuurseenheid> ;
?p ?o .
FILTER NOT EXISTS {
?s ?np ?no .
FILTER (?np NOT IN (<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>, <http://mu.semte.ch/vocabularies/core/uuid>) )
}
}
BIND(?g as ?h)
}

View File

@@ -0,0 +1,37 @@
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
insert data {
graph <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/RepresentatiefOrgaanClassificatieCode/89a00b5a-024f-4630-a722-65a5e68967e5>
rdf:type <http://mu.semte.ch/vocabularies/ext/RepresentatieveOrgaanClassificatieCode> , skos:Concept ;
<http://mu.semte.ch/vocabularies/core/uuid> "89a00b5a-024f-4630-a722-65a5e68967e5" ;
skos:topConceptOf <https://data.vlaanderen.be/id/conceptscheme/RepresentatiefOrgaanClassificatieCode> ;
skos:prefLabel "Representatief orgaan" ;
skos:inScheme <https://data.vlaanderen.be/id/conceptscheme/RepresentatiefOrgaanClassificatieCode> .
}
}
;
INSERT {
graph <http://mu.semte.ch/graphs/worship-service> {
?representativeBody org:classification <http://data.vlaanderen.be/id/concept/RepresentatiefOrgaanClassificatieCode/89a00b5a-024f-4630-a722-65a5e68967e5>.
}
}
WHERE {
graph <http://mu.semte.ch/graphs/worship-service> {
?representativeBody a ere:RepresentatiefOrgaan.
FILTER NOT EXISTS {
?representativeBody org:classification ?classification.
}
}
}

View File

@@ -0,0 +1,24 @@
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
INSERT {
graph ?g {
?code a <http://mu.semte.ch/vocabularies/ext/OrganizationClassificationCode>.
}
}
WHERE {
graph ?g {
?code a ?type.
filter (?type in (<http://mu.semte.ch/vocabularies/ext/RepresentatieveOrgaanClassificatieCode>,
<http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode>))
}
}

View File

@@ -0,0 +1,31 @@
INSERT DATA {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/5ab0e9b8a3b2ca7c5e000008>
<http://www.w3.org/2004/02/skos/core#inScheme> <http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b> ;
<http://www.w3.org/2004/02/skos/core#inScheme> <http://data.vlaanderen.be/id/conceptscheme/BestuursorgaanClassificatieCode> ;
<http://www.w3.org/2004/02/skos/core#topConceptOf> <http://data.vlaanderen.be/id/conceptscheme/BestuursorgaanClassificatieCode> ;
<http://mu.semte.ch/vocabularies/ext/appliesWithin> <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000002> .
}
}
;
INSERT {
GRAPH <http://mu.semte.ch/graphs/public> {
?s ?p <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/5ab0e9b8a3b2ca7c5e000008> .
}
} WHERE {
GRAPH <http://mu.semte.ch/graphs/public> {
?s ?p <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/55ab0e9b8a3b2ca7c5e000008> .
}
}
;
DELETE WHERE {
GRAPH <http://mu.semte.ch/graphs/public> {
?s ?p <http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/55ab0e9b8a3b2ca7c5e000008> .
}
}
;
DELETE WHERE {
GRAPH <http://mu.semte.ch/graphs/public> {
<http://data.vlaanderen.be/id/concept/BestuursorgaanClassificatieCode/55ab0e9b8a3b2ca7c5e000008> ?p ?o .
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

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

View File

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

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

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

View File

@@ -32,8 +32,25 @@
"nacebel": "http://data.gift/vocabularies/nace-bel/"
},
"resources": {
"agents": {
"class": "dc_terms:Agent",
"relationships": {
"position": {
"predicate": "org:holds",
"target": "posts",
"cardinality": "many"
},
"contacts": {
"predicate": "schema:contactPoint",
"target": "contact-points",
"cardinality": "many"
}
},
"new-resource-base": "http://data.lblod.info/id/agenten/"
},
"people": {
"class": "person:Person",
"super": ["agents"],
"attributes": {
"given-name": {
"type": "string",
@@ -61,9 +78,9 @@
"cardinality": "many",
"inverse": true
},
"agents": {
"functionaries": {
"predicate": "mandaat:isBestuurlijkeAliasVan",
"target": "agents",
"target": "functionaries",
"cardinality": "many",
"inverse": true
}
@@ -72,6 +89,7 @@
},
"agents-in-position": {
"class": "ch:AgentInPositie",
"super": ["agents"],
"attributes": {
"agent-start-date": {
"type": "date",
@@ -83,11 +101,6 @@
}
},
"relationships": {
"position": {
"predicate": "org:holds",
"target": "posts",
"cardinality": "one"
},
"person": {
"predicate": "org:heldBy",
"target": "people",
@@ -114,20 +127,17 @@
"target": "organizations",
"cardinality": "one"
},
"agents-in-position": {
"predicate": "org:holds",
"target": "agents-in-position",
"cardinality": "many",
"inverse": true
"agent": {
"predicate": "org:heldBy",
"target": "agents",
"cardinality": "one"
}
},
"new-resource-base": "http://data.lblod.info/id/posities/"
},
"mandatories": {
"class": "mandaat:Mandataris",
"super": [
"agents-in-position"
],
"super": ["agents-in-position"],
"attributes": {
"start-date": {
"type": "date",
@@ -170,16 +180,12 @@
"predicate": "skos:prefLabel"
}
},
"features": [
"include-uri"
],
"features": ["include-uri"],
"new-resource-base": "http://data.vlaanderen.be/id/concept/MandatarisStatusCode/"
},
"worship-mandatories": {
"class": "ere:EredienstMandataris",
"super": [
"mandatories"
],
"super": ["mandatories"],
"attributes": {
"expected-end-date": {
"type": "date",
@@ -244,9 +250,7 @@
},
"mandates": {
"class": "mandaat:Mandaat",
"super": [
"posts"
],
"super": ["posts"],
"relationships": {
"role-board": {
"predicate": "org:role",
@@ -268,11 +272,9 @@
},
"new-resource-base": "http://data.lblod.info/id/mandaten/"
},
"agents": {
"functionaries": {
"class": "lblodlg:Functionaris",
"super": [
"agents-in-position"
],
"super": ["agents-in-position"],
"attributes": {
"start-date": {
"type": "datetime",
@@ -310,16 +312,12 @@
"predicate": "skos:prefLabel"
}
},
"features": [
"include-uri"
],
"features": ["include-uri"],
"new-resource-base": "http://data.vlaanderen.be/id/concept/functionarisStatusCode/"
},
"board-positions": {
"class": "lblodlg:Bestuursfunctie",
"super": [
"posts"
],
"super": ["posts"],
"relationships": {
"role-board": {
"predicate": "org:role",
@@ -369,6 +367,7 @@
},
"organizations": {
"class": "org:Organization",
"super": ["agents"],
"attributes": {
"name": {
"type": "string",
@@ -490,9 +489,7 @@
},
"administrative-units": {
"class": "besluit:Bestuurseenheid",
"super": [
"organizations"
],
"super": ["organizations"],
"relationships": {
"classification": {
"predicate": "org:classification",
@@ -528,21 +525,24 @@
},
"new-resource-base": "http://data.lblod.info/id/bestuurseenheden/"
},
"administrative-unit-classification-codes": {
"class": "code:BestuurseenheidClassificatieCode",
"organization-classification-codes": {
"class": "ext:OrganizationClassificationCode",
"attributes": {
"label": {
"type": "string",
"predicate": "skos:prefLabel"
}
},
"new-resource-base": "http://data.vlaanderen.be/id/concept/OrganizationClassificationCode/"
},
"administrative-unit-classification-codes": {
"class": "code:BestuurseenheidClassificatieCode",
"super": ["organization-classification-codes"],
"new-resource-base": "http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/"
},
"worship-administrative-units": {
"class": "ere:EredienstBestuurseenheid",
"super": [
"administrative-units"
],
"super": ["administrative-units"],
"relationships": {
"recognized-worship-type": {
"predicate": "ere:typeEredienst",
@@ -565,9 +565,7 @@
},
"worship-services": {
"class": "ere:BestuurVanDeEredienst",
"super": [
"worship-administrative-units"
],
"super": ["worship-administrative-units"],
"attributes": {
"denomination": {
"type": "string",
@@ -592,17 +590,18 @@
},
"central-worship-services": {
"class": "ere:CentraalBestuurVanDeEredienst",
"super": [
"worship-administrative-units"
],
"super": ["worship-administrative-units"],
"new-resource-base": "http://data.lblod.info/id/centraleBesturenVanDeEredienst/"
},
"representative-bodies": {
"class": "ere:RepresentatiefOrgaan",
"super": [
"organizations"
],
"super": ["organizations"],
"relationships": {
"classification": {
"predicate": "org:classification",
"target": "representative-body-classification-codes",
"cardinality": "one"
},
"recognized-worship-type": {
"predicate": "ere:typeEredienst",
"target": "recognized-worship-types",
@@ -617,6 +616,11 @@
},
"new-resource-base": "http://data.lblod.info/id/representatieveOrganen/"
},
"representative-body-classification-codes": {
"class": "ext:RepresentatiefOrgaanClassificatieCode",
"super": ["organization-classification-codes"],
"new-resource-base": "http://data.vlaanderen.be/id/concept/RepresentatiefOrgaanClassificatieCode/"
},
"governing-bodies": {
"class": "besluit:Bestuursorgaan",
"attributes": {
@@ -832,9 +836,7 @@
"predicate": "skos:prefLabel"
}
},
"features": [
"include-uri"
],
"features": ["include-uri"],
"new-resource-base": "http://lblod.data.gift/concepts/"
},
"locations": {
@@ -887,9 +889,7 @@
},
"ministers": {
"class": "ere:RolBedienaar",
"super": [
"agents-in-position"
],
"super": ["agents-in-position"],
"relationships": {
"minister-position": {
"predicate": "org:holds",
@@ -957,9 +957,7 @@
},
"minister-positions": {
"class": "ere:PositieBedienaar",
"super": [
"posts"
],
"super": ["posts"],
"relationships": {
"function": {
"predicate": "ere:functie",
@@ -997,7 +995,7 @@
"new-resource-base": "http://lblod.data.gift/concepts/"
},
"financing-codes": {
"class": "code:BedienaarFinanceringCode",
"class": "code:BedienaarFinancieringCode",
"attributes": {
"label": {
"type": "string",
@@ -1061,4 +1059,4 @@
"new-resource-base": "http://data.relance.lblod.info/id/nace-bel/"
}
}
}
}

View File

@@ -66,11 +66,19 @@
"custom_sort_normalizer": {
"type": "custom",
"char_filter": [],
"filter": [
"lowercase",
"trim",
"asciifolding"
]
"filter": ["lowercase", "trim", "asciifolding"]
},
"identifier_normalizer": {
"type": "custom",
"char_filter": ["identifier_alphanumeric_filter"],
"filter": ["lowercase", "trim", "asciifolding"]
}
},
"char_filter": {
"identifier_alphanumeric_filter": {
"type": "pattern_replace",
"pattern": "[^a-zA-Z0-9]",
"replacement": ""
}
}
}
@@ -242,8 +250,8 @@
}
},
{
"type": "agent",
"on_path": "agents",
"type": "functionary",
"on_path": "functionaries",
"rdf_type": "http://data.lblod.info/vocabularies/leidinggevenden/Functionaris",
"properties": {
"given_name": [
@@ -560,18 +568,14 @@
},
{
"type": "person",
"composite_types": [
"minister",
"agent",
"mandatory"
],
"composite_types": ["minister", "functionary", "mandatory"],
"on_path": "people",
"properties": [
{
"name": "given_name",
"mappings": {
"minister": "given_name",
"agent": "given_name",
"functionary": "given_name",
"mandatory": "given_name"
}
},
@@ -579,7 +583,7 @@
"name": "person_id",
"mappings": {
"minister": "person_id",
"agent": "person_id",
"functionary": "person_id",
"mandatory": "person_id"
}
},
@@ -587,7 +591,7 @@
"name": "family_name",
"mappings": {
"minister": "family_name",
"agent": "family_name",
"functionary": "family_name",
"mandatory": "family_name"
}
},
@@ -595,7 +599,7 @@
"name": "first_name_used",
"mappings": {
"minister": "first_name_used",
"agent": "first_name_used",
"functionary": "first_name_used",
"mandatory": "first_name_used"
}
},
@@ -603,7 +607,7 @@
"name": "end_date",
"mappings": {
"minister": "end_date",
"agent": "end_date",
"functionary": "end_date",
"mandatory": "end_date"
}
},
@@ -611,7 +615,7 @@
"name": "organization_id",
"mappings": {
"minister": "organization_id",
"agent": "organization_id",
"functionary": "organization_id",
"mandatory": "organization_id"
}
},
@@ -619,7 +623,7 @@
"name": "organization_classification",
"mappings": {
"minister": "organization_classification",
"agent": "organization_classification",
"functionary": "organization_classification",
"mandatory": "organization_classification"
}
},
@@ -627,7 +631,7 @@
"name": "organization_name",
"mappings": {
"minister": "organization_name",
"agent": "organization_name",
"functionary": "organization_name",
"mandatory": "organization_name"
}
},
@@ -635,7 +639,7 @@
"name": "organization_municipality",
"mappings": {
"minister": "organization_municipality",
"agent": "organization_municipality",
"functionary": "organization_municipality",
"mandatory": "organization_municipality"
}
},
@@ -643,7 +647,7 @@
"name": "organization_province",
"mappings": {
"minister": "organization_province",
"agent": "organization_province",
"functionary": "organization_province",
"mandatory": "organization_province"
}
},
@@ -651,7 +655,7 @@
"name": "position_id",
"mappings": {
"minister": "position_id",
"agent": "position_id",
"functionary": "position_id",
"mandatory": "position_id"
}
},
@@ -659,7 +663,7 @@
"name": "position_name",
"mappings": {
"minister": "position_name",
"agent": "position_name",
"functionary": "position_name",
"mandatory": "position_name"
}
}
@@ -756,7 +760,8 @@
"http://data.vlaanderen.be/ns/besluit#Bestuurseenheid",
"http://data.lblod.info/vocabularies/erediensten/EredienstBestuurseenheid",
"http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst",
"http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst"
"http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst",
"http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan"
],
"properties": {
"name": "http://www.w3.org/2004/02/skos/core#prefLabel",
@@ -793,6 +798,11 @@
"http://www.w3.org/ns/org#hasPrimarySite",
"https://data.vlaanderen.be/ns/organisatie#bestaatUit",
"https://data.vlaanderen.be/ns/adres#gemeentenaam"
],
"identifier": [
"http://www.w3.org/ns/adms#identifier",
"https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator",
"https://data.vlaanderen.be/ns/generiek#lokaleIdentificator"
]
},
"mappings": {
@@ -856,6 +866,15 @@
"normalizer": "custom_sort_normalizer"
}
}
},
"identifier": {
"type": "text",
"fields": {
"index": {
"type": "keyword",
"normalizer": "identifier_normalizer"
}
}
}
}
}

View File

@@ -38,11 +38,19 @@
"custom_sort_normalizer": {
"type": "custom",
"char_filter": [],
"filter": [
"lowercase",
"trim",
"asciifolding"
]
"filter": ["lowercase", "trim", "asciifolding"]
},
"identifier_normalizer": {
"type": "custom",
"char_filter": ["identifier_alphanumeric_filter"],
"filter": ["lowercase", "trim", "asciifolding"]
}
},
"char_filter": {
"identifier_alphanumeric_filter": {
"type": "pattern_replace",
"pattern": "[^a-zA-Z0-9]",
"replacement": ""
}
}
}
@@ -214,8 +222,8 @@
}
},
{
"type": "agent",
"on_path": "agents",
"type": "functionary",
"on_path": "functionaries",
"rdf_type": "http://data.lblod.info/vocabularies/leidinggevenden/Functionaris",
"properties": {
"given_name": [
@@ -532,18 +540,14 @@
},
{
"type": "person",
"composite_types": [
"minister",
"agent",
"mandatory"
],
"composite_types": ["minister", "functionary", "mandatory"],
"on_path": "people",
"properties": [
{
"name": "given_name",
"mappings": {
"minister": "given_name",
"agent": "given_name",
"functionary": "given_name",
"mandatory": "given_name"
}
},
@@ -551,7 +555,7 @@
"name": "person_id",
"mappings": {
"minister": "person_id",
"agent": "person_id",
"functionary": "person_id",
"mandatory": "person_id"
}
},
@@ -559,7 +563,7 @@
"name": "family_name",
"mappings": {
"minister": "family_name",
"agent": "family_name",
"functionary": "family_name",
"mandatory": "family_name"
}
},
@@ -567,7 +571,7 @@
"name": "first_name_used",
"mappings": {
"minister": "first_name_used",
"agent": "first_name_used",
"functionary": "first_name_used",
"mandatory": "first_name_used"
}
},
@@ -575,7 +579,7 @@
"name": "end_date",
"mappings": {
"minister": "end_date",
"agent": "end_date",
"functionary": "end_date",
"mandatory": "end_date"
}
},
@@ -583,7 +587,7 @@
"name": "organization_id",
"mappings": {
"minister": "organization_id",
"agent": "organization_id",
"functionary": "organization_id",
"mandatory": "organization_id"
}
},
@@ -591,7 +595,7 @@
"name": "organization_classification",
"mappings": {
"minister": "organization_classification",
"agent": "organization_classification",
"functionary": "organization_classification",
"mandatory": "organization_classification"
}
},
@@ -599,7 +603,7 @@
"name": "organization_name",
"mappings": {
"minister": "organization_name",
"agent": "organization_name",
"functionary": "organization_name",
"mandatory": "organization_name"
}
},
@@ -607,7 +611,7 @@
"name": "organization_municipality",
"mappings": {
"minister": "organization_municipality",
"agent": "organization_municipality",
"functionary": "organization_municipality",
"mandatory": "organization_municipality"
}
},
@@ -615,7 +619,7 @@
"name": "organization_province",
"mappings": {
"minister": "organization_province",
"agent": "organization_province",
"functionary": "organization_province",
"mandatory": "organization_province"
}
},
@@ -623,7 +627,7 @@
"name": "position_id",
"mappings": {
"minister": "position_id",
"agent": "position_id",
"functionary": "position_id",
"mandatory": "position_id"
}
},
@@ -631,7 +635,7 @@
"name": "position_name",
"mappings": {
"minister": "position_name",
"agent": "position_name",
"functionary": "position_name",
"mandatory": "position_name"
}
}
@@ -729,7 +733,8 @@
"http://data.vlaanderen.be/ns/besluit#Bestuurseenheid",
"http://data.lblod.info/vocabularies/erediensten/EredienstBestuurseenheid",
"http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst",
"http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst"
"http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst",
"http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan"
],
"properties": {
"name": "http://www.w3.org/2004/02/skos/core#prefLabel",
@@ -766,6 +771,11 @@
"http://www.w3.org/ns/org#hasPrimarySite",
"https://data.vlaanderen.be/ns/organisatie#bestaatUit",
"https://data.vlaanderen.be/ns/adres#gemeentenaam"
],
"identifier": [
"http://www.w3.org/ns/adms#identifier",
"https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator",
"https://data.vlaanderen.be/ns/generiek#lokaleIdentificator"
]
},
"mappings": {
@@ -829,6 +839,15 @@
"normalizer": "custom_sort_normalizer"
}
}
},
"identifier": {
"type": "text",
"fields": {
"index": {
"type": "keyword",
"normalizer": "identifier_normalizer"
}
}
}
}
}

View File

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

View File

@@ -65,6 +65,10 @@ services:
restart: "no"
delta-producer-dump-file-publisher:
restart: "no"
organizations-sync-with-sharepoint-jobs-initiator:
restart: "no"
organizations-sync-with-sharepoint:
restart: "no"
construct-administrative-unit-relationships:
restart: "no"
delta-producer-bg-jobs-initiator-worship-posts:
@@ -84,6 +88,8 @@ services:
ldes-backend:
environment:
BASE_URL: "http://localhost/ldes/"
sync-ovo-numbers:
restart: "no"
# use this to test acmidm
# tlsproxy:
# image: caddy:2

View File

@@ -8,7 +8,7 @@ x-logging: &default-logging
services:
identifier:
image: semtech/mu-identifier:1.9.1
image: semtech/mu-identifier:1.10.1
environment:
DEFAULT_MU_AUTH_ALLOWED_GROUPS_HEADER: '[{"variables":[],"name":"public"}]'
SESSION_COOKIE_SECURE: "on"
@@ -151,7 +151,7 @@ services:
restart: always
logging: *default-logging
privacy-worship:
image: lblod/privacy-centric-service:0.6.0
image: lblod/privacy-centric-service:0.6.1
labels:
- "logging=true"
environment:
@@ -163,7 +163,7 @@ services:
links:
- db:database
privacy-unit:
image: lblod/privacy-centric-service:0.6.0
image: lblod/privacy-centric-service:0.6.1
labels:
- "logging=true"
environment:
@@ -181,7 +181,7 @@ services:
restart: always
logging: *default-logging
frontend:
image: lblod/frontend-organization-portal:1.19.0
image: lblod/frontend-organization-portal:1.20.0
volumes:
- ./config/frontend/add-x-frame-options-header.conf:/config/add-x-frame-options.conf
environment:
@@ -222,6 +222,37 @@ services:
- "logging=true"
restart: always
logging: *default-logging
organizations-sync-with-sharepoint-jobs-initiator:
image: lblod/delta-producer-background-jobs-initiator:0.4.3
environment:
JOBS_GRAPH: "http://mu.semte.ch/graphs/jobs"
INITIAL_PUBLICATION_GRAPH_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/initialSyncing/organizations"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/healingOperation/organizations"
INITIAL_PUBLICATION_GRAPH_SYNC_TASK_OPERATION: "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/initialSyncing"
HEALING_TASK_OPERATION: "http://redpencil.data.gift/id/jobs/concept/TaskOperation/sp-sync/healing"
CRON_PATTERN_HEALING_JOB: "0 0 4 * * *" # everyday at 4 AM
START_INITIAL_SYNC: "false" # prefer to disable it now. We want to have feeling with how the DB acts.
ENABLE_DUMP_FILE_CREATION: "false"
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
organizations-sync-with-sharepoint:
image: lblod/op-sync-with-sharepoint-service:0.1.2
environment:
INITIAL_SYNC_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/initialSyncing/organizations"
HEALING_JOB_OPERATION: "http://redpencil.data.gift/id/jobs/concept/JobOperation/sp-sync/healingOperation/organizations"
USE_VIRTUOSO_FOR_EXPENSIVE_SELECTS: "true"
links:
- db:database
volumes:
- ./config/sharepoint/sync/organizations/:/config/
labels:
- "logging=true"
restart: always
logging: *default-logging
construct-administrative-unit-relationships:
image: lblod/construct-administrative-unit-relationships-service:0.1.5
environment:
@@ -239,6 +270,38 @@ services:
- "logging=true"
restart: always
logging: *default-logging
report-generation:
image: lblod/loket-report-generation-service:0.7.0
environment:
DEFAULT_GRAPH: "http://mu.semte.ch/graphs/shared"
ONLY_KEEP_LATEST_REPORT: "true"
links:
- db:database
volumes:
- ./data/files:/share
- ./config/reports:/config
labels:
- "logging=true"
restart: always
logging: *default-logging
download-exports:
image: lblod/download-exports-service:0.1.0
links:
- db:database
volumes:
- ./data/files:/share
labels:
- "logging=true"
restart: always
logging: *default-logging
sync-ovo-numbers:
image: lblod/sync-ovo-numbers-service:0.1.0
links:
- db:database
labels:
- "logging=true"
restart: always
logging: *default-logging
################################################################################
# DELTA GENERAL
################################################################################
@@ -532,7 +595,7 @@ services:
# MU SEARCH
################################################################################
search:
image: semtech/mu-search:0.9.0-beta.7
image: semtech/mu-search:0.9.1
links:
- db:database
restart: always