Algernon uses forward and backward chaining rules to perform inference on data in knowledge bases. It is compatible with frame-based KBMSes such as Protege, and with any other data source that can implement the Algernon KB requirements.
Algernon's native language is path-based, mapping directly to paths between related objects in a KB. Algernon commands can retrieve and store slot values, create new classes, instances and slots, create, run and trace rules, and call external routines written in Java, a UNIX-style shell, or in LISP, using an embedded LISP system.
Algernon is useful in any system that needs to process information stored in a frame-based knowledge base. Algernon is implemented in Java and has a full API that allows access to its functionality. It also has a Protege tab plugin that allows all operations to be performed from within the Protege GUI.