Even though ProtoGen/HL7 will use the human readable standard document as it's very first input, a formal specification is produced as an intermediate step. The generation of the formal specification is quite complicated and rarely done more than once. This process is described in section `From Text to the Database' in ProtoGen/HL7 -- An implementation of HL7.
The ProtoGen compiler is thus split into two parts: the first part reads the text and produces the formal specification, while the second part reads the formal specification and produces the application programming interface. Unfortunately the HL7 standard document is maintained with an inappropriate Word Processor and each revision tends to have a different layout. The first part of the ProtoGen compiler does have to change heavily for any new release of HL7. It seems like there will eventually be a more formal authoritative specification of HL7. It is for this reason that the core of ProtoGen is the second part of the compiler, the one that already takes the formal specification as it's input. The compiler program that comes with this version of ProtoGen/HL7 is invoked by the name `protogen'.
The `protogen' program is currently written in Prolog. The input file to `protogen' is also a Prolog source. You will need a Prolog implementation that can run protogen, if you need to remake the application programming interface. The `protogen' program is developed to run with the SWI-Prolog system written by Jan Wielemaker at the University of Amsterdam's Department of Social Science and Informatics (SWI). SWI-Prolog is a sophisticated and powerful Prolog implementation in the Edinburgh tradition, runs on many UNIX systems, and it is free software. You can get it from any good FTP server. Please use "archie" to locate a server next to you.