Hi everyone,
I've been working on a language learning site recently, and wanted to make a write-up for other developers about my experience with drupal in the hope it is useful for the people looking forward with engine design. I also hope that other drupal developers get a kick looking at some of the innovative things we've done with their code.
http://textbook.adsotrans.com
http://www.newsinchinese.com
Basically, what we have is a language learning site for Chinese. What separates it from everything else out there is the high degree of text-centric automation and interactivity. Rather than treating the Internet as a platform for delivering static text/audio lessons, we are using drupal to create a platform that makes it easy to annotate and display Chinese texts using the Adso system as our annotation backend. The idea is to shift language learning from a text-based to a word-based activity. Drupal allows us to integrate things like one-click vocabulary building, flashcards and games. It allow users to control display options, re-annotate content on the fly and also supports a variety of different kinds of content (language lessons, manually annotated texts, machine annotated news articles, etc.) on the same site. There are some demo video files of some of the advanced functionality here:
http://textbook.adsotrans.com/?q=node/94
Unless you are scrambling up the steep slope that is the Chinese language, none of this probably seems important. Flashcards and games, sure, but who cares about the other stuff? Well... even disregarding everything else, something as simple as flexible control over display options is tremendously important. Maybe a user wants to be reading pinyin (romanized Chinese) lyrics when listening to music, and reading traditional characters when studying Qing dynasty texts. Drupal lets us empower users by adding a simple database-driven output filter. This is insanely useful. Beginner students love it because they no longer *need* to learn characters when starting to learn the language. And it saves instructors time because you only need to annotate a text once. There is no need to create separate versions of texts to cater to different students.