Analýza datových souborů pro ukládání informací ve formě "myšlenkových map" Vojtěch Medonos. Vedoucí práce: Ing. Pavel Náplava



Podobné dokumenty
Systém elektronického rádce v životních situacích portálu

Myšlenkové mapy v Linuxu

InsideBusiness Payments CEE

MBI - technologická realizace modelu

Studijní informační systém KOS ikos přístup pro referenty

Začínáme pracovat s tabulkovým procesorem MS Excel

Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice

Inovace výuky prostřednictvím šablon pro SŠ

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Publikování map na webu - WMS

Profilová část maturitní zkoušky 2017/2018

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Tvorba webu. Úvod a základní principy. Martin Urza

Nový design ESO9. E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a , P r a h a. Strana 1 z 9

Microsoft Visio 2013 vypadá jinak než ve starších verzích, proto jsme vytvořili tuto příručku, která vám pomůže se s ním rychle seznámit.

Návrh stránek 4IZ228 tvorba webových stránek a aplikací

================================================================================ =====

Mapa Česka:

HTML Hypertext Markup Language

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

1 Uživatelská dokumentace

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

Mgr. Stěpan Stěpanov, 2013

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

Jazyky pro popis dat

OptimiDoc dokáže takové dokumenty zpracovat a distribuovat napříč firmou.

Tvorba kurzu v LMS Moodle

Obsah. 1 Úvod do Visia Práce se soubory 47. Předmluva 11 Typografická konvence použitá v knize 13

Mzdy Optimum základy ovládání

Technologické postupy práce s aktovkou IS MPP

PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ verze Kontakty 08/ Obsah

Informace k e-learningu

Úvodní příručka. Získání nápovědy Kliknutím na otazník přejděte na obsah nápovědy.

Semestrální práce 2 znakový strom

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

7. Enterprise Search Pokročilé funkce vyhledávání v rámci firemních datových zdrojů

Reliance 3 design OBSAH

MS Word 2007 Šablony programu MS Word

Postupy práce se šablonami IS MPP

Excel 2007 praktická práce

1. Podmínky chodu aplikace

Postup přihlášení (první přihlášení)

Zpravodaj. Uživatelská příručka. Verze

Vývojové nástroje jazyka Java

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Pracovní prostředí Word 2003 versus Word 2010

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

Základní uživatelská příručka informační podpory správy Číselníku NIPEZ

APS Administrator.GS

Co je nového 2018 R2

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Uživatelská příručka pro respondenty

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-214. Internetový prohlížeč

SignEditor 1 - návod k použití

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

APLIKACE XML PRO INTERNET

X L M L v v Of O f f i f ce XML OBECNĚ VBA pro Excel Petr Blaha XML v MS Office Michal Theodor

Profilová část maturitní zkoušky 2013/2014

Nápověda k webové aplikaci určené k revizi. ochranných pásem vodních zdrojů a vodárenských nádrží

Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev

Připojení přístroje A4101 k aplikaci DDS2000

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Vzdělávací obsah vyučovacího předmětu

MODERNÍ WEB SNADNO A RYCHLE

Nástrojová lišta v editačním poli

Obsah SLEDOVÁNÍ PRÁCE... 4

Operační systém MS Windows XP Professional

Aplikace GoGEN Smart Center

MHD v mobilu. Instalace a spuštění. Co to umí

Envis LIMS Klient distribučního portálu

BALISTICKÝ MĚŘICÍ SYSTÉM

Příručka pro studenta

Přehledy pro Tabulky Hlavním smyslem této nové agendy je jednoduché řazení, filtrování a seskupování dle libovolných sloupců.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

VIANIV. Interaktivní návrh nivelety. Příručka uživatele. Revize PRAGOPROJEKT a.s. & VIAPONT s.r.o.

Znalostní systém nad ontologií ve formátu Topic Maps

Systém souborů (file system, FS)

České vysoké učení technické v Praze. Fakulta Elektrotechniky XD39NUR. Semestrální práce. Ovládání videokonferencí pomocí mobilního telefonu

Zá kládní nástávení prostr edí operáč ní ho syste mu Windows 7 á vybrány čh áplikáčí

Prozkoumání příkazů na pásu karet Každá karta na pásu karet obsahuje skupiny a každá skupina obsahuje sadu souvisejících příkazů.

GIS Geografické informační systémy

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Migrace na aplikaci Outlook 2010

Aplikace pro srovna ní cen povinne ho ruc ení

PŘÍLOHA C Požadavky na Dokumentaci

SADA VY_32_INOVACE_PP1

Úvod do filtrace, Quick filtr

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Prozkoumání příkazů na pásu karet Každá karta na pásu karet obsahuje skupiny a každá skupina obsahuje sadu souvisejících příkazů.

3D sledování pozice vojáka v zastavěném prostoru a budově

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

ArcGIS Online Subscription

(IMPACT) CZ.1.07/2.2.00/

Transkript:

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů Bakalářská práce Analýza datových souborů pro ukládání informací ve formě "myšlenkových map" Vojtěch Medonos Vedoucí práce: Ing. Pavel Náplava Studijní program: Elektrotechnika a informatika, strukturovaný, Bakalářský Obor: Výpočetní technika 1. května 2010

Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný duvod proti užití tohoto školního díla ve smyslu 60 Zákona c. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 28. 5. 2010...

Abstrakt Práce se zabývá analýzou datových formátů aplikací Freemind a MindManager a realizací konverzního nástroje mezi nimi. Výstupem práce bude program, který bude umožňovat převod uložené myšlenkové mapy z jednoho formátu do druhého. Abstract This work is focused on analysis of data formats used in Freemind and MindManager and on implementation of conversion tool between them. The output of this work will be an application, which will be able convert saved mind maps from one format to the other.

Obsah 1 Úvod 1 2 Teorie 3 2.1 Úvod... 3 2.2 Co je myšlenková mapa?... 4 2.3 Historie... 4 2.4 Tvorba mapy... 5 2.5 Způsob zpracování... 6 2.6 Použití... 6 2.6.1 Řešení problému... 7 2.6.2 Analýza složité myšlenky... 7 2.6.3 Brainstorming... 8 2.6.4 Design softwarových aplikací... 8 2.6.5 Anonymní spolupráce... 9 2.6.6 Uchování informací... 9 2.6.7 Mnemotechnická pomůcka... 9 3 Software pro tvorbu map 11 3.1 Požadavky... 11 3.2 Freemind... 12 3.2.1 Popis... 12

3.2.2 Funkce... 13 3.2.3 Práce s aplikací... 13 3.3 MindManager... 13 3.3.1 Popis... 13 3.3.2 Funkce... 14 3.3.3 Práce s aplikací... 15 3.4 Srovnání... 15 4 Analýza datových souborů 17 4.1 Úvod... 17 4.2 Jazyk XML... 17 4.2.1 Základní vlastnosti... 18 4.2.2 DTD... 18 4.2.3 Syntaxe... 19 4.3 Datové soubory Freemind... 19 4.3.1 Popis... 19 4.3.2 Tagy... 19 4.3.2.1 Párové tagy... 20 4.3.2.2 Nepárové tagy... 20 4.3.2.3 Párové i nepárové tagy... 21 4.4 Datové soubory MindManager... 21 4.4.1 Popis... 21 4.4.2 Tagy... 22 4.4.2.1 OneTopic... 22 4.4.2.2 Relationships... 24 4.4.2.3 StyleGroup... 24 4.4.2.4 MapViewGroup... 24 4.4.2.5 DocumentGroup... 24 5 Realizace 27 5.1 Požadavky... 27 5.2 Postup implementace... 27 5.3 Použité technologie... 28 5.3.1 Java 1.5.0... 28 5.3.2 DOM API... 28

