Using SOLID to convert to one-ps-per-sense format

Author John Hatton | 27.06.2009 | Category FLEx, Dictionary, Solid

This week saw another colleague here in Papua New Guinea deciding to move his Toolbox dictionary to FLEx.  He had a fair amount of entries like this:

\lx ba
\ps n
\sn 1
\ge brother-in-law
\de brother-in-law: reciprocal term between wife’s father’s brother’s children and father’s brother’s daughter’s husband
\sn 2
\ge brother-in-law
\de brother-in-law: reciprocal term between sister’s husband and wife’s siblings
\sn 3
\ge in-law
\de reciprocal term between father’s sister’s husband and wife’s brother’s child
\dt 18/Sep/2000

These are all nouns, and he identifies this just once, at the top of the entry.  That counts as good MDF.  The problem is, FLEx import doesn’t handle this situation.  In fact, a recent import I did left us with over 60 cases where the \ps was turned into its own sense, followed by all the actual senses which were left with no grammatical category. Neither I nor my colleague caught this until she had already been working in WeSay on the new data for too long to go back and repeat the import. Yuck.

To prevent this, we need to move that \ps down to under the \sn, and then copy it for all remaining senses which lack a \ps.  As of SOLID version 0.9.319, we can now do this:

image

As with all these quickfixes, I use TortoiseHG (mercurial) so that I can look at exactly what changed, verifying that nothing was messed up. Here’s what quickfix did to the above record, as seen from TortoiseHg’s Commit tool:

2009-06-27_09-52-06-134

More control over “missing info” tasks

Author John Hatton | 22.06.2009 | Category WeSay

WeSay has always had Tasks which would show you just the words that needed some more information in a particular field.  However, the selection of which entries to show was pretty blunt:  if the field had an empty slot in any of its multiple writing systems, the task would show that entry.  This meant that you couldn’t easily set up WeSay for a user who, for example, just wanted to add vernacular definitions where English ones had already been entered. 

In another case, we might want to set a user up to add voice recordings of example sentences. But the task should only show example sentences where someone had previously entered in the example text.

The latest development release (0.5 build 2000) addresses this.  When you first create a project, tasks are configured to have the same behavior as before: an entry will be chosen if *any* of the writing systems assigned to that field are empty.

image

You can now limit the task to filling in the vernacular (gaw, in this example):

2009-06-19_14-22-37-250

In addition, we can limit the task to only those entries where some other writing system has already been filled in:

2009-06-19_14-21-11-809

Thanks, Mark, for taking the time to submit this request.  We would appreciate any feedback you can give us on this feature.  Does it work well for you?

The obvious next step would be to add a way make duplicates of some tasks, so that you could have both an “Add Examples” and an “Add Example Recordings” task.  This is now possible by editing the .wesayconfig file in a text editor.  If you want to know how, set me an message (hattonjohn at gmail).  That will tell me how much demand there is for it, and if there’s enough, we’ll make it easier.

WeSay, Palaso, and Linux

Author cambell | 29.05.2009 | Category OurWord, Linux, WeSay

Feeling in somewhat of a reflective mood I thought I’d write about the current state of our work with Linux, and have a look at where we hope to go in the next few months.

Over the last few months (er year) we’ve been working on getting our applications to run on the Ubuntu Linux platform.  We are hoping that this will enable our applications to be well used on the new breed of net books and other lesser specified machines.  The main work has been centered around the mono project which enables .Net Winforms applications (most commonly a Windows technology) to run on Linux.  So, where are we now?

  • The http://packages.palaso.org repository has been launched to make our software available to you all.
  • WeSay 0.4 (stable) is available from packages.palaso.org.  Install details are on the WeSay Wiki on  projects.palaso.org.  This is an early release and has a number of issues that we know about.  Have a look at the WeSay bug tracker for further information.
  • OurWord is available from packages.palaso.org.  Install details are on the OurWord Wiki on projects.palaso.org.  Again this is an early release, there are a number of visual issues which are being tracked on the OurWord bug tracker.
  • Automatic USB stick detection now works.  That means in WeSay, you can click backup and expect it to wait for you to put a USB stick into your computer and the backup will ‘just work’.

