Skip to content

Types

BaseEcosystemStudyFeatures

Bases: BaseModel

Basis-Klasse für ökosystembezogene Studienmerkmale.

Source code in src/kibad_llm/schema/types.py
 6
 7
 8
 9
10
class BaseEcosystemStudyFeatures(BaseModel):
    """Basis-Klasse für ökosystembezogene Studienmerkmale."""

    # do not allow extra fields per default
    model_config = ConfigDict(extra="forbid")

BiodiversityVariableEnum

Bases: str, Enum

"ENS" steht dabei für "Effective Number of Species" und ist ein Index, der angibt, wie viele Arten es gibt und wie gleichmäßig die Individuen auf die verschiedenen Arten verteilt sind (Effektive Artenzahl). "Artenanzahl" gibt nur die die Anzahl der verschiedenen Arten an. "Abundanz" gibt die Häufigkeit einer Art oder Gruppe an.

Source code in src/kibad_llm/schema/types.py
1049
1050
1051
1052
1053
1054
1055
1056
1057
class BiodiversityVariableEnum(str, Enum):
    """ "ENS" steht dabei für "Effective Number of Species" und ist ein Index, der angibt, wie viele Arten
    es gibt und wie gleichmäßig die Individuen auf die verschiedenen Arten verteilt sind (Effektive Artenzahl).
    "Artenanzahl" gibt nur die die Anzahl der verschiedenen Arten an. "Abundanz" gibt die Häufigkeit einer
    Art oder Gruppe an."""

    ABUNDANZ = "Abundanz"
    ARTENZAHL = "Artenzahl"
    ENS = "ENS"

CompoundFeature

Bases: BaseModel

Basis-Klasse für komplexe Merkmale mit Unterfeldern.

Source code in src/kibad_llm/schema/types.py
13
14
15
16
17
class CompoundFeature(BaseModel):
    """Basis-Klasse für komplexe Merkmale mit Unterfeldern."""

    # do not allow extra fields per default
    model_config = ConfigDict(extra="forbid")

ConservationArea

Bases: CompoundFeature

Schutzgebiet mit Name, Beschreibung und Erfolg.

Source code in src/kibad_llm/schema/types.py
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
class ConservationArea(CompoundFeature):
    """Schutzgebiet mit Name, Beschreibung und Erfolg."""

    name: str | None = Field(
        default=None,
        alias="Name",
        description="Name des Schutzgebiets",
    )
    description: str | None = Field(
        default=None,
        alias="Beschreibung",
        description="Charakterisierung des Schutzgebiets",
    )
    success: SuccessEnum = Field(
        ...,
        alias="Erfolg",
        description="Hatte das Schutzgebiet einen messbaren Effekt auf die Biodiversität?",
    )

DirectDriver

Bases: CompoundFeature

Direkter Treiber mit Kategorie und Details.

Source code in src/kibad_llm/schema/types.py
613
614
615
616
617
618
619
620
621
622
623
624
625
class DirectDriver(CompoundFeature):
    """Direkter Treiber mit Kategorie und Details."""

    category: DirectDriverEnum = Field(
        ...,
        alias="Kategorie",
        description="Zu welcher der folgenden Kategorien lässt sich der direkte Treiber zuordnen?",
    )
    details: str | None = Field(
        default=None,
        alias="Details",
        description="Details zum direkten Treiber",
    )

EcosystemService

Bases: CompoundFeature

Ökosystemdienstleistung mit Kategorie, Term und Details.

Source code in src/kibad_llm/schema/types.py
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
class EcosystemService(CompoundFeature):
    """Ökosystemdienstleistung mit Kategorie, Term und Details."""

    category: EcosystemServiceCategoryEnum = Field(
        ...,
        alias="Kategorie",
        description="In welche der folgenden Kategorien lässt sich die im Text behandelte Ökosystemleistung einordnen?",
    )
    term: EcosystemServiceTermEnum | None = Field(
        default=None,
        alias="Term",
        description="Welche konkrete Ökosystemleistung wurde untersucht?",
    )
    details: str | None = Field(
        default=None,
        alias="Details",
        description="Details zur Ökosystemleistung",
    )

EcosystemStudyFeaturesAll

Bases: BaseEcosystemStudyFeatures

Angaben zu den ökosystembezogenen Studienmerkmalen.

