ADDPROPERTY has two uses - at word level and in the grammatical structure. The connections it makes are different for these uses.
Format:
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.
Format:
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.
ANDWITH
COLLOCATION
INSERTMARKER
ISCONSISTENT
NOTCONSISTENT
NOTWITH
STRUCTURE1
WITHPROPERTY