Researching how human knowledge can be taught to machines
By: Bernardo Cuenca Grau
Tags: Computer Science, Knowledge, Software Development, Research, Professor

Companies such as Google are aiming high: ultimately, all human wisdom, everything you may want to know about the World (can you imagine?) will be available in the knowledge graph at or fingertips, ready for innovative applications to exploit. And not only that, information about millions of products is being stored in knowledge graphs by companies such as eBay, graphs about anything you can imagine are being generated semi-automatically from websites, databases, and even text documents; a company called DiffBot has a knowledge graph with over one trillion (yes, with a ‘t’) edges, with 150 million new edges added every day!

As one can easily imagine, managing such gigantic graphs and querying them easily and efficiently is not an easy task. And this is where Knowledge Representation and Reasoning technologies can be very useful.

Source: Keble College Review

For instance, imagine that we have about 5,000 playwrights such as Douglas Adams in our knowledge graph. If we want all of them to be authors (and we certainly do!), we would need to add explicit edges in the graph connecting the node for each individual playwright to the node representing the concept of an ‘author’ in the graph; that is 5,000 edges to be manually added.

Not only that, if suddenly we notice a mistake in our data (maybe ‘John Smith’ is not a playwright after all) then we would need to also remove all the edges that depend on that mistake (that is, the fact that ‘John Smith’ is an author, which was only true because he was believed to be a playwright).

This is almost impossible to manage via user updates, or even programmatically. A much more convenient way would be to represent a rule stating that ‘every playwright is an author’; then, a specialised piece of software (a reasoner) would be able to interpret this rule and automatically add and remove the relevant edges from the graph where appropriate.

Reasoning automatically with thousands of rules and graphs containing billions of edges is a very challenging problem both from a research and technological perspectives. In fact, it was well-beyond the state of the art just about 10–15 years ago, when research systems where struggling to cope with graphs containing tens of thousands of nodes.

The situation, however, has changed dramatically in recent years. We now have systems that can return results to complex queries over graphs containing billions of edges in milliseconds. We also have systems that are able to manage and reason with complex sets of rules written in powerful rule languages, and to maintain their inferences on the fly as data is updated in the graph.

One of those systems is RDFox — a high performance knowledge graph and reasoning engine that was developed at the University of Oxford’s Department of Computer Science and which is now a commercial product developed and distributed by Oxford Semantic Technologies.

As a co-founder of Oxford Semantic Technologies, I am very proud of what has been recently achieved — to witness how a carefully thought through system can reason and answer queries almost instantaneously when applied to sophisticated rule sets and large-scale graphs with tens of billions of connections. As a scientist, it is an incredibly gratifying feeling to experience how fundamental, cutting-edge research, conducted in our Knowledge Representation and Reasoning Group at Oxford is now being used by applications we could only dream of just a few years ago.