Wizualizacja Informacji Tekstowej

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wizualizacja Informacji Tekstowej"

Transkrypt

1 Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Kołkowski nr albumu: Praca inżynierska na kierunku Informatyka Stosowana Wizualizacja Informacji Tekstowej Opiekun pracy dyplomowej prof. dr hab. Włodzisław Duch Katedra Informatyki Stosowanej Toruń 2013 Pracę przyjmuję i akceptuję Potwierdzam złożenie pracy dyplomowej data i podpis opiekuna pracy data i podpis pracownika dziekanatu

2 Dziękuję prof. dr hab. Włodzisławowi Duchowi za pomoc w przygotowaniu pracy. 2

3 UMK zastrzega sobie prawo własności niniejszej pracy magisterskiej (licencjackiej, inżynierskiej) w celu udostępniania dla potrzeb działalności naukowo-badawczej lub dydaktycznej 3

4 Spis treści Strona 1. Wstęp Wprowadzenie do tematu pracy Repozytorium stworzonego projektu Baza danych WordNet WordNet wprowadzenie Zastosowanie bazy danych WordNet Budowa WordNet na podstawie plików WNDB WordNet w postaci relacyjnej bazy danych Sposób realizacji zadania wizualizacji bazy danych Sposoby wizualizacji danych Projekty wizualizujące słownik języka angielskiego Założenia wizualizacji w moim projekcie Budowa aplikacji do wizualizacji danych Budowa aplikacji opartej na JavaScript i HTML5 Canvas Struktura mojej aplikacji Zarządzanie projektem programistycznym Pobieranie danych z bazy SQL Skrypty PHP używające biblioteki PDO Dynamiczne pobieranie treści technologia AJAX Struktury przechowujące dane JavaScript jako język obiektowy Struktury danych przechowujące dane do wizualizacji Wizualizacja elementów na grafie Algorytm rozkładu grafu na bazie sił skierowanych Modyfikacje algorytmu na potrzeby projektu Algorytm rozkładu kołowego Interfejs użytkownika aplikacji wizualizującej dane Budowa interfejsu użytkownika Zastosowanie jquery UI okna dialogowe i podpowiedzi

5 8.3 Dodatkowe możliwości z pomocą narzędzia Firebug Zastosowanie dla aplikacji wizualizującej WordNet Podsumowanie Literatura i odnośniki

6 1. Wstęp 1.1. Wstęp do tematu pracy Tematem mojej pracy inżynierskiej jest Wizualizacja Informacji Tekstowej. W dzisiejszym świecie jesteśmy zalewani różnego rodzaju informacjami tekstowymi. Złożone informacje z wielu dziedzin coraz częściej przechowywane są w wielkich bazach danych. Interpretacja dużej ilości danych w formie tekstowej jest dla człowieka zadaniem trudnym. Bardzo przydatne okazują się wizualizacje graficzne. Przedstawiając dane na rysunku możemy w sposób przejrzysty pokazać powiązania między konkretnymi informacjami. Zadanie przystępnego przedstawienia danych tekstowych znacznie się komplikuje wraz ze wzrostem ilości wyświetlanych danych. Dobra aplikacja wizualizująca informacje powinna, więc umożliwić filtrowanie informacji. Celem mojej pracy inżynierskiej było stworzenie aplikacji wizualizującej informacje tekstowe przechowywane w już istniejącej bazie oraz opisanie sposobów realizacji tego zadania. W Internecie można znaleźć bardzo wiele możliwych do wykorzystania baz danych. Zarówno dostępnych w formie plików do pobrania jak i tylko za pomocą gotowego API (Application Programming Interface) stworzonego na potrzeby danej bazy. Wybrałem bazę danych WordNet, która jest ogromną leksykalną bazą języka angielskiego. Zaletą tego wyboru jest szeroka możliwość zastosowania danych językowych, licencja umożliwiająca wykorzystanie także w komercyjnych projektach oraz dostępność tej bazy w formacie SQL. Problem przejrzystej wizualizacji dużej ilości danych jest złożony. Często istnieje wiele możliwości zaprezentowania danych i musimy wybrać taką, która naszym zdaniem sprawdzi się najlepiej. Poza samym zagadnieniem wizualizacji danych musiałem również wybrać technologie, przy użyciu których będę realizował projekt. W założeniu program miał działać w przeglądarce internetowej. Taka forma programu powoduje, że jest on łatwo dostępny dla niemal każdego użytkownika komputera, a także coraz powszechniejszych smartfonów i tabletów multimedialnych. Zdecydowałem się na użycie stosunkowo nowej technologii HTML 5 współpracującej z językiem skryptowym JavaScript. Wybór ten był podyktowany chęcią uniknięcia używania technologii Adobe Flash, która nie jest już rozwijana. 6

7 W tekście mojej pracy inżynierskiej postaram się przybliżyć temat wizualizacji danych tekstowych oraz schemat działania stworzonej przeze mnie aplikacji. W celu odpowiedniej prezentacji bazy danych warto najpierw poznać jej budowę. Z tego względu na początku skupie się na opisie bazy danych WordNet. Jako, że przedstawione przeze mnie rozwiązania nie są jedynymi możliwymi, zaprezentuje też inne projekty dotyczące wizualizacji danych. Od rozdziału czwartego skupię się głównie na mojej aplikacji jej budowie, wykorzystanych algorytmach oraz problemach, które w trakcie jej tworzenia napotkałem Hiperłącza do stworzonego projektu Wykonaną przeze mnie aplikację można znaleźć pod adresem: Publiczne repozytorium projektu dostępne jest pod adresem: 7

8 2. Baza danych WordNet 2.1. WordNet - wprowadzenie WordNet [1] to leksykalny słownik języka angielskiego. WordNet powstał na Uniwersytecie Princeton w Laboratorium Nauk Kognitywnych. Jego rozwój rozpoczął się w 1985 i trwa do dzisiaj. Obecna wersja projektu jest oznaczona jako 3.1. Zaletą WordNet jest licencja, która pozwala na darmowe używanie słownika także do komercyjnego użytku. Na stronie projektu można również przeglądać zawartość słownika z poziomu przeglądarki internetowej [2]. Słownik WordNet jest rozprowadzany w postaci plików ASCII, ale w Internecie można znaleźć także wersję w postaci relacyjnej bazy danych. W słowniku WordNet formy podstawowe słów(w lingwistyce zwane lemmą) pogrupowane są w zbiory synonimów(zwane synsetami), które reprezentują odrębne pojęcia. Należy zaznaczyć, że baza danych WordNet nie zawiera między innymi zaimków, przyimków oraz spójników. WordNet różni się od słownika wyrazów bliskoznacznych przede wszystkim tym, że to nie słowa są między sobą powiązane relacjami semantycznymi, ale ich znaczenia. WordNet wyróżnia również określanie relacji semantycznych innych niż znaczeniowe podobieństwo. Zbiory synonimów zawierają również dodatkowe informacje: definicje oraz przynależność leksykalną. Większość synsetów zawiera również przykłady użycia jednego lub większej ilości słów zawartych w zbiorze. WordNet w wersji 3.0 zawiera zbiorów synonimów. Dokładne statystyki z podziałem na części mowy przedstawiam poniżej (Tab. 1.). Część mowy Tab.1. Statystyka dotycząca bazy danych WordNet [1]. Unikalny ciąg Zbiory Pary Lemma-znaczenie znaków synonimów Rzeczownik Czasownik Przymiotnik Przysłówek Łącznie

9 Oprócz relacji synonimii w słowniku WordNet występują inne relacje [3]. Generalnie relacje można podzielić na leksykalne oraz semantyczne. Większość relacji semantycznych łączy zbiory z tej samej części mowy. Zdarzają się jednak połączenia pomiędzy różnymi częściami mowy. Postaram się przybliżyć znaczenie posiadania w słowniku relacji, przez przedstawienie najczęściej występujących relacji z podziałem na części mowy. Dla rzeczowników najczęściej występującą relacją jest hiponimia. Zachodzi ona między wyrazem o treści szczegółowej oraz wyrazem bardziej ogólnym. Polega na stosunku podrzędność-nadrzędność. Przykładowo wyraz krzesło jest hiponimem w stosunku do słowa meble. Hiponim jest słowem podrzędnym w stosunku do bardziej ogólnego słowa, zawiera się w jego znaczeniu. Hiperonimem nazywamy słowo nadrzędne. Hiponimia jest relacją przechodnią. Jeśli krzesło jest hiponimem dla słowa meble, a fotel dla słowa krzesło, to fotel również będzie hiponimem dla słowa meble. Należy też zaznaczyć, że słownik WordNet rozróżnia typy oraz instancje. Przykładowo fotel może być rodzajem krzesła. Natomiast Polska jest konkretnym państwem, a nie typem państwa. Ważną relacją semantyczną dla rzeczowników jest meronimia. Meronimem jest fragment większej całości, czyli holonimu. Dla czasowników najczęściej występującą relacją jest troponimia. Relacja ta oznacza, że jeden synset opisuje szczególny przypadek drugiego synsetu(zawierający charakterystyczne cechy). Przykładem może być relacja pomiędzy słowami mówić oraz szeptać. Dla przymiotników ważną relacją jest antonimia. Antonimami nazywamy słowa o przeciwnym znaczeniu np. zimny-ciepły. Jeśli chodzi o relacje przysłówków, to większość wskazuje na przymiotniki bazowe (np. slow slowly) Zastosowanie bazy danych WordNet Przedstawione możliwości projektu WordNet czynią go bardzo użytecznym narzędziem do lingwistyki komputerowej oraz przetwarzania języka naturalnego. 9

10 Natural Language Processing (Przetwarzanie języków naturalnych) [4] jest dziedziną łączącą zagadnienia sztucznej inteligencji i językoznawstwa. Zajmuje się automatyzacją analizy, zrozumienia i generowania języka naturalnego(używanego przez ludzi do komunikacji) przez komputer. Głównym problemem dziedziny jest przekształcanie języka naturalnego na język formalny łatwy do odczytania przez komputer i odwrotnie. W tym aspekcie dane występujące w słowniku WordNet są bardzo przydatne. WordNet jest wykorzystywany w algorytmach zajmujących się identyfikacją encji (Named-entity recognition), czyli klasyfikowaniem elementów do kategorii takich jak osoby, organizacje czy lokacje. Przykładem narzędzia używającego bazy WordNet jest Natural Language Toolkit (NLTK) [5] zestaw bibliotek napisanych w języku Python Budowa WordNet na podstawie plików WNDB Ze strony projektu można pobrać bazę danych WordNet w postaci wielu plików ASCII o różnych formatach. W zrozumieniu zawartości tych plików pomaga dostępna dokumentacja [6]. Formą przypomina ona dokumentacje programów systemu bazującego na Unix. Główne dane słownika dotyczące słów, synsetów oraz połączeń znajdują się w 8 plikach bazodanowych(wndb). Pliki WNDB to zwykłe pliki ASCII. Każde słowo lub synset stanowi oddzielną linię w pliku. Dokładne omówienie każdego pliku można znaleźć w dokumentacji [6]. Kolejne pola zawierające informacje o wpisie oddzielane są spacjami. Pliki podzielone są na kategorie: noun, verb, adjective, adverb. Dla każdej kategorii istnieją dwa pliki: index oraz data. Pliki index stanowią alfabetyczną listę słów występujących w słowniku. Pojedynczy wpis zawiera słowo pisane małymi literami, część mowy, liczbę synsetów, do których należy słowo oraz liczbę wszystkich wskazań na dane słowo. Dla każdego odniesienia do słowa przypisany jest specjalny znak, który oznacza typ relacji. Znaki te zdefiniowane są w plikach leksykograficznych. 10

11 Ważnym polem jest synset offset pole 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. Pliki data zawierają informacje o synsetach. Pojedynczy wpis zaczyna się polem synset offset, czyli 8-bitowym przesunięciem danego wpisu w pliku. Plik data posiada informacje o części mowy synsetu, ilości słów w tym zbiorze oraz listę wszystkich słów do niego należących. Znajduje się tu także definicja zbioru oraz przykład użycia niektórych członków zbioru. Bardzo ważną informacją zawartą pliku data są relacje między synsetami. Pojedynczy wpis zawiera liczbę relacji, w które wchodzi dany synset oraz tablicę przesunięć w pliku data, czyli po prostu tablicę wskaźników na połączone synsety razem z typem relacji. Używanie plików bazodanowych w przedstawionej formie wiążę się z koniecznością używania pól zawierających przesunięcie rekordu w pliku. Jest to dość niewygodne rozwiązanie. Duże problemy pojawiają się, gdy chce się dodać lub usunąć rekordy. Należałoby wówczas obliczyć na nowo wartości pól zawierających przesunięcia rekordów WordNet w postaci relacyjne bazy danych W tworzonym przeze mnie projekcie nie zdecydowałem się na używanie plików WNDB. Wymagałoby to ode mnie stosunkowo dużo kodu do obsługi takiej bazy. Dużo lepszym rozwiązaniem jest użycie relacyjnej bazy danych. W relacyjnych systemach baz danych dane przechowywane są w strukturach nazwanych tabelami. Pomiędzy danymi zawartymi w tych tabelach występują relacje. Jednoznaczną identyfikacje każdego rekordu osiągniemy dzięki istnieniu kluczy głównych - nie będzie, więc problemów z usuwaniem albo dodawaniem danych. Zaletą takiego rozwiązania jest prostota pobierania danych i modyfikacji oraz przede wszystkim istnienie wielu gotowych interfejsów usprawniających pracę z takimi bazami. Napisanie parsera, który przekonwertuje dane z postaci plików ASCII do dowolnej relacyjnej bazy danych nie jest bardzo trudnym zadaniem. Istnieją jednak gotowe rozwiązania, których można użyć. 11

12 WordNet SQL Builder [7] jest projektem na licencji GPL, który udostępnia oprogramowanie umożliwiające przekształcenie bazy WordNet do formatu MySQL lub PostgreSQL. Oprogramowanie zostało napisane w języku Java. Ze względu na otwartość kodu można wprowadzać do niego swoje zmiany. Na stronie dostępne są też gotowe bazy danych w wyżej wspomnianych formatach. Projekt WordNet SQL [8] zajmuje się udostępnieniem baz danych WordNet w większej ilości baz danych SQL. Ze strony projektu można pobrać bazę danych WordNet w formacie SQLite. Baza ta zawiera dane słownika WordNet w wersji 3.0. Schemat bazy danych również można pobrać ze strony projektu. Bazę danych w tym formacie używam w mojej aplikacji. W celu zmniejszenia rozmiaru bazy usunąłem jednak tabele, których nie używam. 12

13 3. Sposób realizacji zadania wizualizacji danych 3.1. Wizualizacja danych Ludzkie zdolności do analizy dużych danych tekstowych w nieprzetworzonej (np. formalnej, generowanej przez komputer) postaci są bardzo ograniczone. Potrzeba wizualizacji informacji wynika ze zdolności człowieka do stosunkowo szybkiego rozpoznawania i interpretowania obrazów [9]. Proces wizualizacji może być kluczem do współpracy komputera oraz ludzkiego umysłu. Badania na temat wizualizacji informacji mają duży związek z potrzebą interpretacji danych generowanych, przetwarzanych i gromadzonych przez urządzenia pomiarowe lub trakcie symulacji komputerowych [11]. Celem jest umożliwienie użytkownikowi łatwego przeszukiwania, filtrowania bazy danych oraz zapewnienie wystarczającego poziomu zrozumienia informacji. Wizualizacje mogą ukazywać tylko konkretne cechy danych. Dzięki ograniczeniu ilości prezentowanych cech można dokładniej obejrzeć wybrany aspekt. Wizualizacja danych często dotyczy ogromnych zbiorów danych, ale odpowiednio przygotowane prezentacje pozwalają bardzo szybko rozpoznać ogólne cechy zjawiska. Najbardziej oczywistym celem wizualizacji jest oczywiście prezentacja informacji w łatwo przyswajalnej formie graficznej [9]. Do prezentacji danych można użyć na przykład powszechnie używanych form histogramu, wykresu kołowego czy struktury grafu. Coraz powszechniejsze są jednak bardzie nowatorskie metody. Obecnie coraz ważniejszym powodem tworzenia wizualizacji jest analiza i eksploracja zgromadzonych danych. Istnieje możliwość oceny kompletności i prawidłowości zgromadzonych danych. Na podstawie odpowiedniej wizualizacji łatwo rozpoznać różnice między grupami danych. Można też rozpoznawać tendencje i trendy, a także wykrywać wyjątki oraz anomalie. W praktyce badawczej tradycyjnie wizualnie zorientowanych nauk (np. historia sztuki, antropologia) wizualizacje były stosowane od połowy XIX wieku jako środek wyrazu wytwarzanej wiedzy [9]. Obecnie za sprawą konieczności analizy danych gromadzonych przez urządzenia wizualizacje znalazły szerokie zastosowanie w naukach technicznych i przyrodniczych. Wizualizacje nie są już tylko ozdobą ani metodą prezentacji, ale mają więcej zadań związanych z analizą wiedzy. 13

14 Duże zastosowanie metody wizualizacji znalazły dzięki powstaniu sieci Internet, która zawiera ogromną ilość informacji. Dostępne w Internecie bazy danych często korzystają z wizualizacji. Nie chodzi tu tylko o bazy naukowe. Z wizualizacji korzystają dziś serwisy społecznościowe czy serwisy internetowe na dowolny temat. Wizualizowane są często rozmaite statystyki, a także np. powiązania słów kluczowych czy kategorii dotyczących artykułów. W Internecie złożonym z rozproszonych na różnych serwerach danych problemem pozostaje wyszukiwanie danych. Obecnie główną rolę w wyszukiwaniu danych pełnią wyszukiwarki tekstowe np. Google. Istnieją również wyszukiwarki wizualne, które umożliwiają przeglądanie zasobów Internetu z pomocą interaktywnej i efektownej graficznie wizualizacji. Przykładem takiej wyszukiwarki jest Search-Cube [10], która prezentuje zasoby sieci jako kwadratowe pola znajdujące się na sześciennej kostce. Użytkownik może obracać kostkę, aby obejrzeć inne dane. Wizualizacje prezentowane w Internecie mają szczególną cechę są bardzo często przeznaczone dla odbiorcy masowego. Istnieje mnóstwo sposobów wizualizacji danych. Ważną cechą, która wpływa na możliwości prezentacji danych jest rodzaj pokazywanej informacji [11]. Informacja liniowa składa się z ciągu liczb i cyfr. Dane są w postaci list i tabel, mogą to być też kody programów. Ten rodzaj danych może być ciężki do przedstawienia w formie graficznej. Dużo łatwiej przedstawić wizualnie informację hierarchiczną. Jest to najczęściej spotykana grupa informacji. Dane podlegają wyraźnej hierarchii. Hierarchiczną strukturą danych nazwiemy strukturę, którą może reprezentować drzewo [12] (graf bez cykli). Przykładem może być struktura plików czy dane geologiczne. Przykładem konkretnego rozwiązania jest program TreeMap [13]. Wizualizuje on drzewa katalogów (może też przedstawiać inne dane) w postaci zagnieżdżonych prostokątów. Wielkość pól jest proporcjonalna do rozmiaru pliku, a kolor może przedstawiać typ pliku. Ciekawym przykładem wizualizacji informacji hierarchicznej jest też aplikacja Newsmap [14]. Prezentuje ona podzielone na kategorie informacje ze świata lub wybranego regionu za pomocą prostokątów z tekstem. Takie rozwiązanie może być szczególnie wygodne na powszechnych dzisiaj ekranach dotykowych. Informację sieciową najłatwiej sobie wyobrazić jako topologię okablowania czy komunikacji. Informacja sieciowa może być również zbiorem słów powiązanych 14

15 znaczeniowo relacjami semantycznymi i leksykalnymi. Tego typu informacje zawarte są w słowniku WordNet. Poszczególne informacje są najczęściej przedstawiane jako wierzchołki, a relacje między nimi jako ich połączenia. Strukturą odpowiednią dla takiej informacji jest graf lub wiele grafów. Przykładem takiej informacji może być sieć podwodnych kabli. Na stronie TeleGeography można znaleźć wizualizacje tych danych na mapie [15]. Innym rodzajem informacji jest informacja wielowymiarowa, która może opierać się na istnieniu metadanych, które zawierają informacje o dokumencie i jednocześnie zawarte są w nim zawarte. Wiele ciekawych wizualizacji w temacie różnych dziedzin nauki można znaleźć na stronie Places & Spaces: Mapping Science [16]. Projekt ma dwa aspekty. Pierwszym jest tworzenie wysokiej jakości map w celu zaprezentowania ich na wystawach na konferencjach i w ośrodkach edukacyjnych. Drugim jest możliwość uzyskania dostępu do wybranych serii map przez stronę za pomocą Internetu. Jako przykład wizualizacji o mniej naukowym charakterze można podać projekt ASK KEN [17]. Przedstawia on w postaci połączonych węzłów będących kołowymi diagramami, bazę danych Freebase [18]. ASK KEN zapewnia efektowną wizualizację. Aplikacja ma wbudowany algorytm fizyczny, który umożliwia użytkownikowi zabawę układem węzłów. Baza danych Freebase to otwarta baza posiadająca ponad 23 miliony encji. Encją mogą być rzeczy, osoby, miejsca, ale też na przykład konkretne filmy czy książki. Elementy połączone są wzajemnie w strukturę grafu. Rys.1. Wizualizacja z pomocą programu ASK KEN. 15

16 3.2. Projekty wizualizujące słownik języka angielskiego Tworzony przeze mnie projekt ma za zadanie wizualizować dane słownika WordNet. Przed rozpoczęciem tworzenia programu zapoznałem się z już istniejącymi rozwiązaniami. Dostępne projekty na ten temat mają różne zadania i są przeznaczone do różnych odbiorców. Niektóre mają na celu umożliwienie w sposób graficzny rozwijania bazy danych. Inne służą głównie do edukacji np. poprawienia znajomości języka szczególnie zwiększenia zasobu słownictwa. Poniższe programy prezentują dane używając struktury grafu lub drzewa. Visual Thesaurus [19] jest interaktywnym tezaurusem. W atrakcyjny sposób przedstawia powiązania miedzy znaczeniami słów (Rys.2.). Aplikacja bardzo sprawnie, w dynamiczny sposób rozkłada elementy grafu. Program wspiera grafy o bardzo dużej wielkości. Jak w wielu tego typu programach, w środku znajduje się wpisywany przez użytkownika element. Od niego odchodzą kolejne elementy tworząc strukturę grafu. Po najechaniu myszą na zbiór synonimów można poznać jego definicję i przykłady użycia. Program umożliwia również filtrowanie danych np. pokazywanie tylko konkretnych części mowy. Plusem programu są też dodatkowe funkcje jak na przykład historia wyszukiwania czy możliwość wygenerowania i wydrukowania dokumentu pdf, który podsumuje przeprowadzoną wizualizację. Rys.2. Wizualizacja dla słowa word z pomocą programu Visual Thesaurus. 16

17 Prostym programem o podobnych założeniach jak Visual Thesaurus jest program JavaScript Visual WordNet [20]. Program rozkłada drzewo za pomocą algorytmu sił skierowanych (Rys.3.). Projekt jest warty uwagi, ponieważ do wyświetlania węzłów używa wyłącznie DOM (Document Object Model) [21] oraz technologii CSS. Elementy drzewa pozycjonowane są absolutnie. Wizualizacja przedstawia tylko synonimy, nie są zawarte inne relacje z bazy WordNet. Rys.3. Wizualizacja dla słowa void z pomocą programu JavaScript Visual WordNet. Bardzo ciekawym projektem jest WordNet Editor [22] (Rys.4.) jest on częścią projektu WordNet Solution rozwijanego na Wydziale Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej. WordNet Editor jest stworzony przy użyciu oprogramowania open source. Poza wizualizacją umożliwia także edycje słownika w intuicyjny, graficzny sposób. Program działa zgodnie z koncepcją Wiki. WordNet Editor prezentuje informacje używając technologii Flash z pomocą oprogramowania Gossamer. Przeglądać oraz edytować słownik WordNet można zarówno z poziomu strony internetowej jak i aplikacji klienckiej napisanej w języku Java. Program ma czasem problemy z wizualizacją dużej ilości danych. W trakcie rozwijania kolejnych węzłów w programie rysunek może stać się nieczytelny, jednak dzięki możliwości filtrowania danych, czyli na przykład ukazania tylko wybranych relacji, można uniknąć takich sytuacji. WordNet Editor to bardzo zaawansowana aplikacja, która może posłużyć również jako narzędzie do budowy słownika dla innego języka niż angielski. 17

18 Rys.4. Wizualizacja z programu WordNet Editor Założenia wizualizacji w mojego projektu Wizualizacje rozpoczynam od umieszczenia na rysunku słowa wpisanego przez użytkownika. Wybrałem umieszczenie tego słowa w centrum rysunku, jako korzeń drzewa. Duże ułatwienie stanowi uniemożliwienie przemieszczania tego słowa. W ten sposób każdy inny element może być ustawiony względem węzła głównego. Pozwala to na dostosowanie rozmiaru wyświetlanego rysunku do rozmiaru roboczego użytkownika. Drzewiastą strukturę stanowią zbiory synonimów (przedstawione w postaci koła), do których należy korzeń, wraz z innymi słowami do nich należącymi. Całość uzupełniają relacje semantyczne oraz leksykalne. Łączą one istniejące już synsety z innymi istniejącymi albo nowymi synsetami. W ten sposób powstaje graf. Relacje są oznaczone za pomocą kwadratu znajdującego się po środku linii łączącej dwa synsety. Ważny czynnik wizualizacji stanowi kolor. Korzeń ma inne tło niż pozostałe słowa. Również specjalny kolor dostały słowa, które wiążą się z relacją leksykalną. Kolor prezentuje również część mowy jaką stanowi zbiór synonimów. Moja wizualizacja zakłada również możliwość ukrywania konkretnych części mowy, relacji czy grup relacji. Mój program ma również możliwość rozbicia węzła na kilka takich samych elementów. Powoduje to powstanie nadmiarowości, ale za to umożliwia łatwiejsze rozłożenie grafu i lepszą widoczność głównej, drzewiastej struktury (opartej na synonimach). Spora część tych założeń przypomina dwa pierwsze programy przedstawione w rozdziale

19 Do założeń mojego projektu należy również umożliwienie użytkownikowi wpływu na algorytm rozmieszczania elementów grafu. Z pomocą ustawień programu można modyfikować parametry tego algorytmu. Użytkownik może również wyłączyć algorytm rozkładu i rozmieścić elementy według swojego pomysłu po prostu przeciągając je po planszy. Rys.5. Wizualizacja relacji słowa void za pomocą wykonanej przeze mnie aplikacji. 19

20 4. Budowa aplikacji do wizualizacji danych w przeglądarce 4.1. Budowa nowoczesnej aplikacji opartej na HTML5 i JavaScript Obecnie w przeglądarce oprócz wyświetlania stron internetowych, możemy także używać zaawansowanych aplikacji. Powoduje to większą dostępność programów dla użytkownika, brak konieczności posiadania konkretnego systemu operacyjnego oraz brak konieczności instalowania oprogramowania na swoim komputerze. Aplikacje typu Rich Internet Application [23] (bogata aplikacja internetowa) oferują bardzo zaawansowany, dynamiczny oraz przede wszystkim jednoekranowy interfejs. Inaczej niż w przypadku statycznej strony internetowej, użytkownik nie musi ładować całego dokumentu od nowa na przykład podczas wprowadzania danych w formularzach albo nawigacji po aplikacji. Dużym plusem tego typu aplikacji jest również wykorzystanie zasobów sprzętowych użytkownika, co może odciążyć serwer. Na dodatek aplikacje typu RIA mogą działać w trybie offline, jeśli jest to możliwe w przypadku danej aplikacji. Czasami aplikacje posiadające wielofunkcyjne, interaktywne interfejsy wyświetlane w przeglądarce zwane są również Web 2.0. Bardzo szybko rozwija się kierunek budowania bogatych aplikacji internetowych w oparciu o HTML, JavaScript oraz technologie AJAX. JavaScript jest zorientowanym obiektowo oraz wieloplatformowym językiem skryptowym. Może działać na pulpicie czy serwerze, ale jego najpopularniejszym środowiskiem jest przeglądarka. Aplikacja zbudowana oparta o JavaScript nie wymaga od przeglądarki żadnych dodatkowych pluginów. JavaScript posiada wiele bibliotek wspomagających tworzenie zaawansowanych programów takich jak jquery, EXT JS, Prototype czy Yahoo! User Interface Library. Przyśpieszają one pisanie kodu, a także zapewniają poprawne działanie kodu w najważniejszych przeglądarkach. Podział aplikacji na moduły zajmujące się konkretnymi czynnościami przyśpiesza rozwijanie kodu. Podczas tworzenia dużej aplikacji warto zastosować wzorzec projektowy MVC Model-View-Controller (Model-Widok-Kontroler) [24]. Model stanowią dane np. pobrane informacje o rozkładach autobusów. Widok to warstwa prezentacji, która wyświetlana jest użytkownikowi programu. Interakcja aplikacji z użytkownikiem jest 20

21 natomiast zapewniana przez kontroler. Uproszczony model działania takiej aplikacji może wyglądać następująco: Użytkownik używa interfejsu aplikacji Kontroler przechwytuje wykonywane przez użytkownika akcje Kontroler pobiera dane z modelu oraz wymusza aktualizację widoku Widok jest pokazywany użytkownikowi Model stanowią struktury, gdzie dane są przechowywane. Model nie powinien wiedzieć nic o widokach ani kontrolerze. Model po prostu zawiera dane oraz logikę z nimi powiązaną. Kiedy kontroler pobierze dane z serwera wrzuca je do stworzonych dla nich struktur danych. JavaScript jest językiem zorientowanym obiektowo. Możemy więc przechowywać dane w obiektach, które mogą być przechowywane w zbiorczym obiekcie, który na przykład będzie umożliwiał wyszukanie encji o konkretnych właściwościach. Widok aplikacji może być wykonany z użyciem technologii HTML oraz CSS. Widok również powinien być oddzielony od reszty aplikacji i nie wiedzieć nic o warstwie danych oraz kontrolerze. Kontroler łączy model oraz widok. Otrzymuje zdarzenia i informacje od użytkownika, przetwarza je i aktualizuje widok Struktura mojej aplikacji Aplikacja do wizualizacji WordNet, którą zrealizowałem jest aplikacją typu Rich Internet Application. Jest dostępna dla użytkownika przez przeglądarkę internetową, umożliwia użytkownikowi szeroką interakcje oraz nie wymaga odświeżania strony. Większość kodu projektu została napisana w języku JavaScript. Interfejs programu został zaprojektowany przy użyciu technologii HTML i CSS. Ważną rolę pełnią skrypty PHP, które pobierają dane z bazy danych SQLite. Oczywiście skrypty i baza muszą znajdować się na serwerze. Pozostałą część aplikacji można umieścić na w dowolnym miejscu(nawet na lokalnym komputerze) pod warunkiem, że poprawne będą linki prowadzące do skryptów PHP. Z pomocą programu CLOC [25] wygenerowałem statystyki na temat kodu projektu (Rys.6.). Przedstawiona na rysunku ilość kodu uwzględnia tylko kod napisany przeze mnie, bez dołączonych bibliotek. 21

22 Kwestią, która rzuca się w oczy jest bardzo mała liczba linii kodu przeznaczona na PHP. Kod PHP dotyczy tylko pobierania danych z bazy danych i zwracaniem ich do JavaScript. Niewielka ilość kodu spowodowana jest użyciem bazy danych SQLite, która umożliwia bardzo łatwe pobieranie danych na podstawie zapytań w języku SQL. Rys.6. Podział kodu na konkretne technologie. Moją aplikację można podzielić ze względu na funkcjonalność na następujące elementy: Pobieranie danych z bazy dany SQLite za pomocą skryptów PHP Realizacja żądania danych z pomocą technologii AJAX Uzupełnianie stworzonych struktur danych pobranymi informacjami Wyświetlanie danych na elemencie płótna zawartym w dokumencie HTML Rozmieszczenie węzłów grafu Obsługa interfejsu użytkownika dotyczącego elementu płótna: translacja, skalowanie i wyświetlanie szczegółowych danych Obsługa pozostałej części interfejsu, nie dotyczącej bezpośrednio płótna ustawienia programu i algorytmów, filtrowanie danych, pomoc programu. Elementy te zostaną dokładniej opisane w dalszej części pracy Zarządzanie projektem programistycznym W pracy nad projektem programistycznym bardzo pomocne jest stosowanie odpowiedniego środowiska programistycznego, najlepiej posiadającego możliwość instalowania dodatków. Wybranym przeze mnie środowiskiem jest NetBeans IDE dostępny dla systemów operacyjnych Windows, Mac OS, Linux oraz Solaris. Projekt 22

23 składa się z NetBeans open-source IDE oraz platformy aplikacji, która usprawnia tworzenie aplikacji Rich Client, głównie przez udostępnienie gotowych usług oraz komponentów. NetBeans IDE wspiera rozwijanie oprogramowania w technologiach PHP, JavaScript, Ajax, Groovy and Grail, oraz C/C++. NetBeans IDE udostępnia także narzędzia wspomagające wyszukiwanie błędów aplikacji oraz używanie systemów kontroli wersji. Ważnym czynnikiem usprawniającym proces tworzenia aplikacji może być zastosowanie systemu kontroli wersji. System kontroli wersji pomaga śledzić zmiany w kodzie i łączyć zmiany dokonane przez wielu programistów. System jest przydatny nawet, gdy nad projektem pracuje tylko jeden programista. Pozwala bowiem przechowywać różne wersje kodu oraz cofać niechciane zmiany. Gdy stosujemy system kontroli wersji przechowujący dane poza naszym komputerem(na serwerze), stanowi on również kopię zapasową w przypadku uszkodzenia naszego urządzenia. Systemy kontroli wersji dzielą się na scentralizowane(klient-serwer) oraz rozproszone(p2p). W przypadku systemu scentralizowanego istnieje centralny serwer, do którego programista wysyła swoje zmiany i pobiera najnowsze wersje oprogramowania. Oczywiście w takim wypadku wymagany jest stały dostęp do takiego serwera. Przykładem systemu scentralizowanego jest używany przeze mnie w projekcie SVN (Subversion). Jest to wolne, otwarte i wieloplatformowe oprogramowanie. SVN udostępnia możliwość autoryzacji użytkowników, a archiwa mogą być publiczne lub prywatne. System prowadzi historie zmian wszystkich plików wraz z nazwą użytkownika, który dane zmiany wprowadził. W przypadku programów o otwartym źródle, system kontroli wersji umożliwia łatwe udostępnienie kodu zainteresowanym osobom. Ważną cechą SVN jest użycie transakcji, czyli zatwierdzanie dokonywanych zmian dopiero, gdy wykonano poprawnie wszystkie zlecone modyfikacje. Dużą zaletą jest również odróżnianie plików binarnych(np. grafik, skompilowanych elementów) od kodu. Przydatną cechą jest możliwość opatrzenia wysłanych zmian komentarzem. Dzięki temu wiemy, co zostało w wybranej wersji projektu zaktualizowane. 23

24 Rys.7. Podział repozytorium na foldery. Często używaną praktyką jest podział repozytorium na foldery zgodnie z ogólnie przyjętymi zasadami (Rys.7.). Trunk zawiera główną linie rozwijanego kodu. Folder branch powinien zawierać alternatywne wersje projektu rozwijające testowe funkcjonalności(jeśli istnieją). Folder tags może zawierać wybrane, stabilne wersje kodu, najlepiej oznaczone numerem wersji. Szczególnie w przypadku projektów o otwartym źródle przydaje się możliwość przeglądania kodu projektu przez przeglądarkę WWW. Z gotowych rozwiązań wartym polecenia jest projekt WebSVN [26]. Zaletą użycia takiego systemu jest brak konieczności posiadania środowiska programistycznego i importowania repozytorium w celu przejrzenia kodu. Takie rozwiązanie oferuje również bardzo łatwy dostęp do dziennika zmian oraz możliwość sprawdzenia, przez którego użytkownika zostały dodane konkretne fragmenty kodu projektu. 24

25 5. Pobieranie danych z bazy SQLite 5.1. Skrypty PHP używające biblioteki PDO Baza danych, której używam w mojej aplikacji zajmuje ponad 60 megabajtów. Użytkownik w każdym zapytaniu będzie pobierał tylko niewielką część danych znajdujących się w bazie. Z tego powodu warto bazę umieścić na serwerze, a dane pobierać uruchamiając po stronie serwera skrypty z pomocą technologii AJAX. PHP jest językiem najczęściej stosowanym do tworzenia skryptów, które działają po stronie serwera. Skrypty PHP są czasami umieszczane plikach HTML, gdy służą do generowania danych na stronie internetowej. Skrypty PHP nie muszą być używane do generowania strony, mogą także zostać wywołane z poziomu konsoli, na przykład w celu przetworzenia danych. Warto wspomnieć, że obecnie język PHP umożliwia sprawne programowanie obiektowe. PHP ma budowę modularną. W celu dodania dodatkowych funkcjonalności można zainstalować nowe moduły. Plusem użycia PHP jest ogromna popularność z czym wiąże się duży wybór serwerów(co przekłada się też na atrakcyjną cenę) oraz mnóstwo dostępnego kodu o otwartym źródle. PHP obsługuje większość znanych baz danych takich jak MySQL, PostgreSQL, Oracle, MS SQL, DB2 czy używana przeze mnie baza SQLite. SQLite to system zarządzania bazą danych oraz biblioteka języka C implementująca taki system. SQLite posiada również API do innych języków programowania między innymi PHP, C++, Python czy Java. Na stronie projektu [27] autorzy przedstawiają najważniejsze cechy systemu baz danych SQLite: samowystarczalny, nie wymagający serwera, bez konfiguracyjny oraz transakcyjny. Samowystarczalność polega na wymaganiu tylko niewielkiego wsparcia ze strony zewnętrznych bibliotek i systemu operacyjnego. Pozwala to na używanie tego systemu baz danych na wielu konfiguracjach sprzętowych, nawet bez modyfikacji. Cała zawartość bazy jest przechowywana na dysku w postaci jednego pliku. Rozwiązanie to nie wymaga stosowania osobnego serwera dla bazy danych. SQLite nie używa również żadnych plików konfiguracyjnych, nie ma potrzeby żadnych początkowych konfiguracji. Ostatnia z wymienionych cech transakcyjność oznacza, że w trakcie pojedynczej transakcji wykonywane są wszystkie zlecone operacje lub żadna. Transakcyjność funkcjonuje nawet, 25

26 gdy dojdzie do zawieszenia aplikacji, systemu czy braku zasilania. Ta cecha ma duże znaczenie dla bezpieczeństwa, szczególnie podczas operacji pieniężnych. W stworzonych przeze mnie skryptach PHP w celu operacji na bazach danych używam biblioteki PDO, czyli PHP Data Objects. PDO można używać od wersji 5.0 języka PHP. Biblioteka stanowi jednolity interfejs baz danych. Klasa PDO zawiera metody operacji na bazach danych, które są wspólne dla różnych silników baz danych(obsługiwanych przez tą bibliotekę). Połączenie z bazą danych przy pomocy tej biblioteki jest bardzo proste (Listing 1.). Szczegółowe informacje na temat wszystkich metod biblioteki są zawarte w obszernym poradniku [28]. W przypadku zmiany bazy danych musimy podać po prostu odpowiednie parametry przy tworzeniu obiektu PDO. W przypadku bardziej zaawansowanego projektu przydatny mógłby okazać się system ORM (Object-Relational Mapping), który odwzorowuje strukturę bazy danych w postaci obiektów. Najbardziej popularne systemy tego typu dla PHP to Doctrine oraz Propel. Listing 1. Tworzenie obiektu PDO dla bazy danych SQLite. Stworzone przeze mnie skrypty pobierają z bazy: podpowiedzi słów wpisywanych przez użytkownika, podstawowe informacje o wpisanym słowie i jego synsetach, definicję oraz słowa synsetu dla podanych identyfikatorów, relacje leksykalne i semantyczne oraz przykłady użycia słów należących do synsetu. Podział tych czynności na różne skrypty pozwala na wyświetlenie użytkownikowi części danych niemal natychmiast, a doładowanie kolejnych danych później. Dzięki temu użytkownik nie jest irytowany długim czasem oczekiwania na dane (tak jak było to w wersji 0.2 mojego projektu, dostępnej w repozytorium). Warto zaznaczyć, że stworzone przeze mnie skrypty mają bardzo podobną budowę. Przyjmują wysłane w żądaniu parametry(np. identyfikator synsetu, którego szczegółowe dane chcemy uzyskać). Parametry przekazywane są metodą GET, czyli przez umieszczenie danych w adresie żądania. Następnie skrypty pobierają(i ewentualnie przetwarzają) dane z bazy danych używając PDO. Wszystkie dane zapisywane są w jednej tablicy, która następnie jest zwracana przez skrypt po przejściu przez funkcję 26

27 json_encode(). Dzięki temu zwróconą tablicę asocjacyjną będzie można w JavaScript odczytać jako obiekt JSON(JavaScript Object Notation), czyli zwykły obiekt JavaScript. Natomiast zwykła(numerowana) tablica zostanie zwrócona w niezmienionej formie. Listing 2. Pobieranie podpowiedzi słów przy użyciu PDO. Na listingu (Listing 2.) przedstawiłem sposób pobierania danych przy pomocy PDO. Jest to część skryptu, który dostarcza podpowiedzi słów użytkownikowi. Jak widać stworzony przeze mnie skrypt umożliwia zwrócenie pięciu wartości, które zaczynają się od wpisanej frazy (używając operatora LIKE). Jest to dobre rozwiązanie dla prostych podpowiedzi wyświetlanych pod polem do wpisywania danych. Oczywiście takie rozwiązanie generuje bardzo ograniczoną funkcjonalność, ale w innym przypadku problemem byłby czas pobierania danych. W przypadku chęci sporządzenia pełnej listy słów, które są podobne do wpisanego można użyć odległości Levenshteina [29]. Odległość ta to najmniejsza liczba działań wstawienia, usunięcia i zamiany znaku, która pozwala przekształcić jeden wyraz w drugi. Inną możliwością ulepszenia tego algorytmu podpowiedzi jest zamiana wpisanego wyrazu na najprostszą formę(zwaną lemmą). Ten proces zwany lematyzacją jest przydatny, ponieważ WordNet zawiera tylko podstawowe formy słów. Przykładowo słowniku jest słowo car natomiast nie ma słowa cars. W celu rozwiązania tego problemu można zastosować przytaczaną już przeze mnie bibliotekę NLTK dla języka Python. Do uzyskania żądanego efektu wystarczą trzy linijki kodu (Listing 3.). Obecnie nie użyłem tego rozwiązania w swoim projekcie(głównie z powodu konieczności użycia języka Python na serwerze PHP, co wymagałoby dużo konfiguracji). Dobrym pomysłem na przyszłość byłaby próba najpierw znalezienia słowa w bazie WordNet, a dopiero w przypadku jego nie znalezienia wykonanie procesu lematyzacji i ponowne sprawdzenie bazy WordNet. W ten sposób, gdy użytkownik wpisze poprawne słowo, nie byłyby generowane dodatkowe opóźnienia. 27

