Skip to content
Snippets Groups Projects
Commit 65f40149 authored by esikkala's avatar esikkala
Browse files

Add parent property to facet config

parent 519b278c
No related branches found
No related tags found
No related merge requests found
......@@ -74,6 +74,7 @@ export const facetConfigs = {
label: 'Production place',
labelPath: '^crm:P108_has_produced/crm:P7_took_place_at/skos:prefLabel',
predicate: '^crm:P108_has_produced/crm:P7_took_place_at',
parentProperty: 'gvp:broaderPreferred',
parentPredicate: '^crm:P108_has_produced/crm:P7_took_place_at/gvp:broaderPreferred+',
type: 'hierarchical',
},
......@@ -102,6 +103,7 @@ export const facetConfigs = {
label: 'Transfer of custody place',
labelPath: '^crm:P30_transferred_custody_of/crm:P7_took_place_at/skos:prefLabel',
predicate: '^crm:P30_transferred_custody_of/crm:P7_took_place_at',
parentProperty: 'gvp:broaderPreferred',
parentPredicate: '^crm:P30_transferred_custody_of/crm:P7_took_place_at/gvp:broaderPreferred+',
type: 'hierarchical',
},
......@@ -315,6 +317,7 @@ export const facetConfigs = {
label: 'Place',
labelPath: 'crm:P7_took_place_at/skos:prefLabel',
predicate: 'crm:P7_took_place_at',
parentProperty: 'gvp:broaderPreferred',
parentPredicate: 'crm:P7_took_place_at/gvp:broaderPreferred+',
type: 'hierarchical',
},
......@@ -383,6 +386,7 @@ export const facetConfigs = {
`,
labelPath: '^crm:P11_had_participant/crm:P7_took_place_at/skos:prefLabel',
predicate: '^crm:P11_had_participant/crm:P7_took_place_at',
parentProperty: 'gvp:broaderPreferred',
parentPredicate: '^crm:P11_had_participant/crm:P7_took_place_at/gvp:broaderPreferred+',
type: 'hierarchical',
},
......@@ -421,6 +425,7 @@ export const facetConfigs = {
label: 'Area',
labelPath: 'gvp:broaderPreferred/skos:prefLabel',
predicate: 'gvp:broaderPreferred',
parentProperty: 'gvp:broaderPreferred',
parentPredicate: 'gvp:broaderPreferred+',
type: 'hierarchical',
},
......
......@@ -58,6 +58,7 @@ export const getFacet = async ({
let selectedNoHitsBlock = '# no filters from other facets';
let filterBlock = '# no filters';
let parentBlock = '# no parents';
let parentsForFacetValues = '# no parents for facet values';
if (constraints !== null) {
filterBlock = generateConstraintsBlock({
facetClass: facetClass,
......@@ -91,6 +92,10 @@ export const getFacet = async ({
constraints,
parentPredicate
});
parentsForFacetValues = `
OPTIONAL { ?id ${facetConfig.parentProperty} ?parent_ }
BIND(COALESCE(?parent_, '0') as ?parent)
`;
}
q = q.replace('<SELECTED_VALUES>', selectedBlock);
q = q.replace('<SELECTED_VALUES_NO_HITS>', selectedNoHitsBlock);
......@@ -101,6 +106,7 @@ export const getFacet = async ({
: ''
);
q = q.replace('<PARENTS>', parentBlock);
q = q.replace('<PARENTS_FOR_FACET_VALUES>', parentsForFacetValues);
if (facetConfig.type === 'list') {
q = q.replace('<ORDER_BY>', `ORDER BY ${sortDirection}(?${sortBy})` );
} else {
......
......@@ -56,7 +56,7 @@ const mapFacetValues = sparqlBindings => {
id: b.id.value,
prefLabel: b.prefLabel.value,
selected: b.selected.value,
parent: b.parent.value,
parent: b.parent ? b.parent.value : null,
instanceCount: b.instanceCount.value
};
} catch(err) {
......
export const endpoint = 'http://ldf.fi/mmm-cidoc/sparql';
// export const endpoint = 'http://localhost:3050/ds/sparql';
//export const endpoint = 'http://ldf.fi/mmm-cidoc/sparql';
export const endpoint = 'http://localhost:3050/ds/sparql';
export const instanceQuery = `
SELECT * {
......@@ -79,12 +79,11 @@ export const facetValuesQuery = `
}
FILTER(BOUND(?id))
<FACET_VALUE_FILTER>
OPTIONAL { ?id gvp:broaderPreferred ?parent_ }
OPTIONAL {
?id skos:prefLabel|rdfs:label ?prefLabel_
<FACET_LABEL_FILTER>
}
BIND(COALESCE(?parent_, '0') as ?parent)
<PARENTS_FOR_FACET_VALUES>
BIND(COALESCE(STR(?prefLabel_), STR(?id)) AS ?prefLabel)
}
UNION
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment