Ich versuche das Konzept des Semantic Web zu verstehen. Es fällt mir schwer zu verstehen, was genau der Unterschied zwischen RDF und OWL ist. Ist OWL eine Erweiterung von RDF oder sind diese beiden völlig unterschiedliche Technologien?
Ich versuche das Konzept des Semantic Web zu verstehen. Es fällt mir schwer zu verstehen, was genau der Unterschied zwischen RDF und OWL ist. Ist OWL eine Erweiterung von RDF oder sind diese beiden völlig unterschiedliche Technologien?
Antworten:
Das Semantic Web besteht aus mehreren Schichten. Dies ist eine kurze Zusammenfassung derjenigen, an denen Sie meiner Meinung nach interessiert sind.
Update : Bitte beachten Sie, dass RDFS verwendet wird, um die Struktur der Daten zu definieren, nicht OWL. OWL beschreibt semantische Beziehungen, um die sich normale Programmierung wie eine C-Struktur nicht kümmert und die der KI-Forschung und der Mengenlehre näher kommt.
Triples & URIs
Subject - Predicate - Object
Diese beschreiben eine einzelne Tatsache. Im Allgemeinen werden URIs für das Subjekt und das Prädikat verwendet. Das Objekt ist entweder eine andere URI oder ein Literal wie eine Zahl oder eine Zeichenfolge. Literale können einen Typ haben (der auch eine URI ist), und sie können auch eine Sprache haben. Ja, dies bedeutet, dass Tripel bis zu 5 Datenbits haben können!
Zum Beispiel könnte ein Triple die Tatsache beschreiben, dass Charles Harrys Vater ist.
<http://example.com/person/harry> <http://familyontology.net/1.0#hasFather> <http://example.com/person/charles> .
Dreiergruppen sind Datenbanknormalisierungen, die auf ein logisches Extrem gebracht werden. Sie haben den Vorteil, dass Sie Tripel aus vielen Quellen ohne Neukonfiguration in eine Datenbank laden können.
RDF und RDFS
Die nächste Schicht ist RDF - The Resource Description Framework. RDF definiert eine zusätzliche Struktur für Tripel. Das Wichtigste, was RDF definiert, ist ein Prädikat namens "rdf: type". Dies wird verwendet, um zu sagen, dass Dinge von bestimmten Arten sind. Jeder benutzt rdf: type, was es sehr nützlich macht.
RDFS (RDF-Schema) definiert einige Klassen, die das Konzept von Subjekten, Objekten, Prädikaten usw. darstellen. Dies bedeutet, dass Sie Aussagen über Klassen von Dingen und Arten von Beziehungen treffen können. Auf der einfachsten Ebene können Sie Dinge wie http://familyontology.net/1.0#hasFather angeben, eine Beziehung zwischen einer Person und einer Person. Außerdem können Sie die Bedeutung einer Beziehung oder einer Klasse in lesbarem Text beschreiben. Dies ist ein Schema. Es zeigt Ihnen die legale Verwendung verschiedener Klassen und Beziehungen. Es wird auch verwendet, um anzuzeigen, dass eine Klasse oder Eigenschaft ein Untertyp eines allgemeineren Typs ist. Zum Beispiel ist "HumanParent" eine Unterklasse von "Person". "Loves" ist eine Unterklasse von "Knows".
RDF-Serialisationen
RDF kann in verschiedenen Dateiformaten exportiert werden. Am häufigsten ist RDF + XML, dies weist jedoch einige Schwachstellen auf.
N3 ist ein Nicht-XML-Format, das einfacher zu lesen ist, und es gibt einige Teilmengen (Turtle und N-Triples), die strenger sind.
Es ist wichtig zu wissen, dass RDF eine Möglichkeit ist, mit Tripeln zu arbeiten, NICHT mit den Dateiformaten.
XSD
XSD ist ein Namespace, der hauptsächlich zur Beschreibung von Eigenschaftstypen wie Datumsangaben, Ganzzahlen usw. verwendet wird. Es wird im Allgemeinen in RDF-Daten gesehen, die den spezifischen Typ eines Literals identifizieren. Es wird auch in XML-Schemata verwendet, bei denen es sich um einen etwas anderen Fischkessel handelt.
EULE
OWL fügt dem Schema Semantik hinzu. Hier können Sie viel mehr über die Eigenschaften und Klassen angeben. Es wird auch dreifach ausgedrückt. Beispielsweise kann dies anzeigen, dass "Wenn A mit B verheiratet ist", dies impliziert, dass "B mit A verheiratet ist". Oder wenn " C isAncestorOf D " und " D isAncestorOf E " dann " C isAncestorOf E" ist ". Eine weitere nützliche Sache, die Eule hinzufügt, ist die Fähigkeit zu sagen, dass zwei Dinge gleich sind. Dies ist sehr hilfreich, um Daten zusammenzuführen, die in verschiedenen Schemata ausgedrückt werden. Sie können sagen, dass die Beziehung" gezeugt "in einem Schema Eule ist: sameAs" väterlich "in Sie können es auch verwenden, um zu sagen, dass zwei Dinge gleich sind, z. B. "Elvis Presley" auf Wikipedia ist dasselbe auf der BBC. Dies ist sehr aufregend, da Sie damit beginnen können, Daten von mehreren Websites zusammenzuführen (Dies ist "Verknüpfte Daten").
Sie können die OWL auch verwenden, um implizite Fakten abzuleiten , z. B. " C isAncestorOf E ".
Zusamenfassend:
Wie das vorherige Poster geschrieben hat, ist RDF eine Spezifikation, die Ihnen sagt, wie Sie Tripel definieren.
Das Problem ist, dass Sie mit RDF alles definieren können, sodass Sie eine Deklaration wie folgt verfassen können:
| subject | predicate | object |
|---------|-----------|--------|
| Alex | Eats | Apples |
| Apples | Eats | Apples |
| Apples | Apples | Apples |
Diese Tripel bilden gültige RDF-Dokumente.
Semantisch gesehen verstehen Sie jedoch, dass diese Aussagen falsch sind und RDF Ihnen nicht dabei helfen kann, das zu validieren, was Sie geschrieben haben.
Dies ist keine gültige Ontologie.
Die OWL-Spezifikation definiert genau, was Sie mit RDF schreiben können, um eine gültige Ontologie zu erhalten.
Ontologien können mehrere Eigenschaften haben.
Deshalb definiert OWL (Version 1) verschiedene Versionen wie OWL DL, OWL Lite und OWL Full.
RDF, RDFS und OWL sind Mittel, um immer komplexere Informationen oder Kenntnisse auszudrücken. Alle können in RDF / XML-Syntax (oder einer anderen RDF-Serialisierungssyntax wie beispielsweise Turtle oder N3) serialisiert werden.
Diese Technologien sind verwandt und sollen interoperabel sein, haben jedoch unterschiedliche Ursprünge, weshalb die Beziehung zwischen ihnen möglicherweise kompliziert zu erfassen ist. Die Wahl des einen oder anderen hängt davon ab, wie viel Komplexität die zu modellierende Situation erfordert.
Zusammenfassung der Ausdruckskraft
RDF : Einfache Darstellung, die sich auf die Instanzen und die Zuordnung zu ihren Typen konzentriert ( rdf:type
). Es ist möglich, benutzerdefinierte Eigenschaften zu definieren, um Daten zu verknüpfen und Tripel zu erstellen. RDF-Daten werden mit SPARQL abgefragt. Beispiel für RDF in Turtle serialisiert:
@prefix : <http://www.example.org/> .
:john rdf:type :Man .
:john :livesIn "New-York" .
:livesIn rdf:type rdf:Property .
RDFS: Einige Situationen lassen sich nicht einfach von RDF allein modellieren. Manchmal ist es interessant, komplexere Beziehungen wie beispielsweise Unterklassen ( den Typ eines Typs ) darzustellen . RDFS bietet besondere Mittel solche Fälle darstellen, mit Konstrukten mögen rdfs:subClassOf
, rdfs:range
oder rdfs:domain
. Im Idealfall kann ein Denker die RDFS-Semantik verstehen und die Anzahl der Tripel basierend auf den Beziehungen erweitern: Wenn Sie beispielsweise die Tripel haben John a Man
und Man rdfs:subClassOf
Human
dann sollten Sie auch das Tripel generieren John a Human
. Beachten Sie, dass dies nicht nur mit RDF möglich ist. RDFS-Daten werden mit SPARQL abgefragt. Beispiel für in Turtle serialisiertes RDFS:
@prefix : <http://www.example.org/> .
:john rdf:type :Man .
:Man rdfs:subClassOf :Human .
:john :livesIn "New-York" .
:livesIn rdf:type rdf:Property .
# After reasoning
:john rdf:type :Human .
OWL: Höchste Ausdruckskraft. Die Beziehung zwischen Klassen kann basierend auf Beschreibungslogiken (mathematische Theorie) formal modelliert werden. OWL stützt sich stark auf den Reasoner. Es ist möglich, komplexe Konstrukte wie beispielsweise verkettete Eigenschaften oder Einschränkungen zwischen Klassen auszudrücken. OWL dient zum Erstellen von Ontologien oder Schemata auf RDF-Datasets. Da OWL als RDF / XML serialisiert werden kann, ist es theoretisch möglich, es über SPARQL abzufragen. Es ist jedoch viel intuitiver, eine OWL-Ontologie mit einer DL-Abfrage abzufragen (was normalerweise ein Standardausdruck für OWL-Klassen ist). Beispiel für OWL-Konstrukte, die in Turtle serialisiert wurden.
@prefix : <http://www.example.org/> .
:livesIn rdf:type owl:DatatypeProperty .
:Human rdf:type owl:Class .
:Man rdf:type owl:Class .
:Man rdfs:subClassOf :Human .
:John rdf:type :Man .
:John rdf:type owl:NamedIndividual .
Erstens kann eine Eule, wie bereits erwähnt, in RDF serialisiert werden.
Zweitens erweitert OWL RDF um ontologische Funktionen (die für sich genommen nur eine äußerst eingeschränkte Fähigkeit zur formalen Darstellung bekannten Wissens bieten), indem die Vorrichtung zum Definieren der Komponenten Ihres Tripels mithilfe einer formalen berechenbaren Beschreibungslogik erster Ordnung bereitgestellt wird. Das ist es, was Plakate hier bedeuten, wenn sie von "semantischem Reichtum" sprechen.
Drittens ist es wichtig zu wissen, dass in OWL-Full (für OWL 1) rdfs: class und owl: class äquivalent sind und in OWL-DL owl: class eine Unterklasse von rdfs: class ist. In der Tat bedeutet dies, dass Sie eine OWL-Ontologie als Schema für RDF verwenden können (für das formal keine Schemata erforderlich sind).
Ich hoffe das hilft weiter zu klären.
Wenn Sie den Begriff RDF verwenden, müssen Sie zwei Dinge unterscheiden:
Sie können RDF als Konzept bezeichnen :
Eine Möglichkeit, Dinge / Logik / alles mithilfe von Sammlungen von Tripeln zu beschreiben.
Beispiel:
"Anna hat Äpfel." "Äpfel sind gesund."
Oben haben Sie zwei Tripel, die zwei Ressourcen beschreiben: "Anna" und "Äpfel". Das Konzept von RDF (Resource Description Framework) besteht darin, dass Sie Ressourcen (alles) mit Sätzen von nur 3 Wörtern (Begriffen) beschreiben können. Auf dieser Ebene ist es Ihnen egal, wie Sie Informationen speichern, ob Sie eine Folge von 3 Wörtern oder ein Gemälde an einer Wand oder einen Tisch mit 3 Spalten usw. haben.
Auf dieser konzeptionellen Ebene ist nur wichtig, dass Sie mit dreifachen Anweisungen alles darstellen können, was Sie wollen.
Sie können RDF als Vokabular bezeichnen
Ein Wortschatz ist nur eine Sammlung von Begriffsdefinitionen, die in einer Datei oder irgendwo gespeichert sind. Diese definierten Begriffe haben den Zweck, in anderen Beschreibungen allgemein wiederverwendet zu werden, damit Personen Daten (Ressourcen) einfacher und auf standardmäßige Weise beschreiben können.
Im Internet finden Sie einige Standardvokabulare wie:
RDF ( https://www.w3.org/1999/02/22-rdf-syntax-ns )
RDFS ( https://www.w3.org/2000/01/rdf-schema# )
Eule ( https://www.w3.org/2002/07/owl )
Das RDF-Vokabular definiert Begriffe, mit denen Sie Personen / Instanzen von Klassen (auf der grundlegendsten Ebene wie möglich) beschreiben können. Beispiel: rdf: type, rdf: property.
Mit rdf: type können Sie beschreiben, dass eine Ressource eine Instanz einer Klasse ist:
<http://foo.com/anna> rdf:type <http://foo.com/teacher>
Das RDF-Vokabular enthält also Begriffe, die auf grundlegende Beschreibungen von Klasseninstanzen und einige andere Beschreibungen abzielen (wie die Definition der dreifachen Anweisung oder die Prädikatdefinition ... im Allgemeinen Dinge, die auf das RDF-Konzept bezogen sind).
Das RDFS-Vokabular enthält Begriffsdefinitionen, mit denen Sie Klassen und Beziehungen zwischen ihnen beschreiben können. Das RDFS-Vokabular kümmert sich nicht um Instanzen von Klassen (Einzelpersonen) wie das RDF-Vokabular. Beispiel: Die Eigenschaft rdfs: subClassOf, mit der Sie beschreiben können, dass eine Klasse A eine Unterklasse der Klasse B ist.
Das RDF- und das RDFS-Vokabular sind voneinander abhängig. RDF definiert seine Begriffe mithilfe von RDFS, und RDFS verwendet RDF zum Definieren seiner eigenen Begriffe.
Die RDF / RDFS-Vokabulare enthalten Begriffe, mit denen sehr grundlegende Beschreibungen von Ressourcen erstellt werden können. Wenn Sie komplexere und genauere Beschreibungen wünschen, müssen Sie das OWL-Vokabular verwenden.
Das OWL-Vokabular enthält eine Reihe neuer Begriffe, die detailliertere Beschreibungen enthalten. Diese Begriffe werden unter Verwendung von Begriffen aus RDF / RDFS-Vokabularen definiert.
owl:ObjectProperty a rdfs:Class ;
rdfs:label "ObjectProperty" ;
rdfs:comment "The class of object properties." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf rdf:Property .
owl:DatatypeProperty a rdfs:Class ;
rdfs:label "DatatypeProperty" ;
rdfs:comment "The class of data properties." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf rdf:Property .
owl:TransitiveProperty a rdfs:Class ;
rdfs:label "TransitiveProperty" ;
rdfs:comment "The class of transitive properties." ;
rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
rdfs:subClassOf owl:ObjectProperty .
Wie Sie oben sehen können, erweitert das OWL-Vokabular das Konzept von rdf: Property, indem neue Arten von Eigenschaften erstellt werden, die weniger abstrakt sind und genauere Beschreibungen von Ressourcen liefern können.
Schlussfolgerungen:
RDF ist eine Möglichkeit, ein dreifaches "Subjekt", "Prädikat", "Wert" zu definieren . Zum Beispiel, wenn ich sagen möchte,
"Mein Name ist Pierre"
ich würde schreiben
<mail:me@where.com> <foaf:name> "Pierre"
Sehen Sie die <foaf:name>
? Es ist Teil der FOAF- Ontologie. Eine Ontologie ist eine formale Methode zur Beschreibung der Eigenschaften, der Klassen eines bestimmten Fachs und OWL eine (RDF) Methode zur Definition einer Ontologie.
Sie verwenden C ++, Java usw., um eine Klasse, eine Unterklasse, ein Feld usw. zu definieren.
class Person
{
String email_as_id;
String name;
}
RDF verwendet OWL, um diese Art von Anweisungen zu definieren.
Ein weiterer Ort, um diese Art von Frage zu stellen: http://www.semanticoverflow.com/
Ich versuche das Konzept des Semantic Web zu verstehen. Es fällt mir schwer zu verstehen, was genau der Unterschied zwischen RDF und OWL ist. Ist OWL eine Erweiterung von RDF oder sind diese beiden völlig unterschiedliche Technologien?
Kurz gesagt, ja, man könnte sagen, dass OWL eine Erweiterung von RDF ist.
Mit RDF können Sie einen gerichteten Graphen genauer beschreiben, indem Sie Subjekt-Prädikat-Objekt-Tripel definieren. Das Subjekt und das Objekt sind die Knoten, das Prädikat ist die Kante, oder mit anderen Worten, das Prädikat beschreibt die Beziehung zwischen dem Subjekt und dem Objekt. Beispielsweise:Tolkien :wrote :LordOfTheRings
oder:LordOfTheRings :author :Tolkien
, etc ... Verknüpfte Datensysteme verwenden diese Tripel, um Wissensgraphen zu beschreiben, und sie bieten Möglichkeiten, sie zu speichern und abzufragen. Dies sind riesige Systeme, aber Sie können RDF für kleinere Projekte verwenden. Jede Anwendung hat eine domänenspezifische Sprache (oder nach DDD-Begriffen allgegenwärtige Sprache). Sie können diese Sprache in Ihrer Ontologie / Ihrem Vokabular beschreiben, sodass Sie das Domänenmodell Ihrer Anwendung mit einem Diagramm beschreiben können, das Sie visualisieren können, um es Geschäftsleuten zu zeigen, über Geschäftsentscheidungen basierend auf dem Modell zu sprechen und die Anwendung darauf aufzubauen davon. Sie können das Vokabular Ihrer Anwendung an die zurückgegebenen Daten und an ein den Suchmaschinen bekanntes Vokabular binden, z Mikrodaten(Sie können dazu beispielsweise HTML mit RDFA verwenden), sodass Suchmaschinen Ihre Anwendungen leicht finden können, da das Wissen darüber, was es tut, maschinell verarbeitet werden kann. So funktioniert Semantic Web. (Zumindest stelle ich mir das so vor.)
Um nun objektorientierte Anwendungen zu beschreiben, benötigen Sie Typen, Klassen, Eigenschaften, Instanzen usw. Mit RDF können Sie nur Objekte beschreiben. RDFS (RDF-Schema) hilft Ihnen bei der Beschreibung von Klassen und Vererbung (basierend auf Objekten von c.), Ist jedoch zu weit gefasst. Um Einschränkungen zu definieren (zum Beispiel ein Kind pro chinesischer Familie), benötigen Sie ein anderes Vokabular. OWL (Web Ontology Language) erledigt diesen Job. OWL ist eine Ontologie, mit der Sie Webanwendungen beschreiben können. Es integriert die XSD simpleTypes.
Dies RDF -> RDFS -> OWL -> MyWebApp
gilt auch für die Reihenfolge, in der Ihre Webanwendung immer spezifischer beschrieben wird.
personA friendsWith personB
), dass (2) RDFS dies erweitert, indem es die Möglichkeit bietet, Beziehungen zwischen object classes
- dh anzugeben class Person <has 'friendsWith' relationship> Person
. So können Sie RDF über die Klasse ausdrücken : A:typeof:person friendsWith B:<typeof:person>
. Und (3) OWL ermöglicht es Ihnen dann, Einschränkungen der Beziehungen anzugeben?
Mit RDFS können Sie die Beziehungen zwischen Dingen ausdrücken, indem Sie auf einem flexiblen, dreifach basierten Format standardisieren und dann ein Vokabular ("Schlüsselwörter" wie rdf:type
oder rdfs:subClassOf
) bereitstellen , mit dem Dinge gesagt werden können.
OWL ist ähnlich, aber größer, besser und schlimmer. Mit OWL können Sie viel mehr über Ihr Datenmodell sagen, es zeigt Ihnen, wie Sie effizient mit Datenbankabfragen und automatischen Reasonern arbeiten können, und es bietet nützliche Anmerkungen, um Ihre Datenmodelle in die reale Welt zu bringen.
Von den Unterschieden zwischen RDFS und OWL ist das Wichtigste nur, dass OWL ein weitaus größeres Vokabular bietet, mit dem Sie Dinge sagen können .
Zum Beispiel enthält OWL alle Ihre alten Freunde von RDFS wie rdfs:type
, rdfs:domain
und rdfs:subPropertyOf
. OWL bietet Ihnen jedoch auch neue und bessere Freunde! Mit OWL können Sie beispielsweise Ihre Daten in Form von festgelegten Operationen beschreiben:
Example:Mother owl:unionOf (Example:Parent, Example:Woman)
Hiermit können Sie Äquivalenzen zwischen Datenbanken definieren:
AcmeCompany:JohnSmith owl:sameAs PersonalDatabase:JohnQSmith
Hiermit können Sie Eigenschaftswerte einschränken:
Example:MyState owl:allValuesFrom (State:NewYork, State:California, …)
Tatsächlich bietet OWL so viel neues, ausgefeiltes Vokabular für die Datenmodellierung und Argumentation, dass es seine eigene Lektion erhält!
Ein weiterer wichtiger Unterschied besteht darin, dass OWL im Gegensatz zu RDFS nicht nur Ihnen sagt, wie Sie es tun können bestimmte Vokabular verwenden, ist es Sie eigentlich sagt , wie Sie nicht können es verwenden. Im Gegensatz dazu bietet Ihnen RDFS eine Welt, in der Sie so ziemlich jedes Triple hinzufügen können, das Sie möchten.
In RDFS kann beispielsweise alles, worauf Sie Lust haben, eine Instanz sein rdfs:Class
. Sie könnten sich entscheiden zu sagen, dass Beagle ein Fido ist rdfs:Class
und dann sagen, dass Fido eine Instanz von Beagle ist :
Example: Beagle rdf:Type rdfs:Class
Example:Fido rdf:Type Example: Beagle
Als nächstes könnten Sie entscheiden, dass Sie Dinge über Beagles sagen möchten, vielleicht möchten Sie diesen Beagle sagen ein Beispiel für in England gezüchtete Hunde ist :
Example:Beagle rdf:Type Example:BreedsBredInEngland
Example: BreedsBredInEngland rdf:Type rdfs:Class
Das Interessante in diesem Beispiel ist, dass Example:Beagle
es sowohl als Klasse als auch als Instanz verwendet wird . Beagle ist eine Klasse, die Fido Mitglied ist, aber Beagle ist selbst Mitglied einer anderen Klasse: Things Bred in England.
In RDFS ist dies alles völlig legal, da RDFS nicht wirklich einschränkt, welche Anweisungen Sie einfügen können und welche nicht. In OWL hingegen oder zumindest in einigen Varianten von OWL sind die obigen Aussagen eigentlich nicht legal: Sie dürfen einfach nicht sagen, dass etwas sowohl eine Klasse als auch eine Instanz sein kann.
Dies ist dann ein zweiter großer Unterschied zwischen RDFS und OWL. RDFS ermöglicht eine Welt, in der alles wild ist, voller Wilder Westen, Speak-Easies und Salvador Dali. Die Welt von OWL legt eine viel starrere Struktur fest.
Angenommen, Sie haben die letzte Stunde damit verbracht, eine Ontologie zu erstellen, die Ihr Geschäft mit der Funkherstellung beschreibt. Während des Mittagessens besteht Ihre Aufgabe darin, eine Ontologie für Ihr Uhrenherstellungsgeschäft zu erstellen. Heute Nachmittag, nach einem guten Kaffee, sagt Ihnen Ihr Chef jetzt, dass Sie eine Ontologie für Ihr hochprofitables Radioweckergeschäft aufbauen müssen. Gibt es eine Möglichkeit, die Arbeit des Morgens einfach wiederzuverwenden?
OWL macht solche Dinge sehr, sehr einfach. Owl:Import
ist das, was Sie in der Radiosituation verwenden würden, aber OWL bietet Ihnen auch eine Vielzahl von Anmerkungen wie owl:versionInfo
:owl:backwardsCompatibleWith
und owl:deprecatedProperty
, die leicht gebrauchte Link Datenmodelle miteinander zu einem für beide Seiten kohärentes Ganzes sein kann.
Im Gegensatz zu RDFS erfüllt OWL mit Sicherheit alle Ihre Anforderungen an die Modellierung von Metadaten.
OWL bietet Ihnen ein viel größeres Vokabular, mit dem Sie leicht alles sagen können, was Sie über Ihr Datenmodell sagen möchten. Sie können sogar Ihre Aussagen basierend auf den Rechenrealitäten heutiger Computer anpassen und für bestimmte Anwendungen (z. B. für Suchanfragen) optimieren. Darüber hinaus können Sie mit OWL die Beziehungen zwischen verschiedenen Ontologien mithilfe eines Standard-Annotation-Frameworks einfach ausdrücken .
All dies sind Vorteile im Vergleich zu RDFS und in der Regel den zusätzlichen Aufwand wert, um sich mit ihnen vertraut zu machen.
Quelle: RDFS vs. OWL
Im WC3-Dokumentobjektmodell ist ein Dokument eine abstrakte Sache: ein Element mit Text, Kommentaren, Attributen und anderen darin verschachtelten Elementen.
Im Semantic Web beschäftigen wir uns mit einer Reihe von "Tripeln". Jedes Triple ist:
OWL bezieht sich auf das Semantic Web wie Schemas auf das W3C-Dokumentobjektmodell. Es dokumentiert, was die verschiedenen URIs bedeuten, und gibt an, wie sie auf formale Weise verwendet werden, die von einer Maschine überprüft werden kann. Ein Semantic Web kann in Bezug auf die für ihn geltende OWL gültig sein oder nicht, genauso wie ein Dokument in Bezug auf ein Schema gültig sein kann oder nicht.
RDF bezieht sich auf das Semantic Web wie XML auf das DOM - es ist eine Serialisierung einer Reihe von Tripeln.
Natürlich wird RDF normalerweise als XML-Dokument serialisiert ... aber es ist wichtig zu verstehen, dass RDF nicht dasselbe ist wie "die XML-Serialisierung von RDF".
Ebenso kann OWL mit OWL / XML serialisiert werden oder (Entschuldigung) als RDF ausgedrückt werden, das normalerweise selbst als XML serialisiert wird.
Der grundlegende Semantic-Web-Stack wurde bereits in diesem Thread ausführlich erläutert. Ich möchte mich auf die erste Frage konzentrieren und RDF mit OWL vergleichen.
Die Verwendung von OWL ist wichtig, um mehr Bedeutung (Argumentation und Schlussfolgerung) zu erlangen, indem Sie nur einige Fakten kennen. Diese "dynamisch erstellten" Informationen können weiterhin für entsprechende Abfragen wie in SPARQL verwendet werden.
Einige Beispiele werden zeigen, dass dies tatsächlich mit OWL funktioniert - diese wurden aus meinem Vortrag über die Grundlagen des Semantic Web im TYPO3camp Mallorca, Spanien, im Jahr 2015 entnommen.
Spaniard: Person and (inhabitantOf some SpanishCity)
Dies bedeutet, dass a a sein Spaniard
muss Person
(und somit alle Eigenschaften im Inferenzteil erbt) und in mindestens einer (oder mehreren) leben muss SpanishCity
.
<Palma isPartOf Mallorca>
<Mallorca contains Palma>
Das Beispiel zeigt das Ergebnis der Anwendung inverseOf
auf die Eigenschaften isPartOf
und contains
.
<:hasParent owl:cardinality “2“^^xsd:integer>
Dies definiert, dass jeder Thing
(in diesem Szenario höchstwahrscheinlich a Human
) genau zwei Eltern hat - die Kardinalität wird der hasParent
Eigenschaft zugewiesen .
Ein Bild sagt mehr als tausend Worte! Dieses Diagramm unten sollte das verstärken, was Christopher Gutteridge in dieser Antwort sagte , dass das Semantic Web eine "geschichtete Architektur" ist.
Quelle: https://www.obitko.com/tutorials/ontologies-semantic-web/semantic-web-architecture.html
Das Resource Description Framework (RDF) ist eine leistungsstarke formale Wissensrepräsentationssprache und ein grundlegender Standard des Semantic Web. Es verfügt über ein eigenes Vokabular, das Kernkonzepte und -beziehungen definiert (z. B. rdf: type entspricht der isA-Beziehung), und ein Datenmodell, das maschineninterpretierbare Anweisungen in Form eines Subjekt-Prädikat-Objekts (Ressourceneigenschaftswert) ermöglicht. Tripel, genannt RDF-Tripel, wie Bilder-Buch-Buch. Die Erweiterung des RDF-Vokabulars um Konzepte zur Erstellung kontrollierter Vokabulare und grundlegender Ontologien wird als RDF-Schema oder RDF Vocabulary Description Language (RDFS) bezeichnet. RDFS ermöglicht es, Aussagen über Klassen und Ressourcen zu schreiben und taxonomische Strukturen auszudrücken, beispielsweise über Beziehungen zwischen Oberklassen und Unterklassen.
Komplexe Wissensdomänen erfordern mehr Funktionen als in RDFS verfügbar sind, was zur Einführung von OWL führte . OWL unterstützt Beziehungen zwischen Klassen (Vereinigung, Schnittmenge, Disjunktheit, Äquivalenz), Einschränkungen der Eigenschaftskardinalität (Minimum, Maximum, genaue Anzahl, z. B. hat jede Person genau einen Vater), eine umfassende Typisierung von Eigenschaften, Eigenschaften von Eigenschaften und spezielle Eigenschaften (transitiv, symmetrisch, funktional, invers funktional, z. B. A ex: hasAncestor B und B ex: hasAncestor C impliziert, dass A ex: hasAncestor C) angibt, dass eine bestimmte Eigenschaft ein eindeutiger Schlüssel für Instanzen einer bestimmten Klasse ist, sowie Domänen- und Bereichsbeschränkungen für Eigenschaften.