From nobody@digitalkingdom.org Fri Jun 23 03:42:52 2006 Received: with ECARTIS (v1.0.0; list lojban-beginners); Fri, 23 Jun 2006 03:43:01 -0700 (PDT) Received: from nobody by chain.digitalkingdom.org with local (Exim 4.62) (envelope-from ) id 1Ftj7b-0007MU-Bg for lojban-beginners-real@lojban.org; Fri, 23 Jun 2006 03:42:45 -0700 Received: from mail.foraynewmedia.com ([69.55.237.146]) by chain.digitalkingdom.org with esmtps (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA1:24) (Exim 4.62) (envelope-from ) id 1Ftj73-0007Lj-7Q for lojban-beginners@lojban.org; Fri, 23 Jun 2006 03:42:40 -0700 Received: (qmail 13851 invoked from network); 23 Jun 2006 10:42:02 -0000 Received: from 82-36-198-31.cable.ubr01.sutt.blueyonder.co.uk (HELO ?10.0.1.99?) (jimdabell-jim@82.36.198.31) by mail.foraynewmedia.com with EXP1024-RC4-SHA encrypted SMTP; 23 Jun 2006 10:42:02 -0000 From: "djim.dyBEL." To: lojban-beginners@lojban.org Subject: [lojban-beginners] bridi training web application Date: Fri, 23 Jun 2006 11:46:17 +0100 User-Agent: KMail/1.9.3 References: <449A98A7.9090609@perpetuum-immobile.de> <449B012C.3030500@perpetuum-immobile.de> In-Reply-To: MIME-Version: 1.0 Content-Disposition: inline X-Length: 7681 X-UID: 31 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <200606231146.18285.jim-digitalkingdom.org-lojban@jimdabell.com> X-Spam-Score: -2.6 (--) X-archive-position: 3297 X-Approved-By: jim-digitalkingdom.org-lojban@jimdabell.com X-ecartis-version: Ecartis v1.0.0 Sender: lojban-beginners-bounce@lojban.org Errors-to: lojban-beginners-bounce@lojban.org X-original-sender: jim-digitalkingdom.org-lojban@jimdabell.com Precedence: bulk Reply-to: lojban-beginners@lojban.org X-list: lojban-beginners 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.