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

Podobne dokumenty