NOTSYMBOL

Sometimes you want to say "every symbol except this one is acceptable". If every symbol, as part of its checking, came to this rule, it would be very wasteful. The NOTSYMBOL operator provides the facility without the waste. No symbol ever comes to it directly, it is only when checking a specific matching structure that uses it that processing occurs.

Format:

NOTSYMBOL(Symbol1)
NOTSYMBOL({Symbol1, Symbol2})

As an example:

STRUCTURE1(GroupedNounPhrase, {NOCONNECT(NOTSYMBOL(InterimObjectPhrase)), InterimNounPhrase,.....

(NOTSYMBOL will normally be shielded by a NOCONNECT, but that is not necessary)

When STRUCTURE1 is being matched, the appropriate symbol in the parse chain will be found, and checked against the parameter of NOTSYMBOL. If there is no match, the matching on that leg of STRUCTURE1 is successful.

Note

A structure defined as

    STRUCTURE1(ChangeSymbol,{NOTSYMBOL(Symbol1), Symbol2, NOTSYMBOL3})

would not work - the initial match occurs with a minimum of two symbols, and NOTSYMBOL would not provide that.

See PARSE

Related Operators

NOTCONSISTENT

NOTWITH

NLP