Expression Pattern Language (eXPL) is a practical logic programming language which Java enthusiasts will find easy to work with. eXPL has two types of logical structures - axioms and templates, which interact in analytical processes to create new axioms. A process chain can be set up to organise and customise data. The inspiration for eXPL comes from Prolog, a logic programming language originating in the early 1970s and reflecting the acedemic world from which it emerged. eXPL is a contemporary, practical take on logic programming which provides an expressive, elegant means to process information. Implemented in Java, eXPL is readily extended and portable to most platforms.
Classy Logic is a Java package which contains the eXPL compilier, sources and tutorials which can be downloaded and installed to get started with eXPL. At it's core is a unification engine which is accessible programmatically as well as through eXPL. Unification in eXPL tests whether an axiom and a template match, that is, whether a structure containing facts fits a structure requiring facts to make it complete. Templates provide the patterns and expressions from which eXPL takes its name. Successful unification is followed immediately by evaluation of the template to produce a solution. There is a great deal of flexibility in how Logic queries can be formed - for example, whether to find all solutions, or just find one solution. Queries can be chained to refine a solution or incorporate multiple axiom sources to add relevant details. Having found a solution, a special type of template call a calculator can perform additional information processing, such as generating aggregate values, sorting, formatting text, applying formulas etc.
