RDF & OWL

Moderator: Semantic Web

DreamFlasher
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 12. Okt 2010 12:44

RDF & OWL

Beitrag von DreamFlasher »

Hallo Heiko,

folgendes ist mir noch nicht ganz klar geworden:
Sehe ich das richtig, dass rdf:about bei Ressourcen und rdf:resource bei Properties eingesetzt wird? Mir ist nicht ganz klar, warum man das unterschiedlich benannt hat.
Ist es richtig, dass RDFS, OWL (DL,light,full), OWL2 alle "valides" RDF sind und sich nur bei der Interpretation durch entsprechende Werkzeuge in ihrer Bedeutung unterscheiden?
Warum klappt in 7.14 disjointUnionOf nicht?
Wie kann ich bei Protege owl:complementOf und owl:intersectionOf eingeben und warum wird das eine mit () und das andere mit [] geklammert? Wir hatten mal Bag, Collection etc definiert, das stand dann ja immer als erstes Tripel drin was es genau ist Bag/List, wie ist jetzt hier die "graphische" Repräsentation mit Blank-Nodes?
8.35 Wie wird das owl:unionOf in diese zwei DL Statements aufgelöst?

Viele Grüße Marcel
Zuletzt geändert von DreamFlasher am 15. Feb 2012 20:34, insgesamt 1-mal geändert.
Marcel Ackermann
http://www.dreamflasher.de
Machine Learning, Natural Language Processing, Algorithms

Interesse an Machine Learning, Artificial Intelligence, Natural Language Processing? Du möchtest deine Skills und Wissen verbessern, an Wettbewerben mit anderen Begeisterten teilnehmen? Mach mit bei unserer Study Group: http://groups.google.com/group/ml-ai

DreamFlasher
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 12. Okt 2010 12:44

Re: RDF & OWL

Beitrag von DreamFlasher »

Was mir in den Folien noch so aufgefallen ist (Korrekturvorschläge):

2.12 Graph endet an einem Subjekt -> müsste das nicht "Objekt" sein?
2.47 Für meine Begriffe ist diese Folie nicht richtig. parseType="Collection" definiert nach w3c Spezifikation ein "set" und ob die Reihenfolge eine Rolle spielt ist explizit nicht definiert, sondern der Anwendung überlassen
Marcel Ackermann
http://www.dreamflasher.de
Machine Learning, Natural Language Processing, Algorithms

Interesse an Machine Learning, Artificial Intelligence, Natural Language Processing? Du möchtest deine Skills und Wissen verbessern, an Wettbewerben mit anderen Begeisterten teilnehmen? Mach mit bei unserer Study Group: http://groups.google.com/group/ml-ai

HeikoPaulheim
Moderator
Moderator
Beiträge: 89
Registriert: 4. Jun 2008 09:07

Re: RDF & OWL

Beitrag von HeikoPaulheim »

Na, dann fang ich mal oben an:
Sehe ich das richtig, dass rdf:about bei Ressourcen und rdf:resource bei Properties eingesetzt wird?
rdf:about bezeichnet das Subjekt einer Aussage, also z.B.

Code: Alles auswählen

<foaf:Person rdf:about="http://.../#Tom">
ist äquivalent zu

Code: Alles auswählen

<http://.../#Tom> a foaf:Person .
rdf:resource bezeichnet das Objekt einer Aussage, also z.B.

Code: Alles auswählen

<foaf:knows rdf:resource="http://.../#Tim">
ist äquivalent zu

Code: Alles auswählen

X foaf:knows <http://.../#Tim>
, wobei X das Subjekt wäre, in das die knows-Aussage geschachtelt ist.
Ist es richtig, dass RDFS, OWL (DL,light,full), OWL2 alle "valides" RDF sind und sich nur bei der Interpretation durch entsprechende Werkzeuge in ihrer Bedeutung unterscheiden?
Ja.
Warum klappt in 7.14 disjointUnionOf nicht?
Weil disjointUnionOf nur Klassen als Argumente nimmt, oneOf nur Instanzen. In diesem Beispiel sind Heiko, Eneldo und Lorenz Instanzen. Bei oneOf ist übrigens noch keine paarweise Verschiedenheit gegeben, d.h., man müsste noch explizit

Code: Alles auswählen

:Heiko owl:differentFrom :Eneldo, :Lorenz .
definieren.
Wie kann ich bei Protege owl:complementOf und owl:intersectionOf eingeben
Bei "EquivalentClass" das + drücken und den Class Expression Editor aufrufen. Für owl:complementOf gibt man "not X", für owl:intsersectionOf "X and Y" ein.
warum wird das eine mit () und das andere mit [] geklammert?
Die werden beide mit () geklammert. Auf welcher Folie steht das mit []?
Wir hatten mal Bag, Collection etc definiert, das stand dann ja immer als erstes Tripel drin was es genau ist Bag/List, wie ist jetzt hier die "graphische" Repräsentation mit Blank-Nodes?
Das sind Listen (obwohl die Ordnung keine Rolle spielt). Siehe z.B. hier: http://www.w3.org/TR/owl-test/byFunctio ... rsectionOf
8.35 Wie wird das owl:unionOf in diese zwei DL Statements aufgelöst?
A owl:unionOf (B C) heißt, dass A äquivalent zur Union von B und C ist. D.h., es gilt

Code: Alles auswählen

 A === (B or C)
. Das zerlegt man jetzt in zwei Subklassenbeziehungen:

Code: Alles auswählen

A <= (B or C)
(B or C) <= A
Daraus folgt dann

Code: Alles auswählen

not A or (B or C)
not(B or C) or A
Das zweite Statement wird dann noch in NNF gebracht, also

Code: Alles auswählen

(not B or not C) or A
2.12 Graph endet an einem Subjekt -> müsste das nicht "Objekt" sein?
Es sollte eigentlich sagen: an einem Literal endet der Graph immer. Ich korrigiere das mal.
2.47 Für meine Begriffe ist diese Folie nicht richtig. parseType="Collection" definiert nach w3c Spezifikation ein "set" und ob die Reihenfolge eine Rolle spielt ist explizit nicht definiert, sondern der Anwendung überlassen
Da ist die W3C-Spec sprachlich unsauber. parseType="Collection" definiert auf jeden Fall eine Liste. Wenn man sich bei diesem Beispiel in der Spec das zugehörige nt-Beispiel anschaut, dann sieht man auch, dass die da mit rdf:first und rdf:next arbeiten, also tatsächlich eine Ordnung definieren, wie sie in Listen definiert ist: http://www.w3.org/TR/2004/REC-rdf-synta ... Collection

Hoffe, das hilft weiter.

Grüße,
Heiko.

DreamFlasher
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 12. Okt 2010 12:44

Re: RDF & OWL

Beitrag von DreamFlasher »

Danke schonmal, das muss ich erstmal noch verdauen, derweil mach ich schonmal weiter mit Fragen *g*

Ich hab wirklich jetz einiges dazu durchgelesen und hatte gehofft, dass es mal irgendwo klar wird, aber 100% wurde es mir noch nicht:
Wie definiere ich denn eine Klasse und wie eine Instanz? Jeweils in RDFS und OWL. Ist es richtig, dass es in beiden :A a :B für Instanz und :C rdfs:subClassOf :D für Klasse ist?
Aufhängepunkt ist z.B. 11.58: Da werden ja Goethe und Faust als Klassen definiert, und zwar mittels subClassOf, dh. an dieser Stelle sind sie schon Subjekt, müsste man nicht präziser sagen in OWL DL dürfen Klassen nur Subjekt in den Relationen rdfs:subClassOf, owl:oneOf, owl:unionOf, owl:intersectionOf... sein? Was ist jetzt aber wenn ich von rdfs:subClassOf erbe, darf dann meine Klasse noch Subjekt dieser geerbten Property sein?