Source code in src/kibad_llm/schema/types.py
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
class EcosystemStudyFeaturesAll(BaseEcosystemStudyFeatures):
    """Angaben zu den ökosystembezogenen Studienmerkmalen."""

    habitat: list[HabitatEnum] = Field(
        default_factory=list,
        alias="Lebensräume",
        description="Um welchen der folgenden Lebensräume oder um welche Kombinationen "
        "der folgenden Lebensräume geht es in dem Text?",
    )
    natural_region: list[NaturalRegionEnum] = Field(
        default_factory=list,
        alias="Naturgroßräume",
        description="Um welchen der folgenden Naturgroßräume geht es in dem Text?",
    )
    climate: list[ClimateEnum] = Field(
        default_factory=list,
        alias="Klima",
        description="Welche Umschreibung trifft auf das Klima des Untersuchungsgebiets zu?",
    )
    landuse: list[LanduseEnum] = Field(
        default_factory=list,
        alias="Landnutzung",
        description="Welche Landnutzung wird im oder nahe des Untersuchungsgebietes betrieben? "
        "In welche der folgenden Kategorien fällt die Nutzung?",
    )
    spatial_extent: SpatialExtentEnum | None = Field(
        default=None,
        alias="Räumliche Ausdehnung",
        description="Wie ist insgesamt die räumliche Ausdehnung der Studie?",
    )
    spatial_resolution: SpatialResolutionEnum | None = Field(
        default=None,
        alias="Räumliche Auflösung",
        description="Mit welcher räumlichen Auflösung wurden die einzelnen Messungen "
        "in der Studie durchgeführt?",
    )
    spatial_measurements: int | None = Field(
        default=None,
        alias="Anzahl räumlicher Messungen",
        description="An wie vielen Stellen wurde gemessen?",
    )
    temporal_extent: int | None = Field(
        default=None,
        alias="Zeitraum",
        description="In welchem Zeitraum fanden die Messungen statt?",
    )
    temporal_extent_unit: TemporalExtentUnit | None = Field(
        default=None,
        alias="Zeiteinheit",
        description="In welcher der folgenden Zeiteinheiten ist der Zeitraum angegeben?",
    )
    temporal_resolution: TemporalResolutionEnum | None = Field(
        default=None,
        alias="Zeitliche Auflösung",
        description="Mit welcher zeitlichen Auflösung wurden die einzelnen Messungen in "
        "der Studie durchgeführt?",
    )
    temporal_measurements: int | None = Field(
        default=None,
        alias="Anzahl zeitlicher Messungen",
        description="Zu wie vielen unterschiedlichen Zeitpunkten wurde gemessen?",
    )
    start_year: int | None = Field(
        default=None,
        alias="Startjahr",
        description="In welchem Jahr fand die erste Messung statt?",
    )
    end_year: int | None = Field(
        default=None,
        alias="Endjahr",
        description="In welchem Jahr fand die letzte Messung statt?",
    )
    method: list[MethodEnum] = Field(
        default_factory=list,
        alias="Methoden der Datenaufnahme",
        description="Mit welcher/welchen Methode(n) wurden die Daten erhoben?",
    )
    study_type: list[StudyTypeEnum] = Field(
        default_factory=list,
        alias="Studienart",
        description="Um welche Form der wissenschaftlichen Studie handelt es sich?",
    )
    project: str | None = Field(
        default=None,
        alias="Projekt/Programm",
        description="Gehört die Studie zu einem größeren Programm oder Projekt? Wenn ja, zu welchem?",
    )
    biodiversity_level: list[BiodiversityLevelEnum] = Field(
        default_factory=list,
        alias="Biodiversitätsebene",
        description="Auf welche der folgenden Ebenen wird Biodiversität in der Studie gemessen?",
    )
    biodiversity_variable: list[str] = Field(
        default_factory=list,
        alias="Biodiversitätsvariable",
        description="In welchen Variablen wird die Biodiversität gemessen?",
    )
    transformation_potential: list[TransformationPotentialEnum] = Field(
        default_factory=list,
        alias="Transformationspotenzial",
        description="In welche der folgenden Kategorien lässt sich die im Text behandelte Transformation einordnen? ",
    )
    ecosystem_type: list[EcosystemType] = Field(
        default_factory=list,
        alias="Ökosystemtypen",
        description="Welche Ökosystemtypen werden in der Studie untersucht?",
    )
    location: list[Location] = Field(
        default_factory=list,
        alias="Untersuchungsgebiete",
        description="Welche Untersuchungsgebiete werden in der Studie untersucht?",
    )
    taxa: list[Taxa] = Field(
        default_factory=list,
        alias="Arten",
        description="Welche Arten werden in der Studie untersucht?",
    )
    soil: list[Soil] = Field(
        default_factory=list,
        alias="Böden",
        description="Welche Bodentypen werden in der Studie untersucht?",
    )
    conservation_area: list[ConservationArea] = Field(
        default_factory=list,
        alias="Schutzgebiete",
        description="Welche Schutzgebiete werden in der Studie untersucht?",
    )
    management_measure: list[ManagementMeasure] = Field(
        default_factory=list,
        alias="Bewirtschaftungsmaßnahmen",
        description="Wurden Formen der Bewirtschaftung als Maßnahmen für die Biodiversität untersucht?",
    )
    impulse_measure: list[ImpulseMeasure] = Field(
        default_factory=list,
        alias="Einmalige Maßnahmen",
        description="Wurden einmalige Maßnahmen für die Biodiversität untersucht?",
    )
    direct_driver: list[DirectDriver] = Field(
        default_factory=list,
        alias="Direkte Treiber",
        description="Welche Vorgänge mit direktem Einfluss auf Biodiversität wurden untersucht?",
    )
    indirect_driver: list[IndirectDriver] = Field(
        default_factory=list,
        alias="Indirekte Treiber",
        description="Welche Vorgänge mit indirektem Einfluss auf Biodiversität wurden untersucht?",
    )
    ecosystem_service: list[EcosystemService] = Field(
        default_factory=list,
        alias="Ökosystemleistungen",
        description="Welche Ökosystemleistungen wurden in der Studie untersucht?",
    )

EcosystemStudyFeaturesCompoundsOnly

Bases: BaseEcosystemStudyFeatures

Angaben zu den ökosystembezogenen Studienmerkmalen.

Source code in src/kibad_llm/schema/types.py
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
class EcosystemStudyFeaturesCompoundsOnly(BaseEcosystemStudyFeatures):
    """Angaben zu den ökosystembezogenen Studienmerkmalen."""

    ecosystem_type: list[EcosystemType] = Field(
        default_factory=list,
        alias="Ökosystemtypen",
        description="Welche Ökosystemtypen werden in der Studie untersucht?",
    )
    location: list[Location] = Field(
        default_factory=list,
        alias="Untersuchungsgebiete",
        description="Welche Untersuchungsgebiete werden in der Studie untersucht?",
    )
    taxa: list[Taxa] = Field(
        default_factory=list,
        alias="Arten",
        description="Welche Arten werden in der Studie untersucht?",
    )
    soil: list[Soil] = Field(
        default_factory=list,
        alias="Böden",
        description="Welche Bodentypen werden in der Studie untersucht?",
    )
    conservation_area: list[ConservationArea] = Field(
        default_factory=list,
        alias="Schutzgebiete",
        description="Welche Schutzgebiete werden in der Studie untersucht?",
    )
    management_measure: list[ManagementMeasure] = Field(
        default_factory=list,
        alias="Bewirtschaftungsmaßnahmen",
        description="Wurden Formen der Bewirtschaftung als Maßnahmen für die Biodiversität untersucht?",
    )
    impulse_measure: list[ImpulseMeasure] = Field(
        default_factory=list,
        alias="Einmalige Maßnahmen",
        description="Wurden einmalige Maßnahmen für die Biodiversität untersucht?",
    )
    direct_driver: list[DirectDriver] = Field(
        default_factory=list,
        alias="Direkte Treiber",
        description="Welche Vorgänge mit direktem Einfluss auf Biodiversität wurden untersucht?",
    )
    indirect_driver: list[IndirectDriver] = Field(
        default_factory=list,
        alias="Indirekte Treiber",
        description="Welche Vorgänge mit indirektem Einfluss auf Biodiversität wurden untersucht?",
    )
    ecosystem_service: list[EcosystemService] = Field(
        default_factory=list,
        alias="Ökosystemleistungen",
        description="Welche Ökosystemleistungen wurden in der Studie untersucht?",
    )

EcosystemStudyFeaturesCompoundsSimple

Bases: BaseEcosystemStudyFeatures

Angaben zu den ökosystembezogenen Studienmerkmalen.

Source code in src/kibad_llm/schema/types.py
770
771
772
773
774
775
776
777
778
779
780
781
782
class EcosystemStudyFeaturesCompoundsSimple(BaseEcosystemStudyFeatures):
    """Angaben zu den ökosystembezogenen Studienmerkmalen."""

    ecosystem_type: list[EcosystemType] = Field(
        default_factory=list,
        alias="Ökosystemtypen",
        description="Welche Ökosystemtypen werden in der Studie untersucht?",
    )
    location: list[Location] = Field(
        default_factory=list,
        alias="Standorte",
        description="Welche Standorte werden in der Studie untersucht?",
    )

EcosystemStudyFeaturesCoreFields

Bases: BaseEcosystemStudyFeatures

Das Schema sammelt Angaben zu den wichtigsten biodiversitätsbezogenen Merkmalen der Studie: Lebensräume, Ökosystemtypen, Arten bzw. Artengruppen, sowie die untersuchte Biodiversitätsebene.

Source code in src/kibad_llm/schema/types.py
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
class EcosystemStudyFeaturesCoreFields(BaseEcosystemStudyFeatures):
    """Das Schema sammelt Angaben zu den wichtigsten biodiversitätsbezogenen Merkmalen der Studie:
    Lebensräume, Ökosystemtypen, Arten bzw. Artengruppen, sowie die untersuchte Biodiversitätsebene.
    """

    habitat: list[HabitatEnum] = Field(
        default_factory=list,
        alias="Lebensräume",
        description="Um welchen der folgenden Lebensräume oder um welche Kombination "
        "der folgenden Lebensräume geht es in dem Text?",
    )
    taxa: list[Taxa] = Field(
        default_factory=list,
        alias="Arten",
        description="Welche Arten bzw. Artengruppen werden in der Studie untersucht? Verwende die kleinste "
        "machbare Ebene: Wenn eine Studie nur wenige Arten behandelt, sollten diese auf Artebene mit ihrem "
        "wissenschaftlichen und deutschen Namen angegeben werden. Werden jedoch sehr viele Arten "
        "behandelt oder eine Artengruppe besprochen, wird die Artengruppe als 'Sammelbegriff' angegeben. "
        "Falls die Studie auf englisch ist, übersetze Art- bzw. Artengruppennamen ins Deutsche. "
        "Ergänze, wenn nicht angegeben, die wissenschaftlichen Artennamen, und umgekehrt die "
        "deutschen Namen, wenn nur die wissenschaftlichen Artennamen verwendet wurden. ",
    )
    biodiversity_level: list[BiodiversityLevelEnum] = Field(
        default_factory=list,
        alias="Biodiversitätsebene",
        description="Auf welche der folgenden Ebenen wird Biodiversität in der Studie gemessen? ",
    )
    ecosystem_type: list[EcosystemTypeSimple] = Field(
        default_factory=list,
        alias="Ökosystemtyp",
        description="Welche Ökosystemtypen werden betrachtet?",
    )

