Skip to content

MorphoLaelaps


MorphoLaelaps ist ein zentraler Morphologie-Service der zu einem gegebenen MorphoString sämtliche relevante Grammatiken aufspürt. 🙃

Verwendung

php
$GefundeneGrammatiken = new MorphoLaelaps('min'/'max', true)
                        ->withinGrammatikCollection($GrammatikCollection)
                        ->detectGrammatik('v3slia---')
                        ->getResult();
// Dies gibt beispielsweise Plusquamperfekt und andere relevante Grammatiken zurück.

Konstruktor:

  • public function __construct($MorphoRuleset = 'max', $Strict = false):
    • $MorphoRuleset: Wählt das Regelsatz-Set aus ('min' oder 'max'), das für die Analyse verwendet wird.
    • $Strict: Legt fest, ob im strikten Modus (true) oder im erweiterten Modus (false) gesucht wird.

Methoden:

  1. withinGrammatikCollection($GrammatikCollection):
    • Setzt eine Sammlung (Collection) von Grammatiken, innerhalb derer gesucht werden soll, die im Rahmen der Progression den Schülern bereits bekannt sind.
    • Wird keine Collection übergeben, wird in der gesamten Grammatik gesucht.
  2. detectGrammatik(string $MorphoString):
    • Durchsucht die Grammatik basierend auf dem übergebenen MorphoString.
    • Der MorphoString wird in ein assoziatives Array umgewandelt, um die Analyse zu erleichtern.
    • Die Methode prüft Übereinstimmungen zwischen dem MorphoString und den Regeln aus dem gewählten Regelsatz.
    • Im strikten Modus werden nur die Grammatiken zurückgegeben, die genau mit dem MorphoString übereinstimmen oder determinierende Buchstaben enthalten.
  3. getResult(bool $asArray = false):
    • Gibt das Ergebnis der Suche zurück.
    • Die Rückgabe kann entweder als Array oder als Collection erfolgen, abhängig vom Parameter $asArray.

Identifikationsalgorithmus

Algorithmus zur Identifizierung relevanter Grammatik in MorphoLaelaps

Der Kernalgorithmus von MorphoLaelaps zur Identifizierung relevanter Grammatik basiert auf dem Abgleich eines gegebenen MorphoStrings mit definierten morphologischen Regeln. Hier ist eine detailliertere Erklärung der Schritte und Logik:

  1. Initialisierung:
    • Der MorphoString und die optionale GrammatikCollection werden übergeben.
    • Der Konstruktor initialisiert das Regelset (morpho_ruleset_min oder morpho_ruleset_max) und den Modus (strict oder verbose).
  2. Vorbereitung des MorphoStrings:
    • Der MorphoString wird in ein assoziatives Array umgewandelt, wobei leere Stellen ('-') entfernt werden.
    • Die erste Position des Arrays, die die Wortart repräsentiert, wird beibehalten, aber für den direkten Vergleich vorerst entfernt.
  3. Auswahl der Grammatiksammlung:
    • Wenn eine spezifische GrammatikCollection übergeben wurde, wird diese verwendet.
    • Andernfalls wird die gesamte Datenbank nach relevanten Grammatikregeln durchsucht, die im gewählten MorphoRuleset definiert sind.
  4. Abgleich des MorphoStrings mit Grammatikregeln:
    • Für jede Grammatikregel in der Sammlung wird überprüft, ob der erste Buchstabe (Wortart) des MorphoStrings mit dem ersten Schlüssel der Regel übereinstimmt.
    • Wenn ja, wird jeder Buchstabe des MorphoStrings mit den entsprechenden Positionen im Regelset verglichen.
    • Für jede Position, die übereinstimmt, wird ein Zähler erhöht.
    • Es wird unterschieden zwischen determinierenden und nicht-determinierenden Übereinstimmungen (basierend darauf, ob die Regel an dieser Position nur einen möglichen Buchstaben oder mehrere zulässt).
  5. Ergebnisauswahl:
    • Im Strict-Modus werden nur die Grammatikregeln zurückgegeben, die entweder genau so viele Treffer wie relevante Buchstaben im MorphoString haben oder als determinierend gekennzeichnet sind.
    • Im Verbose-Modus werden alle gefundenen Übereinstimmungen zurückgegeben.
  6. Rückgabe des Ergebnisses:
    • Die identifizierten Grammatikregeln werden entweder als Collection oder als Array zurückgegeben, abhängig von der Methode getResult.

Beispiel:

Nehmen wir an, wir haben den MorphoString v3slia--- und verwenden das morpho_ruleset_max.

  • Wortart-Bestimmung: Der Buchstabe 'v' wird als Verb identifiziert.
  • Abgleich: Jeder Buchstabe wird mit den Regeln für Verben verglichen. Angenommen, eine Regel sagt, dass an der 3. Position ein 's' für ein bestimmtes Zeitformat steht, dann zählt dies als Treffer.
  • Ergebnis: Basierend auf der Anzahl und Art der Übereinstimmungen werden relevante Grammatikregeln ausgewählt und zurückgegeben.

Hinweis:

Die Effizienz und Genauigkeit dieses Algorithmus hängen stark von der Qualität und Struktur des Regelsets sowie von der Vollständigkeit der MorphoStrings ab.