diff options
| author | Martin Fink <martin@finkmartin.com> | 2025-09-11 09:19:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-11 09:19:48 +0200 |
| commit | 17af5f6fc0538f615b8612dcd2cb77c2affad63f (patch) | |
| tree | 76e4c260123b68b93da2417482024ba11f9838ee /archive/2025/summer/bsc_gerg/src/terminology/models.py | |
| parent | a910d0a3e57f4de47cf2387ac239ae8d0eaca507 (diff) | |
| parent | 3e5d3ca82193e8e8561beb9ceac9982f376d84e2 (diff) | |
| download | research-work-archive-artifacts-17af5f6fc0538f615b8612dcd2cb77c2affad63f.tar.gz research-work-archive-artifacts-17af5f6fc0538f615b8612dcd2cb77c2affad63f.zip | |
Merge pull request #10 from walamana/main
Add bsc_gerg
Diffstat (limited to 'archive/2025/summer/bsc_gerg/src/terminology/models.py')
| -rw-r--r-- | archive/2025/summer/bsc_gerg/src/terminology/models.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/archive/2025/summer/bsc_gerg/src/terminology/models.py b/archive/2025/summer/bsc_gerg/src/terminology/models.py new file mode 100644 index 000000000..270751e6c --- /dev/null +++ b/archive/2025/summer/bsc_gerg/src/terminology/models.py @@ -0,0 +1,34 @@ +import uuid +from typing import Any, Optional, Annotated, List +from uuid import UUID + +from pydantic import BaseModel, Field + + +class TextSource(BaseModel): + id: UUID = Field(UUID) + text: str + + +class Definition(BaseModel): + text: str + verified: bool + partial: bool + source: Optional[TextSource | Any] = None + + def is_combined(self) -> bool: + return not self.verified and not self.partial + + def is_partial(self) -> bool: + return not self.verified and self.partial + +class Term(BaseModel): + id: Annotated[UUID, Field(default_factory=uuid.uuid4)] + text: str + normalization: Optional[str] = None + variations: Annotated[List[str], Field(default_factory=list)] + occurrences: Annotated[List[UUID], Field(default_factory=list)] + definitions: Annotated[List[Definition], Field(default_factory=list)] + + def normalized_or_text(self): + return self.normalization if self.normalization is not None else self.text |