Systems Description: ErgoAI

ErgoAI is an advanced and scalable object-oriented platform for knowledge representation and reasoning. ErgoAI was developed by Coherent Knowledge Systems as an enterprise-level extension of the well-known Flora-2 system that is now open-sourced. ErgoAI subsumes Flora-2 for all purposes.

Language Features

ErgoAI allows a Prolog-like syntax but because it supports F-logic, it also allows an object-oriented, frame-based syntax with monotonic and non-monotonic inheritance. However, ErgoAI has numerous extensions beyond F-logic including

  • Meta-programming, a.k.a. higher-order syntax, in the style of HiLog,
  • Logical updates in the style of Transaction Logic, including
    • Support for Update Reactivity: the automatic updating of knowledge when underlying data changes;
    • Integrity constraints for all knowledge; and
    • Alerts that can execute arbitrarily complex actions upon updates.
  • Defeasible reasoning over the well-founded semantics /with
    • Both explicit and default negation;
    • Designation of rules as either strict or defeasible; and
    • Prioritization and overriding of rules.
  • Extensions of F-logic rule syntax and semantics including
    • General formulas in rule heads and bodies;
    • Annotations of rules through rule ids; and
    • User-defined functions.
  • Application-oriented Features
    • Applications include intelligent agents, Semantic Web, knowledge-based networking, ontology management, integration of information, security policy analysis, and more.

ErgoAI can interact with or be embedded in applications written in several major languages, such as Python, Java, and C/C++; it can talk to databases and the Web; and it has connectors to virtually all major data formats like JSON, XML, and CSV.

Documentation, Examples, and Other Resources

ErgoAI comes with comprehensive documentation, tutorials, and Example Bank – a collection of advanced examples.

Getting Started

If you are new to ErgoAI, the best place to start is with the FAQ, ErgoAI Tutorial, and ErgoAI Studio Manual.

  • The ErgoAI FAQ: Frequently Asked Questions about ErgoAI.
  • The ErgoAI Reasoner User’s Manual is a comprehensive reference manual including ErgoAI language syntax, reasoning engine, debugging tools and more.
  • The Guide to ErgoAI Packages provides all the details you will need to connect your ErgoAI knowledge base to the outside world.
  • The ErgoAI Examples Bank provides runnable, annotated examples for a variety of tasks using ErgoAI to augment the basic examples found in ErgoAI Tutorial.
  • The ErgoAI and XSB Users Forum is the place to post questions, find answers, share projects, and build collaboration.
  • The ErgoAI Studio Manual: Explains how to use the graphical UI and the Integrated Development Environment (IDE). The IDE includes an interactive editor, explanation, and query windows, with navigation and debugging tools.

Finally, the XSB manuals are useful to those who need to supplement their knowledge bases with Prolog features that an experienced developer might need.

Tutorials

  • The ErgoAI Tutorial: a set of lessons that introduces you to the fundamentals of authoring knowledge bases (a.k.a., rule-bases) in ErgoAI. It includes a number of worked examples with sample executable ErgoAI files. The tutorial provides an overview of the ErgoAI system from the basics to more advanced topics.

  • Capturing Real World Knowledge in Ergo: this tutorial illustrates the process of capturing real world knowledge in ErgoAI, with the goal of enabling reasoning and question answering. The initial case study is drawn from the lecture notes of a course on knowledge representation taught at Stanford University in 2011. The knowledge source is the California Driver’s Handbook and the focus of the reasoning task is on knowledge that can be objectively and operationally used by the driver of a vehicle. Example files and step-by-step instructions for knowledge base creation are included.

     

Examples Bank

ErgoAI Example Bank provides users with runnable, annotated examples that illustrate the various advanced features of the Ergo Suite. Each folder contains an “About” document explaining the example as well as the example files themselves with both data and rules.

The examples include:

  • Java and Python integration
  • Defeasible reasoning
  • Connecting ErgoAI to SQL databases
  • RDF and OWL import
  • Querying SPARQL endpoints
  • Importing tabular data
  • Importing XML
  • Working with JSON
  • Doing input and output
  • ErgoText and Federal Regulation W

This is a living document and more categories of examples will be added. Suggestions from users on how to improve the examples or what additional examples would be of interest as well as user-contributed examples are welcome! Please email us with your thoughts and ideas. The examples could be both of the HOWTO type as well as domain-specific (e.g., e-commerce, e-learning).