# What would be a good internal language for an AI?

For an AI to represent the world, it would be good if it could translate human sentences into something more precise.

We know, for example, that mathematics can be built up from set theory. So representing statement in language of set theory might be useful.

e.g. "All grass is green" is something like: $$\forall x\in grass: isGreen(x)$$

But then I learned that set theory is built up from something more basic. And that theorem provers use a special form of higher order logic of types. Then there is propositional logic.

Basically what the AI would need would be some way representing statements, some axioms, and ways to manipulate the statements.

Thus what would be a good language to use an internal language for an AI?

• AFAIK, language is quite a complex concept. Scientists are still debating whether we think before giving it language in our brain or the other way round (think about how deaf people think when they have no language). Also we don't know how our brain processes analog spikes of information to construct something like language. So it is suitable to say, numbers are the only good language for AI which can be translated into sentences by using some classifier/discriminator. – DuttaA Dec 1 '19 at 6:36
• @DuttaA Well it's true we don't know how the human brain works. But I was thinking more of a robot brain that we might like to make more logical in a way so it didn't make mistakes. – zooby Dec 1 '19 at 6:41

This is (even though it doesn't look like it at first glance) a deeply philosophical question about the nature of 'meaning'. This answer is necessarily limited in scope.

There are many ways of representing knowledge, and countless formalisms have been developed since the early days of AI. Many of them are based on some kind of predicate calculus, ontologies, semantic networks (providing eg inheritance of features and part-of relationships), and they seem to work fine for limited domains.

One problem is the grounding: if you have a predicate isGreen(x), what does that actually mean? How is it related to isBlue(x)? Do you want to treat them similarly? If so, you need to represent this somehow. You quickly come to the point where you will need to encode all the world's knowledge in some generalised way. An impossible task.

Linguists have struggled with this for decades: what is the meaning of a particular sentence? Apart from the fact that every individual human will interpret a given sentence differently (based on their own life experience and culture), there are many aspects to 'meaning' that need representing: the 'factual' meaning, but also pragmatic, evaluative, and all sorts of other nuances. An innocent utterance, That's a nice Apple you've got there, could have a whole raft of meanings packed into it, all implicit. For example, the person probably likes apples, that one in particular, that apple looks like a tasty piece of fruit, the other person is the owner of the apple, and it might also be a request which is intended to prompt the other person to offer it to you. How are you going to represent all that meaning?

One area that interests me personally is representing narrative events. This can — up to a point — be done using Conceptual Dependency, which uses a limited set of semantic primitives. While useful to encode basic stories, you cannot easily use it to represent the fact that grass is green.

So the answer is: there is no answer. AI is too broad a field, and you need to look at a particular application to decide which knowledge is relevant to it, and then how it can best be represented. There is a reason why there are so many ways of representing knowledge.

PS: You suggest this would be more precise. My personal view is that precision here is a red herring. The word green is not precise, as it covers a range of wave lengths, and different people would disagree on whether something is green or not. So a predicate isGreen(x) is not any more precise than that. Hence the appeal of fuzzy logic, which allows computation to be based on less precision.

• @ManuelRodriguez Manuel, I think you haven't really understood my answer. CD has got nothing to do with "agents in a computer game"; and I only provided this as one example to illustrate that knowledge representations exist with many different foci. If you have a "better idea", then write it up in an answer rather than just downvoting mine. – Oliver Mason Dec 2 '19 at 9:00
• Well I assume isGreen() would be related to the green photo-receptors of the eye being fired (or the expectation theorof). That's an easy one! – zooby Dec 2 '19 at 20:13
• @zooby on the contrary: which wavelength does it correspond to? en.wikipedia.org/wiki/Photoreceptor_cell#/media/… – Oliver Mason Dec 2 '19 at 21:00

I think the first question you should answer is: "What questions should the AI be able to answer?" If the intend was that the AI should be able to answer any questions, then that is simply not doable (or at least currently it is not doable). Currently this is similar to asking for a program that can do anything.

Currently the AI field is split between statistical approaches and logical approaches. In the early years AI was approached mainly from a logical perspective. Now statistical approaches are more popular. The main advantage of logical approaches is that answers can be explained, while the main advantage of statistical approaches is that given large enough data sets agents can be trained. There is definitely a drive in the AI community to merge statistical and logical approaches to AI, but these approaches are still in its infancy.

I therefore will strongly suggest you first determine the kind of problems you will want to address with AI, then based on that, you determine the AI approach that is best suited for those problems.

From my perspective you should look at the concept of ontologies, which might briefly be described as a set of axioms that formalize concepts such as {Grass, Water, Green} and relations between those like hasProperty(Grass, Green) and needs(Grass, Water). To describe such kind of knowledge the Web Ontology Language was created. The theoretical framework on which it is built are different flavors of description logics, which all are fragments of first order predicate logic, but come with different tradeoffs between expressiveness and computational complexity for automatic reasoning.

As with other AI-topics this kind of stuff can get quite involved ‒ and interesting. I can recommend the open textbook: An introduction to ontology engineering by Maria Keet (University of Cape Town).