Sunday, December 7, 2008

Blatt 5

1.

a)


In dem rdf-Dokument wird eine Eigenschaft namens "http://example.org/hauptstadt_von" definiert, deren Definitionsbereich "Städte" und Wertebereich "Länder" sind, d.h. eine "Stadt" ist "hauptstadt_von" einem Land. Ein Land ist eine Klasse, deren lesbarer Name die englischsprachige Form eines Landes ist. Eine Stadt ist eine Klasse, deren lesbarer Name die englischsprachige Form einer Stadt ist. Zudem wird eine Instanz der Klasse Land mit dem Namen "http://example.org/deutschland" erzeugt. Die Instanz der Klasse Stadt mit dem Namen "http://example.org/berlin" trägt den lesbaren Namen "Berlin" verweist mit Hilfe der Eigenschaft "http://example.org/hauptstadt_von" auf die Instanz der Klasse Land mit Namen "http://example.org/deutschland", d.h. "http://example.org/berlin" ist die Hauptstadt von "http://example.org/deutschland".



b)

2.

a)


b)


<?xml version="1.0"?>

<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:b="http://book.com/" xml:base="http://book.com/">


  <rdfs:Class rdf:about="Term">

    <rdfs:SubClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>

  </rdfs:Class>

  <rdfs:Class rdf:about="Buzzword">

    <rdfs:SubClassOf rdf:resource="Term"/>

  </rdfs:Class>

  <rdfs:Class rdf:about="Keyword">

    <rdfs:SubClassOf rdf:resource="Term"/>

  </rdfs:Class>

  <rdfs:Class rdf:about="TitleKeyword">

    <rdfs:SubClassOf rdf:resource="Keyword"/>

  </rdfs:Class>

  <rdfs:Class rdf:about="TextKeyword">

    <rdfs:SubClassOf rdf:resource="Keyword"/>

  </rdfs:Class>


  <rdf:Property rdf:about="crossReference">

    <rdfs:SubPropertyOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>

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

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

  </rdf:Property>

  <rdf:Property rdf:about="see">

    <rdfs:SubPropertyOf rdf:resource="crossReference"/>

  </rdf:Property>

  <rdf:Property rdf:about="seeAlso">

    <rdfs:SubPropertyOf rdf:resource="crossReference"/>

  </rdf:Property>


  <rdf:Description rdf:about="Book">

   <b:has rdf:resource="Index"/>

  </rdf:Description>

  <rdf:Description rdf:about="Index">

   <b:has rdf:resource="IndexEntry"/>

  </rdf:Description>

  <rdf:Description rdf:about="IndexEntry">

   <b:mainHeading rdf:resource="Keyword"/>

  </rdf:Description>

  <rdf:Description rdf:about="IndexEntry">

   <b:has rdf:resource="ReferenceLocator"/>

  </rdf:Description>

  <rdf:Description rdf:about="IndexEntry">

   <b:has rdf:resource="SubEntry"/>

  </rdf:Description>

  <rdf:Description rdf:about="SubEntry">

   <b:mainHeading rdf:resource="Keyword"/>

  </rdf:Description>

  <rdf:Description rdf:about="SubEntry">

   <b:has rdf:resource="ReferenceLocator"/>

  </rdf:Description>

  <rdf:Description rdf:about="SubEntry">

   <b:has rdf:resource="SubEntry"/>

  </rdf:Description>

  <rdf:Description rdf:about="Buzzword">

   <b:sumUpPartOf rdf:resource="Book"/>

  </rdf:Description>

  <rdf:Description rdf:about="Keyword">

   <b:isContainedIn rdf:resource="Book"/>

  </rdf:Description>

</rdf:RDF>



c)


Die Schwierigkeiten bei der Modellierung mit RDF/RDFS bestehen darin, Häufigkeiten des Auftretens von Beziehungen auszudrücken. Im vorliegenden Beispiel betrifft dies beispielsweise die Aussage, dass ein Indexeintrag eine oder mehrere Seitenangaben und eine Reihe von Untereinträgen enthält.



3.


Jede Pizza ist eine Speise.


<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xml:base="http://italien.de/">

  <rdf:Description rdf:about="Pizza">

    <rdf:type rdf:resource="Speise"/>

  </rdf:Description>

</rdf:RDF>



Eine Pizza hat immer mindestens zwei Beläge.


<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:it="http://italien.de/" xml:base="http://italien.de/">

  <rdf:Description rdf:about="Pizza">

    <it:MindestanzahlBeläge rdf:datatype="http://www.w3.org/2001/XMLSchema#int">2</it:BelagAnzahl >

  </rdf:Description>

</rdf:RDF>


Nicht wirklich zufriedenstellende Lösung, da die Aussage, dass es mindestens zwei Beläge sind, nur über das Prädikat umsetzbar ist.



Jede Pizza der Klasse PizzaMargarita hat Tomate als Belag.


<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:it="http://italien.de/" xml:base="http://italien.de/">

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

    <rdfs:SubClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>

  </rdfs:Class>

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

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

  </rdfs:Class>

  <rdf:Description rdf:about="PizzaMargarita">

    <it:hatBelag rdf:resource="Tomate"/>

  </rdf:Description>

</rdf:RDF>



Alles, was einen Belag hat, ist eine Pizza.


Nicht zufriedenstellend modellierbar, da eine wenn-dann-Beziehung in RDF nicht ausdrückbar ist.



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


<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:it="http://italien.de/" xml:base="http://italien.de/">

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

    <rdfs:SubClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>

  </rdfs:Class>

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

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

  </rdfs:Class>

  <rdfs:Class rdf:about="Belag">

    <rdfs:SubClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>

  </rdfs:Class>

  <rdfs:Class rdf:about="Fleisch">

    <rdfs:SubClassOf rdf:resource="Belag"/>

  </rdfs:Class>

  <rdf:Property rdf:about="hatBelagNicht">

    <rdfs:SubPropertyOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>

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

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

  </rdf:Property>

</rdf:RDF>



Eine Calzone ist eine Pizza ohne Käse.


<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:it="http://italien.de/" xml:base="http://italien.de/">

  <rdf:Description rdf:about="Calzone">

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

    <it:hatBelagNicht rdf:resource="Käse"/>

  </rdf:Description>

</rdf:RDF>

No comments: