Vorlesung Semantic Web Technologien - Sommersemester 2011 - Steffen Schlönvoigt

Übungsblatt 4


Übung 1 – DBpedia

Das DBpedia Projekt (http://www.dbpedia.org) hat sich zum Ziel gesetzt, die strukturierten Inhalte der Wikipedia zu extrahieren und im RDF-Format für das Semantic Web bereitzustellen. Durch die Fülle an Informationen wurde die DBpedia schnell ein zentraler Bestandteil der Linked-Open-Data Initiative (http://linkeddata.org) deren Ziel es ist, ein Netz verknüpfter und offener (d.h. Frei zugänglicher Daten) im Internet zu etablieren.

        

Abbildung         1: Quelle Wikipedia - http://de.wikipedia.org/wiki/Linked_Open_Data         

Die DBpedia stellt eine ganze Reihe von Schnittstellen bereit, mit denen ihre Inhalte abgefragt werden können (siehe http://wiki.dbpedia.org/OnlineAccess). Da wir uns aber mit SPARQL beschäftigen wollen, sollten Sie sich zunächst auf den SPARQL Endpunkt der DBpedia unter http://dbpedia.org/sparql konzentrieren. Diese Seite bietet Ihnen einen vollständigen SPARQL Endpunkt den Sie etwa auch in Ihren eigenen Programmen mit dem SPARQL Protokoll ansprechen können. Zum Testen eigener Anfragen ist das UI des SPARQL-Endpunkts allerdings etwas unbequem.

Sehen Sie sich deswegen auch die Alternativen unter           

an. Ich empfehle ihnen für die Aufgaben die SNORQL Schnittstelle.

Machen Sie sich für die Übung zunächst mit den Strukturen und Inhalten der DBpedia vertraut. Sehen Sie sich zunächst ein paar Ressourcen an (unter http://wiki.dbpedia.org/OnlineAccess sind einige Beispiele verlinkt). Prüfen Sie welche Properties verwendet werden, welche Klassen, unter welchen URLs man die Inhalte in der DBpedia findet...

Versuchen Sie anschließend folgende Aufgabenstellungen in SPARQL-Anfragen zu verfassen und verwenden Sie eine der Dbpedia-Schnittstellen um die Anfragen zu testen.

Übung 2 – SPARQL – Definition von Anfragen

Gegeben seien folgende Daten:

@prefix ex: <http://example.org/> .

@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

ex:Sonne ex:radius "1.392e6"^^xsd:double ;

         ex:satellit ex:Merkur,
                    ex:Venus,
                    ex:Erde,
                    ex:Mars .

ex:Merkur ex:radius "2439.7"^^xsd:double .

ex:Venus ex:radius "6051.9"^^xsd:double .

ex:Erde ex:radius "6372.8"^^xsd:double ;

        ex:satellit ex:Mond .

ex:Mars ex:radius "3402.5"^^xsd:double ;

        ex:satellit ex:Phobos,
                   ex:Deimos .

ex:Mond ex:name "Mond"@de,
               "Moon"@en ;

        ex:radius "1737.1"^^xsd:double .

ex:Phobos ex:name "Phobos" .
ex:Deimos ex:name "Deimos" .

Definieren Sie SPARQL-Anfragen, welche folgende Ergebnisse in tablellarischer Form liefern:        

  1. Objekte, die um die Sonne oder um einen Satelliten der Sonne kreisen
  2. Objekte mit einem Volumen von über 2*1010 (km3) (Objekte mit Radius können mit der Formel V = 4/3*pi*r3 berechnet werden) und falls vorhanden, mit dem Objekt dessen         Satellit sie sind.
  3. Objekte mit einem Satelliten, für den ein Name in englischer Sprache angegeben worden ist, die außerdem Satellit eines Objekts von über 3000 (km) Durchmesser sind
  4. Objekte mit zwei oder mehr Satelliten (nehmen Sie an, dass unterschiedliche URIs hier unterschiedliche Objekte bezeichnen)

Zur Überprüfung Ihrer Ergebnisse können Sie zum Beispiel das auf http://www.schloenvoigt.de bereitgestellte Tool verwenden. Direktlink http://www.schloenvoigt.de/wp-content/uploads/2010/01/SPARQLTestTool.jar

Übung 3 – SPARQL – Anfrage auf nicht vorhandene Informationen

Durch Kombination von Filtern mit optionalen Graph-Mustern kann man in SPARQL auch nach Elementen suchen, für die eine bestimmte Information nicht angegeben ist. Formulieren Sie eine Anfrage nach allen Himmelskörpern, die keinen Satelliten haben. Gehen Sie dabei davon aus, dass die o.a. Wissensbasis durch Tripel ergänzt wurde, die sämtlichen Himmelskörpern via rdf:type den Typ Himmelskörper zuweisen.