Lexpedite / blawx

A user-friendly web-based tool for Rules as Code.
MIT License
105 stars 9 forks source link

Implement Higher-Order Logic #95

Open Gauntlet173 opened 3 years ago

Gauntlet173 commented 3 years ago

Higher Order Logic can be useful for expressing modalities like deontics and for implementing event calculus temporality features. As a working list, getting access to HOL in Blawx would require:

A reification block (accepts a statement, and provides a value of type Statement) A Statement datatype. Versions of the existing creation and test blocks that allow you to specify text instead typing, or instead of known values. That includes "new category", all five "new attribute" blocks, one "new object" block, the category equivalence block, the category assignment block, and the attribute checker block.

The first two are easy to implement without creating much danger of confusing the interface. The latter list threatens to double the size of the interface and provide beginner users with ways to make mistakes that Blawx is designed to prevent.

We should figure out whether the first two have value on their own, and perhaps add them first. Then we should look at whether there is a way to create an "expert mode" that gives you access to higher-order versions of the category, object, and attribute blocks.

Gauntlet173 commented 1 year ago

The new defeasibility approach has shown that for specific purposes HOL can be achieved in the block language by generating FOL statements from what appear in Blawx to be HOL statements.

But the general use case isn't obvious beyond specific use cases like event calculus and defeasibility.

This is unlikely to be implemented.

Gauntlet173 commented 1 year ago

Event reasoning has been implemented without HOL available in the user interface. I have no known use cases.