[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lojban-beginners] bridi training web application



On Thursday 22 June 2006 21:59, Matt Arnold wrote:
> Bruce Webber is creating the software, which is called Karda. Bookmark
> this page to track and participate in the project:
> http://www.karda.org/
>
> Karda is in Python and will eventually be a web app. We would really
> like you to assist Bruce in programming it!

I wrote a similar web application for my personal use that generates simple 
Lojban bridi and their English equivalents and asks you to translate from 
English to Lojban.  I'm using the temporary name Jbocpes ({lojbo cpedu} == 
{jbocpe}, "Lojban-asker" + {s.} to make a name).  Suggestions for a better 
name are welcome.

It's not very smart (i.e. it doesn't parse what you type, it generates the 
most straightforward Lojban representation and expects you to type it 
exactly), but it's helped me practise the simple stuff and I'm gradually 
improving it as my Lojban knowledge grows.  The flashcard approach of rote 
memorisation doesn't really work for me, but interactive stuff seems to help 
me a lot more.  YMMV.

Anyway, Paul Vigo's email earlier in the week made me realise that it might be 
useful to other people as well, so I made it multi-user and added a 
registration system.  Feel free to sign up and use it as much as you want.  
The current vocabulary is limited, but I'm adding more as time goes by and 
contributions are welcome.  Just don't expect too much, I'm a beginner in 
Lojban and I haven't spent much time on this :).

http://www.jbocpes.zenodotus.net/

It's only been tested in Firefox 1.5 and Opera 8.5 so far.  I should note that 
I have no intention of working around any of Internet Explorer's numerous 
bugs, so if it doesn't work for you in IE, then use a better browser.  I have 
a policy of only supporting Internet Explorer when I have no other choice.  I 
will, however, try and fix bugs that stop other browsers from working 
properly.

I'd appreciate it if some of the more experienced Lojbanists would give it the 
once over to see if I've missed anything glaringly obvious.  In particular, do 
I need to change any of the 'le's to 'lo's?  From reading the wiki, I don't 
believe so, but it's hard for me to tell when the tutorial documents are out 
of date and the wiki talks about things I haven't learnt yet.

On a tangent: is Lojban for Beginners dead?  The website says it hasn't been 
updated in a few years, and if it doesn't describe things like la/le/lo 
properly, that's a problem, isn't it?  I'm learning from that at the moment, 
are there any other things I should watch out for?

These are some sample sentences Jbocpes generates, with their templates:

Christine doesn't like Frank's car.
la kristin. na nelci le la frank. karce
nelci (Negated): %(person_1)s doesn't like %(object_2)s.

Jim meets the woman in Harry's office.
la djim. penmi le ninmu le la xaris. briju
penmi: %(person_1)s meets %(person_2)s in %(place_3)s.

Anne writes the question down.
la .an. ciska le preti
ciska: %(person_1)s writes %(writable_2)s down.

Does Ben love Gina?
xu la ben. prami la djinys.
prami (Binary question): Does %(person_1)s love %(person_2)s?

Frank doesn't think Anne is beautiful.
la frank. na se melbi la .an.
melbi (Negated, 'se' conversion): %(person_1)s doesn''t 
think %(person+female_2)s is beautiful.

Anne thinks Frank is handsome.
la .an. cu se melbi la .frank.
melbi ('se' conversion): %(person_1)s thinks %(person+male_2)s is handsome.

(Is the cu necessary or optional when se is used?)

Quick hint: Since Lobjanisation of names is a matter of taste in many cases, 
I've just picked how I would do it.  If you hover the mouse pointer over the 
English name, your browser should pop up a tooltip telling you what I've used 
as the Lojban equivalent.

Jbocpes is built around a simple tagging/templating system, so it's easy to 
expand its vocabulary, although it will be difficult to add more complicated 
sentences because of the lack of parsing.  It's still useful for practising 
the simple stuff and vocab though.

Apart from the special case of "ownable", all the other tags are handled 
generically.  To expand vocabulary, I just assign one or more tags to a gismu 
and provide an English noun equivalent, and it automatically shows up as 
sumti.  To increase vocabulary further, I can provide a template in the format 
above, and all the sumti get filled in automatically.

For example, because I already have the template:

bajra: %(animal_1)s runs.

...I can assign the [animal] tag to {gerku} and {mlatu}, provide "dog" 
and "cat" as their English noun equivalents, and the system automatically 
generates "The dog runs." and "The cat runs." as sentences to be translated in 
the quizzes.  Adding other animals is just as easy, you just assign [animal] 
and "lion" to {cinfo}, and it goes straight in.  And when you add the 
template:

sisti: %(animal_1)s stops.

..all the animals you've previously tagged start showing up in those sentences 
too.

I'm planning on expanding it to include other types of questions:

* Show a new gismu with its place structure and ask the user to translate a 
sentence for that gismu.

* Show the user a place structure definition and ask the user to pick the 
corresponding gismu from multiple choices.  (This is what my previous Jabber 
bot called "Lojbot" did.)

* Show the user a place structure definition and asking the user to type the 
corresponding gismu.  (I'm currently using kwordquiz for this.)

* Show the user a picture, asking them a question about it in Lojban, and 
expecting an answer in Lojban.

The last one sounds hard, but I don't think it will turn out to be.  You can 
find all sorts of Creative Commons-licensed photos on Flickr and similar 
places, and one photo can have multiple questions associated with it.  For 
example, just one photo of a man standing by a car can be associated with at 
least:

What colour is the car?
Is the car black?
Is the car red?
Is the car [insert colour here]?
Is the man standing?
Is the man sitting?
Is the man inside the car?
Is the man next to the car?
Is the man outside the car?
How many men are in the photo?
How many women are in the photo?
How many cars are in the photo?

...and so on.  Theoretically, there could be an interface where a user could 
upload a photo, tell Jbocpes things about the photo in Lojban, and then 
Jbocpes could use that information to ask questions.  Although that's 
pie-in-the-sky stuff for the moment, if it was restricted to simple stuff it 
could work.  At the very least, everything it was told about a photo could be 
turned into a legitimate question by merely prepending {xu}, and it wouldn't 
have to understand anything at all (although the answer to the question would 
always be yes!).

My general idea is that it will offer a mix of advanced questions for the 
gismu you've learnt, and simple questions for the gismu you don't yet know.  
Once you've answered simple questions for a particular gismu enough times, 
that gismu is marked as learnt, it asks you harder questions for that gismu, 
and it adds a new gismu to the unlearnt pile.

I'll clean up the code and make it available when I find the time, but it's 
written in Python using mod_python, Kid and PostgreSQL, so the number of 
people who'll be able to use the code themselves is limited (most web hosts 
don't provide these things).

On the other hand, the logic is fairly well separated from the data storage 
and the web front-end, so it wouldn't be too hard to substitute another data 
storage implementation and front end to build a desktop application or even 
something for the mobile phones/PDAs that support Python.

Perhaps Karda and Jbocpes could share code or data.  For instance, if Karda 
was able to read the Jbocpes data, it could offer its users the ability to 
select what type of gismu they want to learn next, e.g. "I want to learn the 
gismu for all the animals.", or "I want to learn the gismu for all the 
colours."

-- 
djim.