STRUCTURE1 structures are an implementation of the rules of English grammar, except they are not rules, and they build on each other, and they will delay indefinitely until the right symbols are available near them.

The STRUCTURE1 operator will build an invocation of itself (one without logical control) when its connections are recognised (under certain conditions, it then destroys itself). The number of connections the operator has is arbitrary - as many as are required to describe the symbol string it should match. An example -

STRUCTURE1(SingleWordNounPhrase, {StartNounPhrase,EndNounPhrase})newmatch2.gif (13113 bytes)

That is, if the symbols StartNounPhrase and EndNounPhrase are found next to each other, they will be joined through a new structure with SingleWordNounPhrase at its head. See NextSymbol for a definition of what constitutes the Next and Previous symbol.

When STRUCTURE1 copies itself, it also builds a BRIDGE operator onto the new head node - the BRIDGE operator looks for STRUCTURE1 structures that will match the new head node. See Building Structure. In addition, if the head node is a child of a particular node, an attempt is made to connect to a unique location in the knowledge model using the symbols the structure has joined - if a noun phrase has resulted in "the red fox", then the model will be searched (associatively) for a red fox, and the word which is an invocation of fox will point to it.

The symbol StartNounPhrase itself came from


allowing complex structures to be built up by recognition of their components. The head symbols can be specific, or be turned into more general symbols through ALTERNATIVES operators.

The recognition of a symbol can be just simple matching, or through devices like NOTWITH and ANDWITH, where the absence or presence of alternatives is checked. Sometimes the recognition has to look "inside" the particular node - see WITHPROPERTY.

STRUCTURE1 carries a logical control pin (not shown in diagram, but implicit in the example statements above) - if the input is False, the structure cannot be used. This allows contextual control of the recognition structures to be used - different ones in legal text and technical text, for example.

NOCONNECT operators can be used in the links to a STRUCTURE1 operator - the symbols they connect to are used in matching, but are not connected to when the structural copy is made. For example, StartSentence can be used to recognise a pattern starting at the beginning of the sentence, but it is not affected by connection of the pattern so recognised, and can then be used again in recognising higher level structures.

Sometimes, the matching needs to go further afield, using CHECKLEFT (with an automatic NOCONNECT).

Some symbols need to "cover" what lies below them. BodyNounPhrase is an example of this, and is a child of CoverSymbol - symbols covered by BodyNounPhrase can no longer be seen by NextSymbol and PreviousSymbol - it has effectively swallowed them.

Sometimes, one symbol needs to be turned into another using the surrounding context. An example

STRUCTURE1(InterimEndStartNounPhrase,{Interim1EndStartNounPhrase, NOCONNECT(StartParentheticalPhrase)})

The effect of this will be to make a single connection, and have one symbol turn into another.

A similar result can be achieved by adding a property to the existing node, using ADDPROPERTY. A structure recognises the pattern, then adds a property to a specified node, then destroys itself, allowing other structures to recognise the new property. This is the opposite of constraint reasoning - in constraint reasoning, the object starts with many alternatives and has them pruned away by the context. Here, the object gains new alternatives as a result of being in a specific context - it would make no sense to give every such object this alternative and then need to prune it, when it may only appear once in a thousand times. It also greatly reduces the pattern structure count. There are twenty-seven prepositional chain rules, each relying on a single object to mark the start and finish of the chain. If each rule had several objects to mark its terminus, the twenty-seven could turn into six hundred, and the node checking from four hundred (twenty-seven by an average of sixteen) to ten thousand. That is, using ADDPROPERTY, twenty-seven of one type of rule and ten of another can replace six hundred. ADDPROPERTY can also be used to change the existing property of a symbol.

Sometimes, one symbol needs to be turned into another using the semantics of the relation. An example - a ditransitive prepositional is detected, say from

He leased to John the southern portion of the property.

"to John" follows a ditransitive verb, and may be related to that verb, providing its subject or second object. The STRUCTURE1 pattern only knew to recognise it, but a procedure associated with the structure checks that it is a valid ditransitive use. If it is not, it is changed into an InterimPrepositionalPhrase.

Sometimes, implied symbols need to be inserted in the chain (INSERTMARKER), or removed from the chain (CUTSYMBOL).

In sum, the STRUCTURE1 operator can be used to add structure, add properties, rearrange structure, convert one node into another using semantics, convert parse structure into modifiers, or delete structure.

gd.bmp (624678 bytes)

The diagram shows part of a structure being built by the interaction of thousands of different STRUCTURE1 operators responding to the symbols they are presented with through associative searching (only the relevant structures can be seen at any point).

Large Parsing Model

Gallery - Parsing

Related Operators