[developers] Questions on the syntax of TDL

Michael Wayne Goodman goodmami at uw.edu
Thu Jul 12 07:15:50 CEST 2018


On Wed, Jul 11, 2018 at 7:59 PM, Francis Bond <bond at ieee.org> wrote:

> On my phone so forgive the brevity, but in Paris we agreed that the
> docstring will start and end with three ".   I think this is what pet now
> supports, Dan has a patch for the lkb, and I suspect I was meant to ask
> Woodley to add out to ACE.
>

Sorry I missed out on all the fun this year :(

I see what you describe mentioned in the LTDB presentation:
http://users.sussex.ac.uk/~johnca/summit-2018/ltdb-update.pdf

It seems the changes to PET are not yet merged in. Also I think Glenn would
also like to know about the agreement.


> Comments anywhere would be great.
>
> Thanks for pushing this forward Michael.
>
> On Thu, 12 Jul 2018, 12:34 Michael Wayne Goodman, <goodmami at uw.edu> wrote:
>
>>
>> On Wed, Jul 11, 2018, 19:24 Woodley Packard <sweaglesw at sweaglesw.org>
>> wrote:
>>
>>> 2 cents worth...
>>>
>>> 1. I think the logical behavior for an addendum with a doc string is
>>> concatenation, not replacement.  The doc string on the addendum should
>>> document what the addendum adds to the type, not the whole type.
>>>
>>
>> Hmm, good point. I guess the addendum can only add constraints, so the
>> old docstring wouldn't necessarily become invalid. I was comparing to
>> method overrides in Python classes, but that's not a useful comparison.
>>
>>
>>> 2. ACE (I believe) allows comments just about anywhere in TDL.  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.
>>>
>>
>> Yes, it's definitely more useful to allow comments almost anywhere, and
>> not really hard to parse, either.
>>
>> Regards,
>>> Woodley
>>>
>>> On Jul 11, 2018, at 5:00 PM, Michael Wayne Goodman <goodmami at uw.edu>
>>> wrote:
>>>
>>> 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:
>>>
>>>     sign_min := *avm* &
>>>       "doc"
>>>       [ SYNSEM synsem_min,
>>>         KEY-ARG bool ].
>>>
>>> But flop doesn't like it:
>>>
>>>     goodmami at tpy:~/grammars/erg$ flop english.tdl
>>>     reading `Version.lsp'...
>>>     converting `english.tdl' (ERG (1214)) into `english.grm' ...
>>>     loading `english.tdl'... including `fundamentals.tdl'...
>>> fundamentals.tdl:21:3: error: (syntax) - got `                   [',
>>> expecting `.' at end of type definition
>>>     [...]
>>>
>>> I get similar errors no matter where I put it (before :=, directly after
>>> :=, after ]). It's syntactically valid if I have ... *avm* & "doc" & ...,
>>> but then it has trouble unifying (as expected).
>>>
>>> It does, however, seem to be happy having a comment there (both ; and #|
>>> styles) instead of a doc string.
>>>
>>> I'm using flop version 0.99.14svn_cm from the LOGON distribution.
>>>
>>> On Wed, Jul 11, 2018 at 7:00 AM, Bernd Kiefer <Bernd.Kiefer at dfki.de>
>>> wrote:
>>>
>>>> Concerning question 3, at least in TDL and PET there was no such
>>>> restriction,
>>>> but that could make the definition of docstrings easier.
>>>>
>>>> Best,
>>>>
>>>> Bernd
>>>>
>>>> On 11.07.2018 03:01, Michael Wayne Goodman wrote:
>>>>
>>>> I attempted to define a BNF-like description of TDL syntax on the wiki:
>>>> http://moin.delph-in.net/TdlRfc
>>>> 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.
>>>>
>>>> My 3 questions above are concisely repeated at the bottom of the wiki
>>>> along with some others.
>>>>
>>>> I welcome corrections and discussion (here or on the wiki) from any TDL
>>>> nerds or authorities (especially if you've written a TDL parser).
>>>>
>>>> On Mon, Jul 9, 2018 at 12:49 PM, Michael Wayne Goodman <goodmami at uw.edu
>>>> > wrote:
>>>>
>>>>> Hi developers,
>>>>>
>>>>> 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)
>>>>>
>>>>> 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.
>>>>>
>>>>> Q1: Are supertypes special in a definition?
>>>>>
>>>>> The BNF (in the LKB source) says this:
>>>>>
>>>>>     Type-def -> Type { Avm-def | Subtype-def} . |
>>>>>                          Type { Avm-def | Subtype-def}.
>>>>>     Avm-def -> := Conjunction | Comment Conjunction
>>>>>     Conjunction -> Term { & Term } *
>>>>>     Term -> Type | Feature-term | Diff-list | List | Coreference
>>>>>
>>>>> That makes it sound like I could do this:
>>>>>
>>>>>     mytype := [ FEAT val ] & supertype.
>>>>>
>>>>> or even:
>>>>>
>>>>>     mytype := <! diff list.. !> & #coref & supertype.
>>>>>
>>>>> 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/tdltypeinput.lsp I see this alternate definition
>>>>> of Avm-def:
>>>>>
>>>>>   ;;; Avm-def -> := Parents Conjunction | Parents Comment Conjunction |
>>>>>   ;;;               Parents | Parents Comment
>>>>>
>>>>> 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.
>>>>>
>>>>>
>>>>> Q2: Subtype-def is now just a variant of Avm-def, yes?
>>>>>
>>>>> The BNF still describes subtyping (with the :< operator) as only
>>>>> taking a single parent:
>>>>>
>>>>>     Subtype-def ->  :< type
>>>>>
>>>>> But I believe the consensus is that this is unnecessary (it's
>>>>> equivalent to using := with only a supertype), so :< is treated as
>>>>> equivalent to := (to avoid breaking backward compatibility). Is this
>>>>> interpretation used by all processors?
>>>>>
>>>>>
>>>>> Q3: What's the final word with type comments / docstrings?
>>>>>
>>>>> 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.
>>>>>
>>>>> My guess is this:
>>>>>
>>>>> * LTDB-style comments (before the type identifier) are processed
>>>>> separately from TDL-parsing
>>>>> * type-internal comments can go anywhere but are discarded
>>>>> * 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)
>>>>>
>>>>> ACE seems happy with my assumptions, although PET doesn't seem to like
>>>>> doc strings at all.
>>>>>
>>>>>
>>>>> Thanks!
>>>>>
>>>>> --
>>>>> Michael Wayne Goodman
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Michael Wayne Goodman
>>>>
>>>>
>>>> --
>>>> ----------------------------------------------------------------------
>>>> Bernd Kiefer     DFKI GmbH,  Stuhlsatzenhausweg,  D-66123 Saarbrueckenkiefer at dfki.de   +49-681/85775-5301 (phone)   +49-681/85775-5338 (fax)
>>>> ----------------------------------------------------------------------
>>>> Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbHTrippstadter Strasse 122, D-67663 Kaiserslautern, Germany <https://maps.google.com/?q=Trippstadter+Strasse+122,+D-67663+Kaiserslautern,+Germany&entry=gmail&source=g>
>>>> 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
>>>>
>>>>
>>>
>>>
>>> --
>>> Michael Wayne Goodman
>>>
>>>


-- 
Michael Wayne Goodman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.delph-in.net/archives/developers/attachments/20180711/ed256d6c/attachment-0001.html>


More information about the developers mailing list