@prefix air: <http://dig.csail.mit.edu/TAMI/2007/amord/air#>.
@prefix s: <http://dig.csail.mit.edu/2009/IARPA-PIR/sparql#>.
@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix type: <http://dig.csail.mit.edu/2009/IARPA-PIR/generic#> .
@prefix : <>.

@forAll :Q, :P, :W, :T.

# With contributions by Yotam Aron, yyyaron@mit.edu.

:default-deny-Policy a air:Policy;
	air:label "Default Deny Policy";
	air:rule :query-rule.

:query-rule a air:BeliefRule;
	air:label "Query Rule";
	air:description ("Make sure this is a query.");
	air:pattern {
		:Q a s:Select;
		   s:POSList :P;
		   s:WhereClause :W.
    };
	air:rule :default-deny-rule.

:default-deny-rule a air:BeliefRule;
	air:label "Default Deny Rule";
	air:pattern {
		:W s:TriplePattern :T.
        :T log:notIncludes { [] type:X [] } .
        :T log:notIncludes { [] type:Y [] } .
        :T log:notIncludes { [] type:Z [] } .
	};
	air:description (:Q "is not compliant with the query because " :T " includes a reference to a restricted variable.");
	air:assert { :Q air:non-compliant-with :default-deny-Policy. } ;
	air:alt [ air:assert { :Q air:compliant-with :retrieve-and-filter-policy } ; ] .


