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.