<div dir="ltr">Hi Stephan,<br><br><div class="gmail_quote"></div><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Mar 28, 2016 at 1:53 PM Stephan Oepen &lt;<a href="mailto:oe@ifi.uio.no" target="_blank">oe@ifi.uio.no</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">dear colleagues,<br>
<br>
i used part of the easter break to teach myself about modern<br>
technologies and are currently in the process of providing a RESTful<br>
(programmatic) interface to the on-line ERG demonstrator.  i know of<br>
at least one colleague who has been waiting impatiently for this<br>
functionality :-).<br>
<br>
in a nutshell, client software can now obtain parses using the HTTP<br>
protocol and URIs providing the input string (and a handful of<br>
optional parameters).  for example:<br>
<br>
  <a href="http://erg.delph-in.net/rest/0.9/parse?input=Abrams%20arrived" rel="noreferrer" target="_blank">http://erg.delph-in.net/rest/0.9/parse?input=Abrams%20arrived</a>.<br>
<br>
parsing results will be returned in machine-readable format,<br>
serialized as a JSON document.  for a little more background on how to<br>
use this new service (including an example client in Python, believe<br>
it or not), please see:<br>
<br>
  <a href="http://moin.delph-in.net/ErgApi" rel="noreferrer" target="_blank">http://moin.delph-in.net/ErgApi</a></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>What a beautiful bike shed :)</div><div><br></div><div>BTW, Demophin has an undocumented HTTP API, but it&#39;s not RESTful:</div><div><br></div><div>$ curl -F &#39;sentence=Abrams arrived.&#39; <a href="http://chimpanzee.ling.washington.edu/demophin/erg/parse" target="_blank">http://chimpanzee.ling.washington.edu/demophin/erg/parse</a><br></div><div><br></div><div>I had hoped to change it to follow the REST principles more closely and document the API, but I&#39;m happy to know that you&#39;ve already started that effort.</div></div></div><div dir="ltr"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
there is some more work to be done on the interface (see the page<br>
above), but i would like to ask for help already at this point:<br>
<br>
(0) in case you notice anything surprising in the interactive ERG<br>
demonstrator, please do not hesitate to let me know!<br></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>If you&#39;re defining a new JSON schema for EDS, then maybe we can do something more convenient for, e.g., lnk values. Currently the indices are encoded in a string:</div><div><br></div><div>    <span style="line-height:normal;white-space:pre-wrap">&quot;lnk&quot;: &quot;&lt;0:6&gt;&quot;</span></div><div><span style="line-height:normal;white-space:pre-wrap"><br></span></div><div><span style="line-height:normal;white-space:pre-wrap">If we make it a JSON object, then users of the results wouldn&#39;t have to parse the string later:</span></div><div><span style="line-height:normal;white-space:pre-wrap"><br></span></div><div><span style="line-height:normal;white-space:pre-wrap">    &quot;lnk&quot;: {&quot;type&quot;: &quot;charspan&quot;, &quot;cfrom&quot;: 0, &quot;cto&quot;: 6}</span></div><div><span style="line-height:normal;white-space:pre-wrap"><br></span></div><div><span style="line-height:normal;white-space:pre-wrap">(The &quot;type&quot; could be optional if we define &quot;charspan&quot; as the default, or if we pretend that the other types don&#39;t exist)</span></div></div></div><div dir="ltr"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
(1) i still need to provide a serialization of MRSs in JSON; in case<br>
anyone has previously tackled this (design) problem, please do get in<br>
touch!<br></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>Not yet, sorry.  One thing that comes to mind is that JSON doesn&#39;t have an unordered collection aside from objects (hashes), which require keys. So we could treat the RELS, HCONS, and ICONS bags as arrays (lists) (but we often do this anyway, so I think it&#39;s fine to use arrays). Here&#39;s a rather direct conversion:</div><div><br></div><div>{ &quot;top&quot;: &quot;h0&quot;, &quot;index&quot;: &quot;e2&quot;, &quot;rels&quot;: [ {&quot;pred&quot;: &quot;proper_q&quot;, &quot;lbl&quot;: &quot;h3&quot;, &quot;arg0&quot;: &quot;x4&quot;...}...]...}</div><div><br></div><div>One thing that isn&#39;t obvious is variable properties. They could follow the EDS example and put them in the EP object (and similarly be controlled by the &quot;properties&quot; parameter in the URL):</div><div><br></div><div>{ ..., &quot;rels&quot;: [ { &quot;pred&quot;: &quot;named&quot;, ..., &quot;properties&quot;: { &quot;PERS&quot;: &quot;3&quot;}}, ... ], ...}</div></div></div><div dir="ltr"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
(2) i think it might be nice to incorporate RESTful parsing as an<br>
option in pyDelphin; mike, could you be interested in collaborating on<br>
this?<br></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>Yes. Whatever API we settle on, I&#39;d like to incorporate that into pyDelphin and use it as the basis for Demophin as well.</div></div></div><div dir="ltr"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
finally, i would be curious to hear comments or suggestions for how to<br>
use and extend this service (though cannot promise i will have a lot<br>
of time to develop this further until another holiday break); please<br>
see towards the bottom of the above wiki page for some candidate<br>
directions.<br></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>I&#39;ve done a couple of REST APIs so far, so I have some suggestions (some are rather technical so I&#39;m happy to save those for an off-list discussion).</div><div><br></div><div>One thing that might be relevant to others is how we can request other formats. I see you have parameters &quot;eds=...&quot;, &quot;derivation=...&quot;, &quot;mrs=...&quot;, so presumably we could expand it with others (&quot;rmrs=...&quot;, &quot;dmrs=...&quot;, etc.)?</div><div><br></div><div>Other ideas:</div><div>* what about generation?</div><div>* can set a request header for preprocessing? (e.g. morphological segmentation for Jacy or Zhong)</div><div>* If we have already preprocessed, can we specify the Content-Type (e.g. Content-Type: application/yy)</div></div></div><div dir="ltr"><div class="gmail_quote"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
best wishes; god påske!  oe<br>
<br>
</blockquote></div></div></div>