Commit 01e709d2 authored by Jonas Waeber's avatar Jonas Waeber
Browse files

Add display labels for re-use statement facet values.

parent e04dcc52
......@@ -32,6 +32,7 @@ class App {
SettingsProps.documentTypeLabelsPath,
SettingsProps.accessTermLabelsPath,
SettingsProps.reuseStatementLabelsPath,
SettingsProps.reuseStatementDisplayLabelPath,
SettingsProps.mediaUrl,
SettingsProps.elasticHost,
SettingsProps.elasticPort,
......
......@@ -17,10 +17,6 @@
*/
package ch.memobase
import ch.memobase.rdf.NS
import ch.memobase.rdf.RICO
import com.beust.klaxon.JsonObject
import org.apache.logging.log4j.LogManager
import ch.memobase.builders.AgentContainerBuilder
import ch.memobase.builders.DateContainerBuilder
import ch.memobase.builders.EnrichedFacetContainerBuilder
......@@ -31,20 +27,23 @@ import ch.memobase.builders.PlaceFacetBuilder
import ch.memobase.builders.SuggestContainerBuilder
import ch.memobase.helpers.AspectRatio
import ch.memobase.helpers.Constants
import ch.memobase.helpers.Constants.IdentifierType
import ch.memobase.helpers.ElasticSearchWrapper
import ch.memobase.helpers.Extract
import ch.memobase.helpers.FacetBuildHelpers
import ch.memobase.helpers.Filter
import ch.memobase.helpers.InstitutionAndRecordSetExtractionHelper.extractInstitution
import ch.memobase.helpers.InstitutionAndRecordSetExtractionHelper.extractRecordSet
import ch.memobase.helpers.JsonUtility
import ch.memobase.helpers.TranslationMappers
import ch.memobase.model.DocumentsSearchDoc
import ch.memobase.helpers.Constants.IdentifierType
import ch.memobase.model.EnrichedDigitalMetadata
import ch.memobase.model.FacetContainer
import ch.memobase.model.LanguageContainer
import ch.memobase.model.Schema
import ch.memobase.rdf.NS
import ch.memobase.rdf.RICO
import com.beust.klaxon.JsonObject
import org.apache.logging.log4j.LogManager
class DocumentsSearchDocBuilder(
private val translationMappers: TranslationMappers,
......@@ -55,14 +54,18 @@ class DocumentsSearchDocBuilder(
fun transform(key: String, input: Map<String, JsonObject>): Schema {
val record = input[JsonUtility.recordTag] ?:
throw InvalidInputException("No record defined in the message $key.")
val record =
input[JsonUtility.recordTag] ?: throw InvalidInputException("No record defined in the message $key.")
val digitalObject =
input.values.firstOrNull { it[Constants.atType] == RICO.Instantiation.uri
&& it[RICO.type.localName] == RICO.Types.Instantiation.digitalObject }
input.values.firstOrNull {
it[Constants.atType] == RICO.Instantiation.uri
&& it[RICO.type.localName] == RICO.Types.Instantiation.digitalObject
}
val physicalObject =
input.values.firstOrNull { it[Constants.atType] == RICO.Instantiation.uri
&& it[RICO.type.localName] == RICO.Types.Instantiation.physicalObject }
input.values.firstOrNull {
it[Constants.atType] == RICO.Instantiation.uri
&& it[RICO.type.localName] == RICO.Types.Instantiation.physicalObject
}
val keywordIds = Extract.identifiers(record[Constants.hasSubject])
val genreIds = Extract.identifiers(record[Constants.hasGenre])
......@@ -350,9 +353,18 @@ class DocumentsSearchDocBuilder(
.flatMap { it.toList() },
callNumber = Extract.typedEntityByType(physicalIdentifiers, "type", "callNumber", "identifier")
.flatMap { it.toList() },
accessInstitution = elasticSearchWrapper.getExtraInstitutionsFromRecordSet(recordSetId, "accessInstitution"),
originalInstitution = elasticSearchWrapper.getExtraInstitutionsFromRecordSet(recordSetId, "originalInstitution"),
masterInstitution = elasticSearchWrapper.getExtraInstitutionsFromRecordSet(recordSetId, "masterInstitution"),
accessInstitution = elasticSearchWrapper.getExtraInstitutionsFromRecordSet(
recordSetId,
"accessInstitution"
),
originalInstitution = elasticSearchWrapper.getExtraInstitutionsFromRecordSet(
recordSetId,
"originalInstitution"
),
masterInstitution = elasticSearchWrapper.getExtraInstitutionsFromRecordSet(
recordSetId,
"masterInstitution"
),
published = (record[Constants.isPublished] as Boolean?) ?: false,
suggest = suggestContainerBuilder.build()[0]
......
......@@ -17,6 +17,9 @@
*/
package ch.memobase
import ch.memobase.helpers.Constants.SettingsProps
import ch.memobase.helpers.ElasticSearchWrapper
import ch.memobase.helpers.TranslationMappers
import ch.memobase.settings.SettingsLoader
import java.net.ConnectException
import java.net.SocketTimeoutException
......@@ -30,9 +33,6 @@ import org.elasticsearch.client.RequestOptions
import org.elasticsearch.client.RestClient
import org.elasticsearch.client.RestHighLevelClient
import org.elasticsearch.client.indices.GetIndexRequest
import ch.memobase.helpers.ElasticSearchWrapper
import ch.memobase.helpers.Constants.SettingsProps
import ch.memobase.helpers.TranslationMappers
class Service(settings: SettingsLoader) {
private val log = LogManager.getLogger("SearchDocService")
......@@ -42,8 +42,15 @@ class Service(settings: SettingsLoader) {
private val accessTermPath = appSettings.getProperty(SettingsProps.accessTermLabelsPath)
private val institutionMapperPath = appSettings.getProperty(SettingsProps.institutionTypeLabelsPath)
private val reuseStatementPath = appSettings.getProperty(SettingsProps.reuseStatementLabelsPath)
private val reuseStatementDisplayLabelPath = appSettings.getProperty(SettingsProps.reuseStatementDisplayLabelPath)
private val translationMappers =
TranslationMappers(institutionMapperPath, documentMapperPath, accessTermPath, reuseStatementPath)
TranslationMappers(
institutionMapperPath,
documentMapperPath,
accessTermPath,
reuseStatementPath,
reuseStatementDisplayLabelPath
)
private val host = appSettings.getProperty(SettingsProps.elasticHost)
private val port = appSettings.getProperty(SettingsProps.elasticPort).toInt()
......@@ -71,8 +78,10 @@ class Service(settings: SettingsLoader) {
if (!indexExists && !aliasExists && !institutionIndexExists && !institutionIndexAliasExists
&& !recordSetIndexExists && !recordSetIndexAliasExists
) {
log.error("Could not find at least one index name or alias defined " +
"in the configuration: $documentsIndex, $institutionIndex, $recordSetIndex.")
log.error(
"Could not find at least one index name or alias defined " +
"in the configuration: $documentsIndex, $institutionIndex, $recordSetIndex."
)
exitProcess(1)
} else {
log.info("Connected to $documentsIndex, $institutionIndex, $recordSetIndex. Ready to query.")
......
......@@ -26,6 +26,7 @@ object Constants {
const val updateTopic = "updateTopic"
const val accessTermLabelsPath = "accessTermLabelsPath"
const val reuseStatementLabelsPath = "reuseStatementLabelsPath"
const val reuseStatementDisplayLabelPath = "reuseStatementDisplayLabelsPath"
const val documentTypeLabelsPath = "documentTypeLabelsPath"
const val mediaUrl = "media.url"
const val institutionTypeLabelsPath = "institutionTypeLabelsPath"
......
......@@ -17,9 +17,9 @@
*/
package ch.memobase.helpers
import com.github.doyaaaaaken.kotlincsv.dsl.csvReader
import ch.memobase.model.FacetContainer
import ch.memobase.model.LanguageContainer
import com.github.doyaaaaaken.kotlincsv.dsl.csvReader
import java.io.File
object LoadFile {
......@@ -34,4 +34,14 @@ object LoadFile {
}
return labelsMap
}
fun readLabelFileLanguageContainer(path: String): Map<String, LanguageContainer> {
val labelList = csv.readAll(File(path))
val labelsMap = mutableMapOf<String, LanguageContainer>()
for (row in labelList.listIterator(1)) {
labelsMap[row[0]] = LanguageContainer(listOf(row[1].trim()), listOf(row[2].trim()), listOf(row[3].trim()), emptyList())
}
return labelsMap
}
}
\ No newline at end of file
......@@ -17,18 +17,22 @@
*/
package ch.memobase.helpers
import ch.memobase.model.EnrichedFacetContainer
import ch.memobase.model.FacetContainer
import ch.memobase.model.LanguageContainer
class TranslationMappers(
institutionTypeLabelsPath: String,
documentTypePath: String,
accessTermPath: String,
reuseStatementPath: String
reuseStatementPath: String,
reuseStatementDisplayLabelPath: String
) {
private val documentTypeLabels = LoadFile.readLabelFile(documentTypePath)
private val accessTermLabels = LoadFile.readLabelFile(accessTermPath)
private val institutionTypeLabels = LoadFile.readLabelFile(institutionTypeLabelsPath)
private val reuseStatementLabels = LoadFile.readLabelFile(reuseStatementPath)
private val reuseStatementLabels = LoadFile.readLabelFileLanguageContainer(reuseStatementPath)
private val reuseStatementDisplayLabels = LoadFile.readLabelFileLanguageContainer(reuseStatementDisplayLabelPath)
fun getDocumentType(code: String): FacetContainer {
return documentTypeLabels[code] ?: FacetContainer.DEFAULT
......@@ -43,7 +47,11 @@ class TranslationMappers(
return institutionTypeLabels[q] ?: FacetContainer.DEFAULT
}
fun getReuseStatement(uri: String): FacetContainer {
return reuseStatementLabels[uri] ?: FacetContainer.DEFAULT
fun getReuseStatement(uri: String): EnrichedFacetContainer {
return EnrichedFacetContainer(
reuseStatementDisplayLabels[uri] ?: LanguageContainer.EMPTY,
reuseStatementLabels[uri] ?: LanguageContainer.EMPTY,
uri
)
}
}
\ No newline at end of file
......@@ -91,7 +91,7 @@ data class DocumentsSearchDoc(
val mediaLocation: String?,
val accessDigital: List<FacetContainer>,
val usageDigital: List<String>,
val usageDigitalGroup: List<FacetContainer>,
val usageDigitalGroup: List<EnrichedFacetContainer>,
val digitalObjectNote: List<LanguageContainer>,
val usageConditionsDigital: List<LanguageContainer>,
......
......@@ -11,6 +11,7 @@ app:
documentTypeLabelsPath: "/configs/document_types/labels.csv"
accessTermLabelsPath: "/configs/access_terms/labels.csv"
reuseStatementLabelsPath: "/configs/reuse_statements/labels.csv"
reuseStatementDisplayLabelsPath: "/configs/reuse_statements/displayLabels.csv"
updateTopic: ${UPDATE_TOPIC:?system}
reportingStepName: ${REPORTING_STEP_NAME:?system}
kafka:
......
/*
* search-doc-service
* Copyright (C) 2020-2021 Memoriav
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package ch.memobase
import ch.memobase.model.EnrichedFacetContainer
import ch.memobase.model.LanguageContainer
import ch.memobase.model.LanguageContainer.Companion
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
import java.io.StringWriter
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TestJsonOutputModels {
private val json = ObjectMapper().registerKotlinModule().writer()
@Test
fun `test empty enriched facet container`() {
val empty = EnrichedFacetContainer(
Companion.EMPTY,
LanguageContainer.EMPTY,
null
)
val stringWriter = StringWriter()
json.writeValue(stringWriter, empty)
assertThat(stringWriter.toString())
.isEqualTo("{\"displayLabel\":{\"de\":[],\"fr\":[],\"it\":[],\"un\":[]},\"name\":{\"de\":[],\"fr\":[],\"it\":[],\"un\":[]}}")
}
}
\ No newline at end of file
......@@ -18,7 +18,6 @@
package ch.memobase
import ch.memobase.helpers.TranslationMappers
import io.mockk.mockk
import java.net.ConnectException
import java.net.SocketTimeoutException
import kotlin.system.exitProcess
......@@ -37,6 +36,7 @@ object TestUtilities {
private const val accessTermPath = "src/test/resources/configs/access-term-labels.csv"
private const val documentTypePath = "src/test/resources/configs/document-type-labels.csv"
private const val reuseStatementPath = "src/test/resources/configs/reuse-statement-labels.csv"
private const val reuseStatementDisplayLabelsPath = "src/test/resources/configs/reuse-statement-displayLabels.csv"
const val currentDocumentsIndex = "documents-v17"
......@@ -44,7 +44,13 @@ object TestUtilities {
const val mediaUrl = "https://media.memobase.k8s.unibas.ch/memo/"
val translationMappers =
TranslationMappers(institutionTypePath, documentTypePath, accessTermPath, reuseStatementPath)
TranslationMappers(
institutionTypePath,
documentTypePath,
accessTermPath,
reuseStatementPath,
reuseStatementDisplayLabelsPath
)
fun connectToElasticSearch(host: String, port: Int, documentsIndex: String): RestHighLevelClient {
return try {
......
code,de,fr,it
"http://creativecommons.org/publicdomain/mark/1.0/","Public Domain Mark 1.0","Marque du Domaine Public 1.0","Marchio di pubblico dominio 1.0"
"http://rightsstatements.org/vocab/NoC-NC/1.0/","Kein Urheberrechtsschutz - nur nicht kommerzielle Nutzung erlaubt","Absence de protection par le droit d'auteur - Utilisation à des fins uniquement non commerciales","No copyright - Solo uso non commerciale"
"http://rightsstatements.org/vocab/NoC-OKLR/1.0/","Kein Urheberrechtsschutz - Andere rechtliche Beschränkungen","Absence de protection par le droit d'auteur - Autres restrictions juridiques connues","No Copyright - Altre restrizioni legali note"
"http://creativecommons.org/publicdomain/zero/1.0/","Public Domain Dedication","Transfert dans le Domaine Public","Donazione al Pubblico Dominio"
"http://creativecommons.org/licenses/by/4.0/","Namensnennung 4.0 International (CC BY 4.0)","Attribution 4.0 International (CC BY 4.0)","Attribuzione 4.0 Internazionale (CC BY 4.0)"
"http://creativecommons.org/licenses/by-sa/4.0/","Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-SA 4.0)","Attribution - Partage dans les Mêmes Conditions 4.0 International (CC BY-SA 4.0)","Attribuzione - Condividi allo stesso modo 4.0 Internazionale (CC BY-SA 4.0)"
"http://creativecommons.org/licenses/by-nd/4.0/","Namensnennung - Keine Bearbeitungen 4.0 International (CC BY-ND 4.0)","Attribution - Pas de Modification 4.0 International (CC BY-ND 4.0)","Attribuzione - Non opere derivate 4.0 Internazionale (CC BY-ND 4.0)"
"http://creativecommons.org/licenses/by-nc/4.0/","Namensnennung-Nicht kommerziell 4.0 International (CC BY-NC 4.0)","Attribution - Pas d’Utilisation Commerciale 4.0 International (CC BY-NC 4.0)","Attribuzione - Non commerciale 4.0 Internazionale (CC BY-NC 4.0)"
"http://creativecommons.org/licenses/by-nc-sa/4.0/","Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-NC-SA 4.0)","Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International (CC BY-NC-SA 4.0)","Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale (CC BY-NC-SA 4.0)"
"http://creativecommons.org/licenses/by-nc-nd/4.0/","Namensnennung - Nicht kommerziell - Keine Bearbeitungen 4.0 International (CC BY-NC-ND 4.0)","Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International (CC BY-NC-ND 4.0)","Attribuzione - Non commerciale - Non opere derivate 4.0 Internazionale (CC BY-NC-ND 4.0)"
"http://rightsstatements.org/vocab/InC/1.0/","Urheberrechtsschutz","Protégé par le droit d'auteur","In Copyright"
"http://rightsstatements.org/vocab/InC-EDU/1.0/","Urheberrechtsschutz - Nutzung zu Bildungszwecken erlaubt","Protégé par le droit d'auteur - Utilisation à des fins pédagogiques autorisée","In Copyright - Uso educativo consentito"
"http://rightsstatements.org/vocab/InC-RUU/1.0/","Urheberrechtsschutz - Rechteinhaber nicht auffindbar oder identifizierbar","Protégé par le droit d'auteur - Titulaire(s) des droits impossible(s) à localiser ou à identifier","In Copyright - Titolari dei diritti non rintracciabili o non identificabili"
"http://rightsstatements.org/vocab/CNE/1.0/","Urheberrechtsschutz nicht bewertet","Droit d'auteur non évalué","Copyright non esaminato"
"https://opendata.swiss/de/terms-of-use","Weiternutzbar unter Bedingungen (OGD)","Réutilisation sous conditions (OGD)","Riutilizzazione con condizioni (OGD)"
\ No newline at end of file
code,de,fr,it
"http://creativecommons.org/publicdomain/mark/1.0/",Weiternutzbar ohne Bedingungen,,
"http://rightsstatements.org/vocab/NoC-NC/1.0/",Weiternutzbar unter Bedingungen (CC),,
"http://rightsstatements.org/vocab/NoC-OKLR/1.0/",Weiternutzbar unter Bedingungen (CC),,
"http://creativecommons.org/publicdomain/zero/1.0/",Weiternutzbar ohne Bedingungen,,
"http://creativecommons.org/licenses/by/4.0/",Weiternutzbar unter Bedingungen (CC),,
"http://creativecommons.org/licenses/by-sa/4.0/",Weiternutzbar unter Bedingungen (CC),,
"http://creativecommons.org/licenses/by-nd/4.0/",Weiternutzbar unter Bedingungen (CC),,
"http://creativecommons.org/licenses/by-nc/4.0/",Weiternutzbar unter Bedingungen (CC),,
"http://creativecommons.org/licenses/by-nc-sa/4.0/",Weiternutzbar unter Bedingungen (CC),,
"http://creativecommons.org/licenses/by-nc-nd/4.0/",Weiternutzbar unter Bedingungen (CC),,
"http://rightsstatements.org/vocab/InC/1.0/",Weiternutzbar unter Bedingungen (Copyright),,
"http://rightsstatements.org/vocab/InC-EDU/1.0/",Weiternutzbar unter Bedingungen (Copyright),,
"https://rightsstatements.org/page/InC-RUU/1.0/",Unklar (Rechteinhaber nicht bekannt),,
"http://rightsstatements.org/vocab/CNE/1.0/",Unklar (Copyright nicht bekannt),,
\ No newline at end of file
"http://creativecommons.org/publicdomain/mark/1.0/",Weiternutzbar ohne Bedingungen,Réutilisation sans conditions,Riutilizzazione senza condizioni
"http://rightsstatements.org/vocab/NoC-NC/1.0/",Weiternutzbar unter Bedingungen (CC),Réutilisation sous conditions (CC),Riutilizzazione con condizioni (CC)
"http://rightsstatements.org/vocab/NoC-OKLR/1.0/",Weiternutzbar unter Bedingungen (CC),Réutilisation sous conditions (CC),Riutilizzazione con condizioni (CC)
"http://creativecommons.org/publicdomain/zero/1.0/",Weiternutzbar ohne Bedingungen,Réutilisation sans conditions,Riutilizzazione senza condizioni
"http://creativecommons.org/licenses/by/4.0/",Weiternutzbar unter Bedingungen (CC),Réutilisation sous conditions (CC),Riutilizzazione con condizioni (CC)
"http://creativecommons.org/licenses/by-sa/4.0/",Weiternutzbar unter Bedingungen (CC),Réutilisation sous conditions (CC),Riutilizzazione con condizioni (CC)
"http://creativecommons.org/licenses/by-nd/4.0/",Weiternutzbar unter Bedingungen (CC),Réutilisation sous conditions (CC),Riutilizzazione con condizioni (CC)
"http://creativecommons.org/licenses/by-nc/4.0/",Weiternutzbar unter Bedingungen (CC),Réutilisation sous conditions (CC),Riutilizzazione con condizioni (CC)
"http://creativecommons.org/licenses/by-nc-sa/4.0/",Weiternutzbar unter Bedingungen (CC),Réutilisation sous conditions (CC),Riutilizzazione con condizioni (CC)
"http://creativecommons.org/licenses/by-nc-nd/4.0/",Weiternutzbar unter Bedingungen (CC),Réutilisation sous conditions (CC),Riutilizzazione con condizioni (CC)
"http://rightsstatements.org/vocab/InC/1.0/",Weiternutzbar unter Bedingungen (Copyright),Réutilisation sous conditions (Copyright),Riutilizzazione con condizioni (Copyright)
"http://rightsstatements.org/vocab/InC-EDU/1.0/",Weiternutzbar unter Bedingungen (Copyright),Réutilisation sous conditions (Copyright),Riutilizzazione con condizioni (Copyright)
"http://rightsstatements.org/vocab/InC-RUU/1.0/",Unklar (Rechteinhaber nicht bekannt),Inconnu (Détenteur des droits inconnu),Non chiaro (Detentore dei diritti non conosciuto)
"http://rightsstatements.org/vocab/CNE/1.0/",Unklar (Copyright nicht bekannt),Inconnu (Copyright inconnu),Non chiaro (Copyright non conosciuto)
"https://opendata.swiss/de/terms-of-use","Weiternutzbar unter Bedingungen (OGD)","Réutilisation sous conditions (OGD)","Riutilizzazione con condizioni (OGD)"
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["Diaserie zum Thema Säuglingspflege; \"Ablesen des Thermometers.\" - Krankenschwester am Fieber messen bei einem Säugling; Deutsches Hygiene-Museum, Dresden; um 1930"]}],"type":{"name":{"de":["Fotografie"],"fr":["Photographie"],"it":["Fotografia"],"un":[]},"filter":"Foto"},"sourceID":"Sozarch_F_5146-Gb-40-042","oldMemobaseId":"SozArch-Sozarch_F_5146-Gb-40-042","rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Schweizerisches Sozialarchiv"]}],"sameAs":["http://www.bild-video-ton.ch/bestand/objekt/Sozarch_F_5146-Gb-40-042"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":["Glaspositiv"]},"name":{"de":["Fotoplatte"],"fr":["plaque photographique"],"it":["lastra fotografica"],"un":[]}}],"language":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":["ger"]},"name":{"de":["Deutsch"],"fr":["allemand"],"it":["tedesco"],"un":[]},"type":"content"}],"keywords":{"de":[],"fr":[],"it":[],"un":["soziale Fragen","Altersgliederung","Bevölkerung","Bevölkerungsaufbau","frühe Kindheit; soziale Fragen","Gesundheit","Gesundheitsförderung","Gesundheitspolitik"]},"personsFacet":{},"agentCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Unbekannt"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]}}],"placeFacet":{},"temporal":[{"date":"1921-1930 / 1931-1940"}],"dateCreated":[{"date":"um 1930"}],"institution":[{"name":{"de":["soz"],"fr":["soz"],"it":["soz"],"un":["soz"]},"filter":"soz","facet":["soz"]}],"recordSet":{"name":{"de":["soz-004"],"fr":["soz-004"],"it":["soz-004"],"un":["soz-004"]},"facet":["soz-004"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/soz-004-Sozarch_F_5146-Gb-40-042-1","mediaLocation":"local","accessDigital":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"}],"usageDigital":["http://rightsstatements.org/vocab/CNE/1.0/"],"usageDigitalGroup":[{"name":{"de":["Unklar (Copyright nicht bekannt)"],"fr":[""],"it":[""],"un":[]},"filter":"http://rightsstatements.org/vocab/CNE/1.0/"}],"digital":{},"callNumber":["Sozarch_F_5146-Gb-40-042"],"accessPhysical":[{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"usagePhysical":["http://rightsstatements.org/vocab/CNE/1.0/"],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["s-w"]}],"access":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"},{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"published":false,"suggest":{"title":["Diaserie zum Thema Säuglingspflege; \"Ablesen des Thermometers.\" - Krankenschwester am Fieber messen bei einem Säugling; Deutsches Hygiene-Museum, Dresden; um 1930"],"keywords":["soziale Fragen","Altersgliederung","Bevölkerung","Bevölkerungsaufbau","Gesundheit","frühe Kindheit; soziale Fragen","Gesundheitsförderung","Gesundheitspolitik"]},"id":"fad-001-DON3196"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["Diaserie zum Thema Säuglingspflege; \"Ablesen des Thermometers.\" - Krankenschwester am Fieber messen bei einem Säugling; Deutsches Hygiene-Museum, Dresden; um 1930"]}],"type":{"name":{"de":["Fotografie"],"fr":["Photographie"],"it":["Fotografia"],"un":[]},"filter":"Foto"},"sourceID":"Sozarch_F_5146-Gb-40-042","oldMemobaseId":"SozArch-Sozarch_F_5146-Gb-40-042","rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Schweizerisches Sozialarchiv"]}],"sameAs":["http://www.bild-video-ton.ch/bestand/objekt/Sozarch_F_5146-Gb-40-042"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":["Glaspositiv"]},"name":{"de":["Fotoplatte"],"fr":["plaque photographique"],"it":["lastra fotografica"],"un":[]}}],"language":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":["ger"]},"name":{"de":["Deutsch"],"fr":["allemand"],"it":["tedesco"],"un":[]},"type":"content"}],"keywords":{"de":[],"fr":[],"it":[],"un":["soziale Fragen","Altersgliederung","Bevölkerung","Bevölkerungsaufbau","frühe Kindheit; soziale Fragen","Gesundheit","Gesundheitsförderung","Gesundheitspolitik"]},"personsFacet":{},"agentCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Unbekannt"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]}}],"placeFacet":{},"temporal":[{"date":"1921-1930 / 1931-1940"}],"dateCreated":[{"date":"um 1930"}],"institution":[{"name":{"de":["soz"],"fr":["soz"],"it":["soz"],"un":["soz"]},"filter":"soz","facet":["soz"]}],"recordSet":{"name":{"de":["soz-004"],"fr":["soz-004"],"it":["soz-004"],"un":["soz-004"]},"facet":["soz-004"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/soz-004-Sozarch_F_5146-Gb-40-042-1","mediaLocation":"local","accessDigital":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"}],"usageDigital":["http://rightsstatements.org/vocab/CNE/1.0/"],"usageDigitalGroup":[{"displayLabel":{"de":["Urheberrechtsschutz nicht bewertet"],"fr":["Droit d'auteur non évalué"],"it":["Copyright non esaminato"],"un":[]},"name":{"de":["Unklar (Copyright nicht bekannt)"],"fr":["Inconnu (Copyright inconnu)"],"it":["Non chiaro (Copyright non conosciuto)"],"un":[]},"type":"http://rightsstatements.org/vocab/CNE/1.0/"}],"digital":{},"callNumber":["Sozarch_F_5146-Gb-40-042"],"accessPhysical":[{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"usagePhysical":["http://rightsstatements.org/vocab/CNE/1.0/"],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["s-w"]}],"access":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"},{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"published":false,"suggest":{"title":["Diaserie zum Thema Säuglingspflege; \"Ablesen des Thermometers.\" - Krankenschwester am Fieber messen bei einem Säugling; Deutsches Hygiene-Museum, Dresden; um 1930"],"keywords":["soziale Fragen","Altersgliederung","Bevölkerung","Bevölkerungsaufbau","Gesundheit","frühe Kindheit; soziale Fragen","Gesundheitsförderung","Gesundheitspolitik"]},"id":"fad-001-DON3196"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["\"Auf der Alp Gitschenen - Projektleiter, Gemeindebehörden, Journalisten, Pro Juventute Mitarbeiter\"; 07.08.1974"]}],"type":{"name":{"de":["Fotografie"],"fr":["Photographie"],"it":["Fotografia"],"un":[]},"filter":"Foto"},"sourceID":"Sozarch_F_5146-Fc-0253","oldMemobaseId":"SozArch-Sozarch_F_5146-Fc-0253","rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Schweizerisches Sozialarchiv"]}],"sameAs":["http://www.bild-video-ton.ch/bestand/objekt/Sozarch_F_5146-Fc-0253"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":["Papierabzug"]},"name":{"de":["Abzug"],"fr":["épreuve photographique"],"it":["GALATEO MANCANTE"],"un":[]}}],"keywords":{"de":[],"fr":[],"it":[],"un":[]},"personsFacet":{},"agentCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Perrottet, Julia"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]}}],"placeRelated":[{"name":{"de":[],"fr":[],"it":[],"un":["Schweiz, Uri, Isenthal"]},"filter":"Schweiz, Uri, Isenthal","facet":["0~S~","1~S~Schweiz, Uri, Isenthal~"]}],"placeFacet":{"facet":["0~S~","1~S~Schweiz, Uri, Isenthal~"],"filter":["Schweiz, Uri, Isenthal"]},"institution":[{"name":{"de":["soz"],"fr":["soz"],"it":["soz"],"un":["soz"]},"filter":"soz","facet":["soz"]}],"recordSet":{"name":{"de":["soz-004"],"fr":["soz-004"],"it":["soz-004"],"un":["soz-004"]},"facet":["soz-004"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/soz-004-Sozarch_F_5146-Fc-0253-1","mediaLocation":"remote","accessDigital":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"}],"usageDigital":["http://rightsstatements.org/vocab/CNE/1.0/"],"usageDigitalGroup":[{"name":{"de":["Unklar (Copyright nicht bekannt)"],"fr":[""],"it":[""],"un":[]},"filter":"http://rightsstatements.org/vocab/CNE/1.0/"}],"digital":{},"callNumber":["Sozarch_F_5146-Fc-0253"],"accessPhysical":[{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"usagePhysical":["http://rightsstatements.org/vocab/CNE/1.0/"],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["s-w"]}],"access":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"},{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"published":false,"suggest":{"title":["\"Auf der Alp Gitschenen - Projektleiter, Gemeindebehörden, Journalisten, Pro Juventute Mitarbeiter\"; 07.08.1974"]},"id":"Burgerbib-Krebser-208576"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["\"Auf der Alp Gitschenen - Projektleiter, Gemeindebehörden, Journalisten, Pro Juventute Mitarbeiter\"; 07.08.1974"]}],"type":{"name":{"de":["Fotografie"],"fr":["Photographie"],"it":["Fotografia"],"un":[]},"filter":"Foto"},"sourceID":"Sozarch_F_5146-Fc-0253","oldMemobaseId":"SozArch-Sozarch_F_5146-Fc-0253","rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Schweizerisches Sozialarchiv"]}],"sameAs":["http://www.bild-video-ton.ch/bestand/objekt/Sozarch_F_5146-Fc-0253"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":["Papierabzug"]},"name":{"de":["Abzug"],"fr":["épreuve photographique"],"it":["GALATEO MANCANTE"],"un":[]}}],"keywords":{"de":[],"fr":[],"it":[],"un":[]},"personsFacet":{},"agentCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Perrottet, Julia"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]}}],"placeRelated":[{"name":{"de":[],"fr":[],"it":[],"un":["Schweiz, Uri, Isenthal"]},"filter":"Schweiz, Uri, Isenthal","facet":["0~S~","1~S~Schweiz, Uri, Isenthal~"]}],"placeFacet":{"facet":["0~S~","1~S~Schweiz, Uri, Isenthal~"],"filter":["Schweiz, Uri, Isenthal"]},"institution":[{"name":{"de":["soz"],"fr":["soz"],"it":["soz"],"un":["soz"]},"filter":"soz","facet":["soz"]}],"recordSet":{"name":{"de":["soz-004"],"fr":["soz-004"],"it":["soz-004"],"un":["soz-004"]},"facet":["soz-004"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/soz-004-Sozarch_F_5146-Fc-0253-1","mediaLocation":"remote","accessDigital":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"}],"usageDigital":["http://rightsstatements.org/vocab/CNE/1.0/"],"usageDigitalGroup":[{"displayLabel":{"de":["Urheberrechtsschutz nicht bewertet"],"fr":["Droit d'auteur non évalué"],"it":["Copyright non esaminato"],"un":[]},"name":{"de":["Unklar (Copyright nicht bekannt)"],"fr":["Inconnu (Copyright inconnu)"],"it":["Non chiaro (Copyright non conosciuto)"],"un":[]},"type":"http://rightsstatements.org/vocab/CNE/1.0/"}],"digital":{},"callNumber":["Sozarch_F_5146-Fc-0253"],"accessPhysical":[{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"usagePhysical":["http://rightsstatements.org/vocab/CNE/1.0/"],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["s-w"]}],"access":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"},{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"published":false,"suggest":{"title":["\"Auf der Alp Gitschenen - Projektleiter, Gemeindebehörden, Journalisten, Pro Juventute Mitarbeiter\"; 07.08.1974"]},"id":"Burgerbib-Krebser-208576"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["\"Robinsonspielplatz 'Le Lignon', Genf\" - Drei Jungen beim Bauen einer Hütte; um 1975"]}],"type":{"name":{"de":["Fotografie"],"fr":["Photographie"],"it":["Fotografia"],"un":[]},"filter":"Foto"},"sourceID":"Sozarch_F_5146-Da-B004-0200","oldMemobaseId":"SozArch-Sozarch_F_5146-Da-B004-0200","rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Schweizerisches Sozialarchiv"]}],"sameAs":["http://www.bild-video-ton.ch/bestand/objekt/Sozarch_F_5146-Da-B004-0200"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":["Diapositiv"]},"name":{"de":["Diafilm"],"fr":["film inversible"],"it":["GALATEO MANCANTE"],"un":[]}}],"keywords":{"de":[],"fr":[],"it":[],"un":[]},"personsFacet":{},"agentCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Unbekannt"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]}}],"placeRelated":[{"name":{"de":[],"fr":[],"it":[],"un":["Schweiz, Genf, Kanton, Genf, Stadt"]},"filter":"Schweiz, Genf, Kanton, Genf, Stadt","facet":["0~S~","1~S~Schweiz, Genf, Kanton, Genf, Stadt~"]}],"placeFacet":{"facet":["0~S~","1~S~Schweiz, Genf, Kanton, Genf, Stadt~"],"filter":["Schweiz, Genf, Kanton, Genf, Stadt"]},"dateCreated":[{"date":"um 1975"}],"institution":[{"name":{"de":["soz"],"fr":["soz"],"it":["soz"],"un":["soz"]},"filter":"soz","facet":["soz"]}],"recordSet":{"name":{"de":["soz-004"],"fr":["soz-004"],"it":["soz-004"],"un":["soz-004"]},"facet":["soz-004"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/soz-004-Sozarch_F_5146-Da-B004-0200-1","mediaLocation":"remote","accessDigital":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"}],"usageDigital":["http://rightsstatements.org/vocab/CNE/1.0/"],"usageDigitalGroup":[{"name":{"de":["Unklar (Copyright nicht bekannt)"],"fr":[""],"it":[""],"un":[]},"filter":"http://rightsstatements.org/vocab/CNE/1.0/"}],"digital":{},"callNumber":["Sozarch_F_5146-Da-B004-0200"],"accessPhysical":[{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"usagePhysical":["http://rightsstatements.org/vocab/CNE/1.0/"],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["Farbe"]}],"access":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"},{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"published":false,"suggest":{"title":["\"Robinsonspielplatz 'Le Lignon', Genf\" - Drei Jungen beim Bauen einer Hütte; um 1975"]},"id":"LS-film-162354"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["\"Robinsonspielplatz 'Le Lignon', Genf\" - Drei Jungen beim Bauen einer Hütte; um 1975"]}],"type":{"name":{"de":["Fotografie"],"fr":["Photographie"],"it":["Fotografia"],"un":[]},"filter":"Foto"},"sourceID":"Sozarch_F_5146-Da-B004-0200","oldMemobaseId":"SozArch-Sozarch_F_5146-Da-B004-0200","rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Schweizerisches Sozialarchiv"]}],"sameAs":["http://www.bild-video-ton.ch/bestand/objekt/Sozarch_F_5146-Da-B004-0200"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":["Diapositiv"]},"name":{"de":["Diafilm"],"fr":["film inversible"],"it":["GALATEO MANCANTE"],"un":[]}}],"keywords":{"de":[],"fr":[],"it":[],"un":[]},"personsFacet":{},"agentCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Unbekannt"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]}}],"placeRelated":[{"name":{"de":[],"fr":[],"it":[],"un":["Schweiz, Genf, Kanton, Genf, Stadt"]},"filter":"Schweiz, Genf, Kanton, Genf, Stadt","facet":["0~S~","1~S~Schweiz, Genf, Kanton, Genf, Stadt~"]}],"placeFacet":{"facet":["0~S~","1~S~Schweiz, Genf, Kanton, Genf, Stadt~"],"filter":["Schweiz, Genf, Kanton, Genf, Stadt"]},"dateCreated":[{"date":"um 1975"}],"institution":[{"name":{"de":["soz"],"fr":["soz"],"it":["soz"],"un":["soz"]},"filter":"soz","facet":["soz"]}],"recordSet":{"name":{"de":["soz-004"],"fr":["soz-004"],"it":["soz-004"],"un":["soz-004"]},"facet":["soz-004"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/soz-004-Sozarch_F_5146-Da-B004-0200-1","mediaLocation":"remote","accessDigital":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"}],"usageDigital":["http://rightsstatements.org/vocab/CNE/1.0/"],"usageDigitalGroup":[{"displayLabel":{"de":["Urheberrechtsschutz nicht bewertet"],"fr":["Droit d'auteur non évalué"],"it":["Copyright non esaminato"],"un":[]},"name":{"de":["Unklar (Copyright nicht bekannt)"],"fr":["Inconnu (Copyright inconnu)"],"it":["Non chiaro (Copyright non conosciuto)"],"un":[]},"type":"http://rightsstatements.org/vocab/CNE/1.0/"}],"digital":{},"callNumber":["Sozarch_F_5146-Da-B004-0200"],"accessPhysical":[{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"usagePhysical":["http://rightsstatements.org/vocab/CNE/1.0/"],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["Farbe"]}],"access":[{"name":{"de":["Online"],"fr":["En ligne"],"it":["Online"],"un":[]},"filter":"public"},{"name":{"de":["vor Ort"],"fr":["Sur place"],"it":["Nel local"],"un":[]},"filter":"onsite"}],"published":false,"suggest":{"title":["\"Robinsonspielplatz 'Le Lignon', Genf\" - Drei Jungen beim Bauen einer Hütte; um 1975"]},"id":"LS-film-162354"}
\ No newline at end of file
......@@ -11,6 +11,7 @@ app:
institutionTypeLabelsPath: "src/test/resources/configs/institution-type-labels.csv"
accessTermLabelsPath: "src/test/resources/configs/access-term-labels.csv"
reuseStatementLabelsPath: "src/test/resources/configs/reuse-statement-labels.csv"
reuseStatementDisplayLabelsPath: "src/test/resources/configs/reuse-statement-displayLabels.csv"
updateTopic: "documents-v18"
reportingStepName: "test"
kafka:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment