XPCE's world consists of objects. An object is an entity with persistent state that belongs to a class. The XPCE/Prolog interface defines four basic predicates, new/2 to create objects from a description and returns an object reference, send/[2-12] to change the state of an object and succeeds if the requested change could be made, get/[3-13] to request an object to compute a value and return it, and free/1 to remove objects from the XPCE database.
Objects of the message are `dormant' send operations. They may be activated by other objects (button, text_item, ...). In this case a send operation is started. Objects of class ? are called obtainer and represent `dormant' get operations. The `?' sign is defined as a prolog infix operator, allowing for constructs as:
send(Frame, height, Frame?display?height)
The object @prolog (class host) allows calling Prolog predicates from the XPCE environment.