@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

@prefix math: <http://www.w3.org/2000/10/swap/math#> .
@prefix type: <http://dig.csail.mit.edu/2009/IARPA-PIR/generic#> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> .
@prefix list: <http://www.w3.org/2000/10/swap/list#> .
@prefix air: <http://dig.csail.mit.edu/TAMI/2007/amord/air#> .
@prefix db: <http//dig.csail.mit.edu/db#> .
@prefix s: <http://dig.csail.mit.edu/2009/IARPA-PIR/sparql#> .
@prefix : <http://dig.csail.mit.edu/2009/IARPA-PIR/Yotam_Work/Two_Sources_Policy#>.

#If the user searches in one source <genericURI1>, the the user may not search in another source <genericURI2>.

@forAll :Q, :C, :S, :T.

:Two_Sources_Policy a air:Policy;
	air:label "Two Sources Policy";
	air:rule :TS_Rule1.

:TS_Rule1 a air:BeliefRule;
	air:label "Two Sources Rule 1";
	air:pattern {
              :Q a s:Query;
        	  s:Clause :C
       };
	air:description(:Q " is a SPARQL query.");
	air:rule :TS_Rule2.

:TS_Rule2 a air:BeliefRule;
	air:label "Two Sources Rule 2";
	air:pattern{
		:Q s:Source :S.
		:S list:in (<http://URIgeneric1.html>)
	};
	air:description (:Q " searches in " :S);
	air:rule :TS_Rule3;
	air:alt [ air:assert{:Q air:compliant-with :Two_Sources_Policy}].

:TS_Rule3 a air:BeliefRule;
	air:label "Two Sources Rule 3";
	air:pattern{
		:Q s:Source :T.
		:T list:in (<http://URIgeneric2.html>)
	};
	air:description (:Q " also searches in " :T);
	air:assert {:Q air:non-compliant-with :Two_Sources_Policy};
	air:alt [ air:assert {:Q air:compliant-with :Two_Sources_Policy}].