Język zapytań SPARQL

Ćwiczenie

Redland Rasqal http://librdf.org/query/
Domyślny graf RDF: http://www.cs.put.poznan.pl/alawrynowicz/wulkanySPARQL.owl
 

Zapytanie 1


Sformułuj zapytanie zwracające nazwy wszystkich stratowulkanów.  

Zapytanie 2

Sformułuj zapytanie zwracające nazwy wszystkich stratowulkanów wraz z ich lokalizacją.
  
PREFIX wul:<http://www.semanticweb.org/ontologies/2010/wulkany.owl#>
SELECT ?x ?y
WHERE
{  
?x a wul:Stratowulkan . 
?x wul:maLokalizacje ?y
}
 

Zapytanie 3

Sformułuj zapytanie zwracające nazwy wszystkich stratowulkanów wraz z ich wysokością, dla takich wulkanów, które mają wysokość większą niż 1000m.n.p.m.
PREFIX wul:<http://www.semanticweb.org/ontologies/2010/wulkany.owl#>
SELECT ?x ?y
WHERE
{   ?x a wul:Stratowulkan .
?x wul:maWysokosc ?y . FILTER ( ?y > 1000 )
}

Zapytanie 4

Sformułuj zapytanie zwracające nazwy wszystkich stratowulkanów wraz z datą ich ostatniej erupcji (nazwy wulkanów, dla których ta data jest nieznana powinny być też wyświetlone).

PREFIX wul:<http://www.semanticweb.org/ontologies/2010/wulkany.owl#>
SELECT ?x ?y
WHERE
{   ?x a wul:
Stratowulkan .
OPTIONAL {?x wul:
ostatniaErupcja ?y }
}

Zapytanie 5

Sformułuj zapytanie zwracające nazwy wszystkich stratowulkanów, które mają lokalizację w Japonii lub też w Islandii.
 
PREFIX wul:<http://www.semanticweb.org/ontologies/2010/wulkany.owl#>
SELECT ?x 
WHERE { {?x a wul:Stratowulkan .
?x wul:maLokalizacje wul:Japonia} UNION
{?x a wul:Stratowulkan .
?x  wul:maLokalizacje wul:Islandia} . }

Zapytanie 6

Sformułuj zapytanie zwracające nazwy wszystkich państw, w których znajdują się stratowulkany (bez powtórzeń).

PREFIX wul:<http://www.semanticweb.org/ontologies/2010/wulkany.owl#>
SELECT DISTINCT  ?y 
WHERE { ?x a wul:Stratowulkan .
?x wul:maLokalizacje ?y }

Zapytanie 7

Sformułuj zapytanie o to czy istnieje stratowulkan, który ma lokalizację w Japonii (odpowiedź: true/false).

PREFIX wul:<http://www.semanticweb.org/ontologies/2010/wulkany.owl#>
ASK WHERE {  
?x a wul:Stratowulkan .
 ?x wul:maLokalizacje wul:Japonia . }

Zapytanie 8

Sformułuj zapytanie, którego celem jest opisanie stratowulkanu, który ma lokaliację w Islandii.

PREFIX wul:<http://www.semanticweb.org/ontologies/2010/wulkany.owl#>
DESCRIBE ?x WHERE {  
?x a wul:Stratowulkan .
 ?x wul:maLokalizacje wul:Islandia }

Zapytanie 9

Sformułuj zapytanie, którego celem jest stworzenie grafu RDF, który opisuje trójki <Kraj, maLokalizacje, X>.

PREFIX wul:<http://www.semanticweb.org/ontologies/2010/wulkany.owl#>
CONSTRUCT   { ?x wul:maLokalizacje ?y . }
WHERE {
?x a wul:Kraj .
 ?x wul:maLokalizacje ?y . }

Zapytanie 10

Sformułuj zapytanie, które zwraca nazwy krajów, wraz z liczbą występujących w danym kraju stratowulkanów, dla krajów, dla których liczba stratowulkanów jest większa od 1.

PREFIX wul:<http://www.semanticweb.org/ontologies/2010/wulkany.owl#>
SELECT COUNT(?x)  ?y  
WHERE {
?x a wul:Stratowulkan .
 ?x wul:maLokalizacje ?y . }
GROUP BY ?y
HAVING (COUNT(?x)>1)


Zadanie

Wykorzystując widok zapytań Protege (Window->Views->Query Views->SPARQL Query) sformułuj następujące zapytania do ontologii i bazy wiedzy pizza.owl:
  1. wszystkie kraje (instancje Country)
  2. wszystkie pizze (podklasy Pizza)
  3. wszystkie pizze, których kraj pochodzenia ( hasCountryOfOrigin) to Włochy (Italy)
  4. wszystkie pizze, które mają tylko wegetariańskie nadzienie (VegetarianTopping)
  5. wszystkie kraje, których etykieta (rdfs:label) w języku portugalskim zaczyna się na literę 'A'
  6. wszystkie nazwane pizze (NamedPizza) wraz z komentarzem (rdfs:comment), tam gdzie on występuje
  7. nadzienia (Topping) wraz z liczbą ich występowania w nazwanych pizzach
  8. wszystkie pizze, które mają nadzienie mięsne bądź rybne
  9. wszystkie pizze, które nie mają nadzienia mięsnego
Wykorzystując końcówkę SPARQL DBpedii sformułuj zapytania o:
  1. producentów ketchupu
  2. producentów ketchupu i ich lokalizację
  3. inne produkty jakie produkują producenci ketchupu; pogrupuj wyniki po produktach