|
|
Dynamic Insertion of Parse SymbolsSome 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
(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 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:
while it is in operation. A similar process adds properties to existing symbols - see ADDPROPERTY. See PARSE and ANDPARSE operators. Collocations - changing strings of words into other strings of words |