Prova 3.0 is released

Prova 3.0 has now been released. The concepts that have gone into it are the result of extensive discussions with a lot of people. I want to particularly acknowledge help from Adrian Paschke, Bart Viaene, and David Jeffery.

This release has an extensive and up-to-date documentation available at http://www.prova.ws/etc/Prova 3.0 User Guide.pdf. If you prefer to read Confluence WIKI, it is as usual at http://www.prova.ws/confluence.

The binary distribution is only just over 2M in size and is available here: http://www.prova.ws/downloads/ws.prova.compact-3.0.0-all.zip. The maven2 integration and source code repository details are detailed here: http://www.prova.ws/downloads.

This release is a complete rewrite of the old Prova code and unfortunately, a number of old features have not yet been ported to the new platform. This includes DL typing, Adrian Paschke's RBSLA extensions, and exception handling.

On the positive side, it packs a lot of features, some of them inspired by the latest developments in modern computation logic, functional programming, distributed systems, and event driven architectures, some of them completely new and original. Some of very unique features include:

  • revised and streamlined Prova<->Java integration
  • array-based list representation,
  • pervasive use of annotations including constraints on metadata,
  • Prova maps as basic type with full unification on slotted terms
  • guards and guarded cut,
  • functional extensions including data-driven monadic pipelines,
  • in-place fact transformation,
  • reactive agents combining event-driven processes with event pattern detection,
  • reaction groups for event processing,
  • dynamic branches in workflows,
  • sophisticated predicate joins in workflows,
  • use of Prova service in and outside of OSGi containers.

The Prova library itself is just a small JAR, less than 500K in size. It is now an OSGi bundle and can run in an OSGi container with just a few dependencies.

Thank you,
Alex Kozlenkov