Expression Pattern Language (eXPL)

New Logic Programming Language Grounded in Java

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.

eXPL features

  • Logic queries built from axioms and templates
  • Template term evaluation uses Java syntax
  • Templates export solutions as axioms
  • Internationalization and regular expressions support
  • Random access lists supported
  • Open Source GPLv3 license
  • Classy Tools library option for lightweight JPA support
  • Tutorial with code exampled for getting up to speed with eXPL

Resources

Javadocs

eXPL

Open Source License

GPLv3 license

Support
classy_logic@aapt.net.au