<div dir="ltr"><div>Hi again,</div><div><br></div><div>I found a few bugs in the v0.7.0 release, mainly with [incr tsdb()] profile processing with Python 2.7. I've added fixes and unit tests for these bugs and released v0.7.1 and v0.7.2 (just after releasing v0.7.1 I noticed a harmless but confusing error message that I missed during testing; the releases are functionally identical). If you use Python 2.7 or you use the `delphin mkprof` command or if your locale is not UTF-8, I strongly suggest upgrading.</div><div><br></div><div>I also added the ability to process [incr tsdb()] profiles with ACE from PyDelphin:</div><div><br></div><div> >>> from delphin import itsdb<br> >>> from delphin.interfaces import ace<br> >>> ts = itsdb.TestSuite('mrs')<br> >>> with ace.AceParser('../../grammars/erg-1214-x86-64-0.9.27.dat') as cpu:<br> ... ts.process(cpu)<br> ... <br> NOTE: parsed 107 / 107 sentences, avg 3253k, time 1.81264s</div><div><br></div><div>This functionality is also available via the new `process` command:</div><div><br></div><div> $ delphin process -g ~/grammars/erg-1214-x86-64-0.9.27.dat mrs<br> NOTE: parsed 107 / 107 sentences, avg 3253k, time 1.78477s</div><div><br></div><div>This process() function overlaps with Woodley's `art` utility (and partially with [incr tsdb()]), but with some differences:<br></div><div><br></div><div>* art is faster</div><div>* art allows for multiple processors via an `arbiter` job controller<br></div><div>* art allows for preprocessors as a filter in the -a ACE option</div><div>* process() can recover from ACE crashes</div><div>* process() provides more "run" information in the profile<br></div><div>* process() works with PyDelphin's --filter and --apply functions on profiles</div><div>* process() is easier to use from Python scripts</div><div>* process() can work with non-standard [incr tsdb()] schemata</div><div>* process() can work with non-ACE cpus (e.g., the HTTP API), though I haven't tested this<br></div><div><br></div><div>Both are capable of parsing, transfer, and generation.</div><div><br></div><div>Thanks, and let me know (<a href="https://github.com/delph-in/pydelphin/issues">https://github.com/delph-in/pydelphin/issues</a>) if you have any issues with the release.<br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 7, 2018 at 4:41 PM, Michael Wayne Goodman <span dir="ltr"><<a href="mailto:goodmami@uw.edu" target="_blank">goodmami@uw.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div>Hi everyone,<br><br>I've released PyDelphin v0.7.0 (available on GitHub (<a href="https://github.com/delph-in/pydelphin/" target="_blank">https://github.com/delph-in/<wbr>pydelphin/</a>) and PIP (<a href="https://pypi.org/project/pyDelphin/)" target="_blank">https://pypi.org/project/<wbr>pyDelphin/)</a>), which adds an improved [incr tsdb()] testsuite API (which now allows for programmatic instantiation, left-joins, easier profile inspection, etc.), Prolog export for MRS, and a REPP tokenizer (which offers the same behavior and characterization (cfrom/cto values) as the PET (C++) program, as long as the regexes used are compatible with Python's re module, plus a step-by-step "trace" mode for debugging REPPs). There are numerous bug fixes and minor features added, as well. See the changelog (<a href="https://github.com/delph-in/pydelphin/blob/develop/CHANGELOG.md" target="_blank">https://github.com/delph-in/<wbr>pydelphin/blob/develop/<wbr>CHANGELOG.md</a>) for more info.<br><br></div>There are several backward-incompatible changes (again, see the changelog), but I think the only one likely to affect users is the ACE interface change. If you previously used something like:<br><br></div> >>> response = ace.parse(grm, "Abrams slept.")<br></div> >>> mrs = response['RESULTS'][0]['MRS']<br></div><div> >>> drv = response['RESULTS'][0]['DERIV'<wbr>]<br></div><div><br></div>Then these latter two lines need to be changed to the following (which has been available for almost two years now):<br><br></div> >>> mrs = response.result(0)['mrs']<br></div> >>> drv = response.result(0)['<wbr>derivation']<br><br></div>I've fixed the Bottlenose and Demophin servers and submitted a patch for pydmrs, but there may other code still using the old API.<br><br><div><div><div><div><div><div><div>As always, please send bug reports and feature requests to<br><a href="https://github.com/delph-in/pydelphin/issues" target="_blank">https://github.com/delph-in/<wbr>pydelphin/issues</a><br><br></div><div>Thanks<span class="HOEnZb"><font color="#888888"><br clear="all"></font></span></div><span class="HOEnZb"><font color="#888888"><div><br>-- <br><div class="m_-6570856598861026878gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Michael Wayne Goodman</div></div></div></div></div></div>
</div></font></span></div></div></div></div></div></div></div>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Michael Wayne Goodman</div></div></div></div></div></div>
</div>