Table of contents generated with markdown-toc
ErgoAI is an advanced multi-paradigm platform for knowledge representation and reasoning in an enterprise. It is a dialect of the object-based logic known as Frame Logic (or F-logic) with numerous extensions, including meta-programming in the style of HiLog, logical updates in the style of Transaction Logic, and defeasible reasoning. Applications include intelligent agents, Semantic Web, knowledge-based networking, ontology management, integration of information, security policy analysis, and more.
ErgoAI is an enterprise-level extension of the well-known Flora-2 system. After open-sourcing of ErgoAI by Coherent Knowledge Systems, Flora-2 was deprecated and is no longer maintained because ErgoAI subsumes Flora-2 for all purposes.
ErgoAI can interact with 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 major data formats like JSON, XML, and CSV.
ErgoAI comes with comprehensive documentation, tutorials, and Example Bank - a collection of advanced examples.
If you are new to ErgoAI, the best place to start is with the FAQ,
ErgoAI Tutorial,
and ErgoAI Studio Manual. A basic knowledge of Prolog is helpful in
understanding ErgoAI. Prolog tutorials and textbooks, for example Learn
Prolog Now, can be found online. As you advance to the next stage,
ErgoAI Reasoner User's Manual is a complete reference to the
system. Guide to ErgoAI Packages provides all the details you will
need to connect your ErgoAI knowledge base to the outside world.
ErgoAI Examples Bank provides runnable, annotated examples for a variety of
tasks using ErgoAI to augment the basic examples found in ErgoAI Tutorial.
ErgoAI and XSB Users Forum
is the place to post questions, find
answers, share projects, and build collaboration. Finally, the XSB
manuals
are useful to those who need to supplement their knowledge bases with
low-level primitives that an experienced developer might need in some
cases.
-
ErgoAI Tutorial: a set of lessons that introduces you to the fundamentals of authoring knowledge bases (a.k.a., rulebases) 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 very 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.
-
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.
-
ErgoAI Reasoner User's Manual: Comprehensive reference manual including Ergo language syntax, reasoning engine, debugging tools and more. For more experienced developers. General understanding of Prolog is a plus.
-
Guide to ErgoAI Packages: Covers connectors from Ergo to other non-Ergo information sources and systems such as Java, SQL SPARQL, RDF/OWL, tabular data, XML, JSON, and more.
-
ErgoAI FAQ: Frequently Asked Questions about ErgoAI.
-
Ergo and XSB Users Forum: A place for users to post questions and answers, share interesting projects, and discuss ideas about knowledge based systems in general.
- Please subscribe to the forum!!
ErgoAI Example Bank provides users with runnable, annotated examples that illustrate the various advanced features of 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).
These manuals are primarily for experienced developers who need low-level features that are accessible via XSB.
The ErgoAI source code is split between two repositories:
- Studio_fidji - a Java-based IDE code-named Fidji and
- ErgoEngine - the ErgoAI inference engine, language and data source interfaces, and everything else. The inference engine can be used without the IDE in the command window mode, and this is what is normally used when ErgoAI is embedded into a larger system.
In addition, we provide stable releases for Linux, Mac, and Windows. Installing a stable release is very easy:
-
Make sure that the prerequisites for the installation are met. These prerequisites are described in Section 2.1 of ErgoAI Reasoner User's Manual and also in ErgoAI Tutorial.
-
Download an appropriate release installer (a file named
ergoAI_XXXXX.run
orergoAI_XXXXX.exe
, where XXXXX is the version number; the.run
version is for Linux/Mac and the.exe
version is for Windows) and click your way through the installation. These installers do not include the source code, so if one wants that then cloning ErgoAI repositories would still be necessary. The release installers can be found by navigating to https://github.com/ErgoAI/.github/releases, choosing the desired release (usually the latest), and clicking on the requisite.run
or.exe
file.
The full details are given in Section 2 of the ErgoAI Reasoner User's Manual.
Those who want to contribute to ErgoAI development would need to clone XSB as well as the aforesaid ErgoAI repositories and compile the source code by themselves. This process is still straightforward for Linux, might be a bit more involved for Mac, and still more for Windows.
The main steps in this process are:
-
Verification of prerequisites for the installation, as in the case of the installation via an official release.
-
Compiling XSB.
-
Compiling the ErgoAI engine using a clone of the ErgoEngine repository
-
Compiling the ErgoAI studio using a clone of the
Studio_fidji
repository.
The full details are given in Appendix A of ErgoAI Reasoner User's Manual.
Please subscribe to Ergo and XSB Users Forum and, if you like ErgoAI, give us a star.
If one installed an official release of ErgoAI and a new release comes out, installing the new release doesn't necessarily uninstalls the old (for example, one might want to keep a stable old release and to play with a new pre-release). If an old official release is no longer needed, it can be easily uninstalled as follows.
Linux/Mac:
- start the version of ErgoAI you want to discard (double-click on its icon, the studio or terminal version - doesn't matter)
- type
System[uninstall]@\sys.
and confirm - delete the ErgoAI window
Windows: use the standard uninstallation facilities in Windows.
Installations from the sources can't be uninstalled that way and there is no need to. Simply delete the directory where the sources are residing.
-
Bugs in ErgoAI Reasoner: please report by creating a new issue in Github's Issue Tracker of the ErgoEngine repository.
-
Bugs in the operations of the ErgoAI Studio: create a new issue in Github's Issue Tracker of the Studio_fidji repository.