Hallo Gunnar,
Zur Beschreibung eigener Auszeichnungssprachen – besser gesagt: des eigenen Vokabulars – dienen RDF Schema und OWL, die von verarbeitender Software verstanden werden, weil sie auch in RDF geschrieben sind.
Das halte ich noch lange für ein Hirngespinst. Ehrlich.
Wahrscheinlich hab ich das in der Vergangenheit noch mal hier geschrieben, aber ich wiederhole es gerne noch einmal. Nehmen wir mal das Beispiel FOAF. Kennt die Software nur RDF und OWL und kann dieses verarbeiten, weiss sie nicht, dass das Element foaf:Person eine Person beschreibt. Es weiss nur, dass dieses Element, eine Klasse im Sinne von OWL ist. Das ist es auch schon, was sich in RDF Schema und OWL ausdrücken lässt, grundsätzliche Verbindungen zwischen abstrakten Konzepten.
Ok, es weiss noch, dass es im OWL-Sinne eine Subklasse von http://xmlns.com/wordnet/1.6/Person ist (und anderen Klassen ist). Was macht nun unsere findige Software? Sie dereferenziert diese URI und sucht nach weiteren in RDF notierten Informationen über das Konzept. Bis sie auf atomares Wissen stößt, dass sie kennt und mit dem sie etwas anfangen kann. Deswegen habe ich Person von wordnet genommen:
http://xmlns.com/wordnet/1.6/Person
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Organism
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Being
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Living\_thing
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Animate\_thing
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Object
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Physical\_object
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Entity
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Causal\_agent
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Cause
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Causal\_agency
... ist eine Subklasse von ...
http://xmlns.com/wordnet/1.6/Entity
Man beachte den Kreis im Graphen. Und ja, dieses Beispiel stammt direkt aus dem RDF Schema von wordnet:Person. Nur gibt es da nicht weiter viel, guck es Dir selber an, alle URIs sind dereferenzierbar. Alles, was Wordnet tut, ist es die Klassifizierung von Konzepten untereinander abzubilden. Unsere fiktive RDF könnende Software weiss immer noch nicht, was foaf:Person ist, ausser dass es letztendlich eine Subklasse von wordnet:Entity ist. Genauso gut könnte foaf:Person foo:bar heissen und eine Subklasse von baz:qux sein. Der nur RDF könnenden Software ist das wurst. Semantik entsteht nicht dadurch, dass man RDF und OWL kann.
Im Falle von Wordnet ist die Semantik der Elemente im Wordnet Namensraum woanders definiert. Im für Maschinen eher unsinnigeren rdfs:description-Element, das nur eine Übername einer für Menschen lesbaren Definition ist. Und diese steht letztendlich in der Wordnet Lexical Database. Und jetzt sind wir am Punkt angekommen, wo Semantik wichtig ist: Der Autor der Software, die FOAF und andere auf Wordnet/RDF basierende Formate konsumieren will, muss die Semantik der Wordnet Konzepte kennen und diese in die eigene Übersetzen. Semantik entsteht also letztendlich immer noch bei der Rezeption von Informationen.
Dann kann man das Semantic Web auch sein lassen, höre ich da murmeln. Nicht unbedingt. Nein. Das Semantic Web ist ja nicht unbedingt derselbe axiomatisch basierte, universelle Aufbau von Wissen, der die AI die letzten Jahrzehnte beschäftigt hat. Sonst verstrickt man sich wieder im Aufbau von universellen Ontologien, die dann eh nicht funktionieren. Nein, RDF hat seine etwaige Stärke in einem normierten Beschreibungsmodell von Statements für Ad-Hoc-Ontologien. Und dass man eventuell lase Verbindungen zwischen diesen Ontologien basteln kann. Das ist die vage Hoffnung hinter dem Semantik Web – und das ist immer noch ein verdammt großes Ziel. Vielleicht klappt, vielleicht auch nicht. Ich finde es zumindest interessant.
Meine eigentliche Kernaussage sollte eigentlich sein: nur beliebige Daten in einem gedanklich passenden XML-Dialekt auszuzeichnen, der zufällig ein RDF Schema besitzt, bringt nix, schon gar keine Semantik. Es gibt keine RDF kapierende Software, die prinzipiell etwas damit anfangen kann, die sich sagt: Aha: Person. Es wird sie noch lange nicht geben. Ich vermute sogar: nie. Trotzdem gibt es Anwendungen, die FOAF verarbeiten. Nur: diese kümmern sich eher weniger um den RDF-Aspekt. Die behandeln FOAF genau das als es ist: als einen XML-Dialekt, den sie zufällig kennen, weil ihre Programmierer die mediokre FOAF-Spezifikation gelesen haben und die dort aufgeschriebene Bedeutung (Semantik) der Elemente in ihre Software importieren oder in eigene Konzepte übersetzen. Sie behandeln FOAF nur als XML, als strukturierte Daten, deren Bedeutung sie „kennen“. Nicht weil sie deren Bedeutung irgendwo nachforschen können – denn dort existiert wenig bis nichts.
(Mal ganz abgesehen davon, dass Foreign Markup in XHTML eh nicht erlaubt ist, ein XHTML-Dokument mit FOAF-Elementen also automatisch invalide ist.)
Tim