ABSTRACT

This chapter argues two powerful extensions are introduced. One is a special kind of data-structure, a list, the other a type of rule that is essential for defining relations involving lists. Lists will form the basic data-structure for later NLP programs where they will be used to represent sentences. There are two sorts of list; the empty list which has no elements and non-empty lists which contain one or more items. Variables can also be used in lists. In terms of Prolog's syntax, lists are technically function-argument structures. A data structure is recursive if it contains other structures like itself. Lists, therefore, are recursive structures since, the empty list aside; the tail of a list is also a list. Because of this structure, rules defining relations which relate to lists also need to be recursive. One of the simplest relations on lists is member. Another useful relationship involving lists is concat. As with member, the definition of concat is recursive.