Stepping down as editor of ISO Prolog standardization proposals

I’m stepping down as editor of ISO Prolog standardization proposals. In recent years, I found myself responsible for four different draft proposals: Core Revision, DCGs, Threads, and POSI (Portable Operating-System Interface). My fault really. With the exception of the DCGs proposal, all the other proposals are born from my initiative. Recently I have been unable to fulfill my duties as editor of the DCGs proposal, failing to meet the deadline for its next revision. This resulted both from the proverbial lack of time and from being weary of the ISO standardization process. This process is mostly broken, unable to meet the needs of the Prolog community. I tried to fix it from within. I failed.

The last straw that resulted in my decision to end my standardization work was the lame events at the WG17 meeting at Pasadena. Tired of the lack of sensible priorities in the discussion of the standardization proposals, I succeeded I changing the meeting’s agenda, convincing the others participants to discuss the Core Revision proposal instead of spending another annual meeting discussing DCGs and Globals. Nothing wrong, of course, with DCGs and Globals. Both are worthy subjects for standardization. But fixing and improving the Core Prolog standard is the most important and urgent task. We discussed the Core Revision proposal in the morning, going from A to Z, making decisions and identifying contention aspects that would merit further discussion for the next revision of the proposal. At the end of the morning, I was pretty satisfied with the results and leaved to catch my flight back home, thus unable to attend the WG17 meeting in the afternoon. The remaining participants decided, without me as the editor of the Core Revision proposal being present, to go back and change the decisions made in the morning. I found this behavior regrettable and disrespectful. I also found some of the afternoon decisions will informed and resulting from an apparent lack of knowledge of the current, published standards. Moreover when most of participants aren’t aware that a Core Revision proposal even existed before this meeting and never participated in previous discussions about this proposal.

I still believe that standardization is vital for the future of Prolog as a programming language. But the current ISO process is the wrong way to do it. Case in point. Standardization proposals are voted by countries, instead of being voted by implementers and users groups. Implementers always decided if a proposal is worthy, by implementing it, or if is worthless, by ignoring it (think ISO Prolog Part 2: Modules). Users are the ones using and claiming for a better language.

A saddening aspect of the ISO standardization process is the lack of perception from outsiders that people working on proposals and participating in meetings are volunteers and not necessarily experts on the matters being discussed. I can understand that outsiders find some aspects of the proposals poorly formulated or completely wrong. I cannot understand that, instead of criticizing the proposals and suggesting alternatives, outsiders choose to insult the volunteers that are doing their best to improve the current standards.

Visibility and openness of the standardization work is also a problem. There are standardization discussion forums and a mailing list. Both are mostly ignored. Neither is listed in the official WG17 web site. It gets tiresome quickly to keep explaining and repeating arguments because people either want to remain anonymous when giving feedback to the current proposals or have no knowledge of the reasoning and previous discussions behind the proposals.

Improving the current, published Prolog standards, requires the courage to recognize past errors and fix them, even if that results in revoking and replacing them with hopefully better specifications. Some people refuse this path and desperately cling to the past, painting the whole standardization process in a corner. I have no patience left for this nonsense.

More could be said about the problems in the current ISO standardization process but I hope that the few ones described above are enough for you to understand my decision. Many thanks to all the people that contributed to get this far in my standardization efforts. Hopefully others with more time and energy will continue from here. My only advice, if I may give one, is: throw away the current ISO standardization process and start a new, grassroots movement that brings together implementers and user groups. Some good examples can be found in the recent web standardization processes and in other programming language communities.


2 Responses to “Stepping down as editor of ISO Prolog standardization proposals”

  • Parker

    Hi Paulo,

    I’m sorry to hear you are stepping down from this role. I know that making Logtalk work with many backend compilers put you in a good position to understand the differences between the different Prolog systems and hence the need for a standard to help converge the implementers. It is the standardisation effort’s loss and that in turn is the Prolog community’s loss.

    I definitely agree with you that the ISO standardisation process is ill-suited to the Prolog community. We are too small a group and too dispersed, so a more inclusive process with accessible resources would help more people get involved and share the load.

    Thank you for all your efforts and good luck to the person who tries to step into your shoes.

  • Paul Fodor

    Hi Paulo,

    I know there were few people behind the standardization of Prolog and I don’t know the internals of the discussions that you mentioned above, but I’m sorry to hear that you are stepping down as editor of ISO Prolog standardization proposals. I’m sure that the whole community thanks you for all your efforts in this direction.

    > I still believe that standardization is vital for the future of Prolog as a programming language.

    Hopefully, the community will continue the standardization of Prolog. Both in my academic and industrial work, we were hit by incompatibilities between different Prolog implementations. For instance, while working in IBM with the Prolog interface to the Unstructured Information Management Architecture (UIMA), we ended up having different implementations (both interfaces and internal Prolog modules) for different Prolog systems (Sicstus, SWI, Yap and XSB), while in my academic work at Stony Brook on OpenRuleBench, a benchmarking suite for rule systems, we had to use different predicates (or to parse outputs) to automatically collect statistics from these systems. I am sure other people were hit even worse by these incompatibilities between Prolog systems.
    I hope that your efforts will be picked up by the community. These standardization processes are always lengthy and not without arguments. I observed the W3 standardization process of the Rule interchange format (RIF) since both my academic supervisor and one of my IBM mentors were involved into it, and all I can say is that it’s a long process with many online meetings. It was a standard backed up by commercial companies (such as Oracle and IBM) and W3C, so, I guess, much larger communities and stronger interest than the Prolog community (developers and users).

    Regards, thank you,
    Paul Fodor.