Zum Inhalt springen

Unabhängiges F&E-Projekt · Köln

Überblick angewandte Forschung

Herkunft und Verwahrung

AnyTrace

Eine Aufzeichnung darüber, wo sich eine Sache befunden hat, ist nur so gut wie ihre Fähigkeit, eine verspätet eintreffende Meldung aufzunehmen, ohne umzuschreiben, was bereits erfasst war.

Status: Forschungskonzept · unveröffentlichter Prototyp

Die Forschungsfrage

Wie können Herkunft und Verwahrung einer Sache und ihrer Evidenz rekonstruierbar bleiben, wenn Ereignisse verspätet und ungeordnet aus verschiedenen Systemen und Organisationen eintreffen?

  • Woher stammt es?
  • Was ist damit geschehen?
  • Wer hatte es in Verwahrung, und seit wann?
  • Welche Evidenz ging in die Rückverfolgung ein, und wann?

Das Modell, interaktiv

Eine Partie Rohkaffee geht von einer Genossenschaft in ein Exportlager und von dort auf ein Schiff. Das Lager meldet seinen Eingang sechs Stunden zu spät, nachdem das Schiff die Verladung bereits erfasst hat. Wählen Sie eine Anordnung und dann ein Ereignis.

Ereignisse ordnen nach

Wählen Sie ein Ereignis, um zu sehen, wer die Partie davor und danach verwahrte und welche Evidenz dazugehörte.

Exportlager

Geschehen
10:00
Erfasst
16:00
Vorheriger Verwahrer
Genossenschaft
Nächster Verwahrer
Reederei
Beigefügte Evidenz
Lagerschein
Gemeldet von
Meldung des Lagers, verspätet gesendet

Um 16:00 mit seiner tatsächlichen Zeit, 10:00, an die Kette angehängt. Es geht an seiner Stelle in die Rekonstruktion ein, und die Kette zeigt weiterhin, wann es eintraf. Der aktuelle Verwahrer springt nicht zurück: Eine verspätete Meldung über eine frühere Bewegung bedeutet nicht, dass die Partie zurückging.

Ein Szenario, Schritt für Schritt

Was das System erfasst, wenn Verwahrungsmeldungen ungeordnet eintreffen.

Schritt 1 von 5: Die Partie registrieren

  1. Die Partie wird mit ihren Kennungen zu einem Rückverfolgungsfall. Über die Verwahrung ist noch nichts bekannt, und die Projektion sagt das.

  2. Ein Verwahrungsereignis um 09:00. Die Kette erhält einen Eintrag; aktueller Verwahrer wird die Genossenschaft.

  3. Ein Verwahrungsereignis um 14:00 vom Beförderer. Aktueller Verwahrer wird die Reederei.

  4. Um 16:00 meldet das Lager einen Eingang um 10:00. Er wird mit seiner tatsächlichen Zeit und is_current = false ans Ende der Kette angehängt, weil er älter ist als der bereits erfasste Verwahrer.

  5. Nach Zeit gelesen, verläuft die Verwahrung Genossenschaft, Lager, Schiff. Nach Kette gelesen, ist die verspätete Meldung sichtbar verspätet. Beide Lesarten stammen aus denselben Einträgen, und keiner davon wurde bearbeitet.

Grundbausteine

  • Rückverfolgbare Entität

    AnyTraceEntity + kernel case

    Die verfolgte Sache, mit ihren Kennungen und einer Projektion dessen, wer sie gerade verwahrt. Die Wahrheit ist die Ereigniskette; die Projektion ist ein Hilfsmittel.

  • Verwahrungsereignis

    custody.recorded

    Eine Übergabe mit ihrer tatsächlichen Zeit, dem vorherigen und dem nächsten Verwahrer und einer ausdrücklichen Markierung, ob sie den aktuellen Verwahrer geändert hat.

  • Evidenzquelle

    attach_source

    Was eine Quelle über die Sache gesagt hat, beigefügt mit eigener Verwahrung und Aktualität, nie überschrieben.

  • Abstammungsverknüpfung

    derived_from

    Eine verfolgte Sache, die aus einer anderen hergestellt wurde. Verknüpfungen sind typisiert, sodass ein Graphdurchlauf sagen kann, wie Dinge zusammenhängen, nicht nur, dass sie es tun.

  • Hash-verkettete Zeitleiste

    kernel_events

    Jedes Ereignis wird mit dem Hash des vorherigen angehängt, in der Abfolge des Eintreffens. Die Rekonstruktion liest die Zeit; die Kette bewahrt die Abfolge.

  • Begrenzter Graphdurchlauf

    graph, lineage

    Die Umgebung eines Falls bis zu einer angegebenen Tiefe, ohne Nutzdaten, und mit der Angabe, wann er vorzeitig gestoppt hat.

