Produktmodell: Produktbaum und Instanzbaum
Das Produktmodell der Norm besteht aus zwei Vokabularen, die denselben Baum aus zwei Blickwinkeln beschreiben:
-
Die Produktdefinition (Präfix
p:) beschreibt vorab – a priori – und für alle Kunden gleich, was möglich ist: welche Bausteine ein Produkt hat, wie oft sie vorkommen dürfen, welche Attribute sie tragen (siehe Versicherungsprodukte als Regelwerke). -
Die Produktinstanzen (Präfix
i:) beschreiben den konkreten Fall: welche Bausteine für einen Kunden tatsächlich gewählt sind und welche Werte die Attribute haben.
Beide Vokabulare sind gleich aufgebaut: ein abstrakter Knoten, eine Wurzel und beliebig tief geschachtelte
Unterknoten. Jeder Knoten des Instanzbaums verweist mit i:basedOn auf den Knoten des Produktbaums, auf dem er
beruht. Der Produktbaum ist damit die Schablone, der Instanzbaum die Ausprägung.
Produktbaum (Produktwissen, p:)
Der Produktbaum, fachlich auch Deckungsbaum genannt, ist die hierarchische Struktur eines Versicherungsprodukts. Er wird von der Versicherung definiert und zur Laufzeit an die Clients übermittelt.
Produktknoten (p:ProductNode)
Der Produktknoten ist der abstrakte Oberbegriff für jeden Knoten im Produktbaum. Er bündelt, was Produkt und Produktkomponente gemeinsam haben:
-
Bezeichnung und Beschreibung (
rdfs:label,rdfs:comment), jeweils sprachmarkiert, mindestens eine Bezeichnung auf Deutsch, -
Verfügbarkeit (verfügbar ab, verfügbar bis), gegen die der → Stichtag geprüft wird,
-
untergeordnete Produktkomponenten (
p:hasComponent), -
Produktattribute wie Versicherungssumme oder Selbstbehalt (
p:hasAttribute), -
zugeordnete Versicherungsbedingungen und Klauseln.
Ein Produktknoten kommt im Produktbaum nie selbst vor: Jeder Knoten ist entweder ein Produkt oder eine Produktkomponente. Der Begriff wird gebraucht, wenn eine Aussage für alle Knoten gilt, etwa „jeder Produktknoten hat einen Namen“.
Produkt (p:Product)
Das Produkt ist die Wurzel des Produktbaums: das, was einem Kunden zum Abschluss angeboten wird. Es entspricht dem
Verkaufsprodukt in OMDS 3. Ein Produktbaum hat genau ein Produkt; es hat kein übergeordnetes Element. Beispiele: die
„Kfz-Versicherung“ (ex:Motor) und die „Lebensversicherung“ (ex:Life) des
Beispielkatalogs der Norm.
Produktkomponente (p:ProductComponent)
Die Produktkomponente, auch Produktbaustein genannt, ist ein Unterknoten des Produktbaums. Sie liegt entweder direkt
unter dem Produkt oder tiefer unter einer anderen Produktkomponente. Zusätzlich zu den Eigenschaften eines Produktknotens
legt sie fest, wie oft sie in einer Instanz vorkommen muss bzw. darf (p:minOccurrence, p:maxOccurrence). Damit
unterscheidet die Produktdefinition Pflichtbausteine (mindestens einmal) von optionalen Bausteinen (mindestens null
Mal). Beispiele: die Kfz-Haftpflicht als Pflichtbaustein, darunter die optionale Pannenhilfe; die Vollkasko
als optionaler Baustein neben der Haftpflicht, der bis zu dreimal vorkommen darf.
OMDS 3 gibt den Ebenen des Produktbaums unterschiedliche Namen (Verkaufsprodukt, Produktbaustein, Deckung, …). Für die Schnittstelle genügt es, Wurzel und Unterknoten zu unterscheiden; die Norm kennt daher nur Produkt und Produktkomponente. Die Tiefe des Baums ist nicht begrenzt.
Instanzbaum (Produktinstanzen, i:)
Der Instanzbaum ist die konkrete Ausprägung eines Produktbaums für einen Fall. Er entsteht beim Vermittler oder KI-Agenten aus der Produktdefinition (zunächst als → Default-Instanz), wird konfiguriert und durchläuft dann die Antragsstrecke.
Instanzknoten (i:InstanceNode)
Der Instanzknoten ist der abstrakte Oberbegriff für jeden Knoten im Instanzbaum, das Gegenstück zum Produktknoten. Jeder Instanzknoten
-
verweist mit
i:basedOnauf genau den Produktknoten, auf dem er beruht, -
kann untergeordnete Instanzkomponenten haben (
i:hasComponent), -
trägt die Instanzattribute mit den konkreten Werten (
i:hasAttribute).
Wie der Produktknoten kommt der Instanzknoten nie selbst vor; jeder Knoten ist entweder eine Instanz oder eine Instanzkomponente.
Instanz (i:Instance)
Die Instanz ist die Wurzel eines Instanzbaums: die konkrete Instanz eines Produkts. Sie beruht auf einem Produkt
(i:basedOn zeigt auf ein p:Product), hat kein übergeordnetes Element und trägt die Angaben, die den Baum als Ganzes
betreffen, etwa den Versicherungsbeginn.
Ein und dieselbe Instanz begleitet den gesamten Prozess: Die → Produktkonfiguration ist eine Instanz, die die Produktregeln erfüllt. Die → Berechnung ermittelt zu einer Instanz die Prämie. → Offert, → Antrag und → Vertrag enthalten dieselbe Instanz, erweitert um Angaben, die das jeweilige Geschäftsobjekt braucht, etwa Antragsfragen, Personen und Zahlungsdetails (siehe Versicherungsprodukte als Regelwerke). Der Instanzbaum selbst ändert dabei seine Struktur nicht; nur die Regeln, die an ihn angelegt werden, hängen vom Geschäftsobjekt und seinem Zustand ab.
Instanzkomponente (i:InstanceComponent)
Die Instanzkomponente ist ein Unterknoten des Instanzbaums. Sie beruht auf einer Produktkomponente (i:basedOn
zeigt auf eine p:ProductComponent) und hat genau ein übergeordnetes Element (i:isComponentOf), das wiederum auf dem
übergeordneten Produktknoten beruhen muss. So bleibt die Hierarchie der Instanz mit der des Produkts deckungsgleich.
Wie oft eine Instanzkomponente unter ihrem Elternknoten vorkommen darf, bestimmt die Produktkomponente über ihre
minimale und maximale Häufigkeit.
Instanzattribut (i:InstanceAttribute)
Das Instanzattribut ist die konkrete Ausprägung eines Produktattributs an einem Instanzknoten. Es beruht auf dem
Produktattribut (i:basedOn), hängt an genau einem Instanzknoten (i:isAttributeOf) und trägt höchstens einen Wert
(i:value). Der Datentyp des Werts folgt der Attributklasse: Text (i:StringAttribute), ganze Zahl
(i:IntAttribute), Dezimalzahl (i:DecimalAttribute) oder Wahrheitswert (i:BooleanAttribute). Vorbelegung,
Grenzen und Pflicht stehen nicht am Instanzattribut, sondern am Produktattribut; eine neue Instanz übernimmt die
Vorbelegung als Wert.
Gegenüberstellung
| Rolle im Baum | Produktbaum (p:) |
Instanzbaum (i:) |
Verknüpfung |
|---|---|---|---|
Abstrakter Knoten |
Produktknoten ( |
Instanzknoten ( |
|
Wurzel |
Produkt ( |
Instanz ( |
|
Unterknoten |
Produktkomponente ( |
Instanzkomponente ( |
|
Eigenschaft eines Knotens |
Produktattribut ( |
Instanzattribut ( |
|
Risikoobjekte |
Verweisregel ( |
Liste an der Instanz ( |
die Regel des Produktknotens bestimmt die Verweise seiner Instanzknoten (siehe Risikoobjekte) |
Hierarchie |
|
|
beide Richtungen müssen zueinander passen |
Die Baumstruktur ist in beiden Vokabularen in beide Richtungen verknüpft: Der Elternknoten kennt seine Komponenten, jede Komponente kennt ihren Elternknoten. Attribute, Risikoobjekte, Personen und Rollen sind keine Knoten des Baums, sondern hängen an einem Knoten oder werden von ihm referenziert (siehe Objekte).
Beispielkatalog der Norm
Die Norm wird mit einem kleinen, informativen Beispielkatalog ausgeliefert, der jedes Konzept des Produktmodells mindestens einmal zeigt. Er gehört keinem Versicherer, ist von keinem der Beispielversicherer abgeleitet und ändert sich nur mit der Norm. Die Prüfregeln der Norm werden gegen ihn getestet, ebenso gegen Negativbeispiele, die je eine Regel verletzen.
| Merkmal | Wert |
|---|---|
Namensraum, Präfix |
|
Katalog im Repository |
|
Beispielinstanzen |
|
Die „Kfz-Versicherung“ ex:Motor hat diesen Produktbaum:
| Produktkomponente | Art | Häufigkeit | Attribute |
|---|---|---|---|
Kfz-Haftpflicht ( |
Pflichtbaustein |
1..1 |
Versicherungssumme (Dezimal, Pflicht), Leistung in kW (Ganzzahl, Pflicht) |
Pannenhilfe ( |
Wahlbaustein unter der Haftpflicht |
0..1 |
– |
Vollkasko 2025 ( |
Wahlbaustein, verfügbar bis 2025-12-31 |
0..3 |
Selbstbehalt (Dezimal) |
Vollkasko 2026 ( |
Wahlbaustein, Nachfolger der Vollkasko 2025 |
0..3 |
Selbstbehalt (Dezimal), Neuwertentschädigung (Ja/Nein) |
Teilkasko ( |
Wahlbaustein |
0..1 |
– |
Assistance ( |
Wahlbaustein ohne Obergrenze |
0.. |
– |
Am Produkt selbst hängt das Attribut Kennzeichen (Text). Die Vollkasko 2025 und die Vollkasko 2026 sind zwei
Versionen desselben Bausteins (p:hasPrevious, p:hasSuccessor); welche gilt, entscheidet der Stichtag. Die
„Lebensversicherung“ ex:Life ist ein Produkt ohne Baustein: Ihre Instanz besteht nur aus der Wurzel.
Beispiel
Eine Instanz der Kfz-Versicherung mit Beginn 2026-07-01, bei der Haftpflicht, Pannenhilfe und Vollkasko 2026 gewählt
sind, sieht als Instanzbaum so aus (Attribute weggelassen; vollständig in SampleInstance_02_Motor_Max.ttl):
i:Motor_JD_8812 a i:Instance ;
i:basedOn ex:Motor ; # das Produkt
i:startDate "2026-07-01"^^xs:date ;
i:hasComponent i:JD_Liability ;
i:hasComponent i:JD_FullCasco .
i:JD_Liability a i:InstanceComponent ;
i:basedOn ex:Motor_Liability ; # Produktkomponente Kfz-Haftpflicht
i:isComponentOf i:Motor_JD_8812 ;
i:hasComponent i:JD_BreakdownService .
i:JD_BreakdownService a i:InstanceComponent ;
i:basedOn ex:Motor_BreakdownService ; # Produktkomponente Pannenhilfe
i:isComponentOf i:JD_Liability .
i:JD_FullCasco a i:InstanceComponent ;
i:basedOn ex:Motor_FullCasco_2026 ; # Produktkomponente Vollkasko 2026
i:isComponentOf i:Motor_JD_8812 .
Lässt man die Vollkasko weg, bleibt die Instanz gültig, weil die Vollkasko optional ist. Lässt man die Haftpflicht weg, ist sie ungültig, weil die Produktkomponente mindestens einmal verlangt ist.
Prüfung durch Shapes
Die Norm legt die Struktur beider Bäume mit SHACL-Shapes fest, die Client und Server gleichermaßen auswerten können. Geprüft wird unter anderem:
-
Produktknoten und Instanzknoten werden nie direkt verwendet, nur ihre konkreten Unterklassen.
-
Ein Produkt bzw. eine Instanz hat kein übergeordnetes Element; eine Produkt- bzw. Instanzkomponente hat genau eines.
-
Jeder Instanzknoten verweist auf genau einen Produktknoten des passenden Typs: Instanz auf Produkt, Instanzkomponente auf Produktkomponente.
-
Der Elternknoten einer Instanzkomponente beruht auf dem Elternknoten der zugehörigen Produktkomponente.
-
Die Anzahl der Instanzkomponenten unter einem Knoten liegt innerhalb der minimalen und maximalen Häufigkeit der Produktkomponente.
-
Der Wert eines Instanzattributs hat den Datentyp seiner Attributklasse und liegt innerhalb der Grenzen des Produktattributs; ein Pflichtattribut hat einen Wert.
Verletzungen werden als → Meldung am betroffenen Knoten oder Attribut zurückgegeben; ein Element kann mehrere Meldungen tragen. Die Versicherung prüft immer vollständig, auch wenn der Client dieselben Shapes schon selbst ausgewertet hat (siehe Lösungsansatz, Produktwissen).