4 ms·
> you want John Doe to delete something from the system? He might try to unplug the harddrive, maybe that's what he thinks "deleting" means. Highly unlikely th
by 305b283f 12y ago
> you want John Doe to delete something from the system? He might try to unplug the harddrive, maybe that's what he thinks "deleting" means.
Highly unlikely that someone familiar with the system (even in an informal way) would do this, for the same reason that you have no trouble understanding me when I say "fruit flies like a banana". Is there technically a chance that I mean "all pieces of fruit fly through the air in the same manner that a banana flies through the air"? Sure. But it's so ridiculously low that you simply ignore it and are willing to accept the infinitesimal risk of misunderstanding.
Should all programming or user interface work be done this way? Of course not. I'm just saying it would be a very effective level of abstraction for a great many use cases, in the same way that I don't need formal mathematical notation to write a Python statement to print "hello, world".
Of course, he formalism has to be there once you get down far enough, in the same way that showing Sharon how to do an account credit in the CRUD system means that you are altering neural structures with electric and chemical signals.
However, the person who trains Sharon doesn't need to know exactly what neurons to stimulate in Sharon's brain with exactly what voltage in order to teach her that system - the relatively lofty level of abstraction provided by English works just fine.
- the_af 12y agoI agree with some of what you say. The fruit flies sentence, for example. We humans are decent at disambiguating those, I'll grant you that. Allow me to add some random thoughts: - Python's print "hello, world" IS a formal notation. It's just that this particular notation and this particular task are so simple that we can delude ourselves into thinking it's English. But when you move to actual Python scripts, the only ones who believe "it sounds like English" are programmers :) I wouldn't trust my mom to write a Python script, after all. - Let's go back to our CRUD/office situation example, and allow me to make it a bit more realistic (but still funny): "Sharon, please print the report." "Which report?". "The one I asked you about yesterday." "Uh, you asked about two reports yesterday. Do you mean the one about fruit flies or about bananas? Or do you want both?" "Yes." "Sorry, yes what? I asked you multiple questions!" "Yes, both reports. I forgot about the other one, but I want it too." (...) "Ok, even though I have a terrible headache, I printed your reports. Here they are." "Oops, sorry Sharon. I didn't mean you had to print them now. Tomorrow would have been fine. Also, please don't get mad, but I didn't want them on my desk. They are actually for Jane on the fifth floor... Didn't I mention that? Also, why did you print them using the expensive printer?" ---- My point is that just doing CRUDs with English is probably fine, but as the complexity of the task approaches that of a general purpose programming language, the level of precision you must use with your language approaches that of a formal system. Which is what programming languages are...
- ScottBurson 12y agoYou've hit on an important point here. When we instruct our machines in natural language, they are surely going to have to be able to ask us questions to resolve ambiguities and fill in details we haven't specified. There is actually a theory of how two entities reach agreement through conversation: http://en.wikipedia.org/wiki/Conversation_theory http://en.wikipedia.org/wiki/Conversation_theory