At the moment, the SOAP package contains just enough SOAP related things to get CL-ACE to work. Maybe in the future it can be a more full-fledged SOAP implementation.
The CL-ACE package implements the functionality needed to call the APE webservice and process the structures that it returns. The structures used in CL-ACE roughly match those in the webservice documentation  and the XML Schema description of APE output . Names have been adjusted to typical Lisp case, and some enumerated string values have become keywords. The two main interfaces to the APE Webservice are the ape and invoke-ape-webservice functions. The ape function is intended to be the primary interface to APE results, but invoke-ape-webservice is provided as a direct interface to APE.
The ACE-DRS package implements lisp structures that correspond to those described in "Discourse Representation Structure for ACE 6.0" , as well as a parser for the DRSXML output format. As with CL-ACE, names have been adjusted for lisp conventions, and some processing of values occurs. It should be noted that class slot and reader names correspond to those described in the DRS report  rather than the element and attribute names that appear in the DRSXML output. The parsing interface for DRSXML is parse-drsxml . parse-drsxml is also called by CL-ACE automatically when APE-results contain DRSXML output.
The renaming for Lisp conventions is as follows. The classes corresponding to ACE entities use the names specified in the "DRS for ACE 6.0" tech report, with the exceptions that: rather than mixed case names, the source text is downcased, and #- inserted at the proper place, and #_ have been converted to #-. So, for instance, "has_part(GroupRef, MemberRef)" becomes a class has-part with slots group-ref and member-ref. Readers have been created which are <class-name>-<slot-name>, e.g., has-part-group-ref, and initargs are keywordized slot names, e.g., :group-ref.
The race-webservice package provides a set of bindings for calling the RACE Web Service. The functions defined here try to mimic as closely as possible the naming conventions of the RACE Web Service, with only minor renaming to suit Lisp convention.
The former makes requests to the Web Service directly, and returns results directly from the HTTP client (DRAKMA ). For instance, to recreate the example given in the RACE Web Service documentation :
"<?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:race="http://attempto.ifi.uzh.ch/race"> <env:Body> <race:Reply> <race:Runtime>0</race:Runtime> <race:Proof> <race:UsedAxioms> <race:Axiom>1: John is a man.</race:Axiom> <race:Axiom>3: John is not a man.</race:Axiom> </race:UsedAxioms> <race:UsedAuxAxioms/> </race:Proof> </race:Reply> </env:Body> </env:Envelope> ", [more values, see DRAKMA documentation]
The latter parses the response into a CLOS object, specifically, a race-reply . Methods for accessing the components of the reply follow, for the most part, the naming convention given in the RACE Web Service documentation , and accompanying WSDL file .