An up-to-date overview of free software and its makers

Projects on the Move

© parisod@snowmelody, Fotolia

© parisod@snowmelody, Fotolia

Article from Issue 97/2008

The free high-end game, Yo Frankie, in which players steer a flying squirrel through a colorful 3D world, is almost finished. KI Research still faces major issues, but FreeHAL, a dialog program, gives users a behind-the-scenes look at the current state of affairs.

Linux is not just a server operating system: Major movie productions, such as Shrek and Madagascar, chose the free Linux operating system. Movie artists have already released a number of noteworthy shorts created with the 3D Blender program [1][2].

After producing two movies of their own, the Blender team is now working on a game based on Blender technology [3][4]. The movie was named Yo Frankie (Figure 1), in line with the vote cast by the Blender community [5]. A Blender variant dubbed Apricot was created especially for the purpose.

In Yo Frankie, the player slips into the role of a flying squirrel, which you might be familiar with from the movie Big Buck Bunny. From an ego-shooter perspective, the squirrel jumps and runs through the three-dimensional scene, collecting bonuses and nuts, which it can use for self defense along the way.

The ambitious project was launched at the beginning of this year, and now the team has released the first playable demo for Linux. When it's finished, Yo Frankie will also run on Windows and Mac OS X. Yo Frankie is released under a free license and based on the free 3D development kit Crystal Space [6]. Zero Install [7] helps users download the preview version [8]. The Blender file with the 3D world and its inhabitants is also freely available and can be investigated and modified with the 3D program (Figure 2). Check the Yo Frankie homepage for the latest updates about the the release [5].


Can machines think? Computer scientists have been investigating this question from the beginning. Alan Turing, a pioneer of computer science, invented a method of answering this question back in 1950. A human uses a keyboard and screen to put questions to a counterpart they cannot see or hear directly. One of the partners is a human, and the other a machine. If the person posing the questions is unable to distinguish the computer from the human, the machine has passed the Turing test and is considered intelligent.

At the time, Turing forecast that it would be impossible to distinguish between humans and machines in 70 percent of all tests by the year 2000. Although computer pioneers had this optimistic view of artificial intelligence, scientists have since come to terms with many setbacks. Critics of the Turing test maintain that conversation is just one aspect of the many capabilities required for intelligence. Although reality in the year 2008 lags well behind Turing's expectations, some progress is being made in the field of computerized dialog systems, which is the focus of the FreeHAL project [9] (Figure 3). The project won the "most popular program" category in this year's annual Chatterbox Challenge [10].

Three Steps

From the computer's point of view, a dialog with a human consists of three steps, which are continually repeated. First, the computer needs to understand the input from its conversation partner – a question, for example. Then it needs to find the right answer. Finally, it has to output the answer in natural language.

FreeHAL uses various standardized speech processing components to understand the input. A stemmer identifies word stems, thus allowing the system to identify the various forms of a word. A part-of-speech tagger identifies the word's grammatical function – for example, distinguishing between nouns and verbs – and its role in the sentence. On top of this, statistical methods, such as the Hidden-Markov models, help to interpret statements.

FreeHAL has a limited knowledge base; however, it learns from statements made by its human counterparts. It stores terms in a semantic network, which maps facts in a logical way. This approach allows the computer to draw conclusions and, thus, realizations that the program has made itself. An SQLite database is used as the back end.

When a human asks a question, FreeHAL searches its database for an answer, which it then outputs in natural language. FreeHAL normally answers in writing, but it also has an acoustic language output feature, which relies on the operating system-independent MPlayer for audible output and an online system by the FreeHAL maintainer Tobias Schulz for language synthesis.

FreeHAL is a client-server program: The server, or kernel in FreeHAL-speak, handles input and output. Various interfaces are available for user communications, including a Qt-based GUI and a text client, both of which can contact a local or network-based server. This means that multiple users can train a single FreeHAL installation.

Also, a PHP interface is available to embed the program in websites. The FreeHAL homepage uses this interface to give visitors a preview of the program's capabilities.

The FreeHAL online demo learns more and more every day and already knows more than 800,000 German terms and almost 200,000 relations. FreeHAL does speak English; however, the online demo only understands 20,000 English words and 80,000 relations.

Old Roots

FreeHAL has been around since 2006, although the project was called JEliza until May 2008. The name was a combination of the words Java, the programming language chosen by the developers, and Eliza, the name of one of the first dialog programs written by computer scientist Joseph Weizenbaum back in 1966. In the meantime, the FreeHAL programmers have migrated to the Perl programming language, which makes the "J" in the old name redundant. FreeHAL is now a reference to the HAL 9000 computer on board the space ship Discovery in Stanley Kubrick's movie 2001: A Space Odyssey.

Instead of the psychological issues with which its fictive role model had to contend, FreeHAL is facing more fundamental problems – mainly at the language level. Like any software of this kind, FreeHAL does not always interpret or generate natural speech correctly. Even with sentences that seem simple from a human point of view, the program easily can confuse word order, tense, number, and case so that the content is often nonsense.

On top of linguistic difficulties, to which science often does not have any answers, are programming issues. When learning new facts, the program can drop off into infinite loops, which are impossible to resolve without deleting the current database. Crashes are also an issue, but for the main part, FreeHAL is fairly reliable.

If you are interested in supporting FreeHAL, the developers invite you to join the FreeHAL@home project as a starting point. The project relies on BOINC [11] to leverage dormant CPU cycles on participating computers in an effort to extend FreeHAL's semantic network. The homepage also lists a number of bugs that need to be fixed and calls on developers to help – some knowledge of linguistics could be useful, although this is not always a requirement.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Everyman's Game: "Yo Frankie"

    The "Yo Frankie" game is now available for free download in two versions, for Blender and Crystal Space.

  • Free Software Projects

    Free software enjoys an excellent reputation in the field of 3D graphics. In addition to Blender, other projects stand out: MakeHuman creates realistic 3D humans, and Art of Illusion – with its intuitive interface – lets users enter the world of animated movies.

  • Sheep-Throwing Marsupial in the "Yo Frankie" Game

    If you've ordered the DVD, you're probably already busy throwing sheep and beating up rats in a lovely virtual countryside.

  • Free Software Projects

    Free software at the movies: Thanks to projects such as Blender and Synfig Studio, fans of animated movies now have the right choice of tool. The "Social Media Guide" suggests how to improve the marketing of free software projects on the web.

comments powered by Disqus