Dynamic Insertion of Parse Symbolsparsechain.jpg (17594 bytes)

Some parse structures are recognised, built and then cut out of the parse chain – see Cutting and Healing.

Some parse structures need to be added to - it is easier to actualise symbols that are implied, and then use the standard apparatus that handles them when they are present, than build specialised handling rules that "do it in the air".

As an example

The deposit User pays for access is refundable.

(Legal documents often have quite clipped syntax, as a way of stopping a fifty page contract turning into a seventy page one)

Here, "User" is a defined term, so it is already clear that there are two noun phrases, but there is no anchor for the relative pronoun phrase, as there would be for

The deposit that the User pays for access is refundable.

The situation of two adjacent noun phrases is recognised, and if the conditions are right (it could be the tail end of a prepositional phrase and the beginning of an object noun phrase or two objects following a ditransitive verb), an ImpliedRelativePronoun is inserted. This is done with

STRUCTURE1(InsertSymbol,{INSERTMARKER(NounPhrase,ImpliedRelativePronoun), NounPhrase, ActiveVerbPhrase})

The INSERTMARKER function indicates the position (to the right of the connected object) and its second parameter indicates the object to be inserted (the function is a placeholder and serves no functional purpose).

When an InsertSymbol structure is built, the object is inserted in the prepositonal chain, the covering STRUCTURE2 operator is destroyed, and the new ANDPARSE and PARSE operators are activated.

The parse chain is now tolerant of having:

parts cut out of it - for deletion or parenthesis or collocation or for later modification
new parts inserted in it - implied symbols
cycling while embedded indexed lists are handled, using the head and tail structures in the chain

while it is in operation.

A similar process adds properties to existing symbols - see ADDPROPERTY.

See PARSE and ANDPARSE operators.

Embedded Lists

Collocations - changing strings of words into other strings of words