EcosystemStudyFeaturesSimple

Bases: BaseEcosystemStudyFeatures

Angaben zu den ökosystembezogenen Studienmerkmalen.

Source code in src/kibad_llm/schema/types.py
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
class EcosystemStudyFeaturesSimple(BaseEcosystemStudyFeatures):
    """Angaben zu den ökosystembezogenen Studienmerkmalen."""

    habitat: list[HabitatEnum] = Field(
        default_factory=list,
        alias="Lebensräume",
        description="Um welchen der folgenden Lebensräume oder in welcher Kombination der folgenden Lebensräume geht es in dem Text?",
    )
    natural_region: list[NaturalRegionEnum] = Field(
        default_factory=list,
        alias="Naturgroßräume",
        description="Um welchen der folgenden Naturgroßräume geht es in dem Text?",
    )
    climate: list[ClimateEnum] = Field(
        default_factory=list,
        alias="Klima",
        description="Welche Umschreibung trifft auf das Klima des Untersuchungsgebiets zu?",
    )
    landuse: list[LanduseEnum] = Field(
        default_factory=list,
        alias="Landnutzung",
        description="Welche Landnutzung wird im oder nahe des Untersuchungsgebietes betrieben? In welche der folgenden Kategorien fällt die Nutzung?",
    )

EcosystemStudyFeaturesWithoutCompounds

Bases: BaseEcosystemStudyFeatures

Angaben zu den ökosystembezogenen Studienmerkmalen.

Source code in src/kibad_llm/schema/types.py
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
class EcosystemStudyFeaturesWithoutCompounds(BaseEcosystemStudyFeatures):
    """Angaben zu den ökosystembezogenen Studienmerkmalen."""

    habitat: list[HabitatEnum] = Field(
        default_factory=list,
        alias="Lebensräume",
        description="Um welchen der folgenden Lebensräume oder um welche Kombinationen der folgenden Lebensräume geht es in dem Text?",
    )
    natural_region: list[NaturalRegionEnum] = Field(
        default_factory=list,
        alias="Naturgroßräume",
        description="Um welchen der folgenden Naturgroßräume geht es in dem Text?",
    )
    climate: list[ClimateEnum] = Field(
        default_factory=list,
        alias="Klima",
        description="Welche Umschreibung trifft auf das Klima des Untersuchungsgebiets zu?",
    )
    landuse: list[LanduseEnum] = Field(
        default_factory=list,
        alias="Landnutzung",
        description="Welche Landnutzung wird im oder nahe des Untersuchungsgebietes betrieben? In welche der folgenden Kategorien fällt die Nutzung?",
    )
    spatial_extent: SpatialExtentEnum | None = Field(
        default=None,
        alias="Räumliche Ausdehnung",
        description="Wie ist insgesamt die räumliche Ausdehnung der Studie?",
    )
    spatial_resolution: SpatialResolutionEnum | None = Field(
        default=None,
        alias="Räumliche Auflösung",
        description="Mit welcher räumlichen Auflösung wurden die einzelnen Messungen in der Studie durchgeführt?",
    )
    spatial_measurements: int | None = Field(
        default=None,
        alias="Anzahl räumlicher Messungen",
        description="An wie vielen Stellen wurde gemessen?",
    )
    temporal_extent: int | None = Field(
        default=None,
        alias="Zeitraum",
        description="In welchem Zeitraum fanden die Messungen statt?",
    )
    temporal_extent_unit: TemporalExtentUnit | None = Field(
        default=None,
        alias="Zeiteinheit",
        description="In welcher der folgenden Zeiteinheiten ist der Zeitraum angegeben?",
    )
    temporal_resolution: TemporalResolutionEnum | None = Field(
        default=None,
        alias="Zeitliche Auflösung",
        description="Mit welcher zeitlichen Auflösung wurden die einzelnen Messungen in der Studie durchgeführt?",
    )
    temporal_measurements: int | None = Field(
        default=None,
        alias="Anzahl zeitlicher Messungen",
        description="Zu wie vielen unterschiedlichen Zeitpunkten wurde gemessen?",
    )
    start_year: int | None = Field(
        default=None,
        alias="Startjahr",
        description="In welchem Jahr fand die erste Messung statt?",
    )
    end_year: int | None = Field(
        default=None,
        alias="Endjahr",
        description="In welchem Jahr fand die letzte Messung statt?",
    )
    method: list[MethodEnum] = Field(
        default_factory=list,
        alias="Methoden der Datenaufnahme",
        description="Mit welcher/welchen Methode(n) wurden die Daten erhoben?",
    )
    study_type: list[StudyTypeEnum] = Field(
        default_factory=list,
        alias="Studienart",
        description="Um welche Form der wissenschaftlichen Studie handelt es sich?",
    )
    project: str | None = Field(
        default=None,
        alias="Projekt/Programm",
        description="Gehört die Studie zu einem größeren Programm oder Projekt? Wenn ja, zu welchem?",
    )
    biodiversity_level: list[BiodiversityLevelEnum] = Field(
        default_factory=list,
        alias="Biodiversitätsebene",
        description="Auf welche der folgenden Ebenen wird Biodiversität in der Studie gemessen?",
    )
    biodiversity_variable: list[str] = Field(
        default_factory=list,
        alias="Biodiversitätsvariable",
        description="In welchen Variablen wird die Biodiversität gemessen?",
    )
    transformation_potential: list[TransformationPotentialEnum] = Field(
        default_factory=list,
        alias="Transformationspotenzial",
        description="In welche der folgenden Kategorien lässt sich die im Text behandelte Transformation einordnen? ",
    )

