Grammar Engineering Frequently Asked Questions

How do I constrain something to be not of a certain value?

The tdl formalism does not include any explicit negation operator. However, in most cases, you can use the logic of the type hierarchy to encode negative constraints.

For example, suppose your language has three cases, nominative, accusative, and dative, and that you want to constrain the value of CASE on some type to be not dative. Within this closed system, not dative is the same as nominative or accusative. Therefore, it suffices to define an intermediate supertype for nominative and accusative, which excludes dative:

case := *top*.
dat := case.
nom+acc := case.
nom := nom+acc.
acc := nom+acc.

Given this hierarchy, "The case is not dative" (equivalently, "The case is nominative or accusative") can be expressed thus:

[ CASE nom+acc ].

Back to FAQs page

Back to main course page

-- EmilyBender - 02 Nov 2004

Topic revision: r3 - 2006-04-30 - 21:36:52 - JonahCohen

This site is powered by the TWiki collaboration platformCopyright & by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Privacy Statement Terms & Conditions