1.
1. alle verheirateten Paare, die ein gemeinsames Kind haben
Mann(x) ∧ Frau(y) ∧ verheiratetMit(x, y) ∧ kindVon(z, x) ∧ kindVon(z, y)
- unbestimmte Variable: z
2. alle verheirateten weiblichen katholischen Priester
Frau(x) ∧ Katholisch(x) ∧ Priester(x) ∧ verheiratetMit(x, y)
- unbestimmte Variable: y
3. alle Personen, deren Eltern verheiratet sind
- nur alle Männer oder alle Frauen bestimmbar und keine Vereinigung beider
Mann(x) ∧ kindVon(x, y) ∧ kindVon(x, z) ∧ verheiratetMit(y, z)
- unbestimmte Variable: y, z
4. alle Frauen, die ihren Gatten umbringen
Frau(x) ∧ verheiratetMit(x, y) ∧ ermordet(x, y)
- unbestimmte Variable: y
5. alle verheirateten Paare von Selbstmördern
Mann(x) ∧ Frau(y) ∧ verheiratetMit(x, y) ∧ ermordet(x, x) ∧ ermordet(y, y)
2.
1. (Weise(x) ∧ Kahl(x)) ∨ ¬Maennlich(x) ← (Klug(x) ∨ Alt(x)) ∧ ∃ y.(verheiratetMit(x,y))
(Weise(x) ∧ Kahl(x)) ∨ ¬Maennlich(x) ← (Klug(x) ∨ Alt(x)) ∧ verheiratetMit(x, ehepartner(x)))
(Weise(x) ∧ Kahl(x)) ∨ ¬Maennlich(x) ∨ ¬((Klug(x) ∨ Alt(x)) ∧ verheiratetMit(x, ehepartner(x))))
(Weise(x) ∧ Kahl(x)) ∨ ¬Maennlich(x) ∨ (¬Klug(x) ∧ ¬Alt(x)) ∨ ¬verheiratetMit(x, ehepartner(x))
- in keine Klauselform umwandelbar
2. Stolz(vater(x)) ∨ Stolz(mutter(x)) ← Klug(x)
Stolz(vater(x)) ∨ Stolz(mutter(x)) ∨ ¬Klug(x)
- Klausel
3. Clever(x) ← Klug(x) ∨ (kennt(x,y) ∧ Klug(y))
Clever(x) ← (Klug(x) ∨ kennt(x,y)) ∧ (Klug(x) ∨ Klug(y))
Clever(x) ∨ ¬((Klug(x) ∨ kennt(x,y)) ∧ (Klug(x) ∨ Klug(y)))
Clever(x) ∨ (¬Klug(x) ∧ ¬kennt(x,y)) ∨ (¬Klug(x) ∧ ¬Klug(y)))
- in keine Klauselform umwandelbar
4. ¬Dominant(vater(x)) ← Dominant(mutter(x))
¬Dominant(vater(x)) ∨ ¬Dominant(mutter(x))
- Hornklausel
5. Klein(x) ∧ Stark(x) ← Seemann(x) ∧ liebt(x,y) ∧ Spinat(y) ∧ liebt(x, Olive_Oyl)
Klein(x) ∧ Stark(x) ∨ ¬Seemann(x) ∨ ¬liebt(x,y) ∨ ¬Spinat(y) ∨ ¬liebt(x, Olive_Oyl)
- in keine Klauselform umwandelbar
3.
a)
Künstler(x) → ZuordnungKünstlerEpoche(x, z) ∧ Stilepoche(z)
Künstler(x) ∧ Kunstwerk(y) ∧ Schöpfer(x, y) → ZuordnungKunstwerkEpoche(y, z) ∧ Stilepoche(z)
<ruleml:imp>
<ruleml:_rlab ruleml:href="#epochekünstler"/>
<owlx:Annotation>
<owlx:Documentation>Zuordnung eines Künstlers zu einer Epoche</owlx:Documentation>
</owlx:Annotation>
<ruleml:_body>
<swrlx:classAtom>
<owlx:Class owlx:name="&kunst;Künstler"/>
<ruleml:var>x</ruleml:var>
</swrlx:classAtom>
</ruleml:_body>
<ruleml:_head>
<swrlx:individuaPropertyAtom swrlx:property="&kunst;ZuordnungKünstlerEpoche">
<ruleml:var>x</ruleml:var>
<ruleml:var>z</ruleml:var>
</swrlx:individuaPropertyAtom>
<swrlx:classAtom>
<owlx:Class owlx:name="&kunst;Stilepoche"/>
<ruleml:var>z</ruleml:var>
</swrlx:classAtom>
</ruleml:_head>
</ruleml:imp>
<ruleml:imp>
<ruleml:_rlab ruleml:href="#epochekunstwerk"/>
<owlx:Annotation>
<owlx:Documentation>Zuordnung eines Kunstwerks zu einer Epoche</owlx:Documentation>
</owlx:Annotation>
<ruleml:_body>
<swrlx:classAtom>
<owlx:Class owlx:name="&kunst;Künstler"/>
<ruleml:var>x</ruleml:var>
</swrlx:classAtom>
<swrlx:classAtom>
<owlx:Class owlx:name="&kunst;Kunstwerk"/>
<ruleml:var>y</ruleml:var>
</swrlx:classAtom>
<swrlx:individualPropertyAtom swrlx:property="&kunst;Schöpfer">
<ruleml:var>x</ruleml:var>
<ruleml:var>y</ruleml:var>
</swrlx:individualPropertyAtom>
</ruleml:_body>
<ruleml:_head>
<swrlx:individualPropertyAtom swrlx:property="&kunst;ZuordnungKunstwerkEpoche">
<ruleml:var>y</ruleml:var>
<ruleml:var>z</ruleml:var>
</swrlx:individualPropertyAtom>
<swrlx:classAtom>
<owlx:Class owlx:name="&kunst;Stilepoche"/>
<ruleml:var>z</ruleml:var>
</swrlx:classAtom>
</ruleml:_head>
</ruleml:imp>
b)
Def-hasMother
Woman(y) ∧ hasParent(x, y) → hasMother(x, y)
Wenn eine Person ein Elternteil hat, das weiblich ist, ist dieses Elternteil seine Mutter.
Def-hasDaughter
Woman(x) ∧ hasChild(x, y) → hasDaughter(x, y)
Fehler im SWRL-Codefragment; es soll wohl heißen:
Woman(y) ∧ hasChild(x, y) → hasDaughter(x, y)
Wenn eine Person ein weibliches Kind hat, ist dieses Kind die Tochter der Person.
Def-hasParent
hasConsort(y, z) ∧ hasParent(x, y) → hasParent(x, z)
Wenn eine Person ein Elternteil hat, das einen Partner besitzt, ist der Partner auch Elternteil der Person.
Def-hasSister
hasSister(x, y) ← Woman(y) ∧ hasSibling(x, y)
Wenn eine weibliche Person ein Geschwister einer Person ist, ist sie die Schwester der Person.
Def-hasBrother
hasBrother(x, y) ← Man(y) ∧ hasSibling(x, y)
Wenn eine männliche Person ein Geschwister einer Person ist, ist er der Bruder der Person.
Def-hasSon
Man(x) ∧ hasChild(x, y) → hasSon(x, y)
Fehler im SWRL-Codefragment; es soll wohl heißen:
Man(y) ∧ hasChild(x, y) → hasSon(x, y)
Wenn eine Person ein männliches Kind hat, ist dieses Kind der Sohn der Person.
Def-hasUncle
hasUncle(x, z) ← hasParent (x, y) ∧ hasBrother(y, z)
Wenn ein Elternteil einer Person einen Bruder hat, ist er der Onkel der Person.
Def-hasSibling
hasChild(x, y) ∧ hasChild(z, y) ∧ differentFrom(x, z) → hasSibling(x, z)
Fehler im SWRL-Codefragment; es soll wohl heißen:
isChild(x, y) ∧ isChild(z, y) ∧ differentFrom(x, z) → hasSibling(x, z)
Wenn zwei Personen das gleiche Elternteil haben, sind sie Geschwister.
Def-hasNiece
hasNiece(x, z) ← hasDaughter(y, z) ∧ hasSibling(x, y)
Wenn eine Person ein Geschwister hat und das Geschwister eine Tochter, dann ist sie die Nichte dieser Person.
Def-hasNephew
hasSon(y, z) ∧ hasSibling(x, y) → hasNiece(x, z)
Wenn eine Person ein Geschwister hat und das Geschwister einen Sohn, dann ist er die Neffe dieser Person.
Def-hasFather
hasFather(x, y) ← Man(y) ∧ hasParent(x, y)
Das männliche Elternteil einer Person ist der Vater dieser Person.
Def-hasAunt
hasSister(y, z) ∧ hasParent(x, y) → hasAunt(x, z)
Wenn ein Elternteil einer Person eine Schwester hat, dann ist sie die Tante der Person.
No comments:
Post a Comment