The *top* type in the Matrix hierarchy

What is special about the *top* type in the Matrix? Why is it spelled with the asterisks?

What is special about the *top* type in the Matrix? Why is it spelled with the asterisks?

TL;DR: nothing, just convention, for both questions.

More info (answering in general, not just for Matrix grammars):

  • The asterisks are from a Lisp coding convention where globals are surrounded by asterisks. Otherwise, asterisks have no special significance in TDL and are valid characters in identifiers.

  • The top name is presumably because it’s the top of the type hierarchy. This is, I think, only convention as well, as both ACE and the LKB have configuration variables to change this (top-type and *toptype*, respectively). PyDelphin also has some support for configuring the top variable for type hierarchies. I did not check PET, agree, or other tools.

Thanks, Mike!

The top name is presumably because it’s the top of the type hierarchy.

I was wondering about that. In the current matrix.tdl, *top* inherits from sign. So I am a bit confused by that. Is sign the most top type then?..

Where do you see that? (It seems to me that would create a cycle in the hierarchy…)

Oh! Sorry, that was just me being too tired :). It is the other way around (and it is not even sign):

sort := *top*

…and I guess *top* itself does not need to be defined in matrix.tdl? (Which is something I would call “special”.)

1 Like

…and I guess top itself does not need to be defined in matrix.tdl? (Which is something I would call “special”.)

Correct. It’s got to start somewhere. But this is what those ACE and LKB configuration parameters are for. But I don’t know of any grammars that actually change the top type.