# Functions and Data Defintion in Decaleon 6.0

Decaleon allows a translation of a Sentence Grammar contained by XML Files from twelve languages into Esperanto.
The name "Decaleon" means that you can speak in ten Languages (greek "deca"=ten, greek "leo"=say) to become a result in Esperanto. Since Version 4.0 there are even twelve Languages. The Root Languages of Esperanto and other representative European Languages are contained in the Vocabulary.
The Sentence Grammars are encoded in XML where each part of a Sentence has distinct attributes. These XML Files need special Tags describing the Grammar of the Sentence.
The Vocabulary is also stored in an XML File where different parts of speech are distinguished.
This Word Data Base is a Multilingual Vocabulary with Semantic Groups (Thesaurus) and may be extended by the user.
The Dictionary and Trainer Functions allow to look up a Word and to learn Words contained in the XML Database or in an imported CSV File.
The Dictionary Function also allows to export a Vocabulary List (Unicode Text) or an alphabetically sorted Vocabulary Dictionary (PDF).
The Trainer Function is independent from the Translator but uses the same XML Database.
Current Information (2018):
An extra Vocabulary Extension with about 14000 technical terms has been coded till end of 2015. The standard Vocabulary has also been extended by about additional 8500 words and 325 expressions till mid of 2016.
A 2nd Addition to the standard Vocabulary, containing about 23500 words and 500 expressions, has been coded till end of 2017. Import Files for another 14(22) Languages are in progress till mid of 2018 (also in Decaleon 6.0). A 3rd Addition to the standard Vocabulary, containing about 10400 words and 7100 expressions, will be coded till end of 2019.

### Overview

- Quick Start
- Determining a Sentence Grammar
- Grammar Key Words
- Vocabulary
- Dictionary
- Trainer
- Adaption and Configuration
- Implemented Esperanto Grammar
- Installation and Start

## Quick Start

Main Functionality is Translation from 12(13) Languages to Esperanto. Directly supported Languages are English, German, French, Spanish, Italian, Portoguese, Danish, Swedish, Russian, Polish, Croatian and Greek.
Via the Any Language functionality reduced support of 12 other European Languages will be available.
The Decaleon Version (since Version 3.0) also offers an Any-To-Any Dictionary and a Vocabulary Trainer (see extra sections).
The use of the translation program is very easy using the Grammar samples (Installation at the end of this document):

- Just load the XML Encoding of a Sentence Grammar
- Select the language from which to translate (AnyLang see below)
- Press the Translate button
- May be select one of the Ambiguities of a word according to the Synonyms and Context Information, i.e. enter the number
- Watch the translation and error lines

Decaleon works for the following Languages using for each up to 7878+4014+8565+23443+10294|54194 words (names of the Sentence Grammar samples, xx = number):

- English : Grammar_eng_xx.xml
- German : Grammatik_ger_xx.xml
- French : Grammaire_fra_xx.xml
- Spanish : Gramatica_spa_xx.xml
- Italian : Grammatica_ita_xx.xml
- Portog. : Gramatica_por_xx.xml
- Danish : Grammar_dan_xx.xml
- Swedish : Grammatik_swe_xx.xml
- Greek : Grammatike_gre_xx.xml
- Russian : Grammatika_rus_xx.xml
- Polish : Gramar_pol_xx.xml
- Hrvatski: Gramatika_cro_xx.xml

Twelve Samples contain most of the implemented features (English/German) where S=Subject/P=Predicate/O=Object:

- Sample 1: Simple sentence in the present with S-P-O, Singular and Adjective in the Positive Form
- Sample 2: Simple sentence in the Future with S-P-O, Plural and Adjective in Comparison
- Sample 3: Simple sentence in the present with S-P-O(3), more Objects in different Cases
- Sample 4: Simple sentence in the Imperfect with S(2)-P-O(4), double Subject, and more, as well multiple Objects, in different Cases
- Sample 5: Simple sentence in the Future with S-P-O, Passive
- Sample 6: Simple sentence in the Present with S-P-O, Adverbs in Positive Form at the Subject and at the Predikate
- Sample 7: Imperative sentence in the Present with P-O, Adverb in Comparison at the Predicate
- Sample 8: Multiple sentence in the Future each with S-P-O on equal level
- Sample 9: Multiple sentence in the Future with S-P-O/S-P and Adverb with regard to time
- Sample 10: Answering sentence in the Present with S-P(3), Particle and Predicate containing Auxiliary and double Verb
- Sample 11: Questioning sentence in the Present with S-P(2) with Predicate containing Auxiliary, Verb and Adverbe
- Sample 12: Simple sentence in the Present with S-P with Partcipial Completion at the Subject
- Sample 13: Multiple sentence in the Future/Past each with S-P-O, the second Part with relative pronoun
- Sample 14: Threefold Sentence in the Present with S-P/S-P(2)-O/S-P-O

