7. 9. 2014

Mnemosyne XML DTD

Mnemosyne je výborný program pro učení ve stylu otázka–odpověď. Pokud nechceme zůstat odkázáni na existující výukové databáze, můžeme si vytvořit svoji vlastní. Výukové informace můžeme do programu vkládat položku po položce, ale tento postup je poměrně pracný a také vetšinou zbytečný, především pokud výchozí informace už existují v elektronické podobě. Stačí totiž informace převést do vhodného formátu a můžeme je do Mnemosyne vložit jedinou operací.

Jaký je ovšem použitelný formát pro tento účel?

Asi nejvhodnějším formátem je Mnemosyne 1.x *.XML, protože umožňuje správně přenést všechny znaky včetně diakritiky (což je obecná vlastnost XML formátu) a také přenést kategorie jednotlivých položek. Bohužel tento formát není nikde dokumentovaný.

Požadovaný soubor má následující strukturu:

<?xml version="1.0" encoding="utf-8"?>
<mnemosyne core_version="1">
  <category>
    <name>Jméno první kategorie</name>
  </category>
  <category>
    <name>Jméno druhé kategorie</name>
  </category>
  ...
  <item>
    <cat>Jméno první kategorie</cat>
    <Q>Otázka 1</Q>
    <A>Odpověď 1</A>
  </item>
  <item>
    <cat>Jméno první kategorie</cat>
    <Q>Otázka 2</Q>
    <A>Odpověď 2</A>
  </item>
  ...
</mnemosyne>

Odpovídající DTD soubor použitelný pro validaci tohoto XML souboru je takovýto:

<!ELEMENT mnemosyne (category+, item+)>
<!ATTLIST mnemosyne core_version CDATA #FIXED "1">

<!ELEMENT category (name)>
<!ELEMENT name (#PCDATA)>

<!ELEMENT item (cat, Q, A)>
<!ELEMENT cat (#PCDATA)>
<!ELEMENT Q (#PCDATA)>
<!ELEMENT A (#PCDATA)>