This page introduces compatibility layers that allow you to more easily interchange code for Yet Another Prolog (YAP Prolog), GNU Prolog, SWI Prolog compatibility.
As an introduction, we have a quick comparison of different prolog environments. In order to compile SWI Prolog applications with YAP Prolog or GNU Prolog, you will need to adapt your source code to the specific Prolog implementations. If you would like to compile your SWI-based program with YAP (or GNU Prolog), this compatibility layer will make things easier for you. It implements several frequently used predicates. Link the layer to your SWI application when compiling with YAP or GNU Prolog.
If you want to run your GNU / YAP program in SWI, the layer should also be of help.
There are further differences between the prolog dialects. GNU Prolog poses a lot of challenges, YAP is easier to port to. Module interfaces, however, are not entirely compatible - YAP seems to be quite strict in that respect.
The compatibility layer is very incomplete - it results mainly from one of my projects and from contributions from Steve Moyle. I would appreciate your own additions -- please send them back to me so I can publish them here. Thanks!