Skip to content

Numeralia im Glossarium

Überblick

Numeralia (Zahlwörter) stellen eine hochspezialisierte Wortart im Hermeneus-Glossarium dar. Sie umfassen vier verschiedene Formen: Kardinalzahlen, Ordinalzahlen, Distributivzahlen und Multiplikativzahlen. Die Morphologisierung erfolgt ausschließlich automatisch und berücksichtigt die spezifischen Eigenheiten lateinischer Zahlwörter.

Model: App\Models\NumeraleTabelle: glossarium_numeraliaBasis-Klasse: Erbt von VocabMorpher: App\Morpher\NumeraleMorpherMorph Info Handler: App\Morpher\NumeraleMorphInfoHandler

Charakteristika

  • Vier Zahlformen: Kardinal, Ordinal, Distributiv, Multiplikativ
  • Ausschließlich automatische Morphologisierung
  • Spezielle Felder für alle vier Zahlformen
  • Optionales Feld für Zahlenwert
  • Komplexe Validierung (IsValid() prüft alle lemma_*-Felder)
  • Sonderbehandlung für unus, duo, tres und Hunderterzahlen

Datenbankstruktur

Tabelle: glossarium_numeralia

FeldTypBeschreibungBeispiel
idIntegerPrimärschlüssel1
lemmaStringKardinalzahl (Grundform)unus, duo, tres, quattuor
lemma_ordinalStringOrdinalzahlprimus, secundus, tertius
lemma_distributivStringDistributivzahlsinguli, bini, trini
lemma_multiplikativStringMultiplikativzahlsemel, bis, ter
infoString (nullable)Zusätzliche Informationennull
zahlenwertInteger (nullable)Numerischer Wert1, 2, 3, 4, ...
bedeutungStringDeutsche Bedeutungeins, zwei, drei
bedeutungen_alleText (nullable)Alle Bedeutungennull
morphJSONMorphologische Formen als JSON
statusIntegerVerifizierungsstatus0-3
created_atTimestampErstellungszeitpunkt
updated_atTimestampAktualisierungszeitpunkt
deleted_atTimestamp (nullable)Löschzeitpunkt (Soft Delete)
created_by_idInteger (nullable)Ersteller-ID
updated_by_idInteger (nullable)Bearbeiter-ID

Erforderliche Felder

Minimale Anforderung

php
public array $RequiredFields = [
    'lemma',        // Kardinalzahl
    'bedeutung'     // Deutsche Bedeutung
];

Vollständige Validierung

php
public function IsValid(): bool
{
    if (
        ! empty($this->lemma) &&
        ! empty($this->lemma_ordinal) &&
        ! empty($this->lemma_distributiv) &&
        ! empty($this->lemma_multiplikativ)
    ) {
        return true;
    }

    return false;
}

Wichtig: Für eine vollständige Morphologisierung müssen alle vier lemma_*-Felder gefüllt sein!

Typische Fehler und Hinweise zum Ausfüllen

Numeralia sind die komplexeste nicht-verbale Wortart mit vier verschiedenen Zahlformen. Die häufigsten Fehler entstehen durch unvollständige Einträge oder falsche Zuordnungen. Die folgende Tabelle zeigt kritische Fehlerquellen:

FeldTypischer FehlerAuswirkungRichtigHinweis
lemmaGroßschreibung: "Unus"Formenerkennung versagtunusNumeralia IMMER kleinschreiben
lemmaOrdinalzahl als Kardinalzahl: "primus"Falsche Kategorisierung, fehlende KardinalformunusKardinalzahl (eins, zwei, drei) ins lemma-Feld
zahlenwertFalsch oder leer: "tres" mit zahlenwert=4Sortierung und Filterung fehlerhafttres mit zahlenwert=3Zahlenwert muss zur Kardinalzahl passen
zahlenwertText statt Zahl: "drei"Datenbankfehler, keine Sortierung möglich3Nur numerische Werte (1, 2, 3, ...)
lemma_ordinalLeer bei vollständigem EintragIsValid() gibt false zurück, keine MorphologisierungtertiusFür vollständige Morphologisierung ALLE vier Felder nötig
lemma_distributivLeer oder vergessen: "trini" fehltUnvollständige Morphologie, keine DistributivformentriniDistributivformen sind Teil des vollständigen Paradigmas
lemma_multiplikativLeer oder vergessen: "ter" fehltUnvollständige MorphologieterAuch Multiplikativform erfassen
AllgemeinAdjektiv als Numerale: "multus"Falsche Wortart, Morphologie passt nichtmultus als Adjektiv"viel/viele" ist Adjektiv, kein Numerale
AllgemeinVerschiedene Formen als separate Einträge: "primus" separatDatenredundanz, keine Verlinkungprimus als lemma_ordinal von unusAlle vier Formen gehören zu EINEM Eintrag
lemma_ordinalKardinalzahl statt Ordinalzahl: "duo" statt "secundus"Morphologisierung schlägt fehlsecundusOrdinalzahl: der erste, zweite, dritte, ...
bedeutungUnvollständig: nur "eins"Lernende kennen andere Formen nichteins (primus, singuli, semel)Alle vier Bedeutungen nennen oder zumindest Hauptform
lemma_distributivVerwechslung mit Multiplikativ: "bis" statt "bini"Falsche FormenbiniDistributiv: je zwei, Multiplikativ: zweimal

Checkliste für korrekte Numeralia-Einträge

Vor dem Speichern eines Numerale sollten folgende Punkte geprüft werden:

  • Ist das Lemma kleingeschrieben?
  • Ist die Kardinalzahl (nicht die Ordinalzahl) im lemma-Feld?
  • Sind alle vier lemma_*-Felder ausgefüllt (kardinal, ordinal, distributiv, multiplikativ)?
  • Ist der zahlenwert korrekt und numerisch (nicht als Text)?
  • Wurde geprüft, dass es sich nicht um ein Adjektiv handelt (wie "multus")?
  • Sind nicht mehrere separate Einträge für dieselbe Zahl angelegt worden?
  • Passt die bedeutung zu allen vier Zahlformen?
  • Ist bei deklinablen Formen (unus, duo, tres, Hunderterzahlen) der Stamm korrekt?

Morphologisierung

Morphologisierbarkeit

php
public bool $IsManuellMorphologisierbar = false;  // Keine manuelle Morphologisierung!
public bool $IsMorphologisierbar = true;          // Automatische Morphologisierung möglich

Numeralia werden ausschließlich automatisch morphologisiert. Die Komplexität der vier verschiedenen Zahlformen und die zahlreichen Sonderformen machen eine manuelle Eingabe unpraktikabel.

Morphologie-Struktur

JSON-Schema

Die Morphologie von Numeralia enthält vier Hauptebenen:

json
{
  "1_kardinal": {
    "1_sg": {
      "1_mask": { ... },
      "2_fem": { ... },
      "3_neutr": { ... }
    },
    "2_pl": {
      "1_mask": { ... },
      "2_fem": { ... },
      "3_neutr": { ... }
    }
  },
  "2_ordinal": {
    "1_sg": { ... },
    "2_pl": { ... }
  },
  "3_distributiv": {
    "1_sg": { ... },
    "2_pl": { ... }
  },
  "4_multiplikativ": "ter"
}

Detaillierte Struktur am Beispiel "tres"

