In order to mitigate against the brute force attacks against Gitlab accounts, we are moving to all edu-ID Logins. We would like to remind you to link your account with your edu-id. Login will be possible only by edu-ID after November 30, 2021. Here you can find the instructions for linking your account.

If you don't have a SWITCH edu-ID, you can create one with this guide here

kind regards

This Server has been upgraded to GitLab release 14.2.6

Commit c500825d authored by Jonas Waeber's avatar Jonas Waeber
Browse files

Enrich document type on documents.

parent 0721ba22
......@@ -28,8 +28,11 @@ import org.memobase.model.EnrichedDigitalMetadata
import org.memobase.model.LanguageContainer
import org.memobase.model.Schema
class DocumentsSearchDocBuilder(private val mediaUrl: String) {
class DocumentsSearchDocBuilder(
private val documentTypeMapper: DocumentTypeMapper,
private val mediaUrl: String) {
private val log = LogManager.getLogger("SearchDocTransform")
fun transform(input: Map<String, JsonObject>): Schema {
val record = input["record"] ?: throw InvalidInputException("No record defined in the message.")
......@@ -176,11 +179,19 @@ class DocumentsSearchDocBuilder(private val mediaUrl: String) {
}
}
val type = record[KEYS.ricoType].let {
if (it == null) {
documentTypeMapper.getValue("Andere")
} else {
documentTypeMapper.getValue(it as String)
}
}
return DocumentsSearchDoc(
title = Extract.typedEntityByType(recordTitles, "type", "main", "title"),
seriesTitle = Extract.typedEntityByType(recordTitles, "type", "series", "title"),
broadcastTitle = Extract.typedEntityByType(recordTitles, "type", "broadcast", "title"),
type = record.getOrDefault("type", "NoDocumentTypeDefined") as String,
type = type,
sourceID = try {
Extract.extractIdValue(recordIdentifiers, KEYS.IdentifierType.original) ?: "NoSourceIdFound"
} catch (ex: NoSuchElementException) {
......
......@@ -34,9 +34,8 @@ import org.memobase.model.LanguageContainer
import org.memobase.model.Schema
class InstitutionSearchDocBuilder(path: String, appSettings: Properties) {
class InstitutionSearchDocBuilder(private val institutionTypeMapper: InstitutionTypeMapper, appSettings: Properties) {
private val log = LogManager.getLogger("InstitutionSearchDocBuilder")
private val institutionTypeMapper = InstitutionTypeMapper(path)
private val elasticSearchWrapper = ElasticSearchWrapper(appSettings)
fun transform(key: String, input: Map<String, JsonObject>): Schema {
......
......@@ -29,9 +29,12 @@ import org.apache.kafka.streams.Topology
import org.apache.kafka.streams.kstream.KStream
import org.apache.kafka.streams.kstream.Predicate
import org.apache.logging.log4j.LogManager
import org.memobase.helpers.DocumentTypeMapper
import org.memobase.helpers.ElasticSearchWrapper
import org.memobase.helpers.InstitutionTypeMapper
import org.memobase.helpers.JSON
import org.memobase.helpers.KEYS
import org.memobase.helpers.KEYS.SettingsProps
import org.memobase.model.DocumentsSearchDoc
import org.memobase.model.InstitutionSearchDoc
import org.memobase.model.RecordSetSearchDoc
......@@ -41,11 +44,16 @@ class KafkaTopology(private val settings: SettingsLoader) {
private val log = LogManager.getLogger("SearchDocService")
private val appSettings = settings.appSettings
private val mediaUrl = appSettings.getProperty(SettingsProps.mediaUrl)
private val documentMapperPath = appSettings.getProperty(SettingsProps.documentTypeLabelsPath)
private val institutionMapperPath = appSettings.getProperty(SettingsProps.institutionTypeLabelsPath)
private val reportTopic = settings.processReportTopic
private val searchDocTransform = DocumentsSearchDocBuilder(appSettings.getProperty(KEYS.SettingsProps.mediaUrl))
private val institutionSearchDoc =
InstitutionSearchDocBuilder(appSettings.getProperty(KEYS.SettingsProps.institutionTypeLabelsPath), appSettings)
private val documentTypeMapper = DocumentTypeMapper(documentMapperPath)
private val institutionTypeMapper = InstitutionTypeMapper(institutionMapperPath)
private val documentSearchDocBuilder = DocumentsSearchDocBuilder(documentTypeMapper, mediaUrl)
private val institutionSearchDoc = InstitutionSearchDocBuilder(institutionTypeMapper, appSettings)
private val elasticSearchWrapper = ElasticSearchWrapper(settings.appSettings)
private val recordSetSearchDocBuilder =
......@@ -71,7 +79,7 @@ class KafkaTopology(private val settings: SettingsLoader) {
.mapValues { readOnlyKey, value ->
try {
Pair(
searchDocTransform.transform(value),
documentSearchDocBuilder.transform(value),
Report(readOnlyKey, ReportStatus.success, "Transformed message into search doc.", Service.name)
)
} catch (ex: InvalidInputException) {
......
......@@ -29,7 +29,7 @@ data class DocumentsSearchDoc(
val broadcastTitle: List<LanguageContainer>,
// Datatype properties
val type: String,
val type: FacetContainer,
val sourceID: String,
@JsonIgnore
private val recordId: String,
......@@ -116,11 +116,18 @@ data class DocumentsSearchDoc(
) : Schema(recordId) {
companion object {
private val otherDocumentTypeLanguageContainer =
LanguageContainer(listOf("Andere"), listOf("Autres"), listOf("Altri"), emptyList())
val DEFAULT = DocumentsSearchDoc(
emptyList(),
emptyList(),
emptyList(),
"NoDocumentTypeDefined",
FacetContainer(
otherDocumentTypeLanguageContainer,
null,
emptyList()
),
"NoSourceIdFound",
"https://memobase.ch/record/TestIdentifier",
emptyList(),
......
......@@ -8,6 +8,7 @@ import org.memobase.helpers.JSON
import org.memobase.model.DocumentsSearchDoc
import java.io.File
import java.nio.charset.Charset
import org.memobase.helpers.DocumentTypeMapper
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TestDocumentsSearchDoc {
......@@ -18,7 +19,8 @@ class TestDocumentsSearchDoc {
}
private val klaxon = Klaxon()
private val transformer = DocumentsSearchDocBuilder("https://media.memobase.k8s.unibas.ch/memo/")
private val documentTypeMapper = DocumentTypeMapper("src/test/resources/configs/document-type-labels.csv")
private val transformer = DocumentsSearchDocBuilder(documentTypeMapper, "https://media.memobase.k8s.unibas.ch/memo/")
@Test
fun `test minimal record required`() {
......
......@@ -7,28 +7,30 @@ import org.junit.jupiter.api.assertThrows
import org.memobase.helpers.JSON
import java.io.File
import java.io.FileInputStream
import org.memobase.helpers.DocumentTypeMapper
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TestTransform {
private val dataPath = "src/test/resources/data/transformer"
private val documentTypeMapper = DocumentTypeMapper("src/test/resources/configs/document-type-labels.csv")
private val transformer = DocumentsSearchDocBuilder(documentTypeMapper, "https://media.memobase.k8s.unibas.ch/memo/")
@Test
fun `test missing record`() {
val searchDoc = DocumentsSearchDocBuilder("https://media.memobase.k8s.unibas.ch/memo/")
val input = mapOf(Pair("", json { obj() }))
assertThrows<InvalidInputException> { searchDoc.transform(input) }
assertThrows<InvalidInputException> { transformer.transform(input) }
}
@Test
fun `test enriched digital metadata record`() {
val searchDoc = DocumentsSearchDocBuilder("https://media.memobase.k8s.unibas.ch/memo/")
val input = JSON.unpack(
JSON.parse(
FileInputStream(File("$dataPath/enrich_digital_metadata_record.json")).bufferedReader().readLines()
.reduce { acc, s -> acc + "\n" + s })
)
val values = searchDoc.transform(input)
val values = transformer.transform(input)
}
}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["Falter"]}],"seriesTitle":[{"de":[],"fr":[],"it":[],"un":["Tieraufnahmen"]}],"type":"Film","sourceID":"PA_111_Sch_Y13_005_Nr_647","abstract":[{"de":[],"fr":[],"it":[],"un":["Vorspann: Agfa. Falter. <br><br> Beschrieb Schönwetter: Falter."]}],"descriptiveNote":[{"de":[],"fr":[],"it":[],"un":["Um die Filme des Bestands in der Listenansicht in der nach Serien/ Zeitraum bis oder nach 1945/ Filmdauer geordneten Reihenfolge anzuzeigen, ist in \"sortieren nach:\" die Auswahl \"Main-ID aufsteigend\" zu treffen. <a href=\"http://memobase.ch/#find/facets[inst-facet]=[LAGL]&order=4\" target=\"_blank\">http://memobase.ch/#find/facets[inst-facet]=[LAGL]&order=4</a>"]}],"scopeAndContent":[{"de":[],"fr":[],"it":[],"un":["Die archivische Serie \"Tieraufnahmen\" des Filmbestands Schönwetter (Kanton Glarus) umfasst Filmsequenzen, deren Szenen/Inhalte hauptsächlich Aufnahmen von Tieren sind, und zwar auch von Nutztieren und auch anlässlich von Viehschauen. [Verzeichnisreihenfolge innerhalb Serie gemäss Zeitperiode bis oder nach 1945 und pro Zeitperiode gemäss Abfolge Filmdauer]."]}],"rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Landesarchiv des Kantons Glarus"]}],"sameAs":["https://archivverzeichnis.gl.ch/home/#/content/110700fae7994b628665add754139f2c"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["16-mm-Film"],"fr":["Format 16 mm"],"it":["16 millimetri"],"un":[]}}],"genre":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["Aktualitäten"],"fr":["Actualités"],"it":["Attualità"],"un":[]}}],"keywords":{"de":[],"fr":[],"it":[],"un":[]},"personCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Schönwetter Hans Jakob (1906-1997)"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]},"filter":"Schönwetter, Hans Jakob (1906-1997)","facet":["0~S~","1~S~Schönwetter, Hans Jakob (1906-1997)~"]}],"personsFacet":["0~S~","1~S~Schönwetter, Hans Jakob (1906-1997)~"],"corporateBodyProducer":[{"name":{"de":[],"fr":[],"it":[],"un":["H.P. Schönwetter"]}}],"dateCreated":[{"date":"/ vermutlich vor 1945 1930/1945","qualifier":["ca."]}],"institution":[{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["LAGL"]}],"recordSet":{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["LAGL-PA_111_Sch_Y"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/LAGL-PA_111_Sch_Y-PA_111_Sch_Y13_005_Nr_647-1","accessDigital":["public"],"digital":{},"durationPhysical":["00:00:43"],"callNumber":["LAGL PA 111 Sch Y13/005 Nr. 647"],"accessPhysical":["onsite"],"physicalCharacteristics":[{"de":[],"fr":[],"it":[],"un":["Bemerkung: Länge Originalfilm 5m und Länge als Digitalisat 00:00:43 - Digitalisat in SD (standard definition)"]}],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["S/W"]}],"access":["onsite","public"],"published":false,"suggest":{"title":["Falter"],"seriesTitle":["Tieraufnahmen"]},"id":"https://memobase.ch/record/LAGL-PA_111_Sch_Y-PA_111_Sch_Y13_005_Nr_647"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["Falter"]}],"seriesTitle":[{"de":[],"fr":[],"it":[],"un":["Tieraufnahmen"]}],"type":{"name":{"de":["Film"],"fr":["Film"],"it":["Film"],"un":[]}},"sourceID":"PA_111_Sch_Y13_005_Nr_647","abstract":[{"de":[],"fr":[],"it":[],"un":["Vorspann: Agfa. Falter. <br><br> Beschrieb Schönwetter: Falter."]}],"descriptiveNote":[{"de":[],"fr":[],"it":[],"un":["Um die Filme des Bestands in der Listenansicht in der nach Serien/ Zeitraum bis oder nach 1945/ Filmdauer geordneten Reihenfolge anzuzeigen, ist in \"sortieren nach:\" die Auswahl \"Main-ID aufsteigend\" zu treffen. <a href=\"http://memobase.ch/#find/facets[inst-facet]=[LAGL]&order=4\" target=\"_blank\">http://memobase.ch/#find/facets[inst-facet]=[LAGL]&order=4</a>"]}],"scopeAndContent":[{"de":[],"fr":[],"it":[],"un":["Die archivische Serie \"Tieraufnahmen\" des Filmbestands Schönwetter (Kanton Glarus) umfasst Filmsequenzen, deren Szenen/Inhalte hauptsächlich Aufnahmen von Tieren sind, und zwar auch von Nutztieren und auch anlässlich von Viehschauen. [Verzeichnisreihenfolge innerhalb Serie gemäss Zeitperiode bis oder nach 1945 und pro Zeitperiode gemäss Abfolge Filmdauer]."]}],"rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Landesarchiv des Kantons Glarus"]}],"sameAs":["https://archivverzeichnis.gl.ch/home/#/content/110700fae7994b628665add754139f2c"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["16-mm-Film"],"fr":["Format 16 mm"],"it":["16 millimetri"],"un":[]}}],"genre":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["Aktualitäten"],"fr":["Actualités"],"it":["Attualità"],"un":[]}}],"keywords":{"de":[],"fr":[],"it":[],"un":[]},"personCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Schönwetter Hans Jakob (1906-1997)"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]},"filter":"Schönwetter, Hans Jakob (1906-1997)","facet":["0~S~","1~S~Schönwetter, Hans Jakob (1906-1997)~"]}],"personsFacet":["0~S~","1~S~Schönwetter, Hans Jakob (1906-1997)~"],"corporateBodyProducer":[{"name":{"de":[],"fr":[],"it":[],"un":["H.P. Schönwetter"]}}],"dateCreated":[{"date":"/ vermutlich vor 1945 1930/1945","qualifier":["ca."]}],"institution":[{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["LAGL"]}],"recordSet":{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["LAGL-PA_111_Sch_Y"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/LAGL-PA_111_Sch_Y-PA_111_Sch_Y13_005_Nr_647-1","accessDigital":["public"],"digital":{},"durationPhysical":["00:00:43"],"callNumber":["LAGL PA 111 Sch Y13/005 Nr. 647"],"accessPhysical":["onsite"],"physicalCharacteristics":[{"de":[],"fr":[],"it":[],"un":["Bemerkung: Länge Originalfilm 5m und Länge als Digitalisat 00:00:43 - Digitalisat in SD (standard definition)"]}],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["S/W"]}],"access":["onsite","public"],"published":false,"suggest":{"title":["Falter"],"seriesTitle":["Tieraufnahmen"]},"id":"https://memobase.ch/record/LAGL-PA_111_Sch_Y-PA_111_Sch_Y13_005_Nr_647"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["Anonym -- Armut"]}],"type":"Foto","sourceID":"208576","abstract":[{"de":[],"fr":[],"it":[],"un":["Bildeintrag: auf der Verpackung: 49543<br>"]}],"descriptiveNote":[{"de":[],"fr":[],"it":[],"un":["Datierung: Negativnummer<br>"]}],"rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Burgerbibliothek Bern"]}],"sameAs":["http://katalog.burgerbib.ch/detail.aspx?ID=208576"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["Glasplatte"],"fr":["L'ÉTIQUETTE MANQUANTE"],"it":["GALATEO MANCANTE"],"un":[]}}],"keywords":{"de":[],"fr":[],"it":[],"un":["Armut"]},"personCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Moeglé, Jean"]},"relation":{"de":[],"fr":[],"it":[],"un":["author"]},"filter":"Moeglé, Jean","facet":["0~M~","1~M~Moeglé, Jean~"]}],"personContributor":[{"name":{"de":[],"fr":[],"it":[],"un":["Familie Krebser"]},"relation":{"de":[],"fr":[],"it":[],"un":["Collector/Sammler"]},"filter":"Familie Krebser","facet":["0~F~","1~F~Familie Krebser~"]}],"personsFacet":["0~F~","1~F~Familie Krebser~","0~M~","1~M~Moeglé, Jean~"],"dateCreated":[{"date":"20. Jh."}],"institution":[{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["Burgerbib"]}],"recordSet":{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["Burgerbib-Krebser"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/Burgerbib-Krebser-208576-1","digital":{},"callNumber":["Historische Sammlung Krebser 64/21"],"physicalCharacteristics":[{"de":[],"fr":[],"it":[],"un":["Weite: 165 mm","Höhe: 120 mm"]}],"published":false,"suggest":{"title":["Anonym -- Armut"],"keywords":["Armut"]},"id":"https://memobase.ch/record/Burgerbib-Krebser-208576"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["Anonym -- Armut"]}],"type":{"name":{"de":["Fotografie"],"fr":["Photographie"],"it":["Fotografia"],"un":[]}},"sourceID":"208576","abstract":[{"de":[],"fr":[],"it":[],"un":["Bildeintrag: auf der Verpackung: 49543<br>"]}],"descriptiveNote":[{"de":[],"fr":[],"it":[],"un":["Datierung: Negativnummer<br>"]}],"rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Burgerbibliothek Bern"]}],"sameAs":["http://katalog.burgerbib.ch/detail.aspx?ID=208576"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["Glasplatte"],"fr":["L'ÉTIQUETTE MANQUANTE"],"it":["GALATEO MANCANTE"],"un":[]}}],"keywords":{"de":[],"fr":[],"it":[],"un":["Armut"]},"personCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Moeglé, Jean"]},"relation":{"de":[],"fr":[],"it":[],"un":["author"]},"filter":"Moeglé, Jean","facet":["0~M~","1~M~Moeglé, Jean~"]}],"personContributor":[{"name":{"de":[],"fr":[],"it":[],"un":["Familie Krebser"]},"relation":{"de":[],"fr":[],"it":[],"un":["Collector/Sammler"]},"filter":"Familie Krebser","facet":["0~F~","1~F~Familie Krebser~"]}],"personsFacet":["0~F~","1~F~Familie Krebser~","0~M~","1~M~Moeglé, Jean~"],"dateCreated":[{"date":"20. Jh."}],"institution":[{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["Burgerbib"]}],"recordSet":{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["Burgerbib-Krebser"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/Burgerbib-Krebser-208576-1","digital":{},"callNumber":["Historische Sammlung Krebser 64/21"],"physicalCharacteristics":[{"de":[],"fr":[],"it":[],"un":["Weite: 165 mm","Höhe: 120 mm"]}],"published":false,"suggest":{"title":["Anonym -- Armut"],"keywords":["Armut"]},"id":"https://memobase.ch/record/Burgerbib-Krebser-208576"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["Tschu Tschu"]}],"type":"Film","sourceID":"162354","abstract":[{"de":[],"fr":[],"it":[],"un":["Dokumentation über die Marzili Bahn, Bern. <br><br>Beinhaltet Cartoon über die Geschichte der Eisenbahn, die verschiedenen Schienen - und Antriebssysteme sowie über die Gründungsgeschichte der Marzili Bahn.<br><br>Details<br>Cartoon: Schriftzug Tschu Tschu, Variationen zum Thema Eisenbahn, Ein Film von Werner Emmisberger, Geschichte der Eisenbahn: 1 Eisenbahn von Georges Steffenson. <br>Beispiele verschiedener Systeme und Probleme: Absurdes, Utopisches und Skuriles.<br>Wasserangetriebenes System der Marzilibahn: mit Wasser gefüllter Bergwagen zieht den leeren Talwagen durch sein Gewicht während der Abfahrt hoch.<br>1884 Gründung des Initiativkommitees der Marzili Bahn AG, Gründungsmitglieder: Rothenbach, Gfeller, Lutzmüller, Morgenthaler, Münger, Salvisberg und Schnydermuggli. <br>Ab 1885, 1 Drahtseilbahn Europas: Marzili Bahn AG, Höhendifferenz 30m, Länge 100m. <br>Ab 1974 kein Wasserantrieb mehr, neue Wagen, elektrisch angetrieben. <br>Div. Ansichten Marzilibahn Aussen und Innen: alte Wagen, neue Wagen, Fahrt, Passagiere, Bahnpersonal, Berg- und Talstation. Longstreet Jazz Band in der Marzilibahn."]}],"rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Lichtspiel / Kinemathek Bern"]}],"sameAs":["http://xray876.server4you.net/suche.lichtspiel/mediaplayer/videoportal_detail.aspx?FilmWorkContentID=162354"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["16-mm-Film"],"fr":["Format 16 mm"],"it":["16 millimetri"],"un":[]}}],"genre":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["FEHLENDES LABEL"],"fr":["L'ÉTIQUETTE MANQUANTE"],"it":["Documentazione"],"un":[]}}],"language":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["FEHLENDES LABEL"],"fr":["L'ÉTIQUETTE MANQUANTE"],"it":["tedesco"],"un":[]},"type":"content"}],"keywords":{"de":[],"fr":[],"it":[],"un":["Eisenbahn","Seilbahn"]},"personCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Werner Emmisberger (Regie)"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]},"filter":"(Regie), Werner Emmisberger","facet":["0~R~","1~R~(Regie), Werner Emmisberger~"]}],"personContributor":[{"name":{"de":[],"fr":[],"it":[],"un":["Longstreet Jazz Band"]},"relation":{"de":[],"fr":[],"it":[],"un":["Interpret"]},"filter":"Band, Longstreet Jazz","facet":["0~B~","1~B~Band, Longstreet Jazz~"]}],"personsFacet":["0~B~","1~B~Band, Longstreet Jazz~","0~R~","1~R~(Regie), Werner Emmisberger~"],"placeRelated":[{"name":{"de":[],"fr":[],"it":[],"un":["SZ"]},"filter":"SZ","facet":["0~S~","1~S~SZ~"]}],"placeFacet":["0~S~","1~S~SZ~"],"dateCreated":[{"date":"1973","sort":"1973","facet":["0~20.Jahrhundert~","1~20.Jahrhundert~1971-1980~"]}],"institution":[{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["LS"]}],"recordSet":{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["LS-film"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/LS-film-162354-1","accessDigital":["public"],"digital":{},"durationPhysical":["00:11:00"],"accessPhysical":["onsite"],"physicalCharacteristics":[{"de":[],"fr":[],"it":[],"un":["Verfahren: Länge: 119.00<br>Ton: Magnetton<br>Seitenverhältnis: 1.33<br>Positiv"]}],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["farbig"]}],"access":["onsite","public"],"published":false,"suggest":{"title":["Tschu Tschu"],"keywords":["Eisenbahn","Seilbahn"]},"id":"https://memobase.ch/record/LS-film-162354"}
\ No newline at end of file
{"title":[{"de":[],"fr":[],"it":[],"un":["Tschu Tschu"]}],"type":{"name":{"de":["Film"],"fr":["Film"],"it":["Film"],"un":[]}},"sourceID":"162354","abstract":[{"de":[],"fr":[],"it":[],"un":["Dokumentation über die Marzili Bahn, Bern. <br><br>Beinhaltet Cartoon über die Geschichte der Eisenbahn, die verschiedenen Schienen - und Antriebssysteme sowie über die Gründungsgeschichte der Marzili Bahn.<br><br>Details<br>Cartoon: Schriftzug Tschu Tschu, Variationen zum Thema Eisenbahn, Ein Film von Werner Emmisberger, Geschichte der Eisenbahn: 1 Eisenbahn von Georges Steffenson. <br>Beispiele verschiedener Systeme und Probleme: Absurdes, Utopisches und Skuriles.<br>Wasserangetriebenes System der Marzilibahn: mit Wasser gefüllter Bergwagen zieht den leeren Talwagen durch sein Gewicht während der Abfahrt hoch.<br>1884 Gründung des Initiativkommitees der Marzili Bahn AG, Gründungsmitglieder: Rothenbach, Gfeller, Lutzmüller, Morgenthaler, Münger, Salvisberg und Schnydermuggli. <br>Ab 1885, 1 Drahtseilbahn Europas: Marzili Bahn AG, Höhendifferenz 30m, Länge 100m. <br>Ab 1974 kein Wasserantrieb mehr, neue Wagen, elektrisch angetrieben. <br>Div. Ansichten Marzilibahn Aussen und Innen: alte Wagen, neue Wagen, Fahrt, Passagiere, Bahnpersonal, Berg- und Talstation. Longstreet Jazz Band in der Marzilibahn."]}],"rightsHolder":[{"de":[],"fr":[],"it":[],"un":["Lichtspiel / Kinemathek Bern"]}],"sameAs":["http://xray876.server4you.net/suche.lichtspiel/mediaplayer/videoportal_detail.aspx?FilmWorkContentID=162354"],"format":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["16-mm-Film"],"fr":["Format 16 mm"],"it":["16 millimetri"],"un":[]}}],"genre":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["FEHLENDES LABEL"],"fr":["L'ÉTIQUETTE MANQUANTE"],"it":["Documentazione"],"un":[]}}],"language":[{"displayLabel":{"de":[],"fr":[],"it":[],"un":[]},"facetLabel":{"de":["FEHLENDES LABEL"],"fr":["L'ÉTIQUETTE MANQUANTE"],"it":["tedesco"],"un":[]},"type":"content"}],"keywords":{"de":[],"fr":[],"it":[],"un":["Eisenbahn","Seilbahn"]},"personCreator":[{"name":{"de":[],"fr":[],"it":[],"un":["Werner Emmisberger (Regie)"]},"relation":{"de":[],"fr":[],"it":[],"un":["Author"]},"filter":"(Regie), Werner Emmisberger","facet":["0~R~","1~R~(Regie), Werner Emmisberger~"]}],"personContributor":[{"name":{"de":[],"fr":[],"it":[],"un":["Longstreet Jazz Band"]},"relation":{"de":[],"fr":[],"it":[],"un":["Interpret"]},"filter":"Band, Longstreet Jazz","facet":["0~B~","1~B~Band, Longstreet Jazz~"]}],"personsFacet":["0~B~","1~B~Band, Longstreet Jazz~","0~R~","1~R~(Regie), Werner Emmisberger~"],"placeRelated":[{"name":{"de":[],"fr":[],"it":[],"un":["SZ"]},"filter":"SZ","facet":["0~S~","1~S~SZ~"]}],"placeFacet":["0~S~","1~S~SZ~"],"dateCreated":[{"date":"1973","sort":"1973","facet":["0~20.Jahrhundert~","1~20.Jahrhundert~1971-1980~"]}],"institution":[{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["LS"]}],"recordSet":{"name":{"de":[],"fr":[],"it":[],"un":[]},"facet":["LS-film"]},"memoriavClaim":true,"locator":"https://media.memobase.k8s.unibas.ch/memo/LS-film-162354-1","accessDigital":["public"],"digital":{},"durationPhysical":["00:11:00"],"accessPhysical":["onsite"],"physicalCharacteristics":[{"de":[],"fr":[],"it":[],"un":["Verfahren: Länge: 119.00<br>Ton: Magnetton<br>Seitenverhältnis: 1.33<br>Positiv"]}],"colourPhysical":[{"de":[],"fr":[],"it":[],"un":["farbig"]}],"access":["onsite","public"],"published":false,"suggest":{"title":["Tschu Tschu"],"keywords":["Eisenbahn","Seilbahn"]},"id":"https://memobase.ch/record/LS-film-162354"}
\ No newline at end of file
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