Lttoolbox-java

From Apertium
Revision as of 10:29, 30 March 2009 by Jacob Nordfalk (talk | contribs)
Jump to navigation Jump to search

Notes (yes, I know its a mess... perhaps I will clean up later, or someone will be so kind to do it for me :-) Jacob Nordfalk 10:29, 30 March 2009 (UTC)

<jimregan> Nic Cottrell contributed a Java port of lttoolbox
<jimregan> but it needs work to finish it
<jimregan> and a test suite, in both C++ and Java
<jacobEo> Its in in apertium-tools/lttoolbox-java 
<jacobEo> What is in apertium-tools/lttoolbox-java right now is NOT working.
<jacobEo> It's a line-for-line port of the C++ code of lttoolbox


<jacobEo> and the great problem is the XML handling


<jimregan> it has to be binary compatible
<jimregan> and the test suite has to be in both C++ and Java, to ensure that
<jimregan> yeah, it's amost line for line identical to the C++, aside from Java/C++ differences
<jimregan> but, the binary stuff can be hard
<jacobEo> therefore jimregan its not that hard. 
<jimregan> all you need is one bit in the wrong place, and it's useless
<jimregan> the compression stuff
<jacobEo> jimregan: The binary stuff is _probably_ easy, as you can debug the C++ and compare variables etc
<jimregan> for C++, we use libxml2


<jacobEo> Rah2: lttoolbox are making binary files out of the .dix files.
<jacobEo> Rah2: lttoolbox-java needs to at least be able to _read_ these binary files.
<jacobEo> Rah2: Pls compile lttoolbox and apertium and a language pair of your choice.
<jacobEo> Rah2: Then much more will be clear


<jacobEo> Rah2: You don't need much knowlede of MT or NLP to do lttoolbox-java. But you need to know C++ and Java and be able to debug both
<Drew_> jacobEo: What was the location of lttoolbox again?
<jacobEo> http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/lttoolbox/
<jacobEo> http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-tools/lttoolbox-java/
<jacobEo> "Download GNU tarball" will give a compressed archive


<jacobEo> The problem, I think, is the XML handling: The C code's library callback calls a method in the code both when it meets a START and an END tag.
<jimregan> avinesh, maybe you should say it to spectie because I'm not interested in unicode -> wx
<jimregan> not for any reason
<jacobEo> the Java's XML library only calls the callback method at the START tag.
<jimregan> jacobEo, that will be necessary for chunk merging
<jimregan> we don't have it yet, but it will be necessary
<Leftmost> jimregan, I guess I'm a bit unclear as to what form the regression tests should take. Simply translations between ga and gd?
<jimregan> because when chcontent in t2 is written in chunk mode, it will be without { or }, otherwise with
<avinesh> ok got it
<jimregan> to fit the current model, that has to be a bool set and unset on entry/exit
<Drew_> jacobEo: Is it a big job to make it work with the END tag?
<avinesh> no wx right :D
<jimregan> that's it
<jimregan> avinesh, noone told me anudev is a course supervisor :/
<jacobEo> Drew_: I don't know. Perhaps we could find another Java XML library that could be made also call for the end tags. Or some kind of wrapper-inbetween thing could be made. Or you could use SAX and make your own callback thing.
<jimregan> I think I would have expected more of his opinions if I knew he wasn't actually doing any of the work
<avinesh> umm he mainly working on anusaraka
<jacobEo> Drew_: There might be other problems. The project just got stranded on the XML parse part.
<Drew_> jacobEo: Ah, ok. I'm just compiling it now
<jacobEo> Drew_: You have to run the code to see. To do that you need to have at least one language pair runnning on your machine
* vaasu (n=yt@123.176.16.43) has joined #apertium
<Drew_> jacobEo: I can't find a main class in the source code, am I looking in the wrong place? :S
<jacobEo> Drew_: The Java code?
<cseong> uhm..i am interested in improving interoperability..but what formats are u refering to ?
<Drew_> jacobEo: Yeah, I loaded the java code into eclipse but it can't find a main method to compile the .java's
<jacobEo> Drew_: LTComp.java, LTExpand.java, LTProc.java
<jimregan> avinesh, yeah. So I was right when I thought he expected us to change all of apertium to suit the analyser :/
* abhiSri (i=AB-Alway@220.224.99.238) has joined #apertium
<jacobEo> Drew_: Use Netbeans if you can. It's kinda standard here in Apertium




<jacobEo_> Rah1: Great. The problem right now is that the XML parser in C++ and in Java behaves differently.
<jacobEo_> Rah1: C++ parser calls back when a tag BEGINS and when it ENDS
<jacobEo_> Rah1: Java parser calls back only when a tag BEGINS
<jacobEo_> Rah1: Therefore the code for Java parsing is not working.
<jacobEo_> Rah1: Apart from that there is probably some minor things.
<Rah1> hmm, ok
<jacobEo_> Rah1: You will have to debug the C++ and the Java version and compare executions.
<jacobEo_> Rah1: The Java version is a line-for-line more or less exact port of the C++.
<Rah1> yes, I think I can do that
<jacobEo_> Rah1: But the languages are different. C++ for example has some methods where some simple type variables are changed (the reference is passed)
<jacobEo_> Rah1: But in Java simple type variables can only be passed by value, and thus the caller's value is not changes.
<jacobEo_> Rah1: That sort of things needs to be sorted out.
<Rah1> Yeah, I see the problem
<Rah1> and I think I can take care of it
<jacobEo_> So Rah1 You don't have to know much about linguistics. You only have to understand what lt-expand, lt-comp and lt-proc does with a .dix file