Storage
The agent needs a lot of knowledge to function. Knowledge base stores specific type of knowledge - only conceptual knowledge.
Conceptual knowledge is the one that applies to a class of objects, not any specific object. For example apples are fruits.
Not Rule-based
Any attemps to store real-world knowledge as objective rules will fail because real-world doesn't contain any apples or fruits, instead there are elementary particles.
And it's our brain that labels them as apples or fruits. So trying to find rules in the real world is not possible. Instead we capture the knowledge about the concepts - imaginary labels.
Meaning Representation
Meaning of a concept does not come from it's label. Label "Apple" is added for our convenience, but the agent ignores it. The labels can be replaced with random strings with no effect on the agent.
Word "Apple" can mean different things, but any concept only means one thing and that meaning comes from the connections it has with other concepts.
For example meaning of Apple here is that it's a child of Fruit, and meaning of Fruit comes from the fact that it's a child a parent of Apple. But this knowledge neds to be "grounded"
Grounding Knowledge
Grounding is linking imaginary concepts to the real-world. Even though there are no real-world apples, there are formations of elementary particles that trigger that concept in our heads. This triggering is the way we do grounding.
We use patterns to link real-world sensory data to a conceptual knowledge base in the agent's mind
Concept Hierarchy
One of the most important type of knowledge is the conceptual hierarchy. If some knowledge is true for a concept, then it's going to be true for all it's children unless they override that knowledge. This allows us to compress the knowledge base and reduce the complexity.
Hierarchical relations are represented with "parent" edge. Concepts can have many parents.
Concept Classes
Concept "Red" is not a child of concept "Color". It's an instance.
TODO: This needs improved description
Concept Fields
Concepts are usually connected with other concepts. For example "Car" has an "owner" which is usually a "Person". We use fields to represent these types of relations.
Inverse Fields
Knowing one relation often implies other ones. For example if Mike is a son of Sarah, then Sarah is a mother of Mike.
This is represented with inverse fields. Note that they are bidirectional.
Hierarchy-propagating Fields
In some cases we need to be able to asssign the concept of the field to the instance. But it's hard to come up with an easy-to-understand example. Let's skip this one for now.
Concept Specialisation
We can infer some concepts of instances based on the fields they have. For example if the color of a fruit is green, we can infer that the fruit is not ripe (for some fruits).
Field Specialisation
If a human has a field "right_hand" that points to an instance with a concept "Hand" we can realize that the hand is actually "RightHand", so we can add the concept to it.