Re: The approaches about natural language programming
Posted: Mon Dec 02, 2019 5:42 am
Please don't repeatedly ask other posters to answer a specific question. It almost amounts to stalking. If a poster decides to address your question they will do so; if not that's their choice. Please don't harangue them - apart from anything else it's just boring.
As to the discussion about the Incompleteness Theorem, it seems there is a basic misunderstanding here as to the meaning of "true" in general english and its meaning within a particular mathematical system. Within such a closed system the statement "This statement is true" doesn't make sense - it is not an allowed statement within the mathematical system.
I'm not surprised that amateurs get confused about these finer points of mathematics; it has a history of non-intuitive concepts. Hence we have "irrational" numbers, "imaginary" numbers, etc. These concepts go beyond the everyday experience. For example, there are far more (an infinity more!) irrational numbers than rational numbers. Yet between any two irrational numbers there is a rational number - doesn't make sense does it? It doesn't make sense in our everyday experience, but in its own context it makes perfect sense. Even the concept that there is a hierarchy of infinities is not exactly intuitive.
The Incompleteness Theorem says (in very simple terms) that in any sufficiently rich mathematical system there are some statements that are true but cannot be proven true or false (and, correspondingly, some false statements for which the same holds true). Not intuitive, but no more crazy than Heisenberg's Uncertainty Principle. In physics there are some quantities (or combinations of quantities) that we can't measure; in mathematics there are some true statements that we can't prove true. It's a bit like Donald Rumsfeld's much reviled (but actually deep) statement that "there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know.". I never understood why people didn't get what he was talking about there.
This is actually quite relevant to the concept of natural language programming. We are trying to mix here two quite disparate areas - natural language and computer programming. It's never going to work; it's like trying to apply the everyday meaning of "true" to a mathematical system. At best you end up with unimaginative programs that all follow the same pattern; at worst you have some programs that just can't be written, or that actually end up incorrect ("I'm sorry, Dave, I'm afraid I can't do that."). The joy of a good program is if it solves a problem in a way that nobody had thought of before. This requires an intellectual exercise by a human mind, not some robotic system cobbling together the same old answers to the same old questions.
As to the discussion about the Incompleteness Theorem, it seems there is a basic misunderstanding here as to the meaning of "true" in general english and its meaning within a particular mathematical system. Within such a closed system the statement "This statement is true" doesn't make sense - it is not an allowed statement within the mathematical system.
I'm not surprised that amateurs get confused about these finer points of mathematics; it has a history of non-intuitive concepts. Hence we have "irrational" numbers, "imaginary" numbers, etc. These concepts go beyond the everyday experience. For example, there are far more (an infinity more!) irrational numbers than rational numbers. Yet between any two irrational numbers there is a rational number - doesn't make sense does it? It doesn't make sense in our everyday experience, but in its own context it makes perfect sense. Even the concept that there is a hierarchy of infinities is not exactly intuitive.
The Incompleteness Theorem says (in very simple terms) that in any sufficiently rich mathematical system there are some statements that are true but cannot be proven true or false (and, correspondingly, some false statements for which the same holds true). Not intuitive, but no more crazy than Heisenberg's Uncertainty Principle. In physics there are some quantities (or combinations of quantities) that we can't measure; in mathematics there are some true statements that we can't prove true. It's a bit like Donald Rumsfeld's much reviled (but actually deep) statement that "there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know.". I never understood why people didn't get what he was talking about there.
This is actually quite relevant to the concept of natural language programming. We are trying to mix here two quite disparate areas - natural language and computer programming. It's never going to work; it's like trying to apply the everyday meaning of "true" to a mathematical system. At best you end up with unimaginative programs that all follow the same pattern; at worst you have some programs that just can't be written, or that actually end up incorrect ("I'm sorry, Dave, I'm afraid I can't do that."). The joy of a good program is if it solves a problem in a way that nobody had thought of before. This requires an intellectual exercise by a human mind, not some robotic system cobbling together the same old answers to the same old questions.