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

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).

DecaleonAblaufschema.png (20 kByte)
The use of the translation program is very easy using the Grammar samples (Installation at the end of this document): 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): Twelve Samples contain most of the implemented features (English/German) where S=Subject/P=Predicate/O=Object: 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): To change Elements of the Grammar you can use the Tree View in the Edit 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 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:
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): Each word is described by sixteen Tags (xxx = first three characters of part of speech): 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): 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 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:

Semantic Groups (Thesaurus)

Semantic Groups describe correlations between Words regarding their meanings. The following of Semantic Groups types are coded: 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: The Group Number (Reference ID) consists of an upcounting Number and of one letter at the beginning: 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: The Group Members of Type "Hierarchy" additionally have a "#" and three letters at the end: 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"): 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:

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:

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: 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 113614256+20146270+509111361+1776529126+ 6880
Verbs 41861638+ 9112549+1637 4186+ 1906 6092+ 1831
Adjectives 35571358+ 9562314+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:

To Overview



Implemented Esperanto Grammar

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


ItmesConstantsExplanationKey Word
Nouns
pubEspNoArticle = ""no Article0
pubEspArticle = "la"with Article1
pubEspSingular = ""Singular - no sign1
pubEspPlural = "j"Plural sign2
Cases
pubEspNominative = ""Nominative - no sign1
pubEspGenitive = "de"Genitive sign2
pubEspDative = "al"Dative sign3
pubEspAccusative = "n"Accusative sign4
Verbs: IndicativeIndikativ
pubEspIndPresent = "as"Present EndingPraesens
pubEspIndPraeteritum = "is"Imperfect EndingPraeteritum
pubEspIndFutur = "os"Future EndingFutur
Verbs: ConjunctiveKonjunktiv
pubEspKonPresent = "us"Present EndingPraesens
pubEspKonPraeteritum = "us"Imperfect EndingPraeteritum
pubEspKonFutur = "us"Future EndingFutur
Verbs: ImperativeImperativ
pubEspImpImperative = "u"Imperative Ending
Verbs: Participe ActiveAktiv
pubEspParAktiPresent = "anta"Present EndingPraesens
pubEspParAktiPraeteritum = "inta"Imperfect EndingPraeteritum
pubEspParAktiFutur = "onta"Future EndingFutur
Verbs: Participe PassivePassiv
pubEspParPassPresent = "ata"Present EndingPraesens
pubEspParPassPraeteritum = "ita"Imperfect EndingPraeteritum
pubEspParPassFutur = "ota"Future EndingFutur
Adjectives
pubEspAdjPositive = ""original form - no signPositiv
pubEspAdjKomparative = "pli"1. Comparison signKomparativ
pubEspAdjSuperlative = "plej"2. Comparison signSuperlativ
Adverbs
strEspAdvOriginal = ""original AdverbOriginal
strEspAdvDerivat = "e"dervivated AdverbDerivat
pubEspAdvPositive = ""original form - no signPositiv
pubEspAdvKomparative = "pli"1. Comparison signKomparativ
pubEspAdvSuperlative = "plej"2. Comparison signSuperlativ

To Overview



Installation and Start

Requesites

Installation

Start


To Overview



State: Beta Version 6.0 / Jul 2018 by gearwheelsoft