EcosystemStudyOrganismTrends

Bases: BaseEcosystemStudyFeatures

Angaben zu den im Text beschriebenen organismenbezogenen Biodiversitätstrends.

Source code in src/kibad_llm/schema/types.py
1126
1127
1128
1129
1130
1131
1132
1133
class EcosystemStudyOrganismTrends(BaseEcosystemStudyFeatures):
    """Angaben zu den im Text beschriebenen organismenbezogenen Biodiversitätstrends."""

    organism_trends: list[OrganismBiodiversityTrend] = Field(
        default_factory=list,
        alias="Organismenbezogene Biodiversitätstrends",
        description="Liste der im Text beschriebenen organismenbezogenen Biodiversitätstrends.",
    )

EcosystemStudyOrganismTrendsV1

Bases: BaseEcosystemStudyFeatures

Das Schema sammelt Angaben zu den im Text beschriebenen organismenbezogenen Biodiversitätstrends.

Source code in src/kibad_llm/schema/types.py
1136
1137
1138
1139
1140
1141
1142
1143
class EcosystemStudyOrganismTrendsV1(BaseEcosystemStudyFeatures):
    """Das Schema sammelt Angaben zu den im Text beschriebenen organismenbezogenen Biodiversitätstrends."""

    organism_trends: list[OrganismBiodiversityTrendV1] = Field(
        default_factory=list,
        alias="Organismenbezogene Biodiversitätstrends",
        description="Erstelle eine Liste der im Text beschriebenen organismenbezogenen Biodiversitätstrends.",
    )

EcosystemType

Bases: CompoundFeature

Ökosystemtyp mit Kategorie, Name und Beschreibung.

Source code in src/kibad_llm/schema/types.py
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
class EcosystemType(CompoundFeature):
    """Ökosystemtyp mit Kategorie, Name und Beschreibung."""

    category: EcosystemTypeCategoryEnum = Field(
        ..., alias="Kategorie", description="Kategorie des Ökosystemtyps"
    )
    # Note (JuliaEllerbrok): Eine Zuordnung von Term sollte eigentlich immer möglich sein,
    # aber sicherheitshalber würde ich "optional" setzen.
    term: EcosystemTypeTermEnum | None = Field(
        default=None, alias="Term", description="Name des Ökosystemtyps"
    )
    description: str | None = Field(
        default=None,
        alias="Beschreibung",
        description="Beschreibung des Ökosystemtyps",
    )

EcosystemTypeSimple

Bases: CompoundFeature

Ökosystemtyp mit Kategorie und (wenn möglich) mit Name. Wenn es im Text um die Ökosystemtyp-Kategorien Meere oder Küsten geht, sind nur die Ökosystemtypen (Namen) möglich: Benthal der Nordsee; Benthal der Ostsee; Fels- und Steilküsten; Küstendünen; Pelagial der Nordsee; Pelagial der Ostsee; Saisonales Meereis der Nordsee; Saisonales Meereis der Ostsee; Salzgrünland, Brackwasserröhrichte und -Hochstaudenfluren des Geolitorals der Ostseeküste; Salzgrünland der Nordseeküste (Supralitoral); Sände, Sand-, Geröll- und Blockstrände. Wenn es im Text um die Ökosystemtyp-Kategorien Binnengewässer geht, sind nur die folgenden Ökosystemtypen (Namen) möglich: Fließende Gewässer; Grundwasser und Höhlengewässer; Quellen (inklusive Quellabfluss (Krenal)); Stehende Gewässer. Wenn es im Text um Ökosystemtyp-Kategorien terrestrisches oder semiterrestrisches Binnenland geht, sind nur die folgenden Ökosystemtypen (Namen) möglich: Äcker und Ackerbrachen; Feldgehölze, Gebüsche, Hecken und Gehölzkulturen; Felsen, Block- und Schutthalden, Geröllfelder, offene Bereiche mit sandigem oder bindigem Substrat; Hoch-, Zwischen- und Übergangsmoore; Höhlen (einschließlich Stollen, Brunnenschächte etc.); Laub(Misch)Wälder und -Forste (Laubbaumanteil über 50 Prozent); Nadel(Misch)Wälder und -Forste; Röhrichte (ohne Brackwasserröhrichte); Trockenrasen sowie Grünland trockener bis frischer Standorte; Waldfreie Niedermoore und Sümpfe, Grünland nasser bis feuchter Standorte; Waldmäntel und Vorwälder, spezielle Waldnutzungsformen; Wald- und Ufersäume, Staudenfluren; Zwergstrauchheiden; Großseggenriede. Wenn es im Text um die Ökosystemtyp-Kategorie technische Biotope geht, sind nur die folgenden Ökosystemtypen (Namen) möglich: Bauwerke; Kleine, unbefestigte Freiflächen des besiedelten Bereiches; Verkehrsanlagen und Plätze; Deponien und Rieselfelder. Wenn es im Text um die Ökosystemtyp-Kategorie Biotope mit Schwerpunkt in den Alpen geht, sind nur die folgenden Ökosystemtypen (Namen) möglich: Gebirgsrasen (subalpin bis alpin); Gewässer (subalpin bis alpin); Firn, permanente Schneefelder und Gletscher; Felsen (subalpin bis nival); Steinschutthalden und Schotterflächen (subalpin bis alpin); Schneeböden, Schneetälchen; Moore (subalpin bis alpin); Stauden- und Lägerfluren (hochmontan bis alpin); Zwergstrauchheiden (subalpin bis alpin); Gebüsche (hochmontan bis subalpin); Wälder (subalpin). Passt keine der genannten Ökosystemtyp-Kategorien (d.h. Ökosystemtyp-Kategorie Weitere), sind immer die folgenden Ökosystemtypen (Namen) möglich: Rohbodenstandorte und Ruderalfluren; Grün- und Freiflächen

