PRISM (Platform for Reasoning with Inconsistency Shapley Measure)
PRISM est l’acronyme de Platform for Reasoning with Inconsistency Shapley Measure.
Aperçu générale
PRISM est une plateforme évolutive basée sur Java qui permet d’effectuer différentes tâches de raisonnement telles que l’inférence, la révision de croyances ou la conciliation en utilisant la valeur d’inconsistance MI Shapley. Il peut par exemple être utilisé à des fins académiques.
L’idée est d’utiliser une valeur d’inconsistance pour évaluer dans quelle mesure chaque formule de la base de croyances est responsable de l’inconsistance de la base. Cette évaluation nous permet ensuite d’obtenir une stratification (préordre total) de la base, qui peut être utilisée comme entrée préférentielle pour différentes tâches de raisonnement, telles que l’inférence, la révision de croyances ou la conciliation. Les opérateurs obtenus sont intéressants et ont de bonnes propriétés logiques. Plusieurs opérateurs d’inférence, de révision et de conciliation sont déjà implémentés dans la plateforme mais on peut développer sa propre implémentation et l’ajouter dynamiquement.
Téléchargement
Le logiciel est disponible via ce fichier jar : prism.jar.
Notez que ce fichier jar comprend également la bibliothèque centrale de Sat4j
Comment exécuter PRISM
la JRE Java est requis.
-
télécharger prism.jar
-
exécuter le fichier jar avec la ligne de commande suivante “java -jar prism.jar”
Licence
PRISM est développé sous licence GPL. Voir LICENCE
Comment
- accèder aux fichiers sources ?
Aller dans ou créer un dépôt qui sera celui où le logiciel sera déployé. Copier prism.jar dans ce dépôt et utiliser la ligne de commande “jar xf prism.jar”.
- ajouter sa propre implémentation d’un opérateur ?
Tout d’abord, il faut déployer les sources du logiciel comme cela est expliqué dans le ci-dessus. Selon l’opération que l’on veut écrire, il faut hériter une classe abstraite spécifique. Ces classes et leurs packages respectifs sont donnés dans le tableau suivant.
Classes abstraites à étendre afin d’implémenter son propre opérateur.
Tables | Classe abstraite | 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/NewClass.java”. 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”.
Le nouvel opérateur doit être dans la même classe que la classe abstraite qu’il étend. Cela signifie que le package
de la nouvelle classe doit être le même et que le fichier java doit être déplacé dans le dépôt correspondant au package
. Une fois la classe créée, il faut la compiler avec la commande javac : “javac /chemin_de_la_classe/NouvelleClasse.java”. Attention à bien importer toutes les classes nécessaires au moment de la compilation. Si la compilation réussie, le dépôt devrait contenir un nouveau fichier NouvelleClasse.class. Afin de lancer le logiciel et de prendre en compte les nouvelles classes, depuis le dépôt de base, exécutez “java gui.TestGUI”.
obtenir l’ensemble de la documentation
Un javadoc de PRISM est disponible ici et ici.
Contacts
N’hésitez pas à nous faire savoir si vous trouvez un bug ou si vous avez des suggestions d’amélioration.