ubtue / DatenProbleme

0 stars 0 forks source link

ISSN 0003-3286 | Anglican theological review (SAGE) | Sprache #1577

Closed IxKo closed 3 years ago

IxKo commented 3 years ago

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:

Converting item 16 [Anglican theological...] | https://journals.sagepub.com/doi/abs/10.1177/00033286211017113?ai=2b4&mi=ehikzz&af=R {7614918805566678903} use online ISSN "0003-3286" with online PPN "340874848" Normalized language: en => eng Force language detection active - using detected language: afr

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:

Force detection (modifier: '?')

  • Same as default, but the result of the detection will always be used, and the Zotero language will be ignored completely.

Alle anderen Datensätze der Zs wurden als Sprache eng eingespielt.

jriedl commented 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!
#...
IxKo commented 3 years ago

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.

jriedl commented 3 years ago

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.

IxKo commented 3 years ago

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 ;)

jriedl commented 3 years ago

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.

IxKo commented 3 years ago

Die Erkennung selbst kann nicht auf einer Untermenge von Sprachen eingeschränkt werden,

Okay, schade. Dann würde ich hier das Fragezeichen entfernen.

IxKo commented 3 years ago

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?

jriedl commented 3 years ago

Das Verhalten existiert ja praktisch so bereits, wenn man das Fragezeichen weglässt und mehrere Sprachen angibt.

IxKo commented 3 years ago

Nicht ganz, da ohne Sonderzeichen immer erst mit der gelieferten Sprache geprüft wird und beim ?Fragezeichen wollten wir genau diesen Schritt umgehen.

jriedl commented 3 years ago

Besprochenes Verhalten (auch bei force_language_detection Test auf die Liste der expected_languages, aonsonsten kein Setzen der Sprache) ist jetzt auf nu.

IxKo commented 3 years ago

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"

jriedl commented 3 years ago

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

IxKo commented 3 years ago

Die Zeile hatte ich wahrscheinlich übersehen. Vielen Dank, somit scheint die gewünschte Prüfung umgesetzt.