Exkurs: Ontologie vs. OO

Exkurs: Ontologie vs. OO#

OO … Objektorientierung

Anlass zu diesem Exkurs: Auf der Seite https://www.w3.org/TR/vocab-dcat-3/#dcat-scope ist ein UML-Diagramm https://www.w3.org/TR/vocab-dcat-3/images/dcat-all-attributes.svg eingefügt:

Auch in https://www.dcat-ap.de/def/dcatde/2.0/spec/ wird ein UML-Diagram angegeben: https://www.dcat-ap.de/def/dcatde/2.0/uml/dcat-ap-de.svg

In https://www.dcat-ap.de/def/dcatde/2.0/spec/#x3-2-tabellarische-ubersicht wird textuell angegeben, welche Elemente verpflichtend, empfohlen, optional sind.

Problem#

Im UML (und also OO) hat ein Pfeil mit nicht ausgefülltem Dreieck die informelle Bedeutung “Vererbung”.

Auch wenn in RDF(S) die Subklassenbeziehung mit dem gleichen Pfeil wie die Vererbung in OO dargestellt wird, hat das nichts miteinander zu tun. Es stellt sich die Frage, welche Rolle ein UML-Diagramm in einer Welt spielt, die RDF(S) und das Semantic Web als grundlegendes Datenmodell und Semantik-Modell gewählt hat.

Ohne weitere Angaben ist die Semantik eines UML-Diagramms in der RDF-Welt und im Semantic Web undefiniert. Insbesondere verstehe ich nicht den Begriff “Vererbung”. Überlegungen dazu:

Subclass#

In RDF(S) gibt es das Konzept rdfs:subClass. Die formale Semantik von Subclass ist definiert in https://www.w3.org/TR/rdf11-mt/#rdfs-entailment, RDFS entailment pattern rdfs9: Aus xxx rdfs:subClassOf yyy und zzz rdf:type xxx folgt zzz rdf:type yyy. Hier ist nichts zu sehen, was irgendetwas mit Vererbung zu tun hat.

z.B. [NN21] (https://www.scitepress.org/PublishedPapers/2021/106428/106428.pdf) versucht beide Welten zusammenzubringen. Interessant hier die Abbildung 1, weil sich die Pfeile und ihre Richtung sublim unterscheiden:

Weitere Literatur zu UML als Ontologie-Modellierungssprache: [MMLabbaniNarsisN20].

Attribute#

Die abgeleitete Klasse hat die Attribute x und y … (https://de.wikipedia.org/wiki/Vererbung_(Programmierung), Hervorhebung JB)

Ich habe in der Fma Ontoprise professionell mit F-Logik gearbeitet. F-Logik ist framebasiert, die Übersetzung von UML in F-Logik bereitet da keine Schwierigkeiten.

Mir ist aber unklar, was in RDF(S) damit gemeint sein könnte

  • dass eine Klasse etwas “hat”

  • und was es bedeuten könnte, dass eine Klasse ein “Attribut” hat.

Ein “Attribut” zu “haben” ist eine Denkfigur, die einen Kern von framebasierten Wissenrepräsentationen bildet. Aber ohne weitere Angaben macht das für RDF(S) (und OWL etc.) keinen Sinn. Ohne weitere Angabenm gänzlich unklar ist mir, was es bedeutet, ein Attribut, das eine Klasse “hat”, “vererben” zu können.

Lösung#

In der Praxis sind Ontolgien in RDF(S) oft zu ausdrucksschwach, in OWL zu kompliziert. RDF(S) ist auf Entailment ausgerichtet. Für die Überprüfung von Korrektheit oder Konsistenz gibt es die Sprache SHAQL. Das Applikationsprofil https://www.dcat-ap.de/def/dcatde/2.0/spec/ (Backlink: [www]) gibt normalsprachlich Regeln an, wie ein korrekter Datensatz auszusehen hat. Die Govdata-Leute interpretieren diesen Text, erstellen SHAQL-Regeln, und bieten einen Validations-Service an. (vgl. Github: GovDataOfficial/DCAT-AP.de-SHACL-Validation)

Wir haben also die Situation, dass wir ein (frbr-) Werk – nämlich die DCAT-AP Spezifikation – in unterschiedlichen (frbr-) Expressionen modellieren, die noch dazu verschiedenen konzeptuellen Datenmodellen (RD(S), Frames) folgen. Das ist auch wissenschaftstheoretisch eine interessante Situation (die aber schon lange z.B. im sog. Welle-Teilchen-Dualismus bekannt ist).

Schöner Aufsatz dazu siehe z.B. [RG19] (https://www.researchgate.net/publication/328699597_How_do_Individuals_Interpret_Multiple_Conceptual_Models_A_Theory_of_Combined_Ontological_Completeness_and_Overlap), daraus Abbildung 1: