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 rdf:type ex:homepage ex:createdwith ex:creator http://www.w3c.org /amaya Ola Lassila ^^xsd:string rdf:type ex:htmleditor 1.2 Uwaga: przestrzeń nazw słownictwa foaf (Friend of a Friend): "http://xmlns.com/foaf/0.1/" Poprawność tworzonych plików sprawdź za pomocą serwisu: http://www.w3.org/rdf/validator/ Umożliwia on także wizualizację stworzonego grafu. Ćwiczenie 2. (RDF) Ćwiczenie polega na zamodelowaniu rodziny Simpson ów w RDF (uwaga: możesz zajrzeć na www.learnenglish.be żeby zapoznać się z jej drzewem genealogicznym, jednak podczas modelowania wykorzystuj tylko informację podaną w tekście ćwiczenia).
Zasoby do wykorzystania w ćwiczeniu: rod:rodzina rod:osoba własności: rdf:type rod:maczlonkarodziny (relacja między rodziną a jej członkami) rod:mabrata (relacja między osobą i jej bratem) rod:masiostrę rod:marodzica rod:mamatkę rod:maojca rod:mawspolmalzonka rod:maimie rod:wiek gdzie rod: będzie wykorzystywane w ćwiczeniu jako prefiks przestrzeni nazw http://www.cs.put.poznan.pl/ /rod.rdf#. Do modelowania wykorzystaj serializację RDF/XML. W przypadku każdej osoby wprowadzonej do ćwiczenia, zamodeluj jej imię za pomocą własności rod:maimie i rod:wiek. Poniżej znajdują się dane na temat członków rodziny Simpson ów. Osoba Wiek Homer Simpson 36 Marge Simpson 34 Lisa Simpson 8 Bart Simpson 10 Maggie Simpson 1 Abraham Simpson 78 Selma Bouvier 41 Patty Bouvier 41 Mona Simpson Clancy Bouvier Jackeline Bouvier Herb Powell Ling Bouvier 2.1 Stwórz plik RDF ze standardową przestrzenią nazw rdf i z przestrzenią rod. 2.2 Zamodeluj zdanie: Simpson owie są rodziną, gdzie Marge jest matką a Homer jest ojcem. Marge i Homer mają syna, Barta, i dwie córki, Lisę i Maggie. Podpowiedź Przykładowe zdanie: Selma jest rodzicem Ling. Z tego zdania wynika, że oboje Selma i Ling są Osobami, i że Ling ma Selmę jako rodzica: <?xml version="1.0"?> <rdf:rdf xmlns:fam="http://www.cs.put.poznan.pl/rodzina.rdf#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <fam:person rdf:about="http://moja.wlasna/przestrzen#ling"> <fam:hasparent> <fam:person rdf:about="http://my.own/namespace#selma" /> </fam:hasparent> </fam:person> </rdf:rdf>
2.3 Zamodeluj zdanie: Maggie ma dziadków Abrahama i Clancy, i babcie: Monę i Jackeline. Podpowiedź Nie wiesz, który z dziadków/która z babć jest rodzicem którego rodzica Maggie (bazujemy tylko na tekście ćwiczenia). Do wyrażenia relacji pomiędzy Maggie i jej dziadkami/babciami wykorzystaj węzły anonimowe. 2.4 Zamodeluj zdanie: Lisa ma ciotki Patty i Selmę i wujka Herba. Patty i Selma są siostrami. 2.5 Zamodeluj zdanie: Ling jest kuzynem Barta po stronie Barta matki. Podpowiedź To zdanie oznacza, że Ling ma rodzica, który ma siostrę, która jest matką Barta. Wiesz już z poprzednich ćwiczeń, że Marge jest matką Barta. Ćwiczenie 3. (RDF - reifikacja) Zamodeluj w postaci trójek RDF, a następnie w serializacji RDF/XML następujące zdania: 3.1 Twórcą zasobu http://www.hotmail.com jest Bill Gates. 3.2 Adam sądzi, że twórcą zasobu http://www.hotmail.com jest Bill Gates. Podpowiedź: Wykorzystaj przestrzeń xmlns:s="http://description.org/schema/" dla predykatów Tworca i jestsadem. Następnie wykorzystaj serwis http://www.w3.org/rdf/validator/ do zwizualizowania zamodelowanych zdań.
Co to jest RDFa? - RDFa = RDF w atrybutach - Zbiór nowych atrybutów (X)HTML do wyraŝenia metadanych wewnątrz (X)HTML - Format serializacji RDF, gdzie trójki RDF są "osadzone" w (X)HTML Lista podstawowych atrybutów: about, src URI, które specyfikuje zasób opisywany przez meta dane rel, rev określają relację (lub relację odwrotną) z innym zasobem href, resource określają stowarzyszony zasób property określa własność dla zawartości ( content ) elementu content opcjonalny atrybut, który nadpisuje zawartość elementu, uŝywając atrybutu property datatype opcjonalny atrybut, który określa typ danych tekstu do wykorzystania z atrybutem property typeof opcjonalny atrybut, który określa typ(y) RDF podmiotu (zasobu opisywanego przez metadane) Ćwiczenie 4. (RDFa) 1 Utwórz prosty profil FOAF, postępując wedle instrukcji. W czasie ćwiczenia po każdym kroku wykorzystuj parser i walidator RDfa Sindice Inspector http://inspector.sindice.com/ żeby wyświetlić dane RDF wyekstrahowane z dokumentu html. RDFa pozwala na wykorzystanie dowolnego słownictwa. Do modelowania w tym ćwiczeniu wykorzystamy słownictwo FOAF (Friend-of-a-friend), służące do opisu ludzi, organizacji I ich powiązań. Krok 1 tworzenie obiektu osoby Obiekt będzie służył do przechowywania informacji. Wykorzystany będzie atrybut typeof. Chcemy dodać obiekt typu Osoba, i w tym celu wykorzystamy element slownictwa FOAF (Person): <html xmlns:foaf="http://xmlns.com/foaf/0.1/"> <head> <title>profil Jana Kochanowskiego</title> </head> <body> <div typeof="foaf:person">... </body> </html> 1 Zadanie zaadaptowane z: http://webbackplane.com/mark-birbeck/blog/2009/04/getting-started-with-rdfa
Krok 2 dodanie informacji personalnej Możemy ją dodać wykorzystując własność foaf:name, ustawioną za pomocą atrybutu RDFa - property: <div typeof="foaf:person"> <span property="foaf:name">jan Kochanowski</span> Krok 3 dodanie strony domowej Dodajemy ją za pomocą własności foaf:homepage. Jednak, w przeciwieństwie do foaf:name, które miało po prostu wartość typu łańcuchowego, tym razem dodajemy URL, a więc musimy wykorzystać atrybut HTML rel zamiast @property: <div typeof="foaf:person"> <span property="foaf:name">jan Kochanowski</span> <a rel="foaf:homepage" href="http://pl.wikipedia.org/wiki/jan_kochanowski">strona Jana Kochanowskiego</a> Krok 4 dodanie przyjaciół/kolegów Użyjemy w tym celu popularnej własności foaf:knows (wykorzystywana do wskazywania znajomych). Ponownie mamy do czynienia z URL, więc musimy użyć znowu atrybut rel: <div typeof="foaf:person"> <span property="foaf:name">jan Kowalski</span> <a rel="foaf:homepage" href="http://pl.wikipedia.org/wiki/jan_kochanowski">strona Jana Kochanowskiego</a> <a rel="foaf:knows" href="http://pl.wikipedia.org/wiki/zygmunt_ii_august#me">zygmunt II August</a> Zauważ, że odwołaliśmy się do informacji FOAF Zygmunta II Augusta poprzez URL kończący się wyrażeniem #me; jest to użyteczna konwencja i łatwo osiągalna w naszym własnym profilu poprzez dodanie @about: <div about="#me" typeof="foaf:person">... Krok 5 dodanie zdjęcia Słownictwo FOAF (foaf:img)pozwala na wskazanie zdjęcia, na którym widniejemy, i zdjęć, które chcielibyśmy aby wykorzystywali inni do reprezentowania nas. <div about="#me" typeof="foaf:person"> <span property="foaf:name">jan Kochanowski</span> <a rel="foaf:homepage" href="http://pl.wikipedia.org/wiki/jan_kochanowski">strona Jana Kochanowskiego</a> <a rel="foaf:knows" href="http://pl.wikipedia.org/wiki/zygmunt_ii_august#me">zygmun t II August</a> <span rel="foaf:img"> <img src=" http://upload.wikimedia.org/wikipedia/commons/4/42/jan_kochanowski.png" alt="jan"/> </span>
Krok 6 ostateczna wersja łącznie z prezentacją <html xmlns:foaf="http://xmlns.com/foaf/0.1/"> <head> <title>profil Jana Kochanowskiego</title> <link rel="foaf:primarytopic foaf:maker" href="#me"/> </head> <body> <div about="#me" typeof="foaf:person"> <span property="foaf:name">jan Kochanowski</span> ma strone domowa <a rel="foaf:homepage" href="http://pl.wikipedia.org/wiki/jan_kochanowski">strona Jana Kochanowskiego</a>. Zna: <a rel="foaf:knows" href="http://pl.wikipedia.org/wiki/zygmunt_ii_august#me">zygmunt II August</a>. <span rel="foaf:img"> <img src="http://upload.wikimedia.org/wikipedia/commons/4/42/jan_kochanowski.png" alt="jan"/> </span> </body> </html> Ćwiczenie 5 (RDFa) Korzystając z pliku utworzonego w Ćwiczeniu 4 i ze słowników: - foaf (http://xmlns.com/foaf/spec/) i - DublinCore ( http://dublincore.org/documents/dces/ ) rozszerz plik o informacje na temat wybranych dzieł jakie stworzył Jan Kochanowski dodając informację o ich tytule, itp. (Podpowiedź: skorzystaj z foaf:made, dc:title, dc:creator).