Zum Hauptinhalt springen

Verderblichkeit GFM

Das Verderblichkeit Gap Filling Module bestimmt die Verderblichkeitsklassifizierung von Lebensmittelprodukten und identifiziert kombinierte Produkte (Convenience-Produkte versus Mono-Produkte). Diese Klassifizierung ist wesentlich für nachgelagerte Module, die Lageranforderungen, Transportbedingungen und Lebensmittelverlustfaktoren berechnen.

Kurzreferenz

EigenschaftBeschreibung
Läuft aufWurzelknoten der Berechnung (Rezeptebene)
AbhängigkeitenAddClientNodesGFM, MatchProductNameGFM, IngredientSplitterGFM, NutrientSubdivisionGFM, LinkTermToActivityNodeGFM, AttachFoodTagsGFM, OriginGFM
SchlüsseleingabeLebensmittelprodukt-Glossar-Tags, Zutatenhierarchie
AusgabeVerderblichkeitsklassifizierungs-Tag, Kombiniert/Mono-Produkt-Tag
AuslöserLäuft bei jeder Berechnung auf Wurzelknoten-Ebene

Wann es läuft

Das Modul wird ausgelöst, wenn:

  1. Die Verarbeitung den Wurzelknoten einer Berechnung erreicht
  2. Alle Abhängigkeitsmodule ihre Verarbeitung abgeschlossen haben
  3. Lebensmittelprodukte im Graphen eine Verderblichkeitsklassifizierung benötigen

Schlüsselausgabe

Das Modul fügt zwei Arten von Glossar-Tags zu Lebensmittelproduktknoten hinzu:

  • Verderblichkeits-Tag: Eine von drei Stufen (haltbar, verderblich, hochverderblich)
  • Produkttyp-Tag: Entweder kombiniertes Produkt oder Mono-Produkt-Klassifizierung

Wissenschaftliche Methodik

Verderblichkeitsklassifizierung

Lebensmittelprodukte werden in drei Verderblichkeitsstufen basierend auf ihrer Haltbarkeit und Lageranforderungen klassifiziert:

StufeTerm External IDBeschreibungTypische Produkte
HaltbarEOS_STABLEProdukte, die längere Zeit bei Raumtemperatur gelagert werden könnenTrockenprodukte, Konserven, Getreide, Öle
VerderblichEOS_PERISHABLEProdukte, die kontrollierte Lagerung mit mäßiger Haltbarkeit erfordernMilchprodukte, Eier, verarbeitetes Fleisch
HochverderblichEOS_HIGH-PERISHABLEProdukte, die sofortige Kühlung mit kurzer Haltbarkeit erfordernFrischfleisch, Meeresfrüchte, geschnittenes Gemüse

Propagationsregeln

Die Verderblichkeitsklassifizierung folgt einem Bottom-up-Propagationsmodell durch die Zutatenhierarchie:

Produktverderblichkeit = max(Zutatenverderblichkeiten)

Propagationslogik:

  1. Blattzutaten erhalten Verderblichkeit aus ihren Glossar-Begriff-Definitionen
  2. Kombinierte Produkte erben die höchste Verderblichkeit von ihren Unterzutaten
  3. Produkte ohne explizite Verderblichkeit erhalten standardmäßig haltbar

Beispiel: Eine Salatschüssel enthält:

  • Kopfsalat (hochverderblich)
  • Käse (verderblich)
  • Croutons (haltbar)

Ergebnis: Die Salatschüssel wird als hochverderblich klassifiziert.

Kombinierte Produktklassifizierung

Das Modul bestimmt auch, ob ein Produkt ein kombiniertes Produkt (Convenience-Produkt) oder ein Mono-Produkt (einzelne Zutat) ist:

KlassifizierungTerm External IDKriterium
Kombiniertes ProduktEOS_COMBINED_PRODUCTProdukt kombiniert mehrere verschiedene Lebensmittelprodukt-Zutaten
Mono-ProduktEOS_MONO_PRODUCTProdukt ist eine einzelne Zutat oder kombiniert nicht mehrere Produkte

Logik für kombinierte Produkte:

  • Ein Produkt wird als kombiniert markiert, wenn es direkt mehrere Lebensmittelprodukt-Zutaten kombiniert
  • Das Tag für kombinierte Produkte propagiert aufwärts durch die Hierarchie
  • Sobald eine Unterzutat als kombiniertes Produkt markiert ist, erhalten auch übergeordnete Produkte das Tag

Implementierungsdetails

Algorithmusübersicht

Das Modul verwendet eine Tiefentraversierung mit Nachordnungsverarbeitung zur Propagation der Verderblichkeit von Blattknoten zur Wurzel:

# Pseudocode für Verderblichkeitspropagation
def propagate_perishability(node):
if node has explicit perishability tag:
return node.perishability

sub_perishabilities = []
for sub_node in node.sub_nodes:
sub_perishabilities.append(propagate_perishability(sub_node))

if sub_perishabilities:
return max(sub_perishabilities, key=perishability_order)
else:
return SHELF_STABLE # Standard

Verderblichkeitsreihenfolge

Verderblichkeitsstufen werden von niedrig nach hoch geordnet:

perishability_order = {
"EOS_STABLE": 0, # Niedrigste Verderblichkeit
"EOS_PERISHABLE": 1, # Mittlere Verderblichkeit
"EOS_HIGH-PERISHABLE": 2 # Höchste Verderblichkeit
}

Quellenzuordnung

Wenn das Modul ein Verderblichkeits-Tag zuweist, verwendet es die Quelle eos_assumed, um anzuzeigen, dass der Wert abgeleitet und nicht explizit angegeben wurde:

GlossaryTermProp(
term_uid=perishability_term.uid,
source=SourceEnum.eos_assumed
)

Abhängigkeitskette

Das Modul wartet auf den Abschluss dieser Module, bevor es ausgeführt wird:

ModulGrund
AddClientNodesGFMKundenspezifizierte Knoten müssen zuerst hinzugefügt werden
MatchProductNameGFMProdukte müssen mit Glossar-Begriffen gematcht werden
IngredientSplitterGFMZusammengesetzte Zutaten müssen aufgeteilt werden
NutrientSubdivisionGFMNährstoffbasierte Unterteilungen müssen verarbeitet werden
LinkTermToActivityNodeGFMBegriffe müssen mit Aktivitäten verknüpft werden
AttachFoodTagsGFMLebensmittelspezifische Tags müssen angehängt werden
OriginGFMHerkunftsinformationen müssen bestimmt werden

Datenquellen

Verderblichkeits-Glossar-Begriffe

Die Verderblichkeitsklassifizierung verwendet Begriffe aus dem EOS-Glossar unter dem Stammbegriff EOS_Perishability:

Term External IDAnzeigenameBeschreibung
EOS_STABLEHaltbarProdukte mit verlängerter Raumtemperatur-Haltbarkeit
EOS_PERISHABLEVerderblichProdukte, die kontrollierte Lagerung erfordern
EOS_HIGH-PERISHABLEHochverderblichProdukte, die sofortige Kühlung erfordern

Produkttyp-Glossar-Begriffe

Die Kombiniert/Mono-Produkt-Klassifizierung verwendet Begriffe unter EOS_Combined_Product_Mono_Product:

Term External IDAnzeigenameBeschreibung
EOS_COMBINED_PRODUCTKombiniertes ProduktMulti-Zutaten-Convenience-Produkt
EOS_MONO_PRODUCTMono-ProduktEinzelzutatenprodukt

Berechnungsbeispiel

Szenario: Eine Convenience-Salatschüssel mit folgender Struktur:

Salatschüssel (keine explizite Verderblichkeit)
├── Frischer Salat (hochverderblich)
├── Fertige Sauce (keine explizite Verderblichkeit)
│ ├── Milchpulver (haltbar)
│ ├── Essig (haltbar)
│ ├── Öl (haltbar)
│ └── Frische Petersilie (hochverderblich)
└── Tofu (verderblich)

Schritt 1: Blattknoten traversieren

Der Algorithmus besucht zuerst alle Blattknoten:

  • Frischer Salat: EOS_HIGH-PERISHABLE (aus Glossar)
  • Milchpulver: EOS_STABLE (aus Glossar)
  • Essig: EOS_STABLE (aus Glossar)
  • Öl: EOS_STABLE (aus Glossar)
  • Frische Petersilie: EOS_HIGH-PERISHABLE (aus Glossar)
  • Tofu: EOS_PERISHABLE (aus Glossar)

Schritt 2: Zu übergeordneten Knoten propagieren

Fertige Sauce:

  • Unterverderblichkeiten: [haltbar, haltbar, haltbar, hochverderblich]
  • Maximum: EOS_HIGH-PERISHABLE
  • Kombiniertes Produkt: Ja (mehrere Lebensmittelprodukt-Zutaten)

Schritt 3: Zur Wurzel propagieren

Salatschüssel:

  • Unterverderblichkeiten: [hochverderblich, hochverderblich, verderblich]
  • Maximum: EOS_HIGH-PERISHABLE
  • Kombiniertes Produkt: Ja (kombiniert mehrere Produkte und hat kombinierte Produkt-Unterzutat)

Endausgabe

ProduktVerderblichkeits-TagProdukttyp-Tag
Frischer SalatEOS_HIGH-PERISHABLEEOS_MONO_PRODUCT
MilchpulverEOS_STABLEEOS_MONO_PRODUCT
EssigEOS_STABLEEOS_MONO_PRODUCT
ÖlEOS_STABLEEOS_MONO_PRODUCT
Frische PetersilieEOS_HIGH-PERISHABLEEOS_MONO_PRODUCT
TofuEOS_PERISHABLEEOS_MONO_PRODUCT
Fertige SauceEOS_HIGH-PERISHABLE (angenommen)EOS_COMBINED_PRODUCT
SalatschüsselEOS_HIGH-PERISHABLE (angenommen)EOS_COMBINED_PRODUCT

Integration mit anderen Modulen

Nachgelagerte Verbraucher

Die Verderblichkeitsklassifizierung wird von mehreren nachgelagerten Modulen verwendet:

ModulVerwendung
Konservierung GFMBestimmt Lageranforderungen (gekühlt, gefroren, getrocknet)
Transport GFMBerechnet Kühlkettenanforderungen und Transportmodus-Eignung
Lebensmittelverlust GFMSchätzt Abfallfaktoren basierend auf Haltbarkeit

Konservierungsregeln

Das Konservierungs-GFM verwendet Verderblichkeit zur Zuweisung von Standard-Konservierungsmethoden:

  1. Hochverderblich + Kein Konservierungs-Tag: "Gekühlt" zugewiesen
  2. Verderblich + Kein Konservierungs-Tag: "Gekühlt" zugewiesen
  3. Haltbar: Keine Konservierung erforderlich (Raumtemperatur)

Transport-Implikationen

Transportmodus-Auswahl berücksichtigt Verderblichkeit:

  • Hochverderblich: Kann Lufttransport für lange Strecken erfordern
  • Verderblich: Kann gekühlten LKW-/Schiffstransport nutzen
  • Haltbar: Keine Kühlkettenanforderungen

Bekannte Einschränkungen

Klassifizierungsabdeckung

  • Nicht alle Lebensmittelprodukte im Glossar haben explizite Verderblichkeitsklassifizierungen
  • Produkte ohne Klassifizierung erhalten standardmäßig haltbar, was Kühlkettenanforderungen unterschätzen kann
  • Einige verarbeitete Produkte haben variable Verderblichkeit je nach Verarbeitungsmethode

Konservierungs-Interaktion

  • Das aktuelle Modell berücksichtigt keine Konservierungsmethoden, die die Verderblichkeit ändern (z.B. Trocknen hochverderblicher Kräuter)
  • Gefrorene Produkte werden separat vom Konservierungs-GFM behandelt
  • Die Interaktion zwischen Verderblichkeit und Konservierung könnte ausgefeilter sein

Erkennung kombinierter Produkte

  • Die Erkennung kombinierter Produkte basiert ausschließlich auf der Zutatenstruktur
  • Sie berücksichtigt keine Produktionsstandortunterschiede (Convenience-Produkte, die in verschiedenen Anlagen hergestellt werden)
  • EAN/GTIN-Codes werden noch nicht zur Identifizierung industriell hergestellter Convenience-Produkte verwendet

Zukünftige Verbesserungen

Geplante Verbesserungen umfassen:

  • Baumtraversierung für Glossar-Tags zur Verbesserung der Verderblichkeitserkennung
  • Bessere Integration mit Konservierungsmethoden, die die Verderblichkeit ändern
  • Standortbasierte Erkennung von Convenience-Produkten
  • Unterstützung für produktspezifische Konservierungsmethoden-Einschränkungen

Referenzen

  1. EOS-Glossar-Dokumentation. Interne Eaternity-Dokumentation für Glossar-Begriff-Definitionen.

  2. Lebensmittellagerungsrichtlinien. FDA- und EFSA-Lebensmittelsicherheitsrichtlinien für Lagertemperaturanforderungen.

  3. Kühlkettenlogistik. Industriestandards für Transport und Lagerung verderblicher Lebensmittel.