There are a few significant issues that we’ve noticed and we’re working on fixing these up over the next month or two.

  • Keyboard switching doesn’t work.  In WeSay we make extensive use of keyboard switching.  If you’re editing a field that’s say IPA they keyboard should be set to IPA for you.  When you tab to another field with a different writing system the keyboard should change automatically.  We are fixing this by contributing to the SCIM project.  We’re extending it’s capability to support our Keyboard Switching component.  We expect to have this available very soon.
  • Non Roman Script rendering using Mono doesn’t work.  We’re fixing this in Mono, by re-writing large chunks of the Text Control.  This will take some time to filter through and become available - perhaps some time in the next three months.
  • The WeSay development branch (0.5.x) doesn’t currently work with Mono.  We’re working on bringing that up to date so that we can release on Windows and Ubuntu simultaneously.

Once we’ve finished these issues, we’ll be back to focusing on core features of our products rather than enabling Linux to run them.  At that time we’ll leave the improvement of Mono and Linux to others.

Well, enough reflecting.  Time to go get a coffee and carry on with the work.

Further details can be found on our various projects at http://projects.palaso.org

More Quick Fixing For SOLID

Author John Hatton | 16.04.2009 | Category Solid

Yes, I’m WALLOWING in a swamp of Standard Format files this week.  Soon we’re doing a Lexicography workshop here in PNG, and in preparation, several of the participants are wanting to switch their 20 year-old dictionaries to FieldWorks Language Explorer.  I’ve offered to get their old SFM dictionaries in, and, Boy am I glad we have SOLID. Since we find it hard to prioritize work on SOLID over our other projects, like WeSay, I decided I should stay sane through this awful job by hacking on SOLID a bit as I go.  I wrote about my first steps yesterday.  Today, with version 0.9.302, we have a few more nice things:

  • Improved QuickFix: MoveUp capability to handle multiple root targets, not just \lx
  • Do alphabetic sort on markers when rebuilding the list.
  • Add “remove empty” quickfix
  • Ask user about saving when they exit.
  • Show marker that is the focus of the filter in bold, to make them easier to find.

Here’s a screenshot of the QuickFix dialog at the moment… I know it’s ugly, but I’m aiming at making my life easier here…

2009-04-16_17-28-40-555

And

2009-04-16_17-29-14-208

This last one might make more sense if you only specified which markers to *not* delete.  What would they be?  \sn? \rf?  David Coward, do you read this blog?

You may notice, there’s little rhyme or reason to the default options here… it would be a nice contribution if someone in the community would compile a good set for us.  Send ‘um  in, and we’ll add it to the program.

New Quick Fix for SOLID

Author John Hatton | 15.04.2009 | Category Solid

One of the most painful parts of cleaning up a dictionary is this kind of situation:

\lx foo

\ps n

\ge blah

\bw German

\gr wanem

Here, the problem is the \bw(borrowed word) is an entry field, but it’s sitting in the middle of the sense fields.

SOLID 0.9.297 adds a minimal “quick fix” which can grab these kinds of fields and pull them up to the top of the entry.  You specify the marker, and the quick fix does it for all the entries.  As the quick fix dialog box says, this is dangerous, and I personally use it only because I also use Mecurial to take snapshots of my changes to files in between actions like this, in case something goes wrong.  But that’s a whole ‘nother post…

Other changes:

  • You can now click on the “count” table header to sort by marker frequency.
  • Uses the new Palaso system for defining writing systems.
  • Removed the mapping to FLEx, since nowadays, there’s no point.  If you want to use FLEx, either directly import the cleaned-up MDF (preferred), or export a LIFT file and import that into FLEx.

Art Of Reading comes to WeSay

Author John Hatton | 08.04.2009 | Category WeSay

Illustrations always cheer up an otherwise drab dictionary.  Until now, you had to put in a lot of work to find or create illustrations, get the rights to them,  and hook them into your dictionary.  With the latest release of our 0.5 line (build 1917), adding illustrations is a lot more fun.

First, let’s have a visual tour of the new feature.  Then I’ll explain about “Art Of Reading”.

To add an illustration, you just go to the Picture field and click “Search Gallery…”:

Search Gallery Button

 

(Notice that the old “Choose Image File…” is still there.  Eventually, we should make that button hidden by default, as it violates our desire to not send the WeSay user into the confusing depths of the file system.)

 

WeSay looks in the English meaning and uses it to search the gallery for matching illustrations:

Search Dialog

 

If that doesn’t show you the pictures you’re looking for, you can change the search terms and try again.  Once you find the one you want, you double click on it.  This closes the dialog and inserts the illustration:

 

Final Result Showing Selected Illustration

 

Art of Reading 2.0 is a CD put out by SIL; ask around, someone near you may already have it.  If not, you can order it here.  From that page:

International Illustrations is the second artwork CD-ROM produced by the International Literacy Department of SIL International. This expanded, enhanced collection is the follow-up to Art of Reading 1.0 and contains over 11,000 indexed images collected from SIL and national artists around the world. Searchable by keywords.

Black and white line drawings (in compressed TIF format for Windows and Mac) are suitable for use in a wide variety of literacy materials, newsletters, bulletin board displays, and other cultural awareness materials.

Images come from Brazil, Cambodia, Cameroon, Canada, Colombia, D.R. of Congo, India, Indonesia, Kenya, Mexico, Nigeria, Papua New Guinea, Peru, Philippines, Senegal, Sudan, Thailand, USA

I’m told there’s a version 3 in the works, which will be a DVD with even more illustrations and an Indonesian index.  If/when anyone produces indices for French, Spanish, Portuguese, etc., tell us and we’ll add them to WeSay, too (I suspect you could use a computer translator to generate something useful, quickly). Notice, some of the description of how the package works is irrelevant.  The included software is too unwieldy for a WeSay audience.  WeSay bypasses that software, keeping the process as simple as you see above.

Get the latest WeSay here.  As always, we rely on your feedback here on the blog, on the Google Group, or (if you have a problem) via email: issues at wesay.org.

Thanks to René van den Berg for inspiring this new feature. 

Technical Details

  • Instead of leaving the CD in the machine, I recommend you copy it to the user’s hard drive.  On Windows, WeSay will look for it at “C:\Art of Reading”.  You don’t need anything but the “images” folder, which would be at “C:\Art Of Reading\Images”.  When we ship this feature for Linux (soon), we’ll update this page with the corresponding location there.
  • I do not know if WeSay’s index of this package works with Art Of Reading 1.0.  It works with 2.0, and should work fine for the forthcoming 3.0.
  • If you have a different image library which you think would be widely used, let us know. It would be great to have one which could be downloaded for free.
  • This feature is the latest (and last) major addition to WeSay 0.5, our “development” release.  Projects created or edited in 0.5 cannot be opened with WeSay 0.4, our “stable” release as of the date of this posting.

WeSay: What’s it all about

Author cambell | 13.03.2009 | Category Dictionary, WeSay

To celebrate the opening of the new Linguistics Institute at Payap University the Palaso team made a video.  It’s a fun introduction to ‘WeSay’ our dictionary making software.

Collecting audio with WeSay

Author John Hatton | 07.01.2009 | Category WeSay

For a long time, I’ve had the crazy idea that audio should be just another kind of “writing system”.  I’m happy to say that now, crazy or not, you can set up a project to like this:

 2009-01-07_15-59-41-282

Notice the circles there?  They’re trying to be unobtrusive.   When you move the mouse near, they light up:

 2009-01-07_16-00-49-061

As long as you hold the mouse button down, your voice is recorded.  Like a walkie-talkie.  Then, the symbol changes:

2009-01-07_16-02-22-838

and when you go near that, you have a play and a delete button:

2009-01-07_16-03-25-203

How is this useful?  For one thing, as electronic dictionaries become more common, wouldn’t it be nice to hear the word or example sentence?  This might also be helpful for language learning, by gleaning the sounds and dictionary file to create listening exercises. 

How to set it up

In the configuration tool, go to Writing Systems and make a new one called “voice”.  Then set the “is audio” switch to “true”. 

2009-01-07_16-13-24-921

Now go the Fields section, and tick “voice” next to any field you want to include this voice capability.

2009-01-07_16-13-51-746

Note, you could have multiple voice writing systems, carrying different accents, genders, whatever.

Please, let us know if you have a chance to play around with this, and any experiences you have using it with a native speaker.

This is currently available in our 0.5 line, for Windows only.  Linux could follow soon, especially if we hear from you.

Technical Details

All sounds are saved as .wav files under a new “audio” subfolder of your WeSay project.  Their names are a bit unwieldy at the moment, largely to keep the code simple as long as this is still a proof-of-concept.  Files are named as the form of the word + a time stamp, so that multiple recordings in the same word (or homograph) don’t step on each other.

Single Click Printing

Author John Hatton | 07.01.2009 | Category WeSay

In my last post, I mentioned that three levels of printing WeSay dictionaries are taking shape:

  1. Useful for everyday WeSay users, with no training.
  2. Good enough for final publication of many projects, with a little training or computer savvy.
  3. Powerful enough for any project, perhaps needing a specialist.

In that post, we covered #2, at least for Windows users. Now I’m pleased to announce a big step towards #1:

2009-01-06_14-20-20-603

Click this, and a few moments later your PDF reader (e.g. Acrobat) opens with a dictionary:

image

Our aims for this feature are limited:

1) provide a Linux (as well as Windows) way to get simple printouts.  (Lexique Pro is Windows only).

2) provide a very simple way to get printout when no computer-savvy advisor is available to run  a more extensive set of applications (like Lexique Pro + Microsoft Word).

Currently, the fields that this outputs are limited to:

  • Headword (from Lexeme Form and Citation Form).  Multiple writing-system headword are supported.
  • Definition
  • Part of Speech
  • Top level senses (not sub senses)
  • Example sentences, and translations of them
  • Illustrations, auto-captioned to the headword of the entry
  • Cross references

We can easily add to the capabilities here, at you request. But we may be resistant to any enhancements which involve wizards, dialogs, etc.  For that kind of control, you really need to use Lexique Pro, FLEx, or MDF.  In other words, the request “I need to get borrowed words” would be implemented quickly, whereas “I want control over the placement of the illustrations” will not.

Future Work

Depending on feedback from you, gentle reader, we could do more interesting things here.  These include

  • automatically ordering pages for booklet  printing
  • a title page
  • a section of words categorized by semantic-domain
  • a reversal section
Technical details

As with Lexique Pro export, WeSay begins by producing a PLIFT file, which is a simplified copy of your LIFT dictionary file.  It then converts this to html (like web pages use), and produces style sheets (industry standard css3 ones).  Finally, it uses a terrific page-layout engine named PrinceXml to produce the pdf.  The stylesheets are:

  • autoLayout.css
  • autoFonts.css
  • customLayout.css
  • customFonts.css

If you are so inclined, you can edit the to “custom” ones. This has the effect of overriding the styles in the “auto” ones.  In this way, the technical user has full control.  You can also setup the dictionary the way you want using FieldWorks Language Explorer’s dictionary export function, which gives you extensive control over many aspects of the layout. WeSay’s html uses the same style names as FLEx, so you can grab the css that FLEx creates and use that for your “customLayout.css” when using WeSay.  If you do any of this kind of thing, please let us know.  We really need to know what people are using, and what they aren’t.

Have you read this far? Leave a comment.  I’m not clear if folks in the language documentation community actually read blogs.

Open In Lexique Pro

Author John Hatton | 06.01.2009 | Category WeSay

WeSay really wants to focus on gathering data.  It really doesn’t want to become a full-powered dictionary layout system.   Ideally, there would be an invisible, friction-free means of getting a simple dictionary printout at the click of a button, and customized one with a couple clicks.  And perhaps a 3rd, ultra flexible, standards based, high-end dictionary publisher where that is called for.

So we’d have

  1. Useful for everyday WeSay users, with no training.
  2. Good enough for final publication of many projects, with a little training or computer savvy.
  3. Powerful enough for any project, perhaps needing a specialist.

These three scenarios are all now in the works from various SIL software teams, and I’ll blog about them as they become available to WeSay users.

Today, I’m please to update you on #2, the growing interoperability of WeSay and Lexique Pro.  Lexique Pro is a high-regarded, free dictionary tool for MS Windows.  From the LP web site:

Lexique Pro is an interactive lexicon viewer and editor, with hyperlinks between entries, category views, dictionary reversal, search, and export tools. It’s designed to display your data in a user-friendly format so you can distribute it to others.

Starting with version 3, LP can directly read the LIFT-standard xml files which WeSay uses. No need to go through the “standard format” or “MDF” first.

Starting with version 0.5 (our current development track), opening your dictionary with Lexique Pro got really easy:

2009-01-06_13-49-49-127

 

You can get the latest WeSay here.  Lexique Pro 3.0 is currently a beta, available here.  With the 31 Oct beta of LP, at least, there are a number of things still to be worked out, but I expect we’ll see first-rate LIFT-based printing in LP this year.

Technical details

When you click this button, WeSay actually writes out a modified form of your LIFT file to the “exports” subdirectory of you WeSay project.  While it is still compliant LIFT, some preprocessing is done to help printing programs show the right things.  For example, homograph numbers are computed, headwords calculated, and any fields you have turned off for the current user are stripped from this file.  We refer to this kind of file as “PLIFT” for “publication” lift.