[własne] Implementacja wizualizatora RDF

Zespół

  • Artur Smaroń

Opis

Implementacja wizualizatora do grafów RDF. Standardowe rzeczy jak filtry widoczności elementów + zapisywanie położenia elementów na diagramie (osobny plik obok rdf, np. xml) i możliwość edycji.

Planowanie i pytania

Zaplanowane podstawowe funkcjonalności

  • Import i eksport plików RDF.
  • Zapis i odczyt diagramu do pliku aplikacji (będzie zawierać dane o strukturze + położeniu i formatowaniu). Może być dodatkowy plik xml: do uzgodnienia.
  • Możliwość edycji struktury RDF poprzez manipulowanie elementami grafu: zmiana połączeń, transformacja i dodawanie elementów na diagramie, usuwanie elementów, zmiana nazw. Zmodyfikowany model będzie można wyeksportować do pliku RDF.
  • Kształt elementów będzie zgodny z przyjętą konwencją: docelowo miałyby wyglądać analogicznie jak w przypadku narzędzia W3C RDF Validator.
  • Możliwość dowolnego przesuwania elementów.
  • Skalowanie widoku.
  • Przesuwanie panoramy widoku.
  • Filtry widoczności elementów - pytania.
  • Możliwość wyklikania modelu od podstaw i zapisu do RDF.

Dodatkowo chciałbym zrealizować

  • Zaimplementować algorytm automatycznego rozkładania grafu na płaszczyźnie.
  • Eksport widoku diagramu do plików: *.svg, *.png.
  • Możliwość wczytania pliku RDF z sieci (przez adres URL).

Pytania

  • Filtry widoczności.
  • Kształty elementów, kolory, napisy, sygnatury.
  • Zakres typów danych dla Literal.
  • Przestrzenie nazw, granice dla RDF.

Wyzwania

  • Parsowanie RDF w celu wyodrębnienia elementów.
  • Powtórne odtwarzanie RDF.

Wymagania

Spotkania

Projekt

Ostatnia wersja dostępna pod: http://student.agh.edu.pl/~arturs/SemWebEditor/

Ogólny opis

W ramach projektu przygotowany został webowy edytor RDF. Użyto technologii html5 (tworzenie obiektów wektorowych) oraz PHP. Zrealizowane zostały wszystkie zaplanowane funkcjonalności:

  • Program umożliwia importowanie treści RDF/XML oraz jej eksportowanie do pliku.
  • Program pozwala na dynamiczne manipulowanie parametrami elementów (tekst, typ danych, położenie) i zapis do plików wymyślonego formatu RDFT (*.rdft). Pliki zawierają całą definicję modelu wraz z położeniem. Plik może być wczytywany do programu. Po wczytaniu pliku *.rdft, model można zapisać do pliku RDF (*.rdf).
  • Dowolny plik RDF/XML może być wczytany, zmodyfikowany (dodane/usunięte/zmodyfikowane elementy) za pomocą manipulacji elementami wizualnymi grafu, po czym ponownie wyeksportowany do pliku RDF/XML.
  • Kształty elementów zaprojektowane i przygotowane zostały zgodnie z tym co można zobaczyć tutaj: W3C RDF Validator.
  • Dowolne elementy diagramu mogą być przemieszczane. Możliwe jest też przemieszczanie całego widoku.
  • Nieograniczone skalowanie (zoom-in, zoom-out oraz normal).
  • Zaimplementowane zostały filtry widoczności działające na podstawie wartości URI/literału/ganId (whole, partial).
  • Możliwe jest stworzenie pliku RDF/XML wyłącznie przy użyciu graficznego edytora (wyrysowanie grafu i zapis do pliku).
  • Zaimplementowany został zmodyfikowany algorytm rozkładu grafów skierowanych (zgodny z Graphviz).
  • Istnieje możliwość generowanie plików graficznych na podstawie modelu. Możliwe są do wyboru formaty PNG oraz wektorowy SVG.
  • Wielkość elementów grafu wyliczana jest automatycznie na podstawie zawartości tekstu. Jedynie połączenia (predykaty) można dowolnie rozciągać.

Instrukcja obsługi RDF Web Editor 0.1

  1. Tworzenie nowego modelu. Cała pamięć programu jest czyszczona. Użytkownik jest pytany o potwierdzenie.
  2. Otwarcie pliku RDFT (*.rdft) i wczytanie modelu do programu.
  3. Zapis do pliku RDFT (*.rdft) lub do RDF/XML (użytkownik ma możliwość wyboru):
  4. Usunięcie zaznaczonego elementu diagramu (w przypadku usunięcia elementu oval/blank/literal usuwane jest również połączenie: predykat, jeśli łączy się z tym obiektem).
  5. Skalowanie całego widoku: powiększanie.
  6. Skalowanie całego widoku: pomniejszanie.
  7. Przywrócenie skali domyślnej.
  8. Auto-layout: automatyczny rozkład grafu.
  9. Eksport do pliku graficznego. Po aktywacji pojawia się podmenu (patrz niżej).

  1. Generowanie obrazu (po każdorazowej zmianie zawartości diagramu, wymagane jest ponowne generowanie obrazu). Program pamięta ostatni wygenerowany obraz.
  2. Usunięcie wygenerowanego obrazu. Powoduje schowanie podmenu zapisu grafiki.
  3. Nazwa dla pliku graficznego.
  4. Zapis do pliku obrazu wektorowego.
  5. Zapis do pliku obrazu PNG.

  1. Przycisk chowający/pokazujący menu elementów.
  2. Element oznaczający owalny obiekt z unikatowym URI (może to być 'subject' lub 'object' trójki).
  3. Element obiektu, który może być tylko dla elementu 'literal'.
  4. Element blank, zawierający unikatowy identyfikator. Może być to 'subject' lub 'object' trójki.
  5. Element oznaczający predykat.

W celu utworzenia na diagramie wybranego elementu graficznego, należy ten element złapać myszą i upuścić na 'papierze' diagramu. Fragment przykładowego diagramu poniżej:

Właściwości poszczególnych elementów

Po zaznaczeniu/kliknięciu elementu na diagramie (element zostaje zaznaczony prostokątną ramką zarysowaną przerywaną linią) pojawia się menu odpowiednie dla wybranego elementu.

Element ovalny

Po wpisaniu URI i akceptacji przyciskiem OK nastąpi aktualizacja modelu. W przypadku wpisania identyfikatora, który już istnieje pojawi się informacja: Podobnie będzie w przypadku obiektu typu blank (UWAGA: podczas wczytywania zawartości RDF z pliku, identyfikatory obiektów pustych generowane są automatycznie. W przypadku tworzenia modelu odręcznie za pomocą edytora, należy wpisać je ręcznie wg schematu: _:genid<indeks>, gdzie <indeks> oznacza odpowiedni indeks).

Element literal

W przypadku obiektu literal wybrać należy wartość oraz można wpisać typ (typ nie jest obligatoryjny). Typ nie jest widoczny na diagramie, ale zapisywany jest w plikach RDFT/RDF. Po zaznaczeniu elementu literal na diagramie widać będzie, który element posiada określony typ.

Wartość URI powinna mieć być zgodna z ogólnie przyjętą konwencją (rozpoczynać się od Http..). To samo dotyczy URI innych elementów. W przypadku zastosowania URI niestandardowego (zwykłe 'słowo'), podczas parsowania do RDF/XML nadany zostanie odpowiedni przyrostek, żeby zachować zgodność.

Parsowanie RDF/XML i filtry

Parsowanie RDF/XML

Po wybraniu opcji RDF content pojawia się edytor tekstowy, przycisk parsowania zawartości edytora i jego czyszczenia: Pomyślne zakończenie budowania modelu skutkuje pojawieniem się odpowiedniego diagramu (wielkość 'papieru' dostosowuje się automatycznie wielkości grafu). Na samym dole pojawia się tabela przedstawiająca 'trójki' RDF (analogicznie jak w przypadku W3C Validatora). W przypadku błędów poprawności pliku RDF parser zwróci komunikat i program wyświetli odpowiednią informacjię. Przykład poniżej:

Filtry widoczności

W programie istnieje możliwość filtrowania widoczności grafu. Filtry działają na zasadzie ukrywania/pokazywania elementów zawierających w swojej nazwie jakąś wartość tekstową.

Filtr działa w dwóch trybach:

  • zakrywanie widoczności elementów, których URI/_:genid/literały stanowią całą wpisaną frazę
  • zakrywanie widoczności elementów, których części URI/_:genidów/literałów stanowią wpisaną frazę.

Wartości wpisywać można ręcznie, w dowolnej ilości: każda wartość oddzielona średnikiem. Zgodnie z definicją filtru z powyższego rysunku, na przykładowym diagramie zakryte zostaną wszystkie elementy typu blank (i powiązane z nimi predykaty), oraz wszystkie elementy, które mają w swoim URI/literale fragment memory (obiekty typu literal, oval oraz predykaty-połączenia).

Przykłady

Przykładowy plik graficzny (PNG) diagramu wygenerowanego na podstawie pliku mylibrary.rdf, przygotowanego w ramach laboratorium z Semantic Web nr 3: Kolejny przykład na podstawie pliku: (wersja svg dostępna pod: adresem)

Przykład ontologii (adres). 450 trójek! Fragment wygenerowanego grafu:

Ostatni przykład to plik ontologii multimedia opracowywanej w ramach laboratorium z Semantic Web nr 5 i utworzonej w Protege (wersja desktopowa). Graf jest tak bardzo złożony, że jest nieczytelny w małej rozdzielczości. Plik svg dostępny pod: adresem - jego szerokość to prawie 33 000 px!

Sprawozdanie

Materiały

Przykładowe wizualizatory RDF zaproponowane w raportach do laboratoriów z SemWeb:

Krzysztof Kutt 2014/12/16 16:18

pl/dydaktyka/semweb/2014/projects/rdfviz-impl.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0