KA-Advocates / KATranslationCheck

A rule-based checker for Khan Academy translation
Apache License 2.0
1 stars 3 forks source link

Load rules from a CSV File on Google Spreadsheets #6

Open alani1 opened 9 years ago

alani1 commented 9 years ago

Darf ich anregen die Rules aus eine Spreadsheet zu laden ? Ev. ein anderes Spreadsheet je nach Sprache. Dann können wir einfach 2-3 Personen Zugriff geben um zusätzliche Rules zu erstellen. Du kannst das Script alle 15 Minuten laufen lassen und schauen ob die Regeln geändert haben.

Ein Tip wie man ein Google Spreadsheet runterladen kann findest du hier : https://github.com/alani1/KALanguageReport/blob/master/LanguageStatistic/utils.py

Funktion get_google_csv

ulikoehler commented 9 years ago

An sich eine gute Idee, aber das Problem ist, dass es viele verschiedene Typen von Regeln gibt, die sich in der Struktur eines Spreadsheets/CSVs nur.

Insbesondere, wenn wir in der Zukunft Ausnahmen hinzufügen müssen, wir die Struktur deutlich komplexer werden. Da die Strings in den POTs keinerlei eindeutige ID haben, muss man verschiedene regelbasierte Ausnahmemöglichkeiten vorsehen.

Aktuell gibt es insbesondere (siehe https://github.com/ulikoehler/KATranslationCheck/blob/master/Rules.py):

und die Kombinatoren (werden aktuell nicht benutzt).

Gerade wenn wir die Regeln optimieren, kann es daher ein Konstrukt geben wie ExceptionListRuleWrapper(BooleanAndRule(BooleanOrRule(...), BooleanOrRule(...)), [...]).

Was ich technisch für machbar halte, ist, nur einen bestimmten Typ von Regeln zu importieren, z.B.:

SimpleRegexRule("Occurrence of untranslated 'is'", r"\b[Ii]s\b")

Alle Occurrence of untranslated... sind ungefähr gleich, allerdings mit kleinen aber sehr wichtigen Unterschieden: Ist der letzte Character optional oder nicht? Hat man am Anfang eine zero-width negative lookbehind assertion wie (?<!\\) (verhindert, dass \to ein hit für Untranslated occ. of 'to' ist)?.

Ich sehe drei Kernprobleme, wenn wir das mit Google Docs machen:

Ich würde daher vorschlagen, dieses Repository mit Travis zu integrieren -- dann werden Pull Requests automatisch auf Fehler überprüft und jeder kann Pull Requests submitten

Ich habe absolut nichts dagegen, allen am Projekt Beteiligten für dieses Repository Commitrechte zu geben. Das wäre auch mein Vorschlag, damit ein "Kernteam" direkt commiten kann und jeder andere Regeln vorschlagen kann. Zusätzlich würde ich noch die eigentlichen Rules in ein eigenes File auslagern, damit klarer wird, wo man editieren/kopieren soll.