Orpheus implementation of CAN

This a prototype implementation, now in a few versions, denoted as Orpheus 0.1, 0.2 or 0.3, of the CAN rules, together some example applications, including a recent example based on Curiosity, the Mars rover.

Version 0.3 consists of about 700 lines of Prolog, as well as some example-specific code, and has been tested under Ciao Prolog and SWI Prolog.

Please note that this is 'Research Code', with a capital R and capital C! In other words, it is not very well documented, is flaky, hacky and brittle, but it does work. Cleaner and neater versions with more functionality will be coming at some point.

Orpheus 0.6 source (for AAMAS'15 submission)
Output on Mars Rover scenario with completeness estimates

Orpheus 0.5 source (for JAMAAS submission)
Outputs for vanilla scenario, transformed scenario and Vignettes 1-5

Orpheus 0.4 source
Output on Mars Rover scenario with completeness estimates

Orpheus 0.3 source (Mars rover Example 1) Event list Output
Orpheus 0.3 source (Mars rover Example 2) Event list Output
Orpheus 0.2 source
Output on rescue robots scenario

Orpheus 0.1 source

Some variations on the above examples:
Example 1 variation Event list Output
Example 2 variation Event list Output

What is the name all about?

Well, you may regret asking that, but anyway ...

In classical Greece, Orpheus was "chief among poets and musicians, and the perfector of the lyre" (WikiPedia). He was known for his musical and artistic prowess, and is most famous for visiting the underworld, where his music softened the heart of Hades, in order to rescue his wife Eurydice. This story inspired the French composer Jacques Offenbach to write in 1858 the comic operetta `Orpheus in the Underworld', the climax of which is an energetic dance known as the Can-can. So, can you do the Can-can in CAN? :-)