Human society is organized by conventions, policies and laws, which expressed in natural language often imperfectly capture the intent of the originator, typically because they are a failed result of an attempt to abstract and generalize from specific cases that illustrate circumstances it is wished to enable or proscribe. And this is the product when we – humans – have some comprehension of the nature of the subjects of these governance statements. Consider how much worse we could get it wrong trying to write policies and laws to govern autonomous software components that even the developers, let alone law-makers, only partly understand.
Given that what we are good at doing is describing a scenario in terms of actions taken and whether the outcome is right or wrong, the objective here is to explore how this skill can be used in conjunction with inductive logic programming (a form of machine learning) to synthesize policies from positive and negative examples. In outline, the aim of the project is the specification of use cases by by direct manipulation of graphical objects to:
- construct formal specifications of policy
- carry out automatic conflict detection and repair and
- generate the equivalent of unit tests for policy models.