Sunday, February 1, 2009

Blatt 10

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: