Hacker News new | past | comments | ask | show | jobs | submit login

It's been over a decade since I graduated; so forgive me if I don't remember the terminology :) The Frege-Russell distinction is often described with the Julius Caesar example: if I take Julius Caesar and make a perfect, instantaneous atomic copy of him 2 feet away, how do I refer to them? Because it is not really in dispute that they are two separate entities. Are they both Julius Caesar, the man? Or is one Julius Caesar and the other a copy? If you sent them both into a room together and asked them to come out again, how do you determine which one is the copy? This is an admittedly contrived example, but it's relevant because in a computer we can and often do copy objects, change them, then care to distinguish between identity and equality.

Certainly we could come up with linguistic rules to differentiate them, but for the sake of convenience (or maybe because each of us possesses an incomplete knowledge of linguistic rules) we may refer to them as being the same. But this problem becomes much less difficult in a symbolic language, where many languages have defined an identity operator (usually ===) and an equality operator (usually ==).

You're right that we have language rules; but many of these rules are arbitrary and mutable in their own right (and do change over time as your previous comment pointed out). The problem starts to come in that language rules are a lot more complex and subject to multiple different (and potentially correct) interpretations.

I side with EWD on this one: the interpretation of natural language is going to differ from person to person and as such, building a system that can perfectly discern intent is going to require so much context as to be impractical. It's just easier to program a computer using a symbolic language, while building in well understood formal rules to the symbolic languages that cover the vast majority of cases.

It's not that it would be impossible to develop a general purpose compiler capable of interpreting natural language to machine code; merely impractical. Symbolic languages are much better adapted to these tasks; just as natural languages are much better adapted to conveying uncertainty.




Well, the issue you point to here is the flux of language, which is a real problem. There is no "English," we have no academy like they do for French (which is bullshit anyway), and we never will, and it would be impossible. There is just a series of languages each wholly understood only by the speaker, and perhaps people in the immediate culture of the speaker.

Now, this is sort of a problem, but it's not as though we are walking around confused all day. We make it work, we formalize, we come up with a perscriptivist framework, even if we live in a decriptivist world.

We can do this with any issue brought up with being verb "problems." Our Julius Caesar issue is fixed by a simple convention (yes we have conventions in English as we do in formal languages). Getting people to follow the rules is the only problem, and it will eventually fail, but that doesn't mean we won't have a few hundred years of it working, possibly more.

The issue of practicality is an entirely different question. Currently, it's an absurd proposition, that isn't to say however, that it isn't doable. Especially with greater computational power in the future. I think saying it's impractical is a cop out. The amount of energy that goes into learning languages is immense. If we were able to learn one syntax, nearly identical to English, that could convert instructions into readable code, we'd enter a renaissance of programming akin to art after the photograph was invented, or the current renaissance of music we've created with the invention of the synthesizer and sampler. Skill would evaporate, ideas would reign. People would complain that proper rules aren't being followed like they always do, but the amount of programs produced would expand so far that the cream would rise to the top and the world would be a better place.


I guess if I had to boil the problem down to a thought, it would be this: the effort required to build a system capable of interpreting the nuance of language would be as much or more than building a system capable of generating and implementing its own ideas. Once you have a sufficiently powerful AI, you don't even need to tell it to do anything; it should just do it based off sensor data.

If, for security reasons, you wanted to shackle an AI from making and acting on its own choices, you would need to shackle its ability to interpret language as well because they are the same thing. You have to make choices about implied intent when interpreting language; and those choices. You can't just restrict a machine to making choices on linguistic interpretations if those interpretations then lead directly to action (in the case of natural language programming).

We can (and have) created sets of natural language interpreters for specific situations: Siri is a good example of that. But by and large these are hacks that flag specific situations (such as creating a reminder or opening an app) and pick out the relevant phrases and plug data into fields.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: