OpenCyc
From CSWiki
This is the wiki page for OpenCyc, a "knowledge base" software made by Cycorp.
Contents |
[edit] Conceptual model
[edit] Concepts and objects
OpenCyc's aim is to store human knowledge using a framework made up of Constants and Assertions.
- Constants are objects which represent a distinct thing in the real world. For instance, The Eiffel Tower, God, and Road Vehicles are all constants.
- Assertions represent the relationships between constants which give them meaning. For instance, "the Eiffel Tower is a Tourist Attraction" would be an assertion linking the constant Eiffel Tower with the constant Tourist Attraction.
- A Collection is a type of thing, a kind of thing, or a class of things. Things which belong to a collection are called its instances. Each collection is characterized by some feature or features that all of its instances share. For instance, Cat, Dog, Elephant are all instances of the collection 'Mammals'.
- Microtheories are sets of assertions from all the assertions in the Cyc knowledge base. Assertions can be bundled into microtheories based on shared assumptions, shared topics, shared sources, or other features. All the assertions in a microtheory [i]must[/i] be consistent.
In order to better model the world, and the fact that constants can have different meanings in different contexts, assertions are very rarely global. Rather, they are part of "microtheories" which are able to exist separately from each other. For instance, hydrogen is not always a gas, but in the context of Normal Physical Conditions, it is.
[edit] Operations
A Cyc database (OpenCyc included) is accessed by adding Constants and Assertions to it, to expand its scope. When adding an assertion to a particular microtheory (asserting it, that is), OpenCyc can also check to see if that assertion is true, false, or unknown in the context of that microtheory. In this way it is possible to
[edit] Prerequisites
Very few prerequisites for running OpenCyc exist except for having an extremely reliable and powerful computer. The program uses CPU time and RAM voraciously, and the Cyc website recommends a bare minimum of 1GB of memory. The 'world' file takes approximately an hour to build on a reasonably fast computer. Tomcat(or any other web server) needs to be running with CGI enabled. Instructions on how to enable CGI in Tomcat may be found at:http://www.onjava.com/pub/a/onjava/2003/06/25/tomcat_tips.html?page=last
[edit] How accessed/used
Two access mechanisms are included in OpenCyc. One is an HTML-based interface(the OpenCyc KB Browser) that allows people to make assertions, add constants, and make queries through a regular web browser. A set of Java libraries are also made available, so that programs can interface with the system as well as people. These libraries are distributed with OpenCyc 1.0(make sure to include the appropriate JAR files in the classpath to make sure the program compiles properly). Cyc also plans to release a PHP library and a Python library in time. A lot of OpenCyc coding is done in Prolog and Lisp as well.