5.3.3 Netbeans IDE 5.0... 29 5.4 Popis implementace... 29 5.4.1 Načtení souboru... 29 5.4.2 Společné části zpracování souboru... 29 5.4.3 Grafická verze... 29 5.4.4 Textová verze... 30 5.4.5 Převod z.mm na.xml... 30 5.4.6 Převod z.xml na.mm... 30 6 Testování 31 6.1 Popis testovací mapy... 31 6.2 Konverze do Freemindu... 33 6.3 Zpětná konverze... 34 7 Závěr 35 Literatura 37 A Gramatiky 39 A.1 Freemind... 39 A.2 MindManager... 40 B Uživatelská příručka 43 B.1 Textová verze... 43 B.2 Grafická verze... 43 C Obsah přiloženého CD 45

Seznam obrázků 2.1 Historická myšlenková mapa od Porfyria z Tyru 2.2 Příklad myšlenkové mapy řešící problém 2.3 Při brainstormingu ručně vytvořená myšlenková mapa 3.1 Myšlenková mapa vytvořená v aplikaci Freemind 3.2 Myšlenková mapa vytvořená v aplikaci MindManager 5.1 Ganttův diagram projektu 6.1 Testovací mapa vytvořená v MindManageru 6.2 Testovací mapa převedená do Freemindu 6.3 Výsledná mapa v MindManageru po dvou konverzích B.1 Použití textové verze B.2 Výběr souboru v grafické verzi B.3 Výpis logu průběhu konverze

Seznam tabulek 3.1 Srovnání programů Freemind a MindManager

Kapitola 1 Úvod Myšlenkové mapy se pro svou jednoduchost a efektivitu stávají zajímavým fenoménem, který zasahuje do mnoha oborů. Pro jejich tvorbu vznikla celá řada softwarových nástrojů, které umožňují s mapami pohodlně pracovat. Každá aplikace ovšem nabízí různé funkce a pomůcky a je tedy těžké vybrat si právě jednu ideální. Některý nástroj je jednoduchý a rychlý, ale zase neposkytuje příliš mnoho možností. Jiný program je zase velmi komplexní, ale zato pomalý. Datové formáty, ve kterých jsou myšlenkové mapy uloženy, jsou navíc málokdy kompatibilní s jiným nástrojem. Vzniká zde proto potřeba využití konvertoru, který by tak umožnil používání více programů pro tvorbu map bez nutnosti jejich znovuvytváření v každé aplikaci. Cílem této práce je realizace právě takového konvertoru, který umí převést základní strukturu mapy vytvořené v programu Freemind do MindManageru a zpět. Před samotnou implementací je nutné zanalyzovat datové formáty obou nástrojů, aby bylo možné provádět korektní konverze. 1

2

Kapitola 2 Teorie V této kapitole podám ucelený pohled na problematiku myšlenkových map, jejich tvorbu a využití. 2.1 Úvod V dnešní rychlé a uspěchané době se nám často stane, že nám přijde na mysl nejaký zajímavý nápad či myšlenka, ale vzápětí se rozplyne jako pára nad hrncem. To se může stát nejen jednotlivci, ale také skupině lidí, kteří společně řeší nějaký problém. Ať už je to tým lidí, zabývající se vývojem nové technologie, produktu či se snaží hledat zlepšení v již stávajícím řešení, vždy je potřeba co možná nejefektivněji a nejrychleji zaznamenat nové nápady a myšlenky. Ty mohou být později znovu rozebrány a podrobněji analyzovány. Velmi dobrým nástrojem k přehlednému záznamu myšlenek jsou myšlenkové (mentální) mapy. Jedná se o zachycení a rozvoj jednotlivých myšlenkových pochodů do stromovité struktury, která umožnuje efektivně sledovat požadovanou linii uvažování. To je základní předpoklad pro vyhledání a znovuoživení původní myšlenky. Zároveň se dá mapa použít k názornému uložení a zobrazení informací a poskytuje tak výborný prostředek pro intenzivní metodu učení. Tyto vlastnosti umožnily v posledních letech veliký rozvoj myšlenkových map, které se stávají téměř nedílnou součástí nejen pracovních procesů, ale stále častěji jsou používány také v soukromém životě. 3

2.2 Co je myšlenková mapa? Myšlenková mapa je struktura, která slouží k záznamu slov, nápadů a informací. Ty jsou uspořádány kolem kořenového slova (tématu) v logických blocích. Jednotlivé části jsou propojeny čárami či jinými grafickými značkami. Tvoří tak graf, který je nejčastěji stromem, nicméně v některých případech se mohou vyskytnout i jiné vazby, které tak narušují čistě stromovou strukturu. Strom je takový graf, ve kterém neexistují kružnice a tím pádem z jednoho uzlu do druhého existuje jen jediná cesta. Sledováním této cesty je pak možno snadno nalézt požadovanou informaci či zrekonstruovat danou myšlenku jako celek. Velmi vhodné je používání obrázků, barev a jiných grafických prvků, které výrazně zlepšují orientaci v mapě a usnadňují porozumění obsahu. 2.3 Historie Koncept myšlenkové mapy je znám už staletí a byl hojně využíván učenci, psychology či inženýry k učení, grafickému zobrazování a řešení problémů. První záznamy pocházejí již od Porfyria z Tyru (232-304), novoplatónského filosofa, který využil mapu ke znázornění Aristotelových kategorií. Ve středověku používal mapy například filosof Ramon Llull (1235 1315). V 50. letech 20. století byla pro potřeby porozumění procesu lidského učení vymyšlena sémantická síť. Tato síť je orientovaným grafem, který znázorňuje sémantické vztahy mezi různými koncepty. Z této sítě se postupně v 60. letech vyvinuly myšlenkové mapy, a to především zásluhou Allana M. Collinse, který je považován za otce moderního pojetí map. Ovšem za zakladatele moderního využití myšlenkových map sám sebe prohlašuje Tony Buzan, britský populární autor knih o technice učení a správného využití mozku. Vlastní také ochrannou známku na termín Mind Map. V dnešní době se mapy či podobné koncepty stávají velice rozšířeným a oblíbeným prostředkem pro mnoho činností, které souvisí s výukou, učením, plánováním či brainstormingem. 4

Obrázek 2.1: Historická myšlenková mapa od Porfyria z Tyru 2.4 Tvorba mapy Aby daná myšlenková mapa mohla správně plnit svojí funkci, je důležité při její tvorbě dodržovat určitá pravidla. Ta samozřejmě nemusíme pokaždé plnit doslovně, ale je dobré se jimi alespoň rámcově řídit. Při tvorbě mapy postupujeme takto: hlavní téma umístíme do středu další části rozmístíme kolem centrálního tématu všechny uzly se mohou dále dělit na další uzly podle potřeby rodičovské uzly propojíme s potomky čárami 5

