Our most productive user recently has been Ekaterin, who's adding things about the prehistorical periods. Other users have been adding things as diverse as scarves and Maxwell's equations. They were quick off the mark when the US election results came in too. We had questions like Who won the US presidential election? working within minutes of the announcement, thanks to Equanimous.
We had another new knowledge engineer start this week. David Palfrey has been a beta tester for us for months so it was great to convert him into an employee. He's got started organising all our manufactured item ontology which will be really useful.
Something else we've been look at are n-ary facts. Most of our facts are stored as a relationship between two objects, such as [bill gates] [is married to] [melinda gates]. Working with facts involving more objects is harder. In theory we've got three ways of dealing with this but we've only needed to use two of them so far. One method is to create complex objects which behave like simple ones but are in fact composed from several smaller ones. For example, if you ask What is the distance between London and Paris? then the knowledge was represented by the fact x [is the distance between] [group: [london]; [paris]].
One of the problems with this is that the existing type checking isn't so useful, as it hasn't been type-checking the sub-objects in this type of compound. We've decided how that's going to work now so it should go live later in the week.
Pardon me but that's a stupid way of representing distances. You would have to create facts for every pair of places that exist. This is of Order-N for the set of all places, a set which is for all practical purposes infinite. (What is the distance between the summit of the highest mountain of the fourth planet orbiting the star HD 202158, and my house, in furlongs.)
You should say "london is located on earth at long:lat", "paris is located on earth at long:lat", "the polar radius of the earth is x" and "the equatorial radius of the earth is y" and from those 4 facts the distance between them across the surface can be calculated.
Posted by: Nicholas | 09 March 2009 at 10:38 AM
Of course we don't *store* the facts as "x is the distance between a and b" in the database!
A fact like this is generated as the output of a little inference program then thrown away after use. But even though it has such a short lifespan we still need a nice way to represent it and use it while it lives.
Posted by: Beth | 09 March 2009 at 10:49 AM