Ir al contenido

Proyecto independiente de I+D · Colonia

Visión general de la investigación aplicada

Procedencia y custodia

AnyTrace

Un registro de por dónde ha pasado una cosa vale lo que valga su capacidad de absorber un informe que llega tarde, sin reescribir lo que ya estaba registrado.

Estado: Concepto de investigación · prototipo no publicado

La pregunta de investigación

¿Cómo pueden la procedencia y la custodia de una cosa y de su evidencia seguir siendo reconstruibles a medida que llegan eventos, tarde y desordenados, desde distintos sistemas y organizaciones?

  • ¿De dónde vino?
  • ¿Qué le pasó?
  • ¿Quién lo tuvo, y desde cuándo?
  • ¿Qué evidencia entró en la traza, y cuándo?

El modelo, de forma interactiva

Un lote de café verde pasa de una cooperativa a un almacén de exportación y de ahí a un barco. El almacén comunica su recepción con seis horas de retraso, cuando el barco ya ha registrado la carga. Elija una ordenación y después seleccione un evento.

Ordenar los eventos

Seleccione un evento para ver quién tenía el lote antes y después, y qué evidencia llegó con él.

Almacén de exportación

Ocurrió
10:00
Registrado
16:00
Poseedor anterior
Cooperativa
Poseedor siguiente
Naviera
Evidencia adjunta
Recibo de almacén
Comunicado por
Informe del almacén, enviado tarde

Añadido a la cadena a las 16:00 con su hora real, las 10:00. Entra en la reconstrucción en su lugar, y la cadena sigue mostrando cuándo llegó. El poseedor actual no retrocede: un informe tardío de un movimiento anterior no significa que el lote volviera atrás.

Un escenario, paso a paso

Lo que registra el sistema cuando los informes de custodia llegan desordenados.

Paso 1 de 5: Registrar el lote

  1. El lote se convierte en un caso de traza con sus identificadores. Todavía no se sabe nada de su custodia, y la proyección lo dice.

  2. Un evento de custodia a las 09:00. La cadena gana una entrada; el poseedor actual pasa a ser la cooperativa.

  3. Un evento de custodia a las 14:00 del transportista. El poseedor actual pasa a ser la naviera.

  4. A las 16:00 el almacén comunica una recepción a las 10:00. Se añade al final de la cadena con su hora real e is_current = false, porque es anterior al poseedor ya registrado.

  5. Leída por tiempo, la custodia va de la cooperativa al almacén y al barco. Leída por cadena, el informe tardío se ve tardío. Ambas lecturas salen de los mismos registros, y ninguno se editó.

Primitivas centrales

  • Entidad rastreable

    AnyTraceEntity + kernel case

    La cosa a la que se sigue, con sus identificadores y una proyección de quién la tiene ahora. La verdad es la cadena de eventos; la proyección es una comodidad.

  • Evento de custodia

    custody.recorded

    Una transferencia con su hora real, el poseedor anterior y el siguiente, y una marca explícita de si cambió el poseedor actual.

  • Fuente de evidencia

    attach_source

    Lo que una fuente dijo sobre la cosa, adjuntado con su propia custodia y vigencia, nunca sobrescrito.

  • Enlace de linaje

    derived_from

    Una cosa rastreada hecha a partir de otra. Los enlaces son tipados, así que un recorrido del grafo puede decir cómo se relacionan las cosas, no solo que se relacionan.

  • Línea temporal encadenada por hashes

    kernel_events

    Cada evento se añade con el hash del anterior, por orden de llegada. La reconstrucción lee el tiempo; la cadena conserva el orden.

  • Recorrido acotado del grafo

    graph, lineage

    El vecindario de un caso hasta una profundidad declarada, sin contenidos, e indicando cuándo se detuvo antes de tiempo.

Qué lo distingue

AnyVerify

Su pregunta

¿Sostiene la evidencia una afirmación concreta?

Por qué esto no es aquello

AnyTrace registra por dónde ha pasado una cosa y qué se dijo sobre ella. No decide si algo de eso es cierto.

AnyValid

Su pregunta

¿Qué dijo una fuente autorizada, y sigue vigente?

Por qué esto no es aquello

AnyTrace no pregunta nada a ninguna autoridad. Sus fuentes son las partes de la cadena.

AnyDPP

Su pregunta

¿Cómo se convierte la evidencia en un pasaporte publicado?

Por qué esto no es aquello

Un pasaporte es un resultado posible de una traza. AnyTrace termina en un registro reconstruible.

Qué existe y qué no

En el repositorio

  • app/products/anytrace/service.py: registrar, adjuntar fuente, registrar custodia, enlazar, grafo, linaje, cerrar
  • Tabla anytrace_entities, sobre los casos, eventos y evidencia del núcleo
  • 9 rutas autenticadas, 404 mientras el módulo está desactivado
  • tests/any_family/test_anytrace.py: identidad, custodia tardía, linaje sin contenidos (20 pruebas)
  • tests/any_family/test_cross_module_reuse.py: una historia a través de cinco módulos a partir de un recorrido del grafo

Agenda de investigación, no construido

  • Conectores que reciban eventos de custodia de sistemas de socios
  • Cualquier evidencia de comportamiento en un grafo grande
  • Detección de custodias contradictorias, dos poseedores a la vez

Dónde se sitúa en AnyLAI

AnyTrace

  • Application kernelAñade un vocabulario a los casos, la cadena, la evidencia y los enlaces del núcleo; nada propio por debajo de eso.
  • AnyVerifyUn caso de verificación enlaza con el caso de traza que verifica.
  • AnyUSMCACada línea de la lista de materiales apunta al caso de traza de ese insumo.
  • Any2DPPUna ejecución de correspondencia enlaza con el caso de traza cuyos datos mapea.
  • COADFLa cadena lleva la forma de registro de auditoría que nombra la regla 6 de COADF; es una influencia, no una declaración de conformidad.
  • enlace entre casos a través del núcleo
  • uso directo de otro módulo o sistema
  • llamada en modo sombra: registrada, nunca ejecutada

Límites y objetivos excluidos

  • Registra lo que comunicaron las partes. No establece que ningún informe sea cierto.
  • Nunca reordena ni edita la cadena. Una corrección es un evento nuevo, no un cambio en uno antiguo.
  • El recorrido del grafo está acotado y no se ha ejecutado sobre un grafo grande.
  • Hoy ningún sistema de socios le envía eventos.

Estado actual

Estado de la investigación

  • Concepto de investigación · prototipo no publicado
  • No publicado: rutas desactivadas
  • Sin uso en producción, sin datos reales
  • 20 pruebas en el repositorio

Un módulo prototipo sobre el núcleo compartido: el servicio, la tabla, las rutas y las pruebas existen en el repositorio. Está desactivado, no tiene ruta pública y no se ha usado con datos reales.

Batería de pruebas: python-backend/tests/any_family/test_anytrace.py

Proyecto de investigación · I+D independiente · No es una oferta comercial