pomocnými čárami či šipkami můžeme naznačit vztahy mezi uzly napříč hierarchií mapu doplníme obrázky, barvami či jinými zvýrazňujícími grafickými prvky použijeme jednotlivá slova či kratší slovní spojení soustřeďte se na strukturu a souvislosti mezi jednotlivými částmi Použití obrázků a barev si dobře rozmyslíme, přemíra použití může vést naopak k znepřehlednění mapy. Pokud je potřeba nějaké téma rozvést, je možné použít delší text ve větách. V tomto případě je tak nejlepší učinit v listu - posledním uzlu, který nemá žadného potomka na jiném místě by mnoho textu působilo rušivě. 2.5 Způsob zpracování K vytvoření myšlenkové mapy můžeme použít buď tužku a papír nebo počítač. Každý způsob má svoje klady a zápory. S papírem a tužkou se lépe pracuje a umožňuje nám mapu vytvořit rychleji a přesně takovou, jakou chceme. Mapa na papíře se ovšem hůře upravuje a tvůrce je omezen velikostí papíru. V počítači máte naopak k dispozici neomezeně velkou plochu, byť se na ním mapa tvoří pomaleji. Ovšem pokud je tvůrce zběhlý v používání zvoleného programu, lze myšlenkovou mapu vytvořit poměrně rychle. V počítači se mapa také velmi snadno upravuje či sdílí s ostatními uživateli. Často se také hodí možnost sbalit potomky daného uzlu a zobrazit si tak jen skutečně potřebné informace. 2.6 Použití Jak již bylo řečeno, myšlenkové mapy mají v současné době mnoho využití v osobním i pracovním prostředí. Příklady využití: řešení problému analýza složité myšlenky brainstorming design softwarových aplikací anonymní spolupráce 6

uchování informací mnemotechnická pomůcka 2.6.1 Řešení problému Pokud stojíme před nějakým problémem či rozhodnutím, může se nad danou situací zamyslet a vytvořit myšlenkovou mapu volnou asociací nápadů. Pokud hotovou mapu později zanalyzujeme, může nám pomoci nalézt optimální řešení. Obrázek 2.2: Příklad myšlenkové mapy řešící problém 2.6.2 Analýza složité myšlenky Některé nápady, které se zrodí v mozku jsou tak složité, že je težké je smysluplně popsat slovy. Pokud hlavní body zaznamenáme do mapy, přehledně tak ukážeme vztahy mezi jednotlivými částmi a usnadníme tak analýzu a případné předání obsahu myšlenky někomu jinému. 7

2.6.3 Brainstorming Při této činnosti se sejde skupina lidí, která má řešit určitý problém. Jednotliví členové předkládají stručně své návrhy a nápady. Myšlenková mapa je ideálním formátem pro záznam těchto nápadů, které se spíše náhodně rozmísťují kolem hlavního tématu. Analýza a vytváření logických vazeb mezi jednotlivými podněty pak přichází na řadu až později. Je tak umožněno prozkoumání maximálního počtu návrhů velmi podrobně. Obrázek 2.3: Při brainstormingu ručně vytvořená myšlenková mapa 2.6.4 Design softwarových aplikací V nejranějším stupni vývoje aplikace se tvůrci zabývají designem výsledného produktu. Na začátku 8

musí vždy stát jeden či více nápadů, které se dají velmi přehledně zpracovat v myšlenkové mapě a poté předat k dalším stadiím vývoje, například k vytvoření popisu pomocí UML. 2.6.5 Anonymní spolupráce Svou názorností a logickou strukturou se myšlenková mapa hodí ke spolupráci mezi lidmi, kteří se vzájemně neznají či nemají možnost přímého kontaktu. Dobře zhotovená mapa může předat druhému člověku výsledek předchozí činnosti či postoj k danému problému. 2.6.6 Uchování informací V myšlenkové mapě se dají velmi dobře uložit nejdůležitější poznatky týkající se určitého tématu. Z dlouhého a nudného textu se tak dají vytáhnout informace a uložit je v mnohem kompaktnější podobě. To samé lze provést se záznamem mluveného projevu, kde je potřeba vyhledání stěžejních informací ještě větší. 2.6.7 Mnemotechnická pomůcka Vzhledem k přívětivé vizuální stránce může být pro mnoho lidí zapamatování informací obsažených v mapě podstatně jednodušší než informací z jiného zdroje. To působí pozitivně také na morálku při učení. 9

10

Kapitola 3 Software pro tvorbu map V této kapitole se zaměřím na software používaný pro tvorbu map, konkrétně pak na Freemind a MindManager. Posléze srovnám komerční a nekomerční software na příkladu těchto dvou programů. 3.1 Požadavky Pokud se rozhodneme tvořit mapy na počítači, určitě budeme potřebovat vhodný software. Programů existuje celá řada, nicméně ne všechny jsou stejně kvalitní a neposkytují dostatečné pohodlí pro práci s mapami. Software by měl splňovat tyto základní požadavky: plocha pro mapu je dostatečně velká, téměř přes celou obrazovku lišty s pomocnými nástroji je možno schovat a zvětšit tak prostor pro mapu ovládání je intuitivní, aby bylo možno nejčastější úkony automatizovat lze použít klávesových zkratek lze použít různé grafické prvky, aby si každý uživatel mohl mapu upravit podle svého výslednou mapu je možné exportovat do různých formátů pro usnadnění sdílení 11

3.2 Freemind 3.2.1 Popis Freemind je free software pro tvorbu myšlenkových map. Je napsán v jazyce Java. Je vyvíjen jako open source projekt pod licencí GPL. Na oficiální stránce lze sledovat aktuality o programu či se přihlásit jako vývojář. Mezi free nástroji pro tvorbu map patří Freemind mezi nejpopulárnější a nejpoužívanější. Práce s ním je rychlá a intuitivní a umožňuje tak snadno přenést myšlenky do počítače. Obrázek 3.1: Myšlenková mapa vytvořená v aplikaci Freemind 12

3.2.2 Funkce Freemind umožnuje: použití HTML odkazů na www stránky či lokální soubory sbalení a rozbalení jednotlivých uzlů snadný pohyb po mapě operaci undo jednoduchou práci s uzly metodou Drag'n Drop snadné kopírování textu a jiných struktur z i do mapy export mapy do HTML vyhledávání výrazů v mapě snadnou úpravu dlouhých linií složených z více uzlů použití ikon, různých barev a fontů prohlížet si soubory na pevném disku ve formátu mapy ve File módu 3.2.3 Práce s aplikací Protože jde o freewarový program, postrádá Freemind některé pokročilejší možnosti nastavení a předvoleb. To jej na druhou stranu zpřehledňuje a usnadňuje jeho použití. Maximální možná plocha je věnována mapě. Horní panel nástrojů a levý panel s ikonami lze skrýt a již tak velký prostor ještě rozšířit. Většině operací jsou přiřazeny klávesové zkratky což tvorbu a úpravu map velice urychluje. Pomocí klávesnice se tak dá program plně ovládat. Myší se dají realizovat přesuny uzlů, jejich kopírování, rozbalování a sbalování. Také k přiřazení ikony k uzlu stačí jedno kliknutí myši. Grafická stránka aplikace je poměrně strohá, přesto však obsahuje všechny důležité prvky pro vizuální úpravu výsledné mapy. 3.3 MindManager 3.3.1 Popis Jedná se o komerční software pro tvorbu map od firmy Mindjet. Je napsán v jazyce Java. Na 13

oficiálních internetových stránkách výrobce lze stáhnout trial verzi, která umožnuje třicetidenní používání omezeného množství funkcí zdarma. Poté je možné program zakoupit a upgradovat na plnou verzi. Nové verze jsou pro zákazníky k dispozici zdarma. Obrázek 3.2: Myšlenková mapa vytvořená v aplikaci MindManager 3.3.2 Funkce MindManager umožňuje: použití mnoha grafických prvku při tvorbě mapy zvolit velké množství předvoleb a pokročilých nastavení připojení poznámek, odkazů a příloh k jednotlivým tématům 14

spolupráci s produkty řady Microsoft Office Word, Excel, PowerPoint, Visio, Project tvorbu nového dynamického obsahu pro aplikace Microsoft Office spolupráci s Microsoft Outlook vytváření nových kontaktů, poznámek a úkolů vyhledávání a filtrování map integrovaný webový prohlížeč pro zobrazení například Google Docs sdílení dat vytvořených v MindManageru pomocí služeb jako Facebook, Twitter a MySpace export do mnoha různých formátů módy prezentace, shrnutí a brainstormingu použití RSS kanálu ochranu dat pomocí hesla simultánní práci více uživatelů na jedné mapě 3.3.3 Práce s aplikací MindManager je určen pro náročnější uživatele, kteří hledají možnosti pokročilého nastavení a neomezují se pouze na práci s mapou. Díky možnosti sdílení a ochrany dat a spolupráci s jinými programy se MindManager hodí také pro použití ve firmách. Prostor pro mapu je poměrně malý, což ovšem vyvažuje možnost pracovní plochu přiblížit či oddálit. Při tvorbě a úpravě mapy uživatel využije především myš, pomocí které volí akce z panelu nástrojů. Nechybí ovšem ani možnost použití klávesových zkratek. Grafická stránka je velmi dobrá a pomocí obrázků, nastavení stylů, fontů, barev a dalších úkonů lze vytvořit interaktivní a vizuálně zajímavou myšlenkovou mapu. 3.4 Srovnání Freemind a MindManager jsou typickými zástupci svých kategorií, tedy freewarových a komerčních aplikací. Přestože jsou oba psány v jazyce Java, lze pozorovat rozdílné požadavky na hardware počítače. MindManager je robustní, s mnoha možnostmi a proto pomalejší a náročnější, zatímco Freemind je poměrně jednoduchý, ale velmi svižný. MindManager se hodí spíše pro použití ve firmách či při větších projektech, naproti tomu Freemind je vhodnější pro domácí použití. Obě 15

aplikace mají své kladné a záporné stránky, což vybízí k tvorbě konverzního můstku mezi nimi a tím pádem k možnosti využívat každý program k té činnosti, ve které vyniká. + - Freemind MindManager rychlost Spolupráce s Microsoft Office velká pracovní plocha sdílení a ochrana dat jednoduché používání mnoho možností nastavení zdarma simultánní práce více uživatelů graficky jednodušší pomalé méně možností nastavení hardwarově náročnější obrázky se neukládají přímo do mapy místy nepřehledné rozhraní nelze použít pro komplexnější projekty pořizovací cena Tabulka 3.1: Srovnání programů Freemind a MindManager 16

Kapitola 4 Analýza datových souborů Cílem práce je vytvoření konverzního nástroje, proto je třeba zanalyzovat datové formáty jednotlivých aplikací, což udělám v této kapitole. 4.1 Úvod Jelikož myšlenkové mapy tvoří ze své definice stromovitou strukturu, je nutné tomuto přizpůsobit také formu jejího uložení. Lze uložit data v binární podobě, nicméně mnohem vhodnější je použít nějaký jazyk, který je ze své definice výhodný k ukládání stromové struktury. Pro tento účel se hodí jazyk XML. 4.2 Jazyk XML Jedná se o značkovací jazyk, který byl vyvinut konsorciem W3C. Název je zkratka spojení Extensible Markup Language. XML umožňuje vytváření vlastních jazyků pro různé účely a různé typy dat. Byl navržen tak, aby umožňoval snadnou výměnu dat mezi aplikacemi. U jednotlivých dokumentů popisuje jejich věcný obsah, vzhled musí definovat aplikace, která s XML dokumentem pracuje. 17

