% TOP operational
change_rule_and_context(_Context, top) :-
	cat(top).

% UTTERANCE operational
change_rule_and_context(_Context, utterance) :-
	cat(utterance).

% NP, PP, VBAR operational under UTTERANCE
change_rule_and_context(utterance, np) :-
	cat(np).
change_rule_and_context(utterance, pp) :-
	cat(pp).
change_rule_and_context(utterance, vbar) :-
	cat(vbar).

% NP and SUBORDINATE_CLAUSE operational under PP
change_rule_and_context(pp, np) :-
	cat(np).
change_rule_and_context(pp, subordinate_clause) :-
	cat(subordinate_clause).

% N operational under SUBORDINATE_CLAUSE
change_rule_and_context(subordinate_clause, n) :-
	cat(n).

% Lexical goals operational anywhere
change_rule_and_context(_Anything, lexical) :-
	lexical.