## 1.6 A brief history of (X)PCE

The ``PCE Project'' was started in 1985 by Anjo Anjewierden. His aim was to develop a high-level UI environment for (C-)Prolog. The requirements for this environment came from the ``Thermodynamics Coach'' project in which Paul Kamsteeg used PCE/Prolog to implement the UI for a courseware system for thermodynamics. This system included a `scratch-pad' that allowed the student to create structured drawings of component configurations. The application had to be able to analyse the drawing made by the student.

PCE has been redesigned and largely re-implemented on a SUN workstation using Quintus Prolog and later SWI-Prolog Wielemaker, 1996 in the Esprit project P1098 (KADS). This project used PCE to implement a knowledge engineering workbench called Shelley Anjewierden et al., 1990. During this period PCE/Prolog has been used by various research groups to implement graphical interfaces for applications implemented in Prolog. Most of these interfaces stressed the use of direct-manipulation graphical interfaces. Feedback from these projects has made PCE generally useful and mature.

During the versions 4.0 to 4.5, XPCE was moved from SunView to X-windows and since 4.7 compatibility to the Win32 platform is maintained. In addition, the virtual machine has been made available to the application programmer, allowing for the definition of new XPCE classes. These versions have been used mainly for small internal case-studies to validate the new approach. Larger-scale external usage started from version 4.6 and introduced the vital requirement to reduce incompatible changes to the absolute minimum.

In version 5, the XPCE/Prolog interface was revisited, improving performance and making it possible to pass native Prolog data to XPCE classes defined in Prolog as well as associate native Prolog data with XPCE objects. Various new graphical primitives, among which HTML-4 like tables and graphical primitives for rendering markup containing a mixture of graphics and text.

As of XPCE 5.1, the license terms have been changed from a proprietary license schema to the open source GPL-2 licence.

As of XPCE 6.0, the licence terms have been changed from GPL to the more permissive LGPL for the XPCE kernel (compiled C-part) and GPL with an exception allowing for generating non-free applications with XPCE for the Prolog libraries. Please visit the SWI-Prolog home page at http://www.swi-prolog.org for details.