Source code in src/kibad_llm/schema/types.py
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
class EcosystemTypeSimple(CompoundFeature):
    """Ökosystemtyp mit Kategorie und (wenn möglich) mit Name.
    Wenn es im Text um die Ökosystemtyp-Kategorien Meere oder Küsten geht, sind nur die Ökosystemtypen (Namen)
    möglich: Benthal der Nordsee; Benthal der Ostsee; Fels- und Steilküsten; Küstendünen; Pelagial
    der Nordsee; Pelagial der Ostsee; Saisonales Meereis der Nordsee; Saisonales Meereis der
    Ostsee; Salzgrünland, Brackwasserröhrichte und -Hochstaudenfluren des Geolitorals der
    Ostseeküste; Salzgrünland der Nordseeküste (Supralitoral); Sände, Sand-, Geröll- und Blockstrände.
    Wenn es im Text um die Ökosystemtyp-Kategorien Binnengewässer geht, sind nur die folgenden Ökosystemtypen
    (Namen) möglich: Fließende Gewässer; Grundwasser und Höhlengewässer; Quellen (inklusive Quellabfluss (Krenal));
    Stehende Gewässer.
    Wenn es im Text um Ökosystemtyp-Kategorien terrestrisches oder semiterrestrisches Binnenland
    geht, sind nur die folgenden Ökosystemtypen (Namen) möglich: Äcker und Ackerbrachen; Feldgehölze,
    Gebüsche, Hecken und Gehölzkulturen; Felsen, Block- und Schutthalden, Geröllfelder, offene Bereiche
    mit sandigem oder bindigem Substrat; Hoch-, Zwischen- und Übergangsmoore; Höhlen (einschließlich Stollen,
    Brunnenschächte etc.); Laub(Misch)Wälder und -Forste (Laubbaumanteil über 50 Prozent);
    Nadel(Misch)Wälder und -Forste; Röhrichte (ohne Brackwasserröhrichte); Trockenrasen sowie
    Grünland trockener bis frischer Standorte; Waldfreie Niedermoore und Sümpfe, Grünland nasser
    bis feuchter Standorte; Waldmäntel und Vorwälder, spezielle Waldnutzungsformen; Wald- und
    Ufersäume, Staudenfluren; Zwergstrauchheiden; Großseggenriede.
    Wenn es im Text um die Ökosystemtyp-Kategorie technische Biotope geht, sind nur die folgenden
    Ökosystemtypen (Namen) möglich: Bauwerke; Kleine, unbefestigte Freiflächen des besiedelten Bereiches;
    Verkehrsanlagen und Plätze; Deponien und Rieselfelder.
    Wenn es im Text um die Ökosystemtyp-Kategorie Biotope mit Schwerpunkt in den Alpen geht, sind nur die
    folgenden Ökosystemtypen (Namen) möglich: Gebirgsrasen (subalpin bis alpin); Gewässer (subalpin bis alpin);
    Firn, permanente Schneefelder und Gletscher; Felsen (subalpin bis nival); Steinschutthalden und
    Schotterflächen (subalpin bis alpin); Schneeböden, Schneetälchen; Moore (subalpin bis alpin);
    Stauden- und Lägerfluren (hochmontan bis alpin); Zwergstrauchheiden (subalpin bis alpin);
    Gebüsche (hochmontan bis subalpin); Wälder (subalpin).
    Passt keine der genannten Ökosystemtyp-Kategorien (d.h. Ökosystemtyp-Kategorie Weitere), sind immer
    die folgenden Ökosystemtypen (Namen) möglich: Rohbodenstandorte und Ruderalfluren; Grün- und Freiflächen
    """

    category: EcosystemTypeCategoryEnum = Field(
        ..., alias="Kategorie", description="Kategorie des Ökosystemtyps"
    )
    term: EcosystemTypeTermEnum | None = Field(
        default=None, alias="Term", description="Name des Ökosystemtyps"
    )

