diff --git a/app/SpatialToSkos.java b/app/SpatialToSkos.java index 360fc2b..a2ce033 100644 --- a/app/SpatialToSkos.java +++ b/app/SpatialToSkos.java @@ -8,9 +8,11 @@ import java.io.IOException; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; import org.apache.commons.lang3.tuple.Pair; import org.apache.jena.rdf.model.Model; @@ -24,6 +26,7 @@ import com.fasterxml.jackson.databind.JsonNode; import controllers.nwbib.Classification; +import controllers.nwbib.Lobid; /** * Generate a SKOS representation from the internal spatial classification data @@ -97,8 +100,13 @@ private static void addHierarchy(Model model, Map> hierar sub.getValue().forEach(entry -> { try { String superSubject = sub.getKey(); - addInSchemeAndPrefLabel(model, entry).addProperty(SKOS.broader, - model.createResource(superSubject)); + Resource resource = addInSchemeAndPrefLabel(model, entry); + resource.addProperty(SKOS.broader, model.createResource(superSubject)); + resource.addProperty(SKOS.definition, + Classification + .pathTo(entry.get("value").asText()).stream().map(uri -> String.format("%s (n%s)", + Lobid.facetLabel(Arrays.asList(uri), "", ""), Classification.shortId(uri))) + .collect(Collectors.joining(" > ")), "de"); } catch (Exception e) { System.err.println("Error processing: " + entry); e.printStackTrace(); diff --git a/app/views/tags/breadcrumb.scala.html b/app/views/tags/breadcrumb.scala.html index 514ce51..6260f30 100644 --- a/app/views/tags/breadcrumb.scala.html +++ b/app/views/tags/breadcrumb.scala.html @@ -27,7 +27,7 @@ } else { @if(!rpbspatial.isEmpty && !rpbspatial.contains(",") && Seq(rpbsubject, person, name, subject, id, publisher, issued, medium, owner, t, location, word, corporation, raw).forall(_.isEmpty)){ @if(search){in Regionen >} - @if(!rpbspatial.isEmpty && !rpbspatial.startsWith("https://nwbib.de/spatial#Q")) { + @if(!rpbspatial.isEmpty && !rpbspatial.startsWith("https://rpb.lobid.org/spatial#n")) { @labels(rpbspatial) } else { @defining(Classification.pathTo((if(!rpbsubject.isEmpty) rpbsubject else rpbspatial))) { path =>