Müsste in 11.47 die erste eckige Klammer hinter das a?

Das mit den unterschiedlichen Klammerungen war auf 8.13, :i a [ owl:intersectionOf (:Person [ owl:complementOf : Person ])] .
Wie kann ich denn dazu mal einen Graphen mit Blank-Nodes generieren, damit ich mir mal ansehen kann was der Unterschied zwischen () und [] ist?

Dankeschön,
Marcel
Zuletzt geändert von DreamFlasher am 16. Feb 2012 15:02, insgesamt 1-mal geändert.
Marcel Ackermann
http://www.dreamflasher.de
Machine Learning, Natural Language Processing, Algorithms

Interesse an Machine Learning, Artificial Intelligence, Natural Language Processing? Du möchtest deine Skills und Wissen verbessern, an Wettbewerben mit anderen Begeisterten teilnehmen? Mach mit bei unserer Study Group: http://groups.google.com/group/ml-ai

HeikoPaulheim
Moderator
Moderator
Beiträge: 89
Registriert: 4. Jun 2008 09:07

Re: RDF & OWL

Beitrag von HeikoPaulheim »

Wie definiere ich denn eine Klasse und wie eine Instanz? Jeweils in RDFS und OWL.
Aufhängepunkt ist z.B. 11.58: Da werden ja Goethe und Faust als Klassen definiert, und zwar mittels subClassOf, dh. an dieser Stelle sind sie schon Subjekt, müsste man nicht präziser sagen in OWL DL dürfen Klassen nur Subjekt in den Relationen rdfs:subClassOf, owl:oneOf, owl:unionOf, owl:intersectionOf... sein?
Genau, so müsste man das präzise machen. Es gibt bestimmte Sonderproperties (s. nächste Frage), die als Definitions- und/oder Wertebereich Klassen annehmen. Dinge, die an dieser Position stehen, dürfen später nicht noch mal irgendwo als Instanz auftauchen.
Was ist jetzt aber wenn ich von rdfs:subClassOf erbe, darf dann meine Klasse noch Subjekt dieser geerbten Property sein?
Die eingebauten Properties wie rdfs:subClassOf sind ein Sonderfall, die weder ObjectProperty noch DatatypeProperty sind. Deswegen kann man davon nicht einfach erben. Wenn man das tut, dann verlässt man automatisch die Welt von OWL DL.
Müsste in 11.47 die erste eckige Klammer hinter das a?
Nein, die eckigen Klammern sind ganz falsch. Korrigiert sieht das so aus:

Code: Alles auswählen

_:x a owl:NegativeObjectPropertyAssertion;
    owl:sourceIndividual :Paul ;
    owl:targetIndividual :Peter ;
    owl:assertionProperty :vaterVon .
Habe die Folien auch aktualisiert. Danke fürs Debuggen ;-)
Das mit den unterschiedlichen Klammerungen war auf 8.13, :i a [ owl:intersectionOf (:Person [ owl:complementOf : Person ])] .
Wie kann ich denn dazu mal einen Graphen mit Blank-Nodes generieren, damit ich mir mal ansehen kann was der Unterschied zwischen () und [] ist?
Das kann z.B. der RDF-Validator von rdfabout konvertieren: http://www.rdfabout.com/demo/validator/
Das Beispiel sähe mit Blank Nodes so aus:

Code: Alles auswählen

_:bnode622896192 rdf:first :Person.
_:bnode104176128 owl:complementOf :Person.
_:bnode622896192 rdf:rest _:bnode414543936.
_:bnode414543936 rdf:first _:bnode104176128.
_:bnode414543936 rdf:rest rdf:nil .
_:bnode1141616256 owl:intersectionOf _:bnode622896192.
:i a _:bnode1141616256.
Viele Grüße,
Heiko Paulheim.

