Jump to content

Wikifunctions:Status-Updates/2024-05-30

From Wikifunctions
This page is a translated version of the page Wikifunctions:Status updates/2024-05-30 and the translation is 100% complete.
Wikifunctions Status-Updates Translate

<translate> Abstract Wikipedia via mailing list</translate> <translate> Abstract Wikipedia on IRC</translate> <translate> Wikifunctions on Telegram</translate> <translate> Wikifunctions on Mastodon</translate> <translate> Wikifunctions on Twitter</translate> <translate> Wikifunctions on Facebook</translate> <translate> Wikifunctions on YouTube</translate> <translate> Wikifunctions website</translate> Translate

Ein einziger Singular oder eine Vielzahl von Pluralen?

Latein-Wörterbuch aus dem 18. Jahrhundert

Wir arbeiten daran, Funktionen zu entwickeln, die auf Daten aus Wikidata zugreifen können. Der erste Anwendungsfall, den wir anstreben, ist der Zugriff auf die lexikografischen Formen eines Lexems anhand einer Lexem-ID. Betrachten wir beispielsweise eine Funktion, die Sätze wie “There are four apples.” erstellt, wobei sowohl die Zahl “four” als auch das Substantiv “apple” Argumente für die Funktion sind, die den Satz erstellt.

Wie sollen die Funktionen für den Zugriff auf Lexem-Formen aussehen? Wenn du Ideen hast, um dies zu skizzieren, dann nur zu, ohne an technische Einschränkungen gebunden zu sein. Wir freuen uns auf deine Ideen und nutzen sie als Inspiration, um zu formen, was wir auf der vorhandenen Plattform technisch erreichen können.

Im obigen Beispiel könnten wir eine Funktion haben, die “four” basierend auf der natürlichen Zahl 4 und “apples” basierend auf der Lexem-ID L3257 erstellt. Das Lexem hat zwei Formen: L3257-F1 ist “apple”, gekennzeichnet mit der grammatikalischen Funktion Singular, und L3257-F2 ist “apples”, gekennzeichnet mit der grammatikalischen Funktion Plural. Um die richtige Form zu erhalten, können wir entweder die entsprechende Form-ID manuell nachschlagen, was kaum skalierbar ist, oder wir verwenden die grammatikalischen Funktionen, um die richtige Form anzufordern. Mit anderen Worten könnte es eine Funktion geben, z. B. "return form", die eine Lexem-ID und eine Liste grammatikalischer Funktionen verwendet und alle passenden Formen zurückgibt.

return form(L3257, [plural])

würde “apples” zurückgeben. Entsprechend würden wir für das estnische Verb “amüseerima” (amüsieren) den Aufruf

return form(L350582, [third person, plural, present tense, indicative])

machen, um “​​amüseerivad” zu erhalten.

