Skip to content
/ Qiana Public

Qiana: A First-Order Formalism to Quantify over Contexts and Formulas

License

Notifications You must be signed in to change notification settings

dig-team/Qiana

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qiana

Qiana is a logic framework for reasoning with contexts. Qiana takes as input logical formulas such as

forall phi, x: says(Einstein, phi) => believes(x, phi)

forall phi: says(Einstein, phi) => phi

says(Einstein, not (forall x: glitters(x) => gold(x)))

These formulas say: everyone believes everything Einstein says; everything Einstein says is true; and Einstein says that not all that glitters is gold. Qiana can translate these formulas to first order logic, so that a standard first-order-logic reasoner such as Vampire can do theorem proving on these formulas.

Repository structure

This repository contains

  1. our publication about Qiana, published at the conference KR 2024, which explains our formalism. The extended version includes appendices.
  2. the code that transforms a theory with contexts into a first-order-logic theory
  3. an example input with an example output

Running the code

The code computes the Qiana closure of a given input theory. Both the input and the output are in TPTP format.

By convention, symbols starting with the letter q are quotations of the symbols that share the same name without the q. This is equivalent to underlining logic symbols in the article. For example, q_Alice is the quotation of Alice. No symbol that is not a quotation should start with "q_". The quotation of the usual first-order operators are available as "q_And", "q_Not", "q_Implies", and "q_Forall". In our example code, the total number of quoted variables is set to 3+the number of variables used in the input.

To run the GUI for Qiana, run the following from the src directory.

python3 main.py

There is currently no CLI for Qiana. Please feel free to contact us if you would like one.

Requirements

The following python packages can be install with pip

pip install pydotplus
pip install pyside6

In some system you might need to install libxcb-cursor-dev to run PySide6 graphical applications, which is useful for the GUI of Qiana. Installing with apt

sudo apt install libxcb-cursor-dev

You also need to install Graphviz

sudo apt install graphviz

Citing Qiana

If you use Qiana in scientific work, please cite our article

@inproceedings { Qiana, 
    author   = "Coumes, Simon and Paris, Pierre-Henri and Schwarzentruber, François and Suchanek, Fabian",
    title    = "Qiana: A First-Order Formalism to Quantify over Contexts and Formulas",
    booktitle = "KR",
    year     = 2024
}

License

Qiana was developed by Simon Coumes, Pierre-Henri Paris, Fabian Suchanek, and François Schwarzentruber. The code in this repository is available under the MIT license, see the file LICENSE.md.

Acknowledgments

This work was funded by the NoRDF project (ANR-20-CHIA-0012-01).

About

Qiana: A First-Order Formalism to Quantify over Contexts and Formulas

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published