DreamFlasher
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 12. Okt 2010 12:44

Re: RDF & OWL

Beitrag von DreamFlasher »

Ist es richtig, dass sowohl in rdfs als auch owl mit :A a :B eine Instanz und mit :E rdfs:subClassOf :F eine Klasse definiert wird? (sowie :E a rdfs:Class in rdfs, :E a owl:Class in owl)

[edit]Der Vollständigkeithalber: Bei RDFabout konnte ich die Graphen nicht visualisieren, aber hier geht das: http://www.w3.org/RDF/Validator/[/edit]
Zuletzt geändert von DreamFlasher am 17. Feb 2012 11:21, insgesamt 1-mal geändert.
Marcel Ackermann
http://www.dreamflasher.de
Machine Learning, Natural Language Processing, Algorithms

Interesse an Machine Learning, Artificial Intelligence, Natural Language Processing? Du möchtest deine Skills und Wissen verbessern, an Wettbewerben mit anderen Begeisterten teilnehmen? Mach mit bei unserer Study Group: http://groups.google.com/group/ml-ai

HeikoPaulheim
Moderator
Moderator
Beiträge: 89
Registriert: 4. Jun 2008 09:07

Re: RDF & OWL

Beitrag von HeikoPaulheim »

Instanzen werden in beiden Fällen so definiert.

Bei Klassen ist das etwas diffiziler. In RDFS kann ein RDFS-Reasoner daraus schließen, dass es sich bei :E um eine Klasse handelt, insofern: ja. In OWL ist das eine andere Geschichte. Prinzipiell könnte das ein Reasoner zwar auch schließen, aber OWL Lite und DL erlauben keine Ressourcen ohne explizit angegebenen Typ. D.h., dass folgendes keine valide DL-Ontologie ist:

Code: Alles auswählen

:E rdfs:subClassOf :F .
Sondern es müssen auch folgende Statements explizit enthalten sein:

Code: Alles auswählen

:E a owl:Class .
:F a owl:Class .
Nur dann handelt es sich um eine valide OWL-DL-Ontologie, und ein Reasoner verarbeitet das auch.

DreamFlasher
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 12. Okt 2010 12:44

Re: RDF & OWL

Beitrag von DreamFlasher »

Wie unterscheiden sich href und src bei RDFa?

Warum wird in 8.51 bei

Code: Alles auswählen

<rdf:Description rdf:about="http://www.geo.org/Rom">
<hat_hauptstadt rdf:ID="tripel1">
<rdf:Description rdf:about="http://www.geo.org/Spanien" />
</hat_hauptstadt>
</rdf:Description>

<rdf:Description rdf:about="http://www.personen.de/Peter">
<sagt rdf:resource="#tripel1" />
</rdf:Description>

Bei Spanien about eingesetzt und nicht resource? Unterscheiden sich hier RDF und RDFa wirklich?
Marcel Ackermann
http://www.dreamflasher.de
Machine Learning, Natural Language Processing, Algorithms

Interesse an Machine Learning, Artificial Intelligence, Natural Language Processing? Du möchtest deine Skills und Wissen verbessern, an Wettbewerben mit anderen Begeisterten teilnehmen? Mach mit bei unserer Study Group: http://groups.google.com/group/ml-ai

HeikoPaulheim
Moderator
Moderator
Beiträge: 89
Registriert: 4. Jun 2008 09:07

Re: RDF & OWL

Beitrag von HeikoPaulheim »

Wie unterscheiden sich href und src bei RDFa?
Wo kommt in den Beispielen der Vorlesung src vor? Das hat bei RDFa eigentlich gar nichts zu suchen.
Warum wird in 8.51 bei Spanien about eingesetzt und nicht resource? Unterscheiden sich hier RDF und RDFa wirklich?
Ich nehme an, hier ist 1.51 gemeint. Also, "about" steht immer bei einer rdf:Description und sagt: die beschriebene Ressource hat den angegeben URI. "resource" steht hinter einem Prädikat und sagt: dieses Prädikat hat das Objekt, das durch diese Ressource beschrieben ist. Die folgende Schreibweise wäre also äquivalent:

