At the moment, a grammatical STRUCTURE1 pattern has to match exactly.
Here is an example we have
ClauseInitiator
ClauseSubject
ActiveVerbPhrase
ClauseObject
ActiveInfinitive
ClauseObject
ClauseTerminator
Due to the path of construction, we have
ClauseInitiator
ClauseSubject
ActiveVerbPhrase
InterimNounPhrase
ActiveInfinitive
ClauseObject
ClauseTerminator
So the pattern is not matched. But an InterimNounPhrase within the pattern following an ActiveVerbPhrase can only be an ObjectNounPhrase, which is a ClauseObject.
If we have a pattern failure limited to a single node internal to a pattern, and no other patterns (we know this because parsing did not complete), we look for a path from the current node to the matching node.
We add traversable connections, something like
This path, added to the normal inheritance path, allows us to get from InterimNounPhrase to ClauseObject in three steps.
The rules that apply are:
·
Only one object is transformed, although there can be multiple transformations·
The object must be internal to the pattern (that is, not on an outer limb)·
The connection must be direct that is, not through a NOTCONNECT operator
This mechanism will allow more patterns to match. It is a stepping stone along the way to automatic generation of grammatical patterns.