Why Deep Inference is Better than Coding
Large scale knowledge bases are inherently more flexible than dedicated databases and specific software. In traditional software, a task is preconceived, an algorithm to perform that task – and no other – is conceived and implemented, along with a task-specific data representation, and data is collected and maintained in compliance with that representation. All of these steps require enormous human effort, making them expensive, inflexible, and error-prone.
This method of computation is fundamentally more powerful than manual programming, just as the invention of stored-programme computation in the 1940s was fundamentally more powerful than the dedicated calculators and patch-panel setups that preceded it.
With large scale KBs, both the data to be processed and the means to apply data to solving tasks are stored in a single logical representation. It is then the responsibility of a Deep Reasoning inference system like Cyc, and not a programmer, both to identify the problem-solving steps required to perform the task, and to identify the required data and transform it into the right form for the required processing. This method of computation is fundamentally more powerful than manual programming, just as the invention of stored-programme computation in the 1940s was fundamentally more powerful than the dedicated calculators and patch-panel setups that preceded it. But, just as stored-programme computing required a huge jump in the complexity (and memory) of early computing devices, knowledge-based computing imposes requirements that are only being satisfied after sixty years of theoretical and engineering advances. Some of these requirements are physical: to simultaneously search for solution methods, solutions, data transformations, and data, computers must be very powerful, and have very large storage. But many of the requirements have been conceptual: we have needed to assemble enough data, in computer-understandable form, to allow solutions in principle; we have needed to assemble enough background knowledge about tasks and data transformations to allow a solution to be findable; and we have needed to develop reasoning techniques that allow a solution to be found. The laborious hand assembly of the existing Cyc KB (Lenat, 1995), and three decades if work on efficient inference, was required to provide an inferentially-productive basis for reasoning over these vastly larger amounts of knowledge.
It's time to take advantage of modern hardware and software architecture work to realise that stored power.
Historical Note
This is a slightly modified version of a 2009 post on my personal blog; Since 2009, the progress in Deep Learning driven by GPU hardware has shown just how much can be gained by applying modern hardware and software to what was previously a set of research systems and models. The same explosion is poised to happen in automated reasoning, and I'm thrilled to be working with Lucid.AI and Cycorp to make this vision of advancing CS through Deep Reasoning a reality.
Here's a link to a (PDF) whitepaper, "Knowledge is more than Data" that adds a bit of background.