From e9efc4c898c93c4d2f8e6d3de5cbeb8f7d5ee085 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Tue, 27 Aug 2019 12:41:05 +0300
Subject: [PATCH] Places: remove related manuscripts from facet results

---
 src/server/sparql/FacetResults.js        |  7 ++++---
 src/server/sparql/SparqlQueriesPlaces.js | 26 +++++++++++++++++++++++-
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/src/server/sparql/FacetResults.js b/src/server/sparql/FacetResults.js
index cbbf54c7..38abe4db 100644
--- a/src/server/sparql/FacetResults.js
+++ b/src/server/sparql/FacetResults.js
@@ -21,7 +21,8 @@ import {
   placesActorsQuery,
 } from './SparqlQueriesActors';
 import {
-  placeProperties,
+  placePropertiesInstancePage,
+  placePropertiesFacetResults,
   placePropertiesInfoWindow,
   manuscriptsProducedAt,
   actorsAt,
@@ -189,7 +190,7 @@ const getPaginatedData = ({
       resultSetProperties = eventProperties;
       break;
     case 'places':
-      resultSetProperties = placeProperties;
+      resultSetProperties = placePropertiesFacetResults;
       break;
     case 'actors':
       resultSetProperties = actorProperties;
@@ -243,7 +244,7 @@ export const getByURI = ({
       break;
     case 'places':
       q = instanceQuery;
-      q = q.replace('<PROPERTIES>', placeProperties);
+      q = q.replace('<PROPERTIES>', placePropertiesInstancePage);
       q = q.replace('<RELATED_INSTANCES>', '');
       break;
     case 'placesAll':
diff --git a/src/server/sparql/SparqlQueriesPlaces.js b/src/server/sparql/SparqlQueriesPlaces.js
index b45f019f..cc52a652 100644
--- a/src/server/sparql/SparqlQueriesPlaces.js
+++ b/src/server/sparql/SparqlQueriesPlaces.js
@@ -1,4 +1,4 @@
-export const placeProperties = `
+export const placePropertiesInstancePage = `
     {
       ?id skos:prefLabel ?prefLabel__id .
       BIND(?prefLabel__id AS ?prefLabel__prefLabel)
@@ -38,6 +38,30 @@ export const placeProperties = `
     }
 `;
 
+export const placePropertiesFacetResults = `
+    {
+      ?id skos:prefLabel ?prefLabel__id .
+      BIND(?prefLabel__id AS ?prefLabel__prefLabel)
+      BIND(CONCAT("/places/page/", REPLACE(STR(?id), "^.*\\\\/(.+)", "$1")) AS ?prefLabel__dataProviderUrl)
+    }
+    UNION
+    {
+      ?id  owl:sameAs
+          |mmm-schema:data_provider_url
+          |mmm-schema:geonames_uri
+          ?source__id .
+      OPTIONAL { ?source__id skos:prefLabel ?source__prefLabel_}
+      BIND(?source__id AS ?source__dataProviderUrl)
+      BIND(COALESCE(?source__prefLabel_, ?source__id) AS ?source__prefLabel)
+    }
+    UNION { ?id gvp:placeTypePreferred ?placeType }
+    UNION {
+      ?id gvp:broaderPreferred ?area__id .
+      ?area__id skos:prefLabel ?area__prefLabel .
+      BIND(CONCAT("/places/page/", REPLACE(STR(?area__id), "^.*\\\\/(.+)", "$1")) AS ?area__dataProviderUrl)
+    }
+`;
+
 export const placePropertiesInfoWindow = `
     ?id skos:prefLabel ?prefLabel__id .
     BIND(?prefLabel__id AS ?prefLabel__prefLabel)
-- 
GitLab