<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&#39;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>    &gt;&gt;&gt; from delphin import itsdb<br>    &gt;&gt;&gt; from delphin.interfaces import ace<br>    &gt;&gt;&gt; ts = itsdb.TestSuite(&#39;mrs&#39;)<br>    &gt;&gt;&gt; with ace.AceParser(&#39;../../grammars/erg-1214-x86-64-0.9.27.dat&#39;) 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&#39;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 &quot;run&quot; information in the profile<br></div><div>* process() works with PyDelphin&#39;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&#39;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">&lt;<a href="mailto:goodmami@uw.edu" target="_blank">goodmami@uw.edu</a>&gt;</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&#39;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&#39;s re module, plus a step-by-step &quot;trace&quot; 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>    &gt;&gt;&gt; response = ace.parse(grm, &quot;Abrams slept.&quot;)<br></div>    &gt;&gt;&gt; mrs = response[&#39;RESULTS&#39;][0][&#39;MRS&#39;]<br></div><div>    &gt;&gt;&gt; drv = response[&#39;RESULTS&#39;][0][&#39;DERIV&#39;<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>    &gt;&gt;&gt; mrs = response.result(0)[&#39;mrs&#39;]<br></div>    &gt;&gt;&gt; drv = response.result(0)[&#39;<wbr>derivation&#39;]<br><br></div>I&#39;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>