Here is a sketch. We will translate a sequence of sentences (a story) into a labelled, coloured graph. We have red object nodes, green concept nodes and blue year nodes, together with white assertion nodes and black denial nodes. The story
Caesar was a Roman in 59BCis translated into the following graph.
Caesar crossed the Rubicon in 59B
Vercingetorix was not a Roman in 60BC (wide scope negation)
How to introduce quantification into this picture? First we can use familiar equivalences to convert existential denials into universal assertions and universal denials into existential assertions:
~∃x.xAt ---> ∀x.~xAtSo we need to deal only with existential and universal assertions. To translate the existential assertion
~∀x.xAt ---> ∃x.~xAt
Someone crossed the Rubicon in 61BCwe introduce a new, unlabelled object node and append the following subgraph.
The price of doing this is that we may later discover that this anonymous someone is identical to a named object (or indeed another anonymous someone). When this occurs we simply merge the two nodes in question.
Some Roman crossed the Rubiconlooks as follows with existential generalisation over both objects and years. Note that we see this as
Someone, in some year, was both a Roman that year and crossed the Rubicon that year.
Universal quantification looks rather different. Consider
Every Roman crossed the Rubicon.This is equivalent to
For every object x, if x was a Roman in some year then x crossed the Rubicon in some year.We can see this as a graph transformation rule based on pattern matching. Whenever the graph contains a subgraph that matches the left hand graph, ignoring any labelling of the object and year nodes, we can replace it with the right hand graph with the corresponding labelling preserved.
This, I hope, goes a little way towards explaining quantification without talk about domains or sets. It remains entirely 'internal' to the story. It reflects what someone would 'know' after hearing the story.
No comments:
Post a Comment