Other Languages can be used by choosing "Any Language". For more information see the "Vocabulary" section of this document.

#### To Overview

## Determining a Sentence Grammar

Some useful advices to construct a new Sentence Grammar (for more detailed information see the following section):

- The Sentence Grammar follows the strict order Subject - Predicate - Object.
- Each of these Sentence Structures has special properties and may be additional elements such as Adjectives, Adverbs or Participes.
- A Subject and Object may be doubled, there may be more Objects in different cases in one sentence.
- Also the Predicate can consist of more than one element if there is an Auxiliary combined with a Verb in Infinitive.
- The sequence of the Sentence Structures, specially of the Objects, must be unambigous.
- Every Component has to be filled in the form you will find it in a dictionary, e.g. Nouns in Nominative 1st Person Singular, Verbs in Infinitive, Adjectives in Positive Male Form etc.
- If the Subject is not a Noun or a Proper Name especially in the Roman languages no Pronoun would be needed usually. But in this case you will have to fill the corresponding Pronoun into the Subject Tag.
- Edit your Sentence Grammar XML File with any Text Editor an XML Editor (care for well formed XML Files).
- Save your Sentence Grammar XML File in the Esperanto/bin/Debug directory.

To change Elements of the Grammar you can use the Tree View in the Edit Pane.

- Click on a Tree Node to edit its properties in the Editor on the lower right side.
- To use the implemented grammar features the Values of these Elements between the Tags must correspond to the Key Words listed in the second table.
- Save each edited Element using the Save Edit Button.
- Export the new Sentence Grammar using the Save XML Grammar Button in the Translation Pane.

#### To Overview

## Grammar Key Words

The Grammar Key Words are described in detail at the end of this section. At first some general items concerning Sentence Grammar XML Files.
You can use one of the templates containing only the Tags (Template1.xml one Sentence, Template2.xml two Partial Sentences) and

- either fill in the text parts and the Options by using the Edit Pane of Decaleon,
- or edit the Sentence Grammar XML File using an (XML) Editor observing the following descriptions.

The Sentence Grammar XML File has to fulfill the XML conditions, so it beginns with the XML Declaration and (optional) Comments:

<?xml version="1.0">
<!--Esperanto: Grammar-->
<!--Esperanto: Sample 1: I wash up the new cup. = Mi lavas la novan tason.-->
<!--Esperanto: simple Sentence in the Present with S-P-O, Singular and Adjective im Positive Form-->

... and has to contain a Root Element (the XML Name Space may be altered):

<Esperanto xmlns:esp="http://www.esperanto.de">

...

</Esperanto>