28 Listing 3. Użycie biblioteki NLTK w celu zwrócenia podstawowej formy słowa Dynamiczne pobieranie treści technologia AJAX AJAX, czyli Asynchronous JavaScript and XML [30] pozwala na wymianę danych między stroną WWW, a serwerem. Operacje wykonywane są w tle, a przeładowanie strony nie jest konieczne. Dzięki temu strona zachowuje się jak normalny program (budowę tego typu aplikacji opisałem w rozdziale 4). Mimo tego co sugeruje nazwa, komunikacja asynchroniczna nie jest jedyną możliwością AJAX. Tak samo XML nie jest jedynym formatem przesyłanych danych. Dane często są przesyłane w postaci zwykłego tekstu albo formatu JSON, odpowiadającemu obiektowi JavaScript. Funkcje AJAX są dostępne bezpośrednio w JavaScript. W celu wysyłania prostego żądania HTTP z JavaScript, tworzy się obiekt XMLHttpRequest i przypisuje mu funkcje, która zostanie wykonana przy zmianie stanu żądania. Funkcja taka powinna sprawdzać parametr readystate obiektu XMLHttpRequest, w celu stwierdzenia czy dane zostały już pobrane oraz parametr status, który może informować o błędzie. Wysłanie żądania nie jest trudne, jednak występują różnice w implementacji XMLHttpRequest na różnych przeglądarkach. Szczególnie w przeglądarce Internet Explorer poniżej wersji 7, gdzie XMLHttpRequest jest obiektem ActiveX. Problem można rozwiązać używając biblioteki jquery. W ten sposób nie tylko uzyskamy kod działający tak samo na większości przeglądarek, ale również uprościmy nieco proces tworzenia zapytania. Biblioteki jquery używam niemal w całym programie. W tym rozdziale skupię się na użyciu jej do tworzenia żądań HTTP. jquery udostępnia wiele metod poświęconym technologii AJAX. Ja w projekcie używam metody getjson. Metoda ta pobiera obiekt typu JSON z pomocą żądania HTTP typu GET. Listing 4. Użycie metody getjson do pobrania informacji na temat synsetu. 28

29 Za każdym razem przechowuje obiekt XMLHttpRequest w globalnej zmiennej. Dzięki temu użytkownik może przerwać wykonanie żądania, gdy się na to zdecyduje. Operator $ służy do odwołania się do metody biblioteki jquery. Pierwszym parametrem metody getjson jest ścieżka do skryptu PHP, który pobiera dane z bazy SQLite. Kolejnym parametrem jest obiekt, który zostanie przekazanych jako parametr. Parametry GET będą dostępne w PHP dzięki zmiennej superglobalnej($_get). Po poprawnym wykonaniu żądania zostanie wykonana metoda zawarta w trzecim parametrze funkcji getjson. Metoda ta powinna zawierać parametr data, który będzie zawierał pobrane dane. W moim programie nie pobieram wszystkich danych w jednym żądaniu. Po wykonaniu jednego żądania, sprawdzeniu danych i przypisaniu danych do struktur, program generuje kolejne żądanie. W przypadku błędu w żądaniu, kolejne żądanie nie zostanie wywołane. Kod przedstawiony na listingu (Listing 5.) pozwala przerwać obecny łańcuch żądań, zanim rozpocznie się nowy. Taka sytuacja może wystąpić, gdy użytkownik wymusi nową wizualizację, gdy dane poprzedniej nie są jeszcze całkowicie załadowane. Bez tego prostego kodu mielibyśmy do czynienia z trudnymi do przewidzenia błędami. Listing 5. Zatrzymanie żądania Dane są pobierane zawsze w ustalonej kolejności. Szczegółowy schemat pobierania danych moim programie przedstawia schemat (Rys.8.). W przyszłości dobrym pomysłem byłoby napisanie jednego głównego obiektu, który nadzorowałby wykonanie wszystkich żądań i podejmował decyzje w przypadku błędów. 29

30 Rys.8. Schemat pobierania danych z pomocą technologii AJAX podzielony na konkretne etapy. 30

31 6. Struktury przechowujące dane 6.1. JavaScript jako język zorientowany obiektowo JavaScript jest językiem zorientowanym obiektowo [31, 32]. Warto zauważyć, że w języku tym nie ma klas, są tylko obiekty. Tworzenie własnego obiektu można zacząć od utworzenia pustego obiektu i dodania do niego odpowiednich właściwości. Obiekt to zbiór nazwanych właściwości. Stanowi on listę par klucz-wartość. Właściwości obiektu, które są funkcjami nazywamy metodami. Warto wspomnieć, że w JavaScript również funkcja jest obiektem i może mieć właściwości. Przyzwyczajenie się do braku klas dla programisty używającego wcześniej języków obiektowych takich jak Java czy C# może wymagać czasu, jednak brak klas czyni programy krótszymi. Istnieją również pewne konstrukcje przypominające schemat tworzenia klasy. Obiekty mogą być tworzone za pomocą funkcji konstruujących, w których będą zdefiniowane pola i metody. Na poniższym przykładzie konstruktorem jest funkcja Node (Listing 6.). Listing 7. Tworzenie obiektu przy pomocy konstruktora. Taki sposób tworzenia obiektów używam również w mojej aplikacji. JavaScript umożliwia dużą dowolność programowania. Istnieje wiele sposób realizacji zadań związanych z obiektowością. Przykładowo JavaScript używa obiektu zwanego prototypem w celu implementacji dziedziczenia. Do obiektu prototypu będącego właściwością konstruktora, dodaje się pola obiektu rodzica. Właściwości należące do prototypu zostaną dodane do tworzonego przy pomocy konstruktora obiektu i będzie można z nich korzystać. Nic nie stoi jednak na przeszkodzie, aby zrealizować dziedziczenie w inny sposób (na przykład poprzez proste kopiowanie właściwości). W tym podrozdziale chciałem 31

32 przedstawić podstawowe cechy JavaScript jako języka obiektowego, których używam do tworzenia struktur danych w moim programie Struktury danych przechowujące dane do wizualizacji Do przechowywania danych pobranych z bazy oraz implementacji fizyki używam zestawu stworzonych obiektów. Obiektem pomocniczym, który jest wykorzystywany do implementacji fizyki jest pvector. Obiekt ten jest dwuwymiarowym wektorem. Pozwala na wykonywanie podstawowych operacji matematycznych między dwoma wektorami lub wektorem i stałą, a także umożliwia policzenie długości wektora, jego normalizacji czy negacji. Dzięki istnieniu obiektów tego typu kod algorytmu rozkładu będzie łatwiejszy do zrozumienia. Obiekt typu Node (Rys.9.), czyli po prostu dowolny węzeł grafu stanowi punkt materialny dla algorytmu rozkładu grafu opartego na siłach. Posiada położenie, które może ulec zmianie podczas wykonywania metody Eulera. Metoda Eulera jest metodą rozwiązywania równania różniczkowego na podstawie jego interpretacji geometrycznej. W celu uzyskania nowej wartości położenia, obiekt reprezentujący węzeł przechowuje wypadkową sił działających na węzeł oraz obecną prędkość. Oprócz danych fizycznych obiekt węzła musi zawierać listę swoich dzieci oraz węzłów, z którymi połączony jest relacją. Ważnym polem obiektu jest pole typu, które definiuje jakiego rodzaju węzłem jest obiekt. Natomiast pole hang pozwala stwierdzić czy obiekt ma brać udział w algorytmie rozkładu. Jeśli węzeł jest korzeniem lub jest przemieszczany przez użytkownika, wtedy pole ma wartość 1, a algorytm rozkładu nie zmienia położenia węzła. Istnieje również pole, które pozwala nie wyświetlać odpowiednio oznaczonego węzła, co przydaje się podczas filtrowania danych. 32

33 Node id hang type vposition vvelocity vtension mass datatype isshowed childs[] relation[] relationids[] addchild(node) addrelation(node,relation,linktype) addforce(vforce) coulombrepulsion() solveeuler() ishavechild(node) Rys.9. Schemat zawartości obiektu Node. Ponieważ istnieje parę typów węzłów(korzeń, lemma, synset), to dla każdego z nich zdefiniowałem osobny konstruktor obiektu. Użyłem dziedziczenia prototypowego, aby te obiekty miały dostęp do metod i pól zdefiniowanych w obiekcie Node. Oczywiście nadpisują one niektóre pola rodzica odpowiednimi dla siebie wartościami(pola hang i type). Definiują również zestaw własnych danych. Dla synsetu będzie to na przykład definicja, domena leksykalna, przykład użycia oraz część mowy. Dzięki istnieniu takich szczegółowych obiektów nie trzeba przypisywać tych szczególnych właściwości węzłowi w momencie tworzenia grafu. W swoim programie do połączenia powiązanych ze sobą węzłów używam sprężyn. Konstruktor Spring (Rys.10.) przyjmuje w parametrach dwa obiekty węzłów. Obiekt sprężyny będzie posiadał referencje do tych obiektów. Będzie również zawierał informacje jakimi relacjami są one połączone. Sprężyna posiada ustaloną długość oraz współczynnik sprężystości. Wartości te przydzielane są na podstawie opcji ustalonych w programie. Obiekt sprężyny bierze udział w algorytmie rozkładu grafu. 33