4.2.1 Základní vlastnosti XML má několik důležitých vlastností, které umožňují jeho široké rozšíření a použití: specifikace je zdarma možnost přepínání mezi různými typy kódování v rámci jednoho dokumentu vysoký informační obsah snadná konverze do jiných formátů automatická kontrola struktury dokumentu odkazy v rámci jednoho dokumentu, ale také napříč mezi dokumenty 4.2.2 DTD Jelikož je XML značkovací jazyk, je nutné mít definované jednotlivé značky tagy. XML implicitně žádné neobsahuje, proto je nutné si nadefinovat vlastní. Tyto tagy je možné uložit v souboru DTD Document Type Definition. Poté je možné automaticky kontrolovat, zda vytvářený XML soubor odpovídá takto definovaným tagům. DTD ovšem neobsahuje možnost typové kontroly dat, což je problém zejména při zpracování dat databázového charakteru. V rámci jednoho dokumentu lze také použít více různých DTD pomocí jmenných prostorů namespaces. Je tak možné kombinovat v jednom souborů data různého významu. Příklad jednoduchého DTD dokumentu: <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading <!ELEMENT body (#PCDATA)> (#PCDATA)> 18

4.2.3 Syntaxe Efektivita využití XML je závislá na struktuře a integritě dokumentu. Proto by měly být splněny následující podmínky v každém dokumentu: musí obsahovat právě jeden kořenový (root) element jména elementů rozlišují velká a malá písmena neprázdné elementy musí být ohraničeny startovacím a ukončovacím tagem hodnoty atributů musí být uzavřeny v jednoduchých nebo dvojitých úvozovkách opačný pár úvozovek může být použit uvnitř hodnot každý element kromě rootu musí být obsažen v jiném elementu 4.3 Datové soubory Freemind 4.3.1 Popis Freemind používá pro ukládání map soubory s příponou.mm. V něm jsou data zapsána v interním formátu, který je založen na jazyce XML. Freemind do něj také pravidelně ukládá zálohy map, na kterých se právě pracuje. Formát je dobře čitelný také pro člověka, protože stromová struktura myšlenkové mapy je téměř přesně promítnuta do souboru. Na rozdíl od XML dokumentu v datovém souboru Freemindu není XML hlavička. Také chybí definice značek v DTD dokumentu, tagy jsou definovány přímo v jádře Freemindu. Znaky, které nejsou obsaženy ve standartní sedmibitové ASCII sadě, jsou uloženy ve formě svého číselného kódu. 4.3.2 Tagy Freemind má názvy značek uloženy přímo v jádře, proto je nelze nijak externě měnit. To ani není třeba, neboť tagy jsou pojmenovány jednoznačně. Lze je rozdělit na párové, nepárové a párové i nepárové. 19

4.3.2.1 Párové tagy map root tag, uzavírá v sobě všechny ostatní tagy - atributy: VERSION verze mapy, shodná s verzí Freemindu, která mapu vytvořila hook uzavírá v sobě tagy definující poznámku u daného uzlu - rodičovský uzel: node - atributy: NAME cesta k souboru, kde jsou uloženy nastavení týkající se poznámek text obsahuje text poznámky - rodičovský uzel: hook 4.3.2.2 Nepárové tagy icon definuje použitou ikonu u uzlu - rodičovský uzel: node - atributy: BUILTIN název použité ikony definovaný v jádře arrowlink definuje grafický link mezi dvěma uzly - rodičovský uzel: node - atributy: DESTINATION ID cílového uzlu ENDARROW definuje zobrazení šipky u cílového uzlu STARTARROW definuje zobrazení šipky u počátečního uzlu ID identifikátor grafického linku STARTINCLINATION souřadnice druhého bodu tečny křivky procházející startovním uzlem ENDINCLINATION souřadnice druhého bodu tečny křivky procházející koncovým uzlem font definuje změnu použitého písma od daného bodu - rodičovský uzel: node 20

- atributy: NAME název fontu SIZE velikost písma 4.3.2.3 Párové i nepárové tagy node nejdůležitější tag, který obsahuje informace o jednom uzlu mapy informace o uzlu jsou obsaženy v atributech nepárový, pokud se jedná o list párový, pokud má potomky; ty v sobě uzavírá - rodičovský uzel: map (pouze pro kořenový uzel mapy), node - atributy: ID jednoznačná identifikace uzlu pro potřeby odkazů CREATED čas vytvoření uzlu ve formátu Java Timestamp MODIFIED čas poslední úpravy uzlu ve formátu Java Timestamp TEXT řetězec zobrazený v daném uzlu POSITION relativní pozice uzlu vůči sousedům LINK obsahuje řetězec, na který je odkazováno hyperlinkem; nejčastěji ID uzlu COLOR definuje barvu písma FOLDED příznak toho, zda jsou poduzly rozbaleny či nikoliv STYLE definuje styl použitý pro daný uzel Java Timestamp je číslo, které obsahuje počet milisekund od 1. ledna 1970, 00:00 GMT. 4.4 Datové soubory MindManager 4.4.1 Popis MindManager poskytuje pro ukládání map a dalších dokumentů mnoho možností. K dispozici je také velké množství formátů pro export. Standartním výstupem je soubor s příponou.mmap. Jelikož se ale jedná o interní binární formát MindManageru, nelze jej použít pro další práci. Myšlenkovou 21

mapu lze také uložit jako template do souboru.mmat a použít ji později pro další tvorbu. Nejzajímavější volbou je uložení mapy ve formátu XML soubory.xmmap či.xml. Nevýhodou je, že DTD soubory jsou uloženy na serverech společnosti Mindjet a otevření mapy ve formátu XML tak vyžaduje připojení k internetu. 4.4.2 Tagy XML soubor s uloženou mapu lze rozdělit na 5 hlavních částí, které jsou vždy uzavřeny v příslušném párovém tagu. Jednotlivé skupiny jsou: OneTopic Relationships StyleGroup MapViewGroup DocumentGroup Pro potřeby převodu mapy do jiného formátu je důležitá zejména skupina OneTopic, která obsahuje hlavní strukturu mapy a informace o uzlech. Na tuto část se tedy zaměřím především, pro ostatní skupiny uvedu stručný popis. 4.4.2.1 OneTopic Hlavní skupina, ve které je uložena struktura mapy. Obsahuje informace o uzlech, jejich vztazích a obsahu. Nejdůležitější tagy jsou: ap:topic uzavírá v sobě všechny tagy týkající se daného uzlu - rodičovský uzel: ap:onetopic, ap:subtopics - atributy: 0Id jednoznačná identifikace uzlu v rámci mapy používá se především pro potřeby odkazování na uzel je uložen ve formě řetězce 16 znaků, který je zakódován v base64 kódování ap:subtopics uzavírá v sobě všechny potomky daného uzlu - rodičovský uzel: ap:topic 22

ap:text informace o textu uloženém v uzlu - rodičovský uzel: ap:topic - atributy: PlainText vlastní řetězec znaků ReadOnly příznak možnosti měnit text ap:font určení fontu použitého k zobrazení textu - rodičovský uzel: ap:text ap:notesgroup uzavírá v sobě informace o poznámce k uzlu - rodičovský uzel: ap:topic ap:notesxhtmldata obsahuje text v poznámce, který je formátován pomocí html - rodičovský uzel: ap:notesgroup - atributy: PreviewPlainText text, který se zobrazí v bublině při najetí myší na odkaz k poznámce ap:iconsgroup uzavírá v sobě tagy, které se týkají ikon - rodičovský uzel: ap:topic ap:icons obsahuje všechny uzlu přidělené ikony - rodičovský uzel: ap:iconsgroup ap:icon definuje použitou ikonu - rodičovský uzel: ap:icons - atributy: xsi:type definuje, zda se jedná o jednu z přednastavených ikon či je to ikona externí IconType jméno použité ikony ap:hyperlink nepárový tag, který definuje odkaz u uzlu - rodičovský uzel: ap:topic 23

- atributy: Hidden příznak zobrazení odkazu Name identifikátor objektu, nejčastěji uzlu, na který je odkazováno CachedName název objektu, v případě uzlu se jedná o několik prvních znaků ap:offset nepárový tag, který určuje posunutí uzlu vůči výchozí pozici - rodičovský uzel: ap:topic ap:floatingtopics uzavírá v sobě skupinu uzlů, které nemají žádné napojení na kořenové téma - rodičovský uzel: ap:topic 4.4.2.2 Relationships Uvnitř párového tagu <ap:relationships> jsou uzavřeny informace o grafických spojeních mezi uzly. Nejdůležitějšími informacemi jsou zde souřadnice bodů, jimiž prochází tečna křivky, která spojuje příslušné uzly. 4.4.2.3 StyleGroup Skupina, která zabírá největší část datového souboru. Obsahuje nastavení stylů, fontů, barev a mnoha dalších věcí. Uzly mapy jsou rozděleny do několika skupiny, většinou podle pozice v mapě, a jsou jim přiděleny příslušné styly. Můžeme tu najít tagy jako <ap:defaultcolor>, <ap:defaulttext>, <ap:defaultsubtopicsshape> a podobně. 4.4.2.4 MapViewGroup Obsahuje informace o zobrazení mapy jako celku. Můžeme zde například najít údaj přiblížení (zoom). 4.4.2.5 DocumentGroup Důležitá skupina obsahující informace o dokumentu. V atributech tagu <ap:statistics> najdeme 24

shrnující údaje o mapě, například počet uzlů, počet vazeb či obrázků. Dále DocumentGroup obsahuje údaje o poslední změně v mapě kdo a kdy ji provedl. Poslední důležitou částí je tag <ap:documentpath>, ve kterém je uložena cesta k souboru, která programu říká, kam mapu implicitně ukládat. 25

26

Kapitola 5 Realizace V této kapitole se zaměřím na popis implementace konverzního nástroje. Také uvedu stručný přehled použitých technologií. 5.1 Požadavky Cílem bylo vytvořit program, který by uměl převádět myšlenkové mapy vytvořené v aplikaci Freemind do formátu MindManageru. Také by měl umožňovat zpětnou konverzi. Nejdůležitějším prvkem by měl být převod struktury mapy a případných poznámek. Ikonám, vazbám a jiným grafickým prvkům měla být věnována až druhořadá pozornost. Program měl být také, pokud možno, co nejvíce platformově nezávislý a dát uživateli možnost vybrat si mezi verzí s grafickým rozhraním a spouštěním z konzole. 5.2 Postup implementace Program byl realizován formou projektu. Byly stanoveny kontrolní body, do kterých měla být hotova daná část implementace. Tyto kontrolní body se dařilo úspěšně plnit. Nejdříve jsem 27

zanalyzoval jednotlivé datové soubory, abych vybral technologie, které by bylo vhodné použít pro realizaci. Původně jsem chtěl data ze souborů zpracovávat proudově, to se ale ukázalo jako nešikovné, proto jsem tuto cestu opustil a rozhodl se použít objektový model načtených dat. Původně bylo v plánu zahrnout do převodu také ikony, grafické odkazy a hyperlinky. Byl jsem ale nucen zúžit množinu konvertovaných prvků, neboť se nedařilo převod regulérně naprogramovat. Nakonec se podařilo program úspěšně dokončit tak, aby vykonával primární požadované funkce. Obrázek 5.1: Ganttův diagram projektu 5.3 Použité technologie Z důvodu požadavku platformové nezávislosti jsem pro implementaci vybral programovací jazyk Java. V rámci Javy jsem použil mnoho knihovních tříd, z nichž nejdůležitější byl DOM. Pro práci jsem použil vývojové prostředí Netbeans 5.0. 5.3.1 Java 1.5.0 Java je objektově orientovaný programovací jazyk, který vyvinula firma Sun Microsystems. Vyznačuje se, na rozdíl od C++, poměrně snadným použitím, vysokou bezpečností a platformovou nezávislostí. Program napsaný v Javě může běžet na každém zařízení, kde je přítomno JRE (Java Runtime Environment), které zahrnuje interpret Javy a standartní knihovny. 5.3.2 DOM API Java DOM API pro XML je syntaktický analyzátor, který používá ke zpracování XML objektový model. Vytvoří v paměti strom objektů, které reprezentují jednotlivé uzly. S těmito uzly se dá poté podle potřeby pracovat a následně opět uložit do XML dokumentu. 28

5.3.3 Netbeans IDE 5.0 Netbeans je integrované vývojové prostředí, které je vyvíjeno jako open-source a je zdarma. Poskytuje plný komfort při psaní programů v Javě, ale poradí si i s jinými jazyky. Díky možnosti instalace pluginů skýtá velké možnosti rozšíření. 5.4 Popis implementace 5.4.1 Načtení souboru Výběr souboru probíhá v každé verzi rozdílně. V textové verzi je cesta k souboru předána jako parametr při spouštění programu, zatímco v grafické verzi výběr souboru probíha pomocí objektu třídy FileChooser z knihovny Swing. U daného souboru je poté zjištěna přípona a podle té se program větví ke správné třídě, která jej zpracuje. 5.4.2 Společné části zpracování souboru Vstupní soubor je zpracován DOM parserem, který vytvoří stromovou strukturu objektů, reprezentující jednotlivé uzly. Následně se ze seznamu vyřadí uzly, které nebudou převáděny. Poté proběhne rekurzivní průchod stromem uzlů a podle jejich názvu, hodnot a pozice ve stromu se utvoří výstupní řetězec, který je zapsán do souboru pomocí io.bufferedwriter. Po skončení procesu je uživateli oznámeno úspěšné dokončení konverze. 5.4.3 Grafická verze Grafické rozhraní je vytvořeno samostatně v jedné třídě za použití knihovny Swing. Záznam o průběhu konverze se zobrazuje v okně do komponenty JTextArea. Po skončení konverze program stále beží, je tedy možno provést více konverzí za sebou bez jeho znovuspouštění. 29

5.4.4 Textová verze Záznam o průběhu konverze je zobrazen na standartní výstup. Program po proběhnutí konverze skončí, je tedy nutné jej opakovaně spouštět, pokud chceme provést převod více souborů. 5.4.5 Převod z.mm na.xml Před konverzí jsou ze stromu odstraněny všechny uzly, které se nejmenují node, text a hook. Poté je do výstupního řetězce zapsána XML hlavička. Následně se rekurzivně prochází strom uzlů. Pokud program narazí na uzel se jménem node, zapíše do výstupního řetězce tag <ap:topic> se vším, co k němu patří. Také je vygenerována nová hodnota atributu OId. Při průchodu uzly text a hook se zpracuje poznámka k uzlu. Po dosažení konce listu uzlů se vytvoří nový soubor s příponou.xml, do kterého se zapíše výstupní řetězec. 5.4.6 Převod z.xml na.mm Před konverzí jsou ze stromu odstraněny všechny uzly, které se netýkají přímo uzlů a poznámek. Poté se opět rekurzivně prochází strom uzlů. Při zpracování uzlu ap:topic se do výstupního řetězce zapíše nový tag <node> s příslušnými atributy. Při průchodu uzlem ap:notesgroup se zapíše poznámka ve správném formátu. Po dosažení konce listu uzlů se opět vytvoří nový soubor s příponou.mm, do kterého se zapíše výstupní řetězec. 30

Kapitola 6 Testování 6.1 Popis testovací mapy Pro účely otestování funkčnosti jsem vytvořil jednoduchou mapu, která ale obsahuje všechny prvky, které jsou předmětem konverze. Obsahuje také ikony přidělené uzlům a grafické odkazy mezi tématy, aby bylo možno zjistit připadné chyby při odstraňování těchto prvků při konverzi. Obsah tagu ap:onetopic testovací mapy vytvořené v MindManageru: <ap:onetopic> <ap:topic Dirty="0000000000000000" OId="dRBTXXjmgEOOk+i+EXMQFA==" Gen="0000000000000000"> <ap:subtopics> <ap:topic Dirty="0000000000000000" OId="daXFjLKWg0mGIftB93N+uQ==" Gen="0000000000000000"> <ap:subtopics> <ap:topic Dirty="0000000000000001" OId="hoGz1cFG6UKWCWyLzSYgBA==" Gen="0000000000000000"> <ap:topicviewgroup ViewIndex="0"/> <ap:text Dirty="0000000000000000" PlainText="u2R" ReadOnly="false"> <ap:font/> </ap:text> <ap:notesgroup> <ap:notesxhtmldata Dirty="0000000000000001" PreviewPlainText="poznamka u2r"> <html xmlns="http://www.w3.org/1999/xhtml"> 31

<p>poznamka u2r</p> </html> </ap:notesxhtmldata> </ap:notesgroup> <ap:iconsgroup> <ap:icons Dirty="0000000000000001"> <ap:icon xsi:type="ap:stockicon" IconType="urn:mindjet:Mailbox"/> <ap:icon xsi:type="ap:stockicon" IconType="urn:mindjet:Marker7"/> <ap:icon xsi:type="ap:stockicon" IconType="urn:mindjet:PadlockLocked"/> <ap:icon xsi:type="ap:stockicon" IconType="urn:mindjet:Lightbulb"/> </ap:icons> </ap:iconsgroup> <ap:hyperlink HyperlinkSourceHandling="urn:mindjet:CopySource" HyperlinkType="urn:mindjet:Unknown" Dirty="0000000000000001" Hidden="false" Name="" Url="#xpointer(/descendant-or-self::ap:Topic[@OId='td/nDX2J4E645nbSOOHIxg=='])" Target="" Absolute="false" CachedName="u1R2" CachedDocumentExtension=""/> </ap:topic> </ap:subtopics> <ap:topicviewgroup ViewIndex="0"> <ap:collapsed Collapsed="false" Dirty="0000000000000000"/> </ap:topicviewgroup> <ap:text Dirty="0000000000000000" PlainText="u1R" ReadOnly="false"> <ap:font/> </ap:text> <ap:offset Dirty="0000000000000000" CX="30." CY="0."/> </ap:topic> <ap:topic Dirty="0000000000000000" OId="td/nDX2J4E645nbSOOHIxg==" Gen="0000000000000000"> <ap:topicviewgroup ViewIndex="0"/> <ap:text Dirty="0000000000000000" PlainText="u1R2" ReadOnly="false"> <ap:font/> </ap:text> <ap:offset Dirty="0000000000000000" CX="30." CY="0."/> </ap:topic> <ap:topic Dirty="0000000000000000" OId="7MZQ2/Ye/ki3UT3NrFmfWg==" Gen="0000000000000000"> <ap:topicviewgroup ViewIndex="0"/> <ap:text Dirty="0000000000000000" PlainText="u1L" ReadOnly="false"> <ap:font/> </ap:text> <ap:offset Dirty="0000000000000000" CX="-30." CY="0."/> </ap:topic> </ap:subtopics> <ap:topicviewgroup ViewIndex="0"> <ap:collapsed Collapsed="false" Dirty="0000000000000000"/> </ap:topicviewgroup> <ap:text Dirty="0000000000000000" PlainText="test_mapa" ReadOnly="false"> <ap:font/> </ap:text> </ap:topic> </ap:onetopic> 32

V grafické podobě vypadá mapa takto: Obrázek 6.1: Testovací mapa vytvořená v MindManageru 6.2 Konverze do Freemindu Při konverzi do Freemindu se odstraní ikony u uzlu u2r a také grafický odkaz mezi uzly u2r a u1r2. Výsledná mapa: Obrázek 6.2: Testovací mapa převedená do Freemindu 33

6.3 Zpětná konverze Pokud tuto mapu zkonvertujeme, dostaneme opět soubor pro MindManager. Výsledná mapa je podobná té počáteční, je ovšem bez ikon, grafických odkazů a veškerých stylů. Obrázek 6.3: Výsledná mapa v MindManageru po dvou konverzích Při konverzích tedy dochází ke ztrátě stylů a jiných grafických prvků, nicméně primární požadavky, a to převod struktury mapy a poznámek, jsou splněny. 34

Kapitola 7 Závěr Cílem práce bylo zanalyzovat datové soubory užívané pro ukládání myšlenkových map aplikacemi Freemind a MindManager a poté implementovat konverzní nástroj mezi nimi. Jelikož jsou mapy ukládány ve formátu XML či jemu podobném, tak se s datovými soubory poměrně dobře pracovalo. Při realizaci převodníku jsem narazil na některé problémy, kvůli kterým se nepodařilo implementovat všechny původně zamýšlené funkce. Freemind a MindManager například odlišně realizují a zpracovávají ikony u uzlů a grafické odkazy mezi nimi, proto by byla konverze těchto prvků problematická, nicméně primární požadavky na program byly splněny. Konvertor bude jistě užitečným nástrojem pro všechny, kteří používají aplikace Freemind a MindManager pro tvorbu myšlenkových map. Možnosti pro rozšíření jsou velké. Cílem této práce bylo zrealizovat převod pouze primární struktury, neboť mapa může obsahovat celou řadu dalších objektů. Je tedy možné doplnit tuto jednoduchou aplikaci o další funkce, které by ještě rozšířily její využití. Také by bylo například možné použít program pro tvorbu online konverzní služby ve webovém prohlížeči. 35

36

Literatura [1] Toncar článek o myšlenkových mapách. http://toncar.cz/clanky/myslenkove_mapy1.html, stav z 10. 5. 2010. [2] Wikipedia myšlenková mapa. http://cs.wikipedia.org/wiki/my%c5%a1lenkov%c3%a1_mapa, stav z 10. 5. 2010. [3] Wikipedia mind map. http://en.wikipedia.org/wiki/mind_map, stav z 10. 5. 2010. [4] Freemind domovská stránka. http://freemind.sourceforge.net/wiki/index.php/main_page, stav z 10. 5. 2010. [5] ABCLinuxu článek o myšlenkových mapách a Freemindu. http://www.abclinuxu.cz/clanky/recenze/myslenkove-mapy-a-aplikace-freemind-1, stav z 10. 5. 2010. [6] MindMaps hlavní stránka. http://www.mindmaps.cz, stav z 10. 5. 2010. [7] Wikipedia XML. http://cs.wikipedia.org/wiki/extensible_markup_language, stav z 10. 5. 2010. [8] Sun Java DOM. http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-summary.html, stav z 10. 5. 2010. [9] Source Code base64 kodér. http://www.source-code.biz/base64coder/java/base64coder.java.txt, stav 37 z 10. 5. 2010.

38

Příloha A Gramatiky Zde uvádím vstupní gramatiky pro vybrané uzly datových souborů Freemindu a MindManageru. A.1 Freemind MAPA -> <map MAP_ATTR> BLOK_UZLU </map> MAP_ATTR -> version= VERZE VERZE -> identifikator BLOK_UZLU -> UZEL BLOK_UZLU KONEC_UZLU KONEC_UZLU -> </node> KONEC_UZLU -> e BLOK_UZLU -> e UZEL -> <node UZEL_ATTR UZEL_KONEC UZEL_TAGY UZEL_KONEC -> > UZEL_KONEC -> /> UZEL_ATTR -> ATTR UZEL_ATTR UZEL_ATTR -> e ATTR -> CREATED ATTR -> UZEL_ID ATTR -> LINK ATTR -> MODIFIED ATTR -> POSITION ATTR -> TEXT CREATED -> created= CREATED_ID 39

CREATED_ID -> identifikator UZEL_ID -> id= UZEL_ID_ID UZEL_ID_ID -> identifikator LINK -> link= LINK_ID LINK_ID -> identifikator MODIFIED -> modified= MODIFIED_ID MODIFIED_ID -> identifikator POSITION -> position= POSITION_ID POSITION_ID -> identifikator TEXT -> text= TEXT_ID TEXT_ID -> identifikator UZEL_TAGY -> TAG UZEL_TAGY UZEL_TAGY -> e TAG -> ARROWLINK TAG -> ICON TAG -> TAG_TEXT TAG_TEXT -> <text>tag_text_id</text> TAG_TEXT_ID -> identifikator ICON -> <icon IKONA /> IKONA -> builtin= IKONA_ID IKONA_ID -> identifikator ARROWLINK -> <arrowlink LINK_ATTRS /> LINK_ATTRS -> LINK_ATTR LINK_ATTRS LINK_ATTRS -> e LINK_ATTR -> DESTINATION LINK_ATTR -> ENDARROW LINK_ATTR -> ENDINCLNATION LINK_ATTR -> LINK_ID LINK_ATTR -> STARTARROW LINK_ATTR -> STARTINCLINATION DESTINATION -> destination= DESTINATION_ID DESTINATION_ID -> identifikator ENDARROW -> endarrow= ENDARROW_ID ENDARROW_ID -> identifikator ENDINCLINATION -> endinclination= ENDINCLINATION_ID ENDINCLINATION_ID -> identifikator LINK_ID -> id= LINK_ID_ID LINK_ID_ID -> identifikator STARTARROW -> startarrow= STARTARROW_ID STARTARROW_ID -> identifikator STARTINCLINATION -> startinclination= STARTINCLINATION_ID STARTINCLINATION_ID -> identifikator keywords: map,version,node,created,link,id,modified,position,text,icon,builtin special symbols: <,>,</,/>,=, A.2 MindManager MAPA -> HLAVICKA<ap:map MAP_ATTR> CORE BLOK_UZLU </ap:map> HLAVICKA -> <?xml version="1.0" encoding="utf-8" standalone="no"?> MAP_ATTR -> OId= MAP_ID SCHEMATA MAP_ID -> identifikator SCHEMATA -> xmlns:ap="http://schemas.mindjet.com/mindmanager/application/2003" xmlns:cor="http://schemas.mindjet.com/mindmanager/core/2003" 40

xmlns:pri="http://schemas.mindjet.com/mindmanager/primitive/2003" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://schemas.mindjet.com/mindmanager/application/2003 http://schemas.mindjet.com/mindmanager/application/2003 http://schemas.mindjet.com/mindmanager/core/2003 http://schemas.mindjet.com/mindmanager/core/2003 http://schemas.mindjet.com/mindmanager/delta/2003 http://schemas.mindjet.com/mindmanager/delta/2003 http://schemas.mindjet.com/mindmanager/primitive/2003 http://schemas.mindjet.com/mindmanager/primitive/2003" CORE -> <cor:custom Index="0" Uri="http://schemas.mindjet.com/MindManager/UpdateCompatibility/2004" cst0:updatedcategories="true" cst0:updatedvisibilitystyle="true" xmlns:cst0="http://schemas.mindjet.com/mindmanager/updatecompatibility/2004" /> BLOK_UZLU -> <ap:onetopic> UZLY </ap:onetopic> UZLY -> UZEL UZLY UZLY -> e UZEL -> <ap:topic UZEL_ATTR> PODUZLY TEXT NOTES ICONS HYPERLINK</ap:topic> UZEL_ATTR -> OId= UZEL_ID UZEL_ID -> identifikator PODUZLY -> <ap:subtopics>uzly</ap:subtopics> PODUZLY -> e TEXT -> <ap:text TEXT_ATTR ><ap:font/></ap:text> TEXT_ATTR -> PlainText= TEXT_ZBYTEK TEXT_ZBYTEK -> identifikator ReadOnly= TRUEFALSE TRUEFALSE -> true TRUEFALSE -> false NOTES -> e NOTES -> <ap:notesgroup><ap:notesxhtmldata PreviewPlainText= NOTES_ZBYTEK NOTES_ZBYTEK -> identifikator ><html xmlns="http://www.w3.org/1999/xhtml"><p>pozn POZN -> identifikator</p></html></ap:notesxhtmldata></ap:notesgroup> ICONS -> e ICONS -> <ap:iconsgroup><ap:icons>ikony</ap:icons></ap:iconsgroup> IKONY -> IKONA IKONY IKONY -> e IKONA -> <ap:icon xsi:type="ap:stockicon" IconType="IKONA_ID IKONA_ID -> urn:mindjet:smileyhappy"/> IKONA_ID ->urn:mindjet:letter"/> IKONA_ID ->urn:mindjet:mailbox"/> IKONA_ID ->urn:mindjet:megaphone"/> IKONA_ID ->urn:mindjet:house"/> IKONA_ID ->urn:mindjet:flagred"/> IKONA_ID ->urn:mindjet:trafficlightsred"/> IKONA_ID ->urn:mindjet:marker1"/> IKONA_ID ->urn:mindjet:marker5"/> IKONA_ID ->urn:mindjet:resource2"/> IKONA_ID ->urn:mindjet:arrowright"/> IKONA_ID ->urn:mindjet:cellphone"/> IKONA_ID ->urn:mindjet:exclamationmark"/> IKONA_ID ->urn:mindjet:questionmark"/> IKONA_ID ->urn:mindjet:thumbsup"/> IKONA_ID ->urn:mindjet:noentry"/> IKONA_ID ->urn:mindjet:bomb"/> IKONA_ID ->urn:mindjet:key"/> IKONA_ID ->urn:mindjet:lightbulb"/> IKONA_ID ->urn:mindjet:check"/> IKONA_ID ->urn:mindjet:note"/> IKONA_ID ->urn:mindjet:arrowleft"/> IKONA_ID ->urn:mindjet:book"/> IKONA_ID ->urn:mindjet:magnifyingglass"/> IKONA_ID ->urn:mindjet:folder"/> HYPERLINK -> <ap:hyperlink Url="#xpointer(/descendant-or-self::ap:Topic[@OId='HYPERLINK_ZB HYPERLINK_ZB -> identifikator'])" CachedName="HYPERLINKNAME HYPERLINKNAME -> identifikator" /> 41

special symbols: <,>,</,/>,:,=," keywords:ap,map,oid,onetopic,topic,subtopics,font,text,plaintext, True, False,ReadOnly,NotesGroup, NotesXhtmlData, PreviewPlainText,html,p,IconsGroup,Icons,Icon,IconType, SmileyHappy,Letter,Mailbox,Megaphone,House,FlagRed,TrafficLightsRed,Marker1,Marker5,Resource2,ArrowRight,C ellphone,exclamationmark,questionmark,thumbsup,noentry,bomb,key,lightbulb,check,note,arrowleft,book,mag nifyingglass,folder, Hyperlink, Url, CachedName 42

Příloha B Uživatelská příručka Uživatelská příručka slouží jako návod k použití jak pro textovou, tak i grafickou verzi. B.1 Textová verze Program se spouští příkazem java -jar MMConv.jar. Jako parametr se zadává jméno souboru. Obrázek B.1: Použití textové verze B.2 Grafická verze Program spustíme souborem MMConvGUI.jar. Otevře se základní okno aplikace. V menu File -> Open nebo pomocí klávesové zkratky Ctrl O vyvoláme dialog pro výběr vstupního souboru. 43

Obrázek B.2: Výběr souboru v grafické verzi Po výběru souboru stiskneme tlačítko Convert, které spustí převod. Po dokončení konverze program vypíše log zobrazující její průběh. Obrázek B.3: Výpis logu průběhu konverze 44

Příloha C Obsah přiloženého CD /text /img /sw Text práce ve formátu.pdf a.odt Obrázky k textu Zdrojové soubory /bin Binární soubory pro obě verze, včetně testovací mapy /MMConv Složka Netbeans projektu pro textovou verzi /MMConvGUI Složka Netbeans projektu pro grafickou verzi 45