PLOGHELP ARROW Jonathan Laventhol March 1984 Revised by Kathryn Seifert August 1986 Operator used to specify grammar rules --> {}*. Keywords: grammar rules, grammar, natural language, syntax, symbols, operators The infix operator '-->' is provided to facilitate the expression of definite clause grammars in Prolog (see PLOGHELP * GRAMMAR_RULE). For information on the conditional arrow ->, see PLOGHELP * CONDITIONAL. As an example, if you wanted to express the fact that a sentence can take the form of a noun phrase followed by a verb phrase, you could write: sentence --> noun_phrase, verb_phrase. The following expresses that a verb_phrase can be composed of a verb, or of a verb followed by a noun_phrase: verb_phrase --> verb. verb_phrase --> verb, noun_phrase. See PLOGHELP * GRAMMAR_RULE for more details on ways of using this operator. Grammar rules expressed in this form are shorthand for normal Prolog terms. The built-in predicate 'expand_term/2' takes a grammar rule written using the '-->' notation as its first argument, and the Prolog clause equivalent of the grammar rule as its second argument (see PLOGHELP * EXPAND_TERM). Here are some examples: ?- expand_term((verb_phrase --> verb), X). X = verb_phrase(_1, _2) :- verb(_1, _2) ?  yes ?- expand_term((sentence(s(NP, VP)) --> np(NP), vp(VP)), X). NP = _1 VP = _2 X = sentence(s(_1, _2), _3, _4) :- np(_1, _3, _5) , vp(_2, _5, _4) ?  yes -- RELATED DOCUMENTATION ---------------------------------------------- PLOGHELP * EXPAND_TERM Predicate to translate grammar rules into normal Prolog clauses PLOGHELP * GRAMMARS Overview of HELP files dealing with grammars and natural language PLOGHELP * GRAMMAR_RULE Prolog facilities for expressing definite clause grammars