about summary refs log tree commit diff stats
path: root/archive/2025/summer/bsc_gerg/src/knowledge/occurrence.py
blob: 0aa1ce209f8b70fc56dac13c3135c8932cf432a6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from typing import Annotated, List

from pydantic import Field

from src.terminology.terminology import TermExtracted, OccurrenceResolver, OccurrenceResolved



class MockOccurrenceResolver(OccurrenceResolver):

    texts: Annotated[List[str], Field(default_factory=lambda:[
        "Das ist ein Text über den Schrankenwärter",
        "Das Gleis ist noch nicht sichern",
        "Wir fahren hier eine Sperrfahrt."
        "Die Strecke muss man sichern."
    ])]

    async def activate(self, event: TermExtracted):
        term = event.term
        for text in self.texts:
            if term.text in text:
                source = self.blackboard.add_text_source(text)
                term.occurrences.append(source.id)
                yield OccurrenceResolved(term=term, source=source)