AIR Policy Test Cases
From TAMI
- AIR Policy Language Features
- lists properties in AIR policy language, with their domains and range
- Some Questions about AIR Policy Language Features
- lists the issues that are not clear
Template
Data Set
- Data File: AIR_Demo_Dataset_1 (RDF) (Image:pic)
- Description: description
Demo 1-1
- Policy file: AIR_Demo_1_Policy_1 (N3 source)
- Description: description of the policy
- [+] RESULTS from Justification UI
- Description: description of the results
Demo1: Policies with Simple Rules
Data Set
- Data File: AIR_Demo_Dataset_1 (RDF) (Image:RDF_graph_for_AIR_Demo_Dataset1.png)
- Description: Alice has father Bob
Demo 1--1 (Policy with a simple assertion that contains blank node)
- Policy file: Demo1_Policy9 (N3 source)
- Description: Rule with no pattern
- [-] RESULTS from Justification UI
- Description: Triple is always asserted
Demo 1-0 (Policy with a simple rule)
- Policy file: Demo1_Policy8 (N3 source)
- Description: Rule with no pattern
- [+] RESULTS from Justification UI
- Description: Triple is always asserted
Demo 1-1 (Policy with a simple rule)
- Policy file: Demo1_Policy1 (N3 source)
- Description: Any person who is known to hold the 'has_father' relation with another person complies with the policy. In addition we assert that the 2 persons are related by 'has_parent' relation.
- [+] RESULTS from Justification UI
- Description: Since Alice is known to have father Bob, Alice satisfies the policy
Demo 1-2 (A pattern with variable at the predicate position)
- Policy file: Demo1_Policy6 (N3 source)
- Description: Relations by which Alice and Bob are related are compliant with the policy
- [+] RESULTS from Justification UI
- Description: Since Alice and Bob are related by Has_Father relationship, Has_Father satisfies the policy
Demo 1-3 (It is important to assert at-least 1 compliance or non-compliance relation between a resource and some Policy.)
- Policy file: Demo1_Policy2 (N3 source)
- Description: Policy with one rule, that only asserts has_Parent relationship
- [-] RESULTS from Justification UI
- Description: AIR Policy engine tries to compute compliance (or non-compliance) relationships. Since in the given policy no such</br>
assertions are made, the reasoner returns an empty set of assertions.
Demo 1-4 (Two policies in 1 file)
- Policy file: Demo1_Policy3 (N3 source)
- Description: # Any person who is known to hold the 'has_father' relation with another person complies with the first policy. In addition we assert that the 2 persons are related by 'has_parent' relation. # Any person who is known to hold the 'has_parent' relation with another person complies with the second policy. In addition we assert the 'has_ancestor' relation.
- [+] RESULTS from Justification UI
- Description: Since Alice has father Bob, he complies with 1st policy and it is added that Alice has parent Bob. Now when Alice is known to have Parent Therefore Alice also complies with the 2nd policy.
Demo 1-5 (Two policies in 1 file, and order is enforced through the use of air:compliant with in the pattern)
- Policy file: Demo1_Policy4 (N3 source)
- Description: Policies as similar to that in 1-4. # Any person who is known to hold the 'has_father' relation with another person complies with the first policy. # Any person who is compliant with 1st policy, is also compliant with second policy. In addition we assert that the 'has_ancestor relationship holds.
- [+] RESULTS from Justification UI
- Description: Since Alice has father Bob, he complies with 1st policy. Now when Alice is compliant with the 1st policy, she is also compliant with 2nd policy and it is added that Alice has Ancestor Bob.
Demo 1-6 (Two rules in 1 policy. At least one rule must trigger for compliance with the policy)
- Policy file: Demo1_Policy5 (N3 source)
- Description: # According to the first rule any person who is known to hold the 'has_mother' relation with another person complies with the policy. # Similarly according to the second rule any person who is known to hold the 'has_father' relation with another person complies with the policy. In addition we assert, in either case, that the 2 persons are related by 'has_parent' relation.
- [+] RESULTS from Justification UI
- Description: Since Alice is only known to have has father relationship, Alice is compliant with the policy and he also has a parent in Bob.
Demo 1-7 (A rule outside the policy - i.e. not related with any policy)
- Policy file: Demo1_Policy7 (N3 source)
- Description:
- [-] RESULTS from Justification UI
- Description: Since the second rule is not contained in any policy it is never activated.
Demo10: Multiple policy files
Demo (AIR 10-1): 2 policy files containing independent policies
- {{#arraymap:Demo2_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo10_Policy1, Demo10_Policy2|,|vx|vx, live N3 dump|
- }}
- [+] Demo10_Policy2|,|vx|rulesFile=http%3A//tw.rpi.edu/proj/tami/Special%3ASimpleExport%3Fpage%3Dvx%26landmark%3Dn3&|}} online demo on live data
Demo (AIR 10-2): 2 policy files. Policy in the 1st policy file references rule in other policy file.
- {{#arraymap:Demo2_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo10_Policy3, Demo10_Policy4|,|vx|vx, live N3 dump|
- }}
- [+] Demo10_Policy4|,|vx|rulesFile=http%3A//tw.rpi.edu/proj/tami/Special%3ASimpleExport%3Fpage%3Dvx%26landmark%3Dn3&|}} online demo on live data
Demo (AIR 10-3): 2 policy files. Policy in the 1st policy file references rule in other policy file.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo10_Policy5, Demo10_Policy6|,|vx|vx, live N3 dump|
- }}
- [-] Demo10_Policy6|,|vx|rulesFile=http%3A//tw.rpi.edu/proj/tami/Special%3ASimpleExport%3Fpage%3Dvx%26landmark%3Dn3&|}} online demo on live data
Demo (AIR 10-4): 2 policy files. Two policy files.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo10_Policy8, Demo10_Policy9|,|vx|vx, live N3 dump|
- }}
- [-] Demo10_Policy9|,|vx|rulesFile=http%3A//tw.rpi.edu/proj/tami/Special%3ASimpleExport%3Fpage%3Dvx%26landmark%3Dn3&|}} online demo on live data
Demo (AIR 10-5): 2 policy files. Two policy files. PERSON is not declared to be a variable in second file.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo10_Policy10, Demo10_Policy11|,|vx|vx, live N3 dump|
- }}
- [-] Demo10_Policy11|,|vx|rulesFile=http%3A//tw.rpi.edu/proj/tami/Special%3ASimpleExport%3Fpage%3Dvx%26landmark%3Dn3&|}} online demo on live data
Demo9: Variables
Demo (AIR 9-1): :PERSON2 variable is universally quantified
- {{#arraymap:Demo9_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo9_Policy1|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 9-2): :PERSON2 variable is existentially quantified in the pattern
- {{#arraymap:Demo9_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo9_Policy2|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 9-3): :PERSON2 variable is universally quantified in the pattern that is asserted
- {{#arraymap:Demo9_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo9_Policy3|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 9-4): :PERSON2 variable is existentially quantified in the pattern that is asserted
- {{#arraymap:Demo9_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo9_Policy4|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo8: Nesting of rules
Demo (AIR 8-1): simple nesting of rules
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo8_Policy1|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 8-2): Nesting of rules, while the level 1 rule triggers a new rule, it also asserts a triple.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo8_Policy2|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 8-3): Nesting of rules, while the level 1 rule triggers a new rule and asserts a fact not in database. The new fact queries for the new fact added
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo8_Policy3|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 8-4): same rule is once nested, and once not- this is to verify if the rule is triggered independently.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo8_Policy4|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 8-5): Nesting of rules, while the level 1 rule triggers a new rule and asserts a fact not in database. The new fact queries for the new fact added
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo8_Policy5|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 8-6): One rule is not contained in any policy, and it is not applied.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo8_Policy6|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 8-7): Same rule is contained in more than 1 policy.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo8_Policy7|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 8-8): A rule contains only alt, and trying to see how fwd chaining and NAF go hand in hand.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo8_Policy8|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo2: Transitive Inference
Demo (AIR 2-1): Has_Ancestor is not declared to be Transitive. We define a rule within the policy to model transitivity.
- {{#arraymap:Demo2_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo2_Policy1|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 2-2): Has_Descendant is declared to be Transitive Property using owl:TransitiveProperty, and new assertions (& compliances) are inferred by the policy engine reasoner
- {{#arraymap:Demo2_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo2_Policy2|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 2-3): Same as AIR 2-1 example. However, 2 of the 3 rules are clubbed under 1 policy
- {{#arraymap:Demo2_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo2_Policy3|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo3: If-then-else
Demo (AIR 3-1): "if-then-else" using air:alt. in this example we check if aunt rule is compliant. If it is not compliant we check if uncle rule is compliant
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy1|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 3-2): The policy is same as in previous example, with the difference that an identifier for the alternative rule is used.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy2|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 3-3): The policy is same as in previous example, with the difference that an identifier for the alternative rule is used.
- {{#arraymap:AIR_Demo_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy3|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 3-4): Rule with multiple alt properties
- {{#arraymap:AIR_Demo_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy4|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 3-5): Writing a rule such that when something is not found you can go on to add it, so that there is a match next time.
- {{#arraymap:AIR_Demo_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy5|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 3-6): Writing a rule such that when something is not found you can go on to add it, so that there is a match next time.
- {{#arraymap:AIR_Demo_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy6|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 3-7): An alternative description.
- {{#arraymap:AIR_Demo_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy7|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 3-8): If then else, such that the variable appearing in else pattern is reused
- {{#arraymap:AIR_Demo_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy8|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 3-9): If then else, such that the variable appearing in else pattern is reused
- {{#arraymap:AIR_Demo_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy9|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 3-10): to test air:alt implementation
- {{#arraymap:AIR_Demo_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo3_Policy10|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo6: Hidden Rule
Demo (AIR 6-1): (AIR 6-1) An anonymous node is declared to be a hidden rule.
- {{#arraymap:Demo6_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo6_Policy1|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 6-2): (AIR 6-2) A named rule is declared to be a hidden rule.
- {{#arraymap:Demo6_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo6_Policy2|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo 7: Explicit Justification
Demo2_Data
Demo (AIR 7-1): Use of assertion [:statement {...}] instead of assert{...}.
- {{#arraymap:Demo2_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy1|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 7-2): Rule-id to be used in justification is explicitly declared
- {{#arraymap:Demo2_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy2|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 7-3): Rule-id and set of antecedents for justification are defined explicitly
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy3|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 7-4): Same as AIR 7-3 with a slight modification. We use both assert and assertion in the rule.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy4|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 7-5): justification as a property of Abstract-assertion. We see 2 things. One that there is no nested justification anymore- only the explicitly declared matched-graph and rule id appear as justifications. second rule description of the rule where the assertion is done also shows up.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy5|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 7-6): inner-most nested rule has a justification property. it doesn't affect any justification generation. however engine reports no error.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy6|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 7-7): non inner-most nested rule has a justification property. again it doesn't affect any justification generation. again, engine reports no error.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy7|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 7-8): multiple antecedents for the same assertion. The effect is that antecedent expression is union of the multiple matched-graphs.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy8|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 7-9): multiple rule-ids in justification. doesn't work.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy9|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 7-10): abstract assertions with multiple statements.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy10|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 7-11): justification without antecedent. In the justification produced the antecedent expression is empty.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy11|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 7-12): justification without rule-id. Rule engine gives an error.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy12|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 7-13): empty justification. Rule engine gives an error.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy13|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 7-14): abstract assertion w/t justification. this doesn't work
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy14|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 7-15): explicit justification for alternative assertion
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy15|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 7-16): explicit justification, s.t. antecedent is defined as a new graph, not a new graph.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy16|,|vx|vx, live N3 dump|
- }}
- [-] online demo on live data
Demo (AIR 7-17): long nesting of rules with descriptions for each.
- {{#arraymap:Demo7_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo7_Policy17|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 7-18) : Sample Policy for seeing justification produced by the current implementation
- Data : Demo7_Data18
- Policy : Demo7_Policy18
- Results
Demo4: Multi-log
Demo(4-1): reasoning on two logs
- Demo4_Data1, live RDF/XML dump
- Demo4_Data2, live RDF/XML dump
- Demo4_Policy1, live n3 dump
- [-] online demo on live data - just data1 is not enough
- [-] online demo on live data - just data2 is not enough
- [+] online demo on live data - both data1 and data2 works
Demo11: multiple assert and assertion
Demo(11-1): multiple assert statements
Demo(11-2): simultaneous assert and assertion statements
Demo(11-3): simultaneous assert and assertion statements
Demo12: Rules in the file trigger a nested rule in a different file
Demo (AIR 12-1): 2 policy files. PERSON is not declared to be a variable in second file.
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo10_Policy10, Demo10_Policy11|,|vx|vx, live N3 dump|
- }}
- [+] Demo10_Policy11|,|vx|rulesFile=http%3A//tw.rpi.edu/proj/tami/Special%3ASimpleExport%3Fpage%3Dvx%26landmark%3Dn3&|}} online demo on live data
Demo (AIR 12-2): checking how demo policy 11 performs individually
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo10_Policy11|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo (AIR 12-3): checking how demo policy 11 performs individually
- {{#arraymap:Demo3_Data|,|vx|vx, live RDF/XML dump|
- }}
- {{#arraymap:Demo10_Policy12,Demo10_Policy11|,|vx|vx, live N3 dump|
- }}
- [+] online demo on live data
Demo13: Testing operational semantics of AIR (especially air:else)
Demo (AIR 13-1) :
- Tests - does the level of negative nesting matter - Yes
- Test 1 - if P then R else [if true then P], will R be inferred? - Yes;
- Test 2 - if P else [ if P then R else S ] else [ if true then P], is R or S inferred? - only R
- Data : AIR Demo Data
- Policy : Demo13_Policy1
- Results
Demo (AIR 13-2) :
- Test - if P else [if Q then [if Q then R]] else [if R then S else T], Q <- true. is S or T inferred? S only.
- Data : AIR Demo Data
- Policy : Demo13_Policy2
- Results
Demo (AIR 13-3) :
- Tests
- Test 1 - if P else Q. if Q else R, is R inferred? - Yes;
- Test 2 - if P else Q. if P else [ if Q then S else R ], is R or S inferred - S only!
- Data : AIR Demo Data
- Policy : Demo13_Policy3
- Results
Demo (AIR 13-4) : Does order of rules matter.
- Test : Does order of rules matter (rule1, rule2) vs (rule2, rule1) - Yes
- rule1 = if P else R, [ if {} then Q ] .
- rule2 = if Q else S, [ if {} then P ] .
- Data : AIR Demo Data
- Policy : Demo13_Policy4_1 (rule1, rule2), Demo13_Policy4_2 (rule2, rule1), Demo13_Policy4 (Single policy document)
- Results
Demo (AIR 13-5) : Does order of rules matter?
- Rules
- rule1 = if P else Q .
- rule2 = if Q else P .
- Data : AIR Demo Data
- Policy : Demo13_Policy5
- Results
Demo (AIR 13-6) : Testing if order of 'air:else' actions make a difference.
- Test- assert triples in one of the 'else' actions that satisfy the if condition. The ordering should influence whether rest of the 'else' actions are effected.
- Data : AIR Demo Data
- Policy : Demo13_Policy6, Demo13_Policy6_b
- Results, Results_b
Demo (AIR 13-7) : Testing if order of 'air:else' actions make a difference.
- Test- assert triples in one of the 'else' actions that satisfy the if condition. The ordering should influence whether rest of the 'else' actions are effected.
- Data : AIR Demo Data
- Policy : Demo13_Policy7, Demo13_Policy7_b
- Results, Results_b
Demo (AIR 13-8) : Testing if order of 'air:else' actions make a difference.
- Test- assert triples in one of the 'else' actions that satisfy the if condition. The ordering should influence whether rest of the 'else' actions are effected.
- Data : AIR Demo Data
- Policy : Demo13_Policy8
- Results
Demo14: Testing the TMS maintenance
Demo (AIR 14-1) : Test 1 - if P else Q. if Q then R. Does the justification for Q show up? - Yes; Test 2 - if P then Q. if Q then R. Does the justification for Q show up? - Yes
- Data : AIR Demo Data
- Policy : Demo14_Policy1
- Results
Demo (AIR 14-2) : if P then Q , with the description. Does description show up - Yes
- Data : AIR Demo Data
- Policy : Demo14_Policy2
- Results

