SPARQL (5. Übung SWebT1 WS07/08)

Aus Semantic-Web-Grundlagen

Version vom 11:15, 12. Jan. 2009 bei Pascal Hitzler (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Übung
SPARQL
Dozent Sebastian Rudolph
Datum Jan 21 2008
von 11:30
bis 13:00
Ort Gebäude 11.40 Raum 231
Veranstaltungsreihe SWebT1 WS07/08
Nummer 5

Diese Übung umfasst Stoff aus den vorangegangenen beiden Vorlesungen zu SPARQL-Syntax und SPARQL-Semantik.

Download: Übungsblatt (PDF)


Inhaltsverzeichnis

Lösungen

Aufgabe 5.1

Anfrage 1

PREFIX ex: <http<nowiki>://</nowiki>example.org/>
 SELECT ?objekt
 WHERE
  { { ex:Sonne    ex:satellit  ?objekt    . } UNION
    { ex:Sonne    ex:satellit  ?satellit  .
      ?satellit   ex:satellit  ?objekt    . } 
  }

Anfrage 2

PREFIX  ex:  <http<nowiki>://</nowiki>example.org/>
 SELECT  ?objekt  ?zentrum
 WHERE
  {         { ?objekt    ex:radius     ?radius }
   OPTIONAL { ?zentrum   ex:satellit   ?objekt }
   FILTER ( 4 / 3 * 3.1416 * ?radius * ?radius * ?radius > 20000000000 )
  }

Anfrage 3

PREFIX  ex:  <http<nowiki>://</nowiki>example.org/>
 SELECT  ?objekt  
 WHERE
  {  ?objekt   ex:satellit  ?satellit .
     ?satellit ex:name      ?name     .
     ?zentrum  ex:satellit  ?objekt   .
     ?zentrum  ex:radius    ?radius   .
   FILTER ( langMATCHES( LANG(?name), "en") ) 
   FILTER ( 2 * ?radius > 3000 )
  }

Anfrage 4

PREFIX  ex:  <http<nowiki>://</nowiki>example.org/>
 SELECT DISTINCT ?objekt  
 WHERE
  { ?objekt      ex:satellit  ?satellit1 .
    ?objekt      ex:satellit  ?satellit2 .
    FILTER ( !sameTERM(?satellit1,?satellit2) ) 
  }

Aufgabe 5.2

Anfrage 1

Union(BGP(<http<nowiki>://</nowiki>example.org/Sonne> <http<nowiki>://</nowiki>example.org/satellit> ?objekt.),
               Join(BGP(<http<nowiki>://</nowiki>example.org/Sonne> <http<nowiki>://</nowiki>example.org/satellit> ?satellit.),
                          BGP(?satellit <http<nowiki>://</nowiki>example.org/satellit> ?objekt.)
                        )
              )

Anfrage 2

Filter((3/4 * 3.1416 * ?radius * ?radius * ?radius > 20000000000),
 LeftJoin(
           BGP(?objekt <http<nowiki>://</nowiki>example.org/radius> ?radius.),
           BGP(?zentrum <http<nowiki>://</nowiki>example.org/satellit> ?objekt.),
           true
         )
       )

Anfrage 3

Filter(((langMATCHES( LANG(?name), "en")) && (2 * ?radius > 3000)),
    Join(
        Join(
             Join(
                  BGP(?objekt   <http<nowiki>://</nowiki>example.org/satellit> ?satellit.),
                  BGP(?satellit <http<nowiki>://</nowiki>example.org/name>     ?name. )
                 ),  
             BGP(?zentrum <http<nowiki>://</nowiki>example.org/satellit> ?objekt.)
            ), 
        BGP(?zentrum <http<nowiki>://</nowiki>example.org/radius ?radius>)
        )
       )

Anfrage 4

Filter((!sameTERM(?satellit1,?satellit2)),
         Join(
              BGP(?objekt <http<nowiki>://</nowiki>example.org/satellit> ?satellit1.),
              BGP(?objekt <http<nowiki>://</nowiki>example.org/satellit> ?satellit2.),
             ) 
        )

Aufgabe 5.4

Genaugenommen ist die Aufgabe so mit der ursprünglichen Wissensbasis nicht lösbar, da sich dort nicht feststellen lässt, welche Knoten des entsprechenden RDF-Graphen Himmelskörper repräsentieren. Geht man davon aus, dass jeder Himmelskörper mit einem entsprechenden Typ versehen wird, also Tripel der Form

ex:Merkur  rdf:type  ex:Himmelskörper .

in der Wissensbasis enthalten sind, so lautet die Lösung:

PREFIX  ex:  <http<nowiki>://</nowiki>example.org/> 
 SELECT ?objekt 
 WHERE
   {         { ?objekt  rdf:type      ex:Himmelskörper }
    OPTIONAL { ?objekt  ex:satellit   ?satellit        }
    FILTER ( !BOUND(?satellit) )
   }
Fakten zu SPARQL (5. Übung SWebT1 WS07/08)RDF-Feed
Datum 21. Januar 2008  +
Dozent Sebastian Rudolph  +
Endzeit 21. Januar 2008 13:00  +
Nummer 5  +
Ort Gebäude 11.40 Raum 231  +
Serie SWebT1 WS07/08  +
Startzeit 21. Januar 2008 11:30  +
Titel SPARQL  +
Unterlagen Uebung5 sparql.pdf  +
Persönliche Werkzeuge