WIZUALIZACJA INFORMACJI TEKSTOWEJ

Podobne dokumenty
PHP: bazy danych, SQL, AJAX i JSON

WIZUALIZACJA INFORMACJI TEKSTOWEJ- Implementacja w HTML5/JS

Szczegółowy opis zamówienia:

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Referat Pracy Dyplomowej

Webowy generator wykresów wykorzystujący program gnuplot

Uruchamianie bazy PostgreSQL

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Wizualizacja Informacji Tekstowej

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści

Specyfikacja implementacyjna aplikacji serwerowej

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Informatyka II. Laboratorium Aplikacja okienkowa

2017/2018 WGGiOS AGH. LibreOffice Base

Pierwsza niedogodność dotyczy strony zarządzaj działami.

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Podstawy technologii WWW

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Bazy danych i strony WWW

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

ActiveXperts SMS Messaging Server

Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe.

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Skorzystaj z Worda i stwórz profesjonalnie wyglądające dokumenty.

MS Access formularze

Zapytania do bazy danych

REFERAT O PRACY DYPLOMOWEJ

WIZUALIZACJA INFORMACJI TEKSTOWEJ WSTĘP DO HTML 5 CANVAS

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Tworzenie formularzy w Microsoft Office Word 2007

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Wprowadzenie do baz danych

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

Tworzenie i obsługa wirtualnego laboratorium komputerowego

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

OPIS PRZEDMIOTU ZAMÓWIENIA

Dokumentacja projektu QUAIKE Architektura oprogramowania

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci

OpenLaszlo. OpenLaszlo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

REFERAT PRACY DYPLOMOWEJ

Zasady programowania Dokumentacja

która metoda jest najlepsza

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Bazy danych - wykład wstępny

Witryny i aplikacje internetowe - rozkład godzin dla technikum informatycznego

Przewodnik Szybki start

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ

Przejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK.

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

Spis treści MONITOR PRACY... 4

METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI

Pokaz slajdów na stronie internetowej

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

1. Zaczynamy! (9) 2. Edycja dokumentów (33)

Autor: dr inż. Katarzyna Rudnik

Zmiana logo. Dziękujemy za wybór naszych rozwiązań. apjoo od Apláuz. Wspólnie przebrniemy przez proces konfiguracji strony www i wstawiania treści.

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

Podstawy technologii WWW

37. Podstawy techniki bloków

Zastanawiałeś się może, dlaczego Twój współpracownik,

Egzamin zawodowy: Technik Informatyk 312[01] Oprogramowanie biurowe pytania i odpowiedzi

Aplikacje Internetowe

Przedmiotem zamówienia jest dostawa:

Projektowanie nadruków życzeń wewnątrz kartek UNICEF poprzez stronę internetową

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

Projektowanie baz danych za pomocą narzędzi CASE

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

VALIO Sp. z o.o. Załącznik nr 1 do Zapytania ofertowego dotyczącego zakupu licencji części systemu B2B oraz wykonania Warstwy Prezentacyjnej.

Podręcznik użytkownika Obieg dokumentów

16) Wprowadzenie do raportowania Rave

Część I Rozpoczęcie pracy z usługami Reporting Services

Pierwsza strona internetowa

Oferta szkoleniowa Yosi.pl 2012/2013

Tworzenie bazy danych na przykładzie Access

Praca Magisterska "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu" AUTOR PROMOTOR

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Spis treści. Spis treści Wstęp Instalacja nazwa.pl Instalacja Home.pl Edycja grafiki strony logo...

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Ćwiczenie 25 Działania matematyczne we Flashu

TI - Bazy TECHNOLOGIE INFORMACYJNE

Funkcje i instrukcje języka JavaScript

PODSTAWOWE POJĘCIA BAZ DANYCH

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

1. Szczegółowy opis przedmiotu zamówienia

Transkrypt:

WIZUALIZACJA INFORMACJI TEKSTOWEJ Michał Kołkowski Promotor: prof. dr hab. Włodzisław Duch

SPIS TREŚCI 1. Ogólnie o projekcie 2. Baza WordNet. 1. Ogólny opis 2. Budowa na podstawie plików WNDB 3. WordNet w SQL 3. Inne projekty wizualizujące bazę WordNet 4. Algorytmy wizualizacji 5. Mój projekt 1. Opis projektu i prezentacja 2. Używane narzędzia 6. Podsumowanie

