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”.)
…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.