ImpulseMeasure

Bases: CompoundFeature

Einmalige Maßnahme mit Beschreibung und Erfolg.

Source code in src/kibad_llm/schema/types.py
574
575
576
577
578
579
580
581
582
583
584
585
586
class ImpulseMeasure(CompoundFeature):
    """Einmalige Maßnahme mit Beschreibung und Erfolg."""

    description: str = Field(
        ...,
        alias="Beschreibung",
        description="Beschreibung der einmaligen Maßnahme",
    )
    success: SuccessEnum = Field(
        ...,
        alias="Erfolg",
        description="Hatte die einmalige Maßnahme für die Biodiversität einen messbaren Effekt? ",
    )

IndirectDriver

Bases: CompoundFeature

Indirekter Treiber mit Kategorie und Details.

Source code in src/kibad_llm/schema/types.py
628
629
630
631
632
633
634
635
636
637
638
639
640
class IndirectDriver(CompoundFeature):
    """Indirekter Treiber mit Kategorie und Details."""

    category: IndirectDriverEnum = Field(
        ...,
        alias="Kategorie",
        description="Zu welcher der folgenden Kategorien lässt sich der indirekte Treiber zuordnen?",
    )
    details: str | None = Field(
        default=None,
        alias="Details",
        description="Details zum indirekten Treiber",
    )

Location

Bases: CompoundFeature

Untersuchungsgebiet mit Land, Bundesland und Ort.

Source code in src/kibad_llm/schema/types.py
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
class Location(CompoundFeature):
    """Untersuchungsgebiet mit Land, Bundesland und Ort."""

    country: str | None = Field(
        default=None, alias="Land", description="Land des Untersuchungsgebietes"
    )
    federal_state: LocationFederalStateEnum | None = Field(
        default=None,
        alias="Bundesland",
        description="Bundesland des Untersuchungsgebietes",
    )
    name: str | None = Field(
        default=None,
        alias="Ort",
        description="Ort (z.B. Stadt, Gemeinde, Region) des Untersuchungsgebietes",
    )

ManagementMeasure

Bases: CompoundFeature

Bewirtschaftungsmaßnahme mit Beschreibung und Erfolg.

Source code in src/kibad_llm/schema/types.py
559
560
561
562
563
564
565
566
567
568
569
570
571
class ManagementMeasure(CompoundFeature):
    """Bewirtschaftungsmaßnahme mit Beschreibung und Erfolg."""

    description: str = Field(
        ...,
        alias="Beschreibung",
        description="Beschreibung der Bewirtschaftungsmaßnahme",
    )
    success: SuccessEnum = Field(
        ...,
        alias="Erfolg",
        description="Hatte die Bewirtschaftung als Maßnahme für die Biodiversität einen messbaren Effekt? ",
    )

OrganismBiodiversityTrend

Bases: CompoundFeature

Organismenbezogener Biodiversitätstrend bestehend aus Organismenhauptgruppe (hauptgruppe_rote_listen), Organismenuntergruppe (untergruppe_rote_listen), Lebensraum (habitat), Biodiversitätsvariable (biodiversity_variable) und Trendrichtung (trend_category).

Source code in src/kibad_llm/schema/types.py
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
class OrganismBiodiversityTrend(CompoundFeature):
    """Organismenbezogener Biodiversitätstrend bestehend aus Organismenhauptgruppe
    (hauptgruppe_rote_listen), Organismenuntergruppe (untergruppe_rote_listen),
    Lebensraum (habitat), Biodiversitätsvariable (biodiversity_variable)
    und Trendrichtung (trend_category).
    """

    # The fields below are based Trends-WeightedVoteCount.csv file.
    # We use the column names as field names so that no post-processing is needed.

    Hauptgruppe_RoteListen: HauptgruppeRoteListenEnum = Field(
        ...,
        description="Hauptgruppe der Organismen auf die sich der Trend bezieht.",
    )
    # A bit unexpected, but data contains NA values, so this is optional.
    Untergruppe_RoteListen: UntergruppeRoteListenEnum | None = Field(
        default=None,
        description="Untergruppe der Organismen auf die sich der Trend bezieht.",
    )
    Lebensraum: HabitatForOrganismTrendEnum = Field(
        ...,
        description="Auf welchen der folgenden Lebensräume bezieht sich der Trend?",
    )
    Antwortvariable: BiodiversityVariableEnum = Field(
        ...,
        description="Mithilfe welcher Biodiversitätsvariable wird der Trend gemessen? ",
    )
    Trend: TrendCategoryEnum = Field(
        ...,
        description="In welche der folgenden Kategorien lässt sich die Richtung des Trends einordnen?",
    )

OrganismBiodiversityTrendV1

Bases: CompoundFeature

Organismenbezogener Biodiversitätstrend bestehend aus Organismenhauptgruppe (hauptgruppe_rote_listen), Organismenuntergruppe (untergruppe_rote_listen), Lebensraum (habitat), Biodiversitätsvariable (biodiversity_variable) und Trendrichtung (trend_category).

Source code in src/kibad_llm/schema/types.py
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
class OrganismBiodiversityTrendV1(CompoundFeature):
    """Organismenbezogener Biodiversitätstrend bestehend aus Organismenhauptgruppe
    (hauptgruppe_rote_listen), Organismenuntergruppe (untergruppe_rote_listen),
    Lebensraum (habitat), Biodiversitätsvariable (biodiversity_variable)
    und Trendrichtung (trend_category).
    """

    # The fields below are based Trends-WeightedVoteCount.csv file.
    # We use the column names as field names so that no post-processing is needed.

    Hauptgruppe_RoteListen: HauptgruppeRoteListenEnum = Field(
        ...,
        description="Auf welche Organismen-Hautgruppe bezieht sich der angegebene Trend?",
    )
    # A bit unexpected, but data contains NA values, so this is optional.
    Untergruppe_RoteListen: UntergruppeRoteListenEnum | None = Field(
        default=None,
        description="Auf welche Organismen-Untergruppe bezieht sich der angegebene Trend?",
    )
    Lebensraum: HabitatForOrganismTrendEnum = Field(
        ...,
        description="Auf welchen der folgenden Lebensräume bezieht sich der Trend?",
    )
    Antwortvariable: BiodiversityVariableEnum = Field(
        ...,
        description="Mithilfe welcher Biodiversitätsvariable wird der Trend gemessen?",
    )
    Trend: TrendCategoryEnum = Field(
        ...,
        description="In welche der folgenden Kategorien lässt sich die Richtung des Trends einordnen?",
    )

Soil

Bases: CompoundFeature

Boden mit Kategorie und Tiefe.

Source code in src/kibad_llm/schema/types.py
523
524
525
526
527
528
529
class Soil(CompoundFeature):
    """Boden mit Kategorie und Tiefe."""

    name: SoilNameEnum | None = Field(default=None, alias="Name", description="Name des Bodentyps")
    depth: SoilDepthEnum | None = Field(
        default=None, alias="Tiefe", description="Tiefe des Bodens"
    )

Taxa

Bases: CompoundFeature

Art mit wissenschaftlichem und deutschem Namen sowie taxonomischer Gruppe.

Source code in src/kibad_llm/schema/types.py
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
class Taxa(CompoundFeature):
    """Art mit wissenschaftlichem und deutschem Namen sowie taxonomischer Gruppe."""

    scientific_name: str | None = Field(
        default=None,
        alias="Wissenschaftlicher Artenname",
        description="Wissenschaftlicher Name der Art",
    )
    german_name: str | None = Field(
        default=None,
        alias="Deutscher Artenname",
        description="Deutscher Name der Art",
    )
    # Note: This is excluded since "Artengruppe" is always a "Sammelbegriff".
    #  It is in the data, but not in the Fragenkatalog google table.
    #  If this gets added, remove the entry from metric.ignore_subfields in the evaluate.yaml config!
    # collective_term: bool = Field(
    #    ...,
    #    # not sure about the alias here, made up by auto-complete
    #    alias="Sammelbegriff",
    #    # not sure about the description here, made up by auto-complete
    #    description="Handelt es sich bei dem angegebenen Artnamen um einen Sammelbegriff für mehrere Arten?",
    # )
    species_group: SpeciesGroupEnum = Field(
        ...,
        alias="Taxonomische Gruppe",
        description="Taxonomische Gruppe der Art",
    )

TrendCategoryEnum

Bases: str, Enum

"neutral" bedeutet, dass auf Trends untersucht wurde, aber keine Zunahme oder Abnahme der Organismengruppe festgestellt wurde. "positiv" bedeutet einen zunehmenden Trend, "negativ" einen abnehmenden Trend. Bei "positiv zu negativ" geht ein zunehmender Trend in einen abnehmenden Trend über. Bei "negativ zu positiv" geht ein abnehmender Trend in einen zunehmenden Trend über.

Source code in src/kibad_llm/schema/types.py
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
class TrendCategoryEnum(str, Enum):
    """ "neutral" bedeutet, dass auf Trends untersucht wurde, aber keine Zunahme oder Abnahme der Organismengruppe
    festgestellt wurde. "positiv" bedeutet einen zunehmenden Trend, "negativ" einen abnehmenden Trend.
    Bei "positiv zu negativ" geht ein zunehmender Trend in einen abnehmenden Trend über. Bei "negativ zu positiv"
    geht ein abnehmender Trend in einen zunehmenden Trend über."""

    POSITIVE = "positive"
    NEGATIVE = "negative"
    # "no" means "Die Artengruppe entwickelt sich stabil". It was called "neutral" in the iDiv publication.
    # Julia recommends to rename to "neutral", but that will require post-processing of existing data,
    # so for now we keep it as "no".
    NO = "no"
    POSITIVE_TO_NEGATIVE = "positive to negative"
    NEGATIVE_TO_POSITIVE = "negative to positive"