From lojban-beginners+bncCNzDnoiEDxCq4cbtBBoE0sjUkA@googlegroups.com Fri Apr 22 09:45:46 2011 Received: from mail-fx0-f61.google.com ([209.85.161.61]) by chain.digitalkingdom.org with esmtp (Exim 4.72) (envelope-from ) id 1QDJUE-0007gW-3F; Fri, 22 Apr 2011 09:45:46 -0700 Received: by fxm14 with SMTP id 14sf994468fxm.16 for ; Fri, 22 Apr 2011 09:45:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=beta; h=domainkey-signature:x-beenthere:received-spf:mime-version :in-reply-to:references:date:message-id:subject:from:to :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:x-google-group-id:list-post :list-help:list-archive:sender:list-subscribe:list-unsubscribe :content-type; bh=xs21qqAs5PEjXrCwDBow2SR0h3L0wsrtNDuf8c28CoU=; b=K8FF88rTgc2ijhziqkBMmxjDf5/nVJLZOT7ItO7rheNjSe3ChBBvk8fWkyaBgs/VGm 0ybBFRzRc6t/gSnfhH/kVe4xiiTOcjPRFDINtOxly8ev6LYmxpmCWgolrKpIqRto3g4y XRoRZKUCYtAOsxQtMzfnYKTjT+eO0+SNZnbhA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlegroups.com; s=beta; h=x-beenthere:received-spf:mime-version:in-reply-to:references:date :message-id:subject:from:to:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-google-group-id:list-post:list-help:list-archive:sender :list-subscribe:list-unsubscribe:content-type; b=lhxRXG6rQUSFGJDIIeLUi5Lg2LhGdpFzIb+Zuny8peiVuL9kAmLSq9RI1RGO872+Lt LUj4pAAPLlasLrii+PbBa/woyp8y5Uj31oetMWEoENerbGOQ4qA713T+3+CFgD06HHm9 VATnktI22N1fsUpj8gDnXhlFfXk49MSTtUBvE= Received: by 10.223.46.76 with SMTP id i12mr250243faf.10.1303490730741; Fri, 22 Apr 2011 09:45:30 -0700 (PDT) X-BeenThere: lojban-beginners@googlegroups.com Received: by 10.204.14.200 with SMTP id h8ls1413578bka.3.gmail; Fri, 22 Apr 2011 09:45:29 -0700 (PDT) Received: by 10.204.177.204 with SMTP id bj12mr105962bkb.12.1303490729181; Fri, 22 Apr 2011 09:45:29 -0700 (PDT) Received: by 10.204.177.204 with SMTP id bj12mr105961bkb.12.1303490729136; Fri, 22 Apr 2011 09:45:29 -0700 (PDT) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by gmr-mx.google.com with ESMTPS id e15si539473bke.5.2011.04.22.09.45.28 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 22 Apr 2011 09:45:29 -0700 (PDT) Received-SPF: pass (google.com: domain of pretoriusjf@gmail.com designates 209.85.161.54 as permitted sender) client-ip=209.85.161.54; Received: by mail-fx0-f54.google.com with SMTP id 11so690345fxm.41 for ; Fri, 22 Apr 2011 09:45:28 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.76.147 with SMTP id c19mr1408404fak.55.1303490728784; Fri, 22 Apr 2011 09:45:28 -0700 (PDT) Received: by 10.223.87.1 with HTTP; Fri, 22 Apr 2011 09:45:28 -0700 (PDT) In-Reply-To: References: <20110421123557.GA71258@alice.local> <20110422042758.GE79918@alice.local> Date: Fri, 22 Apr 2011 18:45:28 +0200 Message-ID: Subject: Re: [lojban-beginners] vlastezba: First beta version released! From: Johan Pretorius To: lojban-beginners@googlegroups.com X-Original-Sender: pretoriusjf@gmail.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of pretoriusjf@gmail.com designates 209.85.161.54 as permitted sender) smtp.mail=pretoriusjf@gmail.com; dkim=pass (test mode) header.i=@gmail.com Reply-To: lojban-beginners@googlegroups.com Precedence: list Mailing-list: list lojban-beginners@googlegroups.com; contact lojban-beginners+owners@googlegroups.com List-ID: X-Google-Group-Id: 300742228892 List-Post: , List-Help: , List-Archive: Sender: lojban-beginners@googlegroups.com List-Subscribe: , List-Unsubscribe: , Content-Type: multipart/mixed; boundary=0015174c3fb0db72a304a1849524 --0015174c3fb0db72a304a1849524 Content-Type: multipart/alternative; boundary=0015174c3fb0db729c04a1849522 --0015174c3fb0db729c04a1849522 Content-Type: text/plain; charset=ISO-8859-1 Hi Alan, all Alan, can I please ask you to run the attached four files through jbogenturfa'i, and send me back the results? I have a visual tool (kdiff3) to compare them to my results, which makes it easier for me to figure out what is going on. New release! Get it here: http://sourceforge.net/projects/vlastezba/files/vlastezba_21.jar/download In this release, I have fixed a bunch of things: - Dots are no longer assumed to be an integral part of a word. In fact, now, if a dot is found, it is assumed to be a word separator, in exactly the same way as a space. Beyond this they are completely ignored, and indeed, removed from the input stream. - "ybu" and "y'y" now parses. Since no clarity was to be had about whether or not y is a vowel, consonant, neither or both, I just added those two as special cases... I alread had a loose standing "y" as a special case in there, because it is explicitly mentioned in CLL (section 4.3, I think) - The last cmavo cluster in a file is no longer misparsed. Specifically, I added a regression test and unit test for "coirodo" appearing on a single line in its own file, and it finds 3 words as you would expect it to. - Output is now always ordered alphabetically. Previously it was in any old order because I used an unordered HashMap to store them in. - Previously we seemed to produce some duplicates (I guess this could happen if there were extra whitespace in the words). This only happened in about 0.5% of cases. I did not consciously fix this, but it seems to no longer happen. - Internally, the logic is much better organized - the parsing logic is no longer all stuffed into a single class, instead there is a class hierarchy specifically to represent each word class, the idea is that each will have its own specialized processing. The main point of doing this was to enrich the results returned by the tokenizer, which means in future we can get all flexible (like, if we find a lujvo, we will know what it's rafsi are, so that we can decide to give the user a list of those, look up their gismu's definitions, or what). - Added regression tests. There are 4 files: the Terry the Tiger story, the Berenstein Bears story, a file containing *only* "coirodo" on a single line, and a file containing a list of all recognized cmavo (about 1000 lines). I also added a script that will run all these through vlastezba, compares the outputs against "expected" results, and spits the diffs into a single file (test_result.txt). It should be noted that the "expected" results are baselined off of this release, so it is impossible for there to be any reported problems. However, next time a change is made, it will be possible to see how the regression tests are affected. The expected results can then be manually updated to be more correct, thus causing the test to become more correct over time. - Added 2 unit tests to the ones already existing, specifically to test these two cases: "coirodo" and "ybu"... since both were problems that got fixed in this release. By the way, does anybody know how to do a formal release on SourceForge? Aside from just uploading the jar file, which is what I'm doing currently. Regards, iu'an -- You received this message because you are subscribed to the Google Groups "Lojban Beginners" group. To post to this group, send email to lojban-beginners@googlegroups.com. To unsubscribe from this group, send email to lojban-beginners+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/lojban-beginners?hl=en. --0015174c3fb0db729c04a1849522 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi Alan, all

Alan, can I please ask you to run the attached four fil= es through=20 jbogenturfa'i, and send me back the results?=A0 I have a visual tool=20 (kdiff3) to compare them to my results, which makes it easier for me to=20 figure out what is going on.

New release!=A0 Get it here: http://sourceforge.net/projects= /vlastezba/files/vlastezba_21.jar/download

In this release, I ha= ve fixed a bunch of things:
=A0- Dots are no longer assumed to be an integral part of a word.=A0 In fac= t, now, if a dot is found, it is assumed to be a word separator, in exactly= the same way as a space.=A0 Beyond this they are completely ignored, and i= ndeed, removed from the input stream.
=A0- "ybu" and "y'y" now parses.=A0 Since no clarit= y was to be had about whether or not y is a vowel, consonant, neither or bo= th, I just added those two as special cases... I alread had a loose standin= g "y" as a special case in there, because it is explicitly mentio= ned in CLL (section 4.3, I think)
=A0- The last cmavo cluster in a file is no longer misparsed.=A0 Specifical= ly, I added a regression test and unit test for "coirodo" appeari= ng on a single line in its own file, and it finds 3 words as you would expe= ct it to.
=A0- Output is now always ordered alphabetically.=A0 Previously it was in a= ny old order because I used an unordered HashMap to store them in.
=A0- = Previously we seemed to produce some duplicates (I guess this could happen = if there were extra whitespace in the words).=A0 This only happened in abou= t 0.5% of cases.=A0 I did not consciously fix this, but it seems to no long= er happen.
=A0- Internally, the logic is much better organized - the parsing logic is = no longer all stuffed into a single class, instead there is a class hierarc= hy specifically to represent each word class, the idea is that each will ha= ve its own specialized processing.=A0 The main point of doing this was to e= nrich the results returned by the tokenizer, which means in future we can g= et all flexible (like, if we find a lujvo, we will know what it's rafsi= are, so that we can decide to give the user a list of those, look up their= gismu's definitions, or what).
=A0- Added regression tests.=A0 There are 4 files: the Terry the Tiger stor= y, the Berenstein Bears story, a file containing only "coirodo&= quot; on a single line, and a file containing a list of all recognized cmav= o (about 1000 lines).=A0 I also added a script that will run all these thro= ugh vlastezba, compares the outputs against "expected" results, a= nd spits the diffs into a single file (test_result.txt).=A0 It should be no= ted that the "expected" results are baselined off of this release= , so it is impossible for there to be any reported problems.=A0 However, ne= xt time a change is made, it will be possible to see how the regression tes= ts are affected.=A0 The expected results can then be manually updated to be= more correct, thus causing the test to become more correct over time.
=A0- Added 2 unit tests to the ones already existing, specifically to test = these two cases: "coirodo" and "ybu"... since both were= problems that got fixed in this release.

By the way, does anybody k= now how to do a formal release on SourceForge?=A0 Aside from just uploading= the jar file, which is what I'm doing currently.

Regards,
iu'an

--
You received this message because you are subscribed to the Google Groups "= Lojban Beginners" group.
To post to this group, send email to lojban-beginners@googlegroups.com.
To unsubscribe from this group, send email to lojban-beginners+unsubscribe@= googlegroups.com.
For more options, visit this group at http://groups.google.com/group/lojban= -beginners?hl=3Den.
--0015174c3fb0db729c04a1849522-- --0015174c3fb0db72a304a1849524 Content-Type: application/zip; name="tests.zip" Content-Disposition: attachment; filename="tests.zip" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gmtcpys94 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 --0015174c3fb0db72a304a1849524--