Loading...
 

Warum RDF, OWL und SHACL?

mathiasp Monday May 10, 2021

Meine Gedanken über Open Learner Models und einige Diskussionen mit Freunden habe mich wieder einmal darüber reflektieren lassen, warum ich immer noch RDF als Modellierungsgrundlage nutze, obwohl es gerade in Programmiererkreisen nicht weit verbreitet ist.

Langlebigkeit


Daten sind nach meiner Erfahrung das langlebigste Artefakt, dass in der IT produziert wird. Ich habe schon viele Projekte gesehen, in denen neue Applikationen eingeführt wurden, und mit viel Mühe, Zeit- und Geldeinsatz die alten Daten übernommen werden mussten.

Darum sind mir proprietäre Datenformate suspekt. Ich gehe immer davon aus, dass ich die Daten eines Projektes länger benötige als die aktuelle Software.

Mein SQL-Wissen habe ich ... OMG: 1987 angefangen aufzubauen, und ich profitiere noch heute davon. Viele proprietäre DB-Sprachen sind gekommen und gegangen, ich habe einige davon gelernt, doch geblieben ist wenig. Doch in SQL definierte Daten kann ich noch heute verstehen.

Reifizierung


Mit RDF* ist endlich ein Standard entstanden, der es einfach macht, Metainformationen auszudrücken.

Das ist "bloß" eine Syntaxvereinfachung, aber sie hilft mir, gerade die vielen zu einfach strukturierten aber weit verbreiteten Ontologien zu benutzen.

Ein Beispiel ist die Friend of a Friend (FOAF)-Ontologie.
Eine Aussage wie :someone foaf:homepage <http://example.com/someone> ist für mich nutzlos, denn sie ignoriert völlig die Zeit, in der diese Information gültig ist. Ich habe bestimmt schon 4 Homepages gehabt, wie soll ich das darstellen? Und ich habe zu jeder Zeit mehrere "Homepages", die verschiedene Rollen ausfüllen.

Das ist natürlich auch in RDF einfach zu modellieren, in dem man die Beziehung einer Person zu einer URL zu einer Entität statt einer Relation macht, aber so ist es nun einmal nicht geschehen, und damit war FOAF für mich immer unbrauchbar.

Jetzt, mit RDF*, kann ich - relativ - einfach schreiben << :me :foaf:homepage <http://mathiaspicker.net> >> someNs:validFrom "2011-04-03" . und damit die Designentscheidung der Ontologie ergänzen (übergehen?).

Damit kann ich viele weit verbreitete Ontologien nutzen, viele Methoden von Property Graphs übernehmen, und damit RDF auch in anderen Zusammenhängen einbringen - ein deutliches Plus für RDF.

Vergleichbarkeit ähnlicher Datenmodelle


Mit dem gleichen Formalismus fallen (mir?) Ähnlichkeiten und Unterschiede in Datenmodellen eher auf.

Und da RDF sowohl als graph oder als logik interpretiert werden kann, kann ich damit alles ausdrücken, was typischerweise in der IT modelliert wird.

Ich kann bei der Abbildung eines Modells mit einem naiven Graphen anfangen, und wenn es meine Anwendung dann erfordert, zu einem vollständigen, wiederspruchsfreien, automatisch überprüfbaren Modell kommen.

Wie gesagt, ich recherchiere gerade Lerner Models, und dafür übertrage ich all die in der Literatur gefundenen Modelle in (naives) RDF, plus etwas RDFS & OWL hier und da.

Damit bekomme ich langsam ein gutes Gefühl dafür, wie die verschiedenen Autoren das Problem angehen.

Ähnliches habe ich mit dem telekom-orientierten Information Framework des tmforum gemacht, als ich für Telefonica an einem ConfigurePriceQuote-Modell mitgearbeitet habe. Ein Mapping von Teilbereichen zu einem mir bekannten Top-Level-Ontologie (gist von SemanticArts) hat mir das Verständnis erleichtert.

Offene und geschlossene Welten


Viele Programmierer und Datenbankdesigner hatten anscheinend Probleme mit dem open-world-Ansatz, der OWL zu Grunde liegt. Für viele meiner Anwendungen ist open-world genau richtig: ein Benutzermodell, dass davon ausgeht, alles über den Benutzer zu wissen ist mit Sicherheit falsch...

Aber z.B. die kleine Applikation die ich vor Jahren für Omanimali - Reispässe für Kuscheltiere geschrieben habe, braucht natürlich eine closed-word-Sicht auf ihre Daten: wenn kein Zahlungseingang in der Db steht, dann hat der Kunde nicht bezahlt ;)

Heute kann ich mit RDF beide Sichten abdecken: SHACL erlaubt es mir, Datenmodelle ähnlich klassischen Datenbank-Modellen zu bauen, und repräsentiert eine closed world.

Note to self: ich sollte das einmal anhand korrekter Beispiele demonstrieren ;)

(M)Eine zeitsparende Lingua Franca für Modellierungsaufgaben


All dies trägt dazu bei, dass ich RDF immer mehr als meine lingua franca für Modellierungsaufgaben sehe.

Und das spart mir Zeit: ich lerne nur einen Formalismus, das spart mir Trainingszeit, ich wende ihn häufiger an, womit ich Aufgaben immer schneller löse.

Schnell dahingeschrieben, aber es liegt mir auf dem Herzen


Dies ist ein zu schnell entstandener Artikel, aber das Thema saß mich jetzt auf der Seele, und ich habe diese Woche einfach zu viel zu tun um sorgfältiger zu schreiben.