CHECKPARENTS allows for inclusion of parents which are not linked to a forbidden set. The format is:
CHECKPARENTS '(' setexpression ',' forbiddenset ')'
There are occasions when the parents of an object should only be drawn from a particular area - separating the properties of real objects from their properties as words, for example, when their parents include both Physical Object and Word.
What CHECKPARENTS does is find the forbidden set, then search for parents - the parents along the way are not included until a path has been found to the very top that does not include any members of the forbidden set. The forbidden set can be added to at any time - if new entries are added that conflict with apparently valid parents already found, the search is restarted with the augmented forbidden set.
CHECKPARENTS(Name Car, Name Word)
The resulting set will include parent objects which provide the properties of physical objects, but will not mention noun or word.
There is no need to use RECURSE with CHECKPARENTS - it has to go all the way up the hierarchy to check the validity of any parent (the hierarchy is typically only six or eight levels deep, so it is not too wasteful).
There are ways of constructing the forbidden set - see ONLYCHILD.