Frequently Asked Questions
Why PIPs?
Feature Coordination among Prolog Systems. The Prolog community is very lively, with about a dozen Prolog systems that are currently supported, most of which are under active development. This represents a major strength of Prolog and has resulted in many new features added to Prolog systems, including program analysis, multi-threading, tabling, rich support of constraint-based reasoning, probabilistic reasoning, and much else. However, there are drawbacks. No single Prolog fully supports all of these features, and when they are supported, the features may have different APIs making porting from one Prolog sytem to another difficult.
Visibility Outside of the Prolog Community As noted above the Prolog implementation community is active and creative. However, few outside of the Prolog community understand its vibrancy. We hope that a collection of PIPs will increase the visibility of Prolog and its growth.
Who can develop a PIP?
Anyone with initiative and energy can develop a PIP. However, because PIPs describe common features of Prolog systems, at least two actively maintained Prolog systems must support the PIP.
How does one develop a PIP.
See PIP-0001 for the guidelines.
What if I disagree with a particular PIP?
Start out by contacting the developers and supporters of the PIP to see if there is common ground for compromise. If you seriously disagree with a PIP and cannot find common ground with its developers you can see if threre is support in the community for a separate PIP. However, it should be understood that every PIP is an agreement between at least two systems and such agreements involve compromise.
Are there standards for compliance with a PIP?
This is left up to the developers of each PIP. Some PIPs are fairly simple, so that it may be reasonable to require full compliance. Other PIPS can be quite complex and their implementation may require months of work. In such PIPs it may be best to define partial compliance. Remember, one of the main ideas behind PIPs is to make Prolog systems compatible, and often some compatability is better than none.
In addition, we encourage PIPs to have test suites that indicate how compliant a given Prolog system is with a PIP.
Can there be multiple versions of a PIP?
Yes. In such cases the previous versions will have the stataus of “superceded”.
What does it mean for a Prolog to “support” a PIP?
TBD