From 5e333a252654a7956e81c095c301dc52b7d80827 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Tue, 13 Aug 2019 12:16:28 +0300
Subject: [PATCH] Internal links for events and places

---
 src/server/sparql/SparqlQueriesEvents.js | 24 +++++++++++++++++++-----
 src/server/sparql/SparqlQueriesPlaces.js |  1 +
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/src/server/sparql/SparqlQueriesEvents.js b/src/server/sparql/SparqlQueriesEvents.js
index b510d1d9..7358aba2 100644
--- a/src/server/sparql/SparqlQueriesEvents.js
+++ b/src/server/sparql/SparqlQueriesEvents.js
@@ -2,13 +2,13 @@ export const eventProperties = `
     {
       ?id a ?type__id .
       ?type__id skos:prefLabel|rdfs:label ?type__prefLabel .
-      BIND(?id AS ?type__dataProviderUrl)
+      BIND(CONCAT("/events/page/", REPLACE(STR(?id), "^.*\\\\/(.+)", "$1")) AS ?type__dataProviderUrl)
     }
     UNION
     {
       ?id crm:P7_took_place_at ?place__id .
       ?place__id skos:prefLabel ?place__prefLabel .
-      ?place__id owl:sameAs ?place__dataProviderUrl .
+      BIND(CONCAT("/places/page/", REPLACE(STR(?place__id), "^.*\\\\/(.+)", "$1")) AS ?place__dataProviderUrl)
     }
     UNION
     {
@@ -21,18 +21,32 @@ export const eventProperties = `
     {
       ?id crm:P30_transferred_custody_of ?manuscript__id .
       ?manuscript__id skos:prefLabel ?manuscript__prefLabel .
-      BIND(?manuscript__id AS ?manuscript__dataProviderUrl)
+      OPTIONAL {
+        ?manuscript__id a frbroo:F4_Manifestation_Singleton .
+        BIND(CONCAT("/manuscripts/page/", REPLACE(STR(?manuscript__id), "^.*\\\\/(.+)", "$1")) AS ?manuscript__dataProviderUrl)
+      }
+      OPTIONAL {
+        ?manuscript__id a crm:E78_Collection  .
+        BIND(CONCAT("/collections/page/", REPLACE(STR(?manuscript__id), "^.*\\\\/(.+)", "$1")) AS ?manuscript__dataProviderUrl)
+      }
     }
     UNION
     {
       ?id mmm-schema:observed_manuscript ?manuscript__id .
       ?manuscript__id skos:prefLabel ?manuscript__prefLabel .
-      BIND(?manuscript__id AS ?manuscript__dataProviderUrl)
+      OPTIONAL {
+        ?manuscript__id a frbroo:F4_Manifestation_Singleton .
+        BIND(CONCAT("/manuscripts/page/", REPLACE(STR(?manuscript__id), "^.*\\\\/(.+)", "$1")) AS ?manuscript__dataProviderUrl)
+      }
+      OPTIONAL {
+        ?manuscript__id a crm:E78_Collection  .
+        BIND(CONCAT("/collections/page/", REPLACE(STR(?manuscript__id), "^.*\\\\/(.+)", "$1")) AS ?manuscript__dataProviderUrl)
+      }
     }
     UNION
     {
       ?id crm:P108_has_produced ?manuscript__id .
       ?manuscript__id skos:prefLabel ?manuscript__prefLabel .
-      BIND(?manuscript__id AS ?manuscript__dataProviderUrl)
+      BIND(CONCAT("/manuscripts/page/", REPLACE(STR(?manuscript__id), "^.*\\\\/(.+)", "$1")) AS ?manuscript__dataProviderUrl)
     }
 `;
diff --git a/src/server/sparql/SparqlQueriesPlaces.js b/src/server/sparql/SparqlQueriesPlaces.js
index 28284b36..ed87cbef 100644
--- a/src/server/sparql/SparqlQueriesPlaces.js
+++ b/src/server/sparql/SparqlQueriesPlaces.js
@@ -18,6 +18,7 @@ export const placeProperties = `
     UNION {
       ?id gvp:broaderPreferred ?area__id .
       ?area__id skos:prefLabel ?area__prefLabel .
+      BIND(CONCAT("/places/page/", REPLACE(STR(?area__id), "^.*\\\\/(.+)", "$1")) AS ?area__dataProviderUrl)
     }
     UNION {
       ?id ^mmm-schema:person_place ?actor__id .
-- 
GitLab