Język zapytań SPARQL. Agnieszka Ławrynowicz. Instytut Informatyki Politechniki Poznańskiej Poznań, 2014

Podobne dokumenty
Język zapytań SPARQL

Język zapytań SPARQL. Agnieszka Ławrynowicz. Instytut Informatyki Politechniki Poznańskiej Poznań, 2018

Internet Semantyczny. Podstawy SPARQL

Język RDF. Mikołaj Morzy Agnieszka Ławrynowicz. Instytut Informatyki Poznań, rok akademicki 2013/2014

Wprowadzenie do języka SQL

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Model semistrukturalny

Relacyjne bazy danych. Podstawy SQL

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Systemy GIS Tworzenie zapytań w bazach danych

Przestrzenne bazy danych Podstawy języka SQL

Integracja systemów transakcyjnych

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Język SQL. Rozdział 2. Proste zapytania

Semantyczne Wiki na przykładzie Semantic MediaWiki

RDF (Resource Description Framework)

Wykład 6. SQL praca z tabelami 3

Semantyczne Wiki! na przykładzie! Semantic MediaWiki!

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

Paweł Rajba

Autor: Joanna Karwowska

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Grupowanie i funkcje agregujące

SQL (ang. Structured Query Language)

Cechy języka XQUERY. o na wejściu dokument lub fragment względnie kolekcja dokumentów lub fragmentów o na wyjściu dokument lub fragment.

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

PODZAPYTANIE (SUBSELECT)

Ontologia, wypożyczalnia wideo stworzona na podstawie relacyjnej bazy danych

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

NOWY PARADYGMAT PUBLIKACJI I WYSZUKIWANIA DANYCH PRZESTRZENNYCH W SIECI WWW

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Technologie Informacyjne

Technologie baz danych

Bazy danych - Materiały do laboratoriów IV

SPARQL, Named Graphs, Network Graphs

T-SQL w Microsoft SQL Server 2014 i SQL Server 2012

Technologie Informacyjne

Oracle11g: Wprowadzenie do SQL

Fazy przetwarzania zapytania zapytanie SQL. Optymalizacja zapytań. Klasyfikacja technik optymalizacji zapytań. Proces optymalizacji zapytań.

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Wykład 5. SQL praca z tabelami 2

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

Zapytania w języku T-SQL w Microsoft SQL Server 2014 i SQL Server 2012 / Itzik Ben-Gan, Dejan Sarka, Adam Machaniec, Kevin Farlee.

Autor: Joanna Karwowska

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Optymalizacja. Plan wykonania polecenia SQL (1) Plan wykonania polecenia SQL (2) Rozdział 19 Wprowadzenie do optymalizacji poleceń SQL

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Grafowe języki zapytań. Anna Kosieradzka

lata , Oś priorytetowa III: Gospodarka, Innowacyjność, Przedsiębiorczość, Działanie III.3 Rozwój B+R w przedsiębiorstwach.

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy danych wykład trzeci. Konrad Zdanowski

P o d s t a w y j ę z y k a S Q L

Microsoft SQL Server Podstawy T-SQL

LAB 3 (część 1 Projektu)

Wprowadzenie do technologii semantycznych

Elementy kognitywistyki III: Modele i architektury poznawcze

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Rozszerzenie funkcjonalności systemów wiki w oparciu o wtyczki i Prolog

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

Relacyjne bazy danych. Podstawy SQL

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Semantic Web. dr inż. Aleksander Smywiński-Pohl. Elektroniczne Przetwarzanie Informacji Konsultacje: czw , pokój 3.211

OLAP i hurtownie danych c.d.

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Zadania z SQLa (MS SQL Server)

Jerzy Nawrocki, Wprowadzenie do informatyki

Autor: Joanna Karwowska

Krzysztof Kurzydło. Semantic Web Sprawozdanie 7

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

SQL Structured Query Language

Indeksowanie w bazach danych

Reprezentacja wiedzy ontologie, logiki deskrypcyjne

Język SQL podstawy zapytań

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne

przygotował: Podstawy języka MDX Tworzenie zbiorów

Tworzenie zapytań do Microsoft SQL Server

Bazy danych. Dr inż. Paweł Kasprowski

DataGuide w półstrukturalnych bazach danych

W y k ł a d SELECT. Polecenie wyświetlające zawartość tabeli. Składnia uproszczona: Temat: Polecenie SELECT. Plan wykładu:

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Wprowadzenie do psql i SQL. Język komend psql. Podstawy instrukcji SELECT

Wykład 05 Bazy danych

Wstęp do Technologii Semantycznych SPARQL

SQL do zaawansowanych analiz danych część 1.

Transkrypt:

Język zapytań SPARQL Agnieszka Ławrynowicz Instytut Informatyki Politechniki Poznańskiej Poznań, 2014

Język zapytań SPARQL Stos języków Sieci Semantycznej

Turtle Turtle$(Terse$RDF$Triple$Language$):$$ $serializacja$rdf$ $reprezentacja$ trójkowa $ trójek $<Subject,$Predicate,$ Object>$ $przyjazna$dla$człowieka$alternatywa$dla$składni$rdf/xml$ "często"wykorzystywana"w"przykładach,"tutorialach," literaturze" $ (c)$mikołaj$morzy,$$agnieszka$ławrynowicz,$instytut$ Informatyki$Politechniki$Poznańskiej$ TSiSS 3

Turtle Turtle$(Terse$RDF$Triple$Language$):$$ $serializacja$rdf$ $reprezentacja$ trójkowa $ trójek $<Subject,$Predicate,$ Object>$ $przyjazna$dla$człowieka$alternatywa$dla$składni$rdf/xml$ "często"wykorzystywana"w"przykładach,"tutorialach," literaturze" $ $ @prefix"osoba:"<h>p://przyklad/osoba/>"." @prefix"foaf:"<h>p://xmlns.com/foaf/0.1/>"." osoba:a"foaf:name""alicja""." osoba:a"foaf:mbox"<mailto:alicja@example.net>"." osoba:b"foaf:name""jan""."

SPARQL to SPARQL$Protocol$And$Rdf$Query$Language$$S$$język$ zapytań$sieci$semantycznej$ $ Wymowa:"jak" sparkle " Język"zapytań"dla"danych"w"formacie"RDF" Protokół"(HTTP,"SOAP)"" " $ (c)$mikołaj$morzy,$$agnieszka$ławrynowicz,$instytut$ Informatyki$Politechniki$Poznańskiej$ TSiSS 5

SPARQL pozwala na Zapytania$do$źródeł$danych$strukturalnych$i$ semistrukturalnych$ Eksplorowanie$danych$przez$zadawanie$zapytań$ dotyczących$nieznanych$związków$ Wykonywanie$złożonych$złączeń$z$różnorodnych! baz$danych$w$pojedynczym$zapytaniu$ Transformację$danych$RDF$z$jednego$słownika$do$ innego$ $

SPARQL główna idea Dopasowywanie$wzorców$ Opisz"podgrafy"tych"grafów"RDF,"do"których"wydawane"jest" zapytanie" Podgrafy,"które"da"się"dopasować"do"Twojego"opisu" konstruują"wynik" Wzorce"grafowe"\""grafy"RDF"zawierające"zmienne" (c)$mikołaj$morzy,$$agnieszka$ławrynowicz,$instytut$ Informatyki$Politechniki$Poznańskiej$ TSiSS 7

SPARQL główna idea (przykład) Graf,$do$którego$wydajemy$zapytanie:$ $ $ $ $ $ rdf:type http://.../eyjafjallajökull http://.../wulkan p:ostatniaerupcja "2010 http://.../wezuwiusz Wyniki: $ $ $ $ $$Wzorzec$zapytania:$ rdf:type?v$ rdf:type h^p://.../eyja`allajökull$?v http://.../wulkan h^p://.../wezuwiusz$

Końcówki SPARQL Końcówka$SPARQL:$$ na$wejściu$przyjmuje$zapytania$ na$wyjściu$zwraca$wyniki$poprzez$http$ $$ Rodzaje$końcówek:$ Ogólne$ $umożliwiają$zadawanie$zapytań$do$dowolnych$ danych$rdf$dostępnych$przez$sieć$www$$ Dedykowane$ $związane$z$konkretnymi$zbiorami$danych$ $

Dostęp do końcówki SPARQL końcówka"sparql:"usługa"sieciowa"typu"rest" wydawanie"zapytań"sparql"do"zdalnej"końcówki"jest" generalnie"wydawaniem"żądania"http"get"do"tej" końcówki"z"parametrem"query (przesyłany"tekst" zapytania)"

Zapytanie SPARQL składa się z Deklaracji$prefiksów$dla$przestrzeni$nazw$do$skracania$URI$$ Definicji$zbioru$danych$do$wskazania,$do$którego$grafu$(grafów)$ RDF$będą$wydawane$zapytania$ Klauzuli$specyfikującej$wynik$do$identyfikacji,$jaką$informację$ zwrócić$z$zapytania$ Wzorca$zapytania$do$specyfikacji$o$co$pyta$zapytanie$wydane$do$ zbioru$danych$$ Modyfikatorów$zapytania$do$specyfikacji$operatorów$np.$ sortowania$wyników$i$innych$sposobów$resaranżacji$wyników$ zapytania$ $

Zapytanie SPARQL składa się z Deklaracja$prefiksów$ Definicja$zbioru$danych$ Specyfikacja$wyniku$ Wzorzec$zapytania$ Modyfikator$zapytania$ PREFIX foo: <http://przyklad.org/w1> FROM SELECT WHERE { } ORDER BY

SPARQL wzorzec trójki Wzorzec$trójki$=$Trójka$RDF$z$możliwością$$występowania$w$niej$ (nazwanych)$zmiennych$ $ @prefix"osoba:"<h>p://przyklad/osoba/>"." @prefix"foaf:"<h>p://xmlns.com/foaf/0.1/>"." osoba:a"foaf:name" Alicja""." osoba:a"foaf:mbox"<mailto:alicja@example.net>"." osoba:b"foaf:name" Jan""." "Hello$world"$zapytań$SPARQL" SELECT""?imie" WHERE"" {"?x""foaf:name""?imie"}" ------------- imie ======== Alicja Jan -------------

SPARQL podstawowy wzorzec grafu Podstawowy$wzorzec$grafu$ $zbiór$wzorców$trójek,$$ definiuje$kształt$grafu$ @prefix"osoba:"<h>p://przyklad/osoba/>"." @prefix"foaf:"<h>p://xmlns.com/foaf/0.1/>"." osoba:a"foaf:name" Alicja""." osoba:a"foaf:mbox"<mailto:alicja@example.net>"." osoba:b"foaf:name" Jan""." PREFIX"osoba:"<h>p://przyklad/osoba/>" PREFIX"foaf:"<h>p://xmlns.com/foaf/0.1/>" SELECT"?imie" WHERE" {"?osoba"foaf:mbox"<mailto:alicja@example.net>"."?osoba"foaf:name"?imie"."}" ------------- imie ======== Alicja -------------

Wieloznacznik @prefix"osoba:"<h>p://przyklad/osoba/>"." @prefix"foaf:"<h>p://xmlns.com/foaf/0.1/>"." osoba:a"foaf:name" Alicja""." osoba:a"foaf:mbox"<mailto:alicja@example.net>"." osoba:b"foaf:name" Jan""." PREFIX"osoba:"<h>p://przyklad/osoba/>" PREFIX"foaf:"<h>p://xmlns.com/foaf/0.1/>" SELECT"* WHERE" {"?osoba"foaf:mbox"<mailto:alicja@example.net>"."?osoba"foaf:name"?imie"."}" ------------------------- osoba imie ============== osoba:a Alicja -------------------------

Rozdzielanie trójek w klauzuli WHERE zapis"standardowy" a$:$b$c$.$ d$:$e$f$.$ wspólny"podmiot" a$:$b$c$;$ :$e$f$.$ wspólny"podmiot"i"predykat" a$:$b$c$,$f$.$

Rozdzielanie trójek w klauzuli WHERE - przykład PREFIX"osoba:"<h>p://przyklad/osoba/>" PREFIX"foaf:"<h>p://xmlns.com/foaf/0.1/>" SELECT"* WHERE" {"?osoba"foaf:mbox"<mailto:alicja@example.net>"."?osoba"foaf:name"?imie"."}" PREFIX"osoba:"<h>p://przyklad/osoba/>" PREFIX"foaf:"<h>p://xmlns.com/foaf/0.1/>" SELECT"* WHERE" {"?osoba"foaf:mbox"<mailto:alicja@example.net>"," """""""""""""""""foaf:name"?imie"."}"

Zmienne anonimowe nazwane:"głównie"różnią"się"tym"od"zminennych" nieanonimowych"tym,"że"nie"są"uwzględniane"w" SELECT"*"(jednak"możliwość"odczytania"na"żądanie)" nienazwane$oznaczane"przez"[]"

SPARQL modyfikatory zapytania Procedury$dopasowywania$wzorców$produkują$zbiór$ rozwiązań.$$ Zbiór$rozwiązań$może$być$zmodyfikowany$na$wiele$ sposobów:$ projekcja" ORDER"BY" LIMIT/OFFSET" DISTINCT"

FILTER @prefix"dc:"<h>p://purl.org/dc/elements/1.1/>"." @prefix"magazyn:"<h>p://example.org/magazyn#>"." @prefix"inw:"<h>p://example.org/inwentarz#>"." magazyn:ksiazka1"dc:rtle""sparql"query"language"tutorial""." magazyn:ksiazka1"inw:cena"10"." magazyn:ksiazka1"inw:ilosc"3"." " magazyn:ksiazka2"dc:rtle""sparql"query"language"(2nd"ed)""." magazyn:ksiazka2"inw:cena"20";"inw:ilosc"5"." " magazyn:ksiazka3"dc:rtle""moving"from"sql"to"sparql""." \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" magazyn:ksiazka3"inw:cena"5";"inw:ilosc"0"." "ksiazka" """"""""""""""""" "tytul" " " """" " " ==================================================" magazyn:ksiazka4"dc:rtle""applying"xquery""." "magazyn:ksiazka1" ""SPARQL"Query"Language"Tutorial"" magazyn:ksiazka4"inw:cena"20";"inw:ilosc"8"." PREFIX"dc:"<h>p://purl.org/dc/elements/1.1/>" PREFIX"magazyn:"<h>p://example.org/magazyn#>" PREFIX"inw:"<h>p://example.org/inwentarz#>" SELECT"?ksiazka"?tytul" WHERE"{"?ksiazka"dc:rtle"?tytul"."?ksiazka"inw:cena"?cena"."FILTER"("?cena"<"15")"?ksiazka"inw:ilosc"?ilosc"."FILTER"("?ilosc">"0")"}" (c)$mikołaj$morzy,$$agnieszka$ławrynowicz,$instytut$ Informatyki$Politechniki$Poznańskiej$

FILTER - wbudowane funkcje Logiczne:"!,"&&," " Arytmetyczne:"+,"S,"*,"/" Porównania:"=,"!=,">,"<,"..." Testy"SPARQL:"isURI,"isBlank,"isLiteral,"bound" Akcesory"SPARQL:"str,"lang,"datatype" Inne:"sameTerm,"langMatches,"regex" $

OPTIONAL @prefix"osoba:"<h>p://przyklad/osoba/>"." @prefix"foaf:"<h>p://xmlns.com/foaf/0.1/>"." osoba:a"foaf:name""alicja""." osoba:a"foaf:nick""a\online""." osoba:b"foaf:name""jan""." PREFIX"foaf:"<h>p://xmlns.com/foaf/0.1/>" SELECT"?imie"?nick" {"?x"foaf:name"?imie"." "OPTIONAL"{?x"foaf:nick"?nick"}" }" \\\\\\\\\\\\\\\\\\\\\\\\" "imie"""""" "nick" " ========================" ""Alicja"" ""A\online"" " ""$Jan""""" """""""""""""""""""" " \\\\\\\\\\\\\\\\\\\\\\\\"

UNION @prefix"ksiazka:"<h>p://przyklad/ksiazka/>"." @prefix"dc10:"<h>p://purl.org/dc/elements/1.0/>"." @prefix"dc11:"<h>p://purl.org/dc/elements/1.1/>"." ksiazka:a"dc10:rtle""sparql"query"language"tutorial""." ksiazka:b"dc11:rtle""sparql"query"language"(2nd"ed)""." ksiazka:c"dc10:rtle""sparql""." ksiazka:c"dc11:rtle""sparql""." PREFIX"dc10:"<h>p://purl.org/dc/elements/1.0/>" PREFIX"dc11:"<h>p://purl.org/dc/elements/1.1/>" SELECT"DISTINCT"?tytul" {" {"?ksiazka"dc10:rtle"?tytul"}"union"{"?ksiazka"dc11:rtle"?tytul"}" }" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" "tytul" " =================================" ""SPARQL"Query"Language"Tutorial"" " ""SPARQL"" " ""SPARQL"Query"Language"(2nd"ed)"" " \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Źródła danych \ zapytania"sparql"są"wykonywane"do"zbiorów$danych$rdf," składających"się"z"grafów"rdf" \ jak"dotąd"zapytania"wydawane"do"domyślnego$grafu$ \ zbiory"danych"rdf"składają"się"z"domyślnego"grafu"i"zero"lub" więcej"nazwanych$grafów,"identyfikowanych"przez"uri" \ Nazwane"grafy:"specyfikowane"poprzez"klauzule"FROM$ NAMED,"lub"zaszyte"w"danej"końcówce"SPARQL" \ GRAPH:"pozwala"porcjom"zapytania"dopasować"się"do" nazwanych"grafów"w"zbiorze"rdf,"wszystko"poza"klauzulą" GRAPH" "dopasowanie"do"domyślnego"grafu" $

Klauzula FROM - przykład @prefix"foaf:"<h>p://xmlns.com/foaf/0.1/>"." _:a"foaf:name""alicja""." _:a"foaf:mbox"<mailto:alicja@work.example>"." PREFIX"foaf:"<h>p://xmlns.com/foaf/0.1/>" SELECT"?imie" FROM"<h>p://przyklad.org/foaf/alicjaFoaf>" WHERE"{"?x"foaf:name"?imie"}"

Formaty zapytań i odpowiedzi SPARQL SELECT$$ zwraca$tablicę$wyników$(wszystkie"lub"podzbiór"zmiennych" związanych"podczas"dopasowywania"wzorca"zapytania)" ASK$ zwraca$wartość$logiczną"wskazującą"na"to"czy"wzorzec" zapytania"znajduje"dopasowanie"czy"nie" DESCRIBE$$ zwraca$graf$rdf,"który"opisuje"strukturę"znalezionych"zasobów" (w"sposób"zależny"od"konfiguracji"danego"procesora niespodzianka )"" CONSTRUCT$$ zwraca$graf$rdf"skonstruowany"poprzez"podstawienie" zmiennych"w"zbiorze"szablonów"trójek"(translacja"pomiędzy" różnymi"grafami"rdf)" $

ASK @prefix"foaf:"<h>p://xmlns.com/foaf/0.1/>"."" _:a"foaf:name" Alicja""." "_:a"foaf:homepage"<h>p://work.example.org/alicja/>"." "_:b"foaf:name""$jan""."" _:b"foaf:mbox"<mailto:bob@work.example>"."" Yes PREFIX"foaf:"<h>p://xmlns.com/foaf/0.1/>" "ASK"""""{"?x"""foaf:name"""" Alicja""}"" <?xml"version="1.0"?>" "<sparql"xmlns="h>p://www.w3.org/2005/sparql\results#">" " "<head>" "</head>"" "<results>" " " "<boolean>true</boolean>"" "</results>"" </sparql>""

DESCRIBE PREFIX"ksiazki:"""<h>p://przyklad.org/ksiazka/>" PREFIX"dc:""""""<h>p://purl.org/dc/elements/1.1/>" DESCRIBE"?ksiazka"" WHERE"" ""{"?ksiazka"dc:rtle""harry"po>er"i"więzień"azkabanu""}" <rdf:rdf>" """""""<rdf:descripron"rdf:about="h>p://przyklad.org/ksiazka/ksiazka3">" """""""""""""<dc:creator"rdf:parsetype="resource">" """""""""""""""""""<vcard:n"rdf:parsetype="resource">" """""""""""""""""""""""""<vcard:given>joanna</vcard:given>" """""""""""""""""""""""""<vcard:family>rowling</vcard:family>" """"""""""""""""""</vcard:n>" """""""""""""""""<vcard:fn>j.k."rowling</vcard:fn>" """""""""""""</dc:creator>" """""""""""""<dc:rtle>harry"po>er"i"więzień"azkabanu</dc:rtle>" """""""</rdf:descripron>" </rdf:rdf>"

@prefix"osoba:"<h>p://przyklad/osoba/>"." @prefix"foaf:"<h>p://xmlns.com/foaf/0.1/>"." osoba:a"foaf:name""alicja""." osoba:a"foaf:mbox"<mailto:alicja@example.net>"." osoba:b"foaf:name""$jan""." CONSTRUCT PREFIX"osoba:"<h>p://przyklad/osoba/>" PREFIX"foaf:"<h>p://xmlns.com/foaf/0.1/>" PREFIX"vcard:"<h>p://www.w3.org/2001/vcard\rdf/3.0#>" CONSTRUCT"{"?osoba"vcard:FN"?imie"}" WHERE" {?osoba"foaf:name"?imie"."}" @prefix"osoba:"<h>p://przyklad/osoba/>"." @prefix"vcard:"<h>p://www.w3.org/2001/vcard\rdf/3.0#>" osoba:a"vcard:fn""alicja""." osoba:b"vcard:fn""jan""." " 2008\12\10"

SPARQL 1.0 a SPARQL 1.1 SPARQL"1.0" "styczeń"2008" SPARQL$1.0$język$zapytań$ SPARQL$1.0$protokół$ SPARQL$format$XML$wyników$ SPARQL"1.1" "listopad"2012" Zaktualizowane$wersje$SPARQL$Query$i$SPARQL$Protocol$ SPARQL$1.1$Update$ SPARQL$1.1$jednolity$protokół$HTTP$do$zarządzania$ grafami$rdf$ SPARQL$1.1$opisy$usług$ SPARQL$1.1$wnioskowanie$ SPARQL$1.1$zapytania$sfederowane"

SPARQL 1.1 Wyrażenia$w$liście$SELECT"#"wyniki"zawierające"wartości" wyprowadzone"ze"stałych,"wywołań"funkcji"lub"innych" wyrażeń" Ścieżki$własności" "zapytania"o"dowolnej"długości"ścieżki"w" grafie"poprzez"wyrażenia"regularne" Agregacja" "grupowanie"wyników"i"obliczanie"zagregowanych" wartości"(np."count,"min,"max,"avg,"sum,"...)." Podzapytania$ "zapytania"w"zapytaniu" Zapytania$sfederowane"#"rozdzielanie"pojedynczego"zapytania" do"wielu"końcówek"sparql"i"następnie"łączenie"wyników" Negacja" a)"filtrowanie"wyników"zależne"od"dopasowania" wzorca"grafu"w"kontekście"znalezionych"wyników"b)"usuwanie" wyników"będących"w"relacji"z"innym"wzorcem" Wnioskowanie"(Entailment"Regimes)" "RDFS,"OWL,"reguły"

Wyrażenia w liście SELECT @prefix"foaf:""<h>p://xmlns.com/foaf/0.1/>"." """"""""""" _:a""foaf:givenname""""jan""." _:a""foaf:surname"" Kowalski""." \\\\\\\\\\\\\\\\\\\\\\\\" "imie_nazw" " ========================" " Jan"Kowalski"" " \\\\\\\\\\\\\\\\\\\\\\\\" PREFIX"foaf:"""<h>p://xmlns.com/foaf/0.1/>" SELECT"("fn:concat(?G,"""","?S)"AS"?imie_nazw")" WHERE""{"?P"foaf:givenName"?G";"foaf:surname"?S"}"

Ścieżki własności Dopasuj"jedną"lub"drugą"możliwość:" {$:ksiazka1$dc:ztle$ $rdfs:label$?lancuch$}$ Znajdź"imię"jakiejkolwiek"osoby,"którą""zna"Alicja" {$?x$foaf:mbox$<mailto:alicja@przyklad>$.$?x$foaf:knows/foaf:name$?imie$.$}$ Imiona"ludzi"w"odległości"2" linków ""foaf:knows"" {$?x$foaf:mbox$<mailto:alicja@przyklad>$.$?x$foaf:knows/foaf:knows/ foaf:name$?imie$.$}$ {$?x$foaf:mbox$<mailto:alicja@przyklad>$.$?x$foaf:knows{2}/foaf:name$?imie$.$}$ Dowolna"długość"ścieżki" "imiona"wszystkich"ludzi,"których"uri"można" osiągnąć"startując"z"foaf:knows"alicji:" {$?x$foaf:mbox$<mailto:alicja@przyklad>$.$?x$foaf:knows+/foaf:name$?imie$.$}$$

Agregacja @prefix":"<h>p://ksiazki.przyklad/>"." :org1":afiliuje":aut1,":aut2"." :aut1":piszeksiazke":ksiazka1,":"ksiazka2"." :ksiazka1":cena"9"." :ksiazka2":cena"5"." :aut2":piszeksiazke":ksiazka3"." :ksiazka3":cena"7"." :org2":afiliuje":aut3"." :aut3":piszeksiazke":ksiazka4"." :ksiazka4":cena"7"." PREFIX":"<h>p://ksiazki.przyklad/>" SELECT"(SUM(?lcena)"AS"?total)" WHERE"{" ""?org":afiliuje"?aut"." ""?aut":piszeksiazke"?ksiazka"." ""?ksiazka":cena"?lcena"."}" GROUP"BY"?org" HAVING"(SUM(?lcena)">"10)" \\\\\\\\\\\\\\\\\\\\\\\\" "?total" " ========================" "21" " \\\\\\\\\\\\\\\\\\\\\\\\"

Podzapytania @prefix":"<h>p://people.example/>"." " :alicja":name""alicja",""alicja"foo",""a."foo""." :alicja":knows":jan,":karol"." :jan":name" Jan"," Jan"Bar"," J."Bar""." :karol":name" Karol"," Karol"Baz"," K."Baz""." PREFIX":"<h>p://people.example/>" SELECT"?y"?minImie" WHERE"{" "":alicja":knows"?y"." ""{""""SELECT"?y"(MIN(?imie)"AS"?minImie)" """"WHERE"{" """"""?y":name"?imie"." """"}"GROUP"BY"?y" ""}" }" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" "?y"""""" "?minimie" " ========================" ":jan"" J."Bar """"""" " :karol" " K."Baz """""" " \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"

@prefix"foaf:""<h>p://xmlns.com/foaf/0.1/>"." @prefix":"<h>p://example.org/>"."" """":people15""foaf:name""""""alice""." """":people16""foaf:name""""""bob""." """":people17""foaf:name""""""charles""." """":people18""foaf:name""""""daisy""." Zapytania sfederowane Końcówka$SPARQL:$$h^p://people.example.org/sparql$ Lokalny$plik$FOAF:$$h^p://example.org/myfoaf.rdf$ \\\\\\\\\\\\\\\\\\\\\\\\" <h>p://example.org/myfoaf/i>"<h>p://xmlns.com/foaf/0.1/knows>""<h>p://example.org/people15>"." "?name " ===============" PREFIX"foaf:"""<h>p://xmlns.com/foaf/0.1/>" " Alice " SELECT"?name" \\\\\\\\\\\\\\\\\\\\\\\\" FROM"<h>p://example.org/myfoaf.rdf>" WHERE"{" ""<h>p://example.org/myfoaf/i>"foaf:knows"?person"." ""SERVICE"<h>p://people.example.org/sparql>"{"" """"?person"foaf:name"?name"."}"" }"

Wnioskowanie @prefix"ex:"<h>p://publicarons.example/>"." " ex:book1"rdf:type"ex:publicaron"." ex:book2"rdf:type"ex:arrcle"." ex:arrcle"rdfs:subclassof"ex:publicaron"." ex:publishes"rdfs:range"ex:publicaron"." ex:mitpress"ex:publishes"ex:book3"." @prefix"ex:"<h>p://publicarons.example/>"." " SELECT"?pub"" WHERE"{"" """?pub"rdf:type"ex:publicaron"" }" \\\\\\\\\\\\\\\\" "?pub""""""" " ==========" "ex:book1 " \\\\\\\\\\\\\\\\" RDFSentailment$ \\\\\\\\\\\\\\\\" "?pub""""""" " ==========" "ex:book1 " "ex:book2 " "ex:book3 " \\\\\\\\\\\\\\\\" RDFSSentailment$

Silniki zapytań/repozytoria trójek Jena$ AllegroGraph$ Sesame$ OpenLink$Virtuoso$ OWLIM$

Repozytoria trójek Specjalizowana$baza$danych$do$przechowywania$ trójek$rdf$ Trójki"wprowadzane"w"różnych"formatach" Wspiera$język$zapytań$do$RDF$ $ SPARQL"(rekomendacja"W3C)" Inne"języki"(np."ARQ,"RDQL)" Może,"ale"nie"musi"wykonywać"wnioskowanie"

Architektury Implementacja: In-memory, Natywna, Nienatywna Natywna: JENA TDB, Sesame Native, Virtuoso, AllegroGraph, Oracle 11g Nie-Natywna: Np. Używająca RDBMS jako backend $

Materiały:$ SPARQL$specificazon$document,$h^p://www.w3.org/TR/rdfSsparqlSquery/$ SPARQL$By$Example,$A$Tutorial,$Lee$Feigenbaum,$ h^p://www.cambridgesemanzcs.com/semanzcsuniversity/sparqlsbysexample$ Querying$semanzc$data :$ h^p://www.linkeddatatools.com/queryingssemanzcsdata$ $