CEL PROJEKTU Celem projektu jest stworzenie wizualnej przeglądarki bazy danych WordNet. Głównym zadaniem jest przygotowanie wizualizacji opartej na grafie Podstawowym problemem będzie przedstawienie dużej ilości informacji na schemacie, tak, aby były przejrzyste dla użytkownika W późniejszym etapie muszę zadbać, aby całość tworzyła przyjazne wrażenie dla użytkownika. Rysunek z programu ThinkMap

OGÓLNE SPOSOBY WIZUALIZACJI Istnieją różne sposoby pokazania dowolnych danych W bazie WordNet mogą zachodzić różnego typu relacje (nie tylko relacje zawierania). Jedno słowo ze słownika może wejść w relacje z dużą ilością innych słów, być w wielu zbiorach. Z tego względu najlepszym rozwiązaniem wydaje się grafopodobna wizualizacja, a niektóre sposoby wizualizacji odpadają. Inny sposób Wizualizacja pierścieniowa

BAZA DANYCH WORDNET HTTP://WORDNET.PRINCETON.EDU Baza powstała na uniwersytecie Princeton i udostępnia na jest na licencji umożliwiającej zarówno darmowe jak i komercyjne użycie. Słownik leksykalny języka angielskiego. Słowa (lemma) [rzeczowniki, czasownik, przymiotniki, przysłówki] są pogrupowane w zbiory synonimów synsety. Główną relacją jest synonim i powiązane są nią słowa. Natomiast również synsety mogą wchodzić w relacje z innymi synsetami. Wordnet zawiera 117 000 synsetów połączonych relacjami do innych synsetów. Synsety zawierają definicję oraz w sporej części również przykłady użycia(przykładowe zdania). Synsety łączą te same części mowy. *Synonim, czyli wyraz o podobnym znaczeniu.

PRZYKŁAD SŁÓW W SYNSETACH Na razie mam zrealizowane wyświetlanie synsetów dla wpisanego słowa oraz innych słów, które znajdują się w tych synsetach. Realizuję pobieranie i wyświetlanie informacji na temat relacji synsetów z innymi synsetami.

PRZYKŁADOWE RELACJE MIĘDZY SYNSETAMI (SZCZEGÓŁY W OPISIE BAZY) Relacje między synsetami dotyczą często konkretnych części mowy np. rzeczowników. Hyperonim wyraz, który jest wyrazem nadrzędnym dla grupy wyrazów, które go dokładniej definiują. Np. drzewo może być takim wyrazem dla wyrazów lipa, klon czy dąb. Tego typu relacje występują najczęściej. Relacja ta jest przechodnia. Jeśli drzewo jest rośliną, a dąb drzewem, wtedy dąb również jest rośliną. Meronim tą część składowa całości. Palec jest na przykład meronymem ręki. Jest to relacja jednostronna(asymetryczna). Hyperonimy zachowują meronimy słowa nadrzędnego. Holonim relacja przeciwna do meronimu. Oznacza wyraz o szerszym znaczeniu, będący całością złożoną z pewnych struktur. Tryponym pogrupowane są w nie czasowniki, wśród czasownik są to wyrazy, które określają specyficzne właściwości czynności. Np. wyraz whisper w łańcuchu communicate-talk-whisper. Określa sposób komunikacji i głośność. Antonym przeciwności. Połączone są tymi relacjami przymiotniki. Np. young-old Pertainyms wskazują na rzeczowniki, od których zostały utworzone przymiotniki.

BUDOWA BAZY WORDNET NA PODSTAWIE PLIKÓW BAZODANOWYCH WNDB Najbardziej interesują mnie pliki typu: index oraz data Pliki te kończą się symbolem właściwym częścią mowy, przykładowo:.adj dla przymiotników. Pliki opisane są w stylu mauala polecenia systemu unix http://wordnet.princeton.edu/wordnet/man/wndb.5wn.html Pliki zaczynają się od krótkiej notki na temat autora, licencji i wersji. Linie te są zasłonięte dla ewentualnego algorytmu wyszukującego przez umieszczenie na początku linii dwóch spacji i numeru tej linii

PLIKI INDEX Plik typu index to alfabetyczna lista słów występujących w słowniku wraz z dodatkowymi informacjami. lemma pos synset_cnt p_cnt [ptr_symbol...] sense_cnt tagse nse_cnt synset_offset [synset_offset...] Poniżej prezentuje ważne pola w pliku index Lemma słowo z małych znaków ASCII. Kolokacje mogą być tworzone używając znaku _ między słowami. Kolokacja to często używane zestawienie słów. Pos n,v,a,s,r oznaczające części mowy. Synset_cnt liczba synsetów, do których należy lemma.

PLIKI INDEX P_cnt liczba róznych wskaźników na lemmę, które występują we wszystkich synsetach Ptr_symbol Dla każdego ze wskaźników wymienionych w P_cnt zawiera symbol oznaczający relację z danym słowem. Np. dla czasowników! oznacza Antonym, a @ Hypernym. Informacje na ten temat znajdziemy w plikach leksykograficznych WNINPUT. Synset_offset Zawiera liczbę będącą w bajtach przesunięciem, po którym można odnaleźć miejsce synsetu powiązanego z lemmą w pliku typu: data. Dla każdego synsetu występuje ta liczba.

PLIKI DATA Zawierają synsety wraz z dodatkowymi danymi. synset_offset lex_filenum ss_type w_cnt word lex_id [word l ex_id...] p_cnt [ptr...] [frames...] gloss Poniżej opis najważniejszych pól: Plik zaczyna się polem synset_offset, czyli obecnym 8-bitowym przesunięciem w pliku. Następnie występuje dwucyfrowa liczba lex_filenum, która oznacza typ synsetu zdefiniowany w pliku leksykograficznym np. 34 oznacza verb.consumption czyli czasowniki dotyczące jedzenia i picia. http://wordnet.princeton.edu/wordnet/man/wninput.5wn.html

PLIKI DATA Pole ss_type mówi jaką częścią mowy jest synset. Pole w_cnt zawiera liczbę słów będących w synsecie. Pole word zawiera listę wszystkich słów w synsecie. Tym razem słowa te nie muszą być z małej litery. Pola p_cnt i ptr dotyczą połączeń z innymi synsetami. p_cnt to liczba tych połączeń, a ptr to lista wskaźników do plików.ptr, które mają format: pointer_symbol synset_offset pos source/target Bardzo ważne pole to gloss może ono zawierać definicję synsetu lub/i przykłady użycia. Pole to wykorzystuję w moim programie

WADY PLIKÓW WNDB Używanie plików WNDB jest dość ciężkie, gdyż informacje w różnych plikach są powiązane przez podawanie w nich przesunięć czyli miejsca w innym pliku gdzie znajduje się powiązany element. Odczyt nie jest jeszcze dużym problemem, ale zapis i modyfikacja takich plików wymaga zmian w położeniu rekordów. W swoim programie nie używam bazy danych w tej formie, gdyż wymagałoby to bardzo dużo kodu do obsługi, a są inne rozwiązania. Na początku chciałem sam napisać parser, który przekonwertuje mi pliki WNDB do formatu SQLITE, ale całe szczęście znalazłem znakomite gotowe rozwiązanie. Dlaczego akurat SQLITE? ( ten sam serwer, brak modyfikacji, łatwe przeglądanie SQLite Manager, PDO umożliwia łatwe przerobienie na używanie MySQL)

WORDNET W SQLITE http://wnsql.sourceforge.net/ Powyższa strona udostępnia na licencji Princeton słownik Wordnet w bardzo przyjaznej formie bazy danych SQL. Są tam różne rodzaje baz. Ja wybrałem bazę SQLITE. Używając formatu relacyjnej bazy danych można bardzo łatwo pobierać dane używając istniejących technologii w niemal każdym języku programowania. Minusem jest to, że baza jest dość duża, przez to zapytania nie należą do najszybszych i czasami użytkownik musi chwilę poczekać. Baza występująca w projekcie została przeze mnie odchudzona o pare tabel, których w tym momencie nie potrzebowałem. Dane pobierane są przy użyciu technologii AJAX, więc użytkownik może przerwać ich pobieranie w dowolnym momencie. W przyszłości będzie mógł dobrać dodatkowe bez czekania na nie.

SCHEMAT BAZY DANYCH HTTP://WNSQL.SOURCEFORGE.NET/IMAGES/TABLES- WORDNET.PNG

PODOBNE PROJEKTY WIZUALIZUJĄCE WORDNET WORDNET EDITOR JAVASCRIPT VISUAL WORDNET VISUAL THESAURUS Cechy wspólne Elementy są wizualizowane jaką węzły połączone ze sobą. W środku jest jedno słowo wpisane przez użytkownika na początku. Można uzyskiwać dalsze informacje wybierając kolejne węzły

WORDNET EDITOR HTTP://WORDVENTURE.ETI.PG.GDA.PL/ Umożliwia przeglądanie jak i edycję słownika WordNet. Z wad należy wymienić problemy z wyświetlaniem dużej liczby informacji oraz w tym przypadku również spadek wydajności. Niestety te problemy są naprawdę duże i skutecznie ograniczają korzystanie z projektu. Projekt wykonany jest w technologii FLASH, której ja chciałem w miarę możliwości uniknąć. (dlaczego?) Program podzielony jest na część wizualizacji dostępną dla zwykłego użytkownika i część umożliwiającą edycję słownika dostępną dla zalogowanych użytkowników. Wizualizacja oparta jest na FLASH i bibliotece Gossamer. Natomiast resztę stanowi JAVA. (są również ciekawe gotowe rozwiązania służące do obsługi WORDNET w tym języku)

JAVA SCRIPT VISUAL WORDNET HTTP://KYLESCHOLZ.COM/PROJECTS/WORDNET/ Używa algorytmu sił skierowanych Nie używa żadnej biblioteki graficznej, operuje tylko na elementach HTML przy użyciu JavaScript W środku jest korzeń od niego odchodzą synsety, w których się znajduje, a od nich powiązane słowa Brak relacji między synsetami, brak kierunku relacji, graf nieskierowany Algorytm ułożenia grafu zajmuje sporo czasu

VISUAL THESAURUS HTTP://WWW.VISUALTHESAURUS.COM/ Komercyjne rozwiązanie Bardzo profesjonalnie zrealizowane Bardzo szybki i dobrze wizualizujący algorytm rozkładu Ukazanie relacji między synsetami Sposób prezentacji podobny do tego JAVA SCRIPT VISUAL WORDNET Wiele opcji konfiguracji

ALGORYTMY WIZUALIZACJI ALGORYTM ROZKŁADU KOŁOWEGO jako algorytm pomocniczy ALGORYTM ROZKŁADU OPARTY NA SIŁACH SKIEROWANYCH Force-Directed Algorithm

ALGORYTM ROZKŁADU KOŁOWEGO Najpierw stosuję go podając środek jako 0,0, a następnie dla każdego sysnetu podając jako środek jego współrzędne. W ten sposób rozmieszczam najpierw synsety wokół korzenia, a potem lemmy wokół synsetów. Użyty algorytm jest bardzo prosty, ale doskonale się spisuje. Jest to taki sam algorytm jak do tworzenia wielokątów opisanych na okręgu. Zmodyfikowany trochę, aby działał również dla parametrów < 3. (kierunek modyfikacja)

ALGORYTM ROZKŁADU KOŁOWEGO Pseudokod: Pochodzi z tej strony(uprościłem go trochę): http://edu.i-lo.tarnow.pl/inf/utils/001_2008/0506.php

ALGORYTM ROZKŁADU OPARTY NA SIŁACH Algorytmy z rodziny force-directed używają analogii do sił fizycznych w celu rozmieszczenia elementów grafu. Każdy węzeł jest punktem materialnym(ciałem). Symulujemy graf jako system ciał, które oddziałują między sobą pewnymi wybranymi siłami. Pozycja wynikowa elementu to taka, w której istniejące siły się równoważą. W swoim algorytmie, aby przyśpieszyć zatrzymanie, nie czekam do 0. Liczę energię kinetyczną układu i gdy jest ona mniejsza niż ustalona wartość to zatrzymuję algorytm. Czas uzyskania takiej wynikowej pozycji (właściwie to ilość iteracji) jest w algorytmie force-directed zwykle dość długi.

ALGORYTM ROZKŁADU OPARTY NA SIŁACH Zastosowany przeze mnie algorytm jest dość prosty: Rodzice są połączeni z dziećmi sprężynami. Wykorzystuję tu prawo Hooka. Sprężyny mają ustaloną długość, do której będą dążyły. Każdy węzeł oddziałuje z każdym innym węzłem odpychaniem elektrostatycznym. W zasadzie ponieważ przyjmuję, że ładunki są takie same to siła odpychania zależy od współczynnika oraz odległości między węzłami. Zależy nam, aby odległość ta nigdy nie była < 0.1 ponieważ mamy ją w mianowniku podniesioną do kwadratu i dałoby to ogromne siły. Dlatego do tej odległości zawsze dodaje 0.1, aby tą siłę zmniejszyć.

