Saltar al contenido principal

Perishability GFM

El Gap Filling Module de Perecibilidad determina la clasificación de perecibilidad de productos alimentarios e identifica productos combinados (productos de conveniencia versus monoproductos). Esta clasificación es esencial para módulos posteriores que calculan requisitos de almacenamiento, condiciones de transporte y factores de pérdida de alimentos.

Referencia Rápida

PropiedadDescripción
Se ejecuta enNodo raíz del cálculo (nivel de receta)
DependenciasAddClientNodesGFM, MatchProductNameGFM, IngredientSplitterGFM, NutrientSubdivisionGFM, LinkTermToActivityNodeGFM, AttachFoodTagsGFM, OriginGFM
Entrada claveEtiquetas de glosario de productos alimentarios, jerarquía de ingredientes
SalidaEtiqueta de clasificación de perecibilidad, etiqueta de producto combinado/mono
ActivadorSe ejecuta en cada cálculo a nivel de nodo raíz

Cuándo se Ejecuta

El módulo se activa cuando:

  1. El procesamiento alcanza el nodo raíz de un cálculo
  2. Todos los módulos de dependencia han completado su procesamiento
  3. Los productos alimentarios en el grafo necesitan clasificación de perecibilidad

Salida Clave

El módulo añade dos tipos de etiquetas de glosario a los nodos de producto alimentario:

  • Etiqueta de Perecibilidad: Uno de tres niveles (estable en estantería, perecedero, altamente perecedero)
  • Etiqueta de Tipo de Producto: Clasificación como producto combinado o monoproducto

Metodología Científica

Clasificación de Perecibilidad

Los productos alimentarios se clasifican en tres niveles de perecibilidad basándose en su vida útil y requisitos de almacenamiento:

NivelID Externo del TérminoDescripciónProductos Típicos
Estable en EstanteríaEOS_STABLEProductos que pueden almacenarse a temperatura ambiente durante períodos prolongadosProductos secos, enlatados, cereales, aceites
PerecederoEOS_PERISHABLEProductos que requieren almacenamiento controlado con vida útil moderadaLácteos, huevos, carnes procesadas
Altamente PerecederoEOS_HIGH-PERISHABLEProductos que requieren refrigeración inmediata con vida útil cortaCarne fresca, mariscos, productos cortados

Reglas de Propagación

La clasificación de perecibilidad sigue un modelo de propagación de abajo hacia arriba a través de la jerarquía de ingredientes:

Perecibilidad del Producto = máx(Perecibilidades de Ingredientes)

Lógica de Propagación:

  1. Los ingredientes hoja reciben perecibilidad de sus definiciones de términos de glosario
  2. Los productos combinados heredan la mayor perecibilidad de sus subingredientes
  3. Los productos sin perecibilidad explícita se establecen por defecto como estables en estantería

Ejemplo: Un bol de ensalada que contiene:

  • Lechuga (altamente perecedero)
  • Queso (perecedero)
  • Picatostes (estable en estantería)

Resultado: El bol de ensalada se clasifica como altamente perecedero.

Clasificación de Producto Combinado

El módulo también determina si un producto es un producto combinado (producto de conveniencia) o un monoproducto (ingrediente único):

ClasificaciónID Externo del TérminoCriterio
Producto CombinadoEOS_COMBINED_PRODUCTEl producto combina múltiples ingredientes de productos alimentarios diferentes
MonoproductoEOS_MONO_PRODUCTEl producto es un ingrediente único o no combina múltiples productos

Lógica de Producto Combinado:

  • Un producto se marca como combinado si combina directamente múltiples ingredientes de productos alimentarios
  • La etiqueta de producto combinado se propaga hacia arriba a través de la jerarquía
  • Una vez que cualquier subingrediente está marcado como producto combinado, los productos padre también reciben la etiqueta de producto combinado

Detalles de Implementación

Visión General del Algoritmo

El módulo usa un recorrido en profundidad con procesamiento post-orden para propagar perecibilidad desde nodos hoja hasta la raíz:

# Pseudocódigo para propagación de perecibilidad
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 # Por defecto

Orden de Perecibilidad

Los niveles de perecibilidad se ordenan de menor a mayor:

perishability_order = {
"EOS_STABLE": 0, # Menor perecibilidad
"EOS_PERISHABLE": 1, # Perecibilidad media
"EOS_HIGH-PERISHABLE": 2 # Mayor perecibilidad
}

Atribución de Fuente

Cuando el módulo asigna una etiqueta de perecibilidad, usa la fuente eos_assumed para indicar que el valor fue inferido en lugar de proporcionado explícitamente:

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

Cadena de Dependencias

El módulo espera a que estos módulos completen antes de ejecutarse:

MóduloRazón
AddClientNodesGFMLos nodos especificados por el cliente deben añadirse primero
MatchProductNameGFMLos productos deben coincidir con términos de glosario
IngredientSplitterGFMLos ingredientes compuestos deben dividirse
NutrientSubdivisionGFMLas subdivisiones basadas en nutrientes deben procesarse
LinkTermToActivityNodeGFMLos términos deben enlazarse a actividades
AttachFoodTagsGFMLas etiquetas específicas de alimentos deben adjuntarse
OriginGFMLa información de origen debe determinarse

Fuentes de Datos

Términos de Glosario de Perecibilidad

La clasificación de perecibilidad usa términos del Glosario EOS bajo el término raíz EOS_Perishability:

ID Externo del TérminoNombre para MostrarDescripción
EOS_STABLEEstable en EstanteríaProductos con vida útil extendida a temperatura ambiente
EOS_PERISHABLEPerecederoProductos que requieren almacenamiento controlado
EOS_HIGH-PERISHABLEAltamente PerecederoProductos que requieren refrigeración inmediata

Términos de Glosario de Tipo de Producto

La clasificación de producto combinado/mono usa términos bajo EOS_Combined_Product_Mono_Product:

ID Externo del TérminoNombre para MostrarDescripción
EOS_COMBINED_PRODUCTProducto CombinadoProducto de conveniencia multi-ingrediente
EOS_MONO_PRODUCTMonoproductoProducto de ingrediente único

Ejemplo de Cálculo

Escenario: Una receta de bol de ensalada de conveniencia con la siguiente estructura:

Bol de Ensalada (sin perecibilidad explícita)
├── Ensalada Fresca (altamente perecedero)
├── Salsa Preparada (sin perecibilidad explícita)
│ ├── Leche en Polvo (estable en estantería)
│ ├── Vinagre (estable en estantería)
│ ├── Aceite (estable en estantería)
│ └── Perejil Fresco (altamente perecedero)
└── Tofu (perecedero)

Paso 1: Recorrer hasta Nodos Hoja

El algoritmo visita todos los nodos hoja primero:

  • Ensalada Fresca: EOS_HIGH-PERISHABLE (del glosario)
  • Leche en Polvo: EOS_STABLE (del glosario)
  • Vinagre: EOS_STABLE (del glosario)
  • Aceite: EOS_STABLE (del glosario)
  • Perejil Fresco: EOS_HIGH-PERISHABLE (del glosario)
  • Tofu: EOS_PERISHABLE (del glosario)

Paso 2: Propagar a Nodos Padre

Salsa Preparada:

  • Sub-perecibilidades: [estable, estable, estable, altamente-perecedero]
  • Máximo: EOS_HIGH-PERISHABLE
  • Producto combinado: Sí (múltiples ingredientes de productos alimentarios)

Paso 3: Propagar a Raíz

Bol de Ensalada:

  • Sub-perecibilidades: [altamente-perecedero, altamente-perecedero, perecedero]
  • Máximo: EOS_HIGH-PERISHABLE
  • Producto combinado: Sí (combina múltiples productos, y tiene subingrediente de producto combinado)

Salida Final

ProductoEtiqueta de PerecibilidadEtiqueta de Tipo de Producto
Ensalada FrescaEOS_HIGH-PERISHABLEEOS_MONO_PRODUCT
Leche en PolvoEOS_STABLEEOS_MONO_PRODUCT
VinagreEOS_STABLEEOS_MONO_PRODUCT
AceiteEOS_STABLEEOS_MONO_PRODUCT
Perejil FrescoEOS_HIGH-PERISHABLEEOS_MONO_PRODUCT
TofuEOS_PERISHABLEEOS_MONO_PRODUCT
Salsa PreparadaEOS_HIGH-PERISHABLE (asumido)EOS_COMBINED_PRODUCT
Bol de EnsaladaEOS_HIGH-PERISHABLE (asumido)EOS_COMBINED_PRODUCT

Integración con Otros Módulos

Consumidores Posteriores

La clasificación de perecibilidad es usada por varios módulos posteriores:

MóduloUso
Conservation GFMDetermina requisitos de almacenamiento (refrigerado, congelado, seco)
Transport GFMCalcula requisitos de cadena de frío y viabilidad de modo de transporte
Food Loss GFMEstima factores de desperdicio basados en vida útil

Reglas de Conservación

El Conservation GFM usa perecibilidad para asignar métodos de conservación por defecto:

  1. Altamente Perecedero + Sin Etiqueta de Conservación: Asignado conservación "refrigerado"
  2. Perecedero + Sin Etiqueta de Conservación: Asignado conservación "refrigerado"
  3. Estable en Estantería: Sin conservación requerida (temperatura ambiente)

Implicaciones de Transporte

La selección de modo de transporte considera perecibilidad:

  • Altamente Perecedero: Puede requerir transporte aéreo para largas distancias
  • Perecedero: Puede usar transporte refrigerado por camión/barco
  • Estable en Estantería: Sin requisitos de cadena de frío

Limitaciones Conocidas

Cobertura de Clasificación

  • No todos los productos alimentarios en el glosario tienen clasificaciones de perecibilidad explícitas
  • Los productos sin clasificación se establecen por defecto como estables en estantería, lo que puede subestimar requisitos de cadena de frío
  • Algunos productos procesados pueden tener perecibilidad variable dependiendo del método de procesamiento

Interacción con Conservación

  • El modelo actual no tiene en cuenta métodos de conservación que cambian la perecibilidad (por ejemplo, secar hierbas altamente perecederas)
  • Los productos congelados se manejan por separado por el Conservation GFM
  • La interacción entre perecibilidad y conservación podría ser más sofisticada

Detección de Producto Combinado

  • La detección de producto combinado se basa únicamente en la estructura de ingredientes
  • No considera diferencias de ubicación de producción (productos de conveniencia producidos en diferentes instalaciones)
  • Los códigos EAN/GTIN aún no se usan para identificar productos de conveniencia producidos industrialmente

Mejoras Futuras

Las mejoras planificadas incluyen:

  • Rastreo de árbol para etiquetas de glosario para mejorar la detección de perecibilidad
  • Mejor integración con métodos de conservación que alteran la perecibilidad
  • Detección de productos de conveniencia basada en ubicación
  • Soporte para restricciones de método de conservación específicas del producto

Referencias

  1. Documentación del Glosario EOS. Documentación interna de Eaternity para definiciones de términos de glosario.

  2. Directrices de Almacenamiento de Alimentos. Directrices de seguridad alimentaria de la FDA y EFSA para requisitos de temperatura de almacenamiento.

  3. Logística de Cadena de Frío. Estándares de la industria para transporte y almacenamiento de alimentos perecederos.