From d19e4d4098becb45dd530093517066e0bac91873 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Thu, 7 Mar 2019 11:14:42 +0200
Subject: [PATCH] Clean up place hierarchy

---
 src/client/reducers/manuscriptsFacets.js      |  2 +-
 src/server/index.js                           |  2 +-
 src/server/sparql/FacetConfigs.js             |  8 ++-
 .../sparql/{Facets.js => FacetValues.js}      | 10 ++--
 src/server/sparql/Mappers.js                  | 60 +------------------
 src/server/sparql/SparqlQueriesGeneral.js     |  3 +-
 src/server/sparql/SparqlQueriesPlaces.js      |  1 +
 7 files changed, 16 insertions(+), 70 deletions(-)
 rename src/server/sparql/{Facets.js => FacetValues.js} (90%)

diff --git a/src/client/reducers/manuscriptsFacets.js b/src/client/reducers/manuscriptsFacets.js
index a2fc63cc..6691df7a 100644
--- a/src/client/reducers/manuscriptsFacets.js
+++ b/src/client/reducers/manuscriptsFacets.js
@@ -121,7 +121,7 @@ const manuscriptsFacets = (state = INITIAL_STATE, action) => {
               ...state.facets[action.id],
               distinctValueCount: action.distinctValueCount,
               values: action.values,
-              flatValues: action.flatValues || [],
+              // flatValues: action.flatValues || [],
               sortBy: action.sortBy,
               sortDirection: action.sortDirection,
               isFetching: false
diff --git a/src/server/index.js b/src/server/index.js
index 474d3f09..ceb0ec2b 100644
--- a/src/server/index.js
+++ b/src/server/index.js
@@ -2,7 +2,7 @@ import express from 'express';
 import path from 'path';
 import bodyParser from 'body-parser';
 import { getPaginatedResults, getAllResults, getByURI } from './sparql/FacetResults';
-import { getFacet } from './sparql/Facets';
+import { getFacet } from './sparql/FacetValues';
 const DEFAULT_PORT = 3001;
 const app = express();
 const apiPath = '/api';
diff --git a/src/server/sparql/FacetConfigs.js b/src/server/sparql/FacetConfigs.js
index e4445aa6..3d07ee50 100644
--- a/src/server/sparql/FacetConfigs.js
+++ b/src/server/sparql/FacetConfigs.js
@@ -4,8 +4,8 @@ export const facetConfigs = {
     productionPlace: {
       id: 'productionPlace',
       facetValueFilter: `
-        ?id dct:source <http://vocab.getty.edu/tgn/> .
-        FILTER(?id != <http://ldf.fi/mmm/places/tgn_7031096>)
+      ?id dct:source <http://vocab.getty.edu/tgn/> .
+      FILTER(?id != <http://ldf.fi/mmm/places/tgn_7031096>)
       `,
       label: 'Production place',
       labelPath: '^crm:P108_has_produced/crm:P7_took_place_at/skos:prefLabel',
@@ -78,7 +78,9 @@ export const facetConfigs = {
     },
     area: {
       id: 'area',
-      facetValueFilter: '',
+      facetValueFilter: `
+      FILTER(?id != <http://ldf.fi/mmm/place/tgn_7026519>)
+      `,
       label: 'Area',
       labelPath: 'gvp:broaderPreferred/skos:prefLabel',
       predicate: 'gvp:broaderPreferred',
diff --git a/src/server/sparql/Facets.js b/src/server/sparql/FacetValues.js
similarity index 90%
rename from src/server/sparql/Facets.js
rename to src/server/sparql/FacetValues.js
index bb33ef72..3832feb6 100644
--- a/src/server/sparql/Facets.js
+++ b/src/server/sparql/FacetValues.js
@@ -42,10 +42,8 @@ export const getFacet = (resultClass, facetID, sortBy, sortDirection, filters) =
               OPTIONAL { ?id dct:source ?source }
               OPTIONAL {
                 ?id gvp:broaderPreferred ?parent_
-                FILTER(?parent_ != <http://ldf.fi/mmm/places/tgn_7026519>)
               }
               BIND(COALESCE(?parent_, '0') as ?parent)
-              #FILTER(?id != <http://ldf.fi/mmm/places/tgn_7026519>)  
             }
       `;
   }
@@ -56,9 +54,9 @@ export const getFacet = (resultClass, facetID, sortBy, sortDirection, filters) =
   q = q.replace('<FACET_VALUE_FILTER>', facetConfig.facetValueFilter);
   q = q.replace('<PARENTS>', parentBlock);
   q = q.replace('<ORDER_BY>', `ORDER BY ${sortDirection}(?${sortBy})` );
-  // if (facetID == 'area') {
-  //   //console.log(filters)
-  //   console.log(prefixes + q)
-  // }
+  if (facetID == 'area') {
+    //console.log(filters)
+    console.log(prefixes + q)
+  }
   return sparqlSearchEngine.doSearch(prefixes + q, endpoint, mapper);
 };
diff --git a/src/server/sparql/Mappers.js b/src/server/sparql/Mappers.js
index 2d1a11cf..b944a7c7 100644
--- a/src/server/sparql/Mappers.js
+++ b/src/server/sparql/Mappers.js
@@ -37,78 +37,22 @@ export const mapFacet = sparqlBindings => {
 
 export const mapHierarchicalFacet = sparqlBindings => {
   const results = makeObjectList(sparqlBindings);
-  const flatResults = results;
-  // results.push({
-  //   id: 'http://ldf.fi/mmm/places/sdbm_not_linked',
-  //   prefLabel: 'SDBM places not linked to TGN',
-  //   selected: 'false',
-  //   source: 'http://ldf.fi/mmm/schema/SDBM',
-  //   instanceCount: '0',
-  //   parent: '0'
-  // });
-  // results.push({
-  //   id: 'http://ldf.fi/mmm/places/bodley_not_linked',
-  //   prefLabel: 'Bodley places not linked to TGN',
-  //   selected: 'false',
-  //   source: 'http://ldf.fi/mmm/schema/Bodley',
-  //   instanceCount: '0',
-  //   parent: '0'
-  // });
-  // results.push({
-  //   id: 'http://ldf.fi/mmm/places/bibale_not_linked',
-  //   prefLabel: 'Bibale places not linked to TGN',
-  //   selected: 'false',
-  //   source: 'http://ldf.fi/mmm/schema/Bibale',
-  //   instanceCount: '0',
-  //   parent: '0'
-  // });
+  //const flatResults = results;
   let treeData = getTreeFromFlatData({
     flatData: results,
     getKey: node => node.id, // resolve a node's key
     getParentKey: node => node.parent, // resolve node's parent's key
-    // getParentKey: getParentKey, // resolve node's parent's key
     rootKey: '0', // The value of the parent key when there is no parent (i.e., at root level)
   });
   treeData = recursiveSort(treeData);
   treeData.forEach(node => sumUp(node));
   return {
     distinctValueCount: results.length,
-    flatValues: flatResults,
+    //flatValues: flatResults,
     values: treeData
   };
 };
 
-// const rootLevel = new Set([
-//   'http://ldf.fi/mmm/places/tgn_7029392',
-//   'http://ldf.fi/mmm/places/sdbm_not_linked',
-//   'http://ldf.fi/mmm/places/bodley_not_linked',
-//   'http://ldf.fi/mmm/places/bibale_not_linked'
-// ]);
-//
-// const getParentKey = node => {
-//   let parent = '';
-//   if (node.parent === '0' && !rootLevel.has(node.id)) {
-//     if (Array.isArray(node.source)) {
-//       if (node.source.indexOf('http://ldf.fi/mmm/schema/SDBM') != -1) {
-//         parent = 'http://ldf.fi/mmm/places/sdbm_not_linked';
-//       } else if (node.source.indexOf('http://ldf.fi/mmm/schema/Bodley') != -1) {
-//         parent = 'http://ldf.fi/mmm/places/bodley_not_linked';
-//       } else if (node.source.indexOf('http://ldf.fi/mmm/schema/Bibale') != -1) {
-//         parent = 'http://ldf.fi/mmm/places/bibale_not_linked';
-//       }
-//     } else if (node.source === 'http://ldf.fi/mmm/schema/SDBM') {
-//       parent = 'http://ldf.fi/mmm/places/sdbm_not_linked';
-//     } else if (node.source === 'http://ldf.fi/mmm/schema/Bodley') {
-//       parent = 'http://ldf.fi/mmm/places/bodley_not_linked';
-//     } else if (node.source === 'http://ldf.fi/mmm/schema/Bibale') {
-//       parent = 'http://ldf.fi/mmm/places/bibale_not_linked';
-//     }
-//   } else {
-//     parent = node.parent;
-//   }
-//   return parent;
-// };
-
 const comparator = (a, b) => {
   if (Array.isArray(a.prefLabel)) {
     a.prefLabel = a.prefLabel[0];
diff --git a/src/server/sparql/SparqlQueriesGeneral.js b/src/server/sparql/SparqlQueriesGeneral.js
index f9e1183a..630494bb 100644
--- a/src/server/sparql/SparqlQueriesGeneral.js
+++ b/src/server/sparql/SparqlQueriesGeneral.js
@@ -34,7 +34,6 @@ export const facetValuesQuery = `
             ?instance a <RDF_TYPE> .
             <FILTER>
             ?instance <PREDICATE> ?id .
-            <FACET_VALUE_FILTER>
             <SELECTED_VALUES>
             BIND(COALESCE(?selected_, false) as ?selected)
             OPTIONAL { ?id dct:source ?source . }
@@ -46,6 +45,7 @@ export const facetValuesQuery = `
         GROUP BY ?id ?selected ?source ?lat ?long ?parent
       }
       FILTER(BOUND(?id))
+      <FACET_VALUE_FILTER>
       OPTIONAL { ?id skos:prefLabel ?prefLabel_ }
       BIND(COALESCE(STR(?prefLabel_), STR(?id)) AS ?prefLabel)
     }
@@ -64,6 +64,7 @@ export const facetValuesQuery = `
       BIND("Unknown" AS ?prefLabel)
       BIND('0' as ?parent)
     }
+
   }
   <ORDER_BY>
 `;
diff --git a/src/server/sparql/SparqlQueriesPlaces.js b/src/server/sparql/SparqlQueriesPlaces.js
index 7e85715f..f1e82bf9 100644
--- a/src/server/sparql/SparqlQueriesPlaces.js
+++ b/src/server/sparql/SparqlQueriesPlaces.js
@@ -42,6 +42,7 @@ export const allPlacesQuery =  `
     OPTIONAL { ?id skos:altLabel ?altLabel  }
     OPTIONAL { ?id mmm-schema:data_provider_url ?dataProviderUrl }
     OPTIONAL { ?id owl:sameAs ?placeAuthorityURI  }
+    FILTER(?id != <http://ldf.fi/mmm/places/tgn_7031096>)
   }
 `;
 
-- 
GitLab