From cd220d7000b20324d69b80b8c477d99564285654 Mon Sep 17 00:00:00 2001 From: Esko Ikkala <esko.ikkala@aalto.fi> Date: Tue, 9 Oct 2018 07:22:37 +0300 Subject: [PATCH] Update facet query --- src/server/sparql/Manuscripts.js | 59 ++++++++++++++------------------ 1 file changed, 25 insertions(+), 34 deletions(-) diff --git a/src/server/sparql/Manuscripts.js b/src/server/sparql/Manuscripts.js index 7a778b4b..134ce8ea 100644 --- a/src/server/sparql/Manuscripts.js +++ b/src/server/sparql/Manuscripts.js @@ -49,42 +49,33 @@ const facetQuery = ` PREFIX mmm-schema: <http://ldf.fi/mmm/schema/> SELECT DISTINCT ?cnt ?facet_text ?value ?parent WHERE { - { - { SELECT DISTINCT (count(DISTINCT ?id) as ?cnt) { + SELECT DISTINCT ?cnt ?value ?facet_text ?parent { + { SELECT DISTINCT (count(DISTINCT ?id) as ?cnt) ?value ?parent + { ?id a frbroo:F4_Manifestation_Singleton . ?id skos:prefLabel ?name . + ?id ^frbroo:R18_created/crm:P7_took_place_at ?value . + OPTIONAL { ?value mmm-schema:parent ?parent } } - } BIND("-- Ei valintaa --" AS ?facet_text) } - UNION - { - SELECT DISTINCT ?cnt ?value ?facet_text ?parent { - { SELECT DISTINCT (count(DISTINCT ?id) as ?cnt) ?value ?parent - { - ?id a frbroo:F4_Manifestation_Singleton . - ?id skos:prefLabel ?name . - ?id ^frbroo:R18_created/crm:P7_took_place_at ?value . - OPTIONAL { ?value mmm-schema:parent ?parent } - } - GROUP BY ?value ?parent - } - FILTER(BOUND(?value)) BIND(COALESCE(?value, <http://ldf.fi/NONEXISTENT_URI>) AS ?labelValue) - OPTIONAL { ?labelValue skos:prefLabel ?lbl . - FILTER(langMatches(lang(?lbl), "fi")) . } - OPTIONAL { ?labelValue rdfs:label ?lbl . - FILTER(langMatches(lang(?lbl), "fi")) . } - OPTIONAL { ?labelValue skos:prefLabel ?lbl . - FILTER(langMatches(lang(?lbl), "en")) . } - OPTIONAL { ?labelValue rdfs:label ?lbl . - FILTER(langMatches(lang(?lbl), "en")) . } - OPTIONAL { ?labelValue skos:prefLabel ?lbl . - FILTER(langMatches(lang(?lbl), "sv")) . } - OPTIONAL { ?labelValue rdfs:label ?lbl . - FILTER(langMatches(lang(?lbl), "sv")) . } - OPTIONAL { ?labelValue skos:prefLabel ?lbl . - FILTER(langMatches(lang(?lbl), "")) . } - OPTIONAL { ?labelValue rdfs:label ?lbl . - FILTER(langMatches(lang(?lbl), "")) . } - BIND(COALESCE(?lbl, IF(!ISURI(?value), ?value, "")) AS ?facet_text) } - } + GROUP BY ?value ?parent + } + FILTER(BOUND(?value)) BIND(COALESCE(?value, <http://ldf.fi/NONEXISTENT_URI>) AS ?labelValue) + OPTIONAL { ?labelValue skos:prefLabel ?lbl . + FILTER(langMatches(lang(?lbl), "fi")) . } + OPTIONAL { ?labelValue rdfs:label ?lbl . + FILTER(langMatches(lang(?lbl), "fi")) . } + OPTIONAL { ?labelValue skos:prefLabel ?lbl . + FILTER(langMatches(lang(?lbl), "en")) . } + OPTIONAL { ?labelValue rdfs:label ?lbl . + FILTER(langMatches(lang(?lbl), "en")) . } + OPTIONAL { ?labelValue skos:prefLabel ?lbl . + FILTER(langMatches(lang(?lbl), "sv")) . } + OPTIONAL { ?labelValue rdfs:label ?lbl . + FILTER(langMatches(lang(?lbl), "sv")) . } + OPTIONAL { ?labelValue skos:prefLabel ?lbl . + FILTER(langMatches(lang(?lbl), "")) . } + OPTIONAL { ?labelValue rdfs:label ?lbl . + FILTER(langMatches(lang(?lbl), "")) . } + BIND(COALESCE(?lbl, IF(!ISURI(?value), ?value, "")) AS ?facet_text) } } `; -- GitLab