Closed IxKo closed 3 years ago
Aus der Erläuterung zu zotero_expected_languages
in der Config-Datei:
# ...
# Supported languages:
# afr, ara, dan, dut, ger, eng, fre, gre, ita, may, por, ron, rus, spa, srp, tur
# Additional languages must be unlocked by the development before they can be used.
#
# There are several modes how this setting is used, depending on whether an optional modifier is set as first character or not.
# - Default (no modifier)
# - If there are multiple languages configured, the most probable language will be detected automatically.
# If there is only 1 language configured, there will be no detection.
# - The configured/detected language will be compared with the language given by Zotero.
# If they are equal, the language will be written to output.
# If not, there will be no language in the generated record. (This will most likely lead to a QA error later in the process).
# - Force detection (modifier: '?')
# - Same as default, but the result of the detection will always be used, and the Zotero language will be ignored completely.
# - Force languages (modifier: '!')
# - There will be no detection, the configured values will be forced.
# E.g. "!eng,fre" means that all datasets will have both languages, so be careful!
#...
Ja, demnach sollte bei dem Modifier ? und den Sprachen eng,spa geprüft werden, welche der beiden passend ist und diese wird genommen. Aber es sollte keine andere dritte oder vierte Sprache ins Spiel kommen.
Doch: Laut Erläuterung wird bei Verwendung von ?
die detektierte Sprache verwendet unabhängig von der hinterlegten (Deshalb ist es ja der force-detection mode). Ansonsten muss ?
weggelassen werden, dann wird keine Sprache eingetragen, wenn das Erkennungsergebnis nicht zu den hinterlegten passt.
Kann es denn so eingerichtet werden wie ich dachte? Beispiel: ?eng,spa von Zotero vorgegebene Sprache wird ignoriert Sprache wird nur anhand eng und spa überprüft und eine gewinnt und wird übernommen
Denn so wie es jetzt ist, würde es reichen nur ein Fragezeichen einzutragen und es spielt russisch Roulette ;)
So wurde es damals beprochen und definiert. Die Erkennung selbst kann nicht auf einer Untermenge von Sprachen eingeschränkt werden, sondern es kann nur das Ergebnis auf Plausibilität geprüft werden.
Die Erkennung selbst kann nicht auf einer Untermenge von Sprachen eingeschränkt werden,
Okay, schade. Dann würde ich hier das Fragezeichen entfernen.
Mir ist eine Idee gekommen, die man eventuell umsetzen könnte: Wenn die Sprache automatisch ermittelt wurde (aufgrund des angegebenen Fragezeichens), könnte danach nicht eine Überprüfung stattfinden, ob die ermittelte Sprache eine der genannten nach dem Fragezeichen ist? Wenn ja, kann sie übernommen werden und wenn nein, landet der Datensatz in den Error-Dateien. Wäre das eine denkbare Lösung?
Das Verhalten existiert ja praktisch so bereits, wenn man das Fragezeichen weglässt und mehrere Sprachen angibt.
Nicht ganz, da ohne Sonderzeichen immer erst mit der gelieferten Sprache geprüft wird und beim ?Fragezeichen wollten wir genau diesen Schritt umgehen.
Besprochenes Verhalten (auch bei force_language_detection Test auf die Liste der expected_languages, aonsonsten kein Setzen der Sprache) ist jetzt auf nu.
Muss hier für das Testen noch überall die Zeile
force_language_detection = true
in der Conf entfernt werden?
Wenn ich sie als "Additional config" mit force_language_detection = false
überschreiben will, ändert sich beim Testen nichts an dem CLI-Output: "Force language detection active - detected language: fre"
Wurde auf nu getestet? Entscheidend ist die Zeile danach:
Force language detection active - detected language: fre
Detected language : fre is not in the given set of admissible languages. No language will be set
Die Zeile hatte ich wahrscheinlich übersehen. Vielen Dank, somit scheint die gewünschte Prüfung umgesetzt.
URL https://doi.org/10.1177/00033286211033681 IxTheo#2021-08-06#55EAA34FD750744B0BFCE5790E59EC2FF5E40366
https://journals.sagepub.com/doi/10.1177/00033286211017113 IxTheo#2021-08-06#837B7F68E95D69245D44C9C3A3F6CB0E316A2433
Ausführliche Problembeschreibung Die beiden Datensätze wurden mit falschen Sprachcodes eingespielt. Der eine als fre und der andere als afr. Auf Nu und ub28 werden sie auch so ausgewiesen. Aus dem CLI output:
In der conf steht bei der Zs der Eintrag zotero_expected_languages = ?eng,spa
Wie kann es dann zu den Sprachcodes fre/afr führen? Laut conf:
Alle anderen Datensätze der Zs wurden als Sprache eng eingespielt.