<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div></div><div>2 cents worth...</div><div><br></div><div>1. I think the logical behavior for an addendum with a doc string is concatenation, not replacement. &nbsp;The doc string on the addendum should document what the addendum adds to the type, not the whole type.</div><div><br></div><div>2. ACE (I believe) allows comments just about anywhere in TDL. &nbsp;I find this very useful when editing TDL, e.g. annotating changes on a fine grained level or disabling certain constraints temporarily without deleting them.</div><div><br></div><div>Regards,</div><div>Woodley</div><div><br>On Jul 11, 2018, at 5:00 PM, Michael Wayne Goodman &lt;<a href="mailto:goodmami@uw.edu">goodmami@uw.edu</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><div>Thank you, Bernd, for the feedback. But I'm not having success parsing types with docstrings using PET. E.g., I changed sign-min in the ERG like this:</div><div><br></div><div>&nbsp;&nbsp;&nbsp; sign_min := *avm* &amp;<br>&nbsp; &nbsp; &nbsp; "doc"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ SYNSEM synsem_min,<br>&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; KEY-ARG bool ].<br><br></div><div>But flop doesn't like it:<br></div><div><br></div><div>&nbsp;&nbsp;&nbsp; goodmami@tpy:~/grammars/erg$ flop english.tdl <br>&nbsp;&nbsp;&nbsp; reading `Version.lsp'... <br>&nbsp;&nbsp;&nbsp; converting `english.tdl' (ERG (1214)) into `english.grm' ...<br>&nbsp;&nbsp;&nbsp; loading `english.tdl'... including `fundamentals.tdl'... fundamentals.tdl:21:3: error: (syntax) - got `&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [', expecting `.' at end of type definition</div><div>&nbsp;&nbsp;&nbsp; [...]</div><div><br></div><div>I get similar errors no matter where I put it (before :=, directly after :=, after ]). It's syntactically valid if I have ... *avm* &amp; "doc" &amp; ..., but then it has trouble unifying (as expected).</div><div><br></div><div>It does, however, seem to be happy having a comment there (both ; and #| styles) instead of a doc string.<br></div><div><br></div><div>I'm using flop version 0.99.14svn_cm from the LOGON distribution.<br></div><div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 11, 2018 at 7:00 AM, Bernd Kiefer <span dir="ltr">&lt;<a href="mailto:Bernd.Kiefer@dfki.de" target="_blank">Bernd.Kiefer@dfki.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF">
    <tt>Concerning question 3, at least in TDL and PET there was no such
      restriction,<br>
      but that could make the definition of docstrings easier.<br>
      <br>
      Best,<br>
      <br>
      Bernd<br>
    </tt><div><div class="gmail-h5"><br>
    <div class="gmail-m_-5022940462080984935moz-cite-prefix">On 11.07.2018 03:01, Michael Wayne
      Goodman wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div>I attempted to define a BNF-like description of TDL syntax
          on the wiki: <a href="http://moin.delph-in.net/TdlRfc" target="_blank">http://moin.delph-in.net/<wbr>TdlRfc</a></div>
        <div>I tried to follow the partial BNF in the LKB source and
          often referred to the lisp code itself in order to fill out
          the rest of the description.<br>
        </div>
        <div><br>
        </div>
        <div>My 3 questions above are concisely repeated at the bottom
          of the wiki along with some others.</div>
        <div><br>
        </div>
        <div>I welcome corrections and discussion (here or on the wiki)
          from any TDL nerds or authorities (especially if you've
          written a TDL parser).<br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Mon, Jul 9, 2018 at 12:49 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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div dir="ltr">
              <div>Hi developers,</div>
              <div><br>
              </div>
              <div>I'm taking a closer look at the syntax of TDL files
                and the situation is a bit of a mess. Can anyone help me
                clarify some things? (I'll restrict myself to 3
                questions for now)<br>
              </div>
              <div><br>
              </div>
              <div>The Copestake 2002 reference (Implementing TFS
                Grammars) has a BNF for TDL, but it's a bit out of date
                and, according to comments in the LKB source code,
                incorrect in parts. The LKB source comments are
                scattered, incomplete, inconsistent, and also a bit
                outdated. There is not much on the wiki. There is some
                discussion in the mailing list archives (much from
                before my time in DELPH-IN), but it's not clear how
                current those descriptions are.</div>
              <div><br>
              </div>
              <div>Q1: Are supertypes special in a definition?</div>
              <div><br>
              </div>
              <div>The BNF (in the LKB source) says this:</div>
              <div><br>
              </div>
              <div>&nbsp;&nbsp;&nbsp; Type-def -&gt; Type { Avm-def | Subtype-def} . |
                <br>
                &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type { Avm-def | Subtype-def}.<br>
              </div>
              <div>&nbsp;&nbsp;&nbsp; Avm-def -&gt; := Conjunction | Comment
                Conjunction<br>
                &nbsp;&nbsp;&nbsp; Conjunction -&gt; Term { &amp; Term } *<br>
                &nbsp;&nbsp;&nbsp; Term -&gt; Type | Feature-term | Diff-list | List |
                Coreference<br>
              </div>
              <div><br>
              </div>
              <div>That makes it sound like I could do this:</div>
              <div><br>
              </div>
              <div>&nbsp;&nbsp;&nbsp; mytype := [ FEAT val ] &amp; supertype.</div>
              <div><br>
              </div>
              <div>or even:</div>
              <div><br>
              </div>
              <div>&nbsp;&nbsp;&nbsp; mytype := &lt;! diff list.. !&gt; &amp; #coref
                &amp; supertype.</div>
              <div><br>
              </div>
              <div>But elsewhere it seems like a list of parents is
                special and appears before the rest of the conjunction.
                E.g., at read-tdl-avm-def of lingo/lkb/src/io-tdl/tdltypein<wbr>put.lsp
                I see this alternate definition of Avm-def:<br>
              </div>
              <div><br>
              </div>
              <div>&nbsp; ;;; Avm-def -&gt; := Parents Conjunction | Parents
                Comment Conjunction |<br>
                &nbsp; ;;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Parents | Parents Comment<br>
              </div>
              <div><br>
              </div>
              <div>It seems that both ACE and PET are fine with putting
                supertypes after the feature list (and some other
                variations). I'm fine with this, but I wonder what it
                means for docstrings (see Q3 below), which (I think) are
                supposed to appear after the list of parents and before
                the feature list.<br>
              </div>
              <div><br>
              </div>
              <div><br>
              </div>
              <div>Q2: Subtype-def is now just a variant of Avm-def,
                yes?</div>
              <div><br>
              </div>
              <div>The BNF still describes subtyping (with the :&lt;
                operator) as only taking a single parent:</div>
              <div><br>
              </div>
              <div>&nbsp;&nbsp;&nbsp; Subtype-def -&gt;&nbsp; :&lt; type</div>
              <div><br>
              </div>
              <div>But I believe the consensus is that this is
                unnecessary (it's equivalent to using := with only a
                supertype), so :&lt; is treated as equivalent to := (to
                avoid breaking backward compatibility). Is this
                interpretation used by all processors?</div>
              <div><br>
              </div>
              <div><br>
              </div>
              <div>Q3: What's the final word with type comments /
                docstrings?</div>
              <div><br>
              </div>
              <div>I find evidence of 3 proposed variants: (1) a block
                of ";" comments before a typename (LTDB-style); (2) a
                block of ";" comments within a type description; and (3)
                a "doc string" within a type description. Furthermore,
                there is a question as to whether comments or strings
                within a type go after the ":=" or after the list of
                supertypes. I think #| ... |# comments were not
                considered for this purpose.</div>
              <div><br>
              </div>
              <div>My guess is this:</div>
              <div><br>
              </div>
              <div>* LTDB-style comments (before the type identifier)
                are processed separately from TDL-parsing</div>
              <div>* type-internal comments can go anywhere but are
                discarded</div>
              <div>* type-internal doc strings must appear after the
                list of supertypes and are later available for
                inspection (they are included as a non-functional part
                of a type)</div>
              <div><br>
              </div>
              <div>ACE seems happy with my assumptions, although PET
                doesn't seem to like doc strings at all.<br>
              </div>
              <div><br>
              </div>
              <div><br>
              </div>
              <div>Thanks!<span class="gmail-m_-5022940462080984935HOEnZb"><font color="#888888"><br>
                  </font></span></div>
              <span class="gmail-m_-5022940462080984935HOEnZb"><font color="#888888">
                  <div><br>
                  </div>
                  <div>-- <br>
                    <div class="gmail-m_-5022940462080984935m_-3591690003182791182gmail_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>
          </blockquote>
        </div>
        <br>
        <br clear="all">
        <br>
        -- <br>
        <div class="gmail-m_-5022940462080984935gmail_signature">
          <div dir="ltr">
            <div>
              <div dir="ltr">
                <div>
                  <div dir="ltr">Michael Wayne Goodman</div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    </div></div><span class="gmail-HOEnZb"><font color="#888888"><pre class="gmail-m_-5022940462080984935moz-signature" cols="72">-- 
------------------------------<wbr>------------------------------<wbr>----------
Bernd Kiefer     DFKI GmbH,  Stuhlsatzenhausweg,  D-66123 Saarbruecken
<a class="gmail-m_-5022940462080984935moz-txt-link-abbreviated" href="mailto:kiefer@dfki.de" target="_blank">kiefer@dfki.de</a>   +49-681/85775-5301 (phone)   +49-681/85775-5338 (fax)
------------------------------<wbr>------------------------------<wbr>----------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
<a href="https://maps.google.com/?q=Trippstadter+Strasse+122,+D-67663+Kaiserslautern,+Germany&amp;entry=gmail&amp;source=g">Trippstadter Strasse 122, D-67663 Kaiserslautern, Germany</a>
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster (Vor-
                    sitzender), Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
</pre>
  </font></span></div>

</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Michael Wayne Goodman</div></div></div></div></div></div>
</div></div></div>
</div></blockquote></body></html>