2026-04-11 05:56:50 +00:00
|
|
|
from dataclasses import dataclass, field
|
2026-04-08 19:26:26 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class Wordform:
|
|
|
|
|
id: str
|
|
|
|
|
lemma_id: str
|
|
|
|
|
form: str
|
|
|
|
|
tags: list[str]
|
|
|
|
|
|
|
|
|
|
|
2026-04-11 05:56:50 +00:00
|
|
|
@dataclass
|
|
|
|
|
class SenseLink:
|
|
|
|
|
id: str
|
|
|
|
|
sense_id: str
|
|
|
|
|
link_text: str
|
|
|
|
|
link_target: str
|
|
|
|
|
target_lemma_id: str | None
|
|
|
|
|
|
|
|
|
|
|
2026-04-08 19:26:26 +00:00
|
|
|
@dataclass
|
|
|
|
|
class Sense:
|
|
|
|
|
id: str
|
|
|
|
|
lemma_id: str
|
|
|
|
|
sense_index: int
|
|
|
|
|
gloss: str
|
|
|
|
|
topics: list[str]
|
|
|
|
|
tags: list[str]
|
2026-04-11 05:56:50 +00:00
|
|
|
links: list[SenseLink] = field(default_factory=list)
|
2026-04-08 19:26:26 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class Lemma:
|
|
|
|
|
id: str
|
|
|
|
|
headword: str
|
|
|
|
|
language: str
|
|
|
|
|
pos_raw: str
|
|
|
|
|
pos_normalised: str | None
|
|
|
|
|
gender: str | None
|
|
|
|
|
tags: list[str]
|
|
|
|
|
senses: list[Sense] = field(default_factory=list)
|
|
|
|
|
wordforms: list[Wordform] = field(default_factory=list)
|