The Cyc API comprises a suite of Java APIs for developing Cyc-based applications or otherwise accessing Cyc capabilities. The Cyc API provides a layered suite of functionality organized as shown below. The API functionality will be rolled out in a series of releases:
The reference implementation of the Base API (
com.cyc.base.*) is the Base Client
com.cyc.baseclient.*). These supercede the OpenCyc API, which is deprecated, though many
of the Base API's interfaces resemble OpenCyc API classes.
Available in a future release.The NL API provides functionality for translating between CycL and natural language. In addition to translating sentences back and forth, it also allows more complex structures (e.g., particular answers to inferences) to be explained and contains facilities for understanding concepts and relations in running text.
Available in a future release.The KM API is a suite of commonly used tools to extract, modify and add new KB knowledge. These tools help visualize the KB content, search via NL, constrain results based on input conditions, and execute template queries. Additional tools extract and generate KB content from and to standard representations such as OWL. The API also provides tools to control and format the Query output to varying degrees of detail.
Available in a future release.The Administration API provides functionality to view, monitor, and administer Cyc images and their associated processes.
Available in a future release.
The Model API is a JAXB-like framework that partially maps First Order Predicate Logic constructs to Object Oriented (OO) constructs to facilitate application development. The API consolidates frequently used logic to OO idioms and generates a domain specific API given a vocabulary subset from the KB.
The Knowledge Base is a Predicate Logic-based model of real-world domain/concepts. Developing applications using a typical OO language requires translating the KB-based model to OO model. MAPI automates this process to streamline application development targeting the KB. It avoids duplication and inconsistency of hand-written OO models, helps reflect OE changes naturally to OO, supports a typical IDE in identifying changes at compile time, and provides OE details in the IDE.
The Domain Specific APIs generated by this API typically refer to real-world object, rather than Predicate Logic representations as in the KB API and implementation representations as in Base API.