A common problem that occurs in many domains is how to apply a set of pre-defined rules to events that occur in a system. For example, file system permissions are important in many environments, as there is a real need to verify that users have appropriate privileges before reading or editing files. Another example is in society, where the judicial system tries to verify whether or not a person broke a given law. At a high level, AIR is a language in which rules can be stated, and then when fed to a reasoner along with a log of events, the reasoner will return justifications as to whether or not the rules are followed.
AIR is a Semantic Web rule language that supports customizable explanations for policy decisions. Each AIR policy, represented as a collection of production rules, can be used to check transaction logs that record data manipulation activities. The checking results include (i) asserted policy decision statements, i.e. which certain log entry is "compliant" or "non-compliant" with the given AIR policy; and (ii) customizable justification statements, i.e. the custom-tailored justifications showing how AIR reasoner derived the policy decision statements using the input logs and policies.
The picture below shows the workflow of using AIR as a rule language in the policy framework.