Wydział Informatyki i Zarządzania kierunek studiów: Informatyka specjalność: Projektowanie Systemów Informatycznych Praca dyplomowa - magisterska METODY WIZUALIZACJI LINKED DATA Piotr Rusiniak krótkie streszczenie: słowa kluczowe: Linked Data wizualizacja Semantic Web W pracy porównano metodę wizualizacji Linked Data opartą na przedstawieniu w formie grafu sieci nieopracowanych danych z podejściem skupiającym się na zobrazowaniu wstępnie przetworzonych informacji na określony temat. Przeprowadzono badania z udziałem osób w różnym stopniu związanych z nowymi technologiami, w których rezultacie określono najważniejsze oczekiwania użytkowników i oceniono obie metody. opiekun pracy dyplomowej dr inż. Marek Kopel...... Tytuł/stopień naukowy/imię i nazwisko ocena podpis Do celów archiwalnych pracę dyplomową zakwalifikowano do:* a) kategorii A (akta wieczyste) b) kategorii BE 50 (po 50 latach podlegające ekspertyzie) * niepotrzebne skreślić Wrocław 2016 pieczątka wydziałowa
Spis treści Spis treści... 2 Streszczenie... 3 1.Wstęp... 4 2.Generacje sieci WWW... 5 3.Linked Data... 6 3.1. Linked Open Data... 6 3.2. System oceny udostępnianych w Internecie danych... 8 3.3. Model reprezentacji Linked Data... 9 3.4. Język zapytań SPARQL... 11 4.Podstawowe sposoby prezentacji Linked Data... 13 4.1. Prezentacja zasobu w formie dokumentu HTML... 13 4.2. Przeglądarki tekstowe... 14 5. Wizualizacja danych... 15 5.1. Sposoby wizualizacji danych... 15 5.2. Wizualizacja Linked Data przegląd rozwiązań... 18 6. Nowa metoda wizualizacji danych... 25 6.1. Wymagania wobec nowego rozwiązania... 26 6.2. Przedstawienie nowoutworzonego narzędzia do wizualizacji danych... 27 6.3. Wykorzystane technologie... 35 6.4. Źródła danych... 36 7.Badanie metod wizualizacji Linked Data... 40 7.1. Porównanie sposobów wizualizacji danych z wybranej dziedziny... 41 7.2. Badanie użyteczności narzędzi i analiza oczekiwań użytkowników... 46 8.Podsumowanie... 56 Literatura... 58 Załączniki... 61 2
Streszczenie W pracy przeanalizowano metody wizualizacji Linked Data stosowane w istniejących rozwiązaniach. Następnie porównano podejście zakładające scenariusz eksploracyjny i swobodne przeglądanie danych pod dowolnym kątem z metodą opartą na prezentacji wstępnie przetworzonych danych z wybranej dziedziny. Utworzono przykładową aplikację opartą na drugim podejściu spełniającą zdefiniowane wcześniej założenia. Przeprowadzono badania z udziałem potencjalnych użytkowników aplikacji do wizualizacji danych w różnym stopniu zainteresowanych nowymi technologiami mające na celu określenie najważniejszych wymagań poszczególnych grup odbiorców oraz umożliwienie obiektywnej oceny porównywanych metod. Abstract In this paper, methods for Linked Data visualization used in existing solutions were analyzed. Approach based on exploratory scenario which gives possibility to freely browse any aspect of data was compared to method based on presentation of pre-processed data from selected domain. Sample application based on second approach that matches previously defined criteria was created. Research with participation of potential visualisation application users with different level of interest in new technologies was conducted in order to define the most important requirements in each recipient group and to allow objective evaluation of compared methods. 3
1. Wstęp Celem pracy jest analiza sposobów wizualizacji Linked Data stosowanych w istniejących rozwiązaniach, ukazanie obszarów wymagających poprawy oraz zaproponowanie usprawnień. Wizualizacja danych opisywanych przy użyciu standardów sieci semantycznych ma kluczowe znaczenie dla rozwoju zarówno chmury Linked Open Data, jak i samej idei Linked Data. Dynamiczny rozwój standardów Semantic Web nie będzie możliwy bez narzędzi pozwalających na ich wykorzystanie przez szerokie grono odbiorców. Oczekiwanym rezultatem pracy jest przedstawienie możliwych usprawnień lub zmian metod wizualizacji Linked Data stosowanych w obecnie rozwijanych narzędziach, uzasadnienie sugestii oraz poparcie ich badaniami. Proponowane zmiany mają na celu przede wszystkim rozpowszechnienie idei Linked Data poprzez zwiększenie zadowolenia użytkowników aplikacji. W pracy omówione zostały podstawowe zagadnienia związane z sieciami semantycznymi i Linked Data. W rozdziałach drugim i trzecim przedstawione zostały najważniejsze definicje, idea sieci trzeciej generacji oraz podstawowe rozwiązania techniczne umożliwiające jej wdrożenie. W rozdziale czwartym przedstawiono najprostsze sposoby prezentacji Linked Data, oparte na reprezentacji tekstowej lub tabelarycznej. W kolejnej części pracy, skupiono się na zagadnieniu wizualizacji danych. Zaprezentowane zostały możliwości aplikacji wykorzystujących obraz do ułatwienia analizy danych. Następnie dokonano przeglądu znanych metod wizualizacji modelu danych powiązanych w Semantic Web. Rozdział szósty zawiera informacje dotyczące aplikacji do wizualizacji Linked Data utworzonej w ramach pracy, aby umożliwić przeprowadzenie badań. Określono w nim wymagania wobec nowego narzędzia, a następnie opisano funkcjonalność nowej aplikacji oraz wykorzystane do jej utworzenia technologie. Przedstawiono także wszystkie źródła danych wraz z dokładnymi informacjami o kierowanych do nich zapytaniach. W rozdziale siódmym dokonano analizy porównawczej możliwości wizualizacji Linked Data przez narzędzia reprezentujące różne podejścia do tego problemu. Przedstawiono także wyniki badań przeprowadzonych z udziałem potencjalnych użytkowników porównywanych narzędzi w celu oceny prezentowanych przez nie metod wizualizacji danych oraz określenia oczekiwań użytkowników. Ostatni rozdział zawiera podsumowanie wyników przeprowadzonych badań. Przedstawiono w nim najważniejsze wnioski oraz określono kierunek dalszych badań metod wizualizacji Linked Data. 4
2. Generacje sieci WWW Rozwój Internetu jest opisywany z wykorzystaniem podziału na następujące po sobie modele. Jest to jednak jedynie umowny podział, który ma na celu uwidocznienie tendencji i kluczowych różnic. Modele te nie posiadają ścisłych ram czasowych i wzajemnie się przenikają. Web 1.0 Do pierwszej generacji sieci zalicza się strony statyczne bez elementów interakcji z użytkownikiem. Odwiedzający stronę mają tylko możliwość zapoznania się z jej treścią. Nie mogą wpływać na jej zawartość, dodawać komentarzy ani opinii. Warstwa graficzna jest niezwykle prosta charakterystyczne jest jednokolorowe tło i baner w górnej części strony. Web 2.0 W drugiej generacji sieci strony opierają się na interakcji i treściach tworzonych przez użytkowników. Mogą oni publikować własną zawartość (np. zdjęcia, filmy) i kontaktować się z innymi członkami społeczności utworzonej wokół serwisu. Odwiedzający zyskują możliwości wcześniej osiągalne tylko z wykorzystaniem lokalnie instalowanych aplikacji. Większe znaczenie ma wygląd stron. W przeciwieństwie do w pierwszej generacji sieci, użytkownicy ciągle powracają na strony. Pojedyncza wizyta i zapoznanie się z treścią dokumentu nie wyczerpuje dostępnych możliwości. Typowymi przykładami stron drugiej generacji sieci są blogi oraz serwisy społecznościowe. Web 3.0 Sieć trzeciej generacji określana również jako Semantic Web to projekt mający na celu opisywanie informacji w Internecie w sposób, który umożliwi komputerom lepsze wnioskowanie i wyszukiwanie. Poprzez dobre zdefiniowanie obiektów i łączących je relacji z wykorzystaniem standardowego formatu (np. języka RDF), tworzona jest sieć reprezentująca informacje w formie umożliwiającej ich lepszą komputerową analizę. 5
3. Linked Data Linked Data to kolekcja wzajemnie powiązanych zbiorów danych dostępnych w standardowym formacie pozwalającym na zarządzanie nimi przez narzędzia Semantic Web. Podstawowe zasady reprezentacji obiektu w Linked Data [2] to: wykorzystanie URI (Uniform Resource Identifier) do nazywania obiektów wykorzystanie nazw opartych o protokół http i URI do sprawdzenia informacji o obiekcie zapewnienie użytecznych informacji na temat obiektu z wykorzystaniem odpowiednich standardów (np. języka RDF) odwoływanie do powiązanych obiektów reprezentowanych w ten sam sposób 3.1. Linked Open Data Utworzenie globalnego Linked Data pozwalającego na wprowadzenie w życie idei sieci trzeciej generacji wiąże się nie tylko z koniecznością odpowiedniego ustrukturyzowania zbiorów danych, ale także ich udostępnienia na otwartej licencji. Dane spełniające wymienione wcześniej podstawowe zasady Linked Data i dodatkowo udostępnione na otwartej licencji nazywa się Linked Open Data. W 2007 roku udostępniono 28 takich zbiorów danych. W 2014 roku chmura Linked Open Data (rys. 3.1.1.) rozrosła się do 570 zbiorów. Poszczególne zbiory zawierają zwykle szczegółowe dane z jednej dziedziny. Istnieją też zbiory wielodomenowe, takie jak DBpedia będąca próbą opisania przy pomocy standardów sieci semantycznych danych pochodzących z Wikipedii. Połączenie zbiorów wielodomenowych ze zbiorami specjalistycznymi skutkuje uzyskaniem ogromnych ilości ustrukturyzowanych danych. 6
Rys. 3.1.1. Diagram przedstawiający chmurę Linked Open Data [6] w sierpniu 2014 roku. 7
3.2. System oceny udostępnianych w Internecie danych W celu rozpowszechnienia Linked Open Data utworzono specjalny system oceny udostępnianych w Internecie danych [2]: pierwszy poziom to udostępnienie w Internecie danych w dowolnym formacie na otwartej licencji, drugi poziom wymaga przedstawienia danych w formie umożliwiającej komputerową analizę danych (np. dokument Excel zamiast zdjęcia), trzeci poziom wymaga udostępnienia danych w otwartym formacie, czwarty poziom wymaga identyfikacji obiektów z wykorzystaniem standardów World Wide Web Consortium (W3C), najwyższy poziom wymaga dodatkowo określenia powiązań z innymi danymi. Rys. 3.2.1 Diagram przedstawiający kolejne poziomy utworzonego przez Tima Berners-Lee systemu oceny danych udostępnianych w Internecie [10]. 8
3.3. Model reprezentacji Linked Data RDF (Resource Description Framework) to model reprezentacji informacji w sieci. Pozwala na reprezentację informacji o obiekcie i jego powiązaniach w formie umożliwiającej dalsze wnioskowanie. W modelu tym, powiązania pomiędzy obiektami są przedstawiane w postaci specjalnych wyrażeń, tzw. trójek RDF (RDF triple [5]). W skład trójki RDF wchodzą: podmiot, czyli opisywany zasób, właściwość określająca rodzaj relacji, obiekt powiązany określoną relacją z podmiotem. Podmiot URI Właściwość URI Obiekt URI literał Rys. 3.3.1. Diagram przedstawiający budowę trójki RDF i dopuszczalne wartości. W konkretnych implementacjach modelu RDF dopuszczalne jest również użycie pustego węzła w miejscu identyfikatora podmiotu lub obiektu. W RDF 1.1 identyfikatory URI zastąpiono przez IRI (Internationalized Resource Identifier) w celu zezwolenia na wykorzystanie dodatkowych znaków Unicode. Wszystkie identyfikatory URI są również identyfikatorami IRI, ale nie wszystkie IRI są też identyfikatorami URI. Istnieje wiele formatów danych opartych na modelu RDF. W dalszej części tego rozdziału przedstawione zostaną najważniejsze z nich. RDF/XML to podstawowy format, który opiera się na regułach języka XML (Extensible Markup Language). Nie jest on jednak wystarczająco czytelny, aby umożliwić wygodne zapoznanie się z jego zawartością poprzez bezpośrednią analizę kodu. Przykład opisu zasobu w RDF/XML [4]: <?xml version="1.0" encoding="utf-8"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:description rdf:about="http://biglynx.co.uk/people/dave-smith"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/person"/> <foaf:name>dave Smith</foaf:name> </rdf:description> </rdf:rdf> 9
W powyższym fragmencie kodu zdefiniowano zasób typu Person określono adres oraz imię (Dave Smith) opisywanej osoby. Turtle jest formatem wyrażania danych w modelu RDF znacznie bardziej czytelnym dla użytkowników i umożliwiającym łatwą, manualną edycję plików. Fragment kodu [4] zawierający te same informacje, co wcześniej zaprezentowany przykład w formacie RDF/XML: @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. <http://biglynx.co.uk/people/dave-smith> rdf:type foaf:person ; foaf:name "Dave Smith". RDFa (Resource Description Framework in Attributes) to rozszerzenie języka HTML5 (działające także z m.in. HTML4, XML i SVG) pozwalające na oznaczenie kluczowych danych, takich jak np. osoby, miejsca, wydarzenia. Dzięki niemu można uniknąć duplikowania danych, np. w dokumentach HTML i XML. Przykład zagnieżdżania zasobów w RDFa: <div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:person"> Nazywam się <span property="v:name">piotr Rusiniak</span>, a to moja <a href="http://www.adres.pl" rel="v:url">strona internetowa</a>. </div> Podstawowe atrybuty wykorzystywane w RDFa: vocab określa słownik zawierający typowe dla obiektów własności, np. imię i numer telefonu dla osób typeof określa typ obiektu, np. Osoba (Person) property określa własność, np. imię (name) dla klasy Osoba resource określa identyfikator obiektu JSON-LD (Java Script Object Notation for Linked Data) został stworzony, aby umożliwić istniejącym systemom wykorzystującym do wymiany danych format JSON wprowadzenie Linked Data po dodaniu jedynie niewielkich zmian. Format ten jest w pełni kompatybilny z JSON, co pozwala na ponowne wykorzystanie istniejących bibliotek. Przykład opisu zasobu w JSON-LD [14]: { "@context": "http://json-ld.org/contexts/person.jsonld", "name": "Manu Sporny", "homepage": "http://manu.sporny.org/", "image": "http://manu.sporny.org/images/manu.png" } 10
Słowo kluczowe @context pozwala na odwołanie się do słownika zawierającego listę pojęć oraz powiązanych z nimi identyfikatorów. Dzięki jego wykorzystaniu, pozostała część opisu jest krótsza i łatwiejsza do zrozumienia. Podstawowe słowa kluczowe wykorzystywane w JSON-LD i ich znaczenie: @context dokument określający jak interpretować dane @id identyfikator IRI obiektu @type wartość określająca typ obiektu (np. Osoba, wyrażany przez IRI) lub mniej złożony typ danych (np. data) @value wartość powiązana z określoną własnością @language pozwala określić język w jakim podana jest wartość oraz ustawić domyślny język całego dokumentu 3.4. Język zapytań SPARQL SPARQL (SPARQL Protocol And RDF Query Language) to język zapytań do baz danych pozwalający na pobieranie semantycznych danych w formacie RDF. Zapytanie SPARQL [8] składa się z następujących elementów: deklaracje prefiksowe pozwalające na przypisanie skrótów do identyfikatorów URI, definicja zbiorów danych określenie grafów, które będą odpytywane, klauzula wynikowa określa informacje, które ma zwrócić zapytanie, treść zapytania określa czego szukać w zbiorze danych, modyfikatory zapytania pozwalają na zorganizowanie wyników zapytania (np. sortowanie). Schemat zapytania SPARQL: # deklaracje prefiksowe PREFIX foo: <http://example.com/resources/>... # definicja zbiorów danych FROM... # klauzula wynikowa SELECT... # treść zapytania WHERE {... } # modyfikatory zapytania ORDER BY... 11
Warunek zdefiniowany w sekcji WHERE zapytania można dodatkowo rozszerzyć za pomocą słowa kluczowego FILTER pozwalającego wykorzystać szereg wbudowanych funkcji filtrujących, aby odrzucić niechciane wyniki. Przykładowe zapytanie SPARQL [9]: dane @prefix foaf: <http://xmlns.com/foaf/0.1/>. _: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: <http://xmlns.com/foaf/0.1/> SELECT?name?mbox WHERE {?x foaf:name?name.?x foaf:mbox?mbox } wynik name "Johnny Lee Outlaw" "Peter Goodguy" mbox <mailto:jlow@example.com> <mailto:peter@example.org> Każdy wynik tego zapytania musi zawierać wszystkie zdefiniowane własności (name oraz mbox), dlatego obiekt c nie został zawarty w wynikowej kolekcji. 12
4. Podstawowe sposoby prezentacji Linked Data 4.1. Prezentacja zasobu w formie dokumentu HTML Pobranie opisu zasobu w formie kodu RDF nie jest wygodne dla większości użytkowników, dlatego zasoby są dodatkowo opisywane, np. przy pomocy dokumentu HTML. Dzięki temu wpisując http URI zasobu w przeglądarce stron WWW, możemy otrzymać proste i czytelne podsumowanie jednoznacznie identyfikujące obiekt. Nie ma jednak żadnego standardu określającego jak dokładnie powinna wyglądać ta forma reprezentacji danych. W przypadku zbioru DBpedia jest ona wystarczająco rozbudowana, aby umożliwić wygodne przeglądanie zasobów (rys. 4.1.1.). Większość nazw własności i powiązanych zasobów jest przedstawiona w zrozumiały dla użytkownika sposób. Rys. 4.1.1. Przykładowa reprezentacja zasobu w formie dokumentu HTML DBpedia. Jednak w wielu udostępnionych w chmurze Linked Open Data zbiorach, ten sposób prezentacji jest bardzo uproszczony. Pozwala jedynie szybko zidentyfikować zasób. Przykładem może być zbiór Linked MDB gromadzący informacje na temat filmów (rys. 4.1.2.). Większość powiązanych z obiektem zasobów jest prezentowana z wykorzystaniem identyfikatorów, które do chwili przejścia na kolejną stronę nie dostarczają żadnych dodatkowych informacji. 13
Rys. 4.1.2. Przykładowa reprezentacja zasobu w formie dokumentu HTML Linked MDB. 4.2. Przeglądarki tekstowe Nie wszystkie zasoby są udostępniane z dodatkowym opisem ułatwiającym przeglądanie i identyfikację obiektów. W odpowiedzi na potrzebę wyświetlania podstawowych informacji w formie krótkiego opisu tekstowego lub prostej tabeli, utworzono specjalne przeglądarki zasobów sieci semantycznych. Prezentują one dane zawarte w plikach RDF w szablonowy i mało atrakcyjny, ale bardziej przystępny sposób. Niestety większość projektów przeglądarek tekstowych nie jest obecnie rozwijana, a udostępnione wcześniej wersje nie zawsze działają poprawnie. 14
5. Wizualizacja danych Podstawowe sposoby prezentacji danych opierają się głównie na wykorzystaniu tekstu i prostych tabel. Aby lepiej przedstawić informacje zawarte w zbiorze danych i umożliwić ich dokładniejszą analizę, wykorzystywane są bardziej zaawansowane techniki. Wizualizacja danych polega na przedstawieniu ich w formie obrazu. Zazwyczaj wykorzystywane są do tego wykresy i grafy, ale można również spotkać się z nietypowymi, nowatorskimi sposobami wizualizacji. 5.1. Sposoby wizualizacji danych Przed przystąpieniem do przeglądu istniejących narzędzi do wizualizacji Linked Data, przeanalizowane zostaną wyróżniające się rozwiązania oparte na danych, które nie są opisane w formie pozwalającej na przetwarzanie przez narzędzia Semantic Web. Fundacja Gapminder Jednym z najbardziej interesujących sposobów wizualizacji danych jest rozwiązanie utworzone dla potrzeb fundacji Gapminder zajmującej się promowaniem osiągnięć ONZ dotyczących globalnego rozwoju poprzez prezentację danych statystycznych. Do utworzenia interaktywnego wykresu wykorzystano technologię Adobe Flash. Sposób prezentacji danych został bardzo dobrze dostosowany do ich specyfiki (rys. 5.1.1.). Wczesne zdefiniowanie celu prezentacji danych pozwoliło na osiągnięcie interesującego rezultatu. Analiza zmian społeczno-gospodarczych na przestrzeni ostatnich 200 lat stała się łatwo osiągalna dla każdego zainteresowanego, a sposób prezentacji jest atrakcyjny i przyciąga uwagę odbiorcy. Rys. 5.1.1. Wykres fundacji Gapminder przedstawiający bogactwo i zdrowie narodów - porównanie średniego przychodu na osobę oraz oczekiwanej długości życia w poszczególnych państwach w 2013 roku. 15
Dane prezentowane są z wykorzystaniem wielu nietypowych rozwiązań: Czas nie jest prezentowany na osi wykresu. Zamiast tego wykorzystano miejsce w tle. Użytkownik może określić interesujący go rok za pomocą suwaka. Dzięki braku typowej osi czasu, można zaprezentować na niej dodatkowe dane i lepiej przedstawić zależności. Możliwe jest uruchomienie animacji, pokazującej zmiany następujące na przestrzeni lat. Użytkownik może wybrać skalę (liniowa lub logarytmiczna) na każdej osi wykresu. Oprócz położenia punktu, do prezentacji danych wykorzystywana jest jego wielkość oraz kolor. Użytkownik ma duże możliwości dostosowania wykresu, m.in. może wybrać dane prezentowane na osiach, a także określić informacje przekazywane za pomocą koloru oraz wielkości punktu. Prezentacja historii zmian danego punktu po kliknięciu na element wykresu. Prezentacja danych dotyczących poszczególnych państw z wykorzystaniem mapy świata (rys. 5.1.2.). Rys. 5.1.2. Dane na temat bogactwa i zdrowia narodów zaprezentowane na mapie świata. 16
Thematic Mapping Jednym z wyróżniających się rozwiązań jest biblioteka JavaScript Thematic Mapping pozwalająca na przedstawienie danych na modelu 3D kuli ziemskiej (rys. 5.1.3.). Prezentacja danych na interaktywnym globusie pozwala na przykucie uwagi użytkownika. Jednak nawigacja z wykorzystaniem kursora myszy może sprawiać trudności, a dane nie są tak czytelne jak w bardziej tradycyjnych formach prezentacji danych. Wykorzystany do utworzenia modelu zbiór danych dużo łatwiej przeanalizować korzystając z narzędzia zaproponowanego przez fundację Gapminder. Thematic Mapping przedstawia ciekawy punkt widzenia i świetnie nadaje się do zainteresowania daną tematyką, np. uczniów szkół podstawowych. Jednak ciekawa forma przysłania w tym rozwiązaniu treść i utrudnia wyciąganie wniosków. Rys. 5.1.3. Thematic Mapping oczekiwana długość życia w 2015 roku. Przedstawione przykłady nietypowych rozwiązań pozwalają zauważyć jak duże możliwości daje dobrze przemyślany i dostosowany do rodzaju prezentowanych danych sposób wizualizacji. Początkowo niezrozumiałe dane stają się przystępne dla szerokiego grona odbiorców. 17
5.2. Wizualizacja Linked Data przegląd rozwiązań W rozdziale zostaną przedstawione narzędzia do wizualizacji Linked Data prezentujące różne podejścia do tego problemu. Następnie funkcjonalność aplikacji zostanie przeanalizowana w celu ukazania obszarów wymagających poprawy. Popularnym podejściem do wizualizacji Linked Data jest założenie scenariusza eksploracyjnego, w którym użytkownik może na początku nie wiedzieć jakich informacji szuka. Rozpoczyna przeglądanie sieci połączeń od jednego z zasobów, a każda kolejna akcja jest uzależniona od poprzedniej. Przykładami aplikacji opartych na tym podejściu są Lod Live oraz LODmilla. Lod Live Lod Live jest projektem stworzonym w celu rozpowszechnienia idei Linked Data dzięki umożliwieniu przeglądania zasobów RDF z wykorzystaniem przyjaznego interfejsu użytkownika. Przeglądanie standardowo rozpoczyna się od wyszukania zasobu w zbiorze dbpedia.org. Można również podać identyfikator URI obiektu, a od niedawna istnieje także możliwość przejścia do Lod Live bezpośrednio ze strony zasobu w serwisie DBpedia. Rys. 5.2.1. Sposób prezentacji danych w Lod Live. Lod Live wykorzystuje bardzo typowy dla Semantic Web sposób prezentacji danych. Poszczególne obiekty i klasy są przedstawiane w postaci kół, a relacje między nimi przedstawiane są za pomocą strzałek (rys. 5.2.1.). Uważam, że sposób ten bardzo dobrze przedstawia ideę sieci semantycznych i Linked Data. Jednak wraz z dodawaniem większej ilości danych, prezentowane w ten sposób informacje bardzo szybko stają się nieczytelne. Oprócz rozszerzania grafu przez dodawanie kolejnych powiązanych obiektów, użytkownik ma możliwość podglądu szczegółowych informacji o zasobie. Dodatkowo wszystkie zdjęcia powiązane z otwartymi obiektami są zbierane w oddzielnej sekcji, a lokalizacja zasobów posiadających odpowiednie własności jest przedstawiana na mapie świata. 18
Zalety sposobu prezentacji Linked Data w aplikacji Lod Live: dobrze przedstawiona idea widoczna sieć powiązań między danymi, wizualna atrakcyjność rozwiązania, możliwość zapoznania się ze szczegółowym opisem obiektu w dodatkowej sekcji wyświetlanej po prawej stronie, dodatkowe funkcje umożliwiające podgląd zdjęć powiązanych z widocznymi obiektami oraz prezentację ich rozkładu na mapie. Wady sposobu prezentacji Linked Data w aplikacji Lod Live: niewygodny sposób przeglądania zasobów: o zasoby nie są uporządkowane alfabetycznie, o opis zasobu jest widoczny w dolnej części strony po najechaniu kursorem myszy na jeden z niewielkich obszarów otaczających koło trudno jest odnaleźć konkretny zasób. wraz ze wzrostem liczby prezentowanych zasobów, graf szybko staje się nieczytelny, całkowita liczba prezentowanych powiązań jest ograniczona (część danych może nie zostać zaprezentowana). LODmilla Kolejnym narzędziem służącym do wizualizacji Linked Data jest LODmilla - aplikacja webowa, w której zdecydowano się na podobny sposób prezentacji danych jak w przedstawionym wcześniej Lod Live. Przeglądanie danych rozpoczyna się od wyszukania zasobu w jednym z dostępnych zbiorów danych (m.in. DBpedia) lub wprowadzenia identyfikatora URI zasobu. Obiekty są przedstawiane w formie kart zawierających podstawowe informacje oraz przyciski umożliwiające, m.in. wyświetlenie szczegółowych informacji i ukrycie zasobu. Relacje pomiędzy zasobami są przedstawione w formie odpowiednio opisanych strzałek (rys. 5.2.2.). 19
Rys. 5.2.2. Narzędzie LODmilla sposób prezentacji danych. Chociaż sposób przedstawienia sieci połączeń nie wyróżnia tego narzędzia na tle konkurencyjnych aplikacji, to na uwagę zasługuje znakomite rozwiązanie problemu przeglądania dostępnych powiązań i dodawania ich do grafu. Powiązane obiekty podzielono na trzy kategorie: własności (Properties) podstawowe własności obiektu np. data urodzenia (Birth date) dla osób (klasa Person), powiązania wychodzące z obiektu (Links out) powiązania, w których zasób pełni rolę podmiotu, powiązania do obiektu (Links in) powiązania, w których inny obiekt pełni rolę podmiotu. W ramach każdej z trzech głównych kategorii, pomiędzy którymi można przechodzić za pomocą zakładek w oknie zasobów, powiązane obiekty zostały pogrupowane w podkategorie według łączącej je relacji. Każda z nich jest przedstawiona jako domyślnie zwinięta lista rozwijana. Dzięki temu dobrze przemyślanemu rozwiązaniu, wyszukiwanie konkretnej własności czy powiązanego obiektu nie stanowi problemu, tak jak w przypadku Lod Live. Jedyną wadą sposobu prezentacji listy podkategorii i zasobów jest brak uporządkowania alfabetycznego, które mogłoby dodatkowo usprawnić proces przeglądania powiązań. Aplikacja umożliwia także wyróżnienie wybranych elementów grafu. Wystarczy kliknąć na interesujące nas elementy z wciśniętym klawiszem CTRL, aby uwidocznić kluczowe powiązania. LODmilla oferuje również bardziej złożone funkcje, takie jak tworzenie ścieżek powiązań pomiędzy obiektami, a także wyszukiwanie własności w widocznych zasobach oraz ich sąsiedztwie. 20
Istnieją także narzędzia skupiające się na wizualizacji zależności pomiędzy obiektami. Większość rozwiązań przedstawia dane w formie grafu i udostępnia dodatkowe funkcje umożliwiające analizę powiązań pomiędzy zasobami. Przykładami takich aplikacji są gfacet oraz RelFinder. gfacet Narzędzie gfacet pozwala na przeglądanie danych RDF z wykorzystaniem tradycyjnego grafu rozszerzonego o możliwość filtrowania danych (rys. 5.2.3.). Rys. 5.2.3. Narzędzie gfacet graf przedstawiający informacje o piłkarzach grających w Bundeslidze i reprezentacji Niemiec. Aplikacja dobrze sprawdza się, gdy chcemy znaleźć grupę obiektów o pewnych cechach wspólnych. Nie jest ona jednak przydatna, gdy chcemy znaleźć informacje o konkretnym obiekcie. Stworzenie odpowiedniego zapytania przez połączenie wielu filtrów wymaga dużej wiedzy na temat analizowanej dziedziny. 21
RelFinder RelFinder tworzy interaktywny graf przedstawiający powiązania pomiędzy wybranymi przez użytkownika obiektami (rys. 5.2.4.). Chociaż generowanie odpowiedzi na zapytanie jest czasochłonne, to w jego trakcie wyświetlane są częściowe wyniki graf jest dynamicznie rozbudowywany. Pozwala to uniknąć poważnego problemu jakim w narzędziach do wizualizacji jest długi czas oczekiwania na rezultat interakcji. Rys. 5.2.4. Narzędzie RelFinder - graf przedstawiający powiązania pomiędzy filmami Pulp Fiction i Django Unchained. Po kliknięciu na zasób, w oddzielnej sekcji pojawia się jego opis, a na grafie wyróżnione zostają powiązane z nim elementy. Oznaczone zostają także wszystkie inne zasoby tego samego typu. Dla zwiększenia czytelności wykorzystano kontrastujące ze sobą kolory. Istnieje również możliwość określenia klas oraz relacji, które mają zostać ukryte. Narzędzie to jest bardzo dobrze dopracowane. Nie ma jednak wielu zastosowań i wymaga od użytkownika podstawowej wiedzy na temat analizowanej dziedziny. 22
Ostatnie prezentowane podejście skupia się na wyodrębnieniu danych z chmury Linked Open Data i ich wizualizację przy wykorzystaniu tradycyjnych metod. Przykładem takiego narzędzia jest Open Data Mashup. Open Data Mashup Narzędzie Open Data Mashup udostępnia kontrolki pozwalające na dostęp do zasobów Linked Data i ich wizualizację z wykorzystaniem rozwiązań, które nie zostały stworzone z myślą o modelu danych typowym dla sieci semantycznych. Dzięki temu, można tworzyć proste aplikacje przedstawiające wyniki złożonych zapytań, np. na wykresie (rys. 5.2.5.) lub mapie. Rys. 5.2.5. Narzędzie Open Data Mashup dane na temat wyników wyborów zaprezentowane na wykresach Google. Analizowanie danych na wcześniej przygotowanym w Open Data Mashup zestawie elementów jest dobrym i wygodnym sposobem eksploracji Linked Data. Jednak budowanie nowych zapytań i połączenie ich z odpowiednią kontrolką odpowiadającą za wizualizację danych może stanowić duże wyzwanie, dlatego narzędzie to nie jest atrakcyjne dla użytkowników bez wystarczającej wiedzy technicznej. 23
Podsumowanie przeglądu istniejących rozwiązań Przedstawione w tym rozdziale narzędzia do wizualizacji Linked Data można podzielić na trzy oddzielne kategorie. Lod Live oraz LODmilla to narzędzia umożliwiające swobodną eksplorację całej sieci danych poprzez analizę powiązań i przechodzenie do kolejnych obiektów. Chociaż w Lod Live można zauważyć wiele obszarów wymagających poprawy, to LODmilla okazuje się być aplikacją niemal doskonałą. Jej twórcy rozwiązali najważniejsze problemy, na które napotykają użytkownicy Lod Live. Aplikacje gfacet oraz RelFinder w inny sposób podchodzą do wizualizacji danych skupiając się na węższym zakresie zastosowań. Nie wymagają one poprawek ani modyfikacji, ponieważ są bardzo dobrze dopracowane. Open Data Mashup przedstawia dane w przystępny i czytelny sposób. Jest to narzędzie bardzo uniwersalne. Jednak lepsze efekty tego typu wizualizacji można uzyskać skupiając się na konkretnej dziedzinie i dodatkowo dostosowując do niej interfejs aplikacji. Wszystkie przedstawione podejścia charakteryzują się dążeniem do prezentowania danych nieopracowanych. Zadaniem użytkownika aplikacji jest wstępne wyszukanie i przygotowanie danych, które następnie można analizować. Brak wstępnie opracowanych danych lub gotowych do wykonania zapytań może być dla wielu użytkowników nieposiadających odpowiednich umiejętności barierą nie do pokonania. 24
6. Nowa metoda wizualizacji danych Większość obecnie rozwijanych podejść do wizualizacji Linked Data skupia się na dążeniu do utworzenia narzędzia umożliwiającego swobodną eksplorację ogromnych zbiorów danych [3]. Ograniczenia narzędzi skupiających się na przedstawieniu mniejszej ilości wstępnie przetworzonych danych są często jednoznacznie uznawane za wadę [12] bez uwzględnienia potrzeb i oczekiwań poszczególnych grup użytkowników. Na obecnym poziomie rozwoju Linked Open Data nie ma potrzeby tworzenia bardziej zaawansowanych narzędzi służących do wizualizacji danych wielodziedzinowych. Narzędzia takie jak LODmilla i Lod Live pozwalają na swobodną eksplorację sieci Linked Data. Obsługa tych aplikacji i sposób wyszukiwania danych może jednak sprawiać użytkownikom trudność. Inaczej przedstawia się sytuacja narzędzi do wizualizacji Linked Data skupiających się na bardziej szczegółowym przedstawieniu danych, wydobyciu z nich dodatkowych informacji i ukazaniu w formie ułatwiającej analizę. Programy tego typu pozwalają lepiej wykorzystać potencjał Linked Data. Jednak obecnie tworzenie niewielkich aplikacji tego typu nie jest wystarczająco popularne. Na rozpowszechnienie idei Linked Data może wpłynąć tworzenie na szeroką skalę prostych aplikacji przedstawiających dane z określonej dziedziny z wykorzystaniem nowych możliwości i prezentacja ich w sposób przystępny dla wszystkich użytkowników, również tych nieposiadających umiejętności technicznych. W ramach pracy zostanie utworzona przykładowa aplikacja tego typu, która następnie zostanie wykorzystana w badaniach metod wizualizacji Linked Data. Celem badań jest ustalenie czy użytkownicy, o różnym poziomie zaznajomienia z nowymi technologiami, potrafią wykorzystać złożone narzędzia do wizualizacji wymagające wstępnego przygotowania i samodzielnego wyszukania danych. Rozpatrzone zostaną także oczekiwania użytkowników względem aplikacji służących do wizualizacji danych, aby ustalić w jakim stopniu poszczególne grupy osób są zainteresowane dostępem do większej ilości nieopracowanych danych. 25
6.1. Wymagania wobec nowego rozwiązania Aby możliwe było późniejsze porównanie różnych podejść do wizualizacji Linked Data, konieczne jest utworzenie narzędzia spełniającego kilka podstawowych założeń. Pierwszym z nich jest odpowiedni dobór danych, które będą w narzędziu prezentowane. Powinna być to dziedzina, z której dane można łatwo przedstawić przy użyciu generycznych narzędzi pozwalających na swobodną eksplorację danych. Wybrane dane muszą być dostępne w chmurze Linked Open Data. Ze względu na udział w badaniu osób o różnych zainteresowaniach i oczekiwaniach, prezentowana tematyka nie powinna wymagać zaawansowanej wiedzy dziedzinowej. Wybrany do prezentacji obszar danych powinien być zrozumiały dla jak największego grona odbiorców. Kolejnym założeniem jest zadbanie o prostotę obsługi nowotworzonego narzędzia. Jest to jedna z największych zalet aplikacji, które skupiają się na wizualizacji wstępnie przetworzonych danych na określony temat. Na pierwszy plan powinny wysunąć się prezentowane informacje. Aplikacja powinna zawierać tylko funkcje niezbędne do realizacji podstawowego zadania wizualizacji danych. Konieczne jest także, aby interfejs nowej aplikacji był dostępny tylko w języku angielskim. Pozwala to wyeliminować wpływ poziomu znajomości języka na rezultat badania. Ostatnim założeniem jest przedstawienie ograniczonego punktu widzenia. Przy tworzeniu aplikacji należy skupić się jedynie na wybranym aspekcie prezentowanych danych, a nie na wyczerpaniu tematu. Jest to sytuacja najbardziej prawdopodobna przy rzeczywistym tworzeniu prostych aplikacji tego typu. Dodatkowo pozwala ona na przeciwstawienie łatwości obsługi aplikacji z możliwością eksploracji danych pod dowolnym kątem charakterystycznym dla narzędzi generycznych. 26
6.2. Przedstawienie nowoutworzonego narzędzia do wizualizacji danych W ramach pracy została utworzona aplikacja Academy Award winners przedstawiająca podstawowe dane dotyczące aktorów, którzy zdobyli Oscara w kategorii Najlepszy aktor pierwszoplanowy lub Najlepsza aktorka pierwszoplanowa. Skupia się ona przede wszystkim na wizualizacji danych o miejscach urodzenia poszczególnych laureatów nagrody i przedstawieniu zależności pomiędzy czynnikami takimi jak, m.in. czas, płeć i miejsce urodzenia. Narzędzie spełnia wszystkie przyjęte wcześniej założenia. Ekran aplikacji składa się z trzech sekcji: filtry, mapa, kafelki. Aby wykonać przygotowane zapytania SPARQL, wykorzystano możliwości frameworka Sesame do połączenia z punktami dostępowymi SPARQL serwisu DBpedia oraz firmy OpenLink Software. Fragment kodu programu zawierający adresy punktów dostępowych SPARQL: Repository repo = new SPARQLRepository("http://dbpedia.org/sparql"); Repository repo2 = new SPARQLRepository("http://lod.openlinksw.com/sparql"); RepositoryConnection conn; Po nawiązaniu połączenia z wybranym serwisem, przesyłane jest do niego zapytanie SPARQL. Na podstawie uzyskanych odpowiedzi, tworzone są z wykorzystaniem języka Java obiekty reprezentujące wybrany wycinek rzeczywistości. Pierwsze polecenie pobrania danych z chmury Linked Open Data polega na wydobyciu identyfikatorów obiektów znajdujących się na liście zwycięzców Nagrody Akademii Filmowej w kategorii Najlepszy Aktor, które są następnie wykorzystywane do utworzenia obiektów klasy Actor. Fragment kodu programu odpowiadający za połączenie z punktem dostępowym serwisu DBpedia, pobranie identyfikatorów aktorów, wywołanie metody tworzącej obiekt klasy Actor i dodanie nowego obiektu do kolekcji: ArrayList<Actor> actors = new ArrayList<Actor>(); try { repo.initialize(); conn = repo.getconnection(); StringBuilder qb = new StringBuilder(); qb.append("select?actors \n"); qb.append("where {?actors dct:subject dbc:best_actor_academy_award_winners.}\n"); TupleQueryResult result = conn.preparetuplequery(querylanguage.sparql, qb.tostring()).evaluate(); while(result.hasnext()) { BindingSet bs = result.next(); Value actor = bs.getvalue("actors"); Actor a = createactorfromuri(actor.stringvalue()); if (a!=null) actors.add(a); } 27
Metoda createactorfromuri przyjmuje jako argument identyfikator obiektu, który podstawiany do kolejnego zapytania SPARQL (zaprezentowanego w podrozdziale Źródła danych ). Podstawowe dane spełniających kryteria zapytania obiektów są przekazywane do konstruktora obiektu klasy Actor. Fragment metody createactorfromuri odpowiedzialny za parsowanie wyniku zapytania i przekazanie go do konstruktora obiektu klasy Actor: TupleQueryResult result = conn.preparetuplequery(querylanguage.sparql, qb.tostring()).evaluate(); if(result.hasnext()) { BindingSet bs = result.next(); Value actorname = bs.getvalue("name"); Value actorbirthdate = bs.getvalue("birthdate"); Value freebaseuri = bs.getvalue("fburi"); Value wikiurl = bs.getvalue("wikiurl"); if((actorname.stringvalue()).equals("")) return null; Actor a = new Actor(uri, actorname.stringvalue(), actorbirthdate.stringvalue(), wikiurl.stringvalue()); String fburi = ""; fburi = freebaseuri.stringvalue(); a.freebaseuri = fburi; return a; } else return null; Pobieranie pozostałych danych niezbędnych do działania aplikacji przebiega w sposób analogiczny do przedstawionego przykładu. Pierwszy element strony aplikacji to rozwijana sekcja Filters pozwalająca na ograniczenie wyświetlanych wyników do spełniających określone kryteria. Filtry pozwalają na określenie następujących cech: o płeć, o liczba mieszkańców miejscowości, w której urodził się laureat nagrody, o przedział czasowy, w którym została przyznana nagroda, o liczba wygranych nagród. 28
Rys. 6.2.1. Sekcja Filters aplikacji Academy Award winners. Wybrane filtry (rys. 6.2.1.) zostają zastosowane do wyników prezentowanych na mapie oraz w postaci kafelków po wciśnięciu przycisku Apply. Informacje o cechach zwycięzców nagrody, które użytkownik może filtrować są przechowywane wewnątrz obiektu klasy Actor. Identyfikatory aktorów są wczytywane z innego obiektu niż dane aktorek, co pozwala na określenie płci laureatów nagrody, która jest reprezentowana za pomocą zmiennej logicznej male. Określenie przedziałów niezbędnych do kategoryzacji wielkości miejsca urodzenia oraz okresu zdobycia pierwszej nagrody również nie stanowiło problemu - rok, w którym miały miejsce te wydarzenia, był dostępny w wykorzystanych zbiorach danych. Natomiast obliczenie liczby nagród zdobytych przez laureata nagrody wymagało rozpatrzenia wyjątkowych sytuacji. Metody klasy Actor pozwalające na obliczenie i zwrócenie informacji o liczbie zdobytych nagród: private int calculatenumberofawards(){ Set<Integer> years = new HashSet<Integer>(); for(movie m:movies) years.add(integer.parseint(m.year)); if (years.isempty()) return 1; return years.size(); } public int getnumberofawards(){ if (numberofawards!=0) return numberofawards; numberofawards = calculatenumberofawards(); return numberofawards; } Aby obliczyć ile nagród zdobyła dana osoba, wykorzystano pobrane wcześniej informacje o filmach, za rolę w których je przyznano. Chociaż zazwyczaj Nagroda Akademii Filmowej jest przyznawana za jedną kreację, to na pierwszej gali miała miejsce wyjątkowa sytuacja, w której Janet Gaynor została nagrodzona za rolę w trzech filmach. Aby poprawnie obsłużyć takie niecodzienne wydarzenia, powtarzające się kilkukrotnie lata przyznania nagrody dla tej samej osoby zostają policzone tylko raz. Dodatkowo, w przypadku gdy nie udało się odnaleźć informacji o żadnym powiązanym filmie, liczba zdobytych nagród zostaje ustalona na jeden. Poprawność tego założenia można wywnioskować z obecności osoby na liście laureatów nagrody. Kompletność danych jest konieczna do poprawnego działania filtrów i umożliwienia graficznego przedstawienia liczby zdobytych statuetek. 29
Mechanizm ukrywania wyników niespełniających wybranych kryteriów wyszukiwania zaimplementowano wykorzystując zmienną logiczną hide obiektu reprezentującego aktora, której negatywna wartość jest warunkiem dodania obiektu do mapy oraz utworzenia powiązanego kafelka. Preferencje użytkownika są zbierane z pomocą formularza, a ich zapamiętanie po odświeżeniu strony zostało osiągnięte dzięki połączeniu kodu HTML i Java. Fragment kodu generującego sekcję formularza definicja pól pozwalających określić płeć laureata nagrody: <form action="actorsmap.jsp" id='filtersform' style="display: block;"> <table> <tr>gender</tr><tr> <td> <% if (showactors) {%> <input type="checkbox" id='men1' name="men" checked="checked"/>men<%} %> <% if (!showactors) {%> <input type="checkbox" id='men1' name="men" />Men<%} %> </td> <td> <% if (showactresses) {%> <input type="checkbox" id='women1' name="women" checked="checked"/>women<%}%> <% if (!showactresses) {%> <input type="checkbox" id='women1' name="women"/>women<%} %> </td> </tr> Kolejny element widoczny na stronie aplikacji to rozwijana sekcja Map - birthplaces of Academy Award winners (rys. 6.2.2.). Na mapie zaznaczone zostały miejscowości, w których urodzili się późniejsi laureaci Oscara. Rys. 6.2.2. Aplikacja Academy Award winners - informacje dotyczące laureatów nagrody przedstawione na mapie. 30
Kolor i jasność punktu na mapie przedstawia dodatkowe informacje. Miejsca narodzin aktorów zaznaczone są kolorem niebieskim, a aktorek różowym. Im ciemniejszy odcień koloru, tym dawniej została przyznana nagroda (w przypadku wielokrotnych zwycięzców, odcień reprezentuje rok zdobycia pierwszej nagrody). Użytkownik aplikacji ma możliwość oddalania i przybliżania mapy oraz przemieszczania się po niej. Po najechaniu kursorem myszy na zaznaczony punkt, na ekranie wyświetla się imię i nazwisko laureata nagrody. Po kliknięciu na punkt (rys. 6.2.3.), wyświetlana jest dodatkowo nazwa miejscowości oraz chronologicznie uporządkowana lista nagrodzonych filmów wraz z informacjami o latach, w których przyznano poszczególne nagrody. Rys. 6.2.3. Aplikacja Academy Award winners - szczegółowe informacje widoczne po kliknięciu na punkt widoczny na mapie. Interfejs programistyczny udostępniany przez firmę Microsoft pozwala na dodanie do mapy kontrolek o określonych współrzędnych. Niezbędne było utworzenie metody generującej odpowiedni kod dla każdego obiektu reprezentującego aktora spełniającego aktualne kryteria wyszukiwania. Fragment kodu programu Academy Award winners odpowiadający za dodawanie do mapy ikon reprezentujących aktorów oraz formatowanie powiązanych opisów: for(actor a:actorlist){ if(!a.ishidden()){ float x = a.getplace().getlat(); float y = a.getplace().getlong(); String p = a.getplace().getpopulation(); String movies = "<p/>academy Award for:<br/>"; if(!a.getmovies().isempty()){ for (int m=0; m<a.getmovies().size(); m++){ movies += a.getmovies().get(m).tostring()+"<br/>"; }} movies = movies.replace("'", "\\'"); 31
}} if(!(x==0 && y==0)){ String place = a.getplace().tostring(); place = place.replace("'", ""); out.println("var pin"+i+" = new Microsoft.Maps.Pushpin( new Microsoft.Maps.Location("+x+", "+y+"), {icon:\""+a.getpushpinimage()+ "\", height:13, width:13, draggable: false}); \n"+ "map.entities.push(pin"+i+"); \n"+ "map.entities.push(new Microsoft.Maps.Infobox(new Microsoft.Maps.Location(" +x+", "+y+"), {title: '"+a.getname()+"', description: 'Birthplace: " +a.getplace().tostring().replace("'","\\'") +""+movies+"', pushpin: pin"+i+"})); \n"); i++; } Pod rozwijanymi sekcjami z filtrami oraz mapą, znajduje się informacja o liczbie aktorów i aktorek spełniających aktualnie wybrane kryteria filtrowania. Poniżej widoczna jest ostatnia sekcja. Jest to lista aktorów (rys. 6.2.4.) w postaci kafelków zawierających podstawowe informacje o laureatach nagrody. Rys. 6.2.4. Academy Award winners ekran aplikacji ze zwiniętymi sekcjami filtrów i mapy. 32
W ostatniej sekcji, informacje na temat każdego aktora są przedstawione w następującej formie (rys. 6.2.5.): główną część kafelka zajmuje zdjęcie pod zdjęciem znajduje się graficzna reprezentacja statuetek odpowiadająca liczbie zdobytych przez aktora nagród imię i nazwisko jest linkiem do strony w serwisie Wikipedia (strona otwierana w nowej zakładce) data urodzenia miejsce urodzenia chronologicznie uporządkowana lista filmów, za rolę w których aktor dostał nagrodę wraz z latami przyznania poszczególnych nagród Rys. 6.2.5. Academy Award winners kafelek z informacjami o laureacie Oscara. Kafelki są przedstawiane w dynamicznie generowanej tabeli. Ze względu na znaczne ograniczenie czytelności prezentowanych danych przy zmianie rozmiaru mapy, wymiary elementów prezentowanych w aplikacji nie są dostosowywane do rozmiaru okna przeglądarki i rozdzielczości ekranu. Liczba kafelków wyświetlanych w jednym wierszu została ustalona na cztery. Łączna szerokość wiersza kafelków dobrze pasuje do rozmiaru mapy. Fragment kodu odpowiedzialnego za generowanie tabeli zawierającej kafelki z informacjami o zdobywcach Oscara: <div id='tiles'> <table cellspacing="30"> <%@ page import="java.util.arraylist, java.io.printwriter, com.example.servlets.actor, com.example.servlets.movie"%> <% int n=1; out.println("<tr>"); for(actor a:actorlist){ if(!a.ishidden()){ String oscaricons = ""; for(int x=0; x<a.getnumberofawards(); x++) oscaricons += "<img src=\"oscaricon.jpg\" style=\"width:18px;height:40px;margin-top:10px;\">"; out.println("<td valign=\"top\"><img src=\""+a.getimage()+"\"></img><br/>" +oscaricons+ " <a href=#\"\" onclick=\"window.open('"+a.getwikiurl() +"','_blank');window.close();return false\">"+a.getname()+ "</a><br/><b>date of birth:</b> "+a.getbirthdate()+ "<br/><b>birthplace:</b> "+(a.getplace()).tostring()+ 33
"<br/><b>awarded for:</b></br>"); } for(movie m: a.getmovies()){ out.println(m.tostring()+"</br>"); } out.println("</td>"); out.println("</td>"); if(n%4 == 0) out.println("</tr><tr>"); n++; } 34
6.3. Wykorzystane technologie W rozdziale tym zostały przedstawione najważniejsze technologie wykorzystane do utworzenia aplikacji Academy Award winners. Java Servlet Serwlety Java pozwalają na tworzenie niezależnych od platformy aplikacji webowych. Są to działające po stronie serwera klasy mające dostęp do całego API Javy. Nie posiadają interfejsu użytkownika. Komunikują się z przeglądarką za pomocą protokołu HTTP. JavaServer Pages Technologia JavaServer Pages (JSP) umożliwia tworzenie dynamicznych stron internetowych poprzez łączenie obiektowego języka programowania Java z kodem dokumentu HTML. Gdy przeglądarka żąda przesłania dokumentu JSP, kod w języku Java jest wykonywany po stronie serwera, a użytkownik otrzymuje wygenerowany dokument HTML. Technologia pozwala na połączenie statycznych elementów strony z dynamicznie generowaną zawartością. Sesame Framework Sesame to framework dla języka Java umożliwiający przetwarzanie danych modelu RDF. Pozwala na wykorzystanie możliwości Linked Data i sieci semantycznych przez zapewnienie interfejsu programistycznego pozwalającego na łączenie z punktami dostępu SPARQL, wykonywanie zapytań oraz parsowanie i przechowywanie odpowiedzi. Wspiera wszystkie najważniejsze formaty modelu RDF, m.in. RDF/XML, Turtle i JSON-LD opisane w rozdziale Model reprezentacji Linked Data. Mapy Bing Bing Maps to platforma firmy Microsoft udostępniająca szereg funkcji pozwalających na osadzenie we własnej aplikacji interaktywnej mapy. Serwis zawiera zarówno mapy drogowe, jak i stworzone ze zdjęć satelitarnych. 35
6.4. Źródła danych Dane prezentowane w aplikacji Academy Award winners pobierane są z trzech powiązanych ze sobą zbiorów dostępnych w chmurze Linked Open Data: DBpedia, Freebase, GeoNames. DBpedia jest zbiorem danych utworzonym na podstawie artykułów w popularnym serwisie Wikipedia. Jest to próba ustrukturyzowania i opisania za pomocą standardów sieci semantycznych dostępnych w Wikipedii danych, aby umożliwić ich lepsze wykorzystanie. Projekt ma także na celu ukazanie brakujących funkcji encyklopedii i wyłonienie obszarów, które można ulepszyć. Aplikacja Academy Award winners pobiera z DBpedii podstawowe dane na temat laureatów Nagrody Akademii Filmowej w kategoriach Najlepszy aktor oraz Najlepsza aktorka. Wyszukiwane są także identyfikatory URI powiązanych zasobów w zbiorach Freebase oraz GeoNames pozwalające późniejsze wydobycie szczegółowych informacji. Na początku wykorzystane zostały dwa proste zapytania SPARQL pobierające listę identyfikatorów URI aktorów znajdujących się na liście zdobywców Oscara w analizowanych kategoriach: SELECT?actors WHERE {?actors dct:subject dbc:best_actor_academy_award_winners. } SELECT?actors WHERE {?actors dct:subject dbc:best_actress_academy_award_winners. } Pobrane identyfikatory zostały wykorzystane w kolejnych zapytaniach. Dzięki temu możliwe było szybkie odnalezienie podstawowych informacji, a także powiązań z innymi serwisami. W pierwszym zapytaniu, wykonywanym dla wszystkich identyfikatorów URI laureatów Oscara, ze zbioru DBpedia pobierane są następujące informacje: nazwa zasobu w formie czytelnej dla człowieka: imię i nazwisko (zastosowano filtr, aby odrzucić niepożądane etykiety zawierające nieodpowiednie znaki), data urodzenia, adres strony w serwisie Wikipedia, z której pochodzą dane, identyfikator URI aktora w zbiorze danych Freebase (do jego identyfikacji wykorzystano mechanizm filtrowania). 36
SELECT DISTINCT?name,?birthDate,?fbUri,?wikiUrl WHERE { { <uri> rdfs:label?name. <uri> dbo:birthdate?birthdate. <uri> <http://www.w3.org/ns/prov#wasderivedfrom>?wikiurl. <uri> owl:sameas?fburi. } FILTER (regex(?fburi, 'freebase')) FILTER (regex(?name, "[a-z]")) } LIMIT 1 Kolejne zapytanie skierowane do DBpedii, pobiera następujące dane dotyczące miejsca urodzenia poszczególnych aktorów: identyfikator URI miejsca urodzenia (zastosowano filtry, aby upewnić się, że w odpowiedzi nie zostanie dostarczony identyfikator kraju), identyfikator URI miejsca urodzenia w zbiorze danych GeoNames (do jego identyfikacji wykorzystano mechanizm filtrowania), liczebność populacji miejsca urodzenia, jeżeli taka informacja jest dostępna. SELECT DISTINCT?birthPlace,?place,?population WHERE { { <uri> dbo:birthplace?birthplace.?birthplace owl:sameas?place. OPTIONAL {?birthplace dbo:populationtotal?population. } } FILTER (regex(?place, "geoname")) FILTER (NOT EXISTS {?birthplace rdf:type dbo:country }) FILTER (NOT EXISTS {?birthplace rdf:type umbel-rc:country }) FILTER (NOT EXISTS {?birthplace rdf:type schema:country }) } LIMIT 1 Dwa kolejne proste zapytania do serwisu DBpedia wykorzystano, aby pobrać czytelną dla człowieka nazwę miejsca urodzenia aktora oraz adres zdjęcia laureata nagrody: SELECT DISTINCT?label WHERE {<uri> rdfs:label?label} LIMIT 1 SELECT DISTINCT?thumbnail WHERE {<uri> dbo:thumbnail?thumbnail} LIMIT 1 Drugim zbiorem danych, który wykorzystano w aplikacji Academy Award winners, jest Freebase. Zbiór ten ma podobny charakter do DBpedii. Dane w nim zawarte pochodzą z kilku serwisów, m.in. Wikipedii. Członkowie społeczności utworzonej wokół Freebase mają również możliwość dodawania danych. 37
Do Freebase skierowane zostało jedno złożone zapytanie dla każdego laureata nagrody pozwalające na wydobycie następujących informacji: tytuł filmu, za rolę w którym została przyznana nagroda (zastosowano filtry, aby został zwrócony tytuł w języku angielskim), rok, w którym została przyznana nagroda. PREFIX ns: http://rdf.freebase.com/ns/ SELECT?award?year?movie?movieTitle WHERE { { } UNION { } <uri> ns:award.award_winner.awards_won?award.?award ns:award.award_honor.award ns:m.0f4x7.?award ns:award.award_honor.year?year.?award ns:award.award_honor.honored_for?movie.?movie rdfs:label?movietitle. <uri> ns:award.award_winner.awards_won?award.?award ns:award.award_honor.award ns:m.0gqwc.?award ns:award.award_honor.year?year.?award ns:award.award_honor.honored_for?movie.?movie rdfs:label?movietitle. FILTER(LANG(?movieTitle) = \"\" LANGMATCHES(LANG(?movieTitle), \"en\")) } Zapytanie skierowane do Freebase zwraca listę wszystkich nagród, które zdobyła osoba o danym identyfikatorze. Dzięki zastosowaniu sumy dwóch zestawów warunków wykorzystujących inne identyfikatory do określenia nagrody, możliwe jest wykorzystanie tego samego zapytania zarówno dla aktorek, jak i aktorów. Projekt Freebase został oficjalnie zamknięty 2 maja 2016 roku. Aby możliwe było dokończenie badań, dane pobierane wcześniej z tego serwisu przez aplikację Academy Award winners będą wczytywane z pliku. Lokalnie przechowywane dane nie różnią się niczym od wcześniejszych wyników zapytań kierowanych do Freebase. Różnica w sposobie pozyskiwania danych nie jest zauważalna z punktu widzenia użytkownika programu i nie ma wpływu na wyniki przeprowadzanych badań. Do utworzenia aplikacji niezbędne były także dokładne dane geograficzne: współrzędne oraz dane o liczebności populacji poszczególnych miejscowości. W początkowej fazie rozwoju aplikacji, wykorzystywane były dane z DBpedii. Jednak po dokładnej analizie otrzymywanych wyników, zauważone zostały błędy we współrzędnych. W niektórych przypadkach ujemne wartości współrzędnych geograficznych zostały w zbiorze DBpedia niepoprawnie zamienione 38
na wartości dodatnie. Chociaż dane w serwisie Wikipedia są poprawne, to zostały one uszkodzone w procesie parsowania. DBpedia nie zawiera również informacji o liczebności populacji wszystkich miejscowości. Aby rozwiązać te problemy, wykorzystane zostały powiązania ze zbiorem danych GeoNames zawierającym szczegółowe dane geograficzne. GeoNames nie udostępnia serwisu pozwalającego na wykorzystanie protokołu SPARQL do pobierania danych, dlatego w aplikacji zaimplementowany został dodatkowy moduł parsujący pliki RDF/XML będące oferowaną przez portal formą reprezentacji danych semantycznych. Dla miejsca urodzenia każdego z laureatów Nagrody Akademii Filmowej pobierane są następujące informacje ze zbioru GeoNames: długość geograficzna, szerokość geograficzna, liczebność populacji (wykorzystywana, jeżeli nie ma odpowiednich danych ze zbioru DBpedia). 39
7. Badanie metod wizualizacji Linked Data Przeprowadzane w ramach pracy badania mają na celu ustalenie jakie są oczekiwania osób, w różnym stopniu związanych z nowymi technologiami, względem narzędzi do wizualizacji Linked Data. Porównane zostaną dwa podejścia. Pierwsze z nich zakłada prezentację danych nieopracowanych. Dzięki niemu użytkownik może sam przemieszczać się pomiędzy zasobami i wyszukiwać interesujące go fakty. Aplikacje oparte na tym podejściu wykorzystane w dalszych badaniach to Lod Live oraz LODmilla. W drugim podejściu dane pobierane z chmury Linked Open Data są wstępnie opracowywane i prezentowane użytkownikowi w przyjaznej formie umożliwiającej natychmiastowe zapoznanie się z tematem i rozpoczęcie analizy. Wadą tego podejścia jest utrata możliwości samodzielnego wyboru analizowanego aspektu. Aby umożliwić przeprowadzenie dalszych badań, została utworzona aplikacja Academy Award winners oparta na drugim podejściu. W pierwszym etapie badania zostaną przeanalizowane możliwości porównywanych narzędzi pod kątem eksploracji danych na temat laureatów Nagrody Akademii Filmowej. Kolejnym etapem będzie przeprowadzenie ankiety z udziałem osób w różnym stopniu zainteresowanych nowymi technologiami. Uczestnicy badania będą mieli okazję zapoznać się z każdym narzędziem, a następnie wykonają kilka zadań związanych z wyszukiwaniem informacji na określony wcześniej temat. Sposób wykonywania zadań będzie obserwowany. Po zapoznaniu się z wszystkimi narzędziami, uczestnicy badania odpowiedzą na kilka pytań dotyczących wizualizacji danych oraz dokonają oceny aplikacji. 40
7.1. Porównanie sposobów wizualizacji danych z wybranej dziedziny Narzędzia Lod Live, LODmilla oraz Academy Award winners zostaną porównane pod kątem możliwości wizualizacji danych o laureatach nagrody Akademii Filmowej w kategoriach: najlepszy aktor i najlepsza aktorka. Lod Live Zapoznawanie się z informacjami na temat laureatów Oscara w narzędziu Lod Live można w wygodny sposób rozpocząć od otwarcia zasobu ze zbioru DBpedia zawierającego listę laureatów tej nagrody w danej kategorii, np. http://dbpedia.org/resource/category:best_actor_academy_award_winners. Wizualna atrakcyjność narzędzia (rys. 7.1.1.) powoduje, że przeglądanie powiązanych obiektów sprawia przyjemność i zaciekawia użytkownika. Nawigacja pomiędzy kolejnymi powiązanymi ze sobą zasobami bez określonego na wstępie celu przebiega w zadowalający sposób. Problemem jest jednak wyszukiwanie konkretnych informacji. Nieuporządkowanie powiązanych zasobów sprawia, że odnalezienie oczekiwanych danych jest trudne. Rozwiązaniem pozwalającym na częściowe ominięcie tego problemu jest zapoznanie się ze słownym opisem znajdującym się w oddzielnej sekcji po prawej stronie ekranu. Rys. 7.1.1. Lod Live informacje na temat rodziny i wykształcenia laureata Oscara. Niestety zapoznanie się z informacjami o wszystkich nagrodzonych aktorach nie jest możliwe ze względu na zbyt dużą liczbę zasobów powiązanych tą samą relacją z listą zwycięzców. Obiekty powyżej określonej maksymalnej liczby, zostają obcięte. Chociaż widoczna jest całkowita liczba powiązanych obiektów, użytkownik nie może zobaczyć ich na ekranie. Przy przeglądaniu danych na temat aktorów, bardzo przydatna okazuje się funkcja pozwalająca na prezentację zdjęć powiązanych z widocznymi zasobami w oddzielnej sekcji (rys. 7.1.2.). Dzięki niej nie ma konieczności wielokrotnego oddzielnego otwierania sekcji ze szczegółami zasobu, aby zobaczyć zdjęcie nagrodzonej osoby. 41
Lod Live umożliwia także przedstawienie lokalizacji widocznych zasobów na mapie. Niestety otwarcie obiektu reprezentującego osobę nie jest wystarczające, aby na mapie zostały przedstawione powiązane z nią miejscowości. Należy wcześniej dodać do grafu również powiązane miejsce, co przy dużej liczbie obiektów jest bardzo niewygodne. Rys. 7.1.2. Lod Live sekcja przedstawiające zdjęcia powiązane z zasobami reprezentującymi aktorów. LODmilla Przeglądanie zasobów w narzędziu LODmilla przebiega w sposób podobny do Lod Live. Graf jest stopniowo rozszerzany przez dodawanie kolejnych powiązanych ze sobą zasobów. Jednak sposób prezentacji własności obiektu i jego powiązań jest znacznie lepszy. Specjalna sekcja dzieli powiązane z obiektem zasoby na grupy, dzięki którym użytkownik może szybko i wygodnie poznać podstawowe informacje, a także dodawać kolejne węzły do grafu. Nie ma również żadnych ograniczeń dotyczących liczby możliwych do zaprezentowania powiązań. Dzięki temu zapoznanie się z listą nagrodzonych aktorów (rys. 7.1.3.) nie powinno stanowić problemu dla użytkownika. 42
Rys. 7.1.3. LODmilla lista nagrodzonych aktorów widoczna w sekcji po prawej stronie ekranu. Niestety nie ma możliwości wygodnego zapoznania się ze szczegółowym opisem zasobu z poziomu aplikacji. Aby to zrobić, można spróbować odnaleźć wśród zasobów wychodzących powiązany z obiektem adres strony w serwisie Wikipedia. Chociaż lepszy sposób prezentacji powiązanych obiektów ułatwia swobodne przeglądanie danych laureatów nagrody Akademii Filmowej i umożliwia zapoznanie się z wszystkimi powiązanymi zasobami niezależnie od ich liczby, to odnalezienie w ten sposób konkretnych informacji niebędących bezpośrednio powiązanych z obiektem jest trudne. Z pomocą przychodzą bardziej zaawansowane funkcje programu LODmilla. Pozwalają one na odnajdywanie przy użyciu słów kluczowych obiektów i powiązań wśród widocznych węzłów, a także w ich sąsiedztwie. Aby znaleźć informacje o filmie, za rolę w którym przyznany został aktorowi Oscar, można skorzystać z funkcji odnajdowania ścieżek pomiędzy zasobami. Wybieramy dwa węzły grafu powiązane bezpośrednio z obiektem zawierającym listę laureatów nagrody: węzeł reprezentujący jednego z laureatów nagrody, węzeł zawierający listę filmów, w których grali aktorzy nagrodzeni Oscarem. Po zaznaczeniu zasobów i ustawieniu parametrów, korzystamy z funkcji odnajdywania ścieżek. W rezultacie do grafu dodane zostają filmy, w których grał jeden z laureatów nagrody Akademii Filmowej i powiązane w jakiś sposób z wybranym przez nas aktorem (rys. 7.1.4.). Wśród wyników znajdą się filmy, za rolę w których wybrany aktor został nagrodzony. Samodzielne odnalezienie podobnych informacji bez korzystania z gotowego opracowania lub wczytywania się w biografię artysty, byłoby niezwykle czasochłonnym zadaniem. 43
Rys. 7.1.4. LODmilla funkcja odnajdywania ścieżek pomiędzy węzłami grafu. Academy Award winners Aplikacja Academy Award winners została szczegółowo opisana w rozdziale Przedstawienie nowoutworzonego narzędzia do wizualizacji danych. Pozwala ona na zapoznanie się z najważniejszymi informacjami dotyczącymi każdego laureata Nagrody Akademii Filmowej w kategoriach najlepszy aktor i najlepsza aktorka. Podstawową funkcją aplikacji jest wybranie kluczowych informacji z kilku zbiorów danych i przedstawienie ich w skrótowej formie. Aplikacja umożliwia szybkie zapoznanie się z najważniejszymi informacjami, a także wygodne przejście do powiązanego artykułu w serwisie Wikipedia. Użytkownik ma także możliwość zastosowania szeregu filtrów, aby ograniczyć listę laureatów do osób spełniających określone kryteria. Dodatkowa prezentacja danych na mapie (rys. 7.1.5.) daje możliwość szybkiego zapoznania się z rejonami, z których wywodzą się najbardziej doceniani aktorzy. Istnieje również możliwość prześledzenia zmian jakie zachodziły w tym obszarze na przestrzeni dziesięcioleci. 44
Rys. 7.1.5. Academy Award winners pochodzenie wielokrotnych laureatów Oscara przedstawione na mapie Stanów Zjednoczonych. Wizualizacja danych na mapie świata pozwala szybko zidentyfikować obszary świata, z których wywodzi się większość laureatów nagrody, a także zapoznać się z wyjątkowymi sytuacjami przyznania nagrody osobom niepochodzącym ze Stanów Zjednoczonych ani Europy Zachodniej. Aplikacja w czytelny sposób prezentuje kluczowe dla omawianego tematu informacje. Nie pozwala jednak na bezpośrednią prezentację części informacji dostępnych w innych narzędziach. Aby na przykład dowiedzieć się czegoś o rodzinie lub wykształceniu aktorów, użytkownik musiałby zapoznać się z powiązanym artykułem w serwisie Wikipedia. 45