WYDAJNOŚĆ Sprężyny O(n) Elektrostatyka O(n^2) Na koniec w celu ustalenia zmian położenia w czasie używany jest algorytm Eulera

ALGORYTM ROZKŁADU - MODYFIKACJE Wartą modyfikacją jest zmniejszenie promienia oddziaływania Coulomba, w ten sposób mniej węzłów jest brane pod uwagę przy obliczeniach Siła elektrostatyczna, gdy jest duża wpływa na długość liny i tym samym zapobiega powstawaniu wielu węzłów w jednym miejscu

CECHY ALGORYTMU + Plusy Łatwy i logiczny kod Dobre wyniki dla < 100 węzłów Wyjątkowa symetria otrzymanego rysunku Użytkownik ma możliwość zabawy układem - Minusy Wynik zależy od położenia początkowego węzłów. Zwykle umieszcza się je losowo, ja robię inaczej. Wolny czas zbieżności Może obciążać komputer, gdyż wymaga częstych obliczeń

MÓJ PROJEKT ZASTOSOWANE TECHNOLOGIE OPIS ORAZ PRZENTACJA

JAVA SCRIPT Konieczne środowisko działania czyli przeglądarka Zorientowany obiektowo Umożliwia wiele styli programowania Niedoceniany w przeszłości teraz często używany do tworzenia potężnych aplikacji Główna technologia używana w projekcie. Używana do wyświetlania elementów na Canvasie i obsługi interfejsu użytkownika

JQUERY BIBLIOTEKA JAVA SCRIPT Przyśpiesza znacząco pisanie kodu Obsługa zdarzeń Zapytania AJAX Skalowanie Canvasa Używam też jquery UI w celu zapewnienia ciekawie wyglądającego interfejsu. Kontrolki z tej biblioteki będę później musiał dostosować graficznie do szablonu.

HTML5 CANVAS <canvas> to znacznik HTML, który umożliwia rysowanie grafiki w locie używając skryptów(z reguły jest to JavaScript). Zawiera wiele metod umożliwiających rysowanie ścieżek, wielokątów, okręgów, znaków, dodawania grafik I wiele innych. Nie jest obsługiwany przez starsze przeglądarki W przeciwieństwie do technologii FLASH jego obsługa jest możliwa na wszystkich urządzeniach mobilnych bez instalacji dodatkowego oprogramowania

PHP Używany do pobierania danych z bazy danych SQLite. Używam technologii PDO, dzięki temu bardzo łatwo można zmienić bazę na np. MySQL jeśli zajdzie taka potrzeba. Dane pobierane są asynchronicznie przy użyciu AJAX Skrypt zwraca dane w postaci obiektu Java Script ( JSON)

OPIS PROJEKTU - HTTP://MKOLKOWSKI.LQNSTUDIO.MYDEVIL.NET/ Użytkownik wpisuje słowo w polu tekstowym i klika Viusalize it!. Wtedy program pobiera dane z bazy(trwa to chwilę w zależności od ilości danych do pobrania) i na ich podstawie rysuje synsety[jako koła], do których należy dane słowo. Rysowane są również pozostałe słowa z tych synsetów. Wszystkie elementy rysowane są jako węzły, które są rozmieszczane najpierw przez algorytm początkowy, a następnie przez algorytm rozkładu oparty na siłach(hooka i elektrostatycznej). Płótno(canvas), gdzie rysowany jest graf dostosowuje swoje rozmiary i rozdzielczość do ilości wolnego miejsca na bieżąco. Elementy rysowane są względem środka rysunku

PREZENTACJA PROJEKTU

PODSUMOWANIE Z bazy WordNet w formacie SQL łatwo wydobyć dane i umieścić je na rysunku Mój program na razie działa mało wydajnie oraz sam sposób przentacji pozostawia wiele do życzenia Jestem cały czas w trakcie modyfikacji tego programu. Teraz próbuję przerobić nieco struktury danych w programie i zmienić algorytm. Kwestie typowo graficzne, jak layout aplikacji zostawiam na później

DZIĘKUJĘ ZA WYSŁUCHANIE PREZENTACJI