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
| Propiedad | Descripción |
|---|---|
| Se ejecuta en | Nodo raíz del cálculo (nivel de receta) |
| Dependencias | AddClientNodesGFM, MatchProductNameGFM, IngredientSplitterGFM, NutrientSubdivisionGFM, LinkTermToActivityNodeGFM, AttachFoodTagsGFM, OriginGFM |
| Entrada clave | Etiquetas de glosario de productos alimentarios, jerarquía de ingredientes |
| Salida | Etiqueta de clasificación de perecibilidad, etiqueta de producto combinado/mono |
| Activador | Se ejecuta en cada cálculo a nivel de nodo raíz |
Cuándo se Ejecuta
El módulo se activa cuando:
- El procesamiento alcanza el nodo raíz de un cálculo
- Todos los módulos de dependencia han completado su procesamiento
- 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:
| Nivel | ID Externo del Término | Descripción | Productos Típicos |
|---|---|---|---|
| Estable en Estantería | EOS_STABLE | Productos que pueden almacenarse a temperatura ambiente durante períodos prolongados | Productos secos, enlatados, cereales, aceites |
| Perecedero | EOS_PERISHABLE | Productos que requieren almacenamiento controlado con vida útil moderada | Lácteos, huevos, carnes procesadas |
| Altamente Perecedero | EOS_HIGH-PERISHABLE | Productos que requieren refrigeración inmediata con vida útil corta | Carne 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:
- Los ingredientes hoja reciben perecibilidad de sus definiciones de términos de glosario
- Los productos combinados heredan la mayor perecibilidad de sus subingredientes
- 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ón | ID Externo del Término | Criterio |
|---|---|---|
| Producto Combinado | EOS_COMBINED_PRODUCT | El producto combina múltiples ingredientes de productos alimentarios diferentes |
| Monoproducto | EOS_MONO_PRODUCT | El 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ódulo | Razón |
|---|---|
AddClientNodesGFM | Los nodos especificados por el cliente deben añadirse primero |
MatchProductNameGFM | Los productos deben coincidir con términos de glosario |
IngredientSplitterGFM | Los ingredientes compuestos deben dividirse |
NutrientSubdivisionGFM | Las subdivisiones basadas en nutrientes deben procesarse |
LinkTermToActivityNodeGFM | Los términos deben enlazarse a actividades |
AttachFoodTagsGFM | Las etiquetas específicas de alimentos deben adjuntarse |
OriginGFM | La 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érmino | Nombre para Mostrar | Descripción |
|---|---|---|
EOS_STABLE | Estable en Estantería | Productos con vida útil extendida a temperatura ambiente |
EOS_PERISHABLE | Perecedero | Productos que requieren almacenamiento controlado |
EOS_HIGH-PERISHABLE | Altamente Perecedero | Productos 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érmino | Nombre para Mostrar | Descripción |
|---|---|---|
EOS_COMBINED_PRODUCT | Producto Combinado | Producto de conveniencia multi-ingrediente |
EOS_MONO_PRODUCT | Monoproducto | Producto 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
| Producto | Etiqueta de Perecibilidad | Etiqueta de Tipo de Producto |
|---|---|---|
| Ensalada Fresca | EOS_HIGH-PERISHABLE | EOS_MONO_PRODUCT |
| Leche en Polvo | EOS_STABLE | EOS_MONO_PRODUCT |
| Vinagre | EOS_STABLE | EOS_MONO_PRODUCT |
| Aceite | EOS_STABLE | EOS_MONO_PRODUCT |
| Perejil Fresco | EOS_HIGH-PERISHABLE | EOS_MONO_PRODUCT |
| Tofu | EOS_PERISHABLE | EOS_MONO_PRODUCT |
| Salsa Preparada | EOS_HIGH-PERISHABLE (asumido) | EOS_COMBINED_PRODUCT |
| Bol de Ensalada | EOS_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ódulo | Uso |
|---|---|
| Conservation GFM | Determina requisitos de almacenamiento (refrigerado, congelado, seco) |
| Transport GFM | Calcula requisitos de cadena de frío y viabilidad de modo de transporte |
| Food Loss GFM | Estima 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:
- Altamente Perecedero + Sin Etiqueta de Conservación: Asignado conservación "refrigerado"
- Perecedero + Sin Etiqueta de Conservación: Asignado conservación "refrigerado"
- 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
-
Documentación del Glosario EOS. Documentación interna de Eaternity para definiciones de términos de glosario.
-
Directrices de Almacenamiento de Alimentos. Directrices de seguridad alimentaria de la FDA y EFSA para requisitos de temperatura de almacenamiento.
-
Logística de Cadena de Frío. Estándares de la industria para transporte y almacenamiento de alimentos perecederos.