1.
a)
– Eine Vorlesung besteht aus einzelnen ”Vorlesungsstunden“ , die während eines Semesters stattfinden.
– Neben dem Semester gibt es auch die vorlesungsfreie Zeit.
– Eine Vorlesung hat einen oder mehrere Dozenten.
– Dozenten und Studenten sind Personen mit bestimmten Attributen.
– Eine Vorlesung kann im Rahmen des Bachelor- oder Masterprogramms stattfinden.
– Eine Vorlesung zählt zu einem bestimmten Schwerpunkt.
– Der Dozent kann zu einem bestimmten Lehrstuhl gehören.
– Manche Vorlesungen haben zusätzlich eine Übung.
– Vorlesungen, Übungen, Seminare und Praktika sind Lehrveranstaltungen.
– Es gibt Vorlesungen mit 2 bzw. 4 SWS.
– Zwischen Vorlesungen kann es Abhängigkeiten geben (z.B. muss man eine bestimmte Vorlesung gehört haben, bevor man an einer anderen teilnehmen kann...)
<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:hpi="http://www.hpi.de/"
xml:base="http://www.hpi.de/">
<owl:Class rdf:resource="Vorlesung"/>
<owl:Class rdf:resource="Vorlesungsstunde"/>
<owl:Class rdf:resource="Semester"/>
<owl:ObjectProperty rdf:about="bestehtAus">
<rdfs:domain rdf:resource="Vorlesung"/>
<rdfs:range rdf:resource="Vorlesungsstunde"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="findetZeitlichStatt">
<rdfs:domain rdf:resource="Vorlesungsstunde"/>
<rdfs:range rdf:resource="Semester"/>
</owl:ObjectProperty>
<owl:Class rdf:about="VorlesungsfreieZeit">
<owl:disjointWith rdf:resource="Semester"/>
</owl:Class>
<owl:Class rdf:about="Vorlesung">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="hatDozent"/>
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="Person"/>
<owl:Class rdf:about="Dozent">
<rdfs:subClassOf rdf:resource="Person"/>
</owl:Class>
<owl:Class rdf:about="Student">
< rdfs:subClassOf rdf:resource="Person"/>
</owl:Class>
<owl:DatatypeProperty rdf:about="Attribut">
<rdfs:domain rdf:resource="Person"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<owl:Class rdf:about="Studium"/>
<owl:Class rdf:about="Bachelor">
< rdfs:subClassOf rdf:resource="Person"/>
</owl:Class>
<owl:Class rdf:about="Master">
<rdfs:subClassOf rdf:resource="Person"/>
<owl:disjointWith="Bachelor"/>
</owl:Class>
<owl:ObjectProperty rdf:about="findetStattIm">
<rdfs:domain rdf:resource="Vorlesung"/>
<rdfs:range rdf:resource="Studium"/>
</owl:ObjectProperty>
<owl:DatatypeProperty rdf:about="Schwerpunkt">
<rdfs:domain rdf:resource="Vorlesung"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="Lehrstuhl">
<rdfs:domain rdf:resource="Dozent"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<owl:Class rdf:about="VorlesungOhneÜbung">
<rdfs:subClassOf rdf:resource="Vorlesung"/>
</owl:Class>
<owl:Class rdf:about="VorlesungMitÜbung">
<rdfs:subClassOf rdf:resource="Vorlesung"/>
<owl:disjointWith rdf:resource="VorlesungOhneÜbung"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="hatÜbung"/>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="Lehrveranstaltung"/>
<owl:Class rdf:about="Vorlesung">
< rdfs:subClassOf rdf:resource="Lehrveranstaltung"/>
</owl:Class>
<owl:Class rdf:about="Übung">
< rdfs:subClassOf rdf:resource="Lehrveranstaltung"/>
</owl:Class>
<owl:Class rdf:about="Seminar">
< rdfs:subClassOf rdf:resource="Lehrveranstaltung"/>
</owl:Class>
<owl:Class rdf:about="Praktika">
< rdfs:subClassOf rdf:resource="Lehrveranstaltung"/>
</owl:Class>
<owl:Class rdf:about="VorlesungMit2SWS">
<rdfs:subClassOf rdf:resource="Vorlesung"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="hatSWS"/>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="VorlesungMit4SWS">
<rdfs:subClassOf rdf:resource="Vorlesung"/>
<owl:disjointWith rdf:resource="VorlesungMit2SWS"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="hatSWS"/>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">4</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:ObjectProperty rdf:about="istAbhängigVon">
<rdfs:domain rdf:resource="Vorlesung"/>
<rdfs:range rdf:resource="Vorlesung"/>
</owl:ObjectProperty>
</rdf:RDF>
b)
Vorlesungen haben Belegungspunkte.
<owl:DatatypeProperty rdf:about="Belegungspunkte">
<rdfs:domain rdf:resource="Vorlesung"/>
<rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
</owl:DatatypeProperty>
Eine Vorlesung wird von mindestens einem Studenten besucht.
<owl:Class rdf:about="Vorlesung">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="hatBesuchendeStudenten"/>
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Eine Vorlesung wird an einer bestimmten Uni gelesen.
<owl:DatatypeProperty rdf:about="Uni">
<rdfs:domain rdf:resource="Vorlesung"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
Eine Vorlesung hat bestimmte Dozenten.
<owl:DatatypeProperty rdf:about="Dozenten">
<rdfs:domain rdf:resource="Vorlesung"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
d)
Individuum Semantic Web
<hpi:Semester rdf:about="SiebentesSemester"/>
<hpi:Vorlesungensstunde rdf:about="ErsteVorlesungsstunde">
<hpi:findetZeitlichStatt rdf:resource="SiebentesSemester"/>
</hpi:Vorlesungensstunde>
<hpi:Master rdf:about="MasterIT-SystemsEngineering"/>
<owl:Nothing rdf:about="Nothing"/>
<hpi:VorlesungMitÜbung rdf:about="SemanticWeb">
<hpi:bestehtAus rdf:resource="Vorlesungsstunde"/>
<hpi:hatDozent rdf:datatype="&xsd;nonNegativeInteger">1</hpi:hatDozent>
<hpi:findetStattIm rdf:resource="Master"/>
<hpi:Schwerpunkt rdf:datatype="&xsd;string">Internettechnologien</hpi:Schwerpunkt>
<hpi:hatÜbung rdf:datatype="&xsd;nonNegativeInteger">1</hpi:hatÜbung>
<hpi:hatSWS rdf:datatype="&xsd;nonNegativeInteger">4</hpi:hatSWS>
<hpi:istAbhängigVon rdf:resource="Nothing"/>
<hpi:hatBelegungspunkte rdf:datatype="&xsd;nonNegativeInteger">6</hpi:hatÜbung>
<hpi:hatBesuchendeStudenten rdf:datatype="&xsd;nonNegativeInteger">32</hpi:hatBesuchendeStudenten>
<hpi:Uni rdf:datatype="&xsd;string">UniPotsdam</hpi:Uni>
<hpi:Dozent rdf:datatype="&xsd;string">DrHaraldSack</hpi:Dozent>
</hpi:VorlesungMitÜbung>
2.
a)
Human ⊑ ∃ hasMother.Human
<owl:Class rdf:about="Human">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="hasMother"/>
<owl:someValuesFrom rdf:resource="Human"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
∃ hasMother.(∃ hasMother.Human) ⊑ Grandchild
<owl:Class rdf:about="Grandchild"/>
<owl:Class>
<rdfs:subClassOf="Grandchild"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="hasMother">
<owl:someValuesFrom>
<owl:Restriction>
<owl:onProperty rdf:resource="hasMother">
<owl:someValuesFrom rdf:resource="Human"/>
</owl:Restriction>
</owl:someValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Human(Thorsten)
<Human rdf:about="Thorsten"/>
b)
<owl:Class rdf:about="PizzaBelag">
<owl:Class rdf:about="Gemüse">
<rdfs:subClassOf rdf:resource="PizzaBelag"/>
</owl:Class>
Gemüse ⊑ PizzaBelag
<owl:Class rdf:about="PizzaBelag">
<owl:disjointWith rdf:resource="Pizza"/>
</owl:Class>
PizzaBelag ⊓ Pizza ≡ ⊥
<Gemüse rdf:about="Zucchini"/>
Gemüse(Zucchini)
<owl:Class rdf:about="Pizza"/>
<owl:Class rdf:about="PizzaBelag"/>
<owl:ObjectProperty rdf:about="hatBelag">
<rdf:domain rdf:resource="Pizza"/>
<rdf:range rdf:resource="PizzaBelag"/>
</owl:ObjectProperty>
∃ hatBelag.T ⊑ Pizza
T ⊑ ∀ hatBelag.PizzaBelag
<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>
Pizza ⊑ ≥2 hatBelag
<owl:Class rdf:about="Pizza"/>
<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>
PizzaMargarita ⊑ Pizza
PizzaMargarita ⊑ ∃ hatBelag.Tomate
<owl:Class rdf:about="PizzaOhneFleisch"/>
<owl:Class rdf:about="PizzaOhneFisch"/>
<owl:Class rdf:about="VegetarischePizza">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="PizzaOhneFleisch"/>
<owl:Class rdf:about="PizzaOhneFisch"/>
</owl:intersectionOf>
</owl:Class>
VegetarischePizza ≡ PizzaOhneFleisch ⊓ PizzaOhneFisch
<owl:Class rdf:about="PizzaBelag"/>
<owl:Class rdf:about="PizzaMargarita">
<rdfs:subClassOf rdf:resource="Pizza"/>
</owl:Class>
<owl:Class rdf:about="Fleischlos">
<rdfs:subClassOf rdf:resource="PizzaBelag"/>
</owl:Class>
<owl:Class rdf:about="Fleisch">
<rdfs:subClassOf rdf:resource="PizzaBelag"/>
</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>
PizzaMargarita ⊑ Pizza
Fleischlos ⊑ PizzaBelag
Fleisch ⊑ PizzaBelag
Fleischlos ⊓ Fleisch ≡ ⊥
∃ hatBelag.T ⊑ PizzaMargarita
T ⊑ ∀ hatBelag.Fleischlos
3.
a) Zeigen Sie mit Hilfe des Tableaux Verfahrens, dass die folgenden Wissensbasis erfüllbar ist:
Student ⊑ ∃ besucht.Vorlesung
Vorlesung ⊑ ∃ besuchtVon.(Student ⊓ Fleissig)
Student(einStudent)
¬Fleissig(einStudent)
in Negationsnormalform umwandeln:
{¬Student ⊔ ∃ besucht.Vorlesung, ¬Vorlesung ⊔ ∃ besuchtVon.(Student ⊓ Fleissig), Student(einStudent), ¬Fleissig(einStudent)}
Tableaux:
(1) (Student(einStudent))
(2) (¬Fleissig(einStudent))
(3) (¬Student ⊔ ∃ besucht.Vorlesung) (einStudent)
(4 | β aus 3) (¬Student(einStudent)) (5 | β aus 3) ((∃ besucht.Vorlesung) (einStudent))
(6 | δ aus 5) (besucht(einStudent, VorlesungX))
...
b) Zeigen Sie mithilfe des Tableaux Verfahrens, dass die folgende Wissensbasis unerfüllbar ist:
Vogel ⊑ Fliegt
Pinguin ⊑ Vogel
Pinguin ⊓ Fliegt ⊑ ⊥
Pinguin(tweety)
in Negationsnormalform umwandeln:
{¬Vogel ⊔ Fliegt, ¬Pinguin ⊔ Vogel, ¬Pinguin ⊔ ¬Fliegt ⊔ ⊥, Pinguin(tweety)}
...
(c) Zeigen Sie mithilfe des Tableaux Verfahrens, dass ( ∃ R.E)(a) eine logische Konsequenz der Wissensbasis K = {C(a),C ⊑ ∃ R.D, D ⊑ E ⊔ F, F ⊑ E} ist.