ADDPROPERTY has two uses - at word level and in the grammatical structure. The connections it makes are different for these uses.

Word Level


COLLOCATION(AddingProperty,{NOCONNECT(BeginSentence), ADDPROPERTY(Provided, SubordinateConjunction)})

In this example, the token "Provided" will be linked as an invocation of SubordinateConjunction. You can also change a property ("ChangingProperty"), which means that the property used to match the ADDPROPERTY will be removed as a parent.

Grammatical Structure


ADDPROPERTY(ObjectToBeFound, Property)

Sometimes it is desirable to add a property to a node in the grammar structure, rather than combine several nodes into one. It is relatively common that several nodes are needed to recognise a terminal condition, but they can't be combined into one node, and describing every alternative individually would require too many pattern structures.

As an example, a comma phrase, followed by a noun phrase and a verb phrase, mark the end of a prepositional chain (at the comma). The comma phrase could be turned into a ChainEnder and recognised as such, but it may also be needed for some other purpose. ADDPROPERTY uses the pattern recognition facilities of STRUCTURE1 to recognise the pattern, then adds a property to a particular node so it can participate in several pattern recognitions. In other words, the CommaPhrase stays a CommaPhrase, but also becomes a ChainEnder because of its context.

Adding a property to a node reduces the total number of pattern structures required.

The actual use might look like

STRUCTURE1(AddingProperty,{NOCONNECT(PrepositionalChainComponent2), ADDPROPERTY(CommaPhrase, ChainEnder), NOCONNECT(NounPhrase), NOCONNECT(VerbPhrase)})

The pattern will match only if the CommaPhrase node does not have the property to be added.

Note - PrepositionalChainComponent2 includes all the nodes that can end a prepositional chain.

Sometimes it is more appropriate to change a node's property in a particular context. ADDPROPERTY can be used to change a property, as

STRUCTURE1(ChangingProperty,{NOCONNECT(SubordinatePrepositional), ADDPROPERTY(InterimNounPhrase, PrepositionalNounPhrase), NOCONNECT(SubPrepComponent), NOCONNECT(ClauseTerminator)})

The structure head will cease to be an InterimNounPhrase and become a PrepositionalNounPhrase. Adding and changing properties is the converse of constraint reasoning, where a large number of alternatives is managed down to one. Here, alternatives are being added in a particular context. This is conceptually easier than handing out many irrelevant alternatives at the beginning, and then trying to avoid inappropriate consequences.

Related Operators