PRISM stands for Platform for Reasoning with Inconsistency Shapley Measure.


PRISM is a java-based evolutive platform that allows to perform different reasoning tasks such as inference, belief revision or conciliation using MI Shapley inconsistency value. It can for instance be sued for academic purposes.

The idea is to use an inconsistency value for evaluating how much each formula of the belief base is responsible of the inconsistency of the base. Then this evaluation allows us to obtain a stratification (total pre-order) of the base, that can be used as the preferential input for different reasoning tasks, such as inference, belief revision, or conciliation. Obtained operators are interesting and have good logical properties. Several inference, revision and conciliation operators are already implemented in the platform but one can develop its own implementation and add it dynamically.


The platform is available through the following jar : prism.jar.

Note that this jar also includes Sat4j core library SAT4J

How to execute PRISM

JRE is required.

  • download prism.jar

  • execute the jar with the following command line “java -jar prism.jar”


PRISM is developed under the GNU GPL license.

How to

  • have access to the platform sources ?

Go to or create a repository that will be the one where the platform is deployed. Copy prism.jar to this repository and use the command line “jar xf prism.jar”.

  • add its own implementation of an operator ?

First, deploy the platform sources as it is explained in the previous paragraph. Depending on the operation one wants to write, one needs to extend a specific abstract class. These classes and their respective packages are given in the following table.

Abstract classes to extend in order to implement its own operator

Tables AbstractClass Package
Shapley ShapleyValueSet model.computation.shapleyValue
Inference InferenceOperator model.inference.fromListFormulae
Revision MssScoreAggregator model.computation.mssScore
Revision MssSelectionOperator model.mssSelection
Revision InferenceFromMSSOperator model.inference.fromMSS
Conciliation ChoiceOperator model.conciliation.choice
Conciliation WeakOperator model.conciliation.weakening

The new operator should be in the same class as the abstract class it extends. This means that the package of the new class must be the same and that the java file should be moved to the repository corresponding to the package. Once the class is created, it has to be compiled with javac command : “javac /pathtotheclass/”. Be careful to import all needed classes in order to compile… If the compilation is successful, the repository should contain a new file NewClass.class. In order to launch the platform and take into account the new classes, from the base repository, execute “java gui.TestGUI”.

  • get the whole documentation

Javadoc for PRISM is available here.


Stéphanie Roussel, Research engineer at CRIL

Please, let us know if you find any bug in the platform or if have suggestions to improve it.