34 Spring node1 node2 springiness springlength linktype[] solvespring() halfpoint() Rys.10. Schemat zawartości obiektu Spring Obiektem zbiorczym przechowującym odwołanie do wszystkich węzłów oraz sprężyn jest obiekt Director (Rys.11.). W programie istnieje tylko jedna instancja takiego obiektu. Zawiera on tablice nodes oraz springs oraz umożliwia szereg operacji na nich. Do tych operacji należą na przykład znalezienie węzła o konkretnych właściwościach, zsumowanie węzłów spełniających przyjęty warunek czy pobranie listy nieukrytych obiektów połączonych z węzłem przekazanym w parametrze. Director przechowuje również odwołanie na korzeń, czyli słowo wpisane przez użytkownika. Istnienie obiektu przechowującego wszystkie dane w postaci list(a nie struktur hierarchicznych) ułatwia stworzenie niektórych algorytmów. Utworzenie takiego zbiorczego obiektu jest lepszym rozwiązaniem niż przechowywanie zawartych w nim danych w przestrzeni globalnej. Director nodes[] springs[] root addnode(node) addspring(node1,node2, getdetailednode(type, id) getdetailedspring(node1,node2) listofleftconnections(rightnode) countactiveleftconnections(rightnode) Rys. 11. Schemat zawartości obiektu Director Również opcje algorytmu rozkładu przechowywane są w jednym obiekcie. Istnieją dwie instancje stworzone przy pomocy konstruktora AlgorithmOptions. Jeden obiekt przechowuje bieżącą konfigurację, a drugi domyślną. W razie czego na podstawie tego drugiego obiektu można przywrócić początkowe ustawienia programu. 34

35 7. Wizualizacja elementów na grafie 7.1. Algorytm rozkładu grafu na bazie sił skierowanych Graf to zbiór wierzchołków, które mogą być połączone skierowanymi lub nieskierowanymi krawędziami, w taki sposób, że każda krawędź zaczyna się w jednym z wierzchołków. W stworzonej przeze mnie aplikacji przedstawiam pobrane z WordNet dane za pomocą tej struktury. W przypadku takiej wizualizacji ważnym problemem jest rozłożenie wierzchołków grafu. Istnieje wiele metod rozkładu grafu. Jedną z grup takich metod są metody sił skierowanych [33]. Metody tego typu traktują graf jako zbiór obiektów, które oddziałują na siebie wybranymi siłami. Analogia do układu fizycznego czyni takie algorytmy prostymi do zrozumienia. Teoretycznym celem algorytmu jest znalezienie takich pozycji dla węzłów, aby suma sił działających na każdy węzeł była równa zero. Dzięki temu graf powinien być czytelnie rozłożony, węzły nie powinny na siebie nachodzić. Czas uzyskania wynikowej pozycji jest w algorytmach tego typu zwykle dość długi(można go wyrazić w potrzebnej ilości iteracji). Tego typu metody składają się zwykle z dwóch elementów: Systemu ciał o ustalonych właściwościach fizycznych Algorytmu, który poszukuje pozycji wynikowej Jedną z łatwiejszych i bardziej popularnych metod opartych na siłach skierowanych jest metoda używająca sprężyn (prawo Hooke a) oraz sił elektrycznych [33]. Algorytm opiera się na dwóch założeniach: Węzły wchodzące ze sobą w relacje są połączone sprężynami. Algorytm wykorzystuje tu prawo Hooke a. Sprężyny mają ustaloną długość, do której dążą. Sumę sił wynikających z połączeń sprężyną dla składowej x, węzła v przedstawia wzór (1). k (1) (d(p, p ) l ) x x v u uv u v uv (u,v) E d(p u, p v ) (1) 35

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

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

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

Bardziej szczegółowo

WIZUALIZACJA INFORMACJI TEKSTOWEJ

WIZUALIZACJA INFORMACJI TEKSTOWEJ 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

Bardziej szczegółowo

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

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Tomasz Kapelak Nr albumu: 187404 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Opracowanie dodatkowego rodzaju pytań dla systemu Moodle

Opracowanie dodatkowego rodzaju pytań dla systemu Moodle Uniwersytet Mikołaja Kopernika w Toruniu Wydział Fizyki, Astronomii i Informatyki Stosowanej Rafał Święch Nr albumu: 236418 Praca inżynierska na kierunku Informatyka Stosowana Opracowanie dodatkowego rodzaju

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dotacje na innowacje. Inwestujemy w waszą przyszłość. PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia

Bardziej szczegółowo

Szczegółowy opis zamówienia:

Szczegółowy opis zamówienia: Szczegółowy opis zamówienia: Rok 2016 budowa stron w html5 (8h v + 4h ćw) 8 szt. html5 - zaawans. (7h v + 5h ćw) 8 szt. programowania w java script (9h v + 7h ćw) 8 szt. java script zaawans (8h v + 4h

Bardziej szczegółowo

Specyfikacja implementacyjna aplikacji serwerowej

Specyfikacja implementacyjna aplikacji serwerowej Projekt: System wspomagania osób studiujących Strona: 1 / 7 Opracowali: Zatwierdzili: Spis treści Damian Głuchowski Krzysztof Krajewski Krzysztof Krajewski dr inż. Sławomir Skoneczny Spis treści... 1 1.

Bardziej szczegółowo

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Szymon Klimuk Nr albumu: 187408 Praca magisterska na kierunku Informatyka Monitorowanie

Bardziej szczegółowo

OPIS PRZEDMIOTU ZAMÓWIENIA

OPIS PRZEDMIOTU ZAMÓWIENIA Lubelskie Centrum Transferu Technologii Politechniki Lubelskiej ul. Nadbystrzycka 36, 20-618 Lublin Tel. 81 538 42 70, fax. 81 538 42 67; e-mail: lctt@pollub.pl OPIS PRZEDMIOTU ZAMÓWIENIA Do realizacji

Bardziej szczegółowo

3.1. Na dobry początek

3.1. Na dobry początek Klasa I 3.1. Na dobry początek Regulamin pracowni i przepisy BHP podczas pracy przy komputerze Wykorzystanie komputera we współczesnym świecie Zna regulamin pracowni i przestrzega go. Potrafi poprawnie

Bardziej szczegółowo

WIZUALIZACJA INFORMACJI TEKSTOWEJ- Implementacja w HTML5/JS

WIZUALIZACJA INFORMACJI TEKSTOWEJ- Implementacja w HTML5/JS http://mkolkowski.lqnstudio.mydevil.net/ WIZUALIZACJA INFORMACJI TEKSTOWEJ- Implementacja w HTML5/JS Michał Kołkowski Promotor: prof. dr hab. Włodzisław Duch SPIS TREŚCI W trakcie prezentacji omówię gotowe

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,

Bardziej szczegółowo

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Infomatyki Stosowanej Piotr Benetkiewicz Nr albumu: 168455 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

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

Część I Rozpoczęcie pracy z usługami Reporting Services Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...

Bardziej szczegółowo

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

World Wide Web? rkijanka

World Wide Web? rkijanka World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

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

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja mobilnego systemu wspomagającego organizowanie zespołowej aktywności fizycznej Autor: Krzysztof Salamon W dzisiejszych czasach życie ludzi

Bardziej szczegółowo

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 Bazy Danych LITERATURA C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 J. D. Ullman, Systemy baz danych, WNT - W-wa, 1998 J. D. Ullman, J. Widom, Podstawowy

Bardziej szczegółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof Kadowski. PL-E3579, PL-EA0312, Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza

Bardziej szczegółowo

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ Systemy baz danych 1. 2 Wstęp do baz danych 2. 2 Relacyjny model baz danych. 3. 2 Normalizacja baz danych. 4. 2 Cechy

Bardziej szczegółowo

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

Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe. Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe. Autor: Mariusz Sasko Promotor: dr Adrian Horzyk Plan prezentacji 1. Wstęp 2. Cele pracy 3. Rozwiązanie 3.1. Robot

Bardziej szczegółowo

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

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0 ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy

Bardziej szczegółowo

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Usługi analityczne budowa kostki analitycznej Część pierwsza. Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.

Bardziej szczegółowo

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

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

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

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska System gromadzenia, indeksowania i opisu słownikowego norm i rekomendacji Praca magisterska Jakub Reczycki Opiekun : dr inż. Jacek Rumiński Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii

Bardziej szczegółowo

Przewodnik Szybki start

Przewodnik Szybki start Przewodnik Szybki start Program Microsoft Access 2013 wygląda inaczej niż wcześniejsze wersje, dlatego przygotowaliśmy ten przewodnik, aby skrócić czas nauki jego obsługi. Zmienianie rozmiaru ekranu lub

Bardziej szczegółowo

Spis treści MONITOR PRACY... 4

Spis treści MONITOR PRACY... 4 Co nowego Spis treści MONITOR PRACY...... 4 Konfiguracja plików... 5 Konfiguracja globalna... 6 Pliki... 6 Projekty... 6 Interfejs użytkownika... 7 Synchronizacja... 7 Typ serwera... 8 Test połączenia...

Bardziej szczegółowo

Aplikacja webowa do zarządzania maszynami wirtualnymi

Aplikacja webowa do zarządzania maszynami wirtualnymi Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Poliński nr albumu: 273047 Praca inżynierska na kierunku informatyka stosowana Aplikacja webowa do zarządzania

Bardziej szczegółowo

Praca w sieci z serwerem

Praca w sieci z serwerem 11 Praca w sieci z serwerem Systemy Windows zostały zaprojektowane do pracy zarówno w sieci równoprawnej, jak i w sieci z serwerem. Sieć klient-serwer oznacza podłączenie pojedynczego użytkownika z pojedynczej

Bardziej szczegółowo

Dokumentacja projektu QUAIKE Architektura oprogramowania

Dokumentacja projektu QUAIKE Architektura oprogramowania Licencjacka Pracownia Oprogramowania Instytut Informatyki Uniwersytetu Wrocławskiego Jakub Kowalski, Andrzej Pilarczyk, Marek Kembrowski, Bartłomiej Gałkowski Dokumentacja projektu QUAIKE Architektura

Bardziej szczegółowo

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Plan. Raport. Tworzenie raportu z kreatora (1/3) 3 Budowa prostych raportów opartych o bazę danych Plan Co to jest raport? Tworzenie za pomocą kreatora Tworzenie opartego o polecenie SQL Edycja atrybutów Atrybuty regionu Atrybuty Atrybuty kolumn 2 Raport

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Tworzenie aplikacji Web Alicja Zwiewka. Page 1 Tworzenie aplikacji Web Alicja Zwiewka Page 1 Co to są web-aplikacje? Aplikacja internetowa (ang. web application) program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć komputerową

Bardziej szczegółowo

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Instalacja roli kontrolera domeny, Aby zainstalować rolę kontrolera domeny, należy uruchomić Zarządzenie tym serwerem, po czym wybrać przycisk

Bardziej szczegółowo

Referat Pracy Dyplomowej

Referat Pracy Dyplomowej Referat Pracy Dyplomowej Team Pracy: Projekt i realizacja gry w technologii HTML5 z wykorzystaniem interfejsu programistycznego aplikacji Facebook Autor: Adam Bartkowiak Promotor: dr inż. Roman Simiński

Bardziej szczegółowo

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja elektronicznego dziennika ocen ucznia Autor: Grzegorz Dudek wykonanego w technologii ASP.NET We współczesnym modelu edukacji, coraz powszechniejsze

Bardziej szczegółowo

Bazy danych TERMINOLOGIA

Bazy danych TERMINOLOGIA Bazy danych TERMINOLOGIA Dane Dane są wartościami przechowywanymi w bazie danych. Dane są statyczne w tym sensie, że zachowują swój stan aż do zmodyfikowania ich ręcznie lub przez jakiś automatyczny proces.

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

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

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II Zespół TI Instytut Informatyki Uniwersytet Wrocławski ti@ii.uni.wroc.pl http://www.wsip.com.pl/serwisy/ti/ Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II Rozkład wymagający

Bardziej szczegółowo

Modele danych walidacja widoki zorientowane na model

Modele danych walidacja widoki zorientowane na model Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych

Bardziej szczegółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6 Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki

Bardziej szczegółowo

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

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

Praca Magisterska System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu AUTOR PROMOTOR System Oferta Praca Magisterska Niniejszy system powstał w ramach pracy magisterskiej "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu". Politechnika Poznańska Wydział Informatyki

Bardziej szczegółowo

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i Aleksandra Dębiecka To sposób w jaki użytkownik wchodzi w interakcje z systemem. To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski,

Bardziej szczegółowo

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

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010 System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Inżynieria Biomedyczna Rodzaj przedmiotu: obowiązkowy moduł specjalności informatyka medyczna Rodzaj zajęć: wykład, laboratorium PROGRAMOWANIE INTERNETOWE Internet Programming

Bardziej szczegółowo

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki Tomasz Pawłowski Nr albumu: 146956 Praca magisterska na kierunku

Bardziej szczegółowo

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 I Zespół TI Instytut Informatyki Uniwersytet Wrocławski ti@ii.uni.wroc.pl http://www.wsip.com.pl/serwisy/ti/ Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I Rozkład zgodny

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy Dokumentacja techniczna Młodzieżowe Pośrednictwo Pracy Spis Treści 1. Widok ogólny architektury MPP... 3 2. Warstwy systemu... 5 3. Struktura systemu/komponentów... 7 3.1 Aplikacje... 7 3.2 Biblioteki...

Bardziej szczegółowo

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P).

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P). PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II DZIAŁ I: KOMPUTER W ŻYCIU CZŁOWIEKA. 1. Lekcja organizacyjna. Zapoznanie uczniów z wymaganiami edukacyjnymi i PSP. 2. Przykłady zastosowań komputerów

