WeSay on the Eee 900

August 26th, 2008

The Eee is, so far, the best selling of the new wave of “4P” computers; laptops which are characterized by low Price, adequate Performance, portability, and low electrical Power requirements.  Now, this is no OLPC; it costs around $500 and isn’t as rugged. It does not aim at the same ultra-low power usage. But it does have two things over the OLPC today: you can buy them on Amazon and you can get them with Windows XP.  (Yes, sadly we’re still waiting on some open source pieces to mature on the Linux side before we can get WeSay running on the OLPC and other Linux boxes).

So, how would WeSay run on this relatively slow (900 Mhz), relatively low-wattage machine?  Getting Windows installed and running, the Eee felt very sluggish.  Because of delays, I found it easy to make errors when using a web browser.  Very slowly, I grabbed .net 3.5 sp1, then WeSay build 1451.  Very slowly, I ran the installer.  By this time, I wasn’t expecting to have a happy WeSay experience.

To my surprise, WeSay runs GREAT on this box! Changing records, finding words, and bringing up new tasks were all pretty snappy.

WeSay on an Eee PC 900

Note: I only did a quick walk-through using the sample data, so please don’t go out and purchase a hundred Eee’s to run WeSay based on this blog post.

Using WeSay from other applications

January 16th, 2008

Recently, we were asked to make a way for a user of a translation program to make use of WeSay, without leaving the program they’ve been trained on. The native speaker-user will want to:

  • See which words are missing from the dictionary, and add them along with a definition.
  • Jump into the entry screen for a word in WeSay to do more advanced editing.
  • Point to a word and see a list of similar words they might choose instead (thesaurus lookup).

A linguist working with the group will want to:

  • Click on an unfamiliar word and see the full dictionary article for it.

If the language has any affixation, both users will need to be able to:

  • see a list of entries, ordered by how similar their spellings are to the word be investigated.
  • find words based on their inflected/derived forms, not just by the citation form in the dictionary.
  • add variants to the word so that it is clear that this form is covered by the dictionary, and make it easier to lookup next time.

The first round of this work is now available for other application developers to use (the italicized bullet items above will come in some future version).

To help developers add these features to their programs, I’ve built a little sample application so they can see what’s possible and how to do it. Here’s a little crummy video showing it:

[kml_flashembed movie="http://www.wesay.org/downloads/movies/dsDemo/dsDemo.swf" height="464" width="512" scale="noborder"/]

A few technical details for developers

Currently, I’ve implemented support for .net applications to make use of these services. But support via any language, via xml-rpc, should be easy to add when needed. All .net applications need to do is get our Palaso library and use the DictionaryAccessor class. You currently need to tell it where on the user’s machine to find WeSay, and where the dictionary is that you’ll be accessing.

Here’s some code to show what it takes add this ability to a .net application:

Getting some HTML of matching entries to show in a WebBrowser control

DictionaryAccessor dictionary = new DictionaryAccessor("c:docsnoosupunoosupu.lift", "c:program fileswesaywesapp.exe");

string[] forms;

string[] ids;

dictionary.GetMatchingEntries(writingSystemIdForWords, "foobar",

       FindMethods.Exact, out ids, out forms);

string html = dictionary.GetHtmlForEntries(ids);

 

Adding a new word

dictionary.AddEntry(writingSystemIdForWords, wordBox.Text,

                    writingSystemIdForDefinitions,definitionBox.Text,

                    writingSystemIdForWords, exampleBox.Text);

Ok, so you get the idea that this will be a very easy service to add to your .net program.

A plug here for .net 3’s WCF (Windows Communication Framework), which made implementing this a very nice experience.

Update:  This has now been re-written to use cross language, cross platform “XML-RPC”messaging.  So programs written in non-.net languages can now participate.

Add Semantic Domains using WeSay

November 19th, 2007

bilumbaby2 WeSay now lets the user edit the semantic domains of a sense from the Dictionary Browse and Edit tab, as an alternative to gathering words using the Gather By Semantic Domain task.

To see how this works, let’s add some of the domains that would apply to a Papua New Guinean bilum

2007-11-19_13-26-38-306

To look for a domain, we click in a box and start typing. First, we start typing "crafts" and see a domain matching that word:

2007-11-19_13-10-48-146

Next, since bilums are used to transport firewood, we type that in.  A promising domain appears, fuel.  But is that right? We don’t want to say that bilums are something you burn.  Happily, when we point to the word Fuel, WeSay displays a description confirming that domain is also for things you use in collecting fuel.

2007-11-19_13-16-51-764

Finally, since at least one of my kids has slept in a bilum, we should find a domain for that.  Here we’ll pretend we know the domain number, and just start typing that until we see Bed:

2007-11-19_13-18-53-958

I had fun finding domains for a few words. I hope you do too.