json
{
  "1_kardinal": {
    "1_sg": {
      "1_mask": { "1_nom": "", "2_gen": "", ... },
      "2_fem": { "1_nom": "", "2_gen": "", ... },
      "3_neutr": { "1_nom": "", "2_gen": "", ... }
    },
    "2_pl": {
      "1_mask": {
        "1_nom": "tres",
        "2_gen": "trium",
        "3_dat": "tribus",
        "4_akk": "tres",
        "5_vok": "tres",
        "6_abl": "tribus"
      },
      "2_fem": {
        "1_nom": "tres",
        "2_gen": "trium",
        "3_dat": "tribus",
        "4_akk": "tres",
        "5_vok": "tres",
        "6_abl": "tribus"
      },
      "3_neutr": {
        "1_nom": "tria",
        "2_gen": "trium",
        "3_dat": "tribus",
        "4_akk": "tria",
        "5_vok": "tria",
        "6_abl": "tribus"
      }
    }
  },
  "2_ordinal": {
    "1_sg": {
      "1_mask": {
        "1_nom": "tertius",
        "2_gen": "tertii",
        "3_dat": "tertio",
        "4_akk": "tertium",
        "5_vok": "tertii",
        "6_abl": "tertio"
      },
      "2_fem": {
        "1_nom": "tertia",
        "2_gen": "tertiae",
        "3_dat": "tertiae",
        "4_akk": "tertiam",
        "5_vok": "tertia",
        "6_abl": "tertia"
      },
      "3_neutr": {
        "1_nom": "tertium",
        "2_gen": "tertii",
        "3_dat": "tertio",
        "4_akk": "tertium",
        "5_vok": "tertium",
        "6_abl": "tertio"
      }
    },
    "2_pl": { ... }
  },
  "3_distributiv": {
    "1_sg": {
      "1_mask": {
        "1_nom": "ternus",
        "2_gen": "terni",
        ...
      },
      "2_fem": { ... },
      "3_neutr": { ... }
    },
    "2_pl": { ... }
  },
  "4_multiplikativ": "ter"
}

Zugriff auf Morphologie

php
// Zugriff auf verschiedene Zahlformen
$numerale = Numerale::find(3); // tres
$forms = $numerale->getMorphArrayAttribute();

// Kardinalzahl: Nominativ Plural neutrum
echo $forms['1_kardinal']['2_pl']['3_neutr']['1_nom']; // "tria"

// Ordinalzahl: Nominativ Singular maskulin
echo $forms['2_ordinal']['1_sg']['1_mask']['1_nom']; // "tertius"

// Distributivzahl: Akkusativ Plural feminin
echo $forms['3_distributiv']['2_pl']['2_fem']['4_akk']; // "ternas"

// Multiplikativzahl (String, nicht deklinierbar)
echo $forms['4_multiplikativ']; // "ter"

Zahlformen

1. Kardinalzahlen (Grundzahlen)

Die Kardinalzahl ist die Grundform und steht im lemma-Feld.

Beispiele:

  • unus (eins)
  • duo (zwei)
  • tres (drei)
  • quattuor (vier)
  • decem (zehn)
  • centum (hundert)

Besonderheiten:

  • unus wird dekliniert (nur Singular)
  • duo, tres haben spezielle Pluralformen
  • quattuor bis decem sind indeklinabel
  • Hunderterzahlen (ducenti, trecenti, ...) werden wie Adjektive der a/o-Deklination dekliniert

2. Ordinalzahlen (Ordnungszahlen)

Ordinalzahlen stehen im lemma_ordinal-Feld und werden wie Adjektive der a/o-Deklination dekliniert.

Beispiele:

  • primus (der erste)
  • secundus (der zweite)
  • tertius (der dritte)
  • quartus (der vierte)
  • decimus (der zehnte)

3. Distributivzahlen (Verteilungszahlen)

Distributivzahlen stehen im lemma_distributiv-Feld und werden wie Adjektive der a/o-Deklination dekliniert.

Beispiele:

  • singuli (je einer)
  • bini (je zwei)
  • trini (je drei)
  • quaterni (je vier)

4. Multiplikativzahlen (Vervielfältigungszahlen)

Multiplikativzahlen stehen im lemma_multiplikativ-Feld und sind nicht deklinierbar (Adverbien).

Beispiele:

  • semel (einmal)
  • bis (zweimal)
  • ter (dreimal)
  • quater (viermal)
  • quinquies (fünfmal)

Sonderbehandlung im Morpher

unus (eins)

php
case 'unus':
    $this->StaticFormKardinal = $this->FormenVonUnus;
    $this->StammOrdinal = 'prim';
    $this->EndungenOrdinal = $this->EndungenAO;
    $this->StammDistributiv = 'singul';
    $this->EndungenDistributiv = $this->EndungenAO;
    $this->StaticFormMultiplikativ = $this->lemma_multiplikativ;
    $this->NurSingular = true;
    break;

