The program posSmodels is an implementation of the possibilistic stable model semantics for possibilistic normal logic programs. PosSmodels extends, and is based on, smodels and lparse

PosSmodels extends the normal logic programs by adding necessity degree on each rule. Smodels is used to compute stable models of the corresponding classical normal logic program, and then posSmodels compute the necessity degrees for each atom in a stable model.
Smodels works with a front-end Lparse that adds variables, classical negation (and a lot of other stuff) to the accepted language and generates a variable-free normal logic program that can be given to Smodels.
In a same way, we use a preprocessor (preprocLparse) for our possibilistic logic programs in order to translate it in a form that Lparse accepts. The program generated by Lparse is then translated once more, so that it can be given to Smodels and used to compute the necessity degrees.

Documentation
PosSmodels language is, for the main part, the same as Smodels language but it does not accept choice, constraint, or weight rules.
Basic rules are of the form : degree rule where degree is an integer (certainty degree) and rule is a normal logic program rule. For example : 50 a(X) :- b(X), not c(X).
The most comprehensive documentation for the Smodels system is currently the lparse user's manual that details the lparse input language and gives also a brief overview on the smodels library API.
Usage
Assume that the file P contains a possibilistic normal logic program. A possibilistic stable model would typically be computed as follows: chain
This is achieved by :
$ preprocLparse P | lparse | posSmodels n
where n is the (maximum) number of models to be computed. A zero (or nothing) indicates all.
Option --true-negation must be given to lparse if the program contains classical negation.
Download
Related publications
logopdf Possibilistic Stable Model Computing, ASP 05 Workshop,Bath, England (2005).