More Dick Crouch on semantics and names, joyously mangled by me.
The
Entailment and Contradiction Detector (ECD) -- see the old patent http://www.google.com/patents/EP1852811A2?cl=en,
implements a version of what has come to be known as "Natural Logic"
(see http://nlp.stanford.edu/~wcmac/papers/natlog-wtep07.pdf).
This performs inference by determining specificity relations between words, phrases, and sentences. For example, "dog" is more specific than "mammal"; "_ saw a dog" is consequently more specific than "_ saw a mammal"; and so "John saw a dog" is more specific than "John saw a mammal".
This performs inference by determining specificity relations between words, phrases, and sentences. For example, "dog" is more specific than "mammal"; "_ saw a dog" is consequently more specific than "_ saw a mammal"; and so "John saw a dog" is more specific than "John saw a mammal".
In the normal course of events, more
specific versions of sentences imply more general versions. So "John saw a
dog" entails that "John saw a mammal", but not vice versa.
However, the construction of sentences can affect specificity relations over
and above the contribution made by individual words. For example,
"dog" is a more specific term than "mammal",
but "John likes mammals" is less specific claim
than "John likes dogs" (the second carves out a more restricted set of
possibilities).
Similarly, "No
person saw a dog" is more specific and entails "No man saw a
dog", and is contradicted by "A man saw a dog."
Most
approaches to using natural logic for textual inference either rely on very
close alignments of semantic representations, or on heuristics operating on
bags of words and word order. We pursue an intermediate path
where we primarily match words at the individual level, but update those
matches according to the syntactic/semantic structures in which those words
occur.
In the previous post we saw that we can construct
graph
objects as semantic representations.
Semantic
graphs comprise four sub-graphs:
Role Graph: This represents the basic predicate argument
structure of the sentence. Nodes in the graph correspond to skolem and context
terms in the (non-graphical) semantic representation, and the arcs between them
are semantic roles relations.
Within role graphs, two distinct kinds of node are distinguished: skolem nodes and context nodes. Skolem nodes are terms that are for the most part directly introduced by lexical items (nouns, verbs, adjectives, adverbs). Context nodes can sometimes additionally be introduced by words and/or constructions. For example, the verb "believe" introduces both a skolem for the act of believing, and a hypothetical context in which the thing believed is situated. All sentences have a top level / true context, and other contexts are introduced by arcs linking them to skolem or contexts nodes in pre-existing contexts. All contexts should have a context_head arc that links the context to the main/head skolem defining the context. This relation is important for the proper treatment of negation.
Within role graphs, two distinct kinds of node are distinguished: skolem nodes and context nodes. Skolem nodes are terms that are for the most part directly introduced by lexical items (nouns, verbs, adjectives, adverbs). Context nodes can sometimes additionally be introduced by words and/or constructions. For example, the verb "believe" introduces both a skolem for the act of believing, and a hypothetical context in which the thing believed is situated. All sentences have a top level / true context, and other contexts are introduced by arcs linking them to skolem or contexts nodes in pre-existing contexts. All contexts should have a context_head arc that links the context to the main/head skolem defining the context. This relation is important for the proper treatment of negation.
Property Graph: Some words (e.g. determiners) as well as morphological features (e.g. singular/plural, past/present tense) do not lead to the introduction of new skolem nodes. Instead they mark properties on existing skolems. The property relations are held in the property graph. Values of the properties are represented as value nodes and are typically atomic (string valued).
Lexical Graph: The lexical graph is used to records other lexical information associated with the skolems, typically derived from the semantic lexicon. Skolems in the role graph will have lexical edges linking them to zero or more sense nodes. The contents of the sense nodes include the sense identifier, and a list of concepts that the sense is attached to. (In the PARC incarnation of ECD the semantic lexicon was called the Unified Lexicon and it was homegrown. Other instantiations are possible.)
Link Graph: The link graph indicates
identities between nodes, as induced by such things as (a) anaphora
resolution, (b) copula, appositive and other constructions (Obama is the
president; Obama, the president), and (c) lexical coreference links
identifying lexical skolems with those introduced explicitly in the
sentence (e.g. part of the lexical entry for "pilot" says that
"pilots fly aircraft" -- the pilot mentioned in some sort of "naive
semantics" is lexically coreferent with the word that introduced it)