Was es unterscheidet

AnyVerify

Seine Frage

Stützt die Evidenz eine bestimmte Aussage?

Warum dies nicht dasselbe ist

AnyTrace erfasst, wo sich eine Sache befunden hat und was über sie gesagt wurde. Es entscheidet nicht, ob irgendetwas davon wahr ist.

AnyValid

Seine Frage

Was hat eine maßgebliche Quelle gesagt, und ist das noch aktuell?

Warum dies nicht dasselbe ist

AnyTrace fragt keine Stelle irgendetwas. Seine Quellen sind die Beteiligten in der Kette.

AnyDPP

Seine Frage

Wie wird aus Evidenz ein veröffentlichter Pass?

Warum dies nicht dasselbe ist

Ein Pass ist eine mögliche Ausgabe einer Rückverfolgung. AnyTrace endet bei einem rekonstruierbaren Datensatz.

Was existiert und was nicht

Im Repository

  • app/products/anytrace/service.py: registrieren, Quelle beifügen, Verwahrung erfassen, verknüpfen, Graph, Abstammung, schließen
  • Tabelle anytrace_entities, über den Fällen, Ereignissen und der Evidenz des Kerns
  • 9 authentifizierte Routen, 404, solange das Modul abgeschaltet ist
  • tests/any_family/test_anytrace.py: Identität, verspätete Verwahrung, Abstammung ohne Nutzdaten (20 Tests)
  • tests/any_family/test_cross_module_reuse.py: eine Geschichte über fünf Module aus einem einzigen Graphdurchlauf

Forschungsagenda, nicht gebaut

  • Konnektoren, die Verwahrungsereignisse aus Partnersystemen empfangen
  • Jegliche Evidenz zum Verhalten auf einem großen Graphen
  • Erkennung widersprüchlicher Verwahrung, zwei Verwahrer zugleich

Wo es in AnyLAI steht

AnyTrace

  • Application kernelFügt den Fällen, der Kette, der Evidenz und den Verknüpfungen des Kerns ein Vokabular hinzu; darunter nichts Eigenes.
  • AnyVerifyEin Verifikationsfall verknüpft sich mit dem Rückverfolgungsfall, den er verifiziert.
  • AnyUSMCAJede Stücklistenzeile zeigt auf den Rückverfolgungsfall dieses Vormaterials.
  • Any2DPPEin Abbildungslauf verknüpft sich mit dem Rückverfolgungsfall, dessen Daten er abbildet.
  • COADFDie Kette trägt die Form des Prüfdatensatzes, die Regel 6 von COADF benennt; das ist Einfluss, keine Behauptung der Übereinstimmung.
  • Fallverknüpfung über den Kern
  • direkte Nutzung eines anderen Moduls oder Systems
  • Aufruf im Schattenmodus: erfasst, nie ausgeführt

Grenzen und Nicht-Ziele

  • Es erfasst, was Beteiligte gemeldet haben. Es stellt nicht fest, dass irgendeine Meldung wahr ist.
  • Es ordnet die Kette nie um und bearbeitet sie nie. Eine Korrektur ist ein neues Ereignis, keine Änderung an einem alten.
  • Der Graphdurchlauf ist begrenzt und wurde nicht auf einem großen Graphen ausgeführt.
  • Heute sendet ihm kein Partnersystem Ereignisse.

Aktueller Stand

Forschungsstand

  • Forschungskonzept · unveröffentlichter Prototyp
  • Unveröffentlicht: Routen abgeschaltet
  • Kein Produktivbetrieb, keine realen Daten
  • 20 Tests im Repository

Ein Prototyp-Modul über dem gemeinsamen Kern: Service, Tabelle, Routen und Tests existieren im Repository. Es ist abgeschaltet, hat keine öffentliche Route und wurde nicht mit realen Daten genutzt.

Testsuite: python-backend/tests/any_family/test_anytrace.py

Forschungsprojekt · Unabhängige F&E · Kein kommerzielles Angebot