In an earlier post announcing that Lingopolo becomes 100% free, I wrote about how I'm preparing to build Lingopolo into the world's best system for anybody to learn any-language, from any-language, for free.

Here I would like to explain how this "any-language to any-language" will be done.

What we currently have

Currently, we have only 3 language pairs available.

English to Dutch (with Dutch recordings)

(with Dutch recordings) English to French (with French recordings)

(with French recordings) English to Thai (with Thai recordings)

This can be represented by the following matrix:

The plan of course is to have many more languages, but this is already enough to illustrate how we will build the any-to-any system.

We can, for example, currently teach the word for "dog" to people who speak English:

"dog" in English to the Dutch recording for hond

"dog" in English to the French recording for chien

"dog" in English to the Thai recording for หมา

Using English as the language of translation

The first step, in order for Lingopolo to work from any language to any language, is to make it so that we can teach:

English to Dutch

French to Dutch

Thai to Dutch

English to French

Dutch to French

Thai to French

English to Thai

Dutch to Thai

French to Thai

This can be represented by the following matrix:

(Note that in this first stage, English appears only in the column of languages which you speak, and not as one of the languages you can learn. That is because we currently only have recordings for the three languages: Dutch, French and Thai.)

To create these new courses (Dutch to French, Dutch to Thai, French to Dutch, French to Thai, Thai to Dutch, Thai to French), we will create them based on matching the English version of each word or phrase.

For example, we already know the word for "dog" in each of the languages. Using this information, we will be able to generate automatically the following pages:

"dog" in Dutch (= hond) to the French recording chien

"dog" in Dutch (= hond) to the Thai recording หมา

"dog" in French (= chien) to the Dutch recording hond

"dog" in French (= chien) to the Thai recording หมา

"dog" in Thai (= หมา) to the Dutch recording hond

"dog" in Thai (= หมา) to the French recording chien

This would mean that somebody only speaking Dutch could learn French or Thai, and someone speaking only French could learn Dutch or Thai, and someone only speaking Thai could learn Dutch or French.

Phrases as well as words

Notice that this works not just for individual words, but also for complete phrases, as long as we have the phrase in each of the languages. For example, we currently have:

"She loves animals." in English, to Elle adore les animaux. in French

"She loves animals." in English, to Zij houdt van dieren. in Dutch

By matching on the English text "She loves animals.", we can then generate and teach:

"Zij houdt van dieren." in Dutch, to Elle adore les animaux. in French

"Elle adore les animaux." in French, to Zij houdt van dieren. in Dutch

So, like this, someone who only speaks Dutch could learn French, and someone who only speaks French could learn Dutch.

The purists might object to going in 2 steps to get a translation, e.g. going Dutch to English to French, rather than Dutch to French directly. However, in practice, for 99% of language learning content (vocabulary like dog, eyes and shoes and phrases like hello, I am twenty years old. and I don't like fish), this method should work extremely well.

Adding new languages

The great beauty of this system is that we can add new languages simply by adding the English, and only the English, to the new language pages.

For example, if we want to add Chinese, we would only need to add the English to Chinese pages:

For example, we would only need to add the pages:

"dog" in English to [the recording of whatever "dog" is in Chinese]

and then the software would be able to generate all the pages/course material for:

"dog" in Dutch (= hond) to the Chinese recording for "dog"

"dog" in French (= chien) to the Chinese recording for "dog"

"dog" in Thai (= หมา) to the Chinese recording for "dog"

"dog" in Chinese to the French recording chien

"dog" in Chinese to the Dutch recording hond

"dog" in Chinese to the Thai recording หมา

This would then give us all the possble combinations of Chinese (for those speaking English, Dutch, French or Thai wanting to learn Chinese, and for those speaking Chinese wanting to learn Dutch, French or Thai).

This means that for each extra language we add with just the English, we would get all the combinations of that language to each of the other non-English languages, and every other language to the new language.

Any-to-any based on common content

Note that the any-to-any is based on the content having a matching entry in each language. For example, if we have:

"nose" to [nose in French]

"nose" to [nose in Thai]

"please speak more slowly" to ["please speak more slowly" in French]

"please speak more slowly" to ["please speak more slowly" in Thai]

Then we will be able to generate automatically:

[nose in French] to [nose in Thai]

[nose in Thai] to [nose in French]

["please speak more slowly" in French] to ["please speak more slowly" in Thai]

["please speak more slowly" in Thai] to ["please speak more slowly" in French]

However, if we have English to French of penguin, but we don't have English to Thai of penguin then we will not be able to create French to Thai of penguin (since we don't know what the Thai word for penguin is), nor Thai to French of penguin (again because we don't know what the Thai for penguin is).

Similarly, if we only have English to Thai of "jackfruit", but we don't have English to French of jackfruit then we cannot create either French to Thai of jackfruit (since we don't know the French word for jackfruit), nor Thai to French of jackfruit (again because we don't know the French word for jackfruit).

In list form:

"penguin" to [penguin in French]

"jackfruit" to [jackfruit in Thai]

not currently possible: [penguin in French] to [penguin in Thai]

currently possible: [penguin in French] to [penguin in Thai] not currently possible: [jackfruit in Thai] to [jackfruit in English]

Of course, as soon as we add "penguin" in Thai or "jackfruit" in French, then we are again able to go from French to Thai and Thai to French for these words.

Nonetheless, despite this limitation, the common content, those words and phrases where we have English to French, and we have English to Thai, is likely to be large, and more importantly, is likely to contain all the words and phrases which are most useful to a language learner.

For example, we would expect to have in the shared overlap all the common words and phrases for:

parts of the body (nose, hand, eyes, ...)

days of the week

colours

food

animals

body parts

toys and games

weather

Basically 90% of the Themed courses material, with only the more obscure words and phrases not matching.

Similarly common phrases are likely to have a 90% match:

Where are you from?

What is your name?

Please speak more slowly.

I am twenty years old.

Summary

We will create any-to-any language content based on matching the English words and phrases.