Zum Inhalt springen

VerfahrenAbbild · 09 von 35

Wie ändert sich die Ontologie, ohne etwas zu brechen?

Die Ontologie hat Versionen wie Code.

Thema
FORGE
Lesezeit
3 Min.
Erstfassung
Auf dieser Seite
  1. 01Jede Änderung ist eine Version
  2. 02Verträglich oder nicht
  3. 03Migrationen
  4. 04Zweige und Zusammenführen
  5. 05Zurücknehmen
  6. 06Schema
  7. 07Grenze und Regel
  8. 08Fragen
  9. 09Quellen
  10. 10Verwandte Seiten

Was gebaut ist

Die Ontologie beschreibt, was in einer Organisation ein Objekt ist, welche Eigenschaften es hat und welche Handlungen möglich sind. Sie ändert sich, wenn sich die Organisation ändert. Das geplante System behandelt jede Änderung wie eine Änderung an Code: mit Version, Prüfung, Vergleich und Rücknahme.

Im System · FORGE

Schema zu Die Ontologie hat Versionen wie Code.ERP als Quellen; ihre Angaben steigen in ein Objekt. Das Objekt behält frühere Versionen.REGELERPVERSION
  • ERP als Quellen; ihre Angaben steigen in ein Objekt.
  • Das Objekt behält frühere Versionen.
  • Eine Regel umgrenzt die Objekte.

Jede Änderung ist eine Version

Begriff · Ontologie

Die gemeinsame Beschreibung einer Organisation: Objekttypen mit Eigenschaften, Beziehungen, Regeln und Handlungen, als Daten mit Version, Herkunft und Recht.

Ontologie im Zusammenhang

Jede Änderung an Typen, Eigenschaften, Verknüpfungen, Abbildungen, Regeln oder Handlungen ergibt eine neue Version der Ontologie. Eine Version hat eine Nummer, einen Urheber, eine Begründung und einen Prüfwert über ihren Inhalt. Abfragen, Handlungen und Rechte nennen die Version, gegen die sie geschrieben sind.

Verträglich oder nicht

Begriff · Schema

Ein versionierter Vertrag über Felder, Typen und erlaubte Werte. Die Prüfung muss unbekannte und ungültige Eingaben behandeln.

Schnittstellen: geplante Verträge

Verträglich ist, was bestehende Nutzer nicht bricht: eine neue optionale Eigenschaft, ein neuer Typ, eine zusätzliche erlaubte Handlung. Unverträglich ist, was sie bricht: eine entfernte Eigenschaft, ein anderer Datentyp, eine neue Bedeutung für einen bestehenden Wert, ein neues Pflichtfeld. Das Schema der Nummern folgt dem Gedanken der semantischen Versionierung: Eine unverträgliche Änderung ist eine neue Hauptversion.

FORGE stuft jede Änderung beim Vergleich ein und weist unverträgliche aus. Eine unverträgliche Änderung lässt sich nicht freigeben, solange nicht feststeht, was mit den Nutzern geschieht, die sie bricht.

Migrationen

Eine unverträgliche Änderung kommt mit einer Migration, die bestehende Objekte in die neue Form überführt. Sie ist Code mit Test, sie läuft zuerst auf einem Zweig gegen die echten Daten, und ihr Ergebnis wird mit der Hauptlinie verglichen, bevor sie wirkt. Eine Migration löscht nicht stillschweigend: Was in der neuen Form keinen Platz hat, bleibt in der alten Version lesbar.

Die alte Version bleibt lesbar, solange Nutzer sie nennen. So können Anwendungen, Schnittstellen und Agenten nacheinander umziehen und nicht alle zugleich.

Zweige und Zusammenführen

Gearbeitet wird auf Zweigen. Ein Zweig teilt alles mit der Hauptlinie, bis er etwas ändert, und die Hauptlinie bleibt unberührt, bis eine Freigabe die Version zusammenführt. Haben beide Seiten dieselbe Stelle geändert, entsteht ein Konflikt, der mit beiden Fassungen vorgelegt und nie still entschieden wird. Die technische Seite zu den Zweigen in FORGE beschreibt den Mechanismus.

Zurücknehmen

Eine Rücknahme setzt den Zeiger der Hauptlinie auf die vorige Version. Daten, die unter der neuen Version entstanden sind, bleiben erhalten und lesen sich unter der alten über die Migration zurück, soweit sie dort darstellbar sind; was nicht darstellbar ist, wird genannt. Rücknahme und Zusammenführen stehen im Verlauf mit Urheber und Begründung. Eine Version, die ein Mal gewirkt hat, wird nicht gelöscht, sondern abgelöst.

Schema

version: <hauptversion>.<nebenversion>
urheber: <identitaet>
begruendung: <text>
aenderungen:
  - art: eigenschaft_hinzu
    typ: <objekttyp>
    vertraeglich: ja
  - art: eigenschaft_entfernt
    typ: <objekttyp>
    vertraeglich: nein
    migration: <migration>
pruefwert: sha256:<wert>
Schema 1YAML · Schema mit Platzhaltern

Grenze

Grenze
Die Versionierung der Ontologie ist geplant. Der Prototyp von Freigabe und Protokoll enthält keine Ontologie und keine Migration.

Fragen

Was geschieht mit Anwendungen, die eine alte Version nennen?
Sie lesen weiter die alte Version, solange sie bestehen darf. Ihr Umzug ist eine Änderung mit eigenem Termin.
Lässt sich eine Migration zurücknehmen?
Die Version lässt sich zurücksetzen. Was in der alten Form nicht darstellbar ist, wird beim Zurücklesen genannt und nicht gelöscht.

Quellen

  1. Semantic Versioning 2.0.0Gedanke der Hauptversion für unverträgliche Änderungen; für die Ontologie sinngemäß übernommen.
  2. JSON Schema SpecificationBeschreibung von Datenschemata, auf die sich Typen und Migrationen stützen.

Verwandte Seiten