Übung 6

Moderator: Semantic Web

Benutzeravatar
tonyp
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 18. Dez 2008 15:41

Übung 6

Beitrag von tonyp »

Bei Übung 6 Aufgabe 2 (F-Logic):

Würde für "Alle Zelte haben nur einen Stern" statt

Code: Alles auswählen

?X[hatSterne->1] :- ?X:Zelt.
auch folgendes gehen?

Code: Alles auswählen

?X:Zelt :- ?X[hatSterne->1] .

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

Re: Übung 6

Beitrag von DreamFlasher »

so jetzt ham wir alle :D
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: Übung 6

Beitrag von HeikoPaulheim »

Nein, diese Aussage sagt: alles, was nur einen Stern hat, ist ein Zelt. Das ist etwas fundamental anderes. Wenn man z.B. folgende Instanzmenge gegeben hat:

Code: Alles auswählen

HelgasPension:Unterkunft.
HelgasPension[hatSterne->1].
dann würde daraus folgen, dass HelgasPension ein Zelt ist.

Benutzeravatar
tonyp
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 18. Dez 2008 15:41

Re: Übung 6

Beitrag von tonyp »

Hm das ist mir leider noch nicht ganz klar - vermutlich "lese" bzw. interpretiere ich die F-Logic Statements falsch.
Steht nicht links das "zu definierende"?

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

Re: Übung 6

Beitrag von HeikoPaulheim »

Links steht die Konsequenz (Kopf, Head), rechts die Bedingung (Körper, Body).

Merkhilfe: Das :- ist an einen Pfeil angelehnt, und links von der Pfeilspitze steht, was bei der Regel folgt.

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

Re: Übung 6

Beitrag von DreamFlasher »

Aufgabe 1
Können wir wirklich hatVorgänger und hatNachfolger Funktional und InverseFunktional definieren - denn was machen wir mit dem ersten und letzten Akkord?

Und wenn wir so:

Code: Alles auswählen

:Musikstück1 a [
a owl:Restriction ;
owl:onProperty :bestehtAus ;
owl:allValuesFrom [
owl:oneOf (:CDur :FDur :GDur) ] ] .
ein Musikstück definieren, haben wir noch nichts über die Reihenfolge ausgesagt. Für meine Begriffe müssen wir noch Klassen für alle Dur und Moll Akkorde in unsere Ontologie aufnehmen und ein konkretes Stück besteht dann aus Instanzen der Form :akkord1 a :CDurAkkord, :akkord2 a :FDurAkkord, sowie der Reihenfolgendefinition: :akkord1 :hatNachfolger :akkord2 etc., sowie oneOf und AllDifferent... also sowas wird leicht ultrakomplex...
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: Übung 6

Beitrag von HeikoPaulheim »

Können wir wirklich hatVorgänger und hatNachfolger Funktional und InverseFunktional definieren - denn was machen wir mit dem ersten und letzten Akkord?
Das ist nicht weiter kritisch. Diese Statements sagen ja nur, dass es nicht mehr als einen Vorgänger und Nachfolger geben kann, nicht, dass es einen solchen tatsächlich geben muss.
Und wenn wir so [...] ein Musikstück definieren, haben wir noch nichts über die Reihenfolge ausgesagt.
Korrekt. Die Definition sagt nur: dieses Stück besteht ausschließlich aus C-F- und G-Dur-Akkorden. Womit wir es zumindest schon mal als fröhliches Stück klassifizieren können.

[qoute]Für meine Begriffe müssen wir noch Klassen für alle Dur und Moll Akkorde in unsere Ontologie aufnehmen und ein konkretes Stück besteht dann aus Instanzen der Form :akkord1 a :CDurAkkord, :akkord2 a :FDurAkkord, sowie der Reihenfolgendefinition: :akkord1 :hatNachfolger :akkord2 etc., sowie oneOf und AllDifferent... also sowas wird leicht ultrakomplex...[/quote]
Korrekt. So sähe das aus, wenn man ein Stück ganz detailliert modellieren würde.

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

Re: Übung 6

Beitrag von DreamFlasher »

Dankeschön, da stecken ne ganze Menge Details drin die man auf den ersten Blick so gar nicht gesehen hat :)

Zu Aufgabe 2:
Wärst du so lieb den Unterschied zwischen

Code: Alles auswählen

?X:Unterkunft[hatSterne->?Y]
und

Code: Alles auswählen

?X[hatSterne->?Y]
zu erläutern?
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: Übung 6

Beitrag von HeikoPaulheim »

Code: Alles auswählen

?X:Unterkunft[hatSterne->?Y]
ist eine abgekürzte Schreibweise für

Code: Alles auswählen

