Verpackte Milch

Contents

Verpackte Milch#

Diese Seite: technische Umsetzung zum Beispiel semantische-dekomposition-konglomerat (TBD, 2b done)

Bei einem Konglomerat kann es vorkommen, dass man das Konglomerat mit Attributen beschreibt, die genauer eigentlich den assoziierten Bestandteilen zugeordnet sind.

Wir modellieren das Handelsgut VerpackteMilch als RDF-Graph im Format Turtle (*.ttl):

@prefix ean: <http://www.opengtindb.org/index.php?cmd=ean1&ean=>
@prefix ex: <http://my.example.com/ex#>

ean:4101530003106
   rdf:type ex:VerpackteMilch ;
   ex:hatBeschreibung "Haltbare Berg- und Alpenmilch 1,5% 1l Tetra VLOG"@de ;
   ex:hatHersteller ex:Berchtesgadener_Land .
   ex:hatFettgehalt "0.15"^^xsd:float  ;

Wir sind daran interessiert zu modellieren, wie sich ein Konglomerat im Detail aus assoziierten Bestandteilen zusammensetzt:

  • Wir legen zu einer bestehenden Entität des Typs ex:VerpackteMilch eine neue Entität des Typs ex:Milch an;

  • wir assoziieren die neue Entität mit der bestehenden Entität;

  • wir verschieben Eigenschaften wie ex:hatFettgehalt auf die neu eingeführte Entität.

Code#

TBD: in Python mit RDFlib codieren.

Technisches Problem 1: Die Entailment-Regeln in RDFS können zwar zwischen existierenden Entitäten neue Beziehungen herstellen (genauer: implizit enthaltene Beziehungen explizit machen), nicht aber neue Entitäten einführen …(NACHPRÜFEN: wie sieht das in OWL aus, in F-Logik? Technik: Skolemisierung) … technische Lösung: Wir fragen den Graphen nach Entitäten vom Typ verpackteMilch an (SPARQL query), und werden die neuen Entitäten dann selbst erzeugen und in einen (möglicherweise anderen) RDF-Graphen initial einfügen (SPARQL update)

Technisches Problem 2: “verschieben” wäre schön, ist aber nicht möglich. Wenn in einer Datenbank, die irgendwann schon einmal in die Welt entlassen wurde, unserer Meinung nach “falsche” Fakten enthalten sind, dann lassen sich diese nicht mehr löschen. … Lösung (?): Wir erzeugen aus dem existierenden, “fehler”-behafteten Graphen einen neuen, verfeinerten Graphen; in diesen kopieren wir die für die neuen Entitäten charakteristischen Eigenschaften einfach ‘rüber.

Konzeptionelles Problem: Genaue Analyse des Zyklus’ zwischen manuellen SPARQL-Abfragen, SPARQL-update und Inferencing mit OWLRL.

Ergebnis#

@prefix ean: <http://www.opengtindb.org/index.php?cmd=ean1&ean=>
@prefix ex: <http://my.example.com/ex#>

# aus dem Original-Datensatz immer noch gültig
ean:4101530003106
   rdf:type ex:verpackteMilch ;
   ex:hatBeschreibung "Haltbare Berg- und Alpenmilch 1,5% 1l Tetra VLOG"@de ;
   ex:hatHersteller ex:Berchtesgadener_Land .

# Ergebnis der semantischen Dekomposition
ean:4101530003106
   ex:hat_assoziiertenTeil
      ex:Milch_4 101530003106, 
      ex:Verpackung_4101530003106 .

ex:Milch_4101530003106
   rdf:type ex:Milch ;
   ex:MilchHatFettgehalt 0.15 .

ex:Verpackung_4101530003106 .
   rdf:type ex:Verpackung ;
   ex:hatVerpackungsHersteller ex:Tetrapack .