Merge pull request #269 from lblod/feature/ldes-service
Addition of ldes services to publish organization contact information
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,6 +11,7 @@ docker-compose.override.yml
|
||||
*.iml
|
||||
|
||||
/data/elasticsearch/**
|
||||
/data/ldes-feed/*
|
||||
/tmp
|
||||
.DS_STORE
|
||||
.env
|
||||
|
||||
@@ -161,5 +161,53 @@ export default [
|
||||
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://ldes-delta-pusher/publish',
|
||||
method: 'POST',
|
||||
},
|
||||
options: {
|
||||
resourceFormat: 'v0.0.1',
|
||||
gracePeriod: 1000,
|
||||
}
|
||||
},
|
||||
{
|
||||
match: {
|
||||
graph: {
|
||||
type: 'uri',
|
||||
value: 'http://mu.semte.ch/graphs/worship-service',
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
url: 'http://ldes-delta-pusher/publish',
|
||||
method: 'POST',
|
||||
},
|
||||
options: {
|
||||
resourceFormat: 'v0.0.1',
|
||||
gracePeriod: 1000,
|
||||
}
|
||||
},
|
||||
{
|
||||
match: {
|
||||
graph: {
|
||||
type: 'uri',
|
||||
value: 'http://mu.semte.ch/graphs/administrative-unit',
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
url: 'http://ldes-delta-pusher/publish',
|
||||
method: 'POST',
|
||||
},
|
||||
options: {
|
||||
resourceFormat: 'v0.0.1',
|
||||
gracePeriod: 1000,
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -305,6 +305,10 @@ defmodule Dispatcher do
|
||||
forward conn, path, "http://construct-administrative-unit-relationships/create-relationships/"
|
||||
end
|
||||
|
||||
get "/ldes/*path", %{ layer: :api_services } do
|
||||
forward conn, path, "http://ldes-backend/"
|
||||
end
|
||||
|
||||
#################################################################
|
||||
# ERROR REPORT
|
||||
#################################################################
|
||||
|
||||
59
config/ldes-delta-pusher/dispatch.ts
Normal file
59
config/ldes-delta-pusher/dispatch.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import { moveTriples } from "../support";
|
||||
import { Changeset } from "../types";
|
||||
import { query, sparqlEscapeUri } from 'mu';
|
||||
|
||||
export default async function dispatch(changesets: Changeset[]) {
|
||||
for (const changeset of changesets) {
|
||||
const subjects = new Set(changeset.inserts.map((insert) => insert.subject.value));
|
||||
for (const subject of subjects) {
|
||||
const { results: { bindings } } = await query(`
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
PREFIX code: <http://telegraphis.net/ontology/measurement/code#>
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX adms: <http://www.w3.org/ns/adms#>
|
||||
|
||||
CONSTRUCT {
|
||||
?organization a org:Organization;
|
||||
skos:prefLabel ?prefLabel;
|
||||
adms:identifier ?identifier;
|
||||
org:hasPrimarySite ?site.
|
||||
?site org:siteAddress ?siteAddress.
|
||||
?siteAddress ?p ?o.
|
||||
} WHERE {
|
||||
{
|
||||
VALUES ?organization { ${sparqlEscapeUri(subject)} }
|
||||
?organization a org:Organization;
|
||||
skos:prefLabel ?prefLabel;
|
||||
adms:identifier ?identifier;
|
||||
org:hasPrimarySite ?site.
|
||||
?site org:siteAddress ?siteAddress.
|
||||
?siteAddress ?p ?o.
|
||||
} UNION {
|
||||
VALUES ?site { ${sparqlEscapeUri(subject)} }
|
||||
?organization a org:Organization;
|
||||
skos:prefLabel ?prefLabel;
|
||||
adms:identifier ?identifier;
|
||||
org:hasPrimarySite ?site.
|
||||
?site org:siteAddress ?siteAddress.
|
||||
?siteAddress ?p ?o.
|
||||
} UNION {
|
||||
VALUES ?siteAddress { ${sparqlEscapeUri(subject)} }
|
||||
?organization a org:Organization;
|
||||
skos:prefLabel ?prefLabel;
|
||||
adms:identifier ?identifier;
|
||||
org:hasPrimarySite ?site.
|
||||
?site org:siteAddress ?siteAddress.
|
||||
?siteAddress ?p ?o.
|
||||
}
|
||||
}
|
||||
`);
|
||||
if(bindings.length){
|
||||
await moveTriples([
|
||||
{
|
||||
inserts: bindings.map(({ s, p, o}) => { return { subject: s, predicate: p, object: o} }),
|
||||
}
|
||||
])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
PREFIX org: <http://www.w3.org/ns/org#>
|
||||
PREFIX besluit: <http://data.vlaanderen.be/ns/besluit#>
|
||||
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
|
||||
INSERT {
|
||||
GRAPH ?g {
|
||||
?org a org:Organization .
|
||||
}
|
||||
} WHERE {
|
||||
VALUES ?g {
|
||||
<http://mu.semte.ch/graphs/shared>
|
||||
<http://mu.semte.ch/graphs/worship-service>
|
||||
<http://mu.semte.ch/graphs/administrative-unit>
|
||||
}
|
||||
GRAPH ?g {
|
||||
VALUES ?type {
|
||||
besluit:Bestuurseenheid
|
||||
ere:RepresentatiefOrgaan
|
||||
ere:EredienstBestuurseenheid
|
||||
ere:BestuurVanDeEredienst
|
||||
ere:CentraalBestuurVanDeEredienst
|
||||
}
|
||||
?org a ?type .
|
||||
}
|
||||
}
|
||||
@@ -490,6 +490,33 @@ services:
|
||||
# DELTA CONSUMERS: END
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# LDES PRODUCERS
|
||||
################################################################################
|
||||
|
||||
ldes-delta-pusher:
|
||||
image: redpencil/ldes-delta-pusher:latest
|
||||
environment:
|
||||
LDES_ENDPOINT: 'http://ldes-backend/organizations'
|
||||
volumes:
|
||||
- ./config/ldes-delta-pusher/:/config/
|
||||
links:
|
||||
- db:database
|
||||
|
||||
ldes-backend:
|
||||
image: redpencil/fragmentation-producer:0.3.2
|
||||
environment:
|
||||
FOLDER_DEPTH: 1
|
||||
PAGE_RESOURCES_COUNT: 50
|
||||
LDES_STREAM_PREFIX: 'http://data.lblod.info/streams/op/'
|
||||
TIME_TREE_RELATION_PATH: 'http://www.w3.org/ns/prov#generatedAtTime'
|
||||
CACHE_SIZE: 10
|
||||
DATA_FOLDER: '/data'
|
||||
ENABLE_AUTH: 'false'
|
||||
restart: always
|
||||
volumes:
|
||||
- './data/ldes-feed/:/data/'
|
||||
|
||||
################################################################################
|
||||
# MU SEARCH
|
||||
################################################################################
|
||||
|
||||
Reference in New Issue
Block a user