by William Tunstall-Pedoe
True Knowledge is building a computer understandable repository of the world's knowledge.
Unlike repositories like Wikipedia, the knowledge isn't in the form of text but in a form that computers can process to derive new knowledge and answer questions it hasn't seen before.
Users can teach the system new concepts and add new knowledge without having to understand how the knowledge is represented. This knowledge can then be used to answer questions from users and other computers.
With Valentine's Day approaching I though it might be fun to teach the system about love: in particular what it means for one person to be in love with another!
I want to stress that we are absolutely not planning to store knowledge about who is in love with who in the knowledge base but even to respond to questions on the subject by saying "sorry we don't record this", the system has to first understand what the concept is about.
I thus told the computer that I wanted to teach it about love.
Knowledge in True Knowledge is fundamentally represented as a named relationship between two entities. Entities can be anything that can be thought about or denoted in natural language, places, colours, lengths, people. Representing the concept of being in love is thus the equivalent to registering a new relationship which can exist between two people: the [is in love with] relation.
To add a new relation the computer asks questions and the user's responses go into the repository as facts it can use to recognise questions that use the concept and to infer the right answer from other knowledge.
In this screen, the system prompts for a way of uniquely denoting this relation (the "URS") – this allows the system to communicate about this relation with people in a way that won’t cause any confusion.
This question just captures various ways of saying the same thing – the knowledge is used to understand questions about love, so the same questions can be asked in many different ways.
For the next question, the system asks what kind of entities this relation can exist between. Although people talk about being in love with their jobs or their pets, the concept I am registering is the strong romantic feeling that exists between one person and another so I'm going to use "human being" for both sides of this relation (a second similar question about the right side of the relation is not shown).
This knowledge is used to give meaning to the
relation and to disambiguate. For example, if I were to ask the system who Madonna is
in love with, it can use this knowledge to work out that I'm probably talking
about the famous singer and not the 1990 movie or any of the places called
Madonna in Italy.
Ouch. This question asks about the permanence of the relationship. For example, [is a parent of] is permanent, as is [is the date of birth of].
Unfortunately, this relation is not (necessarily) permanent.
This question (and another similar one the other way around) captures the knowledge about whether the entities have to exist for the relation to hold. My answers to these questions are that the person on the left side of this relationship has to be alive to be in love (it’s an emotion) but they can certainly still be in love with someone who is dead.
Next question:
This question is about symmetry and is used to make inferences when for example someone asks who a celebrity is married to and the fact is stored in the repository the other way around with their spouse first.
[is married to] is a very good example of a symmetric relation as it is impossible to be married to one's spouse and not have your spouse married to you at the same time.
Alas, I have to inform the system that [in in love with] is not…
This next question is to determine whether [is in love with] is transitive. An example of a transitive relation is [is geographically located within], so if I ask whether True Knowledge Ltd is located in Europe the system can say "yes" by inferring the answer from the fact it is in England, England being in the UK and the UK being in Europe (for example).
Clearly the [is in love with] relation isn't transitive. In fact, you could say that different emotions are much more likely...
(People grounded in mathematics might wonder why reflexiveness isn't asked about: whether it is possible to be in love with oneself... Although this would be amusing question in this case, we don't routinely prompt for this as it is less useful than other knowledge, but the concept is understood and this information can be asserted later!)
Next we get questions about numbers:
This property is a feature of [is the president of] (for example) where only one entity can hold the relationship with another named entity at the same time. Unfortunately, [is in love with] is not left unique.

A simple clarification of my previous answer. Yes a person can have more than one person in love with them but only having one person in love with them is also possible (arguably more usual in this case).
This question is about “right uniqueness” or in other words…. is it possible to be in love with more than one person?
People will argue about this but I think the answer is yes – at least some people certainly have reported it to be the case…
The above two screens extract additional ways of talking about the relation which are then used to find interpretations of users' questions and fact assertions which use this language. “admirer” can mean this but most other terms like “sweetheart” imply a two way relationship which isn’t exactly the same as this so they were ignored.
We’re nearly there: the system prompts for an ID which will be used internally to represent this concept and some documentation.
Finally, we get shown the knowledge that has been extracted from our interactions with the system: the concept of love turned into a machine-understandable set of 24 facts:
The “add these facts” button is clicked and the facts are checked to see if they are semantically compatible with other things it knows before writing them into the repository.
The computer now knows about love... or does it?
To add your own concepts and help us test the system, please apply here




















Absolutely incredible. I can't wait to add to it! I have so many questions about it too...
Posted by: Chris Rittelmeyer | 09 August 2008 at 09:03 AM
I think users can teach the system new concepts and add new knowledge without having to understand how the knowledge is represented.
Posted by: cheap computers | 05 August 2009 at 05:57 PM