diff --git a/config/delta-producer/dump-file-publisher/config.json b/config/delta-producer/dump-file-publisher/config.json index 66391ca..8d33759 100644 --- a/config/delta-producer/dump-file-publisher/config.json +++ b/config/delta-producer/dump-file-publisher/config.json @@ -18,5 +18,15 @@ "dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/OrganizationsCacheGraphDump", "targetGraph": "http://redpencil.data.gift/id/deltas/producer/organizations", "fileBaseName": "dump-organizations" + }, + "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/deltaDumpFileCreation/public" : { + "dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/PublicCacheGraphDump", + "targetGraph": "http://redpencil.data.gift/id/deltas/producer/public", + "fileBaseName": "dump-public" + }, + "http://redpencil.data.gift/id/jobs/concept/JobOperation/deltas/initialPublicationGraphSyncing/public" : { + "dcatDataSetSubject": "http://data.lblod.info/datasets/delta-producer/dumps/PublicCacheGraphDump", + "targetGraph": "http://redpencil.data.gift/id/deltas/producer/public", + "fileBaseName": "dump-public" } } diff --git a/config/delta-producer/public/export.json b/config/delta-producer/public/export.json new file mode 100644 index 0000000..5cb4fa9 --- /dev/null +++ b/config/delta-producer/public/export.json @@ -0,0 +1,266 @@ +{ + "conceptScheme": "http://lblod.data.gift/concept-schemes/10caf4a4-1ff5-4c05-917e-56489910d68b", + "export": [ + { + "type": "http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst", + "strictTypeExport": "true", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://www.w3.org/ns/org#classification", + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://www.w3.org/2004/02/skos/core#altLabel", + "http://www.w3.org/ns/adms#identifier", + "http://www.w3.org/ns/regorg#orgStatus", + "http://www.w3.org/ns/org#hasPrimarySite", + "http://www.w3.org/ns/org#hasSite", + "http://www.w3.org/ns/org#changedBy", + "http://www.w3.org/ns/org#resultedFrom", + "http://www.w3.org/ns/org#hasPost", + "http://www.w3.org/ns/org#linkedTo", + "http://www.w3.org/ns/org#hasSubOrganization", + "http://www.w3.org/ns/org#classification", + "http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur", + "http://mu.semte.ch/vocabularies/ext/werkingsgebiedNiveau", + "http://data.lblod.info/vocabularies/erediensten/denominatie", + "http://data.lblod.info/vocabularies/erediensten/grensoverschrijdend", + "http://data.lblod.info/vocabularies/erediensten/wordtBediendDoor", + "http://data.lblod.info/vocabularies/erediensten/typeEredienst" + ] + }, + { + "type": "http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst", + "strictTypeExport": "true", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://www.w3.org/ns/org#classification", + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel", + "http://www.w3.org/2004/02/skos/core#altLabel", + "http://www.w3.org/ns/adms#identifier", + "http://www.w3.org/ns/regorg#orgStatus", + "http://www.w3.org/ns/org#hasPrimarySite", + "http://www.w3.org/ns/org#hasSite", + "http://www.w3.org/ns/org#changedBy", + "http://www.w3.org/ns/org#resultedFrom", + "http://www.w3.org/ns/org#hasPost", + "http://www.w3.org/ns/org#linkedTo", + "http://www.w3.org/ns/org#hasSubOrganization", + "http://www.w3.org/ns/org#classification", + "http://data.lblod.info/vocabularies/erediensten/betrokkenBestuur", + "http://mu.semte.ch/vocabularies/ext/werkingsgebiedNiveau", + "http://data.lblod.info/vocabularies/erediensten/typeEredienst" + ] + }, + { + "type": "http://www.w3.org/ns/org#Site", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "^http://www.w3.org/ns/org#hasPrimarySite", + "http://www.w3.org/ns/org#classification", + "http://www.w3.org/2004/02/skos/core#inScheme" + + ], + "properties": [ + "http://www.w3.org/ns/org#siteAddress", + "https://data.vlaanderen.be/ns/organisatie#bestaatUit", + "http://data.lblod.info/vocabularies/erediensten/vestigingstype" + ] + }, + { + "type": "http://www.w3.org/ns/locn#Address", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "^https://data.vlaanderen.be/ns/organisatie#bestaatUit", + "^http://www.w3.org/ns/org#hasPrimarySite", + "http://www.w3.org/ns/org#classification", + "http://www.w3.org/2004/02/skos/core#inScheme" + + ], + "properties": [ + "https://data.vlaanderen.be/ns/adres#Adresvoorstelling.huisnummer", + "https://data.vlaanderen.be/ns/adres#Adresvoorstelling.busnummer", + "http://www.w3.org/ns/locn#thoroughfare", + "http://www.w3.org/ns/locn#postCode", + "https://data.vlaanderen.be/ns/adres#gemeentenaam", + "http://www.w3.org/ns/locn#adminUnitL2", + "https://data.vlaanderen.be/ns/adres#land", + "http://www.w3.org/ns/locn#fullAddress", + "https://data.vlaanderen.be/ns/adres#verwijstNaar", + "http://purl.org/dc/terms/source" + ] + }, + { + "type": "http://schema.org/ContactPoint", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "^http://www.w3.org/ns/org#siteAddress", + "^http://www.w3.org/ns/org#hasPrimarySite", + "http://www.w3.org/ns/org#classification", + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://mu.semte.ch/vocabularies/core/uuid", + "http://www.w3.org/ns/locn#address", + "http://xmlns.com/foaf/0.1/page", + "http://schema.org/faxNumber", + "http://schema.org/contactType", + "http://xmlns.com/foaf/0.1/page", + "http://schema.org/email", + "http://schema.org/telephone" + + ] + }, + { + "type": "http://www.w3.org/ns/adms#Identifier", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "^http://www.w3.org/ns/adms#identifier", + "http://www.w3.org/ns/org#classification", + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#notation", + "https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator" + ] + }, + { + "type": "https://data.vlaanderen.be/ns/generiek#GestructureerdeIdentificator", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "^https://data.vlaanderen.be/ns/generiek#gestructureerdeIdentificator", + "^http://www.w3.org/ns/adms#identifier", + "http://www.w3.org/ns/org#classification", + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "https://data.vlaanderen.be/ns/generiek#lokaleIdentificator" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://data.vlaanderen.be/ns/besluit#Bestuursorgaan", + "strictTypeExport": "true", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://www.w3.org/ns/org#classification", + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://data.vlaanderen.be/ns/mandaat#bindingEinde", + "http://data.vlaanderen.be/ns/mandaat#bindingStart", + "http://data.vlaanderen.be/ns/besluit#bestuurt", + "http://www.w3.org/ns/org#classification", + "https://data.vlaanderen.be/ns/generiek#isTijdspecialisatieVan" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/TypeEredienst", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/BestuursorgaanClassificatieCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://www.w3.org/ns/org#ChangeEvent", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://data.lblod.info/vocabularies/contacthub/typeWijziging", + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://purl.org/dc/terms/date", + "http://purl.org/dc/terms/description", + "http://data.lblod.info/vocabularies/contacthub/typeWijziging", + "http://www.w3.org/ns/org#resultedFrom", + "http://www.w3.org/ns/org#changedBy" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/Veranderingsgebeurtenis", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + }, + { + "type": "http://lblod.data.gift/vocabularies/organisatie/TypeVestiging", + "graphsFilter": [ + "http://mu.semte.ch/graphs/organisatieportaal" + ], + "pathToConceptScheme": [ + "http://www.w3.org/2004/02/skos/core#inScheme" + ], + "properties": [ + "http://www.w3.org/2004/02/skos/core#prefLabel" + ] + } + ] +} diff --git a/config/delta/rules.js b/config/delta/rules.js index c1d5575..75e80b8 100644 --- a/config/delta/rules.js +++ b/config/delta/rules.js @@ -104,6 +104,41 @@ export default [ optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ] } }, + { + match: { + }, + callback: { + url: 'http://delta-producer-pub-graph-maintainer-public/delta', + method: 'POST' + }, + options: { + resourceFormat: 'v0.0.1', + gracePeriod: 1000, + ignoreFromSelf: true, + optOutMuScopeIds: [ + "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync", + "http://redpencil.data.gift/id/concept/muScope/deltas/publicationGraphMaintenance" + ] + } + }, + { + match: { + graph: { + type: 'uri', + value: 'http://redpencil.data.gift/id/deltas/producer/public' + } + }, + callback: { + url: 'http://delta-producer-json-diff-publisher-public/delta', + method: 'POST' + }, + options: { + resourceFormat: 'v0.0.1', + gracePeriod: 1000, + ignoreFromSelf: true, + optOutMuScopeIds: [ "http://redpencil.data.gift/id/concept/muScope/deltas/initialSync" ] + } + }, { match: { predicate: { diff --git a/config/migrations/2022/20220407110000-add-export-concept-scheme.sparql b/config/migrations/2022/20220407110000-add-export-concept-scheme.sparql new file mode 100644 index 0000000..3f76325 --- /dev/null +++ b/config/migrations/2022/20220407110000-add-export-concept-scheme.sparql @@ -0,0 +1,43 @@ +PREFIX mu: +PREFIX skos: + +INSERT { + GRAPH { + + a + skos:ConceptScheme ; + mu:uuid + "10caf4a4-1ff5-4c05-917e-56489910d68b" ; + skos:prefLabel + "Public OP Export" . + ?code + skos:inScheme + . + } +} WHERE { + VALUES ?type { + + + + + + } + GRAPH { + ?code + a + ?type . + } +} + +INSERT { + GRAPH { + + skos:inScheme + . + + + skos:inScheme + . + } +} +