Tears of a Spoon-fed Baby Dev
- OpenCyc server and KB browser
- painless download, installation, and setup
- very clear guidance linking beginners to the dev center and relevant tutorials/resources
- OpenCyc CycL tutorials and exercises
- infinite resources that demonstrate the "basic assertion(s) + query on those assertion(s)" pattern
- much like childhood piano lessons (maybe worthwhile to stick it out, but seems painful and irrelevant in the meantime)
- developer-minded questions remain unanswered/untouched upon completion
- Java API
- after completing the beginner's tutorials experience few hiccups getting the Java environment up and running
- review the single provided "Basic Cyc Core API Use Cases" example code
- apparent from unfamiliar references I had more reading to do
- stuck attempting to execute the code anyway, appears OpenCyc is not compatible with the latest API suites
- after receiving access to ResearchCyc run example code without a hitch
- uninspired by the process (same old assert + query formula, this time in Java), begin scouring the web for use cases of OpenCyc
-
no (active) centralized place for discussion
-
mostly academic and/or well versed in "Ontological Development"
-
most (constructive) help threads flavored:
- "highly"-technical (of things not immediately mentioned in the tutorials) discussion
- issues with setup/installation
-
for better or for worse, lacking a (vocal) newblood presence
- OpenCyc is NOT Cyc
- OpenCyc is NOT an out-of-the-box "plugin" solution
- Prerequisites to developing a BASIC OpenCyc application:
- Understanding of:
- ontological development
- knowledge representation in first-order logic
- graph (RDF) data models
- relational data models
- object-oriented paradigms
- ontological development
- Technical know-how in:
- Java Programming Language
- syntax and conventions
- IDE (NetBeans) or latest JDK + misc dependencies
- build tools (Apache Maven, Apache Ant)
- JavaFX/Swing/SwiXML GUI libraries
- XML (XSL, XSD, CSS)
- Cyc and Java implementations
- core API interface
- Java packages
- classes and their constructors/methods
- Git
- Java Programming Language
- Prerequisites to developing a USEFUL OpenCyc application:
- Understanding of:
- all of the above Piled Higher and Deeper
- natural language processing
- inductive and deductive reasoning, higher-order logic
- Technical know-how in:
- misc NLP tools
- other differently-structured/specialized ontologies (and the APIs/DSLs that accompany them)
- competent construction of the rules and assertions necessary for reasoning and inference across the OpenCyc KB
- secret handshake
- ???
- easy-reading and unfortunately one-of-a-kind complete walk-through for constructing a simple app using OpenCyc with the Java API
- developer-minded considerations and asides
- one-of-a-kind video demo of OpenCyc functionality beyond simple assertion/query - retrieves PrettyStrings "(HotDog Dog)" from "dog"
- "Cyc for ordinary mortals" - smarter searching and classification - framework for developing ontologies - demo of ruby wrapper for Java API
- HD Video Demo of Basic KB Browser Assertion and Query
- OpenCyc Forums
- Misc Lectures:
- Free Semantic Content: Using OpenCyc in Semantic Web Applications (~2008)
- Teaching Cyc to Fish (~2011)
- OpenCyc Commonsense AI Tutorial (~2009)
- application-development-oriented tutorials
- application-development-oriented walk-throughs
- POC demo of functionality exclusive to or best implemented by OpenCyc
- comprehensive lists of:
- prerequisite tools and knowledge for:
- effective employment of the KB browser
- basic communication with API
- effective employment of the API
- development of a full-stack, knowledge-based app
- links to open-source OpenCyc apps
- prerequisite tools and knowledge for: