Hydra Headed STRUCTURE1

At the moment, we have a STRUCTURE1 operator with one head node.

Sometimes, we need to handle multiple cases. We have the following types of verbs:

Intransitive
Transitive
Ditransitive
Factitive - he considered the job a work of art
TransInfinitive – he wanted John to go away
ImplicitTransInfinitive – he helped people avoid foreclosure
TransParticipial – he left the engine running
Clausal
TransClausal – he told John that the bridge was down

Some verbs belong to several types

He got the engine started - TransParticipial

He got Susan the money – Ditransitive

There are two separate paths that can be taken by this symbol. We can have two different pattern structures, but then we don’t allow two structures to be built. We could make up a new node – TransParticipialDitransitiveVerbPhrase – and make it an alternative of both, but these constructs overload the naming.

We can use a WITHPROPERTY operator to look down to the token and see whether it has the other property, but this is expensive and clumsy.

We are already adding properties to the nodes in the parse structure, after the STRUCTURE1 operator has cloned itself. We could do it from the start.

We can take one of two approaches, probably both

STRUCTURE1(TransParticipial, {………….

STRUCTURE1(Ditransitive, {………

ALLOWED1(TransParticipial, Ditransitive)

We find two structures that match, and that we are allowed to build them both, so we place a set on the top node.

Alternatively, we have

STRUCTURE1({TransParticipial, Ditransitive}, {….., ANDWITH(StartTransParticipial, StartDitransitive)

STRUCTURE1(Ditransitive, {….., NOTWITH(StartTransParticipial, StartDitransitive)

The top node carries a set, and then we allow the context to decide further which is used.