Question:
First, I would like to apologize if my termnology is off. Where my terms
are off, I would appreciate knowing the correct ones for what I am trying to
describe so I can better communicate my thoughts to others in the know.
What I am hoping to find is mathematical rules that converts English
sentences into equations that produce a sum. A computer that following
these rules could do something like:
Example sentence: A raven is a black bird.
Mathematically translated: raven = black + bird
Not taking in outside information (such as the other birds which are black)
but simply what the sentence gives as information and converting it into a
sum equation.
In the websites comp.ai.nat-long and comp.ai.philosophy (the thread there
being: "Which open source NLP would best serve me to do...?"), they thought
what I might be seeking is positional or sentential calculus. Not "raven =
black + bird" but possibly "bird = {raven, robin, ostrich, tern, ...} and
BlackBird = {raven, crow, blackbird, sooty, owl, ...}." The above then
becomes an "intersection of two (or more) classes."
What I am wondering, hoping, and expecting is that someone has at sometime
in history tried to convert English sentences into equations, established
rules for doing so, and these rules work on at least simple sentences. Does
anyone know of such an attempt or success? If so, what was the system
called and who developed it? URLs would be greatly appreciated.
Answer:
I don't think there are hard rules so much as suggestions, guidelines,
and general informal rules as to how to convert English into formulas,
since English, being a natural language, seems to have too many nuances
and too much ambiguity to "map" it perfectly to a formal language. If
there is a set of hard rules, they'd be in some form of linguistics
research, but I personally do not know that there is a complete
rulebook that has been devised.
Since the nineteenth century, there have been many systems proposed for
formalizing logic and mathematics, especially by Boole, Schroder,
Pierce, and Frege, going into the twentieth century in which the
systems have been made computer-rigorous.. Since you mention that you'd
like sums, you'd probably be interested in the work of Boole, at least
historically, though more modern treatments might be better suited for
you.
If you don't insist that the formulas always give sums, but are still
completely rigorous and mathematical, then you'd do well to study
symbolic logic, which, at least at a beginning level (and far advance
level too), concentrates on the sentential calculus (also called
'propostional logic' or 'sentential logic') and first order predicate
calculus (also called 'first order predicate logic' or 'first order
quantifier logic'). Usually, beginning texts in symbolic logic give
instruction and excercises in rendering English into formulas of the
systems of symbolic logic. My personal favorite for this is 'Logic:
Techniques Of Formal Reasoning' by Kalish, Montague, and Mar, which
requires no previous background in logic or mathematics.
That's akin to the Boolean approach, though somewhat different. (But
you don't really mean that ravens are the same as black birds, since
crows are also black birds, so maybe you mean: All ravens are black
birds.) In predicate logic, we might have something like:
'L' stands for 'is black'
'B' stands for 'is a bird'
'R' stands for 'is a raven'
Also, we have 'A' (imagine the 'A' is upside down) that stands for
'all'. Then we have variables, for example, 'x'.
Also, we have '->' to stand for 'if...then'.
And we have '&' to stand for 'and'.
So we have
All ravens are black birds:
Ax(Rx -> ('Lx' & 'B'))
The 'x' is like a pronoun, so we read this as:
For all x, if x is a raven, then x is black and x is a bird.
If you wanted something stronger, e.g., that the class of humans = the
class of rational animals, then you'd use '<->' instead of '->'. In
this way '<->' stands for 'if and only if'. So:
'H' stands for 'is human'
'N' stands for 'is an animal'
'R' stands for 'is rational'
Ax(Hx <-> (Nx & Rx))
For all x, x is human if and only if x is an animal and x is rational.
I think you mean 'propositional' not 'positional'.
Propositional logic, predicate logic, and the notion of classes are all
related. If you start with a good book, you'll become apprised of the
relations among themYes, there is a MASSIVE history and literature going back about 160
years, and even back to Aristotle (especially as to rules, though
symbolization is not so much a feature of Aristotle). Just do an Internet search on terms such as 'symbolic logic',
'beginning symbolic logic', etc. But be careful of what you find, since
many Internet sources are inaccurate or poorly composed. But once you
get a feel for what is offered, you can see if symbolic logic is what
you're looking for. If it is, I recommend a good book rather than the
Internet
Submit Your
Own Answer!