Eine Frage, die sich stellen wird, ist, ob der englische Plural und der estnische Plural in Wikifunctions dasselbe Objekt sein sollten oder ob es sich um zwei verschiedene Objekte handeln sollte. In Wikidata ist die Antwort, dass sie (im Allgemeinen) dasselbe Element sind, Plural – die Form für mehr als eins oder null, je nach Sprache. Es gibt mehrere Sprachen, die andere grammatikalische Zahlen haben, wie Paukal, Dual, Trial und andere, die im Englischen nicht verwendet werden, und andere Sprachen, die nur zwei haben. Sogar bei Sprachen, die nur zwei Werte verwenden, gibt es Unterschiede; zum Beispiel verwendet Englisch die Pluralform für null ('He ate zero eggs'), während Französisch die Singularform verwendet ('Il a mangé zero œuf' oder idiomatischer 'Il n'a mangé aucun œuf').

In Wikifunctions könnten wir individuelle Aufzählungen für jede Sprache wählen. Das hätte den Vorteil, dass wir einfachere, aber für jede Sprache unterschiedliche Benutzeroberflächen ermöglichen würden, in denen wir nur die für die jeweilige Sprache relevanten Funktionen anzeigen. Für Englisch würden wir also weder die anderen Zahlenklassen anzeigen noch nach grammatikalischen Funktion fragen, die für die Sprache nicht relevant sind.

Es gibt verschiedene Lösungen und die folgende Liste ist nicht vollständig:

  1. eine einzige Aufzählung aller grammatikalischen Funktionen, wie in Wikidata
  2. gemeinsame Aufzählungen für die Gruppen grammatischer Funktionen, wie Fälle, Zahlen, etc.
  3. Aufzählungen für die Gruppen grammatikalischer Funktionen, die tatsächlich für Sprachen auftreten, d. h. eine gemeinsame Aufzählung für alle Sprachen, die nur Singular und Plural verwenden
  4. eine Aufzählung für jede Sprache und für jede Gruppe grammatikalischer Funktionen

Wir haben diese Frage in der Special Interest Group Natural Language Generation diskutiert. Eine andere Lösung, die erwähnt wurde, war die Verwendung von Untertypen, beispielsweise um “Englische Zahlen” zu einem Untertyp des Typs “Grammatikalische Zahlen” mit gemeinsamen Elementen zu machen. Da Wikifunctions jedoch keine Untertypen unterstützt, ist dies derzeit keine Option.

Es ist sehr wahrscheinlich, dass wir dieses Problem nicht vollständig lösen können, bis wir es tatsächlich gebaut haben und in der Praxis herausgefunden haben, wie es funktioniert. Es könnte sogar sein, dass wir einige der Entscheidungen später ändern, wenn wir Muster der Wikifunctions-Nutzung entdecken, die Wikifunctions benutzerfreundlicher und einfacher zu verwenden machen. Aber es wäre gut, darüber nachzudenken, was wir anstreben möchten und nach welchen Prinzipien wir unsere Designentscheidungen ausrichten.

Letzte Änderungen an der Software

Die große Arbeit, die wir diese Woche erledigt haben, war eine umfassende Neugestaltung des Front-End-Codes für die Anzeige von Bezeichnungen. Wie bei MediaWiki-basierten Werkzeugen üblich, zeigen wir als Ersatz die englische Bezeichnung an, wenn deine Sprache auf Französisch eingestellt war, aber keine französische Bezeichnung, aber eine englische Bezeichnung vorhanden war. Zuvor haben wir die Bezeichnung basierend auf der von dir angezeigten Sprache in eine Zeichenkette aufgelöst und diese angezeigt, was größtenteils funktionierte, aber bedeutete, dass die Bezeichnung keine Hinweise auf die Sprache oder Richtung enthielt, wenn diese vom Kontext abwichen. Wir geben jetzt die Sprache der Bezeichnung und damit die Richtung an allen Stellen vollständig weiter (T343464, T342661). In Zukunft werden wir möglicherweise anpassen, wie Ersatz-Bezeichnungen wie diese angezeigt werden, um möglicherweise direkt zu erklären, welche Sprache angezeigt wird, und/oder einen Aufruf zum Übersetzen der Bezeichnung bereitzustellen; Du kannst im übergeordneten Task deine Ideen einbringen (T343460).

Neben der oben genannten Arbeit haben wir den API-Code für Funktionsaufrufe angepasst, um die Header zur Aktivitätsverfolgung (T365053) korrekt weiterzuleiten, und einige Verbesserungen an der Codequalität vorgenommen. Darüber hinaus haben wir leistungsbezogene Probleme mit den Back-End-Diensten untersucht und hoffen, bald mehr darüber berichten zu können.

Funktion der Woche: Tage im Monat (kein Schaltjahr)

Benutzt du deine Fingerknöchel, wenn du versuchst, dich daran zu erinnern, wie viele Tage ein bestimmter Kalendermonat hat? Das ist nicht mehr nötig! Willkommen bei der Funktion Tage im Monat (kein Schaltjahr) (Z16316).

Zugegebenermaßen sind deine Fingerknöchel oft leichter verfügbar als der Zugriff auf Wikifunctions, aber lassen wir diesen Nachteil für einen Moment außer Acht.

Die neue Funktion nimmt einen Monat des Gregorianischen Kalenders, den wir letzte Woche als neuen Typ eingeführt haben, und gibt eine natürliche Zahl zurück, abhängig davon, wie viele Tage dieser Monat in einem Jahr hat, das kein Schaltjahr ist (es gibt auch eine entsprechende Funktion für Schaltjahre).

Die Funktion verfügt über zwölf Tests, einen für jeden Monat (wodurch sie eine vollständig abgedeckte Funktion ist), und derzeit zwei Implementierungen, beide in Python:

Update: Laut 99of9, dem Ersteller dieser Implementierung, wurde diese Formel tatsächlich für Wikifunctions erfunden, wobei die Methode mit den Fingerknöcheln als Inspiration diente: Das "Modulo 2" ist auf den Wechsel von Knöcheln und Tälern zurückzuführen und die "Teilung von ganzen Zahlen durch 8" stellt dar, wo wir von einer Hand auf die andere wechseln.

Das Schöne an einer guten oder sogar vollständigen Test-Abdeckung wie in diesem Fall ist, dass du die Formel nicht einmal verstehen oder beweisen musst, um ihr zu vertrauen (obwohl das sicher nicht schadet): Du kannst einfach überprüfen, ob alle Testfälle deinen Erwartungen entsprechen und bestanden werden (was der Fall ist).

Vielen Dank an die Community für die schnelle Übernahme des neuen Typs und für die Erstellung von über einem Dutzend neuer Funktionen mit dem neuen Typ.