Code: Alles auswählen

    <rdf:Description rdf:about="http://www.geo.org/Rom">
    <hat_hauptstadt rdf:ID="tripel1" rdf:resource="http://www.geo.org/Spanien"/>
    </rdf:Description>

    <rdf:Description rdf:about="http://www.personen.de/Peter">
    <sagt rdf:resource="#tripel1" />
    </rdf:Description>
Die Frage nach dem Unterschied zu RDFa erschließt sich mir hier gerade nicht. RDFa dient dazu, RDF-Aussagen in HTML einzubetten, insbesondere, um die Duplikation bei Literalen zu vermeiden. Da ist die Syntax natürlich eine andere, weil das zugrundeliegende Dokument im Kern HTML und nicht RDF ist.

DreamFlasher
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 12. Okt 2010 12:44

Re: RDF & OWL

Beitrag von DreamFlasher »

Das src steht hier: http://www.w3.org/TR/rdfa-syntax/#s_rdfterminology und ist äquivalent zu about.
Finde das noch etwas verwirrend. Ist es so, dass about immer dann eingesetzt wird wenn eine Ressource nochmal irgendwo als Subjekt eingesetzt wird (und bei Klassendefinition) und resource wenn eine Ressource nur als Objekt eingesetzt wird (außer bei Klassen). Mir erschließt sich beim besten Willen nicht warum da unterschieden werden muss, in N3 muss es das ja auch nicht und das sollte äquivalent sein.


Zu 2.25: Gleichheit von RDF-Graphen: Ich finde die Notation etwas seltsam. Bei Literalen will ich doch wirklich Gleichheit, bei URIs brauch ich nur ein Mapping (wegen non-UNA). Wie ist das denn bei Prädikaten, für die gilt doch auch non-UNA, weils ja letztlich auch URIs sind, also müsste da doch auch ein Mapping erlaubt sein?
Marcel Ackermann
http://www.dreamflasher.de
Machine Learning, Natural Language Processing, Algorithms

Interesse an Machine Learning, Artificial Intelligence, Natural Language Processing? Du möchtest deine Skills und Wissen verbessern, an Wettbewerben mit anderen Begeisterten teilnehmen? Mach mit bei unserer Study Group: http://groups.google.com/group/ml-ai

HeikoPaulheim
Moderator
Moderator
Beiträge: 89
Registriert: 4. Jun 2008 09:07

Re: RDF & OWL

Beitrag von HeikoPaulheim »

Das src steht hier: http://www.w3.org/TR/rdfa-syntax/#s_rdfterminology und ist äquivalent zu about.
Stimmt! Das ist aber eher eine Vereinfachung, weil es manche HTML-Elemente (insbesondere img) gibt, die eh ein src haben. Wenn man dann über diese Ressource eine Aussage machen will (z.B. den Urheber eines Bildes angeben), dann kann man das direkt machen und braucht dafür kein extra-About. Das ist mehr syntactic sugar.
Mir erschließt sich beim besten Willen nicht warum da unterschieden werden muss, in N3 muss es das ja auch nicht
In N3 kann man die Reihenfolge der Statements machen, wie man das für richtig hält, insbesondere immer in Subjekt-Prädikat-Objekt-Form. Bei RDFa muss man sich an das halten, was einem HTML vorgibt. Vergleiche z.B. die Sätze "Die Hauptstadt von Spanien ist Madrid" und "Madrid ist die Hauptstadt von Spanien" - das ist einmal OPS und einmal SPO. Deswegen muss man bei RDFa explizit markieren können, was was ist.

HeikoPaulheim
Moderator
Moderator
Beiträge: 89
Registriert: 4. Jun 2008 09:07

