From d1a4c9d5f1c25bc3ba49cd2be21c7d1e65ebe933 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Wed, 28 Nov 2018 21:47:42 +0200
Subject: [PATCH] Fix manuscript query, add source column

---
 src/client/components/ResultTable.js     |  5 ++++-
 src/client/components/ResultTableHead.js |  5 +++++
 src/server/sparql/Datasets.js            | 16 ++++++++++------
 src/server/sparql/Manuscripts.js         |  3 +--
 4 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/src/client/components/ResultTable.js b/src/client/components/ResultTable.js
index 8c19f84e..1a8f86a1 100644
--- a/src/client/components/ResultTable.js
+++ b/src/client/components/ResultTable.js
@@ -289,7 +289,10 @@ class ResultTable extends React.Component {
                     </TableCell>
                     <TableCell className={classes.withFilter}>
                       {this.ownerRenderer(row.owner)}
-                    </TableCell> 
+                    </TableCell>
+                    <TableCell className={classes.withFilter}>
+                      {this.objectListRenderer(row.source)}
+                    </TableCell>
                   </TableRow>
                 );
               })}
diff --git a/src/client/components/ResultTableHead.js b/src/client/components/ResultTableHead.js
index 28635480..ed198684 100644
--- a/src/client/components/ResultTableHead.js
+++ b/src/client/components/ResultTableHead.js
@@ -69,6 +69,11 @@ const columns = [
     property: 'owner',
     desc: 'Material description'
   },
+  {
+    label: 'Source',
+    property: 'source',
+    desc: 'Source description'
+  },
 ];
 
 
diff --git a/src/server/sparql/Datasets.js b/src/server/sparql/Datasets.js
index 2dfa4765..3c98ea45 100644
--- a/src/server/sparql/Datasets.js
+++ b/src/server/sparql/Datasets.js
@@ -20,7 +20,7 @@ module.exports = {
       PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
       PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
       PREFIX foaf: <http://xmlns.com/foaf/0.1/>
-      PREFIX dc: <http://purl.org/dc/elements/1.1/>
+      PREFIX dct: <http://purl.org/dc/terms/>
       PREFIX frbroo: <http://erlangen-crm.org/efrbroo/>
       PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
       PREFIX wgs84: <http://www.w3.org/2003/01/geo/wgs84_pos#>
@@ -31,8 +31,8 @@ module.exports = {
       SELECT (COUNT(DISTINCT ?id) as ?count)
       WHERE {
         <FILTER>
-
-        ?id a frbroo:F4_Manifestation_Singleton .
+        ?id a  frbroo:F4_Manifestation_Singleton .
+        #?id dct:source mmm-schema:Bodley .
       }
       `,
     'manuscriptQuery': `
@@ -54,6 +54,7 @@ module.exports = {
           SELECT DISTINCT ?id {
             <FILTER>
             ?id a frbroo:F4_Manifestation_Singleton .
+            #?id dct:source mmm-schema:Bodley .
             #?id ^<http://erlangen-crm.org/efrbroo/R18_created>/<http://www.cidoc-crm.org/cidoc-crm/P7_took_place_at> ?orderBy .
           }
           ORDER BY ?id
@@ -63,22 +64,25 @@ module.exports = {
         FILTER(BOUND(?id))
         ?id skos:prefLabel ?prefLabel .
         ?id mmm-schema:data_provider_url ?dataProviderUrl .
-        ?id dct:source ?source .
+        ?id dct:source ?source__id .
+        ?source__id skos:prefLabel ?source__prefLabel .
         {
           ?id crm:P51_has_former_or_current_owner ?owner__id .
           ?owner__id skos:prefLabel ?owner__prefLabel .
           ?owner__id mmm-schema:data_provider_url ?owner__dataProviderUrl .
-          [] rdf:subject ?id ;
+          OPTIONAL {
+            [] rdf:subject ?id ;
              rdf:predicate crm:P51_has_former_or_current_owner ;
              rdf:object ?owner__id ;
              mmm-schema:order ?order .
           BIND(xsd:integer(?order) + 1 AS ?owner__order)
+          }
         }
         UNION
         {
           ?expression_creation frbroo:R18_created ?id .
           ?expression_creation mmm-schema:carried_out_by_as_author ?author__id .
-          ?author__id skos:prefLabel ?author__prefLabel
+          ?author__id skos:prefLabel ?author__prefLabel .
           ?author__id mmm-schema:data_provider_url ?author__dataProviderUrl .
         }
         UNION
diff --git a/src/server/sparql/Manuscripts.js b/src/server/sparql/Manuscripts.js
index 071b5f34..bf198563 100644
--- a/src/server/sparql/Manuscripts.js
+++ b/src/server/sparql/Manuscripts.js
@@ -44,7 +44,7 @@ const getManuscriptData = (page, pagesize, filters) => {
     manuscriptQuery = manuscriptQuery.replace('<FILTER>', generateResultFilter(filters));
   }
   manuscriptQuery = manuscriptQuery.replace('<PAGE>', `LIMIT ${pagesize} OFFSET ${page * pagesize}`);
-  // console.log(manuscriptQuery)
+  //console.log(manuscriptQuery)
   return sparqlSearchEngine.doSearch(manuscriptQuery, endpoint, makeObjectList);
 };
 
@@ -89,7 +89,6 @@ const getFacet = (facetConfig, filters) => {
     facetQuery = facetQuery.replace('<FILTER>', generateFacetFilter(facetConfig, filters));
   }
   facetQuery = facetQuery.replace('<PREDICATE>', facetConfig.predicate);
-  console.log(filters)
   let mapper = facetConfig.hierarchical ? mapHierarchicalFacet : mapFacet;
   return sparqlSearchEngine.doSearch(facetQuery, endpoint, mapper);
 };
-- 
GitLab