Inside this Root Element a unique Tag contains the Original Sentence in the selected language: (Note: Edit of this doesn't affect the translation, it only shows the whole Sentence.)

<Original>I wash up the new cup.</Original>

Each (Partial) Sentence (all the Structures and Elements explained below) is inside the Root Element and must be included in the following Tags:

<Sentence No="1">

...

</Sentence>

The following list gives an overview of the main Sentence Structures and where applicable the Options.
You a very variable using these Structures; here are the common cases:

- A usual Sentence has a Subject, a Predicate and no, one or more Objects (in different Cases).
- A Sentence may consist of only a Predicate (and Object). -> Imperative Form/Order
- A Sentence without Predicate is also possible. -> Ellipse
- You may have double Subjects, Objects and Predicates (within one Structure) combined by "and" or "or". -> Duplikat Tag
- An other case consists of two Predicates (two Structures) when using an Auxiliary and a usual Verb. -> PreGenusVerbi and PreSpezValenz Tags
- The Interpunctions are put at the end of each (Partial) Sentence.
- Junctions are only used in front of the second and following Partial Sentences.
- Particles are put in front of each (Partial) Sentence. -> Answering on a Decision (yes/no) or making an Exclamation (hurra)

No lets have a look at the Sentence Structures in detail (inclusive advices what to put between the Tags):

### Subject

The Subject Structure contains at least a Pronoun, Noun, Proper Name or Relative Pronoun and optionally an Adjective, an Adverb and/or a Participe.
Each of these Elements has certain Properties, e.g. Number, Type, Comparison.

<Subjekt No="1">

<SubNominativ></SubNominativ> insert a Pronoun, Noun, Proper Name or Relative Pronoun (fill in the following 4 elements)
<SubType></SubType> choose Pronomen, Nomen, Name or Relativpron
<SubGenus></SubGenus> chose Option m(male), f(female), n(neuter) or 0(undetermined)
<SubNumerus></SubNumerus> choose Option 1(singular) or 2(plural)
<SubArtikel></SubArtikel> choose Option 0(no article) or 1(with article)
<SubAdjektiv></SubAdjektiv> insert an Adjective (fill in the following 2 elements)
<SubAdjType></SubAdjType> choose Option Normal or Possesiv
<SubAdjKomp></SubAdjKomp> choose Option Positiv(original), Komparativ(1st comparison) or Superlativ(2nd comparison)
<SubAdverb></SubAdverb> insert an Adverb or Adjective (fill in the following 2 elements)
<SubAdvType></SubAdvType> choose Option Original(for Adverb given) or Derivat(for Adjective given)
<SubAdvKomp></SubAdvKomp> choose Option Positiv(original), Komparativ(1st comparison) or Superlativ(2nd comparison)
<SubPartizip></SubPartizip> insert a Verb from which to build a Participe (fill in the following 3 elements)
<SubParTemp></SubParTemp> choose Option Praesens(present), Praeteritum(past) or Futur(future)
<SubParMod></SubParMod> choose Option Indikativ or Konjunktiv
<SubParGenV></SubParGenV> choose Option Aktiv or Passiv
<SubDuplikat></SubDuplikat> insert nothing, (in the selected language) or (in the selected language)

</Subjekt>

### Predicate

The Subject Structure contains at least a Verb (general or Auxiliary) and optionally an Adverb.
Each of these Elements has certain Properties, e.g. Number, Person, Time, Type, Comparison.

<Preadikat No="1">

<PreInfinitiv></PreInfinitiv> insert a Verb (fill in the following 6 elements)
<PrePerson></PrePerson> choose Option 1(1st person), 2(2nd) person or 3(3rd person)
<PreNumerus></PreNumerus> choose Option 1(singular) or 2(plural)
<PreTempus></PreTempus> choose Option Praesens(present), Praeteritum(past) or Futur(future)
<PreModus></PreModus> choose Option Indikativ, Konjunktiv or Imperativ
<PreGenusVerbi></PreGenusVerbi> choose Aktiv, Passiv or Auxiliarcomes(Auxiliary Companion)
<PreSpezValenz></PreSpezValenz> choose Intransitiv(no Object Complete), Transitiv(with Object Complete), Reflexiv(Reflexive Form) or Auxiliarum(Auxiliary i.e. can, should, must)
<PreAdverb></PreAdverb> insert an Adverb or Adjective (fill in the following 2 elements)
<PreAdvType></PreAdvType> choose Option Original(for Adverb given) or Derivat(for Adjective given)
<PreAdvKomp></PreAdvKomp> choose Option Positiv(original), Komparativ(1st comparison) or Superlativ(2nd comparison)
<PreDuplikat></PreDuplikat> choose Option Original(for Adverb given) or Derivat(for Adjective given)

</Preadikat>

### Object

The Object Structure contains at least a Pronoun, Noun, Proper Name or Relative Pronoun and optionally an Adjective, an Adverb and/or a Participe.
Each of these Elements has certain Properties, e.g. Number, Case, Type, Comparison.

<Objekt No="1">

<ObjNominativ></ObjNominativ> insert a Pronoun, Noun, Proper Name or Relative Pronoun (fill in the following 5 elements)
<ObjType></ObjType> choose Option Pronomen, Nomen, Name or Relativpron
<ObjKasus></ObjKasus>
<ObjGenus></ObjGenus> chose Option m(male), f(female), n(neuter) or 0(undetermined)
<ObjNumerus></ObjNumerus> choose Option 1(singular) or 2(plural)
<ObjArtikel></ObjArtikel> choose Option 0(no article) or 1(with article)
<ObjAdjektiv></ObjAdjektiv> insert an Adjective (fill in the following 2 elements)
<ObjAdjType></ObjAdjType> choose Option Normal or Possesiv
<ObjAdjKomp></ObjAdjKomp> choose Option Positiv(original), Komparativ(1st comparison) or Superlativ(2nd comparison)
<ObjAdverb></ObjAdverb> insert an Adverb or Adjective (fill in the following 2 elements)
<ObjAdvType></ObjAdvType> choose Option Original(for Adverb given) or Derivat(for Adjective given)
<ObjAdvKomp></ObjAdvKomp> choose Option Positiv(original), Komparativ(1st comparison) or Superlativ(2nd comparison)
<ObjPartizip></ObjPartizip> insert a Verb from which to build a Participe (fill in the following 3 elements)
<ObjParTemp></ObjParTemp> choose Option Praesens(present), Praeteritum(past) or Futur(future)
<ObjParMod></ObjParMod> choose Option Indikativ or Konjunktiv
<ObjParGenV></ObjParGenV> choose Option Aktiv or Passiv
<ObjPraeposition></ObjPraeposition> insert a Preposition
<ObjDuplikat></ObjDuplikat> insert nothing, (in the selected language) or (in the selected language)

</Objekt>

### Interpunction

<Interpunktion No="1">

<IntText></IntText> insert a Punctuation Mark(./!/?/,)
<IntType></IntType> choose Option Deklarativ(statement), Imperativ(order), Interrogativ(question) or Partitiv(Partial Sentence)

</Interpunktion>

### Junction

<Junktion No="1">

<JunText></JunText> insert a Junction e.g. , , (in the selected language)
<JunType></JunType> choose Option Konjunktion(equal level Sentence) or Subjunktion(sub level Sentence)

</Junktion>

### Particle

<Partikel No="1">

<ParText></ParText> insert or (in the selected language) or an exclamation term
<ParType></ParType> choose Option Decision(answering) or Interjektion(exclamation)

</Partikel>

#### To Overview

## Vocabulary

If there are unknown words you may add unknown words to the XML Vocabulary "VocaAddition2.xml" in the Esperanto/bin/Debug directory. Keep in mind to save this File coded as UTF-8/Unicode to maintain the Special Characters.
Put the words in order of the 8 parts of speech which are distinguished (Tag names):

- Pronouns: Pronomen
- Nouns: Nomen
- Verbs: Verb
- Adjectives: Adverb
- Adverbs: Adjektiv
- Prepositions: Praeposition
- Particles: Partikel
- Junctions: Junktion

Each word is described by sixteen Tags (xxx = first three characters of part of speech):

- xxxGer: German
- xxxEsp: Esperanto
- xxxEng: English
- xxxFra: French
- xxxSpa: Spanish
- xxxIta: Italian
- xxxPor: Portoguesian
- xxxDan: Danish
- xxxSwe: Swedish
- xxxGre: Greek
- xxxRus: Russian
- xxxPol: Polish
- xxxCro: Croatian
- xxxSyn: Synonyms
- xxxKon: Context
- xxxAny: Other Language

The Synonym and Context Information helps to choose the right word in case of Ambiguities, i.e. words with the same spelling but different meaning. These Ambiguities occur at different words in the different languages; so this Information is listed as an extra attribute. The Synonym and Context Information is given only in English. An example where there is no difference in English, French and Italian is the word "eat / manger / mangiare". It is used as well for human beeings as for animals. In German, Spanish and Esperanto there are two different words for these different meanings. So the Contex Information gives "human" for the first case and "animal" for the second case.
The 16th encoding "Any" allows to use any other language. Just fill in the words according to the Synonym/Context Information. (As a sample the Bavarian dialect of German is given in file "Grammatik_BY_1.xml".) Or import at Run-Time from a specially formatted Text File in Unicode Format:
#DecaleonTextFile#
Name of Language
Comment, Date, etc.
Count Type Index Eng_Meaning AnyLang_Meaning [more parts]
#DecaleonTextFile#
Hungarian
Demo, March 2016
00001 Nom 00188 [tree] fa
00002 Nom 01325 [house(building)] ház
00003 Nom 01432 [dog] kutya
00004 Exp 00040 [hold_out_one's_hand] kezet fog
Import Files named "ImportFileNameOfLanguage".txt are in progress for A1/A2 Level (each about 4500 Words) in the following Languages:
Albanian, Bulgarian, Czech, Dutch, Finnish, Hungarian, Norwegian, Romanian, Serbian, Slovak, Slovene, Turkish, Ukrainian and Interslavic.
Import Files named "ImportFileNameOfLanguage".txt are in progress for A1/A2 Level (each about 1200 Words) in the following Languages:
Arabian, Chinese, Hindi, Indonesian, Japanese, Korean, Urdu and Vietnamese.
Use template "ImportFileTemplate.txt" for your own Language; you may contribute it to the project at gearwheelsoft2@hotmail.com.
Special Characters of Esperanto are prescribed by a | before the standard Character, e.g. (each in lower and upper case):

- |c |C
- |g |G
- |h |H
- |j |J
- |s |S
- |u |U

The display functions show these Special Characters correctly if you install the Fonts mentioned in the Installation Description above. Using the Any-to-Any Dictionary you can enter the Esperanto words/terms typing in the Special Characters in the mentioned way. So Esperanto can be typed in with any Keyboard.
Note: Special Characters of the Languages like

- the German "Umlaute"
- the French ligatures "e dans l'o" and "e dans l'a"
- the Greek Alphabet
- the Russian Cyrillic Alphabet

are saved as UTF-8/Unicode Characters in the Vocabulary (new since Version 3.0). So the specific Languages can be typed in with the Language-conforme Keyboard or by using the Application "UnicodeTR" contained in the ZIP File.
Each Word has four Attributes:

- Nr: The upcounting Number (in each Part of Speech).
- Nv: The Niveau for Learning (see Trainer).
- Th: The logical Theme (see File "Sprachen_Themen.txt").
- Gr: The semantic Group (Reference ID, see Semantic Groups).

### Semantic Groups (Thesaurus)

Semantic Groups describe correlations between Words regarding their meanings. The following of Semantic Groups types are coded:

- Synonym: different Words having the same Meaning.
- Antonym: contrasting Words, usually two extreme words; e.g old - new.
- Complementarity: contrasting Words, but more than two words; e.g. the four seasons.
- Onomasiological Field: Words which belong to a certain (small) topic.
- Hierarchy: Hyperonym (Super Item) - Hyponym (Sub Item).

The Hononym (the same Word with different Meanings) would be different for each Language, so here it is not treated. The Semantic Group Information is retrieved in the Dictionary Window (see next chapter).
The Semantic Groups are coded as follows: For each Group an XML Member <Gruppe> in the Vocabulary.xml File. Each Group has five Attributes:

- Nr: The Group Number (Reference ID in form LXXX).
- Tp: The Group Type (Synonym/Antonym/Complementarity/Field/Hierarchy).
- Nm: The Group Name (short English Description).
- Nm: The Group Theme (main Theme according to Themes of Words).
- Nm: The Group Link (Reference ID of other Group(s)).

The Group Number (Reference ID) consists of an upcounting Number and of one letter at the beginning:

- S: Synonym.
- A: Antonym.
- K: Complementarity.
- F: Onomasiological Field.
- H: Hierarchy.

There can be up to 30 Group Members <GrpMem> in each Group. Their inner Text has form LLLXXXXX[#LLL]. Their inner Text consists of a Number denoting the Index (Number) of the referenced Word in its Parts of Speech section and of three letters at the beginning:

- Pro: Pronoun
- Nom: Noun
- Ver: Verb
- Adv: Adverb
- Adj: Adjective
- Pre: Preposition
- Par: Particle
- Jun: Junction

The Group Members of Type "Hierarchy" additionally have a "#" and three letters at the end:

- sup: Super Item (Hyperonym)
- sub: Sub Item (Hyponym)

The Hononym (the same Word with different Meanings) would be different for each Language, so here it is not coded; but entering a Homonym in the Dictionary Window yields also Homonym Information for the "from Language" (try this for the English word "mean"). The current Version contains more than 5500 coded Semantic Groups.
A modified form of the Vocabulary is used in the Text Mining project "TEXminer" (also Sourceforge): Language Models for certain Languages contain flected forms (grammar), a Semantic Groups file allows detailed Thematic Analysis.

#### To Overview

## Dictionary

Decaleon includes an Any-To-Any Dictionary between 12 Languages, "Any Language" and Esperanto. Just open the Dictionary Form via the rightmost upper Button in the Translation Pane.

### Word Search (Translation and Semantic Groups)

The upper Pane of the Dictionary Window allows a Word Search. At first select the Language for which you will enter the Search String, then select the Language to translate to. Enter the Search String and press the "Search" Button. The big Text Field shows you the Result Entries of the Search followed by the original String found, the optional Context and Synomym Information.
The Radio Buttons for the Search Mode let you do either a "strict" Search where the Word(s) you enter is/are compared to the complete Entry, or a "Starts with" Search where the Word(s) is/are part of the Entry at the Beginning but at least three letters are needed. If Semantic Group Information is coded with the current word, then it is displayed. (see preceding chapter)

### Vocabulary List (Text or HTML File)

The mid Pane of the Dictionary Window allows Generation of a Vocabulary List, which you may import in other Training Software. At first select the "from Language" and then the "to Language". The Radio Buttons for Selection Criterion let you select the Words either by Learning Niveau (A1/A2/B1/B2/C1/C2) or by 26 logic Themes (for details see File "Sprachen_Themen.txt"):

- (01) Nations/Languages
- (02) Human Body/Senses
- (03) Health/Medicine
- (04) Psychology/Brain/Behaviour
- (05) Food/Clothing
- (06) Home/Househould
- (07) Family/Private Life
- (08) Education/Training
- (09) Occupation/Tools
- (10) Leisure/Sports/Events
- (11) Travelling/Gastronomy
- (12) Traffic/Transportation
- (13) State/Law/Society
- (14) Economy/Financial World
- (15) Communication/Media
- (16) Art/Music/Literature
- (17) History/Religion/Philosophy
- (18) Earth/Nature/Biology
- (19) Natural Sciences/Technique
- (20) Space/Time
- (21) Colors/Forms
- (22) Quantity/Numbers/Units
- (23) Properties/Modalities
- (24) Speech/Grammar
- (25) Functional Words
- (26) Expressions (Idioms)

Then choose as Output Format either HTML (table) or Unicode (numbered list). Finally press the "List" Button to generate the HTML or Unicode File containing your selected Words, which was saved into the /Debug/bin Directory.

### Vocabulary Dictionary (LaTeX or PDF)

The lower Pane of the Dictionary Window allows Generation of a alphabetically sorted Vocabulary Dictionary. At first select the "from Language" and then the "to Language". Then choose as Output Format either LaTeX or PDF. The Dictionary Type can be either Lexical (A to Z) or Thematic (Thematic Groups) - please choose. Finally press the "Dictionary" Button to generate the LaTeX or PDF File containing all Words.
Remark: At the moment the Cyrillic and Greek Letters are not supported for PDF Dictionaries. For LaTeX the package "polyglossia" is needed to process Cyrillic and Greek Letters using XeLaTeX or LuaLaTeX. Then the LaTeX header should be like this:

- \documentclass[10pt,a4paper]{article}
- \usepackage{fontspec} % loaded by polyglossia, but included here for transparency
- \usepackage{polyglossia} % package containing Unicode Fonts
- \setmainlanguage{russian} % set 1st Language
- \setotherlanguage{german} % set 2nd Language
- under Windows: \newfontfamily\russianfont[Script=Cyrillic]{Times New Roman} % set specific Font
- under Linux: \newfontfamily\russianfont[Script=Cyrillic]{Linux Libertine} % set specific Font

#### To Overview

## Trainer

Decaleon includes an Any-To-Any Vocabulary Trainer between 2 of 12 Languages, "Any Language" and Esperanto.

### Creating a Training File

Just open the Trainer Form via the rightmost lower Button in the Translation Pane. In the next small Dialog just press "OK". Enter the Name (without Extension) of the Training File to save your Training Wordlist including Results. At first select "New Choice", one or more Niveaus, the Language for which a Word will be given (from Language), then the Language for which Alternatives will be given to choose from (to Language).
Press the "Apply" Button. A MessageBox says how many Words of the given Niveau and Languages were selected. The selected Words get mixed (the parts of speech are mixed and not in alphabetical order). The "Results" GroupBox shows how many Words were selected, trained at least once and what Score you have. Clicking the orange Score Label lets you view all selected Words including the current Score Information.

### Starting a new Training Session

To Start a Training Session press the "Start Training" Button. The right side of the Window gets activated. At the beginning only the Option "New Words" is active (later also "Known Words" lets you train underaverage scored Words). Select the Number of Words to take for the coming Learning Unit and the Number of Repetitions for each Word in it. Press the "Start Unit" Button. The first Learning Unit is activated.
Additional Information on alternative Auto-Unit: Checking the Option "Auto" (CheckBox) you can start a Automatic Unit, i.e. only reading, guessing and reading the answer. You don't have to click and can just concentrate on the Words. You have 5 Seconds to guess the right answer and after the right Alternative got green another 5 Seconds to memorize. The maximum Score to gain is about 20 Percent less than in an "active" Unit.

### Carrying out a Learning Unit

Pressing the "Go on" Button shows the first/next Word of this Learning Unit. The TextLabels under this Button show the current Repetitions, Score and last Training Date/Time of the current Word. The yellow TextBox on the right gives Information on Thematic Information, Word Type and if necessary on Context and/or Synonyms. The yellow TextLabel shows the current Word in the "from Language", the five blue TextLabels give Alternatives in the "to Language". Click into the right Alternative blue TextLabel.
If the Choice was right, it gets green; if the Choice was wrong, it gets red and the right Alternative gets green. Sometimes two identical Alternatives may occur or the Word Info may not give enough Information; then you have the possibility to score the last Word as right using the "right" Button. Also Reaction Time of your Choice is measured. Press again the "Go on" Button for the next current Word and continue to the end of the Learning Unit. When the Learning Unit is finished, a Window shows the Mean Score and all Words of the Learning Unit including Score Information.
After closing the Score Window make the Selections for a new Training Unit (Mixed Mode lets you train a Combination of New Words and Known Words). Then start a new Learning Unit. If you need a Pause during a Learning Unit press the yellow "From Word" TextLabel to have a break and press it again to continue.

### Saving and Loading a Training File

To save your Results press the Save "Button" on the bottom of the left side (Closing by Window "x" also saves). When starting the Trainer again you just will have to choice your Training File and a new Training Session can begin.

### Generating a Training File from CSV Import or registered Words

You have two Alternatives:

- (1) Import of Words from a CSV File

A CSV File contains Comma Separated Values, here at least one Column in a first Language, a second Column in another Language. The CSV File should be saved in Unicode Format (Option in the Save Dialog of most Text Editors).
Just open the Trainer via the rightmost lower Button in the Translation Pane. In the next small Dialog enter "1" and press "OK". The Word Manager Window is shown: Choose the Separator your CSV File contains and press the Button "Open CSV File". The File Open Dialog of Windows is shown: Choose your CSV File and press "Open". The two Text Listboxes get filled: On the left there are the Fields of the internal Data Structure (11 Languages + Any Language and additional Information). On the right there are the Columns of your CSV File (First Line either Header Information or First Data).
To match between Fields and Columns click one Element on the left side and one element on the right side (they get blue). Press the "Add Pair" Button. The Data GridView below shows your current Matches (Synonym, Context and Theme Info are optional). When matching is finished, if the first Line of your CSV Data is Header Information check Option "Ignore first Line", press the Button "Start Import". The Result says how many Words have been imported. Now you are ready to generate your Training File.

- (2) Registering Words by typing in

Choose a first Language and type in the Word, choose a second Language and type in the corresponding Word. Optionally type in Context and Synonym Information. Choose a Theme appropriate to the current Word and press the "Register" Button. The Counter says how many Words have been entered. Press the "Reset" Button to clear the typed in Text and Theme Information and continue with typing in the next Word. When you have registered all needed Words you can generate your Training File.

- -> Generating your Training File

Choose the Language for which a Word will be given (from Language), then the Language for which Alternatives will be given to choose from (to Language). Press the Button "Generate Training File". The File Save Dialog of Windows is shown: type in a Name for your Training File (Extension is added automatically). A Message Box says how many Words have been saved. The File Open Dialog of Windows is shown: Choose your Training File and press "Open". The Vocabulary Trainer is opened. How to carry out a Training Unit see above.

### Remarks

The Niveaus are similar to the European Reference: A1 (basic Vocabulary), A2 (essential Vocabulary), B1 (extended Vocabulary), B2 (comprehensive Vocabulary), C1 (extensive Vocabulary), C2 (all-embracing Vocabulary). Decaleon contains the nearly complete Niveaus A1, A2 and B1, and some Words of B2. The standard extension will bring Words of C1/C2.
The Vocabulary Trainer was the recent Development of Decaleon, so if there are Problems report it to gearwheelsoft2@hotmail.com.

#### To Overview

## Adaption and Configuration

### Sentence Structures

The numbers of the Sentence Strutures are restricted in the source code. The maximum numbers of Sentence Structures are:

- partial Sentences: 3
- Subjects: 9
- Predicates: 9
- Objects: 30
- Junctions: 3
- Particles: 3
- Punctuation Marks: 3

The numbers in the second column are the maximum possible numbers of each Structure. You may change these numbers in the Globals.vb file.

### Vocabulary parts of speech

The numbers of the Parts of Speech are not restricted in the source code. There are no longer maximum numbers of Parts of Speech since Version 3.0, because the internal Structures were changed to Lists of Classes. The Words are coded in 4 files: Vocabulary.xml, VocaAddition.xml, VocaAddition2.xml (in progress) and VocaExtensions.xml.
When selecting your Language, a Message Box says how many Words are contained in this Language (maximum given below).

. Part of Speech . | . Overall Sum . | . Kernel+1st Addition . | . ext. Kernel+2nd Addition . | . ext. Kernel+3nd Addition . | . ext. Kernel+4th Addition .
--- | --- | --- | --- | --- | ---
Pronouns | 92 | 64+ 12 | 76+ 16 | 92+ 10 | 102+ 2
Nouns | 11361 | 4256+2014 | 6270+5091 | 11361+17765 | 29126+ 6880
Verbs | 4186 | 1638+ 911 | 2549+1637 | 4186+ 1906 | 6092+ 1831
Adjectives | 3557 | 1358+ 956 | 2314+1243 | 3557+ 3480 | 7037+ 1543
Adverbs | 888 | 448+ 91 | 539+ 349 | 888+ 248 | 1136+ 126
Prepositions | 56 | 23+ 12 | 35+ 21 | 56+ 10 | 66+ 17
Particles | 221 | 25+ 6 | 31+ 190 | 221+ 19 | 240+ 14
Junctions | 96 | 65+ 13 | 78+ 18 | 96+ 5 | 101+ 7

The numbers in the second column are the maximum possible numbers of each Parts of Speech. You may add words into this XML file maybe only in your prefered language and Esperanto. Put the words in order of the 8 Parts of Speech. Keep in mind to save this File coded as UTF-8/Unicode to maintain the Special Characters of each Language.
Vocabulary.xml contains about 12000 words. VocaAddition.xml contains about 8500 additional words and about 325 expressions. VocaAddition2.xml contains about 23500 additional words and about 565 expressions. VocaAddition3.xml will contain about 10400 additional words and about 7100 expressions. VocaExtensions.xml contains about 14000 technical terms, about 700 each of:

- 0677 EA/01 Astronomy
- 0655 EB/02 Biology
- 0585 EC/03 Chemestry
- 0947 ED/04 Medicine
- 0696 EE/05 Economy
- 0969 EG/06 Geosciences
- 0699 EH/07 History
- 0630 EI/08 Informatics
- 0696 EJ/09 Jurisprudence
- 0658 EK/10 Art/Culture
- 0833 EL/11 Linguistics
- 0663 EM/12 Mathematics
- 0621 EP/13 Physics
- 1263 ER/14 Religion
- 0496 ES/15 Social Sciences
- 0927 ET/16 Technology
- 0651 EU/17 Music
- 0605 EW/18 Philosophy
- 0442 EY/19 Psychology
- 0655 EZ/20 Sports

#### To Overview

## Implemented Esperanto Grammar

This table gives an overview of the programmed Grammacal Endings of Esperanto:

Itmes | Constants | Explanation | Key Word
Nouns |  |  |
--- | --- | --- | ---
| pubEspNoArticle = "" | no Article | 0
| pubEspArticle = "la" | with Article | 1
| pubEspSingular = "" | Singular - no sign | 1
| pubEspPlural = "j" | Plural sign | 2
Cases |  |  |
| pubEspNominative = "" | Nominative - no sign | 1
| pubEspGenitive = "de" | Genitive sign | 2
| pubEspDative = "al" | Dative sign | 3
| pubEspAccusative = "n" | Accusative sign | 4
Verbs: Indicative |  |  | Indikativ
| pubEspIndPresent = "as" | Present Ending | Praesens
| pubEspIndPraeteritum = "is" | Imperfect Ending | Praeteritum
| pubEspIndFutur = "os" | Future Ending | Futur
Verbs: Conjunctive |  |  | Konjunktiv
| pubEspKonPresent = "us" | Present Ending | Praesens
| pubEspKonPraeteritum = "us" | Imperfect Ending | Praeteritum
| pubEspKonFutur = "us" | Future Ending | Futur
Verbs: Imperative |  |  | Imperativ
| pubEspImpImperative = "u" | Imperative Ending |
Verbs: Participe Active |  |  | Aktiv
| pubEspParAktiPresent = "anta" | Present Ending | Praesens
| pubEspParAktiPraeteritum = "inta" | Imperfect Ending | Praeteritum
| pubEspParAktiFutur = "onta" | Future Ending | Futur
Verbs: Participe Passive |  |  | Passiv
| pubEspParPassPresent = "ata" | Present Ending | Praesens
| pubEspParPassPraeteritum = "ita" | Imperfect Ending | Praeteritum
| pubEspParPassFutur = "ota" | Future Ending | Futur
Adjectives |  |  |
| pubEspAdjPositive = "" | original form - no sign | Positiv
| pubEspAdjKomparative = "pli" | 1. Comparison sign | Komparativ
| pubEspAdjSuperlative = "plej" | 2. Comparison sign | Superlativ
Adverbs |  |  |
| strEspAdvOriginal = "" | original Adverb | Original
| strEspAdvDerivat = "e" | dervivated Adverb | Derivat
| pubEspAdvPositive = "" | original form - no sign | Positiv
| pubEspAdvKomparative = "pli" | 1. Comparison sign | Komparativ
| pubEspAdvSuperlative = "plej" | 2. Comparison sign | Superlativ

#### To Overview

## Installation and Start

### Requesites

- Maybe download the .NET-Framework from MicroSoft (Redistributable Package)
- The Dictionary Function uses the Open Source PDF Software "iTextSharp" (see bin/Debug/iTextSharp directory for more Information)

### Installation

- Extract the Fonts *.TTF (ORION) to C:\Windows\Fonts (on Win7 or higher also envoke install)
- Extract the Project ZIP file to a new folder

### Start

- Open the VB.NET Project with MS Visual Basic 2010 (or higher / Express Edition) or start the EXE file in the Esperanto/bin/Debug directory

#### To Overview

State: Beta Version 6.0 / Jul 2018 by gearwheelsoft