Marcin Skulimowski - RDF
|
|
- Patrycja Skiba
- 7 lat temu
- Przeglądów:
Transkrypt
1 Marcin Skulimowski Wprowadzenie do Resource Description Framework I. Podstawy RDF RDF jest językiem służącym do reprezentacji informacji na temat zasobów w taki sposób aby informacje te mogły być łatwo przetwarzane przez aplikacje. Zasoby (Resources) Zasobem może być wszystko, każda rzecz, każdy obiekt np. książki, samochody, ludzie, wydawcy etc. Ważne jest aby każdy zasób posiadał identyfiaktor URI (ang. Universal Resource Identifier Zunifikowany Identyfikator Zasobów). Identyfikatorem URI może być wszystko co jednoznacznie identyfikuje dany zasób np.: numer ISBN, numer telefonu komórkowego. Szczególnym przypadkiem URI jest URL (ang. Universal Resource Locator Identyfikator Lokalizacji Zasobów) określony dla zasobów internetowych. Identyfikator URI nie musi umożliwiać dostępu do zasobu, ma go tylko jednoznacznie identyfikować. Szczególnym przypadkiem zasobów odgrywających ważną rolę w języku RDF są tzw. właściwości. Właściwości (Properties) Właściwości opisują cechy i właściwości zasobów np.: zatytułowany, napisany przez, należący do, w kolorze. Ponieważ właściwości są także zasobami oznacza to, że są identyfikowane przez URI (w praktyce często przez URL). Stwierdzenia o zasobach Ważnym elementem języka naturalnego są zdania. Zdania oznajmujące informują nas o pewnych faktach dotyczących występującego w nich podmiotu. Przykład 1 Rozważmy zdanie ma tytuł XString: XML as a String. W zdaniu tym możemy wyróżnić trzy elementy: Rzecz, która jest w tym zdaniu opisywana tzn. artykuł. Właściwość opisywanej rzeczy wyrażona przez ma tytuł. Wartość właściwości tytuł czyli XString: XML as a String. Można sobie wyobrazić inne stwierdzenia charakteryzujące powyższy artykuł np. 1
2 ma autora, którym jest W. F. Gilreath a. jest napisany w języku angielskim. Podstawowa idea języka RDF sprowadza się do założenia, że zasoby można opisywać przy pomocy stwierdzeń analogicznych do powyższych. Każde stwierdzenie języka RDF zawiera trzy elementy: podmiot (ang. subject) zasób (np. osoba, miejsce, rzecz) o którym mówi stwierdzenie. orzeczenie (ang. predicate) właściwość (np. nazwa, miasto, tytuł, kolor, kształt, charakterystyka) podmiotu. obiekt (ang. object) wartość właściwości opisywanej przez orzeczenie. Obiekt może być zasobem lub tzw. literałem czyli ciągiem znaków. Dzięki temu, że właściwości są zasobami mogą być szczegółowo określone w stwierdzeniach w których będą podmiotami. Pozwala to na precyzyjne określenie zależności między zasobami. Przykład 2 Zdanie Artykuł ma tytuł XString: XML as a String. może być reprezentowane w języku RDF przez następujące stwierdzenie: podmiot - orzeczenie obiekt XString: XML as a String. Zgodnie z wymogami RDF podmiot i orzeczenie w powyższym stwierdzeniu są jednoznacznie identyfikowane przez identyfikatory URI. Obiekt jest ciągiem znaków. Reprezentacja stwierdzeń Grafy Podstawową reprezentacją stwierdzeń języka RDF są grafy skierowane. Podmiot i obiekt są węzłami grafu. Orzeczenie jest krawędzią skierowaną od węzła reprezentującego podmiot do węzła reprezentującego orzeczenie. 2
3 Podmiot Orzeczenie 1 Orzeczenie 2 Literał Obiekt Podmioty i obiekty będące zasobami oznaczamy węzłem owalnym. Literały oznaczamy węzłami w kształcie prostokąta. Przykład 3 Stwierdzenie z Przykładu 1 ma następującą reprezentację: XString: XML as a String Przykład 4 Graf reprezentujący dwa stwierdzenia Marcin Skulimowski Wprowadzenie do RDF Notacja N3 Inną reprezentacją języka RDF jest tzw. notacja N3. Stwierdzenie w notacji N3 wygląda następująco: W przypadku gdy OBIEKT jest literałem: <PODMIOT> <ORZECZENIE> <OBIEKT>. 3
4 Rozpatrzmy konkretne przykłady. Przykład 5 <PODMIOT> <ORZECZENIE> OBIEKT. Stwierdzenia z Przykładu 4 możemy przedstawić następująco: < < Marcin Skulimowski. < < Wprowadzenie do RDF. Aby uniknąć pisania pełnych identyfikatorów URI możemy używać tzw. QNazw. QNazwa składa się z prefiksu określającego przestrzeń nazw po którym następuje dwukropek i lokalna nazwa zasobu. Pełen identyfikator URI otrzymujemy wówczas przez połączenie identyfikatora URI przestrzeni nazw i nazwy lokalnej zasobu. Stosując QNazwy możemy pominąć nawias kwadratowy. Przykład 6 Rozpatrzmy stwierdzenia z Przykładu 5. Przyjmijmy, że prefiks intrdf związany jest z przestrzenią nazw natomiast prefiks semt związany jest z przestrzenią nazw Wówczas powyższe stwierdzenia możemy zapisać intrdf: semt: semt:intrordf intrdf:autor Marcin Skulimowski. semt:intrordf intrdf:tytul Wprowadzenie do RDF. Zauważmy, że przestrzenie nazw definiujemy przy Zauważmy, że w stwierdzeniu 1 obiekt czyli autor jest ciągiem znaków. W ten sposób nie jesteśmy w stanie podać żadnych dodatkowych informacji dotyczących autora np. adres strony WWW, etc. (podmiotem stwierdzeń może być tylko zasób!). Jeżeli chcielibyśmy to zrobić musielibyśmy autora określić jako zasób. 4
5 Przykład 7 Określmy identyfikator URL autora: Graf wygląda wówczas następująco: Marcin 34 Powyższym graf reprezentuje następujące stwierdzenia: semt:intrordf intrdf:autor kto:2344. kto:2344 intrdf:imie Marcin. kto:2344 intrdf:wiek 34. gdzie kto oznacza przestrzeń nazw W notacji N3 stwierdzenia z tym samym podmiotem możemy zapisać skrótowo rozdzielając orzeczenie i obiekty średnikiem. Przykład 8 Stwierdzenia 2 i 3 z przykładu poprzedniego możemy zapisać następująco: kto:2344 intrdf:imie Marcin ; intrdf:wiek 34. Stwierdzenia z tym samym podmiotem i orzeczeniem możemy zapisać skrótowo rozdzielając obiekty przecinkiem. Przykład 9 Stwierdzenia kto:2344 intrdf:autor Wprowadzenie do RDF. kto:2344 intrdf:autor Logika Deskryptywna. 5
6 możemy zapisać następująco kto:2344 intrdf:autor Wprowadzeni do RDF, Logika Deskryptywna. Aktualny dokument RDF oznaczamy przez <>. Przykład intrdf: <> intrdf:tytul Wprowadzenie do RDF Puste węzły W przykładzie 7 aby móc dokładniej scharakteryzować autora określiliśmy dla niego identyfikator URI dzięki czemu autor stał się zasobem (i w grafie pojawił się nowy węzeł). Pozwoliło to nam użyć autora jako podmiotu dwóch stwierdzeń (oczywiście stwierdzeń takich może być więcej). Możemy mieć jednak do czynienia z sytuacją kiedy określanie URI dla zasobu nie będzie miało sensu np. wtedy gdy nie planujemy odwoływać się do danego zasobu (w tym przypadku do autora). Może się też zdarzyć, że w chwili tworzenia dokumentu nie będziemy znali identyfikatora URI dla danego zasobu. W takich przypadkach wykorzystujemy tzw. puste węzły czyli węzły bez identyfikatorów URI. Przykład 11 W poniższym grafie autor jest oznaczony pustym węzłem bez identyfikatora URI Marcin 34 W notacji N3 puste węzły oznaczamy przez _nazwa. W notacji N3 powyższe stwierdzenia zapisujemy następująco: semt:intrordf intrdf:autor _:aautor. _:aautor intrdf:imie Marcin. _:aautor intrdf:wiek 34. 6
7 W notacji N3 (oraz jak zobaczymy w reprezentacji XML) oznaczenie pustego węzła przez identyfikator ma znaczenie tylko lokalne wewnątrz dokumentu RDF. W przypadku gdy w dokumencie istnieje kilka pustych węzłów ich różne identyfikatory pozwalają je rozróżnić. Jeżeli będziemy odwoływać się do danego węzła z zewnątrz (np. z innego dokumentu RDF) musi on posiadać identyfikator URI. Przykład 11 obrazuje także inne zastosowanie pustych węzłów. Może się zdarzyć, że wartość pewnej właściwości nie jest pojedynczym zasobem albo literałem ale jest bardziej złożona. W powyższym przykładzie taka właściwością jest Wartość tej właściwości określiliśmy jako pusty węzeł, który może być podmiotem innych stwierdzeń. Dzięki temu możemy ją opisać bardziej szczegółowo. W notacji N3 puste węzły oznaczmy []. Przykład 12 Stwierdzenie _:aautor intrdf:imie Marcin. możemy zapisać następująco [] intrdf:imie Marcin. lub [intrdf:imie Marcin ]. Stwierdzenia _:aautor intrdf:imie Marcin. _:aautor intrdf:wiek 34. Możemy zapisać następująco [ intrdf:imie Marcin ] intrdf:wiek 34. Stwierdzenie to możemy rozumieć następująco: Pewna osoba o imieniu Marcin ma 34 lata. Rozpatrzmy przykład z dwoma pustymi węzłami. 7
8 Przykład 13 Graf z 3 stwierdzeniami, których podmioty są pustymi węzłami: Marcin Wprowadzenie do RDF Powyższy graf w notacji N3 możemy zapisać następująco: [ intrdf:imie Marcin ] rdfint:autor [ intrdf:tytul Wprowadzenie do RDF ]. Stwierdzenie to możemy rozumieć następująco: Pewna osoba o imieniu Marcin jest autorem pewnej książki pt. Wprowadzenie do RDF. Formuły Notacja N3 pozwala także na wykorzystywanie stwierdzeń w innych stwierdzeniach. Przykład 14 Rozważmy stwierdzenie: semt:intrordf intrdf:autor Marcin Skulimowski. Stwierdzenie to może być częścią innego stwierdzenia: { semt:intrordf intrdf:autor Marcin Skulimowski } intrdf:informs Tomek. W nawiasie {} możemy umieścić kilka stwierdzeń. Całe wyrażenie w nawiasie {} jest traktowane jako logiczna koniunkcja zawartych w nim stwierdzeń. 8
9 Literały z określonym typem danych W powyższym przykładzie wartością właściwości intrdf:wiek jest literał 34. Oczywiście chodzi nam o liczbę 34, a nie o ciąg znaków 34. Co więcej chodzi nam o liczbę 34 w systemie dziesiętnym. W grafie nie ma jednak o tym żadnej informacji. Informację taką można umieścić w grafie wykorzystując tzw. literały z określonym typem danych. Literał taki składa się z ciągu znaków określającego wartość i identyfikatora URI określającego typ danych. Przykład 15 Określmy typ danych dla literału z Przykładu 7 określającego wiek: kto:2344 intrdf:wiek 34 ^^< lub skrótowo używając QNazwy: kto:2344 intrdf:wiek 34 ^^<xsd:integer>. gdzie xsd oznacza przestrzeń nazw Graf wygląda następująco: ^^ W języku RDF nie ma zdefiniowanych typów danych (wyjątek stanowi wbudowany typ rdf:xmlliteral). Typy danych wykorzystywane przez RDF są określone przez podanie odpowiedniego identyfikatora URI. Zwykle są to typy danych wykorzystywane w języku XML. W powyższym przykładzie wykorzystaliśmy typ integer. Oczywiście w języku RDF nie istnieje żaden mechanizm sprawdzenia czy dany literał jest rzeczywiście danego typu. Sprawdzenia takiego mogą ewentualnie dokonywać aplikacje wykorzystujące dokumenty RDF. Przykład 16 Rozważmy następujące stwierdzenie kto:2344 intrdf:wiek auto ^^<xsd:integer>. Oczywiście ciąg znak auto nie jest typem integer. Jednak z punku widzenia języka RDF stwierdzenie to jest całkowicie poprawne. 9
10 Literał z informacją w jakim języku jest zapisany kto:2344 intrdf:imie XML Reprezentacja stwierdzeń przy pomocy grafów jest wygodna dla ludzi, ale całkowicie niezrozumiała dla maszyn. Jeżeli język RDF ma być jednym z fundamentów Internetu semantycznego to musi posiadać reprezentację czytelną dla maszyn. Warunek ten spełnia notacja N3. Jednak najbardziej popularną i oficjalną (zatwierdzoną przez konsorcjum W3C) reprezentacją języka RDF jest reprezentacja oparta na języku XML 1. W reprezentacji tej dokument RDF zawarty jest między znacznikami: <rdf:rdf> <!--stwierdzenia RDF--> </rdf:rdf> Jako jeden z atrybutów znacznika RDF podajemy zawsze przestrzeń nazw rdf xmlns:rdf=" oraz ewentualnie inne wykorzystywane przestrzenie nazw. Każdemu stwierdzeniu odpowiada znacznik: rdf:description po którym następuje określenie zasobu (przy pomocy atrybutu elementu rdf:description) którego stwierdzenie dotyczy. Określenie to może mieć 3 formy: atrybut about gdy określamy istniejący zasób, atrybut ID gdy określamy nowy (definiowany) zasób, bez określenia zasobu określamy wtedy tzw. zasób anonimowy. Dowolne stwierdzenie ma następującą reprezentację w języku XML <?xml version="1.0"?> podmiot, orzeczenie, obiekt. <rdf:rdf xmlns:rdf=" <rdf:description rdf:about="podmiot"> <ORZECZENIE>OBIEKT</ORZECZENIE> </rdf:rdf> 1 Notacja N3 jest bardziej ogólna od reprezentacji w XML. 10
11 Przykład 17 2 Rozważmy graf z przykładu 3. Stwierdzenie wyrażone tym grafem ma następującą reprezentację w języku XML <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:pub=" <rdf:description rdf:about=" <pub:tytul>xstring: XML as a String</pub:tytul> </rdf:rdf> Gdzie pub jest przestrzenią nazw w której zdefiniowana jest właściwość tytul (o definiowaniu właściwości będzie mowa w części kursu poświęconej RDFS). Przykład 18 Rozważmy stwierdzenia RDF z przykładu 4. Stwierdzenia te mają następującą reprezentację w języku XML <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" <rdf:description rdf:about=" <intrdf:autor>marcin Skulimowski</intrdf:autor> <rdf:description rdf:about=" <intrdf:tytul>wprowadzenie do RDF</intrdf:tytul> </rdf:rdf> W powyższych przykładach wartości właściwości opisywanej przez orzeczenie były literałami. Przykład 19 Rozważmy teraz bardziej złożony przykład w którym wartość właściwości opisywanej przez orzeczenie jest zasobem. 2 Wszystkie przykłady z tego rozdziału zostały sprawdzone walidatorem RDF znajdującym się na stronie konsorcjum W3C: 11
12 Marcin Skulimowski Wprowadzenie do RDF Technologie Semantyczne Graf ten reprezentuje następujące stwierdzenia: < < Marcin Skulimowski. < < Wprowadzenie do RDF. < < < < < < < Technologie Semantyczne. Wykorzystując QNazwy stwierdzenia te możemy w notacji N3 zapisać następująco: irdf:intrordf intrdf:autor Marcin Skulimowski. irdf:intrordf intrdf:tytul Wprowadzenie do RDF. irdf:intrordf intrdf:czesc < < intrdf:rok < intrdf:tytul Technologie Semantyczne. 12
13 gdzie: irdf - oznacza przestrzeń nazw intrdf - oznacza przestrzeń nazw Reprezentacja powyższych stwierdzeń w języku XML jest następująca: <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" <rdf:description rdf:about=" <intrdf:autor>marcin Skulimowski</intrdf:autor> <rdf:description rdf:about=" <intrdf:tytul>kurs RDF</intrdf:tytul> <rdf:description rdf:about=" <intrdf:czesc rdf:resource=" <rdf:description rdf:about=" <intrdf:rok>2007</intrdf:rok> <rdf:description rdf:about=" <intrdf:tytul>technologie Semantyczne</intrdf:tytul> </rdf:rdf> W przykładzie tym wartość właściwości czesc jest zasobem. Stąd odwołanie do zasobu przez atrybut rdf:resource. Przykład 20 Zauważmy, że w poprzednim przykładzie obiekt stwierdzenia 3 tzn. <rdf:description rdf:about=" <intrdf:czesc rdf:resource=" jest podmiotem stwierdzeń 4 i 5 tzn. <rdf:description rdf:about=" <intrdf:rok>2007</intrdf:rok> <rdf:description rdf:about=" <intrdf:tytul>technologie Semantyczne</intrdf:tytul> 13
14 Orzeczenia związane z tym samym podmiotem można umieścić w jednym elemencie Description. Ponadto element Description może być wartością właściwości. <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" <rdf:description rdf:about=" <intrdf:autor>marcin Skulimowski</intrdf:autor> <intrdf:tytul>kurs RDF</intrdf:tytul> <intrdf:czesc> <rdf:description rdf:about=" <intrdf:rok>2007</intrdf:rok> <intrdf:tytul>technologie Semantyczne</intrdf:tytul> </intrdf:czesc> </rdf:rdf> Oczywiście taki skrótowy zapis nie zmienia grafu. Predykaty (orzeczenia) Jak już wiemy wartością predykatu może być albo zasób albo literał. Zwykle parsery potrafią rozpoznać czy maja do czynienia z zasobem czy z literałem. Istnieje jednak możliwość zapisania wprost że wartość predykatu jest zasobem (literałem). Do tego celu wykorzystywany jest atrybut rdf:parsetype. Przykład 21 Rozważmy następujący fragment przykładu 20: <rdf:description rdf:about=" <intrdf:czesc> <rdf:description rdf:about=" <intrdf:rok rdf:parsetype="literal"> <h1> 2007 </h1> </intrdf:rok> <intrdf:tytul>technologie Semantyczne</intrdf:rok> </intrdf:czesc> Dodanie atrybutu rdf:parsetype do właściwości intrdf:rok powoduje, że fragment <h1>2007</h1> 14
15 jest traktowany jak zwykły ciąg znaków i nie jest parsowany. Metoda ta pozwala umieszczać fragmenty kodu xml bezpośrednio w plikach rdf/xml. Po tej modyfikacji graf wygląda następująco: Marcin Skulimowski Wprowadzenie do RDF <h1>2007</h1> Technologie Semantyczne Może się zdarzyć, że będziemy mieli do czynienia z zasobem, dla którego ani URI ani URL nie będziemy znali. W ten sposób nie będziemy mogli określić dla niego ani atrybutu rdf.about ani rdf:id. Istnieje jednak możliwość zapisania, że mamy do czynienia z zasobem. Robimy to przy pomocy atrybutu rdf:parsetype nadając mu wartość "Resource". Przykład 22 Rozważmy następujący fragment przykładu 6: <rdf:description rdf:about=" <intrdf:czesc rdf:parsetype="resource"> <intrdf:rok>2007</intrdf:rok> </intrdf:czesc> 15
16 Marcin Skulimowski Wprowadzenie do RDF genid: ARP Technologie Semantyczne Zauważmy, że mimo tego, że wartość predykatu czesc nie posiada identyfikatora URI to jednak jest oznaczona owalem tak jak zasób. Jest to tzw. pusty węzeł. Węzły takie omówimy w następnym rozdziale. Atrybutem rdf:parsetype można też oznaczyć właściwość będącą zasobem nawet jeżeli właściwość ta nie posiada wartości. Przykład 23 Rozważmy następujący przykład: <rdf:rdf xmlns:rdf=" xmlns:intrdf=" <rdf:description rdf:about=" <intrdf:czesc rdf:parsetype="resource"/> </rdf:rdf> Zauważmy, że właściwość czesc nie posiada wartości. Graf w tym przypadku wygląda następująco: 16
17 genid: ARP Puste węzły W poprzednim punkcie mieliśmy do czynienia z sytuacją gdzie URI zasobu nie był określony. Węzeł związany z takim zasobem nazywamy węzłem pustym (ang. blank node). Pojawienie się pustego węzła może oznaczać, że identyfikator URI dla danego zasobu nie istnieje lub jest w danej chwili nieznany. Zasób oznaczony pustym węzłem jest określony przez swoje własności, a nie przez identyfikator. Pusty węzeł ma zwykle przypisany przez walidator identyfikator. Dzięki temu, w ramach tego samego dokumentu RDF, puste węzły mogą być między sobą rozróżnione. Przykład 24 Rozważmy następujący przykład: <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" <rdf:description rdf:about=" <intrdf:autor> <rdf:description> <intrdf:imie>marcin</intrdf:imie> <intrdf:nazwisko>skulimowski</intrdf:nazwisko> </intrdf:autor> </rdf:rdf> Graf powyższego dokumentu RDF/XML wygląda następująco genid:arp Marcin Skulimowski 17
18 Walidator wygenerował identyfikator dla pustego węzła będącego wartością właściwości autor. Identyfikator te nie ma żadnego znaczenia poza tym, że pozwala rozróżnić puste węzły w ramach tego samego dokumentu RDF. Istnieje możliwość nadania pustemu węzłowi ściśle określonego identyfikatora. W tym celu wykorzystujemy atrybut rdf:nodeid. Przykład 25 Rozważmy następujący przykład: <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" <rdf:description rdf:about=" <intrdf:autor> <rdf:description rdf:nodeid="autordane"> <intrdf:imie>marcin</intrdf:imie> <intrdf:nazwisko>skulimowski</intrdf:nazwisko> </intrdf:autor> </rdf:rdf> Graf powyższego dokumentu RDF/XML wygląda następująco: autordane Marcin Skulimowski Uwaga: atrybut rdf:nodeid jest elementem składni RDF/XML i nie jest elementem abstrakcyjnego modelu RDF. 18
19 Referencje URI Względne URI i bazowy URI Zgodnie z ideą języka RDF wszystkie podmioty i orzeczenia powinny być opisywane identyfikatorami URI. Nie zawsze musi to jednak być cały identyfikator. Możemy operować względnym URI. Cały identyfikator URI jest wówczas uzyskany przez połączenie bazowego URI i względnego URI. Załóżmy, że dokument zawiera następujący element <rdf:description rdf:about="cos"> Bazowym URI jest URI dokumentu zawierającego powyższy element. Pełen identyfikator URI otrzymujemy przez połączenie URI bazowego i URI względnego tzn. Identyfikator URI otrzymujemy w powyższy sposób zawsze wtedy kiedy dla danego zasobu nie jest podany pełen identyfikator. Możliwe jest też określenie bazowego URI bez względu na dokument zawierający dany element. Wykorzystujemy w tym celu atrybut xml:base. Przykład 26 Rozważmy następujący przykład: <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="intrordf"> <intrdf:autor> <rdf:description> <intrdf:imie>marcin</intrdf:imie> <intrdf:nazwisko>skulimowski</intrdf:nazwisko> </intrdf:autor> </rdf:rdf> Podobnie jak poprzednio pełen identyfikator URI powstaje przez konkatencję (sklejenie) nazwy z atrybutu about (względny URI) oraz atrybutu xml:base (bazowy URI). W efekcie otrzymujemy: Jeżeli w powyższym przykładzie nie określimy atrybutu xml:base wówczas pełen URI jest otrzymany przez konkatencję adresu pliku zwierającego dokument RDF/XML oraz atrybutu about. 19
20 Atrybut rdf:id Atrybut rdf:id jest bardzo podobny do atrybutu rdf:about. Podobieństwo polega na tym, że oba atrybuty służą do określenia identyfikatora URI. Jednak o ile atrybut rdf:about określa URI istniejącego zasobu o tyle atrybutu rdf:id jest używany do określenia nowego zasobu. Do zasobu takiego możemy się odwoływać przez wartość atrybutu ID prefiksem #. Przykład 27 Rozważmy następujący przykład: <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="intrordf"> <intrdf:autor> <rdf:description> <intrdf:imie>marcin</intrdf:imie> <intrdf:nazwisko>skulimowski</intrdf:nazwisko> </intrdf:autor> <intrdf:seria> <rdf:description rdf:id="semtech"> <intrdf:rok>2007</intrdf:rok> <intrdf:tytul>technologie Semantyczne</intrdf:rok> </intrdf:seria> </rdf:rdf> Pełen URI dla w powyższym przykładzie uzyskujemy przez połączenie URI bazowego i wartości atrybutu rdf:id przedzielonych znakiem # tzn. Predykat rdf:value Rozważmy następujący przykład: <intrdf:modyfikacja>23</intrdf:modyfikacja> Przyjmijmy, że liczba 23 związana jest z ostatnią datą modyfikacji tzn. tyle dni temu zasób był modyfikowany. Nie wiemy jednak czy chodzi o godziny, dni, czy może miesiące. Taką dodatkową informację możemy zapisać następująco: <intrdf:modyfikacja>23 dni</intrdf:modyfikacja> 20
21 W tym przypadku wydobycie informacji o liczbie dni wymaga jednak rozbicia zawartości znacznika na dwa elementy: liczba i słowo dni. Informację taką możemy jednak zapisać inaczej: <intrdf:modyfikacja>23</intrdf:modyfikacja> <intrdf:jednostka>dzien</intrdf:jednostka> W tym przypadku jednak wartość 23 nie jest ściśle związana z jednostką poza tym, że modyfikacja i jednostka są właściwościami tego samego zasobu. Powyższych problemów możemy uniknąć jeżeli zastosujemy predykat rdf:value, który określa właśnie wartość. Rozważmy przykład: Przykład 28 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" <rdf:description rdf:about=" <intrdf:modyfikacja> <rdf:value>23</rdf:value> <intrdf:jednostka>dzien</intrdf:jednostka> </intrdf:modyfikacja> </rdf:rdf> W przykładzie tym liczba 23 jest wartością właściwości value związanej z zasobem autordane. genid:arp dzień 23 Predykat rdf:type Zasoby, którymi zajmowaliśmy się do tej pory nie miały ściśle określonego typu. Były po prostu zasobami. Możemy jednak określić typ zasobu przy pomocy predykatu rdf:type. 21
22 Przykład 29 Rozważmy następujący przykład: <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" <rdf:description rdf:about=" <intrdf:autor>marcin Skulimowski</intrdf:autor> <intrdf:type rdf:resource=" </rdf:rdf> Predykat rdf:type związał dany zasób z klasą kurs określoną w RDFS. RDF/XML skróty Istnieje kilka sposobów uproszczenia dokumentu RDF. Różne predykaty określające ten sam zasób mogą znajdować się w jednym elemencie Description (patrz Przykład 20). Niepowtarzające się właściwości (orzeczenia) można zapisać jako atrybuty zasobu (w języku XML atrybuty tego samego elementu muszą mieć różne nazwy). Przykład 30 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" <rdf:description rdf:about=" intrdf:autor="marcin Skulimowski" intrdf:tytulkurs="rdf"/> </rdf:rdf> W elemencie Description z określonym typem zasobu zamiast rdf:description możemy pisać typ zasobu. Przykład 31 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <intrdf:kurs rdf:about="intrordf"> <intrdf:autor> <rdf:description> 22
23 <intrdf:imie>marcin</intrdf:imie> <intrdf:nazwisko>skulimowski</intrdf:nazwisko> </intrdf:autor> </intrdf:kurs> </rdf:rdf> Zasoby, które nie mają orzeczeń nie muszą być zdefiniowane w bloku Description. W dotychczasowych przykładach zasoby były zawsze określone przy pomocy znacznika rdf:description. Blok rdf:description może być pominięty. Jest to możliwe w dwóch przypadkach. 1. Dany obiekt będący zasobem nie jest podmiotem żadnego orzeczenia. Przykład 32 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="intrordf"> <intrdf:czesc rdf:resource="tech"/> </rdf:rdf> Nowy zasób został wprowadzony przy pomocy atrybutu rdf:resource. 2. Zasób jest podmiotem stwierdzenia (stwierdzeń), ale dokładnie opisany jest w dalszej części dokumentu (i tam są podane związane z nim właściwości i ich wartości). Przykład 33 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="intrordf.html"> <intrdf:czesc rdf:resource="tech"/> <rdf:description rdf:about="tech"> <intrdf:autor>marcin Skulimowski</intrdf:autor> <intrdf:rok>2007</intrdf:rok> </rdf:rdf> 23
24 Powyższy zapis można uprościć wykorzystując omówiony wcześniej skrót tzn. orzeczenia podmiotu będącego zasobem możemy umieścić jako atrybuty znacznika rdf:description. <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="tech" intrdf:autor="marcin Skulimowski" intrdf:rok="2007"/> </rdf:rdf> Omówione powyżej skróty upraszczają reprezentację stwierdzeń RDF w języku XML, ale oczywiście nie zmieniają grafu będącego właściwą reprezentacją języka RDF. 24
25 Zaawansowane konstrukcje języka RDF Kontenery Kontenery są wykorzystywane w sytuacjach kiedy mamy do czynienia ze stwierdzeniami dotyczącymi wielu różnych zasobów traktowanych jako całość. W języku RDF istnieją trzy rodzaje kontenerów. rdf.bag Kontener ten zawiera nieuporządkowaną listę zasobów (lub literałów) w której poszczególne elementy mogą się powtarzać. Przykład 34 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="spis.html"> <intrdf:ksiazki> <rdf:bag> <rdf:li rdf:resource="semanticweb.pdf"/> <rdf:li rdf:resource="rdf.pdf"/> <rdf:li rdf:resource="owl.pdf"/> </rdf:bag> </intrdf:ksiazki> </rdf:rdf> Graf genid:a Gdzie:
26 Jeżeli kontener zawiera literały zamiast zasobów wówczas każdy element jest określony następująco <rdf:li>internet Semantyczny</rdf:li> Zamiast elementów rdf:li możemy użyć elementów postaci rdf:_n gdzie n jest liczbą. Przykład 35 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="spis.html"> <intrdf:ksiazki> <rdf:bag> <rdf:_1 rdf:resource="semanticweb.pdf"/> <rdf:_2 rdf:resource="rdf.pdf"/> <rdf:_3 rdf:resource="owl.pdf"/> </rdf:bag> </intrdf:ksiazki> </rdf:rdf> Elementy rdf:_n i rdf:li można użyć jednocześnie przy czym liczba n nie ma wpływu na numerację w grafie związaną z rdf:li. Przykład 36 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="spis.html"> <intrdf:ksiazki> <rdf:bag> <rdf:li rdf:resource="semanticweb.pdf"/> <rdf:_5 rdf:resource="rdf.pdf"/> <rdf:li rdf:resource="owl.pdf"/> </rdf:bag> </intrdf:ksiazki> </rdf:rdf> 26
27 Graf genid:a Gdzie: rdf:seq Kontener ten zawiera uporządkowaną listę zasobów (lub literałów) w której poszczególne elementy mogą się powtarzać. A zatem w tym przypadku kolejność odgrywa role i jest określana za pomocą elementu rdf:_n widocznym na grafie. Wartość tego atrybutu związana jest z kolejnością elementów listy. Przykład 37 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="spis.html"> <intrdf:ksiazki> <rdf:seq> <rdf:li rdf:resource="semanticweb.pdf"/> <rdf:li rdf:resource="rdf.pdf"/> <rdf:li rdf:resource="owl.pdf"/> </rdf:seq> </intrdf:ksiazki> </rdf:rdf> 27
28 W dokumencie RDF/XML możemy użyć elementy rdf:_n. Przykład 38 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="spis.html"> <intrdf:ksiazki> <rdf:seq> <rdf:_1 rdf:resource="semanticweb.pdf"/> <rdf:_2 rdf:resource="rdf.pdf"/> <rdf:_3 rdf:resource="owl.pdf"/> </rdf:seq> </intrdf:ksiazki> </rdf:rdf> rdf:alt Kontener ten zawiera alternatywy dla pewnej wartości. Musi on zawierać przynajmniej jeden element będący wartością domyślną (pierwszy element listy). Przykład 39 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="kurs.html"> <intrdf:prowadzi> <rdf:alt> <rdf:_1 rdf:resource="11234"/> <rdf:_2 rdf:resource="34567"/> </rdf:alt> </intrdf:prowadzi> </rdf:rdf> W powyższym przykładzie wykład prowadzi osoba o identyfikatorze lub osoba o identyfikatorze Kolekcje W przeciwieństwie do kontenerów kolekcja zawiera skończoną liczbę elementów z zaznaczonym elementem ostatnim. W dokumentach RDF/XML kolekcja jest zdefiniowana przez atrybut rdf:parsetype="collection". 28
29 Przykład 40 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="spis.html"> <intrdf:menu rdf:parsetype="collection"> <rdf:description rdf:about="semanticweb.pdf"/> <rdf:description rdf:about="rdf.pdf"/> <rdf:description rdf:about="owl.pdf"/> </intrdf:menu> </rdf:rdf> Graf genid:a69811 rdf:first rdf:rest genid:a69812 rdf:first rdf:rest genid:a69813 rdf:first rdf:rest przy czym użyliśmy następujących skrótów: rdf:first zamiast rdf:rest zamiast 29
30 Reifikacja Dotychczas rozważaliśmy stwierdzenia składające się z 3 elementów: podmiot, orzeczenie, obiekt Przykładem takiego stwierdzenia pochodzącym z języka potocznego jest zdanie Witrynę stworzył Łukasz W języku potocznym zdarzają się jednak stwierdzenia bardziej złożone np.: Marek powiedział, że witrynę stworzył Łukasz Jest to stwierdzenie dotyczące innego stwierdzenia czyli tzw. metastwierdzenie. Poznane dotychczas konstrukcje języka RDF nie pozwalają nam formułować stwierdzeń dotyczących tego stwierdzenia ponieważ stwierdzenie nie jest zasobem i nie może być podmiotem innego stwierdzenia. Umożliwia to tzw. reifikacja. Stwierdzenie Witrynę stworzył Łukasz będące częścią powyższego zdania ma bardzo prostą reprezentację w języku RDF\XML. <rdf:description rdf:about=" <intrdf:autor>łukasz</intrdf:autor> </<rdf:description> Rozważmy następujący przykład: Przykład 41 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="opinia.html"> <rdf:subject rdf:resource=" <rdf:predicate rdf:resource=" <rdf:object>lukasz</rdf:object> <rdf:type rdf:resource=" <intrdf:informs>tomek</intrdf:informs> </rdf:rdf> 30
31 Graf Łukasz Tomek Informacje o reifikowanym stwierdzeniu i reifikacje można rozdzielić. Jest to szczególnie przydatne gdy stwierdzenie poddane reifikacji jest podmiotem kilku stwierdzeń. Przykład 42 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about="#w"> <rdf:subject rdf:resource=" <rdf:predicate rdf:resource=" <rdf:object>łukasz</rdf:object> <rdf:type rdf:resource=" <rdf:description rdf:about=" <intrdf:informsabout rdf:resource="#w" /> </rdf:rdf> Reifikacji możemy też dokonać bez używania właściwości subject, predicate i object. Do właściwości występującej w stwierdzeniu dodajemy wówczas atrybut rdf:id. 31
32 Przykład 43 <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:intrdf=" xml:base=" <rdf:description rdf:about=" <intrdf:autor rdf:id="w">łukasz</intrdf:autor> <rdf:description rdf:about="#w"> <intrdf:informs rdf:resource=" /> </rdf:rdf> RDF i HTML Język HTML służy do tworzenia stron internetowych. Oprócz informacji i sposobu ich prezentacji można w dokumentach HTML umieścić pewne metadane. Standardowo robi się to przy pomocy znaczników <meta>. Można jednak zrobić coś więcej, można dołączyć do dokumentu HTML dokument RDF ze stwierdzeniami dotyczącymi zasobów. Zgodnie z zaleceniem W3C można tego dokonać umieszczając w dokumencie HTML link do odpowiedniego dokumentu RDF. Przykład 44 <head> <title>moja strona</title> <link rel="meta" type="application/rdf+xml" href="meta.rdf"> </head> Znacznik <link> nie musi znajdować się w nagłówku dokumentu HTML. Możemy umieścić go w części <body>. 32
33 II. Schematy RDF (RDFS) Język RDFS pozwala nam definiować słownictwo wykorzystywane w dokumentach RDF. Podstawowymi elementami takiego słownictwa są klasy (ang. class) zasobów i ich właściwości (ang. property) charakterystyczne dla rozważanej dziedziny. Klasy i właściwości Stwierdzenia języka RDF dotyczą konkretnych przykładów obiektów należących do różnych klas. Przykład 44 Rozważmy następujący przykład: <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:pub=" <rdf:description rdf:about=" <pub:tytul>how to Introduce Time Operator</pub:tytul> <rdf:type rdf:resource=" </rdf:rdf> Zasób jest określony jako przykład klasy Klasy zasobów charakteryzowane są przez właściwości. Rozważmy następujące stwierdzenie: Artykuł How to Introduce Time Operator został napisany przez Wprowadzenie do XML. Oczywiście stwierdzenie takie nie ma sensu. Obiekt How to Introduce Time Operator jest przykładem klasy artykuł. Wprowadzenie do XML jest przykładem klasy książka. Oczywiście artykuły nie są pisane przez ksiązki. Musimy zatem zagwarantować, aby wartość właściwości napisany/napisana przez była przykładem klasy autor. Oznacza to, że musimy określić zasięg (ang. range) tej właściwości. Podobnie musimy określić jej dziedzinę (ang. domain). W przypadku powyższego zdania dziedzinę stanowi klasa publikacja. Przestrzeń nazw dla schematów RDF: xmlns:rdfs=" Język RDFS posiada wbudowane pewne klasy i właściwości przy pomocy których możemy definiować własne klasy i właściwości. Podstawowe klasy RDF i RDFS rdfs:class klasa wszystkich klas. 33
34 Przykład 45 Klasę artykul możemy zdefiniować następująco: <rdfs:class rdf:id="publikacja"> <!--właściwości klasy--> </rdfs:class> rdfs:resource klasa wszystkich zasobów. rdfs:literal klasa wszystkich literałów (ciągów znaków). rdfs:xmlliteral klasa wszystkich literałów zawierających składnię XML'a. Klasa ta jest podklasą klasy rdfs:literal. rdf:property klasa wszystkich zasobów określających właściwości. Przykład 46 Właściwość tytul możemy zdefiniować następująco: <rdf:property rdf:id="tytul"> <!--właściwości--> </rdf:property> rdfs:datatype klasa typów danych. Każdy przykład tej klasy jest podklasą klasy rdfs:literal. rdf:statement klasa wszystkich reifikowanych stwierdzeń. rdf:bag nieuporządkowana kolekcja. rdf:seq uporządkowana kolekcja. rdf:alt kolekcja alternatyw. rdfs:container klasa kontenerów. rdf:constraintresource - klasa wszystkich więzów. Klasa rdfs:class jest podklasą klasy rdfs:resource tzn. każda klasa jest zasobem. Klasa rdfs:resource jest przykładem klasy rdfs:class ponieważ rdfs:resource jest klasą wszystkich zasobów, a zatem jest klasą czyli przykładem rdfs:class. 34
35 rdfs:resource rdfs:class rdfs:constraintresource rdf:property rdfs:constraintproperty RDFS hierarchia podstawowych klas W definicjach klas i właściwości możemy wykorzystywać następujące właściwości: Podstawowe właściwości RDF i RDFS rdf:type - właściwość, która określa klasę do której należy dany zasób. Zasób jest przykładem tej klasy (patrz Przykład 1). rdfs:subclassof - właściwość, która określa klasę (superklasę) w której zawiera się dana klasa (będąca jej podklasą). Wszystkie przykłady klasy są przykładami superklasy. Klasa może być podklasą wielu klas. Przykład 47 Klasa artykul jest podklasą klasy publikacje. <rdfs:class rdf:about="artykul"> <rdfs:subclassof rdf:resource="#publikacja"/> </rdfs:class> Przykład 48 Klasa artykulinternetksiazka artykułów które zostały opublikowane Internecie oraz w postaci książkowej jest podklasą klasy artykulinternet i klasy artykulksiazka. <rdfs:class rdf:id="artykulinternetksiazka"> <rdfs:subclassof rdf:resource="#artykulinternet"/> <rdfs:subclassof rdf:resource="#artykulksiazka"/> </rdfs:class> rdfs:subpropertyof - właściwość, która określa właściwość (superwłaściowość) w której zawiera się dana właściwość (będąca jej podwłaściwością). 35
36 Przykład 49 <rdf:property rdf:id="tytulksiazki"> <rdfs:subpropertyof rdf:resource="#tytul"/> </rdf:property> Właściwości rdfs:subclassof i rdfs:subpropertyof są przechodnie. rdfs:domain - określa dziedzinę (ang. domain) właściwości P tzn. klasę zasobów, które mogą się pojawić jako zasób z właściwością P. Jeżeli dziedzina nie jest określona może nią być dowolna klasa. rdfs:range - określa zakres (ang. range) właściwości P tzn. klasę zasobów, które mogą się pojawić jako wartość właściwości P. Przykład 50 Wartość właściwość tytul powinna być literałem. <rdf:property rdf:id="tytul"> <rdfs:domain rdf:resource="#publikacja"/> <rdfs:range rdf:resource=" </rdf:property> Przykład 51 Wartość właściwość ISSN powinna być liczbą całkowitą. <rdf:property rdf:id="issn"> <rdfs:domain rdf:id="publikacja"/> <rdfs:range rdf:resource=" </rdf:property> rdf:constraintproperty - klasa wszystkich właściwości definiujących więzy. Klasa ta jest podklasą klasy rdf:constraintresource i rdf:property. Klasa ta posiada dwa przykłady: rdfs:domain i rdfs:range. rdfs:label określenie zasobu dla ludzi Przykład 52 <rdf:property rdf:id="issn"> <rdfs:label>numer ISSN</rdfs:label> <rdfs:domain rdf:recource="#publikacja"/> <rdfs:range rdf:resource=" </rdf:property> 36
37 rdfs:seealso własność określająca inny zasób zawierający informacje na temat opisywanego zasobu. Przykład 53 <rdf:description rdf:about=" <rdfs:seealso rdf:resource=" rdfs:isdefinedby - określa przestrzeń nazw zasobu. rdfs:comment umożliwia dodanie komentarza Przykład 54 <rdfs:class rdf:id="artykulinternetksiazka"> <rdfs:subclassof rdf:resource="#artykulinternet"/> <rdfs:subclassof rdf:resource="#artykulksiazka"/> <rdfs:comment> klasa artykułów opublikowanych jednocześnie w Internecie i w formie książkowej </rdfs:comment> </rdfs:class> rdfs:member element kontenera rdf:first - pierwszy element listy (głowa) rdf:rest pozostała część listy (ogon) rdf:value określa wartość właściwości rdf:subject podmiot stwierdzenia rdf:predicate orzeczenie stwierdzenia rdf:object obiekt stwierdzenia 37
38 rdf:property rdfs:resource rdfs:class rdfs:constraintproperty rdf:literal rdfs:domain rdfs:range rdfs:constraintresource RDFS zależności między przykładami podstawowych klas i właściwości 38
39 Przykładowy Schemat RDF Poniżej schemat RDF związany z publikacjami. <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:rdfs=" <rdfs:class rdf:id="publikacja"/> <rdf:property rdf:id="tytul"> <rdfs:domain rdf:resource="#publikacja"/> <rdfs:range rdf:resource=" </rdf:property> <rdfs:class rdf:id="artykul"> <rdfs:subclassof rdf:resource="#publikacja"/> </rdfs:class> <rdfs:class rdf:id="ksiazka"> <rdfs:subclassof rdf:resource="#publikacja"/> </rdfs:class> <rdf:property rdf:id="tytulartykulu"> <rdfs:subpropertyof rdf:resource="#tytul"/> <rdfs:domain rdf:resource="#artykul"/> </rdf:property> <rdf:property rdf:id="tytulksiazki"> <rdfs:subpropertyof rdf:resource="#tytul"/> <rdfs:domain rdf:resource="#ksiazka"/> </rdf:property> <rdf:property rdf:id="issn"> <rdfs:domain rdf:resource="#publikacja"/> <rdfs:range rdf:resource=" </rdf:property> <rdf:property rdf:id="autor"> <rdfs:domain rdf:resource="#publikacja"/> <rdfs:range rdf:resource=" </rdf:property> <rdf:property rdf:id="liczbastron"> <rdfs:domain rdf:resource="#publikacja"/> <rdfs:range rdf:resource=" </rdf:property> </rdf:rdf> 39
40 Schematy RDF i notacja N3 Schematy RDF można zapisywać w notacji N3. W notacji N3 właściwość rdf:type ma skrótową postać a. Przykłady z poprzedniego rozdziału zapisane w notacji N3: Przykład 45* :Publikacja a rdfs:class. Przykład 46* :tytul a rdf:property. Przykład 47* :Artykul a rdfs:class. :Artykul rdfs.subclassof :Publikacja. Skrótowo: Przykład 48* :Artykul a rdfs:class; rdfs:subclassof :Publikacja. :ArtykulInternetKsiazka rdfs:subclassof :ArtykulInternet, :ArtykulKsiazka. Przykład 49* Przykład 50* Przykład 51* Przykład 52* :tytulksiazki rdfs:subpropertyof :tytul. :tytul rdfs:domain :publikacja; rdfs:range < :issn rdfs:domain :publikacja; rdfs:range < :issn rdfs:label "numer ISSN"; rdfs:domain :publikacja; rdfs:range < 40
41 Ograniczenia RDFS Język RDFS pozwala nam definiować proste ontologie. Posiada jedna pewne ograniczenia: rdfs:range określa zakres właściwości dla wszystkich klas. Ta sama właściwość może mieć różne zakresy dla różnych klas. Przykład: zywisie. Brak możliwości zapisania, że dwie klasy są rozłączne. Przykład: klasa Kobieta i klasa Mezczyzna. Brak możliwości definiowania klas z użyciem operacji sumy, iloczynu. Przykład: klasa Osoba jako rozłączna suma klas Kobieta i Mezczyzna. Brak ograniczeń na liczbę wartości które może posiadać dana właściwość. Przykład: właściwość mama. Brak bardziej szczegółowego określenia właściwości: właściwość przechodnia, właściwość odwrotna etc. Przykład: wyzszyod, zjada, jestzjadanyprzez Istnieje zatem potrzeba rozszerzenia RDFS. Rozszerzeniem takim jest język OWL (ang. Ontology Web Language). 41
42 IV. SPARQL SPARQL (ang. SPARQL Protocol And RDF Query Language) jest językiem zapytań dla dokumentów RDF. SPARQL pozwala wyciągać z nich dane zawężone według kryteriów określonych poprzez predykaty RDF. Jest opisany przez kilka specyfikacji W3C. W obecnej chwili wszystkie specyfikacje są w statusie szkicu. Ostania wersja robocza 26 marzec Zmienne w zapytaniach języka SPARQL oznaczamy przez Przykład 53 Dane:?nazwa_zmiennej < < "SPARQL Tutorial". Zapytanie: SELECT?title WHERE { < < } Wynik: "SPARQL Tutorial" Przykład 54 foaf: < _:a foaf:name "Johnny Lee Outlaw". _:a foaf:mbox <mailto:jlow@example.com>. _:b foaf:name "Peter Goodguy". _:b foaf:mbox <mailto:peter@example.org>. _:c foaf:mbox <mailto:carol@example.org>. Zapytanie: PREFIX foaf: < SELECT?name?mbox WHERE {?x foaf:name?name.?x foaf:mbox?mbox } Wynik: "Johnny Lee Outlaw" <mailto:jlow@example.com> 42
43 "Peter Goodguy" Przykład 55 dt: ns: : xsd: < :x ns:p "cat"@en. :y ns:p "42"^^xsd:integer. :z ns:p "abc"^^dt:specialdatatype. Zapytanie: SELECT?v WHERE {?v?p "cat"@en } Wynik: < Przykład 56 foaf: < _:a foaf:name "Alice". _:b foaf:name "Bob". Zapytanie: PREFIX foaf: < SELECT?x?name WHERE {?x foaf:name?name } Wynik: _:c "Alice" _:d "Bob" Przykład 57 foaf: < _:a foaf:name "Alice". _:b foaf:name "Bob". Zapytanie: PREFIX foaf: < 43
44 SELECT?x?name WHERE {?x foaf:name?name FILTER regex(?name, "bo", "i" )} Wynik: _:c "Bob" Przykład 58 foaf: < _:a foaf:name "Alice". _:b foaf:name "Bob". _:a foaf:age 23. _:b foaf:age 32. Zapytanie: PREFIX foaf: < SELECT?z WHERE {?x foaf:age?y FILTER (?y<30)?x foaf:name?z } Wynik: "Alice" Przykład 59 dc: : ns: < :book1 dc:title "SPARQL Tutorial". :book1 ns:price 42. :book2 dc:title "The Semantic Web". :book2 ns:price 23. Zapytanie: PREFIX dc: < PREFIX ns: < SELECT?title?price WHERE {?x dc:title?title. OPTIONAL {?x ns:price?price. FILTER (?price < 30) } } Wynik: "SPARQL Tutorial" "The Semantic Web" 23 44
45 Zastosowania 1) Dublin Core 2) Adobe PDF 3) FOAF 3) RDFpic Aplikacje 4) IsaViz 5) RDF API for PHP 45
46 Dublin Core jest ogólnym standardem metadanych służącym do opisu zasobów. Wersja 1.1 standardu Dublin Core Metadata Element Set określa następujące elementy metadanych, które mogą być obecne w opisie: Title (tytuł) Creator (twórca) Subject and Keywords (temat i słowa kluczowe) Description (opis) Publisher (wydawca) Contributor (współtwórca) Date (data) Resource Type (typ zasobu) Format (format) Resource Identifier (identyfikator zasobu) Source (źródło) Language (język) Relation (odniesienie) Coverage (zakres) Rights Management (zarządzanie prawami) Przykład <rdf:rdf xmlns:rdf=" xmlns:dc=" <rdf:description rdf:about=" <dc:title>wprowadzenie do RDF</dc:title> <dc:creator>marcin Skulimowski</dc:creator> <dc:date> </dc:date> <dc:type>text</dc:type> <dc:format>text/html</dc:format> <dc:format>1873 bytes</dc:format> <dc:language>pl</dc:language> <dc:relation> </rdf:rdf> 46
47 Marcin Skulimowski Wprowadzenie do Ontology Web Language Ontologie Ontologia jest pojęciem zaczerpniętym z filozofii, gdzie miedzy innymi oznacza analizę pojęć i idei w celu ustalenia co istnieje oraz jakie są związki pomiędzy istniejącymi elementami. W informatyce pojęcia tego używa się w bardzo podobnym kontekście. Ontologia to formalna specyfikacja konceptualizacji pewnego obszaru wiedzy czy opisu elementów rzeczywistości. Przy projektowaniu ontologii wykorzystywane są metody kategoryzacji i hierarchizacji. Pewnym pojęciom abstrakcyjnym i grupom obiektów posiadającym wspólne cechy przyporządkowywane są nazwy, tworzone są wiec klasy obiektów (kategoryzacja). Tak utworzone klasy są następnie umieszczane w strukturze hierarchicznej. Przy tworzeniu ontologii można użyć różnych języków modelowania. Najczęściej wykorzystywany jest RDF/RDFS lub bardziej wyrafinowane języki wykorzystujące tą technologię np. OWL. Wymagania stawiane językom służącym do tworzenia ontologii Dobrze określona składnia. Formalna semantyka semantyka opisująca precyzyjnie wiedzę. Precyzyjnie tzn. bez subiektywnych intuicji oraz bez możliwość różnych interpretacji przez różne aplikacje. Skuteczne wnioskowanie Formalna semantyka pozwala wnioskować na temat wiedzy. W przypadku ontologii możemy wnioskować o: Przynależności do klasy. Jeżeli x jest przykładem klasy C i C jest podklasą D wówczas wnioskujemy, że x jest przykładem D. Równoważności klas. Jeżeli klasa A jest równoważna klasie B i klasa B jest równoważna klasie C wówczas klasa A jest równoważna klasie C. Niesprzeczności. Przypuśćmy, że zadeklarowaliśmy, że x jest przykładem klasy A i klasa A jest podklasą B C, A jest podklasą D, klasy B i D są rozłączne. Otrzymujemy sprzeczność. Klasyfikacji. Jeżeli zdeklarujemy, że pewne warunki są wystarczające dla przynależności do klasy A, wówczas jeżeli obiekt x spełnia te warunki, wówczas wnioskujemy, że x jest przykładem klasy A. Wnioskowania takie są przeprowadzane automatycznie i pozwalają: 47
48 Sprawdzić niesprzeczność ontologii. Automatycznie klasyfikować przykłady klasy. Uzyskać zależności między klasami, które nie są wprost zapisane w ontologii. Ontology Web Language Nagłówek Dokumenty OWL (nazywamy ontologiami OWL) są dokumentami RDF/XML. Korzeniem takiego dokumentu jest element RDF którego atrybutami są deklaracje przestrzeni nazw. Przykład 1 <rdf:rdf xmlns=" xml:base=" xmlns:intrdf=" xmlns:owl=" xmlns:rdf=" xmlns:rdfs=" xmlns:xsd=" Następnym elementem jest opcjonalny element owl:ontology, który zawiera pewne informacje dotyczące ontologii. Element ten zawiera atrybut rdf:about, którego wartość określa nazwę lub referencję do ontologii. Wartość "" oznacza, ze opisujemy ontologię znajdującą się w bieżącym dokumencie. Reprezentant klasy owl:ontology (czyli ontologia) posiada następujące właściwości: owl:versioninfo informacje o wersji ontologii. owl:priorversion poprzednia wersji ontologii (właściwość nie tylko owl:ontology). owl:backwardcompatiblewith określa ontologię, która jest kompatybilna z daną ontologią. Wszystkie konstrukcje występujące w obu ontologiach (klasy, właściwości etc.) mają to samo znaczenie. owl:incompatiblewith - określa ontologię, która jest nie kompatybilna z daną ontologią. Niekompatybilność może na przykład oznaczać, że zmieniło się określenie jednej z klas. owl:imports określa identyfikator URI ontologii, które są przyjmowane jako część aktualnej ontologii. Jeżeli ontologia A importuje ontologię B oznacza to, że w ontologii A są wszystkie klasy i właściwości określone przez B. 48
49 owl:imports jest właściwością przechodnią. Jeżeli ontologia A importuje ontologię B i ontologia B importuje ontologię C wówczas ontologia A importuje ontologię C. Przykład 2 <owl:ontology rdf:about=""> <rdfs:label>ontologia Uniwersytetu</rdfs:label> <owl:versioninfo>pierwsza wersja ontologii zwiazanej z uniwersytetem</owl:versioninfo> <owl:priorversion rdf:resource=" <owl:backwardcompatiblewith rdf:resource=" <owl:incompatiblewith rdf:resource=" <owl:imports rdf:resource=" Klasy W języku OWL istnieją dwie wbudowane klasy: owl:thing klasa zwierająca wszystkie klasy. owl:nothing klasa pusta zawierająca się w każdej klasie. Własne klasy definiujemy przy pomocy elementu owl:class. Klasa owl:class jest podklasą klasy rdfs:class. Przykład 3 <owl:class rdf:id= Profesor > <rdfs:subclassof rdf:resource= #kadraakademicka /> <owl:class> W języku OWL możemy powiedzieć, że dwie klasy są rozłączne. Używamy w tym celu właściwości owl:disjointwith. Przykład 4 <owl:class rdf:about= #Profesor > <rdfs:disjointwith rdf:resource= #Adiunkt /> <rdfs:disjointwith rdf:resource= #Asystent /> </owl:class> Możemy też powiedzieć, że jedna klasa jest równoważna z inną klasą. Służy do tego właściwość owl:equvalentclass. 49
50 Przykład 5 <owl:class rdf:about= #Adiunkt > <rdfs:equivalentclass rdf:resource= #Doktor /> </owl:class> Właściwości W języku OWL istnieją dwa rodzaje właściwości: właściwości obiektowe (owl:objectproperty) łączą obiekty z obiektami. Przykład 6 <owl:objectproperty rdf:id= jestprowadzonyprzez > <rdfs:domain rdf:resource= #Wyklad /> <rdfs:range rdf:resource= #Profesor /> </owl:class> właściwości typów danych (owl:datatypeproperty) łączą obiekty ze standardowymi typami danych (np. z XMLSchema) Przykład 7 <owl:datatypeproperty rdf:about= #rokstudiow > <rdfs:domain rdf:resource= #Student /> <rdfs:range rdf:resource= /> </owl:class> Właściwość owl:inverseof służy do określenia właściwość będącej odwrotnością innej właściwości. Przykład 8 <owl:objectproperty rdf:about= #prowadziwyklad > <rdfs:domain rdf:resource= #Profesor /> <rdfs:range rdf:resource= #Wyklad /> <owl:inverseof rdf:resource= #jestprowadzonyprzez /> </owl:class> Podobnie jak w przypadku klas możemy powiedzieć, że dwie właściwości są równoważne. Służy do tego właściwość owl:equivalentproperty. Przykład 9 <owl:objectproperty rdf:id= #wyklada > <owl:equivalentproperty rdf:resource= #prowadziwyklad /> 50
51 </owl:objectproperty> Ograniczenia właściwości Załóżmy, że chcemy powiedzieć, że wszyscy reprezentanci klasy C spełniają pewne warunki (oprócz wieli innych). Możemy to zrobić twierdząc, że klasa C jest podklasą klasy C której wszyscy reprezentanci spełniają te warunki. Klasa C nie ma identyfikatora (jest anonimowa) i jest określona przez podanie warunków jakie spełniają jej elementy. Warunki te są związane z ograniczeniami nałożonymi na właściwości. Ograniczenie właściwości określamy następująco: <owl:restriction> <owl:onproperty rdf:resorce= nazwa_wlasciwosci /> sposób_ograniczenia </owl:restriction> Właściwości możemy ograniczać na kilka sposobów. Ograniczenia wartości owl:allvaluesfrom określa dopuszczalne wartości właściwości. Przykład 10 <owl:class rdf:about= wykladnapierwszymroku > <owl:subclassof> <owl:restriction> <owl:onproperty rdf:resorce= #jestprowadzonyprzez /> <owl:allvaluesfrom rdf:resorce= #Profesor /> </owl:restriction> </owl:subclassof> </owl:class> Klasa wykladnapierwszymroku obejmuje wykłady, które są prowadzone przez przedstawicieli klasy Profesor. UWAGA: nie oznacza to, że każdy przedstawiciel klasy wykladnapierwszymroku musi mieć określonego prowadzącego profesora. Jeżeli jednak ma właściwość jestprowadzonyprzez to jej wartość musi być typu Profesor. 51
52 owl:somevaluesfrom przynajmniej jedna wartość właściwości musi być danego typu. Przykład 11 <owl:class rdf:about= #Profesor > <owl:subclassof> <owl:restriction> < owl:onproperty rdf:resorce= #prowadziwyklad /> <owl:somevaluesfrom rdf:resorce= #wykladmonograficzny /> </owl:restriction> </owl:subclassof> </owl:class> Oznacza to, że każdy reprezentant klasy Profesor musi prowadzić przynajmniej jeden wykład monograficzny (reprezentant klasy wykladmonograficzny). owl:hasvalue określa dokładną wartość właściwości. Przykład 12 <owl:class rdf:about= #wykladmatematyka > <owl:subclassof> <owl:restriction> < owl:onproperty rdf:resorce= #jestprowadzonyprzez /> <owl:hasvalue rdf:resorce= # /> </owl:restriction> </owl:subclassof> </owl:class> Oznacza to, że wykład z matematyki jest prowadzony przez osobą o identyfikatorze Ograniczenia kardynalne Ograniczenia takie pozwalają nam określić ile wartości może posiadać dana właściwość. owl:mincardinality minimalna liczba wartości. owl:maxcardinality minimalna liczba wartości. owl:cardinality dokładna liczba wartości. 52
53 Przykład 13 <owl:class rdf:about= #WykladOpcjonalny > <owl:subclassof> <owl:restriction> <owl:onproperty rdf:resorce= #uczestniczy /> <owl:mincardinality rdf:datatype= /> 10 </owl:mincardinality> </owl:restriction> </owl:subclassof> </owl:class> Specjalne właściwości owl:transitiveproperty właściwość przechodnia. Przykład: jestwyzszyod, jestnastepca. owl:symmetricproperty właściwość symetryczna. Przykład: jesttegosamegowzrostu, jestbratem. owl:functionalproperty właściwość która może posiadać co najwyżej jedna wartość. Przykład: wiek, wzrost, numerissn. owl:inversefunctionalproperty właściwość która dla dwóch różnych obiektów nie może posiadać tej samej wartości. Przykład: numerpesel, numertelefonu. Przykład 14 <owl:objectproperty rdf:id= studiujenatymsamymrokuco > <rdf:type rdf:resource= &owl;transitiveproperty /> <rdf:type rdf:resource= &owl;symmetricproperty /> <rdfs:domain rdf:resource= #Student /> <rdfs:range rdf:resource= #Student /> </owl:objectproperty> 53
54 Operacje Boolowskie W języku OWL możliwe definiowanie klas przy pomocy operacji Boolowskich. owl:unionof określamy klasę będącą sumą innych klas. Przykład 15 <owl:class rdf:id= skladosobowyuniwersytetu > <owl:unionof rdf:parsetype= Collection > <owl:class rdf:about= #kadraakademicka /> <owl:class rdf:about= #Student /> </owl:unionof> </owl:class> owl:intersectionof określamy klasę będącą sumą innych klas. Przykład 16 <owl:class rdf:id= AdunkciWydzialuMatematyki > <owl:intersectionof rdf:parsetype= Collection > <owl:class rdf:about= #OsobyZeStopniemDoktora /> <owl:class rdf:about= #PracownicyWydzialuMatematyki /> </owl:unionof> </owl:class> owl:complementof określamy klasę będącą dopełnieniem innej klasy. Przykład 16 <owl:class rdf:id= pracownicyadministracji > <owl:subclassof> <owl:class> <owl:complementof rdf:resource= pracownicynaukowi /> </owl:class> </owl:subclassof> </owl:class> 54
55 Wyliczanie Za pomocą elementu owl:oneof możemy określić klasę wypisując jej wszystkie elementy. Przykład 17 <owl:class rdf:id= DniTygodnia > <owl:oneof rdf:parsetype= Collection > <owl:thing rdf:about= #Poniedzialek /> <owl:thing rdf:about= #Wtorek /> <owl:thing rdf:about= #Sroda /> <owl:thing rdf:about= #Czwartek /> <owl:thing rdf:about= #Piatek /> <owl:thing rdf:about= #Sobota /> <owl:thing rdf:about= #Niedziela /> </owl:oneof> </owl:class> Przykłady klas Klasy zdefiniowane w ontologii możemy wykorzystywać w dokumentach RDF. Przykład 18 <rdf:description rdf:id= > <rdf:type rdf:resource= #kadraakademicka /> <rdf:description> Równoważnie Przykład 19 <kadraakademicka rdf:id= /> Oczywiście do określenia klasy możemy dodać orzeczenia. Przykład 20 <kadraakademicka rdf:id= > <uni:prowadziwyklad>matematyka Dyskretna</uni:prowadziWyklad> </kadraakademicka> W języku OWL dwa obiekty (przykłady) klasy mające różne identyfikatory lub nazwy nie muszą być różnymi obiektami. 55
56 Przykład 21 <owl:objectproperty rdf:id= jestprowadzonyprzez > <rdfs:domain rdf:resource= #Wyklad /> <rdfs:range rdf:resource= #Profesor /> <rdf:type rdf:resource= &owl;functionalproperty /> </owl:class> <Wyklad rdf:id= w234 > <jestprowadzonyprzez rdf:resource= # > <jestprowadzonyprzez rdf:resource= # > </Wyklad> Powyższy fragment ontologii nie prowadzi aplikacji wnioskującej do sprzeczności ponieważ nie jest powiedziane, że profesor o ID nie jest profesorem o ID Informacje o tym, że dwa przykłady klasy są różne musimy zapisać wprost. Przykład 22 <Profesor ID= > <owl:differentfrom rdf:resource= # /> </Profesor> Przykład 23 <owl:alldifferent> <owl:distinctmembers rdf:parsetype= Collection > <lecturer rdf:about= # /> <lecturer rdf:about= # /> <lecturer rdf:about= # /> <lecturer rdf:about= # /> </owl:distinctmembers> </owl:alldifferent> 56
57 Dialekty OWL OWL Full wszystkie konstrukcje języka mogą być stosowane. OWL DL spełnia następujące warunki: podział słownictwa każdy zasób może być jedynie: klasą, typem danych, właściwością, przykładem klasy lub częścią wbudowanego słownictwa. Oznacza to, że np. klasa nie może być jednocześnie przykładem klasy. Podobnie właściwość nie może posiadać pewnych wartości będących typami danych i pewnych będących przykładami klas. Typy zasobów muszą być pisane wprost. Przykład 24 <owl:class rdf:id= C1 > <rdfs:subclassof rdf:about= #C2 /> </owl:class> Możemy wywnioskować, że zasób C2 jest klasą. W OWL DL musi to być jednak zapisane wprost: <owl:class rdf:id= C2 /> Zbiory właściwości obiektowych i właściwości typów danych są rozłączne. Właściwości przechodnie nie mogą być ograniczane kardynalnie. Anonimowe klasy są dozwolone jedynie jako dziedzina i zakres owl:equivalentclass oraz owl:disjointwith, i jako zakres rdfs:subclassof. OWL Lite spełnia warunki OWL DL oraz warunki: Zakazane jest użycie konstruktorów: owl:oneof, owl:disjointwith, owl:unionof, owl:complementof i owl:hasvalue. W ograniczeniach kardynalnych właściwości można stosować tylko liczby 0 i 1. Właściwość owl:equivalentclass nie być użyta dla anonimowych klas. 57
58 58
59 Reguły wnioskowania w notacji N3. Aby móc wnioskować w oparciu o RDF i OWL musimy dysponować regułami np. { :termostat :temp :wysoka} log:implies { :podgrzewanie :moc 0 }. W formułach mogą występować zmienne, które mogą przyjmować wartości różnych obiektów. Możliwe są dwa rodzaje zmiennych. Zmienne uniwersalne Zmienną uniwersalną deklarujemy następująco: Przykład 1 Rozważmy :x. { :termostat :temp :x } log:implies { :chlodzenie :moc :x }. Reguła ta mówi, że jeżeli temperatura jest x wówczas moc chłodzenia wynosi x. Zmienne egzystencjalne Zmienną egzystencjalną deklarujemy :x 59
Dodatkowe możliwości RDF. Seminarium magisterskie Paweł Chrząszczewski
Dodatkowe możliwości RDF Seminarium magisterskie Paweł Chrząszczewski Inne możliwości RDF RDF posiada szereg dodatkowych funkcji, takich jak wbudowane typy i właściwości reprezentujące grupy zasobów i
Internet Semantyczny. Schematy RDF i wnioskowanie
Internet Semantyczny Schematy RDF i wnioskowanie Ewolucja Internetu Internet dzisiaj Internet Semantyczny Jorge Cardoso, The Syntactic and the Semantic Web, in Semantic Web Services: Theory, Tools, and
RDF Schema (schematy RDF)
RDF Schema (schematy RDF) Schemat RDF nie dostarcza słownictwa dla aplikacji klasy jak np.: Namiot, Książka, lub Osoba; i właściwości, takich jak np.: waga w kg, autor lub jobtitle Schemat RDF zapewnia
Język RDF. Mikołaj Morzy Agnieszka Ławrynowicz. Instytut Informatyki Poznań, rok akademicki 2013/2014
Język RDF Mikołaj Morzy Agnieszka Ławrynowicz Instytut Informatyki Poznań, rok akademicki 2013/2014 (c) Mikołaj Morzy, Agnieszka Ławrynowicz, Instytut Informatyki Politechniki Poznańskiej TSiSS 1 Sieci
RDF (Resource Description Framework)
RDF (Resource Description Framework) Agnieszka Ławrynowicz 2009.09.29 Podstawowe elementy Zasoby (ang. resources) identyfikowane za pomocą URI, ale URI niekoniecznie wskazuje zasób odpowiadają węzłom w
Semantic Web. dr inż. Aleksander Smywiński-Pohl. Elektroniczne Przetwarzanie Informacji Konsultacje: czw , pokój 3.211
RDF RDFS i OWL Linked Data Elektroniczne Przetwarzanie Informacji Konsultacje: czw. 14.00-15.30, pokój 3.211 RDF RDFS i OWL Linked Data Plan prezentacji RDF RDFS i OWL Linked Data RDF RDFS i OWL Linked
Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009
PWSZ w Tarnowie Tarnów, 6 lutego 2009 1 Interpretacja trójek i SWI-Prolog Składnia 2 3 4 Interpretacja trójek i SWI-Prolog Składnia Opis (ang. Resource Description Framework) jest specyfikacją modelu metadanych,
Semantic Web. Grzegorz Olędzki. prezentacja w ramach seminarium Protokoły komunikacyjne. luty 2005
Semantic Web Grzegorz Olędzki prezentacja w ramach seminarium Protokoły komunikacyjne luty 2005 Co to jest Semantic Web? "The Semantic Web is an extension of the current web in which information is given
Internet Semantyczny. Wstęp do OWL 2
Internet Semantyczny Wstęp do OWL 2 RDFS Podstawowymi elementami które określamy w RDFS są klasy (ang. class) zasobów i właściwości (ang. property) zasobów charakterystyczne dla interesującego nas fragmentu
Sprawozdanie z laboratorium 2: Modeling knowledge with Resource Description Framework (RDF)
Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA AUTOMATYKI Sprawozdanie z laboratorium 2: Modeling knowledge with Resource
Wstęp do Technologii Semantycznych. Idea, język RDF
Wstęp do Technologii Semantycznych Idea, język RDF Wielkość Internetu http://www.worldwidewebsize.com/ Wielkość Internetu http://www.worldwidewebsize.com/ Problem Ilość informacji jest tak duża, że realne
Standardy semantyczne
Standardy semantyczne Spis treści 1. Topic Maps... 3 1.1. Struktura... 3 1.2. Semantyka i wnioskowanie... 6 1.3. Zastosowania... 7 2. RDF i RDFS... 9 2.1. Struktura... 9 2.2. Pojęcia i abstrakcyjna składnia...17
rdf:type ex:homepage ex:createdwith http://www.w3c.org /amaya rdf:type ex:htmleditor
TSiSS, 2010/2011 Ćwiczenie 1. (RDF) Stwórz pliki w formacie RDF i w serializacji XML dla podanych grafów (modelując przestrzeń nazw dla ex jako http://example.org): 1.1 http://www.w3.org/ho me/lassila
Na podstawie artykułu: http://www.w3.org/teamsubmission/turtle/
Na podstawie artykułu: http://www.w3.org/teamsubmission/turtle/ 1 Nazwa Terse RDF Triple Language konkretna składnia językowa dla frameworka RDF i jego standardów rozszerzenie N-Triples wykorzystujące
DTD - encje ogólne i parametryczne, przestrzenie nazw
DTD - encje ogólne i parametryczne, przestrzenie nazw Instytut Informatyki Encje Encja (ang.entity) - uogólnienie pojęcia makrodefinicji Encje to dogodny sposób reprezentacji danych które występują wielokrotnie,
Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych
rk Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych pojęć, prawdopodobnie zastanawiasz się, kiedy zaczniesz
Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu. 1 Logika Klasyczna obejmuje dwie teorie:
Reprezentacja wiedzy: Ontologie w Semantic Web
Reprezentacja wiedzy: Ontologie w Semantic Web Wojciech Jaworski Instytut Informatyki Uniwersytet Warszawski Wojciech Jaworski (MIM UW) Ontologie w Semantic Web 1 / 36 Semantic Web Inicjatywa, która ma
Krzysztof Kutt Sprawozdanie 2: Modeling knowledge with Resource Description Framework (RDF)
Akademia Górniczo-Hutnicza Wydział EAIiIB Katedra Informatyki Stosowanej Semantic Web Technologies 2013 Krzysztof Kutt Sprawozdanie 2: Modeling knowledge with Resource Description Framework (RDF) Kraków
Zasady Nazewnictwa. Dokumentów XML 2007-11-08. Strona 1 z 9
Zasady Nazewnictwa Dokumentów 2007-11-08 Strona 1 z 9 Spis treści I. Wstęp... 3 II. Znaczenie spójnych zasady nazewnictwa... 3 III. Zasady nazewnictwa wybrane zagadnienia... 3 1. Język oraz forma nazewnictwa...
Internet Semantyczny i Logika I
Internet Semantyczny i Logika I Warstwy Internetu Semantycznego Dowód Zaufanie Logika OWL, Ontologie Podpis cyfrowy RDF, schematy RDF XML, schematy XML przestrzenie nazw URI Po co nam logika? Potrzebujemy
MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI
MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI ul. Wspólna 1/3 00-529 Warszawa ZASADY NAZEWNICTWA DOKUMENTÓW XML Projekt współfinansowany Przez Unię Europejską Europejski Fundusz
Wprowadzenie. ezykiem i podstawowym (najniższego poziomu) standardem modelowania ontologicznego. zjawiska dziedziny problemowej.
Wprowadzenie RDF jest j ezykiem i podstawowym (najniższego poziomu) standardem modelowania ontologicznego. RDF pozwala na definiowanie znaczenia stwierdzeń opisujacych zjawiska dziedziny problemowej. W
Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.
Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
Wykład 2. Relacyjny model danych
Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających
Kaskadowe arkusze stylów (CSS)
Kaskadowe arkusze stylów (CSS) CSS (Cascading Style Sheets) jest to język opisujący sposób, w jaki przeglądarki mają wyświetlać zawartość odpowiednich elementów HTML. Kaskadowe arkusze stylów służą do
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ 1 Inferencyjna równoważność formuł Definicja 9.1. Formuła A jest
Internet Semantyczny. Podstawy SPARQL
Internet Semantyczny Podstawy SPARQL Co to jest SPARQL? Skrót SPARQL to akronim od SPARQL Protocol and RDF Query Language. Jest to język zapytań dla formatu RDF nie ogranicza się jednak do RDF wiele innego
Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Rozszerzenie funkcjonalności systemów wiki w oparciu o wtyczki i Prolog
Knowledge Rozszerzenie funkcjonalności systemów wiki w oparciu o wtyczki i Prolog 9 stycznia 2009 Knowledge 1 Wstęp 2 3 4 5 Knowledge 6 7 Knowledge Duża ilość nieusystematyzowanych informacji... Knowledge
SAS Institute TECHNICAL SUPPORT )
SAS Institute TECHNICAL SUPPORT ) Konfiguracja procesów ETL dla rozwiązań FM składających się z kilku środowisk Celem niniejszego dokumentu jest opisanie konfiguracji ETL-owego fragmentu rozwiązań FM,
Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com
Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,
Jak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Odnośniki jeszcze do niedawna odróżniały strony WWW od wszystkich innych dokumentów elektronicznych. Możliwość deklarowania odnośników do innych
odnośniki Część 3 Odnośniki jeszcze do niedawna odróżniały strony WWW od wszystkich innych dokumentów elektronicznych. Możliwość deklarowania odnośników do innych dokumentów niezależnie od ich umiejscowienia
Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane
Extensible Markup Language (XML) Wrocław, 15.03.2019 - Java - technologie zaawansowane Wprowadzenie XML jest językiem znaczników (ang. markup language) używanym do definiowania zbioru zasad rozmieszczenia
Zastosowanie ontologii do organizacji informacji pozyskiwanych z Internetu
Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Rafał Gąsiorowski nr albumu 177309 Zastosowanie ontologii do organizacji informacji pozyskiwanych z Internetu Praca magisterska na kierunku:
12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:
PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej
Np. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0
ĆWICZENIE 1 Klasyczny Rachunek Zdań (KRZ): zdania w sensie logicznym, wartości logiczne, spójniki logiczne, zmienne zdaniowe, tabele prawdziwościowe dla spójników logicznych, formuły, wartościowanie zbioru
Przykładowy dokument XML
Przykładowy dokument XML DTD - wady Ograniczona kontrola nad strukturą dokumentów. Zbyt wysokopoziomowe typy danych: liczby, daty są zawsze reprezentowane jako tekst! Bardzo ogólne metody definiowania
Języki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Technologie Sieci Semantycznych
Technologie Sieci Semantycznych Andrzej Majczak Uniwersytet Zielonogórski Wydział Matematyki Informatyki i Ekonometrii Data aktualizacji 2007.06.11 Zawartośd prezentacji 1. Co to jest Sied Semantyczna?
Metody Kompilacji Wykład 3
Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy
Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.
Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą
znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni
Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie
Rola języka XML narzędziem
Wprowadzenie do XML dr inż. Adam Iwaniak Szkolenie w Luboradzy, ZCPWZ, 12-13.02.2009r. Rola języka XML narzędziem Pierwszą rewolucją internetową było dostarczenie ludziom informacji. Znajdujemy się teraz
Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet JSP ciąg dalszy Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić JSP tags, Używanie tagów, Custom tags, JSP objests, Obiekty
3 grudnia Sieć Semantyczna
Akademia Górniczo-Hutnicza http://www.agh.edu.pl/ 1/19 3 grudnia 2005 Sieć Semantyczna Michał Budzowski budzow@grad.org 2/19 Plan prezentacji Krótka historia Problemy z WWW Koncepcja Sieci Semantycznej
Facelets ViewHandler
JSF i Facelets Wprowadzenie JSP (JavaServer Pages) są natywną i najczęściej używaną technologią do tworzenia warstwy prezentacyjnej dla JSF (JavaServer Faces) Istnieją alternatywne technologie opisu wyglądu
Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017
Logika Stosowana Wykład 1 - Logika zdaniowa Marcin Szczuka Instytut Informatyki UW Wykład monograficzny, semestr letni 2016/2017 Marcin Szczuka (MIMUW) Logika Stosowana 2017 1 / 30 Plan wykładu 1 Język
Paweł Kurzawa, Delfina Kongo
Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Laboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Rozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
29. Poprawność składniowa i strukturalna dokumentu XML
29. i strukturalna dokumentu XML 13 października 2015 1 2 Poprawny składniowo dokument XML powinien być tworzony zgodnie z poniżej przedstawionymi zasadami. Deklaracja XML Powinien zawierać deklarację
Spis treści OPIS PLIKU W FORMACIE CSV Z DANYMI PPE LUB EP 1
O PIS PLIKU W F O R M A C I E CSV Z D A N Y M I PRZEKAZÓW PIENIĘŻNYCH L U B E K S PRESÓW PIENIĘŻNYCH D O K U M E N T A C J A T E C H N I C Z N A W E R S J A 4.0 L I P I E C 2 0 1 4 Spis treści 1. Struktura
Aby przejść do edycji w tym module należy wybrać zakładkę "Dla Pracowników" -> "Sprawdziany".
Sprawdziany Sprawdziany Moduł "Sprawdziany" oferuje osobom prowadzącym zajęcia wygodny sposób informowania studentów o wynikach/ocenach jakie uzyskali (np. z kartkówek, różnego rodzaju zadań, ogólne jakie
Typy, klasy typów, składnie w funkcji
Typy, klasy typów, składnie w funkcji Typy w Haskell Każde wyrażenie w Haskell posiada zdefiniowany typ. Dzięki temu już na etapie kompilacji kodu następuje sprawdzenie poprawności kodu i zabezpiecza nas
Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz
Podstawy języka XML Cel zajęć Po zrealizowaniu materiału student będzie w stanie Prawidłowo zidentyfikować składowe dokumentu XML Utworzyć dokument XML Dokonać sprawdzenia poprawności składniowej (syntaktycznej)
5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH
5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH Temat, którym mamy się tu zająć, jest nudny i żmudny będziemy się uczyć techniki obliczania wartości logicznej zdań dowolnie złożonych. Po co? możecie zapytać.
030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła
030 PROJEKTOWANIE BAZ DANYCH Prof. dr hab. Marek Wisła Elementy procesu projektowania bazy danych Badanie zależności funkcyjnych Normalizacja Projektowanie bazy danych Model ER, diagramy ERD Encje, atrybuty,
SYSTEM DO GENEROWANIA ONTOLOGII NA PODSTAWIE DIAGRAMÓW UML SYSTEM TO ONTOLOGY GENERATION FROM UML DIAGRAMS
GRZEGORZ KOLARZ SYSTEM DO GENEROWANIA ONTOLOGII NA PODSTAWIE DIAGRAMÓW UML SYSTEM TO ONTOLOGY GENERATION FROM UML DIAGRAMS S t r e s z c z e n i e A b s t r a c t Zastosowanie sieci semantycznych daje
Podstawowym zadaniem, które realizuje
Funkcje wyszukiwania i adresu INDEKS Mariusz Jankowski autor strony internetowej poświęconej Excelowi i programowaniu w VBA; Bogdan Gilarski właściciel firmy szkoleniowej Perfect And Practical; Pytania:
Backend Administratora
Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona
Schematy Piramid Logicznych
Schematy Piramid Logicznych geometryczna interpretacja niektórych formuł Paweł Jasionowski Politechnika Śląska w Gliwicach Wydział Matematyczno-Fizyczny Streszczenie Referat zajmuje się następującym zagadnieniem:
C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Technologie i systemy oparte na logice rozmytej
Zagadnienia I Technologie i systemy oparte na logice rozmytej Mają zastosowania w sytuacjach kiedy nie posiadamy wystarczającej wiedzy o modelu matematycznym rządzącym danym zjawiskiem oraz tam gdzie zbudowanie
Kurs walut. Specyfikacja projektu. Marek Zając 2013-12-16
Kurs walut Specyfikacja projektu Marek Zając 2013-12-16 Spis treści 1. Podsumowanie... 2 1.1 Wstęp... 2 1.2 Projekt interfejsu... 2 1.2.1 Rozmiar głównego okna... 2 2. Słownik pojęć... 2 2.1 Definicja
Pakiety i interfejsy. Tomasz Borzyszkowski
Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji
Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.
Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Bazy danych Wykład 3: Model związków encji. dr inż. Magdalena Krakowiak makrakowiak@wi.zut.edu.pl Co to jest model związków encji? Model związków
Wykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań System aksjomatyczny logiki Budując logikę
XML i nowoczesne technologie zarządzania treścią 2007/08
Zadanie 3 Poprawkowe XML i nowoczesne technologie zarządzania treścią 2007/08 Wprowadzenie Należy napisać program w Javie, który czytając w trybie SAX plik z listą operacji, wykonuje zadane operacje na
Skróty sieciowe. Krishna Tateneni Yves Arrouye Polskie tłumaczenie: Suse Polska Aktualny opiekun tłumaczenia: Marcin Kocur
Krishna Tateneni Yves Arrouye Polskie tłumaczenie: Suse Polska Aktualny opiekun tłumaczenia: Marcin Kocur 2 Spis treści 1 Skróty sieciowe 4 1.1 Wprowadzenie....................................... 4 1.2
HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści
HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop. 2017 Spis treści O autorach 11 Wprowadzenie 13 CZĘŚĆ I ROZPOCZĘCIE PRACY Lekcja 1. Co oznacza publikowanie treści w sieci
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński
PROGRAMOWANIE HTML W składni języka HTML wykorzystuje się charakterystyczne znaczniki. Każdy z nich zaczyna się i kończy ostrokątnym nawiasem a pomiędzy nimi znajduje się wyrażenie html. Rozróżniamy znaczniki
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema Globalne i lokalne deklaracje elementów i atrybutów Deklaracje lokalne:
Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1
Rachunek Prawdopodobieństwa i Statystyka lab 3. Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) 1. Funkcje: - Funkcje nie powinny korzystać ze zmiennych globalnych. - Funkcje powinny być możliwie krótkie.
Podstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP
Załącznik Nr 3 KDPW_CCP Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP Wersja 1.0 Warszawa, czerwiec 2012 Spis treści Wstęp... 3 Budowa komunikatów XML... 3 Przestrzenie
Informatyka I: Instrukcja 4.2
Informatyka I: Instrukcja 4.2 1 Wskaźniki i referencje - bezboleśnie Nauczyliśmy się do tej pory, że funkcje w języku C mogą zwracać wartość. Co jednak, gdybyśmy chcieli napisać funkcję, która rozwiąże
TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty
1. Co to jest funkcja? Funkcja jest oddzielnym blokiem kodu, który może być wielokrotnie wykonywany w danym programie, poprzez jej wielokrotne wywoływanie. Do funkcji przekazujemy przeważnie jakieś argumenty,
Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017
Systemy operacyjne Laboratorium 9 Perl wyrażenia regularne Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Temat obejmuje wykorzystanie wyrażeń regularnych w perlu. Wyrażenia same w sobie są w zasadzie
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski
Systemy ekspertowe i ich zastosowania Katarzyna Karp Marek Grabowski Plan prezentacji Wstęp Własności systemów ekspertowych Rodzaje baz wiedzy Metody reprezentacji wiedzy Metody wnioskowania Języki do
WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1
WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 SGML (Standard Generalized Markup Language) Standardowy uogólniony język znaczników służący do ujednolicania struktury i formatu różnego typu informacji (danych). Twórcy
MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI
MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI ul. Wspólna 1/3 00-529 Warszawa ZASADY TWORZENIA JEDNOLITYCH IDENTYFIKATORÓW Projekt współfinansowany Przez Unię Europejską Europejski
Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory
Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.
Dziedziczenie. Tomasz Borzyszkowski
Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.
D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?
D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się
Od metadanych do map wiedzy
Od metadanych do map wiedzy BachoTeX 2004 Mariusz Olko Mariusz.Olko@empolis.pl 1 maja 2004 1 20 lutego 2004 Metadane co to jest? Informacja na temat informacji! Opisuje własności informacji
Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP
Warszawa, lipiec 2012 Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP Wersja 1.1 1 Spis treści Tabela zmian... 3 Wstęp... 4 Budowa komunikatów XML... 4 Przestrzenie nazw
Pętle. Dodał Administrator niedziela, 14 marzec :27
Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać
Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Modele danych walidacja widoki zorientowane na model
Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych
Funkcje i instrukcje języka JavaScript
Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje
Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy