Type
Transkrypt
Type
Wprowadzenie RDF jest jezykiem 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 podrecznika 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 metajezykiem 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 sie, to stwierdzeniem (statement). – Zdanie o Mr Billington jest takim stwierdzeniem. • RDF używa skÃladni XML (miedzy 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: czesto 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 bedziemy 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 sie, 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Ãle, logiczna, P(x,y). – Binary predykat P wiaże , obiekt x z obiektem y. – RDF zapewnia tylko binarne predykaty (wÃlaściwości). • Trójke, można również uważać za skierowany graf z etykietowanymi wezà , 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 dostepnoś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 podrzednemu. Może on nastepnie być użyty do odnoszenia sie, 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 oryginalnego stwierdzenia (trójki) przez wÃlasności: , każda, z 3 cześ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 zewnetrznych typów danych jest dozwolone , w dokumentach RDF. • W praktyce najcześ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ż czesto używamy predykatów z wiecej 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 jezyków modelowania i jezykó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ć sie, nie na miejscu we w sumie prostym jezyku takim jak RDF. , • Tworzenie stwierdzeń o stwierdzeniach wprowadza poziom zÃlożoności, który nie jest niezbedny 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 jezykiem modelowania, , ale: – jest już de facto standardem, – ma wystarczajac , a, siÃle, 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 sie, do prezentacji jak niniejsza. Natomiast bardzo dobrze nadaje sie, 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 sie, 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Ãlacznie 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 sie, 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 zewnetrznych 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 uwage, 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 sie, do zasobów definiowanych zewnetrznie , • Aby odwoÃlać sie, do zewnetrznie 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 sie, 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Ãladowce. , • 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Ãlady kontenerów PrzykÃlad kontenera Bag: <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 wiecej 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ć sie, 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Ãlacza , stwierdzenie do zasobu Na przykÃlad, stwierdzenie: <rdf:Description rdf:about="#949352"> <uni:name>Grigoris Antoniou</uni:name> </rdf:Description> reifikuje sie, 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 stwierdzenia , do cześci , • ID stwierdzenia może być używane do odwoÃlania sie, 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ć sie, 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 jezykiem, który pozwala użytkownikom opisywać zasoby , przy pomocy wÃlasnych zestawów pojeć , – 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 semantyke, pewnych pojeć , (klas i wÃlaściwości), można powiedzieć, że RDFS jest jezykiem definiowania ontologii, , aczkolwiek nadal dość prymitywnym, jak sie, 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 jezyku 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ójke, (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 instancje, swojej klasy • rdfs:subClassOf — odnosi klase, 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 wiezów na , wÃlaściwości • rdfs:domain — określa domene, 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 miedzy 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 semantyke. , Jezykiem reprezentacji bedzie jezyk logiki predykatów pierwszego rzedu , , , , (z równościa), deklaratywnej , jednego z najbardziej popularnych jezyków , reprezentacji wiedzy. Zapisujac logiki predykatów czynimy ja, jednoznaczna,, , semantyke, w jezyku , 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 ace , a, nastepuj , , 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 WÃlaściwość type i jej wÃlasności type jest wÃlaściwościa:, P ropV al(type, type, P roperty) type może być zastosowana do zasobów (dziedzina) i posiada klase, 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, y1, i y2 gdzie P (x, y1), P (x, y2) i y1 6= y2 Formalnie: T ype(?p, F uncP rop) ⇔ (T ype(?p, P roperty)∧ ∀?r∀y1∀?y2(P ropV al(?p, ?r, ?y1) ∧ P ropV al(?p, ?r, ?y2) ⇒ (?y1 =?y2))) 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Ãlaczne: , ¬(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 Podklasy i podwÃlaściwości subClassOf jest wÃlaściwościa:, T ype(subClassOf, P roperty) Jeśli klasa C jest podklasa, klasy C 0, to wszystkie instancje C sa, również instancjami C 0: P ropV al(subClassOf, ?c, ?c0) ⇔ (T ype(?c, Class) ∧ T ype(?c0, Class)∧ ∀?x(T ype(?x, ?c) ⇒ T ype(?x, ?c0))) Podobnie, P jest podwÃlaściwościa, P 0, jeśli P 0(x, y) jest prawdziwe, zawsze gdy P (x, y) jest prawdziwe: T ype(subP ropertyOf, P roperty) P ropV al(subP ropertyOf, ?p, ?p0) ⇔ (T ype(?p, P roperty) ∧ T ype(?p0, P roperty)∧ ∀?r?v(P ropV al(?p, ?r, ?v) ⇒ P ropV al(?p0, ?r, ?v))) RDF — semantyka aksjomatyczna 74 Wiezy , 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 które sa, jednocześnie , sa, zasobami ograniczajacymi, , 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 rzedu. , Z ta, semantyka, zwiazany jest poprawny i kompletny system wnioskowania oparty , na reguÃlach typu: IF THEN E zawiera pewne trójki 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 E zawiera trójke, (?x,?p,?y) E również zawiera trójke, (?p,rdf:type,rdf:property) IF THEN E zawiera trójki (?u,rdfs:subClassOf,?v) i (?v,rdfs:subclassOf,?w) E również zawiera trójke, (?u,rdfs:subClassOf,?w) IF THEN 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 acej reguÃly: , jest analiza nastepuj , , 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 sie, jako wartość wÃlaściwości ?p, to staje sie, 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 jezyk 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 jezyk 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 — jezyk 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 — jezyk 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 sie, 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 — jezyk zapytań SPARQL , 81 PrzykÃladowe zapytanie SPARQL PrzykÃlad: PREFIX PREFIX SELECT WHERE { ?c } rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> ?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 — jezyk zapytań SPARQL , 82 PrzykÃladowe zapytanie SPARQL (2) Pobierz wszystkie instancje danej klasy, np. kurs (deklaracja prefiksów rdf, rdfs pominiete , dla zwiezà , 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 — jezyk zapytań SPARQL , 83 Struktura zapytania SELECT-FROM-WHERE Podobnie jak w SQL, zapytania SPARQL maja, strukture, SELECT-FROM-WHERE: • SELECT określa projekcje: , liczbe, 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 — jezyk 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: aca , używamy tutaj skróconej skÃladni: średnik wskazuje że nastepuj , , 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 — jezyk zapytań SPARQL , 85 Jawny join Kolejny przykÃlad: chcemy znaleźć nazwy wszystkich kursów prowadzonych przez wykÃladowce, 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 — jezyk 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>[email protected]</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 — jezyk 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 [email protected] Pomimo iż Grigoris Antoniou figuruje jako wykÃladowca, nie ma on adresu e-mail i nie zostanie znaleziony przez powyższe zapytanie. RDF — jezyk 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 wiecej: , Podaj nazwiska wykÃladowców i, jeśli jest znany, również ich adres e-mail” ” Wynik wyglada tak: , ?name Grigoris Antoniou David Billington RDF — jezyk zapytań SPARQL , ?email [email protected] 89 Podsumowanie • RDF stanowi podstawe, 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 jezykiem 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 — jezyk zapytań SPARQL , 90