Re: RDF & OWL

Beitrag von HeikoPaulheim »

Zu 2.25: Gleichheit von RDF-Graphen: Ich finde die Notation etwas seltsam. Bei Literalen will ich doch wirklich Gleichheit, bei URIs brauch ich nur ein Mapping (wegen non-UNA). Wie ist das denn bei Prädikaten, für die gilt doch auch non-UNA, weils ja letztlich auch URIs sind, also müsste da doch auch ein Mapping erlaubt sein?
Mit alternativen Namen hat das nichts zu tun. Die Mapping-Funktion bildet auch jeden URI auf einen identischen URI ab. Sie wird eigentlich nur in dem Moment relevant, wo sie Blank Nodes umbenennen kann (Folie 37/38). Da Prädikate sowieso keine Blank Nodes sein können, steht da auch nicht M(p).

Die semantische Äquivalenz, die ein Reasoner z.B. mit Hilfe von owl:sameAs schließen kann und bei der die non-UNA eine Rolle spielt, hat mit dieser Äquivalenz von RDF-Graphen nichts zu tun; gemeint ist hier eine syntaktische Äquivalenz, d.h., die Frage, ob z.B. eine bestimmte N3-Serialisierung äquivalent zu einer XML-Serialisierung ist.

DreamFlasher
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 12. Okt 2010 12:44

Re: RDF & OWL

Beitrag von DreamFlasher »

Danke.

Das mit RDF als XML serialisiert hat mich leider noch nicht ganz überzeugt
Woher weiß der Parser denn in diesem Beispiel (2.27), dass es nicht bedeutet "semantic-web teaches heiko-paulheim."?

Code: Alles auswählen

<rdf:Description
rdf:about="http://www.ke.tu-darmstadt.de/staff/heiko-paulheim"
xmlns:ke="http://www.ke.tu-darmstadt.de/">
<ke:teaches>
<rdf:Description
rdf:about="http://ke.tu-darmstadt.de/lehre/semantic-web"/>
</rdf:Description>
Marcel Ackermann
http://www.dreamflasher.de
Machine Learning, Natural Language Processing, Algorithms

Interesse an Machine Learning, Artificial Intelligence, Natural Language Processing? Du möchtest deine Skills und Wissen verbessern, an Wettbewerben mit anderen Begeisterten teilnehmen? Mach mit bei unserer Study Group: http://groups.google.com/group/ml-ai

HeikoPaulheim
Moderator
Moderator
Beiträge: 89
Registriert: 4. Jun 2008 09:07

Re: RDF & OWL

Beitrag von HeikoPaulheim »

Das Prädikat wird in das Subjekt geschachtelt und das Objekt ins Prädikat - so ergibt sich eine eindeutige Lesart. Wenn man das einrückt, sieht man es auch sehr deutlich:

Code: Alles auswählen

<rdf:Description
  rdf:about="http://www.ke.tu-darmstadt.de/staff/heiko-paulheim"
  xmlns:ke="http://www.ke.tu-darmstadt.de/">
  <ke:teaches>
    <rdf:Description rdf:about="http://ke.tu-darmstadt.de/lehre/semantic-web"/>
  </ke:teaches>
</rdf:Description>

DreamFlasher
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 12. Okt 2010 12:44

Re: RDF & OWL

Beitrag von DreamFlasher »

Ergo brauche ich die Unterscheidung von resource und about nicht mehr, weil sich das durch die Schachtelung ergibt?
Marcel Ackermann
http://www.dreamflasher.de
Machine Learning, Natural Language Processing, Algorithms

Interesse an Machine Learning, Artificial Intelligence, Natural Language Processing? Du möchtest deine Skills und Wissen verbessern, an Wettbewerben mit anderen Begeisterten teilnehmen? Mach mit bei unserer Study Group: http://groups.google.com/group/ml-ai

Antworten

Zurück zu „Semantic Web“