Besonderheit: Nur Singularformen, Genitiv auf -ius, Dativ auf -i.

duo (zwei)

php
case 'duo':
    $this->StaticFormKardinal = $this->FormenVonDuo;
    // ...
    break;

Besonderheit: Nur Pluralformen, unterschiedliche Formen für m./f./n.

tres (drei)

php
case 'tres':
    $this->StaticFormKardinal = $this->FormenVonTres;
    // ...
    break;

Besonderheit: Nur Pluralformen, neutrales Neutrum "tria".

Hunderterzahlen (ducenti, trecenti, ...)

php
if ($this->IsHunderter()) {
    $this->setAllValuesFor($this->StaticFormKardinal, '');
    $this->StammKardinal = $this->KardinalOhneEndung_1;
    $this->EndungenKardinal = $this->EndungenAO;
}

Besonderheit: Werden wie reguläre Adjektive dekliniert.

getLemmaInfo()

php
public function getLemmaInfo(): string
{
    return $this->getInfoColumn();
}

Numeralia geben nur den Inhalt des info-Feldes zurück (meist leer).

Verwendungsbeispiele

Numerale abrufen

php
use App\Models\Numerale;

// Numerale laden
$tres = Numerale::where('lemma', 'tres')->first();

// Zahlenwert anzeigen
echo $tres->zahlenwert; // 3

// Alle vier Zahlformen anzeigen
echo "Kardinal: " . $tres->lemma . "\n";
echo "Ordinal: " . $tres->lemma_ordinal . "\n";
echo "Distributiv: " . $tres->lemma_distributiv . "\n";
echo "Multiplikativ: " . $tres->lemma_multiplikativ . "\n";

Morphologische Formen abrufen

php
$numerale = Numerale::find(2); // duo
$formen = $numerale->getMorphArrayAttribute();

// Kardinalzahl Femininum Nominativ Plural
echo $formen['1_kardinal']['2_pl']['2_fem']['1_nom']; // "duae"

// Ordinalzahl Maskulinum Akkusativ Singular
echo $formen['2_ordinal']['1_sg']['1_mask']['4_akk']; // "secundum"

Neues Numerale erstellen

php
use App\Models\Numerale;

$numerale = Numerale::create([
    'lemma' => 'sex',
    'lemma_ordinal' => 'sextus',
    'lemma_distributiv' => 'seni',
    'lemma_multiplikativ' => 'sexies',
    'zahlenwert' => 6,
    'bedeutung' => 'sechs',
    'status' => 1,
    'created_by_id' => auth()->id()
]);

// Morphologisieren
$numerale->morphologisieren();

Numeralia nach Zahlenwert sortieren

php
// Alle Numeralia aufsteigend sortiert
$numeralia = Numerale::orderBy('zahlenwert', 'asc')->get();

// Numeralia zwischen 1 und 10
$einstellig = Numerale::whereBetween('zahlenwert', [1, 10])->get();

Validierung prüfen

php
$numerale = Numerale::find(1);

if ($numerale->IsValid()) {
    echo "Numerale ist vollständig und kann morphologisiert werden.";
} else {
    echo "Numerale ist unvollständig. Fehlende Felder: ";
    if (empty($numerale->lemma_ordinal)) echo "lemma_ordinal ";
    if (empty($numerale->lemma_distributiv)) echo "lemma_distributiv ";
    if (empty($numerale->lemma_multiplikativ)) echo "lemma_multiplikativ ";
}

Beispieldaten aus der Datenbank

unus (eins) – Nur Singular

php
[
    'id' => 1,
    'lemma' => 'unus',
    'lemma_ordinal' => 'primus',
    'lemma_distributiv' => 'singuli',
    'lemma_multiplikativ' => 'semel',
    'zahlenwert' => 1,
    'bedeutung' => 'eins',
    'status' => 1
]

Morphologische Besonderheiten:

  • Kardinal nur Singular: unus, una, unum
  • Gen. Sg. auf -ius: unius (alle Genera)
  • Dat. Sg. auf -i: uni (alle Genera)

duo (zwei) – Nur Plural

php
[
    'id' => 2,
    'lemma' => 'duo',
    'lemma_ordinal' => 'secundus',
    'lemma_distributiv' => 'bini',
    'lemma_multiplikativ' => 'bis',
    'zahlenwert' => 2,
    'bedeutung' => 'zwei',
    'status' => 3
]

Morphologische Besonderheiten:

  • Kardinal nur Plural: duo (m./n.), duae (f.)
  • Gen. Pl.: duorum (m./n.), duarum (f.)
  • Dat./Abl. Pl.: duobus (m./n.), duabus (f.)

tres (drei) – Nur Plural

php
[
    'id' => 3,
    'lemma' => 'tres',
    'lemma_ordinal' => 'tertius',
    'lemma_distributiv' => 'trini',
    'lemma_multiplikativ' => 'ter',
    'zahlenwert' => 3,
    'bedeutung' => 'drei',
    'status' => 1
]

Morphologische Besonderheiten:

  • Kardinal nur Plural: tres (m./f.), tria (n.)
  • Gen. Pl.: trium (alle Genera)
  • Dat./Abl. Pl.: tribus (alle Genera)

quattuor (vier) – Indeklinabel

php
[
    'id' => 4,
    'lemma' => 'quattuor',
    'lemma_ordinal' => 'quartus',
    'lemma_distributiv' => 'quaterni',
    'lemma_multiplikativ' => 'quater',
    'zahlenwert' => 4,
    'bedeutung' => 'vier',
    'status' => 1
]

Morphologische Besonderheiten:

  • Kardinal indeklinabel: quattuor (alle Kasus/Genera/Numeri)
  • Ordinal, Distributiv deklinierbar

quinque (fünf) – Indeklinabel

php
[
    'id' => 5,
    'lemma' => 'quinque',
    'lemma_ordinal' => 'quintus',
    'lemma_distributiv' => 'quini',
    'lemma_multiplikativ' => 'quinquies',
    'zahlenwert' => 5,
    'bedeutung' => 'fünf',
    'status' => 1
]

Besonderheiten

Keine manuelle Morphologisierung

Die komplexe Struktur mit vier verschiedenen Zahlformen und die zahlreichen Sonderregeln machen eine manuelle Morphologisierung unmöglich. Der NumeraleMorpher behandelt alle Spezialfälle automatisch.

Multiplikativzahlen sind Strings

Im Gegensatz zu den anderen drei Zahlformen, die als vollständige Deklinationsparadigmen gespeichert werden, ist 4_multiplikativ ein einfacher String, da Multiplikativzahlen nicht dekliniert werden.

IsValid() vs. RequiredFields

Die IsValid()-Methode ist strenger als RequiredFields:

  • RequiredFields: Nur lemma und bedeutung erforderlich
  • IsValid(): Alle vier lemma_*-Felder müssen gefüllt sein

Dies ermöglicht das Speichern unvollständiger Numeralia, die später vervollständigt werden können.

Zahlenwert optional

Das Feld zahlenwert ist optional und dient primär zur Sortierung und Filterung. Es wird nicht für die Morphologisierung benötigt.

Konstanten

php
const ROUTE_NAME = 'numeralia';
const MODEL_NAME = 'numerale';
const CLASS_NAME = 'Numerale';
const MORPHER = NumeraleMorpher::class;
const MORPH_INFO_HANDLER = NumeraleMorphInfoHandler::class;

Vererbungshierarchie

Vocab (Basis-Model)
  └── Numerale

Numeralia erben von Vocab und nutzen folgende Traits:

  • HasAlleFormenAttribute
  • Morphable
  • Reportable
  • Verifiable
  • hasStatus
  • hasVerweise
  • belongsToLerneinheiten

Weitere Informationen

Für Details zur Morphologisierung siehe:

Für allgemeine Glossarium-Informationen siehe: