Wprowadzenie RDF jest j ezykiem i podstawowym (najniższego poziomu) standardem modelowania ontologicznego. RDF pozwala na definiowanie znaczenia stwierdzeń opisujacych zjawiska dziedziny problemowej. W ten sposób RDF w pewnym sensie jest rozszerzeniem XML, który takich możliwości nie daje. Jednak XML dostarcza tylko standardu reprezentacji tekstowej dla RDF, która jest jedynie pewnym punktem widzenia RDF. W istocie RDF wprowadza grafowy model danych, który jest jego w laściwa rola. Ten wyk lad zosta l opracowany na podstawie podr ecznika Semantic Web Primer, autorzy: Grigoris Antoniou i Frank van Harmelen, Second Edition, MIT Press 2008 RDF wprowadzenie 1
RDF wprowadzenie 2
Wady XML XML jest uniwersalnym metaj ezykiem do definiowania znaczników. Zapewnia jednolita platforme wymiany danych i metadanych miedzy aplikacjami. Jednak XML nie zawiera żadnych środków opisu semantyki (znaczenia) danych. Np., nie określa sensu zwiazanego z zagnieżdżaniem znaczników: każda aplikacja interpretuje zagnieżdżanie indywidualnie. RDF wady XML 3
Zagnieżdżanie znaczników w XML David Billington is a lecturer of Discrete Maths <course name="discrete Maths"> <lecturer>david Billington</lecturer> </course> <lecturer name="david Billington"> <teaches>discrete Maths</teaches> </lecturer> Zagnieżdżenie w obu przyk ladach jest odwrotne, ale znaczenie to samo! RDF wady XML 4
Podstawowe koncepcje RDF Podstawowy element sk ladowy: trójka obiekt-atrybut-wartość. 1 Nazywa si e to stwierdzeniem (statement). Zdanie o Mr Billington jest takim stwierdzeniem. RDF używa sk ladni XML (mi edzy innymi). Ta sk ladnia przejmuje zalety XML. Ale możliwe sa również inne reprezentacje syntaktyczne RDF. Podstawowymi pojeciami RDF sa: zasoby (resources), w laściwości (properties), stwierdzenia (statements). 1 Uwaga: cz esto stosowana jest alternatywna (miejscami mylaca) terminologia: podmiot-predykat-przedmiot (subject-predicate-object), a w polskiej literaturze również: podmiot-orzeczenie-dope lnienie [K.Goczy la]. Ponieważ rzadko powoduje to nieporozumienia, trzeba pogodzić sie z praktyka mieszania tej terminologii, i nie przywiazywać zbyt wielkiej wagi do użytego w danym kontekście s lowa. RDF podstawowe koncepcje RDF 5
Zasoby i URI Możemy myśleć o zasobach jako obiektach, rzeczach o których chcemy mówić: np.: autorzy, ksiażki, wydawnictwa, miejsca, ludzie, hotele. Każdy zasób ma URI (Universal Resource Identifier). URI może być: adresem URL (internetowym), lub jakimś innym unikalnym identyfikatorem. W tych rozważaniach b edziemy przyjmowali adresy URL jako URI. Zalety korzystania z URI: globalny, uniwersalny w skali świata, unikalny schemat nazewnictwa, cześciowo rozwiazuje problem homonimii (wieloznaczności identycznych nazw) rozproszonych reprezentacji danych. RDF podstawowe koncepcje RDF 6
W laściwości W laściwości sa specyficznym rodzajem zasobów. Opisuja one relacje miedzy innymi zasobami: np.: napisane przez, wiek, tytu l, itd. W laściwości jako zasoby sa również identyfikowane przez URI. RDF podstawowe koncepcje RDF 7
Stwierdzenia Stwierdzenia stwierdzaja posiadanie w laściwości przez zasoby. Stwierdzenie jest trójka: obiekt-atrybut-wartość Sk lada si e z zasobu, w laściwości i wartości. Wartościami moga być zasoby lub litera ly. Litera ly sa wartościami atomowymi (typu string) RDF podstawowe koncepcje RDF 8
Trzy reprezentacje stwierdzeń Trójka obiekt-atrybut-wartość Fragment grafu Kawa lek kodu XML Zatem dokument RDF może być postrzegany jako: Zbiór trójek obiekt-atrybut-wartość Graf zwany siecia semantyczna Dokument XML RDF podstawowe koncepcje RDF 9
Stwierdzenia jako trójki (http://www.cit.gu.edu.au/~db, http://www.mydomain.org/site-owner, #David Billington) Trójke (x,p,y) można uważać za formu l e logiczna P(x,y). Binary predykat P wiaże obiekt x z obiektem y. RDF zapewnia tylko binarne predykaty (w laściwości). Trójk e można również uważać za skierowany graf z etykietowanymi w ez lami i lukami: skierowany od zasobu podmiotu (obiektu) stwierdzenia skierowany do przedmiotu (wartości) stwierdzenia Wartość stwierdzenia może być innym zasobem lub litera lem. Znany w AI jako sieć semantyczna. RDF podstawowe koncepcje RDF 10
Zbiór trójek jako sieć semantyczna Wykresy sa poteżnym narzedziem dla ludzkiego zrozumienia, ale... Inicjatywa Semantic Web wymaga dost epności maszynowej i maszynowego przetwarzania stwierdzeń. Istnieje jeszcze inna reprezentacja oparta na XML. Ale XML nie jest cześci a modelu danych RDF. Na przyk lad, serializacja XML nie ma znaczenia dla RDF. RDF podstawowe koncepcje RDF 11
Zapis stwierdzeń w sk ladni XML <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mydomain="http://www.mydomain.org/my-rdf-ns"> <rdf:description rdf:about="http://www.cit.gu.edu.au/~db"> <mydomain:site-owner rdf:resource="#david Billington"/> </rdf:description> </rdf:rdf> Dokument RDF jest reprezentowany przez element XML ze znacznikiem rdf:rdf Zawartościa tego elementu jest pewna liczba opisów (descriptions), które wykorzystuja znaczniki rdf:description W powyższym opisie, dotyczacym zasobu http://www.cit.gu.edu.au/~db w laściwość jest używana jako znacznik elementu, wartość w lasności może być dana przez zawartość elementu (litera l), lub jak w tym przypadku, wskazywana przez atrybut rdf:resource. RDF podstawowe koncepcje RDF 12
Zapis stwierdzeń w sk ladni XML (2) Każdy opis wyraża fakt o zasobie, identyfikowanym na jeden z 3 sposobów: przez atrybut rdf:about, z odniesieniem do istniejacego zasobu, przez atrybut rdf:id, z utworzeniem nowego zasobu, bez nazwy, tworzac nowy zasób (anonimowy). RDF podstawowe koncepcje RDF 13
Reifikacja W RDF jest możliwe zapisywanie stwierdzeń o stwierdzeniach. Takie stwierdzenia moga opisywać przekonanie albo wiare w inne stwierdzenia. Np.: Grigoris believes that David Billington is the creator of http://www.cit.gu.edu.au/~db Realizacja polega na przypisaniu niepowtarzalnego identyfikatora stwierdzeniu podrz ednemu. Może on nast epnie być użyty do odnoszenia si e do tego stwierdzenia w innych stwierdzeniach. Na przyk lad, dla przedstawionego powyżej zdania z lożonego: Wprowadzamy obiekt pomocniczy stwierdzenia podrzednego, np. belief1. Zamieniamy oryginalne stwierdzenie podrzedne na trzy oddzielne stwierdzenia określajace każda z 3 cześci oryginalnego stwierdzenia (trójki) przez w lasności: podmiot (rdf:subject), predykat (rdf:predicate), i przedmiot (rdf:object). Podmiotem belief1 jest David Billington Predykatem belief1 jest creator Przedmiotem belief1 jest http://www.cit.gu.edu.au/~db Teraz możemy zapisać zdanie nadrzedne odnoszac sie do zasobu belief1. Ta skomplikowana procedura jest niezbedna ponieważ model RDF dopuszcza jedynie predykaty binarne. RDF reifikacja 14
Typy danych Typy danych stosowane sa w jezykach programowania, aby umożliwić interpretacje. W RDF w tym celu stosowane sa litera ly typowane: (#David Billington, http://www.mydomain.org/age, "27"^^http://www.w3.org/2001/XMLSchema#integer) Zapis ^^ wskazuje typ litera lu Formalnie korzystanie z wszelkich zewn etrznych typów danych jest dozwolone w dokumentach RDF. W praktyce najcz eściej wykorzystywany jest system typów XML Schema, który definiuje szeroki wachlarz typów danych. Na przyk lad: Boolean, liczby ca lkowite, zmiennoprzecinkowe, czas, daty, itp. RDF typy danych 15
Krytyczne spojrzenie na RDF: predykaty binarne RDF używa tylko binarnych w laściwości. Jest to ograniczenie, ponieważ cz esto używamy predykatów z wi ecej niż 2 argumentami. Ale można je zasymulować predykatami binarnymi. Przyk lad: referee(x,y,z) X jest sedzi a meczu szachowego pomiedzy graczami Y i Z. Wprowadzamy nowy pomocniczy zasób chessgame oraz predykaty binarne: ref, player1 i player2 Możemy teraz wyrazić referee(x,y,z) jako: RDF podsumowanie krytyczne 16
Krytyczne spojrzenie na RDF: w laściwości W laściwości sa specjalnym rodzajem zasobów. W laściwości moga wystepować jako obiekty w trójkach obiekt-atrybut-wartość (stwierdzeniach). Możliwość ta oferuje duża elastyczność. Ale to jest niezwyk le dla j ezyków modelowania i j ezyków programowania OO. Może to być mylace dla programistów modelowania semantycznego. RDF podsumowanie krytyczne 17
Krytyczne spojrzenie na RDF: reifikacja Reifikacja jest innym dość mocnym mechanizmem. Może wydawać si e nie na miejscu we w sumie prostym j ezyku takim jak RDF. Tworzenie stwierdzeń o stwierdzeniach wprowadza poziom z lożoności, który nie jest niezb edny do podstawowej warstwy Semantic Web. Mog loby wydawać sie bardziej naturalne umieszczenie tego mechanizmu w bardziej zaawansowanych warstwach, które zapewniaja bogatsze funkcje reprezentacji. RDF podsumowanie krytyczne 18
Krytyczne spojrzenie na RDF: podsumowanie RDF jest dostosowany do przetwarzania maszynowego, jednak do czytania przez ludzi może być niezbyt zrozumia ly. RDF ma swoje dziwactwa i ogólnie nie jest optymalnym j ezykiem modelowania, ale: jest już de facto standardem, ma wystarczajac a si l e wyrazu (przynajmniej dla budowania na nim dalszych warstw reprezentacji), informacja jest jednoznacznie mapowana do modelu. RDF podsumowanie krytyczne 19
RDF podsumowanie krytyczne 20
Serializacja RDF N-Triples Model danych RDF jest najlepiej reprezentowany grafami. Jednak przydatna i czesto niezbedna jest ich reprezentacja tekstowa, zwana serializacja. Dotychczas, oprócz formatu zapisu RDF/XML, stosowana by la nieformalnie notacja: (R,P,V). Istnieja jednak bardziej sformalizowane konwencje, ukierunkowane zarówno na czytelność jak i przetwarzanie maszynowe. Jeden z takich formatów, zwany N-Triples, polega na zapisie trzech elementów trójki RDF w kolejności podmiot-predykat-przedmiot, zakończonej kropka, po jednej trójce w wierszu. Każdy z elementów trójki zapisywany jest w postaci w pe lni kwalifikowanych, nieskróconych URI, zapisywanych w nawiasach katowych <>, wed lug schematu: <http://domain/ns#res> <http://domain/ns#prop> <http://domain/ns#val>. Nawet powyższy schemat trudno zapisać w wymagany sposób, w jednym wierszu. Jak widać, ten format średnio nadaje si e do prezentacji jak niniejsza. Natomiast bardzo dobrze nadaje si e dla przeszukiwania i porównywania tekstowego. RDF serializacja 21
N-Triples: przyk lad Dla trójki reprezentowanej przez poniższy zapis RDF/XML: <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mydomain="http://www.mydomain.org/my-rdf-ns"> <rdf:description rdf:about="http://www.cit.gu.edu.au/~db"> <mydomain:site-owner rdf:resource="#david Billington"/> </rdf:description> </rdf:rdf> reprezentacja N-Triples ma postać (w jednym wierszu): <http://www.cit.gu.edu.au/~db> <http://www.mydomain.org/my-rdf-ns#site-owner> "#David Billington". RDF serializacja 22
Serializacja RDF Turtle Innym formatem zapisu tekstowego RDF jest Turtle (Terse RDF Triple Language). Podstawowa gramatyka Turtle jest podobna do N-Triples (w rzeczywistości oba te formaty sa podzbiorami ogólnej notacji N3 (Notation3)), ale bardziej zorientowana na skróty, czytelność, i wygode. W notacji Turtle zasoby moga być zapisywane w postaci qnames, czyli ns:id, gdzie ns jest symbolem przestrzeni nazw, a id identyfikatorem zasobu. Przestrzenie nazw wiazane sa w Turtle z definiujacymi je URI za pomoca deklaracji @prefix. @prefix mydomain <http://www.mydomain.org/my-rdf-ns#> <http://www.cit.gu.edu.au/~db> mydomain:site-owner "#David Billingt przyk lady notacji Turtle dla kontynuacji ;. RDF serializacja 23
Sk ladnia RDF oparta na XML Dokument RDF sk lada si e z pojedynczego elementu rdf:rdf Zawartościa tego elementu jest pewna liczba opisów (descriptions) Używany jest mechanizm przestrzeni nazw XML, jednak: W XML jest on stosowany wy l acznie dla zapewnienia jednoznaczności. W RDF przestrzenie nazw maja być dokumentami RDF definiujacymi zasoby, które nastepnie moga być wielokrotnie używane. Prowadzi to do powstawania dużych, rozproszonych zbiorów wiedzy. RDF sk ladnia RDF oparta na XML 24
Przyk lad: programy akademickie <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http://www.w3.org/2001/xmlschema#" xmlns:uni="http://www.mydomain.org/uni-ns#"> <rdf:description rdf:about="949318"> <uni:name>david Billington</uni:name> <uni:title>associate Professor</uni:title> <uni:age rdf:datatype="&xsd;integer">27<uni:age> </rdf:description> <rdf:description rdf:about="cit1111"> <uni:coursename>discrete Maths</uni:courseName> <uni:istaughtby>david Billington</uni:isTaughtBy> </rdf:description> <rdf:description rdf:about="cit2112"> <uni:coursename>programming III</uni:courseName> <uni:istaughtby>michael Maher</uni:isTaughtBy> </rdf:description> </rdf:rdf> RDF sk ladnia RDF oparta na XML 25
Rola znaczników rdf:about i rdf:id Elementy RDF:Description maja atrybut rdf:about wskazujacy, do jakiego zasobu dany opis sie odnosi. Użycie tego atrybutu sugeruje, że zasób zosta l zdefiniowany gdzie indziej. Analogicznie, atrybut rdf:id wskazuje, że zasób jest w laśnie tu definiowany. Formalnie, w grafie RDF nie ma czegoś takiego jak definiowanie obiektu w jednym miejscu i odnoszenie si e do niego gdzie indziej. Wszystkie luki grafu odnoszace sie do danego zasobu sa równoprawnymi elementami jego definicji. Jednak czasem jest przydatne (dla czytelności przez ludzi) posiadanie jednej lokalizacji (w dokumencie XML) definiujacej, podczas gdy inne lokalizacje określaja w laściwości dodatkowe. W rzeczywistości, identyfikatory użyte w powyższym przyk ladzie, jak CIT2112, powinny być odwo laniami do zasobów z zewn etrznych przestrzeni nazw, jak: <rdf:description rdf:about="http://www.mydomain.org/uni-ns/#cit2112"> </rdf:description> RDF sk ladnia RDF oparta na XML 26
Elementy określajace w laściwości Zwróćmy ponownie uwag e na zawartość elementów rdf:description, np.: <rdf:description rdf:about="cit3116"> <uni:coursename>knowledge Representation</uni:courseName> <uni:istaughtby>grigoris Antoniou</uni:isTaughtBy> </rdf:description> Elementy uni:coursename i uni:istaughtby definiuja dwie pary w laściwość-wartość dla CIT3116 (dwa stwierdzenia RDF). Oczywiście, te w laściwości należy czytać koniunkcyjnie. RDF sk ladnia RDF oparta na XML 27
Typy danych Atrybut rdf:datatype="xsd:integer" s luży do wskazania typu danych wartości w lasności wiek <rdf:description rdf:about="949318"> <uni:name>david Billington</uni:name> <uni:title>associate Professor</uni:title> <uni:age rdf:datatype="&xsd;integer">27</uni:age> </rdf:description> W lasność wiek zosta la zdefiniowana ogólnie (w schemacie RDF) z zakresem "&xsd;integer" Jednak nie zwalnia to indywidualnych trójek od wskazania typu wartości danej w lasności za każdym razem gdy jest ona wykorzystywana. Ma to zapewnić, by procesor RDF móg l określić typ wartości danej w laściwości, nawet jeśli wcześniej nie widzia l odpowiedniej definicji schematu RDF. Ten scenariusz jest ca lkiem prawdopodobny w nieograniczonym Internecie. RDF sk ladnia RDF oparta na XML 28
Atrybut rdf:resource Relacje miedzy kursami i wyk ladowcami w powyższym przyk ladzie nie zosta ly formalnie zdefiniowane. Jednak istnieja one domyślnie dzieki użyciu tej samej nazwy, np. David Billington. Jednak wystapienie tej samej nazwy może być tylko zbiegiem okoliczności. Możemy zaznaczać, że dwa podmioty sa tym samym, przy użyciu atrybutu rdf:resource. <rdf:description rdf:about="cit1111"> <uni:coursename>discrete Mathematics</uni:courseName> <uni:istaughtby rdf:resource="949318"/> </rdf:description> <rdf:description rdf:about="949318"> <uni:name>david Billington</uni:name> <uni:title>associate Professor</uni:title> </rdf:description> RDF sk ladnia RDF oparta na XML 29
Odwo lywanie si e do zasobów definiowanych zewn etrznie Aby odwo lać si e do zewn etrznie definiowanego zasobu CIT1111 należy użyć http://www.mydomain.org/uni-ns#cit1111 jako wartości rdf:about www.mydomain.org/uni-ns jest URI gdzie znajduje si e definicja CIT1111 (opis ze znacznikiem rdf:id zamiast rdf:about). Znak # w URI oznacza URI cześci dokumentu, który można wykorzystać do odniesienia sie do opisu definiujacego. <rdf:description rdf:about="cit1111"> <uni:coursename>discrete Mathematics</uni:courseName> <uni:istaughtby rdf:resource="#949318"/> </rdf:description> <rdf:description rdf:id="949318"> <uni:name>david Billington</uni:name> <uni:title>associate Professor</uni:title> </rdf:description> RDF sk ladnia RDF oparta na XML 30
Opisy zagnieżdżone <rdf:description rdf:about="cit1111"> <uni:coursename>discrete Maths</uni:courseName> <uni:istaughtby> <rdf:description rdf:id="949318"> <uni:name>david Billington</uni:name> <uni:title>associate Professor</uni:title> </rdf:description> </uni:istaughtby> </rdf:description> W przypadku opisywania powiazanych zasobów, ich opisy moga być zagnieżdżone. Mimo, że opis zosta l zdefiniowany wewnatrz innego opisu, jego zakres jest globalny. Zatem inne kursy, których wyk ladowca jest David Billington, takie jak CIT3112, moga odwo lywać sie do nowo zdefiniowanego zasobu z ID 949318. RDF sk ladnia RDF oparta na XML 31
Wprowadzanie struktury za pomoca elementu rdf:type <rdf:description rdf:id="cit1111"> <rdf:type rdf:resource= "http://www.mydomain.org/uni-ns#course"/> <uni:coursename>discrete Maths</uni:courseName> <uni:istaughtby rdf:resource="#949318"/> </rdf:description> <rdf:description rdf:id="949318"> <rdf:type rdf:resource= "http://www.mydomain.org/uni-ns#lecturer"/> <uni:name>david Billington</uni:name> <uni:title>associate Professor</uni:title> </rdf:description> Znacznik rdf:type określa typ zawartości, analogicznie jak rdf:datatype określa typ wartości atomowej atrybutu. Zauważmy, że wprowadza to dodatkowe elementy struktury dokumentu. RDF sk ladnia RDF oparta na XML 32
Skrócona sk ladnia Dokumenty RDF moga być skracane w określone sposoby. Zasady upraszczania stwierdzeń: 1. Bezdzietne elementy w lasności wewnatrz elementów opisowych moga być zastapione przez atrybuty XML. 2. Dla elementów opisowych z elementem rdf:type możemy używać nazwy określonej w elemencie rdf:type zamiast rdf:description. Te zasady stanowia sk ladniowe odmiany tego samego stwierdzenia RDF. Sa one równoważne zgodnie z modelem danych RDF, chociaż posiadaja różna sk ladnie XML. RDF sk ladnia RDF oparta na XML 33
Skrócona sk ladnia: przyk lad <rdf:description rdf:id="cit1111"> <rdf:type rdf:resource="http://www.mydomain.org/uni-ns#course"/> <uni:coursename>discrete Maths</uni:courseName> <uni:istaughtby rdf:resource="#949318"/> </rdf:description> Zastosowanie pierwszej zasady upraszczania: <rdf:description rdf:id="cit1111" uni:coursename="discrete Maths"> <rdf:type rdf:resource="http://www.mydomain.org/uni-ns#course"/> <uni:istaughtby rdf:resource="#949318"/> </rdf:description> Zastosowanie drugiej zasady upraszczania: <uni:course rdf:id="cit1111" uni:coursename="discrete Maths"> <uni:istaughtby rdf:resource="#949318"/> </uni:course> RDF sk ladnia RDF oparta na XML 34
Elementy kontenery Kontenery sa przydatne, gdy chcemy opisać pewna liczbe podobnych zasobów jako ca lość. Np., chcemy mówić o kursach wyk ladanych przez konkretnego wyk ladowc e. Zawartości elementów kontenerowych sa nazywane rdf:_1, rdf:_2 itp. Alternatywnie rdf:li Trzy typy elementów kontenerowych: rdf:bag kontener nieuporzadkowany, dopuszczajacy wielokrotne wystapienia np. cz lonkowie kadry akademickiej, dokumenty w folderze, rdf:seq kontener uporzadkowany, też może zawierać wielokrotne wystapienia np. modu ly kursu, pozycje porzadku dziennego, alfabetyczna lista pracowników (z narzuconym porzadkiem), rdf:alt zbiór alternatyw np. dokument oryginalny i kopie lustrzane, t lumaczenia dokumentów w różnych jezykach, itp. RDF kontenery 35
Przyk lad kontenera Bag: Przyk lady kontenerów <uni:lecturer rdf:id="949352" uni:name="grigoris Antoniou" uni:title="professor"> <uni:coursestaught> <rdf:bag> <rdf:_1 rdf:resource="#cit1112"/> <rdf:_2 rdf:resource="#cit3116"/> </rdf:bag> </uni:coursestaught> </uni:lecturer> Przyk lad kontenera Alt: <uni:course rdf:id="cit1111" uni:coursename="discrete Mathematics"> <uni:lecturer> <rdf:alt> <rdf:li rdf:resource="#949352"/> <rdf:li rdf:resource="#949318"/> </rdf:alt> </uni:lecturer> </uni:course> RDF kontenery 36
Atrybut rdf:id elementów kontenera Element kontener może mieć opcjonalny atrybut rdf:id, za pomoca którego może być identyfikowany i można sie do niego odwo lywać: <uni:lecturer rdf:id="949318" uni:name="david Billington"> <uni:coursestaught> <rdf:bag rdf:id="dbcourses"> <rdf:_1 rdf:resource="#cit1111"/> <rdf:_2 rdf:resource="#cit3112"/> </rdf:bag> </uni:coursestaught> </uni:lecturer> RDF kontenery 37
Użycie kontenera anonimowego Jednym z przyk ladów użycia kontenerów może być zapis predykatu z wi ecej niż dwoma argumentami, jak w poprzednio rozważanym przyk ladzie referee(x,y,z). Możemy potraktować argument X (sedziego) jako argument w laściwy, natomiast argumenty Y i Z (graczy) przedstawić jako kontener, typu Seq (uporzadkowany). <referee rdf:about="...#x"> <players> <rdf:bag> <rdf:_1 rdf:resource="...#y"/> <rdf:_2 rdf:resource="...#z"/> </rdf:bag> </players> </referee> W tym przypadku gra (anonimowa) jest przedmiotem trójki, której podmiotem jest X, a predykatem jest referee (w jezyku angielskim panuje zasada: you can verb anything, czyli: wszystko można traktować jako czasownik). Dla gry zbiór graczy jest sekwencja, i z każdym graczem wiaże ja relacja: rdf:_1, rdf:_2. RDF kontenery 38
Kolekcje RDF Ograniczeniem kontenerów jest to, że nie ma sposobu ich zamkniecia, czyli powiedzenia: to sa już wszystkie elementy kontenera. Na przyk lad, że dla gry w szachy jest dok ladnie dwóch graczy? RDF zapewnia wsparcie dla opisu grup zawierajacych tylko określonych cz lonków, w postaci kolekcji RDF. kolekcja jest struktura typu listy na grafie RDF konstruowana przy użyciu predefiniowanego s lownictwa kolekcji: RDF:List, RDF:first, rdf:rest i rdf:nil Sk ladnia skrótowa używa atrybutu rdf:parsetype z wartościa "Collection" <rdf:description rdf:about="#cit2112"> <uni:istaughtby rdf:parsetype="collection"> <rdf:description rdf:about="#949111"/> <rdf:description rdf:about="#949352"/> <rdf:description rdf:about="#949318"/> </uni:istaughtby> </rdf:description> RDF kolekcje 39
Kolekcje RDF (2) Konstrukcja listy przy użyciu podstawowych prymitywów: RDF kolekcje 40
Reifikacja Czasami chcemy wypowiadać si e na temat innych stwierdzeń Musimy być w stanie odnieść sie do stwierdzenia za pomoca identyfikatora RDF pozwala takiego odniesienia poprzez mechanizm reifikacji który w l acza stwierdzenie do zasobu Na przyk lad, stwierdzenie: <rdf:description rdf:about="#949352"> <uni:name>grigoris Antoniou</uni:name> </rdf:description> reifikuje si e jako: <rdf:statement rdf:id="statementabout949352"> <rdf:subject rdf:resource="#949352"/> <rdf:predicate rdf:resource= "http://www.mydomain.org/uni-ns#name"/> <rdf:object>grigoris Antoniou</rdf:object> </rdf:statement> RDF reifikacja 41
Reifikacja (2) rdf:subject, rdf:predicate i rdf:object zapewniaja dostep do cześci stwierdzenia ID stwierdzenia może być używane do odwo lania si e do niego (jest to oczywiście również możliwe dla każdego opisu). Piszemy rdf:description jeśli nie chcemy rozmawiać dalej o stwierdzeniu. Piszemy rdf:statement, jeśli chcemy odwo lywać si e do stwierdzenia. Jeśli dany opis zawiera wiecej niż jeden element opisujacy w laściwości, to oznacza to istnienie dwóch stwierdzeń. W takim przypadku możliwa jest ich wspólna reifikacja (np. jako worek), albo oddzielna reifikacja poszczególnych stwierdzeń. RDF reifikacja 42
Podstawowe koncepcje RDF Schema RDF jest uniwersalnym j ezykiem, który pozwala użytkownikom opisywać zasoby przy pomocy w lasnych zestawów poj eć RDF nie przyjmuje, ani nie definiuje semantyki konkretnej dziedziny Użytkownik może to zrobić w RDF Schema przy użyciu: Klas i w laściwości Hierarchii klas i dziedziczenia Hierarchii w laściwości RDF RDF Schema: podstawy 43
Klasy i ich instancje Musimy rozróżnić: Konkretne rzeczy (poszczególne obiekty) w domenie: Discrete Maths, David Billington itp. Zestawy indywiduów wspó ldzielacych w laściwości, zwane klasami: wyk ladowcy, studenci, kursy itp. Poszczególne obiekty, które należa do klasy określane sa jako instancje tej klasy. Zwiazek miedzy instancjami i klasami w RDF jest przez rdf:type RDF RDF Schema: podstawy 44
Dlaczego klasy sa przydatne Pozwalaja na lożyć ograniczenia na to, co można stwierdzić w dokumencie RDF za pomoca schematu. Podobnie jak w jezykach programowania używane sa typy: Na przyk lad: stwierdzenie *str nie ma sensu, gdy * jest operatorem dereferencji (pobrania wartości z lokacji wskazywanej przez wskaźnik), a str jest napisem. Użycie klas dla wykluczenia bezsensownych stwierdzeń: Discrete Maths is taught by Concrete Maths Chcemy aby kursy mog ly być wyk ladane tylko przez wyk ladowców. Możemy stworzyć ograniczenie wartości w lasności jest nauczana przez (ograniczenie zakresu). Room MZH5760 is taught by David Billington Tylko kursy moga być wyk ladane. To nak lada ograniczenie na obiekty, do których w lasność może być zastosowana (ograniczenie domeny). RDF RDF Schema: podstawy 45
Hierarchie klas Klasy moga być zorganizowane w hierarchie A jest podklasa B, jeśli każda instancja A jest także instancja B. Wtedy B jest superklasa A. Graf klas nie musi być drzewem. Klasa może mieć wiele nadklas. RDF RDF Schema: podstawy 46
Przyk lad hierarchii klas RDF RDF Schema: podstawy 47
Dziedziczenie w hierarchii klas Wiezy zakresu: kursy musza być wyk ladane tylko przez nauczycieli akademickich. Michael Maher jest profesorem. Zatem dziedziczy możliwość wyk ladania z klasy nauczycieli akademickich. Odbywa sie to w RDF Schema poprzez zdefiniowanie semantyki jest podklasa. Aplikacja (oprogramowanie przetwarzajace dokument RDF) nie może interpretować stwierdzenia jest podklasa wed lug w lasnego uznania. Ponieważ RDFS, w odróżnieniu od RDF, określa semantyk e pewnych poj eć (klas i w laściwości), można powiedzieć, że RDFS jest j ezykiem definiowania ontologii, aczkolwiek nadal dość prymitywnym, jak si e okaże. W odróżnieniu od bardziej konwencjonalnych systemów obiektowych, w RDFS klasy nie zawieraja w sobie definicji w laściwości. Te ostatnie istnieja globalnie i tworza w lasna oddzielna strukture hierarchiczna. RDF RDF Schema: podstawy 48
Hierarchie w laściwości Podobne hierarchiczne relacje dla w laściwości Np. jest wyk ladany przez jest podw laściwościa dotyczy Jeśli kurs C jest wyk ladany przez pracownika akademickiego A, to C również dotyczy A? Odwrotność niekoniecznie jest prawda: Kurs C dotyczy nauczyciela B, który ocenia zadania domowe studentów tego kursu C; jednak B nie wyk lada C. P jest podw laściwościa Q, jeśli Q(x,y) jest prawdziwe, gdy P(x,y) jest prawdziwe. RDF RDF Schema: podstawy 49
Warstwa RDF w porównaniu z warstwa RDF Schema Discrete Mathematics is taught by David Billington Schemat jest sam napisany w j ezyku formalnym RDF Schema, który może opisywać swoje sk ladniki: subclassof, Class, Property, subpropertyof, Resource, itp. RDF RDF Schema: podstawy 50
RDF RDF Schema: podstawy 51
Schemat RDF w RDF Prymitywy modelowania RDF Schema sa zdefiniowane przy użyciu zasobów i w laściwości, tzn. użyty do tego jest sam RDF! Aby wyrazić fakt, że wyk ladowca jest podklasa klasy pracownik akademicki (academic staff member) Zdefiniuj zasoby: lecturer, academicstaffmember i subclassof Zdefiniuj w laściwość subclassof Zapisz trójk e (lecturer,subclassof,academicstaffmember) Używamy sk ladni RDF opartej na XML. RDF RDF Schema: podstawy 52
G lówne klasy RDF Schema rdfs:resource, klasa wszystkich zasobów rdfs:class, klasa wszystkich klas rdfs:literal, klasa wszystkich litera lów (stringów) rdf:property, klasa wszystkich w laściwości rdf:statement, klasa wszystkich stwierdzeń reifikowanych Na przyk lad, klasa lecturer może być zdefiniowana wed lug schematu: <rdfs:class rdf:id="lecturer">... </rdfs:class> RDF RDF Schema: podstawy 53
G lówne w laściwości RDF Schema do definiowania zwiazków rdf:type odnosi zasób do jego klasy zasób jest uznawany za instancj e swojej klasy rdfs:subclassof odnosi klas e do jednej z jej nadklas wszystkie instancje klasy sa instancjami jej nadklasy rdfs:subpropertyof wiaże w lasność z jedna z jej w lasności nadrzednych Na przyk lad, stwierdzenie, że wszyscy wyk ladowcy sa pracownikami: <rdfs:class rdf:about="#lecturer"> <rdfs:subclassof rdf:resource="#staffmember"/> </rdfs:class> RDF RDF Schema: podstawy 54
G lówne w laściwości RDF Schema do określania wi ezów na w laściwości rdfs:domain określa domen e w laściwości P klasa tych zasobów, które moga pojawić sie jako podmioty w trójkach z predykatem P Jeśli domena w laściwości nie jest określona, wówczas wszelkie zasoby moga być jej podmiotem. rdfs:range określa zakres w laściwości P klasa tych zasobów, które moga pojawiać sie jako wartości w trójkach z predykatem P Na przyk lad, określenie, że jeśli jakiś zasób ma w laściwość phone to ten zasób musi być instancja klasy staffmember, a wartość tej w laściwości musi być litera lem: <rdf:property rdf:id="phone"> <rdfs:domain rdf:resource="#staffmember"/> <rdfs:range rdf:resource="&rdf;literal"/> </rdf:property> RDF RDF Schema: podstawy 55
Relacje mi edzy g lównymi klasami i w laściwościami rdfs:subclassof i rdfs:subpropertyof sa z definicji przechodnie rdfs:class jest podklasa rdfs:resource ponieważ każda klasa jest zasobem rdfs:resource jest instancja rdfs:class rdfs:resource jest klasa wszystkich zasobów, wiec jest klasa Każda klasa jest instancja rdfs:class Z tego samego powodu RDF RDF Schema: podstawy 56
Reifikacja i kontenery rdf:subject odnosi reifikowane stwierdzenie do jego podmiotu rdf:predicate odnosi reifikowane stwierdzenie do jego predykatu rdf:object odnosi reifikowane stwierdzenie do jego przedmiotu rdf:bag klasa worków rdf:seq klasa sekwencji rdf:alt klasa alternatyw rdfs:container jest klasa nadrzedn a wszystkich klas kontenerowych, w tym trzech powyższych RDF RDF Schema: podstawy 57
W laściwości użytkowe rdfs:seealso odwo lanie do innego zasobu, który zwykle zawiera wyjaśnienie rdfs:isdefinedby jest podw laściwościa rdfs:seealso i odnosi zasób do miejsca, gdzie znajduje sie jego definicja, zazwyczaj schemat RDF rdfs:comment komentarz, który może być zwiazany z zasobem, zazwyczaj d luższy tekst rdfs:label przyjazna dla cz lowieka etykieta (nazwa), również powiazana z zasobem RDF RDF Schema: podstawy 58
Przyk lad: uczelnia wyższa <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdfs:class rdf:id="lecturer"> <rdfs:comment> The class of lecturers. All lecturers are academic staff members. </rdfs:comment> <rdfs:subclassof rdf:resource="#academicstaffmember"/> </rdfs:class> <rdf:property rdf:id="phone"> <rdfs:comment> It is a property of staff members and takes literals as values. </rdfs:comment> <rdfs:domain rdf:resource="#staffmember"/> <rdfs:range rdf:resource="&rdf;literal"/> </rdf:property> RDF RDF Schema: przyk lady 59
Przyk lad: uczelnia wyższa (2) <rdfs:class rdf:id="course"> <rdfs:comment>the class of courses</rdfs:comment> </rdfs:class> <rdf:property rdf:id="involves"> <rdfs:comment> It relates only courses to lecturers. </rdfs:comment> <rdfs:domain rdf:resource="#course"/> <rdfs:range rdf:resource="#lecturer"/> </rdf:property> <rdf:property rdf:id="istaughtby"> <rdfs:comment> Inherits its domain ("course") and range ("lecturer") from its superproperty "involves" </rdfs:comment> <rdfs:subpropertyof rdf:resource="#involves"/> </rdf:property> </rdf:rdf> RDF RDF Schema: przyk lady 60
Przestrzeń nazw RDF Może być pouczajace przyjrzenie sie jak RDF i RDFS sa zdefiniowane: <?xml version="1.0" encoding="utf-16"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdfs:class rdf:id="statement" rdfs:comment="the class of triples consisting of a predicate, a subject and an object (that is, a reified statement)"/> <rdfs:class rdf:id="property" rdfs:comment="the class of properties"/> <rdfs:class rdf:id="bag" rdfs:comment="the class of unordered collections"/> <rdfs:class rdf:id="seq" rdfs:comment="the class of ordered collections"/> RDF definicja przestrzeni nazw RDF i RDFS 61
Przestrzeń nazw RDF (2) <rdf:property rdf:id="predicate" rdfs:comment="identifies the property of a statement in reified form"/> <rdfs:domain rdf:resource="#statement"/> <rdfs:range rdf:resource="#property"/> </rdf:property> <rdf:property rdf:id="subject" rdfs:comment="identifies the resource that a sentence is describing whet representing the statement in reified form"/> <rdfs:domain rdf:resource="#statement"/> </rdf:property> <rdf:property rdf:id="type" rdfs:comment="identifies the class of a resource. The resource is an instance of that class."/> </rdf:rdf> RDF definicja przestrzeni nazw RDF i RDFS 62
Przestrzeń nazw RDF Schema <?xml version="1.0" encoding="utf-16"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdfs:class rdf:id="resource" rdfs:comment="the most general class"/> <rdfs:class rdf:id="comment" rdfs:comment="use this for descriptions"> <rfds:domain rdfs:resource="#resource"/> <rfds:range rdfs:resource="#literal"/> </rdfs:class> <rdfs:class rdf:id="class" rdfs:comment="the concept of classes. All classes are resources."/> <rdfs:subclassof rdf:resource="#resource"/> </rdfs:class> RDF definicja przestrzeni nazw RDF i RDFS 63
Przestrzeń nazw RDF Schema (2) <rdf:property rdf:id="subclassof"> <rdfs:domain rdf:resource="#class"/> <rdfs:range rdf:resource="#class"/> </rdf:property> <rdf:property rdf:id="subpropertyof"> <rdfs:domain rdf:resource="&rdf;property"/> <rdfs:range rdf:resource="&rdf;property"/> </rdf:property> </rdf:rdf> Należy zwrócić uwage na to, że powyższe definicje przestrzeni nazw nie stanowia pe lnej definicji RDF ani RDFS. Na przyk lad, definicja rdfs:subclassof określa jedynie, że jest to w laściwość która odnosi sie do klas, i jej wartościa jest klasa. Nie wyraża ona podstawowego znaczenia tej w laściwości, a mianowicie, że instancje jednej klasy musza być instancjami drugiej. To znaczenie nie da sie zreszta wyrazić w dokumencie RDF (gdyby sie da lo, wtedy niepotrzebny by lby RDFS). Potrzebna jest zewnetrzna definicja semantyki, w dodatku taka, która rozumia lyby i weryfikowa ly procesory RDF/RDFS. RDF definicja przestrzeni nazw RDF i RDFS 64
Semantyka aksjomatyczna Chcemy sformalizować znaczenie prymitywów modelowania RDF i RDF Schema. Czyli zdefiniować ich semantyk e. Jezykiem reprezentacji bedzie jezyk logiki predykatów pierwszego rzedu (z równościa), jednego z najbardziej popularnych jezyków deklaratywnej reprezentacji wiedzy. Zapisujac semantyke w jezyku logiki predykatów czynimy ja jednoznaczna, i maszynowo dostepn a. Jednocześnie tworzymy podstawy wspierania wnioskowania przez maszyny wnioskujace (reasoners) manipulujace formu lami logicznymi. Wszystkie prymitywy jezykowe w RDF i RDF Schema sa reprezentowane przez sta le: Resource, Class, P roperty, type, subclassof, itp. Kilka predefiniowanych predykatów pos luży jako podstawa do wyrażania relacji miedzy sta lymi. Nazwy zmiennych rozpoczynaja sie znakiem zapytania?. Wszystkie aksjomaty sa domyślnie kwantyfikowane uniwersalnie. Wiekszość aksjomatów zawiera informacje o typach, np.: T ype(subclassof, P roperty) RDF semantyka aksjomatyczna 65
Dodatkowa aksjomatyzacja list Listy sa pomocniczym mechanizmem wykorzystywanym do reprezentacji kontenerów RDF, a w bogatszych jezykach do wyrażania pojeć zwiazanych z licznościa. Używane bed a nastepuj ace symbole funkcyjne: nil cons(x, l) f irst(l) rest(l) //pusta lista //dodaje element na przód listy //zwraca pierwszy element //zwraca reszte listy oraz poniższe symbole predykatów: item(x, l) list(l) //sprawdza czy element wystepuje na liście // sprawdza czy l jest lista RDF semantyka aksjomatyczna 66
G lówne predykaty P ropv al(p, R, V ) Predykat z trzema argumentami, używany do reprezentacji stwierdzenia RDF z zasobem R, w lasnościa P i wartościa V. Stwierdzenie (trójka) RDF (R,P,V) jest reprezentowane jako: P ropv al(p, R, V ). T ype(r, T ) Jest skrótem stwierdzenia: P ropv al(type, R, T ). Określa, że zasób R ma typ T. Zachodzi zwiazek: T ype(?r,?t) P ropv al(type,?r,?t) RDF semantyka aksjomatyczna 67
Klasy RDF Sta le: Class, Resource, P roperty, Literal repezentuja klasy, zatem sa instancjami klasy Class, czyli maja typ Class: T ype(class, Class) T ype(resource, Class) T ype(p roperty, Class) T ype(literal, Class) Resource jest najogólniejsza klasa: każda klasa i każda w laściwość jest zasobem. T ype(?p, P roperty) T ype(?p, Resource) T ype(?c, Class) T ype(?c, Resource) Predykat w stwierdzeniu RDF musi być w lasnościa P ropv al(?p,?r,?v) T ype(?p, P roperty) RDF semantyka aksjomatyczna 68
type jest w laściwościa: W laściwość type i jej w lasności P ropv al(type, type, P roperty) type może być zastosowana do zasobów (dziedzina) i posiada klas e jako wartość (zakres): T ype(?r,?c) (T ype(?r, Resource) T ype(?c, Class)) RDF semantyka aksjomatyczna 69
Pomocnicza w laściwość F uncp rop P jest w laściwościa funkcjonalna, wtedy i tylko wtedy, gdy: jest w laściwościa, i nie istnieja takie x, y 1, i y 2 gdzie P (x, y 1 ), P (x, y 2 ) i y 1 y 2 Formalnie: T ype(?p, F uncp rop) (T ype(?p, P roperty)?r y 1?y 2 (P ropv al(?p,?r,?y 1 ) P ropv al(?p,?r,?y 2 ) (?y 1 =?y 2 ))) RDF semantyka aksjomatyczna 70
Stwierdzenia reifikowane Sta la Statement reprezentuje klase stwierdzeń reifikowanych. Wszystkie stwierdzenia reifikowane sa zasobami, a Statement jest instancja Class: T ype(?s, Statement) T ype(?, Resource) T ype(statement, Class) Stwierdzenie reifikowane można zdekomponować na trzy sk ladowe trójki RDF, które sa w laściwościami funkcjonalnymi (stwierdzenia): T ype(?st, Statement)?p?r?v (P ropv al(p redicate,?st,?p) (P ropv al(subject,?st,?s) (P ropv al(object,?st,?v) T ype(subject, F uncp rop) T ype(p redicate, F uncp rop) T ype(object, F uncp rop) RDF semantyka aksjomatyczna 71
Stwierdzenia reifikowane (2) P ropv al(subject,?st,?r) (T ype(?st, Statement) T ype(?r, Resource)) P ropv al(p redicate,?st,?p) (T ype(?st, Statement) T ype(?p, P roperty)) P ropv al(object,?st,?v) (T ype(?st, Statement) (T ype(?v, Resource) T ype(?v, Literal))) Ostatni aksjomat określa, że jeśli Object pojawia sie jako w lasność w stwierdzeniu RDF (reifikowanym), to podmiotem stwierdzenia musi być inne stwierdzenie, a jego wartościa musi być zasób lub litera l. RDF semantyka aksjomatyczna 72
Kontenery Kontenery sa zasobami: T ype(?c, Container) T ype(?c, Resource) Kontenery sa również listami: T ype(?c, Container) list(?c) Kontenery sa workami, sekwencjami lub alternatywami: T ype(?c, Container) (T ype(?c, Bag) T ype(?c, Seq) T ype(?c, Alt)) Worki i sekwencje sa roz l aczne: (T ype(?x, Bag) T ype(?x, Seq)) Dla każdej liczby naturalnej n > 0, istnieje selektor n, który wybiera n-ty element w kontenerze, ten selektor jest w laściwościa funkcjonalna: T ype( n, F uncp rop) i ma zastosowanie tylko do kontenerów: P ropv al( n,?c,?o) T ype(?c, Container) RDF semantyka aksjomatyczna 73
subclassof jest w laściwościa: T ype(subclassof, P roperty) Podklasy i podw laściwości Jeśli klasa C jest podklasa klasy C, to wszystkie instancje C sa również instancjami C : P ropv al(subclassof,?c,?c ) (T ype(?c, Class) T ype(?c, Class)?x(T ype(?x,?c) T ype(?x,?c ))) Podobnie, P jest podw laściwościa P, jeśli P (x, y) jest prawdziwe, zawsze gdy P (x, y) jest prawdziwe: T ype(subp ropertyof, P roperty) P ropv al(subp ropertyof,?p,?p ) (T ype(?p, P roperty) T ype(?p, P roperty)?r?v(p ropv al(?p,?r,?v) P ropv al(?p,?r,?v))) RDF semantyka aksjomatyczna 74
Wi ezy Pewne w laściowości maja charakter wiezów. Ich ogólna definicja zaczyna sie od wprowadzenia zasobów o charakterze wiezów: P ropv al(subclassof, ConstraintResource, Resource) W laściwości ograniczajace sa zasobami ograniczajacymi, które sa jednocześnie w laściwościami: T ype(?cp, ConstraintP roperty) (T ype(?cp, ConstraintResource) T ype(?cp, P roperty)) Ważnymi przyk ladami w lasności ograniczajacych sa dziedzina i zakres: T ype(domain, ConstraintP roperty) T ype(range, ConstraintP roperty) RDF semantyka aksjomatyczna 75
Dziedzina i zakres Dziedzina D w laściwości P jest zbiór wszystkich obiektów, do których można odnieść P. Jeśli D jest domena P, to dla dowolnego P (x, y) mamy x D: P ropv al(domain,?p,?d)?x?y(p ropv al(?p,?x,?y) T ype(?x,?d)) Jeśli R jest zakresem P, to dla dowolnego P (x, y), y R: P ropv al(range,?p,?r)?x?y(p ropv al(?p,?x,?y) T ype(?y,?r)) Z powyższych formu l można również wywieść: P ropv al(domain, range, P roperty) P ropv al(range, range, Class) P ropv al(domain, domain, P roperty) P ropv al(range, domain, Class) RDF semantyka aksjomatyczna 76
Semantyka oparta na regu lach wnioskowania Przedstawiona semantyka aksjomatyczna pozwala na wyciaganie wszelkich wniosków w zakresie RDF i RDFS. Konieczny do tego jest jednak aparat dowodzenia logiki pierwszego rzedu, który jest nietrywialny. Szczególnie w warunkach świata rzeczywistego, gdzie moga pojawić sie miliony stwierdzeń, aparat ten może okazać sie niewydolny. Istnieje alternatywna semantyka oparta wprost na notacji trójek RDF, zamiast t lumaczenia danych RDF na formu ly logiki pierwszego rz edu. Z ta semantyka zwiazany jest poprawny i kompletny system wnioskowania oparty na regu lach typu: IF E zawiera pewne trójki THEN dodaj do E pewne dodatkowe trójki (gdzie E jest dowolnym zbiorem trójek RDF) RDF semantyka regu lowa 77
Przyk lady regu l wnioskowania IF THEN IF THEN IF THEN E zawiera trójke (?x,?p,?y) E również zawiera trójke (?p,rdf:type,rdf:property) E zawiera trójki (?u,rdfs:subclassof,?v) i (?v,rdfs:subclassof,?w) E również zawiera trójke (?u,rdfs:subclassof,?w) E zawiera trójki (?x,rdf:type,?u) i (?u,rdfs:subclassof,?v) E również zawiera trójke (?x,rdf:type,?v) Szczególnie pouczajaca jest analiza nastepuj acej regu ly: IF THEN E zawiera the trójki (?x,?p,?y) i (?p,rdfs:range,?u) E również zawiera trójke (?y,rdf:type,?u) Czyli: jeśli zasób?y pojawia si e jako wartość w laściwości?p, to staje si e domyślnie elementem zakresu?p. To pokazuje, że definicja zakresu w RDF Schema nie jest używana do ograniczenia zakresu w lasności, ale do wnioskowania przynależności do niego. Jest to podejście odmienne niż spotykane np. w programowaniu albo logice. RDF semantyka regu lowa 78
Dlaczego j ezyk zapytań RDF? Z kolei przechodzimy do kwestii formu lowania zapytań, w celu uzyskiwania odpowiedzi na podstawie posiadanej bazy danych RDF. Pytanie, czy jest w tym celu potrzebny oddzielny j ezyk zapytań, czy nie wystarczy loby odpytywać bazy danych RDF na poziomie XML? Jednak XML jest po lożony na niższym poziomie abstrakcji niż RDF. Istnieja różne sk ladniowe formy reprezentacji stwierdzenia RDF w formacie XML. Na przyk lad, rozważmy zapytanie o tytu ly wszystkich wyk ladowców. Stwierdzenie opisujace wyk ladowców mog loby mieć postać: <rdf:description rdf:about="949318"> <rdf:type rdf:resource="&uni;lecturer"/> <uni:name>david Billington</uni:name> <uni:title>associate Professor</uni:title> </rdf:description> W laściwe zapytanie XPath jest wtedy nastepuj ace: /rdf:description[rdf:type= "http://www.mydomain.org/uni-ns#lecturer"]/uni:title RDF j ezyk zapytań SPARQL 79
Jednak opis RDF móg lby równie dobrze być sformu lowany inaczej: <uni:lecturer rdf:about="949318"> <uni:name>david Billington</uni:name> <uni:title>associate Professor</uni:title> </rdf:lecturer> W tym przypadku zapytanie XPath musia loby byc sformu lowane: //uni:lecturer/uni:title Z kolei dla jeszcze innej reprezentacji tego samego opisu w RDF: <uni:lecturer rdf:about="949318" uni:name="david Billington" uni:title="associate Professor" </rdf:lecturer> odpowiednie jest jeszcze inne zapytanie XPath: //uni:lecturer/@uni:title Oczywiście, lepsza by laby możliwość formu lowania zapytań na poziomie RDF!! RDF j ezyk zapytań SPARQL 80
Budowa podstawowych zapytań SPARQL SPARQL (Simple Protocol And RDF Query Language) jest jezykiem zapytań RDF. Sk ladniowo SPARQL przypomina nieco SQL, lecz w rzeczywistości jezyk SPARQL nawiazuje do grafowego modelu danych RDF: SPARQL opiera si e na dopasowaniu do wzorców-grafów. Najprostszym wzorcem-grafem jest trójka, podobna do trójki RDF ale z możliwościa użycia zmiennej zamiast termu RDF na pozycji podmiotu, predykatu lub przedmiotu. L aczenie wzorców-trójek daje wzorzec-graf. Dok ladne dopasowanie wzorca do grafu danych RDF jest niezbedne dla dopasowania wzorca. RDF j ezyk zapytań SPARQL 81
Przyk ladowe zapytanie SPARQL Przyk lad: PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT?c WHERE {?c rdf:type rdfs:class. } Zapytanie pobiera wszystkie trójki, gdzie w laściwościa jest rdf:type a podmiotem jest rdfs:class. Co oznacza, że pobiera wszystkie klasy. RDF j ezyk zapytań SPARQL 82
Przyk ladowe zapytanie SPARQL (2) Pobierz wszystkie instancje danej klasy, np. kurs (deklaracja prefiksów rdf, rdfs pomini ete dla zwi ez lości): PREFIX uni: <http://www.mydomain.org/uni-ns#> SELECT?i WHERE {?i rdf:type uni:course. } Należy nadmienić, że SPARQL nie wymaga, ani sam nie realizuje semantyki RDFS. Zatem, czy w odpowiedzi na powyższe zapytanie otrzymamy tylko instancje klasy uni:course, czy również jej podklas, bedzie zależeć od systemu realizujacego dopasowanie wzorca i odpowiedź. RDF j ezyk zapytań SPARQL 83
Struktura zapytania SELECT-FROM-WHERE Podobnie jak w SQL, zapytania SPARQL maja strukture SELECT-FROM-WHERE: SELECT określa projekcj e: liczb e i kolejność pobieranych danych, FROM s luży do określenia źród lo przeszukiwania (opcjonalne), WHERE nak lada ograniczenia na możliwe rozwiazania w postaci szablonów, wzorców wykresów i ograniczeń logicznych. Przyk lad: pobrać wszystkie numery telefonów pracowników: SELECT?x?y WHERE {?x uni:phone?y. }?x i?y sa tu zmiennymi, a wzorzec "?x uni:phone?y" reprezentuje trójke zasób-w laściwość-wartość. RDF j ezyk zapytań SPARQL 84
Domyślny join Przyk lad: pobierz wszystkich wyk ladowców i ich numery telefonów: SELECT?x?y WHERE {?x rdf:type uni:lecturer ; uni:phone?y. } Powyższe zapytanie reprezentuje tzw. domyślny join: drugi wzorzec jest ograniczony tylko do tych trójek, których zasób jest w zmiennej?x. Zwróćmy uwage: używamy tutaj skróconej sk ladni: średnik wskazuje że nastepuj aca trójka wspó ldzieli podmiot z poprzednikiem. Ta sk ladnia nazywa sie turtle. Poprzednie zapytanie jest równoważne nastepuj acej formie: SELECT?x?y WHERE {?x rdf:type uni:lecturer.?x uni:phone?y. } RDF j ezyk zapytań SPARQL 85
Jawny join Kolejny przyk lad: chcemy znaleźć nazwy wszystkich kursów prowadzonych przez wyk ladowc e z ID 949352: SELECT?n WHERE {?x rdf:type uni:course ; uni:istaughtby :949352.?c uni:name?n. FILTER (?c =?x). } Taka forma zapytań reprezentuje tzw. jawny join. RDF j ezyk zapytań SPARQL 86
Opcjonalne wzorce w zapytaniach Rozważmy nastepuj acy przyk ladowy opis RDF: <uni:lecturer rdf:about="949352"> <uni:name>grigoris Antoniou</uni:name> </uni:lecturer> <uni:professor rdf:about="94318"> <uni:name>david Billington</uni:name> <uni:email>david@work.example.org</uni:email> </uni:professor> Dla jednego z wyk ladowców mamy podane tylko nazwisko. Dla drugiego jest również podany adres e-mail. Chcemy zapytać o nazwiska i jeśli to możliwe również adresy e-mail. RDF j ezyk zapytań SPARQL 87
Opcjonalne wzorce w zapytaniach (2) Zapytanie o wszystkich wyk ladowców oraz ich adresy email: SELECT?name?email WHERE {?x rdf:type uni:lecturer ; uni:name?name ; uni:email?email. } Odpowiedzia na powyższe zapytanie bedzie:?name?email David Billington david@work.example.org Pomimo iż Grigoris Antoniou figuruje jako wyk ladowca, nie ma on adresu e-mail i nie zostanie znaleziony przez powyższe zapytanie. RDF j ezyk zapytań SPARQL 88
Opcjonalne wzorce w zapytaniach (3) Jako rozwiazanie możemy dostosować kwerende użyć opcjonalnego wzór: SELECT?name?email WHERE {?x rdf:type uni:lecturer ; uni:name?name. OPTIONAL { x? uni:email?email } } Sens jest mniej wi ecej: Podaj nazwiska wyk ladowców i, jeśli jest znany, również ich adres e-mail Wynik wyglada tak:?name Grigoris Antoniou David Billington?email david@work.example.org RDF j ezyk zapytań SPARQL 89
Podsumowanie RDF stanowi podstaw e do reprezentowania i przetwarzania danych. RDF posiada grafowy model danych. RDF jest oparty na sk ladni XML co zapewnia interoperacyjność sk ladniowa. XML i RDF uzupe lniaja sie wzajemnie, ponieważ RDF wspiera interoperacyjność semantyczna. RDF posiada zdecentralizowana filozofie i pozwala na przyrostowe budowanie wiedzy, jej wspó ldzielenie i wielokrotne wykorzystanie. RDF jest dziedzinowo niezależny; RDF Schema zapewnia mechanizm opisywania określonych domen. RDF Schema jest prymitywnym j ezykiem ontologii. Oferuje on pewne elementarne konstrukcje do modelowania o ustalonym znaczeniu. Kluczowymi pojeciami RDF Schema sa klasy i relacje podklasy, w laściwości i relacje podw laściwości, oraz ograniczenia dziedziny i zakresu. Istnieja jezyki zapytań dla RDF i RDFS, w szczególności SPARQL. RDF j ezyk zapytań SPARQL 90