<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Regarding web APIs: If your needs are responding to dynamic parsing requests or serving the contents of stored parses, PyDelphin already provides this functionality. For serving stored parses from [incr tsdb()] profiles, it only transforms token lists (p-input or p-tokens), MRSs, and derivations into JSON representations, and the remaining fields are returned as text, but this is configurable if you have a suitable transformation function (in Python, alas). It does not have a scheme for identifying substructures, as Stephan described. I'm happy to discuss API design in case you have other needs.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Regarding visualizations, while delphin-viz uses the AVM-like visualization of MRSs, I agree with Stephan that it is not ideal. In general, however, I'd prefer a node-and-edge graphical representation of MRS over the compact textual one. The DOT-based layouts are good when you want to focus on the semantic graph by itself. I like arc diagrams when comparing the semantics to the original sentence as it keeps the word order intact: I attach a screenshot of the MRS adaption of the DMRS arc diagrams I used in my dissertation (basically the same as those for DMRS, but with variables). Unfortunately I only have LaTeX macros for these. D3.js has "force-directed" graph layouts (those springy, animated ones you've probably seen around the web). You can also use D3's SVG primitives to draw nodes and edges, but then you're on your own for the layout (this is essentially how I do the delphin-viz one).<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 9, 2021 at 4:39 PM Stephan Oepen <<a href="mailto:oe@ifi.uio.no">oe@ifi.uio.no</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">hi alexandre,</div><div dir="auto"><br></div><div dir="auto">i developed the visualizations in the LOGON on-line demonstrator (e.g. <a href="http://erg.delph-in.net" target="_blank">http://erg.delph-in.net</a>) in 2002, hence they are pure dynamic HTML before SVG became generally available.  the HTML generation is part of the lisp code of the LKB and [incr tsdb()].</div><div dir="auto"><br></div><div dir="auto">i am not sure there is much to learn here, in part because i personally consider some of the visualization choices out of date: for MRS, i have come to consider the AVM-like rendering misleading and today would advocate a more compact format, as we use in the ERG Semantic Documentation (e.g. <a href="http://moin.delph-in.net/wiki/ErgSemantics/Essence" target="_blank">http://moin.delph-in.net/wiki/ErgSemantics/Essence</a>).  for EDS, i would nowadays favor a graphical rendering over the textual one, e.g. via the DOT layout engine, as implemented in mtool (e.g. <a href="http://mrp.nlpl.eu/2020/index.php?page=12" target="_blank">http://mrp.nlpl.eu/2020/index.php?page=12</a>).<div dir="auto"><div dir="auto"><br></div><div dir="auto">only for DM, i am still fairly happy with the visualization used on the LOGON demonsrator for the ERG.  this is rendered client-side, using an extension of the Brat JavaScript library to support the SDP 2015 tabular format.  however, for DM we currently lack a conversion path outside [incr tsdb()], and even what is there has hardly been maintained since angelina ivanova developed the original converter in 2014. or so.</div><div dir="auto"><br></div><div dir="auto">visualization in the WSI web application, in turn, was developed by milen kouylekov, in part as a mimicry of the HTML renderings from LOGON.  in some cases, i believe, the rendering is done in the client (in JavaScript), e.g. for the SDP graphs (including DM) and probably EDS.  for MRS, i believe milen may actually pre-compute the HTML on the server, in which case this would be part of the WSI Java code base.  again, i am not sure it will pay off to try and re-use much of these parts.</div><div dir="auto"><br></div><div dir="auto">i generally buy into the delphin-viz philosophy: communicate various types of representations in JSON and do the rendering in JavaScript on the client, with liberal use of SVG.  i believe further development in this paradigm has the highest potential for reuse.  however, it may limit layout sophistication: for various types of semantic graphs, i have grown very fond of the DOT language and GraphViz rendering engines.  last i checked there were multiple initiatives to support that framework for in-browser rendering, but none appeared to be reasonably mature yet.</div><div dir="auto"><br></div><div dir="auto">finally, in the WSI context you will ultimately want more than just the visualization of an object: in my use of the service, i have found it essential to highlight the parts of the structure matched by a given query, e.g. MRS variables, predicates, roles, etc.  i am pretty sure milen applies the color-highlighting in the client, e.g. when toggling between multiple possible matches, based on (sets of) a list of sub-structure identifiers that match constituents of the query.  to do this, the query processor (server) and renderer (client) need a common scheme of referring to sub-structures.</div><div dir="auto"><br></div><div dir="auto">best wishes, oe</div><div dir="auto"><br></div></div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 7 May 2021 at 03:46 Alexandre Rademaker <<a href="mailto:arademaker@gmail.com" target="_blank">arademaker@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all,<br>
<br>
I want to understand the alternatives we have for presenting semantic and syntactic structures on a web page. This is part of our current effort to rewrite the WSI interface. The goal is to have something similar to the last version of WSI that I had access and I have it running with sample data at <a href="https://wsi.mybluemix.net/demo/" rel="noreferrer" target="_blank">https://wsi.mybluemix.net/demo/</a>. <br>
<br>
This instance has MRS and EDS. I could not import DMRS, but I remember that I saw somewhere another instance of WSI exposing DMRS. Does anyone know where? <br>
<br>
Anyway, we already have a new WQL to SPARQL transformation in place, and now we are moving to the web interface part. The WSI code is quite complicated using a lot of javascript. I could not understand how the EDS/MRSs are transmitted from the Jean to the browser.<br>
<br>
But even if I ignore that and design a new strategy, I would like to reuse the alternatives available to present MRS, DMRS, and EDS in the browser. Besides the WSI interface, we have:<br>
<br>
1. <a href="http://chimpanzee.ling.washington.edu/demophin/erg/parse" rel="noreferrer" target="_blank">http://chimpanzee.ling.washington.edu/demophin/erg/parse</a> displays only DMRS. Who is the author of the dmrs.js? The DMRSs are transformed into SVG… <br>
<br>
2. <a href="http://delph-in.github.io/delphin-viz/demo/" rel="noreferrer" target="_blank">http://delph-in.github.io/delphin-viz/demo/</a>. It shows derivation trees, MRS and DRMSs. Uses <a href="https://github.com/delph-in/delphin-viz" rel="noreferrer" target="_blank">https://github.com/delph-in/delphin-viz</a>, it is the state-of-the-art solution for displaying DELPH-IN structures? I didn't find documentation; how should my backend provide the data to allow this code to load/parse and display them on a page?<br>
<br>
3. <a href="http://erg.delph-in.net/logon" rel="noreferrer" target="_blank">http://erg.delph-in.net/logon</a>. It shows trees (not the same as above), dm, MRS, EDS. The DM is not the DMRS… The tree, EDS, and MRS are HTML tables produced on the server-side by some code; the DM is transformed in SVG, but how? The backend is Lisp. I would love to understand all the loading steps of the logon scripts! I suppose it is using LKB with the ERG 1214, but the www bash script is almost impossible to read... anyway, for WSI, I don't need to call a parser but to retrieve the structures from an RDF triplestore and display them.<br>
<br>
Does anyone have any direction? It would help me a lot! <br>
<br>
Best,<br>
Alexandre<br>
<br>
<br>
</blockquote></div></div>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature">-Michael Wayne Goodman</div>