Where can I find basic definitions of things like: relational constraints, list append (in particular)?

The index in Pollard&Sag does not list those; I also did not find anything in chapter 1; does anyone remember which chapter I should look in, or what other resource? I am assuming here that there must be an HPSG specific definition; if not, can someone let me know which universe in particular they come from (e.g. Lisp, databases?..)

My impression is that a relational constraint is a kind of â€śbrute forceâ€ť definition â€“ if you want to do something that canâ€™t be done with unification, you can define a â€śrelational constraintâ€ť. The term â€śrelationâ€ť is used in the mathematical sense, but the mathematical notion of â€śrelationâ€ť is so general that you could use this to do whatever you want.

Formally, a relation is a function from n objects to {true, false}. For list appends, it is a function from three lists to {true, false}, true whenever the third list is the first list combined with the second one, i.e. we have a function f, where f(A,B,C) is true whenever C=A+B.

(We could make the statement â€śwhenever C=A+Bâ€ť more formal, but doing so isnâ€™t terribly enlightening.)

Right â€“ â€śrelational constraintsâ€ť are those that constrain the value of one feature to be some arbitrary function of the value of one or more other features. This is in contrast to systems without relational constraints where the value of a feature can be some specific type(d feature structure) or identified with the value of some other feature, or both, but thatâ€™s it.

â€śList appendâ€ť refers to an operation on lists that takes two of them and produces a third list which is the second one appended to the first.

I donâ€™t know of a general glossary for these terms.

I think that text on the wiki is a little misleading, given the example which shows appending a value to the head of a list.

The implementation in TDL has a head and a tail (FIRST and REST); you canâ€™t get to the last element without walking the links, which would be a function (need to find the FIRST of the element with an empty REST). Thatâ€™s why diff-lists include LAST so unification can stitch them together. (And yes, this structure goes back to Lisp cons cells.)