diff --git a/app/controllers/nwbib/Application.java b/app/controllers/nwbib/Application.java index caa2952e..21837272 100644 --- a/app/controllers/nwbib/Application.java +++ b/app/controllers/nwbib/Application.java @@ -220,8 +220,8 @@ private static List> cleanSortUnique( * @param publisher Query for the resource publisher * @param issued Query for the resource issued year * @param medium Query for the resource medium - * @param nwbibspatial Query for the resource nwbibspatial classification - * @param nwbibsubject Query for the resource nwbibsubject classification + * @param rpbspatial Query for the resource rpbspatial classification + * @param rpbsubject Query for the resource rpbsubject classification * @param from The page start (offset of page of resource to return) * @param size The page size (size of page of resource to return) * @param owner Owner filter for resource queries @@ -238,7 +238,7 @@ private static List> cleanSortUnique( public static Promise search(final String q, final String person, final String name, final String subject, final String id, final String publisher, final String issued, final String medium, - final String nwbibspatial, final String nwbibsubject, final int from, + final String rpbspatial, final String rpbsubject, final int from, final int size, final String owner, String t, String sort, boolean details, String location, String word, String corporation, String raw, String format) { @@ -262,17 +262,23 @@ public static Promise search(final String q, final String person, if (form.hasErrors()) return Promise.promise( () -> badRequest(search.render(null, q, person, name, subject, id, - publisher, issued, medium, nwbibspatial, nwbibsubject, from, size, + publisher, issued, medium, rpbspatial, rpbsubject, from, size, 0L, owner, t, sort, location, word, corporation, raw))); String query = form.data().get("q"); Promise result = okPromise(query != null ? query : q, person, name, - subject, id, publisher, issued, medium, nwbibspatial, nwbibsubject, + subject, id, publisher, issued, medium, rpbspatial, rpbsubject, from, size, owner, t, sort, details, location, word, corporation, raw, format.isEmpty() ? "html" : format); cacheOnRedeem(cacheId, result, ONE_HOUR); return result; } + public static Promise searchSpatial(final String id, final int from, final int size, + final String format) { + return Promise.pure(found(routes.Application.search("", "", "", "", "", "", "", "", + "https://rpb.lobid.org/spatial#n" + id, "", from, size, "", "", "", false, "", "", + "", "", format))); + } /** * @param id The resource ID. * @param format The requested resource format (html, json). @@ -401,8 +407,8 @@ public static Result download(final String t) { "attachment; filename=" + filename); try { return ok(new URL(CONFIG - .getString(t.equals("Raumsystematik") ? "index.data.nwbibspatial" - : "index.data.nwbibsubject")).openStream()); + .getString(t.equals("Raumsystematik") ? "index.data.rpbspatial" + : "index.data.rpbsubject")).openStream()); } catch (IOException e) { e.printStackTrace(); return internalServerError(e.getMessage()); @@ -476,18 +482,18 @@ private static Result classificationResult(String t, String placeholder) { private static Promise okPromise(final String q, final String person, final String name, final String subject, final String id, final String publisher, final String issued, final String medium, - final String nwbibspatial, final String nwbibsubject, final int from, + final String rpbspatial, final String rpbsubject, final int from, final int size, final String owner, String t, String sort, boolean details, String location, String word, String corporation, String raw, String format) { final Promise result = call(q, person, name, subject, id, publisher, - issued, medium, nwbibspatial, nwbibsubject, from, size, owner, t, sort, + issued, medium, rpbspatial, rpbsubject, from, size, owner, t, sort, details, location, word, corporation, raw, format); return result.recover((Throwable throwable) -> { Logger.error("Could not call Lobid", throwable); flashError(); return internalServerError(search.render("[]", q, person, name, subject, - id, publisher, issued, medium, nwbibspatial, nwbibsubject, from, size, + id, publisher, issued, medium, rpbspatial, rpbsubject, from, size, 0L, owner, t, sort, location, word, corporation, raw)); }); } @@ -511,12 +517,12 @@ private static void cacheOnRedeem(final String cacheId, static Promise call(final String q, final String person, final String name, final String subject, final String id, final String publisher, final String issued, final String medium, - final String nwbibspatial, final String nwbibsubject, final int from, + final String rpbspatial, final String rpbsubject, final int from, final int size, String owner, String t, String sort, boolean showDetails, String location, String word, String corporation, String raw, String format) { final WSRequest requestHolder = Lobid.request(q, person, name, subject, id, - publisher, issued, medium, nwbibspatial, nwbibsubject, from, size, + publisher, issued, medium, rpbspatial, rpbsubject, from, size, owner, t, sort, location, word, corporation, raw); return requestHolder.get().map((WSResponse response) -> { Long hits = 0L; @@ -549,7 +555,7 @@ static Promise call(final String q, final String person, return format.equals("html") ? ok(search.render(s, q, person, name, subject, id, publisher, issued, - medium, nwbibspatial, nwbibsubject, from, size, hits, owner, t, + medium, rpbspatial, rpbsubject, from, size, hits, owner, t, sort, location, word, corporation, raw)) : ok(new ObjectMapper().writerWithDefaultPrettyPrinter() .writeValueAsString(Json.parse(s))) @@ -572,8 +578,8 @@ private static void uncache(List ids) { * @param publisher Query for the resource publisher * @param issued Query for the resource issued year * @param medium Query for the resource medium - * @param nwbibspatial Query for the resource nwbibspatial classification - * @param nwbibsubject Query for the resource nwbibsubject classification + * @param rpbspatial Query for the resource rpbspatial classification + * @param rpbsubject Query for the resource rpbsubject classification * @param from The page start (offset of page of resource to return) * @param size The page size (size of page of resource to return) * @param owner Owner filter for resource queries @@ -588,14 +594,14 @@ private static void uncache(List ids) { */ public static Promise facets(String q, String person, String name, String subject, String id, String publisher, String issued, String medium, - String nwbibspatial, String nwbibsubject, int from, int size, + String rpbspatial, String rpbsubject, int from, int size, String owner, String t, String field, String sort, String location, String word, String corporation, String raw) { String key = String.format( "facets.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s", field, q, person, name, id, publisher, location, word, corporation, raw, subject, - issued, medium, nwbibspatial, nwbibsubject, owner, t); + issued, medium, rpbspatial, rpbsubject, owner, t); Result cachedResult = (Result) Cache.get(key); if (cachedResult != null) { return Promise.promise(() -> cachedResult); @@ -624,9 +630,9 @@ public static Promise facets(String q, String person, String name, Comparator> sorter = (p1, p2) -> { String t1 = p1.getLeft().get("key").asText(); String t2 = p2.getLeft().get("key").asText(); - boolean t1Current = current(subject, medium, nwbibspatial, nwbibsubject, + boolean t1Current = current(subject, medium, rpbspatial, rpbsubject, owner, t, field, t1, raw); - boolean t2Current = current(subject, medium, nwbibspatial, nwbibsubject, + boolean t2Current = current(subject, medium, rpbspatial, rpbsubject, owner, t, field, t2, raw); if (t1Current == t2Current) { if (!field.equals(ISSUED_FIELD)) { @@ -655,12 +661,12 @@ public static Promise facets(String q, String person, String name, : queryParam(t, term); String ownerQuery = !field.equals(ITEM_FIELD) ? owner // : withoutAndOperator(queryParam(owner, term)); - String nwbibsubjectQuery = - !field.equals(RPB_SUBJECT_FIELD) ? nwbibsubject // - : queryParam(nwbibsubject, term); - String nwbibspatialQuery = - !field.equals(NWBIB_SPATIAL_FIELD) ? nwbibspatial // - : queryParam(nwbibspatial, term); + String rpbsubjectQuery = + !field.equals(RPB_SUBJECT_FIELD) ? rpbsubject // + : queryParam(rpbsubject, term); + String rpbspatialQuery = + !field.equals(NWBIB_SPATIAL_FIELD) ? rpbspatial // + : queryParam(rpbspatial, term); String rawQuery = !field.equals(COVERAGE_FIELD) ? raw // : rawQueryParam(raw, term); String locationQuery = !field.equals(SUBJECT_LOCATION_FIELD) ? location // @@ -670,12 +676,12 @@ public static Promise facets(String q, String person, String name, String issuedQuery = !field.equals(ISSUED_FIELD) ? issued // : queryParam(issued, term); - boolean current = current(subject, medium, nwbibspatial, nwbibsubject, + boolean current = current(subject, medium, rpbspatial, rpbsubject, owner, t, field, term, raw); String routeUrl = routes.Application.search(q, person, name, subjectQuery, - id, publisher, issuedQuery, mediumQuery, nwbibspatialQuery, - nwbibsubjectQuery, from, size, ownerQuery, typeQuery, - sort(sort, nwbibspatialQuery, nwbibsubjectQuery, subjectQuery), false, + id, publisher, issuedQuery, mediumQuery, rpbspatialQuery, + rpbsubjectQuery, from, size, ownerQuery, typeQuery, + sort(sort, rpbspatialQuery, rpbsubjectQuery, subjectQuery), false, locationQuery, word, corporation, rawQuery, "").url(); String result = String.format( @@ -690,7 +696,7 @@ public static Promise facets(String q, String person, String name, }; Promise promise = Lobid.getFacets(q, person, name, subject, id, - publisher, issued, medium, nwbibspatial, nwbibsubject, owner, field, t, + publisher, issued, medium, rpbspatial, rpbsubject, owner, field, t, location, word, corporation, raw).map(json -> { Stream stream = StreamSupport.stream( Spliterators.spliteratorUnknownSize(json.findValue("aggregation") @@ -705,7 +711,7 @@ public static Promise facets(String q, String person, String name, String labelKey = String.format( "facets-labels.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s.%s", field, raw, q, person, name, id, publisher, word, corporation, - subject, issued, medium, nwbibspatial, nwbibsubject, raw, + subject, issued, medium, rpbspatial, rpbsubject, raw, field.equals(ITEM_FIELD) ? "" : owner, t, location); @SuppressWarnings("unchecked") @@ -723,22 +729,22 @@ public static Promise facets(String q, String person, String name, return promise; } - private static String sort(String sort, String nwbibspatialQuery, - String nwbibsubjectQuery, String subjectQuery) { - return (nwbibspatialQuery + nwbibsubjectQuery + subjectQuery).contains(",") + private static String sort(String sort, String rpbspatialQuery, + String rpbsubjectQuery, String subjectQuery) { + return (rpbspatialQuery + rpbsubjectQuery + subjectQuery).contains(",") ? "" /* relevance */ : sort; } private static boolean current(String subject, String medium, - String nwbibspatial, String nwbibsubject, String owner, String t, + String rpbspatial, String rpbsubject, String owner, String t, String field, String term, String raw) { return field.equals(MEDIUM_FIELD) && contains(medium, term) || field.equals(TYPE_FIELD) && contains(t, term) || field.equals(ITEM_FIELD) && contains(owner, term) - || field.equals(NWBIB_SPATIAL_FIELD) && contains(nwbibspatial, term) + || field.equals(NWBIB_SPATIAL_FIELD) && contains(rpbspatial, term) || field.equals(COVERAGE_FIELD) && rawContains(raw, quotedEscaped(term)) - || field.equals(RPB_SUBJECT_FIELD) && contains(nwbibsubject, term) + || field.equals(RPB_SUBJECT_FIELD) && contains(rpbsubject, term) || field.equals(SUBJECT_FIELD) && contains(subject, term); } diff --git a/app/controllers/nwbib/Classification.java b/app/controllers/nwbib/Classification.java index 45ae7848..401bc1cc 100644 --- a/app/controllers/nwbib/Classification.java +++ b/app/controllers/nwbib/Classification.java @@ -113,7 +113,7 @@ public Pair, Map>> buildHierarchy() { } else addAsSubClass(subClasses, hit, json, broader.findValue("@id").asText()); } - if (this == SPATIAL && (CONFIG.getBoolean("index.nwbibspatial.enrich") + if (this == SPATIAL && (CONFIG.getBoolean("index.rpbspatial.enrich") || Play.isTest())) { /* SpatialToSkos uses Play test server */ addFromCsv(subClasses); } @@ -479,8 +479,8 @@ public static void indexStartup() { .actionGet(); if (!client.admin().indices().prepareExists(INDEX).execute().actionGet() .isExists()) { - indexData(CONFIG.getString("index.data.nwbibsubject"), Type.NWBIB); - indexData(CONFIG.getString("index.data.nwbibspatial"), Type.SPATIAL); + indexData(CONFIG.getString("index.data.rpbsubject"), Type.NWBIB); + indexData(CONFIG.getString("index.data.rpbspatial"), Type.SPATIAL); client.admin().indices().refresh(new RefreshRequest()).actionGet(); } } @@ -512,7 +512,7 @@ public static void indexShutdown() { } /** - * @param uri The nwbib or nwbibspatial URI + * @param uri The nwbib or rpbspatial URI * @return The list of path segments to the given URI in its classification, * e.g. for URI https://nwbib.de/subjects#N582060: * [https://nwbib.de/subjects#N5, https://nwbib.de/subjects#N580000, diff --git a/app/controllers/nwbib/Lobid.java b/app/controllers/nwbib/Lobid.java index 54518239..834908f1 100644 --- a/app/controllers/nwbib/Lobid.java +++ b/app/controllers/nwbib/Lobid.java @@ -91,7 +91,7 @@ static Long getTotalResults(JsonNode json) { static WSRequest request(final String q, final String person, final String name, final String subject, final String id, final String publisher, final String issued, final String medium, - final String nwbibspatial, final String nwbibsubject, final int from, + final String rpbspatial, final String rpbsubject, final int from, final int size, String owner, String t, String sort, String location, String word, String corporation, String raw) { WSRequest requestHolder = WS.url(Application.CONFIG.getString("nwbib.api")) @@ -107,13 +107,13 @@ static WSRequest request(final String q, final String person, if (!raw.trim().isEmpty()) requestHolder = requestHolder.setQueryParameter("q", q + (q.isEmpty() ? "" : " AND ") + raw); - requestHolder = setupWordParameter(q, nwbibspatial, word, requestHolder); + requestHolder = setupWordParameter(q, rpbspatial, word, requestHolder); if (!name.trim().isEmpty()) requestHolder = requestHolder.setQueryParameter("name", name); - if (!nwbibsubject.trim().isEmpty() && !subject.trim().isEmpty()) + if (!rpbsubject.trim().isEmpty() && !subject.trim().isEmpty()) requestHolder = requestHolder.setQueryParameter("subject", - subjectAndNwbibSubject(subject, nwbibsubject)); - if (!subject.trim().isEmpty() && nwbibsubject.trim().isEmpty()) + subjectAndrpbsubject(subject, rpbsubject)); + if (!subject.trim().isEmpty() && rpbsubject.trim().isEmpty()) requestHolder = requestHolder.setQueryParameter("subject", subject); if (!id.trim().isEmpty()) requestHolder = requestHolder.setQueryParameter("id", id); @@ -123,8 +123,8 @@ static WSRequest request(final String q, final String person, requestHolder = requestHolder.setQueryParameter("issued", issued); if (!medium.trim().isEmpty()) requestHolder = requestHolder.setQueryParameter("medium", medium); - if (!nwbibsubject.trim().isEmpty() && subject.trim().isEmpty()) - requestHolder = requestHolder.setQueryParameter("subject", nwbibsubject); + if (!rpbsubject.trim().isEmpty() && subject.trim().isEmpty()) + requestHolder = requestHolder.setQueryParameter("subject", rpbsubject); if (!owner.isEmpty()) requestHolder = requestHolder.setQueryParameter("owner", owner); if (!t.isEmpty()) @@ -146,20 +146,20 @@ static WSRequest request(final String q, final String person, } private static WSRequest setupWordParameter(final String q, - final String nwbibspatial, String word, WSRequest requestHolder) { - if (!q.trim().isEmpty() && nwbibspatial.isEmpty()) + final String rpbspatial, String word, WSRequest requestHolder) { + if (!q.trim().isEmpty() && rpbspatial.isEmpty()) return requestHolder.setQueryParameter("word", preprocess(q)); - else if (!q.trim().isEmpty() && !nwbibspatial.isEmpty()) + else if (!q.trim().isEmpty() && !rpbspatial.isEmpty()) return requestHolder.setQueryParameter("word", - preprocess(q) + " AND " + setUpNwbibspatial(nwbibspatial)); - else if (!word.isEmpty() && nwbibspatial.isEmpty()) + preprocess(q) + " AND " + setUprpbspatial(rpbspatial)); + else if (!word.isEmpty() && rpbspatial.isEmpty()) return requestHolder.setQueryParameter("word", preprocess(word)); - else if (!word.isEmpty() && !nwbibspatial.trim().isEmpty()) { + else if (!word.isEmpty() && !rpbspatial.trim().isEmpty()) { return requestHolder.setQueryParameter("word", - preprocess(word) + " AND " + setUpNwbibspatial(nwbibspatial)); - } else if (!nwbibspatial.trim().isEmpty()) + preprocess(word) + " AND " + setUprpbspatial(rpbspatial)); + } else if (!rpbspatial.trim().isEmpty()) return requestHolder.setQueryParameter("word", - setUpNwbibspatial(nwbibspatial)); + setUprpbspatial(rpbspatial)); return requestHolder; } @@ -422,8 +422,8 @@ private static String nwBibLabel(String uri) { * @param publisher Query for the resource publisher * @param issued Query for the resource issued year * @param medium Query for the resource medium - * @param nwbibspatial Query for the resource nwbibspatial classification - * @param nwbibsubject Query for the resource nwbibsubject classification + * @param rpbspatial Query for the resource rpbspatial classification + * @param rpbsubject Query for the resource rpbsubject classification * @param owner Owner filter for resource queries * @param t Type filter for resource queries * @param field The facet field (the field to facet over) @@ -435,7 +435,7 @@ private static String nwBibLabel(String uri) { */ public static Promise getFacets(String q, String person, String name, String subject, String id, String publisher, String issued, - String medium, String nwbibspatial, String nwbibsubject, String owner, + String medium, String rpbspatial, String rpbsubject, String owner, String field, String t, String location, String word, String corporation, String raw) { WSRequest request = WS.url(Application.CONFIG.getString("nwbib.api")) @@ -459,22 +459,22 @@ public static Promise getFacets(String q, String person, else if (!corporation.isEmpty()) request = request.setQueryParameter("agent", corporation); - if (!nwbibsubject.isEmpty() && !subject.isEmpty()) + if (!rpbsubject.isEmpty() && !subject.isEmpty()) request = request.setQueryParameter("subject", - subjectAndNwbibSubject(subject, nwbibsubject)); + subjectAndrpbsubject(subject, rpbsubject)); - if (!nwbibsubject.isEmpty() && subject.isEmpty()) - request = request.setQueryParameter("subject", nwbibsubject); + if (!rpbsubject.isEmpty() && subject.isEmpty()) + request = request.setQueryParameter("subject", rpbsubject); if (!raw.isEmpty() && !raw.contains(Lobid.escapeUri(Application.COVERAGE_FIELD))) request = request.setQueryParameter("q", raw); - request = setupWordParameter(q, nwbibspatial, word, request); + request = setupWordParameter(q, rpbspatial, word, request); if (!field.equals(Application.ITEM_FIELD)) request = request.setQueryParameter("owner", owner); - if (!field.startsWith("http") && nwbibsubject.isEmpty()) + if (!field.startsWith("http") && rpbsubject.isEmpty()) request = request.setQueryParameter("subject", subject); String url = request.getUrl(); @@ -491,13 +491,13 @@ else if (!corporation.isEmpty()) }); } - private static String subjectAndNwbibSubject(String subject, - String nwbibsubject) { - return subject + "," + nwbibsubject + ",AND"; + private static String subjectAndrpbsubject(String subject, + String rpbsubject) { + return subject + "," + rpbsubject + ",AND"; } - private static String setUpNwbibspatial(String nwbibspatial) { - String query = Arrays.asList(nwbibspatial.replace(",AND", "").split(",")) + private static String setUprpbspatial(String rpbspatial) { + String query = Arrays.asList(rpbspatial.replace(",AND", "").split(",")) .stream().map(id -> "spatial.id:\"" + id + "\"") .collect(Collectors.joining(" AND ")); return query; diff --git a/app/views/search.scala.html b/app/views/search.scala.html index 6d6a3389..3c41e220 100644 --- a/app/views/search.scala.html +++ b/app/views/search.scala.html @@ -1,6 +1,6 @@ @* Copyright 2014 Fabian Steeg, hbz. Licensed under the GPLv2 *@ -@(result: String, q:String, person:String, name:String, subject:String, id:String, publisher:String, issued:String, medium: String, nwbibspatial: String, nwbibsubject: String, from: Int, size: Int, allHits: Long, owner: String, t: String, sortParam: String, location: String, word: String, corporation: String, raw: String) +@(result: String, q:String, person:String, name:String, subject:String, id:String, publisher:String, issued:String, medium: String, rpbspatial: String, rpbsubject: String, from: Int, size: Int, allHits: Long, owner: String, t: String, sortParam: String, location: String, word: String, corporation: String, raw: String) @import helper._ @import tags._ @@ -16,17 +16,17 @@ @@ -34,13 +34,13 @@ @sort(param: String, label: String)={
  • - @label + @label
  • } @pageLink(num: Int)={
  • - @num + @num
  • } @@ -62,7 +62,7 @@ @main("RPB - Ergebnisliste") { @if(Seq(person, name, subject, id, publisher, issued, word, corporation).exists(!_.isEmpty)){ - @tags.search_advanced("Suche aktualisieren", q, person, name, subject, nwbibspatial, nwbibsubject, id, publisher, issued, sortParam, word=word, corporation=corporation) + @tags.search_advanced("Suche aktualisieren", q, person, name, subject, rpbspatial, rpbsubject, id, publisher, issued, sortParam, word=word, corporation=corporation) } else { @tags.search_form(q, location) } @@ -93,14 +93,14 @@
    @allHits @if(!raw.isEmpty && !raw.contains(Lobid.escapeUri(Application.COVERAGE_FIELD.replace(".raw","")))){ @defining(String.format(Application.CONFIG.getString("indexUrlFormat"), raw.substring(raw.lastIndexOf("/")+1))) { lobidUrl => - @labelRaw in: @Html(Lobid.resourceLabel(lobidUrl))}}else{Treffer } @breadcrumb(nwbibsubject,nwbibspatial, person, name, subject, id, publisher, issued, medium, owner, t, location, word, corporation, raw, search=true) — + @labelRaw in: @Html(Lobid.resourceLabel(lobidUrl))}}else{Treffer } @breadcrumb(rpbsubject,rpbspatial, person, name, subject, id, publisher, issued, medium, owner, t, location, word, corporation, raw, search=true) — zeige @(from+1) bis @(Math.min(from+hits.size,from+size)):
    @@ -141,7 +141,7 @@ } }
    - @if(allHits > 0) {@facets(q,person,name,subject,id,publisher,issued,medium,nwbibspatial,nwbibsubject,owner,t,sortParam,location,word,corporation,raw,from,size)} + @if(allHits > 0) {@facets(q,person,name,subject,id,publisher,issued,medium,rpbspatial,rpbsubject,owner,t,sortParam,location,word,corporation,raw,from,size)}
    } @* diff --git a/app/views/tags/breadcrumb.scala.html b/app/views/tags/breadcrumb.scala.html index 44c04ac8..514ce517 100644 --- a/app/views/tags/breadcrumb.scala.html +++ b/app/views/tags/breadcrumb.scala.html @@ -5,7 +5,7 @@ @import controllers.nwbib.Classification.Type @import controllers.nwbib.WikidataLocations -@(nwbibsubject: String, nwbibspatial: String, person:String="", name:String="", subject:String="", id:String="", publisher:String="", issued:String="", medium: String="", owner: String="", t: String="", location: String="", word: String="", corporation: String="", raw: String="", search: Boolean = false) +@(rpbsubject: String, rpbspatial: String, person:String="", name:String="", subject:String="", id:String="", publisher:String="", issued:String="", medium: String="", owner: String="", t: String="", location: String="", word: String="", corporation: String="", raw: String="", search: Boolean = false) @toInternalGndId(uri: String) = @{ uri.replaceAll("https://d-nb.info/gnd/","n").replaceAll("-", "n") } @@ -21,16 +21,16 @@ } }} -@if(!nwbibsubject.isEmpty && !nwbibsubject.contains(",") && Seq(nwbibspatial, person, name, subject, id, publisher, issued, medium, owner, t, location, word, corporation, raw).forall(_.isEmpty)){ +@if(!rpbsubject.isEmpty && !rpbsubject.contains(",") && Seq(rpbspatial, person, name, subject, id, publisher, issued, medium, owner, t, location, word, corporation, raw).forall(_.isEmpty)){ @if(search){in Sachgebiete >} - @labels(nwbibsubject) + @labels(rpbsubject) } else { - @if(!nwbibspatial.isEmpty && !nwbibspatial.contains(",") && Seq(nwbibsubject, person, name, subject, id, publisher, issued, medium, owner, t, location, word, corporation, raw).forall(_.isEmpty)){ + @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(!nwbibspatial.isEmpty && !nwbibspatial.startsWith("https://nwbib.de/spatial#Q")) { - @labels(nwbibspatial) + @if(!rpbspatial.isEmpty && !rpbspatial.startsWith("https://nwbib.de/spatial#Q")) { + @labels(rpbspatial) } else { - @defining(Classification.pathTo((if(!nwbibsubject.isEmpty) nwbibsubject else nwbibspatial))) { path => + @defining(Classification.pathTo((if(!rpbsubject.isEmpty) rpbsubject else rpbspatial))) { path => @defining(path.takeWhile(!Classification.notation(_, Type.SPATIAL).isEmpty())) { withNotation => @if(!withNotation.isEmpty){@labels(withNotation.last) @if(path.last != withNotation.last) {>}} @for(segment <- path.dropWhile(!Classification.notation(_, Type.SPATIAL).isEmpty())) { diff --git a/app/views/tags/browse_list.scala.html b/app/views/tags/browse_list.scala.html index 9998a79f..5aae8ee1 100644 --- a/app/views/tags/browse_list.scala.html +++ b/app/views/tags/browse_list.scala.html @@ -83,9 +83,9 @@ case _ => value }}">@Html(entryLabel) @if(hits>0){ ( nwbib.routes.Application.search(nwbibspatial=value) - case "Raumsystematik" => nwbib.routes.Application.search(nwbibspatial=Lobid.rpbSpatialGndToRealGnd(value)) - case "Sachsystematik" => nwbib.routes.Application.search(nwbibsubject=value) + case "Wikidata" => nwbib.routes.Application.search(rpbspatial=value) + case "Raumsystematik" => nwbib.routes.Application.search(rpbspatial=Lobid.rpbSpatialGndToRealGnd(value)) + case "Sachsystematik" => nwbib.routes.Application.search(rpbsubject=value) case _ => value }}">@hits) } diff --git a/app/views/tags/coverage_map.scala.html b/app/views/tags/coverage_map.scala.html index 66bb3a4d..4e3b6499 100644 --- a/app/views/tags/coverage_map.scala.html +++ b/app/views/tags/coverage_map.scala.html @@ -1,6 +1,6 @@ @* Copyright 2015 Fabian Steeg, hbz. Licensed under the GPLv2 *@ -@(q:String, person:String, name:String, subject:String, id:String, publisher:String, issued:String, medium: String, nwbibspatial: String, nwbibsubject: String, owner: String, t: String, sortParam: String, location: String, word: String, corporation: String, raw: String, from: Int, size: Int) +@(q:String, person:String, name:String, subject:String, id:String, publisher:String, issued:String, medium: String, rpbspatial: String, rpbsubject: String, owner: String, t: String, sortParam: String, location: String, word: String, corporation: String, raw: String, from: Int, size: Int) @import helper._ @@ -86,7 +86,7 @@ var facetFieldName = '@urlEncode("spatial.focus.geo")'; var queryParams = '&q=@urlEncode(q)&person=@urlEncode(person)&name=@urlEncode(name)'+ '&subject=@urlEncode(subject)&id=@urlEncode(id)&publisher=@urlEncode(publisher)&issued=@urlEncode(issued)'+ -'&medium=@urlEncode(medium)&nwbibspatial=@urlEncode(nwbibspatial)&nwbibsubject=@urlEncode(nwbibsubject)'+ +'&medium=@urlEncode(medium)&rpbspatial=@urlEncode(rpbspatial)&rpbsubject=@urlEncode(rpbsubject)'+ '&owner=@urlEncode(owner)&t=@urlEncode(t)&sort=@urlEncode(sortParam)'+ '&word=@urlEncode(word)&corporation=@urlEncode(corporation)&raw=@urlEncode(raw)'; diff --git a/app/views/tags/facets.scala.html b/app/views/tags/facets.scala.html index 1f839657..1d6428e9 100644 --- a/app/views/tags/facets.scala.html +++ b/app/views/tags/facets.scala.html @@ -1,4 +1,4 @@ -@(q:String, person:String, name:String, subject:String, id:String, publisher:String, issued:String, medium: String, nwbibspatial: String, nwbibsubject: String, owner: String, t: String, sortParam: String, location: String, word: String, corporation: String, raw: String, from: Int, size: Int) +@(q:String, person:String, name:String, subject:String, id:String, publisher:String, issued:String, medium: String, rpbspatial: String, rpbsubject: String, owner: String, t: String, sortParam: String, location: String, word: String, corporation: String, raw: String, from: Int, size: Int) @import controllers.nwbib.Application @import helper._ @@ -54,7 +54,7 @@ }); } $.ajax({ - url: '/facets?q=@urlEncode(q)&person=@urlEncode(person)&name=@urlEncode(name)&subject=@urlEncode(subject)&id=@urlEncode(id)&publisher=@urlEncode(publisher)&issued=@urlEncode(issued)&medium=@urlEncode(medium)&nwbibspatial=@urlEncode(nwbibspatial)&nwbibsubject=@urlEncode(nwbibsubject)&from=0&size=@size&owner=@urlEncode(owner)&t=@urlEncode(t)&field=@urlEncode(field)&sort=@urlEncode(sortParam)&location=@urlEncode(location)&word=@urlEncode(word)&corporation=@urlEncode(corporation)&raw=@urlEncode(raw)', + url: '/facets?q=@urlEncode(q)&person=@urlEncode(person)&name=@urlEncode(name)&subject=@urlEncode(subject)&id=@urlEncode(id)&publisher=@urlEncode(publisher)&issued=@urlEncode(issued)&medium=@urlEncode(medium)&rpbspatial=@urlEncode(rpbspatial)&rpbsubject=@urlEncode(rpbsubject)&from=0&size=@size&owner=@urlEncode(owner)&t=@urlEncode(t)&field=@urlEncode(field)&sort=@urlEncode(sortParam)&location=@urlEncode(location)&word=@urlEncode(word)&corporation=@urlEncode(corporation)&raw=@urlEncode(raw)', success: function(data, textStatus, jqXHR) { var lis = data.split(""); lis = lis.slice(0, lis.length-1); @@ -107,7 +107,7 @@ @facetLabel(current: String, label: String, activeCountId: String = "", currentCount: String = "") = { @if(!current.isEmpty){ @currentCount @label - + } } @@ -129,18 +129,18 @@
    - +

    -
    @facets("Regionen", Application.NWBIB_SPATIAL_FIELD, nwbibspatial)
    -
    @facets("Sachgebiete", Application.RPB_SUBJECT_FIELD, nwbibsubject)
    +
    @facets("Regionen", Application.NWBIB_SPATIAL_FIELD, rpbspatial)
    +
    @facets("Sachgebiete", Application.RPB_SUBJECT_FIELD, rpbsubject)
    @facets("Schlagwörter", Application.SUBJECT_FIELD, if(!urisOnly(subject).isEmpty) urisOnly(subject) else "", "dropup")
    @facets("Publikationstypen", Application.TYPE_FIELD, t, "dropup")
    @facets("Medientypen", Application.MEDIUM_FIELD, medium, "dropup")
    @*

    @facetToggle("coverage-map"){Raumbezug} @facetLabel(location, locationLabel(location.split("\\|")(0)))

    -
    @coverage_map(q,person,name,subject,id,publisher,issued,medium,nwbibspatial,nwbibsubject,owner,t,sortParam,location,word,corporation,raw,from,size)
    +
    @coverage_map(q,person,name,subject,id,publisher,issued,medium,rpbspatial,rpbsubject,owner,t,sortParam,location,word,corporation,raw,from,size)
    @facets("Bestand in Bibliotheken", Application.ITEM_FIELD, owner, "dropup")
    *@ diff --git a/app/views/tags/result_doc.scala.html b/app/views/tags/result_doc.scala.html index 5567b73e..060a7892 100644 --- a/app/views/tags/result_doc.scala.html +++ b/app/views/tags/result_doc.scala.html @@ -169,7 +169,7 @@ if !(doc\"spatial").asOpt[JsValue].isDefined || !Seq(10, 12, 14, 24, 28, 35, 36, 37, 52, 54, 72, 74, 96, 97).find((i: Int) => subjectId.endsWith("#N"+i)); subjectLabel <- (subject \ "label").asOpt[String]; notation = subjectId.split("#").last.substring(1)) { - @breadcrumb(if(searchParam == "nwbibsubject"){subjectId}else{""},if(searchParam == "nwbibspatial"){subjectId}else{""}) + @breadcrumb(if(searchParam == "rpbsubject"){subjectId}else{""},if(searchParam == "rpbspatial"){subjectId}else{""}) |
    } } @@ -183,7 +183,7 @@ @for(v <- vs; id = (v\"id").asOpt[String].getOrElse("--"); if(!Seq(35, 37, 96, 97).find((i: Int) => id.endsWith("#N"+i)))) { @breadcrumb("",id) @if(spatial.isDefined){ - | + | } else { @@ -197,7 +197,7 @@ Raumsystematik } - @subject_source_links(source, "nwbibspatial")} + @subject_source_links(source, "rpbspatial")} } @@ -207,7 +207,7 @@ @if((doc \ "subject").asOpt[Seq[JsValue]].getOrElse(Seq()).toString.contains(source)) { Sachsystematik - @subject_source_links(source, "nwbibsubject") + @subject_source_links(source, "rpbsubject") } } diff --git a/app/views/tags/schema_org.scala.html b/app/views/tags/schema_org.scala.html index a8ccdda0..3e69f5ee 100644 --- a/app/views/tags/schema_org.scala.html +++ b/app/views/tags/schema_org.scala.html @@ -81,8 +81,8 @@ "issn" -> "issn", "issued" -> "datePublished", "language" -> "inLanguage", - "nwbibsubject" -> "about", - "nwbibspatial" -> "about", + "rpbsubject" -> "about", + "rpbspatial" -> "about", "owner" -> "seller", "translator" -> "translator" )).mkString(",\n\t")) diff --git a/app/views/tags/search_advanced.scala.html b/app/views/tags/search_advanced.scala.html index a6359441..fd33c7bf 100644 --- a/app/views/tags/search_advanced.scala.html +++ b/app/views/tags/search_advanced.scala.html @@ -1,6 +1,6 @@ @* Copyright 2014 Fabian Steeg, hbz. Licensed under the GPLv2 *@ -@(label:String, q:String = "", person: String = "", name: String = "", subject: String = "", nwbibspatial: String = "", nwbibsubject: String = "", id: String = "", publisher: String = "", issued: String = "", sortParam: String = "", word: String = "", corporation: String = "") +@(label:String, q:String = "", person: String = "", name: String = "", subject: String = "", rpbspatial: String = "", rpbsubject: String = "", id: String = "", publisher: String = "", issued: String = "", sortParam: String = "", word: String = "", corporation: String = "") @import scala.collection.immutable.TreeMap @import controllers.nwbib.Lobid diff --git a/conf/nwbib.conf b/conf/nwbib.conf index f89a8c52..f3a5334e 100644 --- a/conf/nwbib.conf +++ b/conf/nwbib.conf @@ -9,16 +9,16 @@ nwbib.filter="inCollection.id:\"http://lobid.org/resources/HT013494180#!\"" index { es.port.http=8010 es.port.tcp=8110 - data.nwbibsubject="https://raw.githubusercontent.com/hbz/lobid-vocabs/master/rpb/rpb.ttl" + data.rpbsubject="https://raw.githubusercontent.com/hbz/lobid-vocabs/master/rpb/rpb.ttl" # Setup for production, use static file: - data.nwbibspatial="https://raw.githubusercontent.com/hbz/lobid-vocabs/master/rpb/rpb-spatial.ttl" - nwbibspatial.enrich=false + data.rpbspatial="https://raw.githubusercontent.com/hbz/lobid-vocabs/master/rpb/rpb-spatial.ttl" + rpbspatial.enrich=false # Setup for tests and to regenerate full SKOS file from base SKOS file and Wikidata: # (rm -rf ./data/ ; rm conf/wikidata.json ; sbt "runMain SpatialToSkos" ; cp conf/nwbib-spatial.ttl ../lobid-vocabs/nwbib/) # When testing local changes to nwbib-spatial-conf.ttl, point to it like this: - # data.nwbibspatial="file:////git/nwbib/conf/nwbib-spatial-conf.ttl" - # data.nwbibspatial="https://raw.githubusercontent.com/hbz/nwbib/master/conf/nwbib-spatial-conf.ttl" - # nwbibspatial.enrich=true + # data.rpbspatial="file:////git/nwbib/conf/nwbib-spatial-conf.ttl" + # data.rpbspatial="https://raw.githubusercontent.com/hbz/nwbib/master/conf/nwbib-spatial-conf.ttl" + # rpbspatial.enrich=true } type.labels={ diff --git a/conf/nwbib.routes b/conf/nwbib.routes index d4fdd815..8645145f 100644 --- a/conf/nwbib.routes +++ b/conf/nwbib.routes @@ -10,7 +10,7 @@ GET / controllers.nwbib.Application.index(map?="kreise") GET /info controllers.nwbib.Application.info() GET /advanced controllers.nwbib.Application.advanced() GET /topics controllers.nwbib.Application.topics(q?="") -GET /search controllers.nwbib.Application.search(q?="", person?="", name?="", subject?="", id?="", publisher?="", issued?="", medium ?= "", nwbibspatial ?= "", nwbibsubject ?= "", from:Int?=0, size:Int?=25, owner?="", t?="", sort ?= "newest", details:Boolean?=false, location ?= "", word?="", corporation?="", raw?="", format?="html") +GET /search controllers.nwbib.Application.search(q?="", person?="", name?="", subject?="", id?="", publisher?="", issued?="", medium ?= "", rpbspatial ?= "", rpbsubject ?= "", from:Int?=0, size:Int?=25, owner?="", t?="", sort ?= "newest", details:Boolean?=false, location ?= "", word?="", corporation?="", raw?="", format?="html") GET /register controllers.nwbib.Application.register(t?="") GET /classification controllers.nwbib.Application.classification(t?="") GET /subjects controllers.nwbib.Application.subjects(t?="classification") @@ -18,7 +18,7 @@ GET /subjects.ttl controllers.nwbib.Application.subjectsTtl() GET /spatial controllers.nwbib.Application.spatial(t?="classification") GET /spatial.ttl controllers.nwbib.Application.spatialTtl() GET /journals controllers.nwbib.Application.journals() -GET /facets controllers.nwbib.Application.facets(q,person?="", name?="", subject?="", id?="", publisher?="", issued?="", medium ?= "", nwbibspatial ?= "", nwbibsubject ?= "", from:Int,size:Int,owner,t,field,sort, location?="", word?="", corporation?="", raw?="") +GET /facets controllers.nwbib.Application.facets(q,person?="", name?="", subject?="", id?="", publisher?="", issued?="", medium ?= "", rpbspatial ?= "", rpbsubject ?= "", from:Int,size:Int,owner,t,field,sort, location?="", word?="", corporation?="", raw?="") GET /stars controllers.nwbib.Application.showStars(format?="", ids?="") GET /stars/clear controllers.nwbib.Application.clearStars(ids ?= "") @@ -30,4 +30,5 @@ DELETE /stars/:id controllers.nwbib.Application.unstar(id) GET /assets/*file controllers.Assets.at(path="/public", file) GET /robots.txt controllers.Assets.at(path="/public",file="robots.txt") -GET /:id controllers.nwbib.Application.show(id, format ?= "") +GET /o:id controllers.nwbib.Application.searchSpatial(id, from:Int?=0, size:Int?=25, format?="html") +GET /:id controllers.nwbib.Application.show(id, format ?= "") \ No newline at end of file diff --git a/test/tests/ApplicationTest.java b/test/tests/ApplicationTest.java index 2ce961e1..f856044e 100644 --- a/test/tests/ApplicationTest.java +++ b/test/tests/ApplicationTest.java @@ -70,24 +70,24 @@ public void typeSelectionEditedVolume() { } @Test - public void classificationNwbibsubject() + public void classificationrpbsubject() throws MalformedURLException, IOException { - List nwbibsubjects = Classification - .toJsonLd(new URL(CONFIG.getString("index.data.nwbibsubject"))); - nwbibsubjects.forEach(System.out::println); - assertThat(nwbibsubjects.size()).isGreaterThan(1000); - assertThat(nwbibsubjects.toString()).contains("Landeskunde allgemein") + List rpbsubjects = Classification + .toJsonLd(new URL(CONFIG.getString("index.data.rpbsubject"))); + rpbsubjects.forEach(System.out::println); + assertThat(rpbsubjects.size()).isGreaterThan(1000); + assertThat(rpbsubjects.toString()).contains("Landeskunde allgemein") .contains("Landesbeschreibung").contains("Hydroökologie"); } @Test - public void classificationNwbibspatial() + public void classificationrpbspatial() throws MalformedURLException, IOException { - List nwbibspatials = Classification - .toJsonLd(new URL(CONFIG.getString("index.data.nwbibspatial"))); - nwbibspatials.forEach(System.out::println); - assertThat(nwbibspatials.size()).isGreaterThan(5); - assertThat(nwbibspatials.toString()).contains("Rheinland-Pfalz") + List rpbspatials = Classification + .toJsonLd(new URL(CONFIG.getString("index.data.rpbspatial"))); + rpbspatials.forEach(System.out::println); + assertThat(rpbspatials.size()).isGreaterThan(5); + assertThat(rpbspatials.toString()).contains("Rheinland-Pfalz") .contains("Landschaften").contains("Verbandsgemeinden"); } diff --git a/test/tests/ExternalIntegrationTest.java b/test/tests/ExternalIntegrationTest.java index 5171de6e..3016bba0 100644 --- a/test/tests/ExternalIntegrationTest.java +++ b/test/tests/ExternalIntegrationTest.java @@ -111,7 +111,7 @@ public void reverseGeoLookup() { } @Test - public void classificationNwbibsubjectHierarchy() { + public void classificationrpbsubjectHierarchy() { running(testServer(3333), () -> { Pair, Map>> topAndSub = Classification.Type.from("Sachsystematik").buildHierarchy(); @@ -127,7 +127,7 @@ public void classificationNwbibsubjectHierarchy() { } @Test - public void classificationNwbibsubjectRegister() { + public void classificationrpbsubjectRegister() { running(testServer(3333), () -> { JsonNode register = Classification.Type.from("Sachsystematik").buildRegister(); diff --git a/test/tests/InternalIntegrationTest.java b/test/tests/InternalIntegrationTest.java index a54695ec..a29c9200 100644 --- a/test/tests/InternalIntegrationTest.java +++ b/test/tests/InternalIntegrationTest.java @@ -88,7 +88,7 @@ public void testSubjectLabelAndNwbibQuery() { running(testServer(3333), () -> { assertThat(hitsFor("subject=bocholt")).as("less-filtered result count") .isGreaterThan( - hitsFor("subject=bocholt&nwbibsubject=" + nwbib("N240000"))); + hitsFor("subject=bocholt&rpbsubject=" + nwbib("N240000"))); }); } @@ -97,7 +97,7 @@ public void testSubjectUriAndNwbibQuery() { running(testServer(3333), () -> { assertThat(hitsFor("subject=" + gnd("4001307-8"))) .as("less-filtered result count").isGreaterThan(hitsFor("subject=" - + gnd("4001307-8") + "&nwbibsubject=" + nwbib("N702000"))); + + gnd("4001307-8") + "&rpbsubject=" + nwbib("N702000"))); }); } @@ -176,7 +176,7 @@ public void sizeRequest() { } @Test - public void sizeRequestNwbibspatial() { + public void sizeRequestrpbspatial() { running(testServer(3333), () -> { Long hits = Lobid.getTotalHitsNwbibClassification("https://nwbib.de/spatial#N20");