Sunday, January 18, 2009

Blatt 8

1.


a)


IR = {α, β, γ, δ, τ, ζ, η, θ, λ, μ, ν, ξ, π, ρ, ϕ, χ, φ}

IP = {β, δ, ζ, ν, ξ, π, ρ}

LV = {}

IS = hpi:Thorben α

        hpi:verzehrt β

        hpi:Pizza γ

        hpi:hatNotwendigeZutat δ

        hpi:Mozarella τ

        rdf:type ζ

        hpi:KäsePhobiker η

        hpi:Gericht θ

        hpi:hatOptionaleZutat λ

        hpi:Zutat μ

        rdfs:subClassOf ν

        rdfs:domain ξ

        rdfs:subProperty π

        rdfs:range ρ

        hpi:Bedauernswert ϕ

        hpi:hatZutat χ

        rdfs:ContainerMembershipProperty φ


IL = {}

IEXT = β {α,γ}

             δ {γ,τ}

             ζ {α,η〉〈γ,θ〉〈τ,μ〉〈χ,φ}

             ν {η,ϕ}

             ξ {χ,θ}

             π {λ,χ〉〈δ,χ}

             ρ {χ,μ}



b)


– ein Tripel, welches einfach folgt

hpi:Thorben hpi:verzehrt hpi:Mozarella.

– ein Tripel, welches RDF-folgt, aber nicht einfach folgt

hpi:Thorben hpi:verzehrt hpi:Zutat.

– ein Tripel, welches RDFS-folgt, jedoch nicht RDF-folgt

hpi:hatOptionaleZutat rdfs:domain hpi:Gericht.



2.


a)


– Die Klasse Gemüse ist eine Unterklasse von PizzaBelag. 

– Die Klasse PizzaBelag hat keine gemeinsamen Elemente mit der Klasse Pizza. 

– Das Individuum Zucchini ist ein Element der Klasse Gemüse. 

– Die abstrakte Rolle hatBelag besteht ausschließlich zwischen Elementen der Klasse Pizza und 

der Klasse PizzaBelag. 

– Pizzen haben immer mindestens zwei Beläge. 

– Jede Pizza der Klasse PizzaMargarita hat Tomate als Belag. 

– Die Klasse VegetarischePizza besteht aus den Elementen, die sowohl in der Klasse PizzaOhneFleisch als auch in der Klasse PizzaOhneFisch sind. 

– Keine Pizza der Klasse PizzaMargarita hat Belag aus der Klasse Fleisch. 



<rdf:RDF

  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

  xmlns:owl="http://www.w3.org/2002/07/owl#"

  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"

  xml:base="http://essen.de/">


  <owl:Class rdf:about="Gemüse">

    <rdfs:subClassOf rdf:resource="PizzaBelag"/>

  </owl:Class>


  <owl:Class rdf:about="PizzaBelag">

    <owl:disjointWith rdf:resource="Pizza"/>

  </owl:Class>


  <Gemüse rdf:about="Zucchini"/>


  <owl:ObjectProperty rdf:about="hatBelag">

    <rdf:domain rdf:resource="Pizza"/>

    <rdf:range rdf:resource="PizzaBelag"/>

  </owl:ObjectProperty>


  <owl:Class rdf:about="Pizza">

    <rdfs:subClassOf>

      <owl:Restriction>

        <owl:onProperty rdf:resource="hatBelag"/>

        <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:minCardinality>

      </owl:Restriction>

    </rdfs:subClassOf>

  </owl:Class>


  <owl:Class rdf:about="PizzaMargarita">

    <rdfs:subClassOf rdf:resource="Pizza"/>

    <rdfs:subClassOf>

      <owl:Restriction>

        <owl:onProperty rdf:resource="hatBelag"/>

        <owl:someValuesFrom rdf:resource="Tomate"/>

      </owl:Restriction>

    </rdfs:subClassOf>

  </owl:Class>


  <owl:Class rdf:about="VegetarischePizza">

    <owl:intersectionOf rdf:parseType="Collection">

      <owl:Class rdf:about="PizzaOhneFleisch"/>

      <owl:Class rdf:about="PizzaOhneFisch"/>

    </owl:intersectionOf>

  </owl:Class>


  <owl:Class rdf:about="PizzaMargarita">

    <rdfs:subClassOf rdf:resource="Pizza"/>

  </owl:Class>

  <owl:Class rdf:about="Fleischlos">

    <owl:disjointWith rdf:resource="Fleisch"/>

  </owl:Class>

  <owl:ObjectProperty rdf:about="hatBelag">

    <rdf:domain rdf:resource="PizzaMargarita"/>

    <rdf:range rdf:resource="Fleischlos"/>

  </owl:ObjectProperty>

  

</rdf:RDF>



b)


– Die Rolle hatZutat ist transitiv.

Ja, ist sinnvoll.

Beispiel:

Eine Pizza hat eine Zutat Tomatensauce und die Tomatensauce hat die Zutat Tomate, dann hat auch die Pizza die Zutat Tomate.


– Die Rolle hatBelag ist funktional.

Nein, ist nicht sinnvoll, da eine Pizza immer mehrere Beläge haben kann.

Beispiel:

Eine Pizza hat den Belag Tomate und den Belag Salami, dennoch ist eine Tomate nicht gleichzeitig eine Salami.


– Die Rolle hatBelag ist invers funktional.

Nein, ist ebenfalls nicht sinnvoll, da verschiedene Pizzen einen bestimmten Belag haben können.

Eine Pizza Salami hat den Belag Tomate und eine Pizza Margarita hat den Belag Tomate, dennoch ist eine Pizza Salami nicht gleichzeitig eine Pizza Margarita.



3.


a)


Jeder Mensch hat Eltern. Eltern setzen sich (üblicherweise) zusammen aus Mutter und Vater. Ein Mensch ist (üblicherweise) entweder männlich oder weiblich. Geschwister haben (meist) dieselben Eltern. Eltern sind (oft) miteinander verheiratet. Ein Bruder ist ein männliches Geschwisterkind. Eine Schwester ist ein weibliches Geschwisterkind. Ein Onkel ist stets der Bruder eines Vaters. Großeltern sind die Eltern der Eltern. Eine Familie umfasst (heute meist) Eltern und Kinder. Eine Großfamilie umfasst mehr als zwei Generationen. Eine kinderreiche Familie hat mehr als 4 Kinder. 



<rdf:RDF

  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

  xmlns:owl="http://www.w3.org/2002/07/owl#"

  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"

  xmlns:s="http://stammbaum.de/"

  xml:base="http://stammbaum.de/">


  <owl:Class rdf:about="Mensch"/>


  <owl:ObjectProperty rdf:about="hatEltern">

    <rdf:type rdf:resource="&owl;FunctionalProperty"/>

    <rdfs:domain rdf:resource="Mensch"/>

    <rdfs:range rdf:resource="Eltern"/>

  </owl:ObjectProperty>


  <owl:Class rdf:about="Eltern">

    <owl:equivalentClass>

      <owl:unionOf rdf:parseType="Collection">

        <owl:Class rdf:about="Mutter">

          <rdfs:subClassOf rdf:resource="Frau"/>

        </owl:Class>

        <owl:Class rdf:about="Vater">

          <rdfs:subClassOf rdf:resource="Mann"/>

        </owl:Class>

      </owl:unionOf>

    </owl:equivalentClass>

  </owl:Class>


  <owl:Class rdf:about="Mann">

    <rdfs:subClassOf rdf:resource="Mensch"/>

  </owl:Class>


  <owl:Class rdf:about="Frau">

    <rdfs:subClassOf rdf:resource="Mensch"/>

    <owl:disjointWith rdf:resource="Mann"/>

  </owl:Class>


  <owl:ObjectProperty rdf:about="istVerheiratet">

    <rdf:type rdf:resource="&owl;SymmetricProperty" />

    <rdfs:domain rdf:resource="Eltern"/>

    <rdfs:range rdf:resource="Eltern"/>

  </owl:ObjectProperty>


  <owl:Class rdf:about="Geschwister"/>

    <owl:equivalentClass>

      <owl:unionOf rdf:parseType="Collection">

        <owl:Class rdf:about="Bruder">

          <rdfs:subClassOf rdf:resource="Mann"/>

        </owl:Class>

        <owl:Class rdf:about="Schwester">

          <rdfs:subClassOf rdf:resource="Frau"/>

        </owl:Class>

      </owl:unionOf>

    </owl:equivalentClass>

  </owl:Class>


  <owl:ObjectProperty rdf:about="habenEltern">

    <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>

    <rdfs:domain rdf:resource="Geschwister"/>

    <rdfs:range rdf:resource="Eltern"/>

  </owl:ObjectProperty>


  <owl:Class rdf:about="Familie">

    <owl:equivalentClass>

      <owl:unionOf rdf:parseType="Collection">

        <owl:Class rdf:about="Eltern"/>

        <owl:Class rdf:about="Kinder"/>

      </owl:unionOf>

    </owl:equivalentClass>

  </owl:Class>


  <owl:Class rdf:about="Großfamilie">

    <rdfs:subClassOf rdf:resource="Familie"/>

    <rdfs:subClassOf>

      <owl:Restriction>

        <owl:onProperty rdf:resource="hatGenerationen"/>

        <owl:minCardinality rdf:datatype="&xsd;nonIntegerNumber">3</owl:minCardinality>

      </owl:Restriction>

    </rdfs:subClassOf>

  </owl:Class>


  <owl:Class rdf:about="kinderreicheFamilie">

    <rdfs:subClassOf rdf:resource="Familie"/>

    <rdfs:subClassOf>

      <owl:Restriction>

        <owl:onProperty rdf:resource="hatKinder"/>

        <owl:minCardinality rdf:datatype="&xsd;nonIntegerNumber">5</owl:minCardinality>

      </owl:Restriction>

    </rdfs:subClassOf>

  </owl:Class>


</rdf:RDF>



Onkel und Großeltern fehlen.

No comments: