Complex semantic representations involving quantifiers, lambda expressions, and so forth, require the use of variables. Compare the following sentences and their parses.
Alice sees Bob see ( alice , bob )
Everyone sees Alice all x . ( person ( x ) -> see ( x , alice ) )
Everyone sees Everyone all x . ( person ( x ) -> all z1 . ( person ( z1 ) -> see ( x , z1 ) ) )
The symbols x and z1 in the previous expressions are variables. It's difficult for the network to determine these symbols since they aren't deterministic based on the input, but rather on what sentences were previously generated by the grammar. To get around this, we could opt for nameless variables, like De Bruijn indices, or require that all variables be numbers and then resetting the counter (somehow?) so that they are deterministic.
Complex semantic representations involving quantifiers, lambda expressions, and so forth, require the use of variables. Compare the following sentences and their parses.
The symbols
xandz1in the previous expressions are variables. It's difficult for the network to determine these symbols since they aren't deterministic based on the input, but rather on what sentences were previously generated by the grammar. To get around this, we could opt for nameless variables, like De Bruijn indices, or require that all variables be numbers and then resetting the counter (somehow?) so that they are deterministic.