Bardziej szczegółowo

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Paweł Parys Nr albumu: 209216 Aukcjomat Praca licencjacka na kierunku INFORMATYKA w zakresie INFORMATYKA Praca wykonana pod kierunkiem

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

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

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów

Bardziej szczegółowo

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL Katedra Informatyki, Uniwersytet Rzeszowski 2009 Agenda System kontroli wersji CVS SVN Praca z SVN i Visual

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

Hurtownie danych wykład 5

Hurtownie danych wykład 5 Hurtownie danych wykład 5 dr Sebastian Zając SGH Warszawa 7 lutego 2017 1 Współbieżność i integracja Niezgodność impedancji 2 bazy danych Współbieżność i integracja Niezgodność impedancji Bazy relacyjne

Bardziej szczegółowo

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania. Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania. Założenia projektowe systemu NETDOC. część 1: założenia ogólne i funkcjonalność rdzenia systemu Założenia ogólne Celem projektu jest

Bardziej szczegółowo

Podręcznik użytkownika Obieg dokumentów

Podręcznik użytkownika Obieg dokumentów Podręcznik użytkownika Obieg dokumentów Opracowany na potrzeby wdrożenia dla Akademii Wychowania Fizycznego im. Eugeniusza Piaseckiego w Poznaniu W ramach realizacji projektu: Uczelnia jutra wdrożenie

Bardziej szczegółowo

OfficeObjects e-forms

OfficeObjects e-forms OfficeObjects e-forms Rodan Development Sp. z o.o. 02-820 Warszawa, ul. Wyczółki 89, tel.: (+48-22) 643 92 08, fax: (+48-22) 643 92 10, http://www.rodan.pl Spis treści Wstęp... 3 Łatwość tworzenia i publikacji

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji: Technologia wykonania projektu: HTML5 Javascript: o jquery (1.9.1), o CreateJS (0.6.1): EaselJS, TweenJS, PreloadJS. Części funkcjonalne projektu: Strona internetowa pliki strony internetowej zlokalizowane

Bardziej szczegółowo

Kurs MATURA Z INFORMATYKI

Kurs MATURA Z INFORMATYKI Kurs MATURA Z INFORMATYKI Cena szkolenia Cena szkolenia wynosi 90 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie potrzebował do realizacji

Bardziej szczegółowo

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

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0 ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy

Bardziej szczegółowo

Jak utworzyć diagram

Jak utworzyć diagram Drukowanie struktury organizacyjnej... 1 Jak utworzyć diagram... 1 Wyświetlanie fragmentu struktury organizacyjnej... 2 Wyświetlanie na wykresie informacji szczegółowych... 3 Uwzględnianie wszystkich rekordów...

Bardziej szczegółowo

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5. AJAX Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5. Czym jest AJAX? AJAX (Asynchronous JavaScript And XML) nie jest nową technologią, ale nowym sposobem wykorzystania kombinacji istniejących technologii

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu 1 Algorytmika i programowanie Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera, stosowanie

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska JavaFX - wprowadzenie JavaFX Wydział Informatyki i Zarządzania Politechnika Wrocławska Definicja JavaFX - wprowadzenie Definicja Historia JavaFX Script Rich Internet Application JavaFX - rodzina technologii

Bardziej szczegółowo

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE Poznań 2011 Spis treści 1. Zamawianie i rezerwowanie definicja pojęć...3 2. Zasada działania systemu...4 3. Zamawianie

Bardziej szczegółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji

Bardziej szczegółowo

Jednolite zarządzanie użytkownikami systemów Windows i Linux

Jednolite zarządzanie użytkownikami systemów Windows i Linux Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Paweł Gliwiński Nr albumu: 168470 Praca magisterska na kierunku Informatyka Jednolite

Bardziej szczegółowo

Zastosowania Robotów Mobilnych

Zastosowania Robotów Mobilnych Zastosowania Robotów Mobilnych Temat: Zapoznanie ze środowiskiem Microsoft Robotics Developer Studio na przykładzie prostych problemów nawigacji. 1) Wstęp: Microsoft Robotics Developer Studio jest popularnym

Bardziej szczegółowo

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

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

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy

Bardziej szczegółowo

ECDL/ICDL Zarządzanie projektami Moduł S5 Sylabus - wersja 1.0

ECDL/ICDL Zarządzanie projektami Moduł S5 Sylabus - wersja 1.0 ECDL/ICDL Zarządzanie projektami Moduł S5 Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Zarządzanie projektami. Sylabus opisuje zakres wiedzy

Bardziej szczegółowo

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4 Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo