Some conceptual areas that need fleshing out.
He opened the door to Welsh migrants.
The door was presumably closed to others. A state that is variable with context. Not only context, but also partially.
He opened the door to some Welsh migrants.
John thought Fred was guilty, but he was innocent.
The clausal logical state coming from "John thought" is negated by "he was innocent", without negating "John thought".
No matter how many patterns we have (now about 6,000), there will still be need for more. We will have to dynamically create them. The rules for dynamic creation are likely to involve semantics - is this a roundabout way of saying the system must be able to generate text before it can understand text?