?X:Unterkunft AND ?X[hatSterne->?Y]

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

Re: Übung 6

Beitrag von DreamFlasher »

Aufgabe 4
Ich hatte mir sowas gedacht für "Jedes Buch kann nur von einem Benutzer ausgeliehen werden.":

Code: Alles auswählen

:Buch owl:subClassOf [a owl:Restriction; owl:onProperty :hatAusgeliehen; owl:maxCardinality "1"^^xsd:integer].
Wäre das auch okay für die Erfüllung der Aussage - der Unterschied zu inverseFunctionalProperty wäre dann quasi das Bücher nur einmal ausgeliehen sein können vs. das das Property hatAusgeliehen generell unabhängig von Büchern nur einmal pro Objekt auftreten kann. Habe ich das korrekt verstanden?
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: Übung 6

Beitrag von HeikoPaulheim »

Habe ich das korrekt verstanden?
Absolut. Das ist sogar genauer als mein eigener Lösungsvorschlag. So könnte man z.B. einführen, dass digitale Medien auch häufiger ausgeliehen sein könnten, was bei meiner Lösung nicht möglich ist, da die Eigenschaft global am Property definiert wurde.

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

Re: Übung 6

Beitrag von DreamFlasher »

Gut, da bin ich beruhigt :)
Ich halte deine Lösung für besser, weil hatAusgeliehen nur bei realen Objekten Sinn macht (digitale Medien in Form von Daten können eigentlich nicht ausgeliehen werden, sondern nur kopiert, digitale Medien in Form von DVDs kann jede DVD auch nur einmal ausgeliehen sein, ist das selbe wie das es mehrere Kopien des selben Buchs geben kann) und alle realen Objekte tatsächlich nur einmal ausgeliehen sein können. Ist also für eine spätere Wiederverwendung besser bzw. die Ontology reagiert wie man es erwartet für Erweiterungen.
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

Benutzeravatar
tonyp
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 18. Dez 2008 15:41

Re: Übung 6

Beitrag von tonyp »

HeikoPaulheim hat geschrieben:Links steht die Konsequenz (Kopf, Head), rechts die Bedingung (Körper, Body).

Merkhilfe: Das :- ist an einen Pfeil angelehnt, und links von der Pfeilspitze steht, was bei der Regel folgt.

Danke, das ist eine gute Merkhilfe. Das hast du sogar schonmal in der Vorlesung gesagt.. :oops:
Die Prädikatenlogik hat mich da wohl etwas verwirrt, bei der es andersrum ist - ich merk mir mal lieber F-Logic, die kam anders als die Prädikatenlogik auch in der Übung dran ;)

redDragonfly
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 14. Apr 2010 22:32

Re: Übung 6

Beitrag von redDragonfly »

(Zu Aufgabe 2)
Sorry, ich habe den Unterschied zwischen
(1)

Code: Alles auswählen

?X[hatSterne->1] :- ?X:Zelt.
und
(2)

Code: Alles auswählen

?X:Zelt :- ?X[hatSterne->1] .
im Bezug auf die Aufgabenstellung immer noch nicht ganz verstanden.

Soweit ich jetzt mitbekommen habe, bedeutet
(1) "X hat einen Stern, wenn X ein Zelt ist."
bzw.
(2) "X ist ein Zelt, wenn X einen Stern hat."
(ist das soweit korrekt?)

Woraus kann ich aus der Regel "Alle Zelte haben nur einen Stern." schließen, dass (1) gefordert ist?
Wo ist der Unterschied zur nächsten Regel "Luxusunterkünfte sind Unterkünfte mit mind. vier Sternen?", wo es in der MuLö dann genau umgekehrt ist?

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

Re: Übung 6

Beitrag von HeikoPaulheim »

Die Antwort hat drei Teile:

1. Ja, die Interpretation der beiden Varianten ist korrekt.

2. In der Klausur werden alle Aufgaben so eindeutig gestellt, dass es zu solchen Missverständnissen nicht kommen kann.

(liest hier noch jemand mit, wo Antwort 2 geklärt ist? :wink: )

3. Man müsste hier im Ernstfall (d.h. im echten Leben, in dem man solche Spezifikationen bekommt) nachdenken, welche Implikationen die jeweilige Codierung haben würde. Z.B. würde das Beispiel mit Helgas Pension dann die eine Richtung ausschließen, weil ein Reasoner hier zu unsinnigen Folgerungen kommen könnte.
Bei den Luxusunterkünften geht sowieso nur diese Richtung, weil "mindestens 4 Sterne" im Kopf einer Regel in F-Logic gar nicht darstellbar ist.

Antworten

Zurück zu „Semantic Web“