Epilog is a computer language based on Dynamic Logic Programming (DLP). Epilog is similar to other logic programming languages, such as Datalog and Prolog, but there are some differences. Like Datalog, Epilog separates data and rules. Like Prolog, Epilog supports data and rules with functional terms. Like both of these languages, Epilog provides the ability to define views of data. However, Epilog also provides a way to express database dynamics. Whereas Prolog treats side effects implicitly using assert and retract as subgoals in view definitions, Epilog enables users to express side effects in the form of operations defined as database transformations.
Sierra is a browser-based interactive development environment (IDE) for Epilog. It allows users to view and edit datasets, and it allows users to view and edit view definitions, and it allows user to view, edit, and apply operations. It provides a variety of tools for manually querying and modifying datasets, and it automatically updates visible datasets in spreadsheet-like fashion in accordance with the user's rules. It also provides tools for analyzing datasets and rule sets, tools for tracing program execution, and tools for saving and loading files. Click here for a tour of Sierra.
The Optimizer tab leads to a web application that takes a set of Epilog rules as input and applies various optimizations, e.g. subgoal ordering, subgoal elimination, rule elimination, and so forth.
The Examples tab provides access to a collection of sample problem descriptions, solutions in Sierra, Sierra-enabled worksheets, and finished worksheets.
The Documentation tab provides access to documentation on Logic Programming, Epilog, Sierra, Worksheets, EpilogJS, and CompilerJS.