+ All Categories
Home > Education > Sitzung 8

Sitzung 8

Date post: 18-Dec-2014
Category:
Upload: scuy
View: 319 times
Download: 2 times
Share this document with a friend
Description:
 
19
Semantic Technologies Übung, Wintersemester 2011/12 30. November 2011 - OWL & Protégé
Transcript
Page 1: Sitzung 8

Semantic TechnologiesÜbung, Wintersemester 2011/12

30. November 2011 - OWL & Protégé

Page 2: Sitzung 8

Aufgabe 1

• Gegeben ist folgende Ontologie für die Verwaltung von Musik:

‣ http://www.hki.uni-koeln.de/sites/all/files/courses/5899/11-11-23_music-ontology_simple.owl

• Erweitern Sie diese Ontologie mit den Konstrukten aus RDFS+ so, dass dadurch möglichst viele Schlüsse automatisch gezogen werden können.

Page 3: Sitzung 8

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE rdf:RDF [ <!ENTITY m "http://example.org/music-ontology#"> <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY rdfs "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]><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#"> <owl:Class rdf:about="&m;Artist"/> <owl:Class rdf:about="&m;Band"/> <owl:Class rdf:about="&m;Soloartist"/> <rdf:Property rdf:about="&m;name"> <rdfs:subClassOf rdf:resource="&rdfs;label"/> </rdf:Property> <rdf:Property rdf:about="&m;collaboratedWith"/> <rdf:Property rdf:about="&m;website"/> <rdf:Property rdf:about="&m;released"> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Release"/> </rdf:Property> <rdf:Property rdf:about="&m;byArtist"> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&m;Artist"/> </rdf:Property> <owl:Class rdf:about="&m;Release"/> <owl:Class rdf:about="&m;LP"/> <owl:Class rdf:about="&m;CD"/>

<owl:DatatypeProperty rdf:about="&m;releaseDate"/> <owl:DatatypeProperty rdf:about="&m;title"/> </rdf:RDF>

Page 4: Sitzung 8

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE rdf:RDF [ <!ENTITY m "http://example.org/music-ontology#"> <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY rdfs "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"> <!ENTITY owl "http://www.w3.org/2002/07/owl#">]><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#"> <owl:Class rdf:about="&m;Artist"/> <owl:Class rdf:about="&m;Band"> <rdfs:subClassOf rdf:resource="&m;Artist"/> </owl:Class> <owl:Class rdf:about="&m;Soloartist"> <rdfs:subClassOf rdf:resource="&m;Artist"/> </owl:Class> <rdf:Property rdf:about="&m;name"> <rdfs:subClassOf rdf:resource="&rdfs;label"/> </owl:DatatypeProperty> <rdf:Property rdf:about="&m;collaboratedWith"/> <rdf:Property rdf:about="&m;website"/> <rdf:Property rdf:about="&m;released"> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Release"/> </rdf:Property> <rdf:Property rdf:about="&m;byArtist"> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&m;Artist"/> </rdf:Property>

<owl:Class rdf:about="&m;Release"/>

<owl:Class rdf:about="&m;LP"> <rdfs:subClassOf rdf:resource="&m;Release"/> </owl:Class> <owl:Class rdf:about="&m;CD"> <rdfs:subClassOf rdf:resource="&m;Release"/> </owl:Class> <owl:DatatypeProperty rdf:about="&m;releaseDate"/> <owl:DatatypeProperty rdf:about="&m;title"/> </rdf:RDF>

Page 5: Sitzung 8

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE rdf:RDF [ <!ENTITY m "http://example.org/music-ontology#"> <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY rdfs "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"> <!ENTITY owl "http://www.w3.org/2002/07/owl#">]><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#"> <owl:Class rdf:about="&m;Artist"/> <owl:Class rdf:about="&m;Band"> <rdfs:subClassOf rdf:resource="&m;Artist"/> </owl:Class> <owl:Class rdf:about="&m;Soloartist"> <rdfs:subClassOf rdf:resource="&m;Artist"/> </owl:Class> <rdf:Property rdf:about="&m;name"> <rdfs:subClassOf rdf:resource="&rdfs;label"/> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&xsd;string"/> </rdf:Property> <rdf:Property rdf:about="&m;collaboratedWith"> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Artist"/> </rdf:Property> <rdf:Property rdf:about="&m;website"> <rdfs:domain rdf:resource="&m;Artist"/> </rdf:Property>

<rdf:Property rdf:about="&m;released"> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Release"/> </rdf:Property>

<rdf:Property rdf:about="&m;byArtist"> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&m;Artist"/> </rdf:Property> <owl:Class rdf:about="&m;Release"/> <owl:Class rdf:about="&m;LP"> <rdfs:subClassOf rdf:resource="&m;Release"/> </owl:Class> <owl:Class rdf:about="&m;CD"> <rdfs:subClassOf rdf:resource="&m;Release"/> </owl:Class> <rdf:Property rdf:about="&m;releaseDate"> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&xsd;date"/> </rdf:Property> <rdf:Property rdf:about="&m;title"> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&xsd;string"/> </rdf:Property> </rdf:RDF>

Page 6: Sitzung 8

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE rdf:RDF [ <!ENTITY m "http://example.org/music-ontology#"> <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY rdfs "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"> <!ENTITY owl "http://www.w3.org/2002/07/owl#">]><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#"> <owl:Class rdf:about="&m;Artist"/> <owl:Class rdf:about="&m;Band"> <rdfs:subClassOf rdf:resource="&m;Artist"/> </owl:Class> <owl:Class rdf:about="&m;Soloartist"> <rdfs:subClassOf rdf:resource="&m;Artist"/> </owl:Class> <owl:DatatypeProperty rdf:about="&m;name"> <rdfs:subClassOf rdf:resource="&rdfs;label"/> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> <owl:ObjectProperty rdf:about="&m;collaboratedWith"> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Artist"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:about="&m;website"> <rdfs:domain rdf:resource="&m;Artist"/> </owl:ObjectProperty>

<owl:ObjectProperty rdf:about="&m;released"> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Release"/> </owl:ObjectProperty>

<owl:ObjectProperty rdf:about="&m;byArtist"> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&m;Artist"/> </owl:ObjectProperty> <owl:Class rdf:about="&m;Release"/> <owl:Class rdf:about="&m;LP"> <rdfs:subClassOf rdf:resource="&m;Release"/> </owl:Class> <owl:Class rdf:about="&m;CD"> <rdfs:subClassOf rdf:resource="&m;Release"/> </owl:Class> <owl:DatatypeProperty rdf:about="&m;releaseDate"> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&xsd;date"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:about="&m;title"> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> </rdf:RDF>

Page 7: Sitzung 8

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE rdf:RDF [ <!ENTITY m "http://example.org/music-ontology#"> <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY rdfs "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"> <!ENTITY owl "http://www.w3.org/2002/07/owl#">]><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#"> <owl:Class rdf:about="&m;Artist"/> <owl:Class rdf:about="&m;Band"> <rdfs:subClassOf rdf:resource="&m;Artist"/> </owl:Class> <owl:Class rdf:about="&m;Soloartist"> <rdfs:subClassOf rdf:resource="&m;Artist"/> </owl:Class> <owl:DatatypeProperty rdf:about="&m;name"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <rdfs:subClassOf rdf:resource="&rdfs;label"/> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> <owl:ObjectProperty rdf:about="&m;collaboratedWith"> <rdf:type rdf:resource="&owl;SymmetricProperty"/> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Artist"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:about="&m;website"> <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/> <rdfs:domain rdf:resource="&m;Artist"/> </owl:ObjectProperty>

<owl:ObjectProperty rdf:about="&m;released"> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Release"/> </owl:ObjectProperty>

<owl:ObjectProperty rdf:about="&m;byArtist"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&m;Artist"/> <owl:inverseOf rdf:resource="&m;released"/> </owl:ObjectProperty> <owl:Class rdf:about="&m;Release"/> <owl:Class rdf:about="&m;LP"> <rdfs:subClassOf rdf:resource="&m;Release"/> </owl:Class> <owl:Class rdf:about="&m;CD"> <rdfs:subClassOf rdf:resource="&m;Release"/> </owl:Class> <owl:DatatypeProperty rdf:about="&m;releaseDate"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&xsd;date"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:about="&m;title"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> </rdf:RDF>

Page 8: Sitzung 8

Aufgabe 2

• Erstellen Sie mit Hilfe der Klassen und Properties aus RDFS+ ein Mapping der Ontologie aus Aufgabe 1 auf FOAF.

Page 9: Sitzung 8

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE rdf:RDF [ <!ENTITY m "http://example.org/music-ontology#"> <!ENTITY rdfs "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"> <!ENTITY owl "http://www.w3.org/2002/07/owl#"> <!ENTITY foaf "http://xmlns.com/foaf/0.1/#">]><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:foaf="http://xmlns.com/foaf/0.1/#" > <owl:Class rdf:about="&m;Artist"> <rdfs:subClassOf rdf:resource="&foaf;Agent"/> </owl:Class> <owl:Class rdf:about="&m;Band"> <rdfs:subClassOf rdf:resource="&m;Artist"/> <rdfs:subClassOf rdf:resource="&foaf;Group"/> </owl:Class> <owl:Class rdf:about="&m;Soloartist"> <rdfs:subClassOf rdf:resource="&m;Artist"/> <rdfs:subClassOf rdf:resource="&foaf;Person"/> </owl:Class> <owl:DatatypeProperty rdf:about="&m;name"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <rdf:subPropertyOf rdf:resource="&foaf;name"/> <rdfs:subClassOf rdf:resource="&rdfs;label"/> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> <owl:ObjectProperty rdf:about="&m;collaboratedWith"> <rdf:type rdf:resource="&owl;SymmetricProperty"/> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Artist"/> </owl:ObjectProperty>

<owl:ObjectProperty rdf:about="&m;website"> <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/> <owl:equivalentProperty rdf:resource="&foaf;homepage"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:about="&m;released"> <rdfs:subPropertyOf rdf:resource="&foaf;made"/> <rdfs:subPropertyOf rdf:resource="&foaf;pastProject"/> <rdfs:domain rdf:resource="&m;Artist"/> <rdfs:range rdf:resource="&m;Release"/> </owl:ObjectProperty>

<owl:ObjectProperty rdf:about="&m;byArtist"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <rdfs:subPropertyOf rdf:resource="&foaf;maker"/> <rdfs:domain rdf:resource="&m;Release"/> <rdfs:range rdf:resource="&m;Artist"/> <owl:inverseOf rdf:resource="&m;released"/> </owl:ObjectProperty> <owl:Class rdf:about="&m;Release"> <rdfs:subClassOf rdf:resource="&foaf;Project"/> </owl:Class> <!-- ... --> </rdf:RDF>

Page 10: Sitzung 8

Noch etwas OWL

Page 11: Sitzung 8

Disjunkte Klassen

<owl:Class rdf:about="&klips;Hauptseminar"> <owl:disjointWith rdf:resource="&klips;Proseminar"/></owl:Class>

<owl:AllDisjointClasses> <owl:members rdf:parseType="Collection"> <owl:Class rdf:resource="&klips;Vorlesung"/> <owl:Class rdf:resource="&klips;Hauptseminar"/> <owl:Class rdf:resource="&klips;Proseminar"/> <owl:Class rdf:resource="&klips;Übung"/> </owl:members></owl:AllDisjointClasses>

oder

Page 12: Sitzung 8

Beschränkungen

• Beispiel:

• „Hauptseminare werden nur von Professoren gehalten

•owl:Restriction

• Unterklasse von owl:Class

• Mitglieder der Klasse erfüllen bestimmte Bedingungen

• owl:someValuesFrom, owl:allValuesFrom, owl:hasValue

Page 13: Sitzung 8

Beschränkungen

<owl:Restriction> <owl:onProperty rdf:resource="&klips;wirdGehaltenVon"/> <owl:allValuesFrom rdf:resource="&klips;Professor"/></owl:Restriction>

= Die Klasse aller Ressourcen, die nur von Professoren gehalten werden.

➡ Achtung: Auch erfüllt, wenn niemand das Seminar hält!

<owl:Restriction> <owl:onProperty rdf:resource="&klips;wirdGehaltenVon"/> <owl:someValuesFrom rdf:resource="&klips;Professor"/></owl:Restriction>

= Die Klasse aller Ressourcen, die von mindestens einem Professor gehalten werden.

Page 14: Sitzung 8

Beschränkungen<owl:Class rdf:about="&klips;Hauptseminar"> <rdf:subClassOf rdf:resource="&klips;Seminar"/> <rdf:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="&klips;wirdGehaltenVon"/> <owl:someValuesFrom rdf:resource="&klips;Professor"/> </owl:Restriction> </rdf:subClassOf></owl:Class>

• Hauptseminare sind eine spezielle Art der Seminare, die von Professoren gehalten werden.

• Hauptseminare müssen von Professoren gehalten werden.

Page 15: Sitzung 8

Beschränkungen<owl:Class rdf:about="&klips;Hauptseminar"> <rdf:subClassOf rdf:resource="&klips;Seminar"/> <owl:equivalentClass> <owl:Restriction> <owl:onProperty rdf:resource="&klips;wirdGehaltenVon"/> <owl:someValuesFrom rdf:resource="&klips;Professor"/> </owl:Restriction> </owl:equivalentClass></owl:Class>

• Hauptseminare sind genau die Seminare, die von Professoren gehalten werden.

• Hauptseminare müssen von Professoren gehalten werden.

• Wenn ein Seminar von einem Professor gehalten wird, ist es ein Hauptseminar.

Page 16: Sitzung 8

ProtégéEin Ontologie-Editor

Page 17: Sitzung 8

Protégé

• Open Source

• Cross-Plattform (Windows, Linux, Mac)

• http://protege.stanford.edu

Page 18: Sitzung 8

Aufgabe

Page 19: Sitzung 8

Aufgabe

• Bearbeiten Sie das Protégé OWL Tutorial:

‣ http://owl.cs.manchester.ac.uk/tutorials/protegeowltutorial/

• Schauen Sie sich die entstehende OWL-Datei beim Bearbeiten parallel in einem Text-Editor an.

• Folgen Sie den einzelnen Exercises soweit wie sie können und senden Sie mir die entstandene Pizza-Ontologie.


Recommended