m17n-list
[Top][All Lists]
Advanced

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

Re: [m17n-list] m17n Based Visual Input System: bn-disha


From: Sayak Sarkar
Subject: Re: [m17n-list] m17n Based Visual Input System: bn-disha
Date: Wed, 11 Jul 2012 00:22:11 +0530

Hi,

Since my last post, I've been working quite a bit upon improving the Conditional logic based system I had previously created, and have successfully got the mim file to run within the m17n-edit system.

However, one major issue that I'm still facing with this input system is that the consonants do not merge with the three pre-base matras (i.e.: "ি" Unicode - 0x09BF, "ে" Unicode - 0x09C7 and "ৈ" Unicode - 09C8) in a manner that is expected. I'm guessing this may be either due to some behavioural characteristic of the m17n-db system or maybe there is a need to intrinsically define a join state within the mim layout code. As I've a limited knowledge of the internal working of the m17n-db system, I tried working on the second assumption. However, I've not yet been able to get the join logic working in a way that is expected.

In the meantime I've also been working on a Combination-based input mapping system for the above implementation, and have been quite successful in getting it working. I believe that this alternate implementation (i.e. bn-disha-dev.mim) file is functionally complete, as it satisfies all the requirements of the Visual-Based Input system. As such, I would like to know whether such a mapping based input system is acceptable for the m17n-db or if any modifications are required to it.

Also, if it turns out that the Logical-Condition based input system would be a better choice for an m17n implementation, then I would be very grateful, if someone could give me some suggestions on how I can try to solve the problem of joining the pre base matras to the base consonants.

Links:-

I've updated the Blog page for the project to include details about both ways of implementation. The link to it is:-
http://sayaksarkar.wordpress.com/disha/

The mim files for both these input files can be found at the Github repository for the project at:-
https://github.com/sayak-sarkar/Disha

Here, the Combination based working MIM file has been stored by the name bn-disha-dev.mim.

The logical based MIM file containing the logical condition based implementation has been stored by the name bn-disha.mim


Awaiting your feedbacks,

Regards,
Sayak

On Fri, Jun 29, 2012 at 12:59 PM, Sayak Sarkar <address@hidden> wrote:
Hey Guys,

Thanks for the valuable advice, I really appreciate it.

I mostly used gedit for writing the code, and the getting the parenthesis correct is really confusing using it. I have installed emacs and m17n-edit, and I must say that these tools are way better and really helpful. I have corrected the parenthesis mistakes as pointed out by Kenichi, and am currently using m17n-edit to debug the logical errors.

It seems that the key mappings are working quite fine, however the dependent vowels are getting unhandled due to a logical error in my part. Hence, as Harshula suggested, I'm stripping the code down to the basics and reworking my way through the state definitions.

I'll be updating the github repository shortly with the appropriate changes made, and will ping back on this thread when its done.

Regards,
Sayak


On Thu, Jun 28, 2012 at 5:55 PM, Kenichi Handa <address@hidden> wrote:
In article <CANrO7TeWrWrmiHEzZ38_3+9N=PpF3f=address@hidden>, Sayak Sarkar <address@hidden> writes:

> After working on an initial MIM file for the same I've however been unable
> to validate it. I've tried working out various methods, mostly brute force
> hacks into my local system for the same, but have been unsuccessful at it.
> I would be very grateful if someone from this list could give me
> suggestions on how the MIM file can be validated.

It seems that your mim file is syntactically broken.  For
instance, "(map ..." is not correctly closed by ")".
And, see this part:

(state
 (init
   (consonant
     (set c @-1)
       (cond
           (| (< c 0x0999) (> c 0x999)  <--- (1)
             (cond
               (| (< c 0x099E) (> c 0x099E)  <--- (2)
                 (cond

I suspect that (1) and (2) lack one opening parenthesis and
one closing parenthesis.  It should be:

           ((| (< c 0x0999) (> c 0x999))
and
               ((| (< c 0x099E) (> c 0x099E))

What kind of editor are you using?  I strongly recommend
some smart editor that recognizes Lisp's s-_expression_.  The
best one is of course Emacs.  Have you noticed that most mim
files included in the m17n-db package has this comment at
the end.  It is for Emacs.

;; Local Variables:
;; coding: utf-8
;; mode: emacs-lisp
;; End:

When you open a mim file by Emacs, you can use the keys
C-M-n and C-M-p to move to the next or previous matching
parenthesis.  C-M-q at the beginning of a list re-indents
the list correctly.  So you can very easily find a
mismatching parenthesis.  Without such functionality, I
can't imagine how to write a correct mim file which contains
many many '(' and ')'.

By the way, after you fix the syntax of the mim file,
using the program m17n-edit as below will help you debugging
more logical (and thus more difficult) bug.

## put the file bn-disha.mim under ~/.m17n.d
% export MDEBUG_DATABAE=1
% export MDEBUG_INPUT=1
% m17n-edit --im bn-disha

---
Kenichi Handa
address@hidden






--
About Me:http://about.me/sayak_sarkar
Twitter: http://twitter.com/sayak_sarkar
Blog: http://sayaksarkar.wordpress.com

reply via email to

[Prev in Thread] Current Thread [Next in Thread]