@prefix air: <http://dig.csail.mit.edu/TAMI/2007/amord/air#> .
@prefix tami: <http://dig.csail.mit.edu/TAMI/2007/tami#> .
@prefix rein: <http://dig.csail.mit.edu/2005/09/rein/network#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> .
@prefix : <#> .

@forAll :EVENT, :DATA, :REQUESTER, :FORMULA, :FRIEND, :FRIENDFORMULA .

:JulietteLocationDissemPolicy a air:Policy ;
    air:rule [
#	air:variable :EVENT, :DATA, :REQUESTER ;
        rdfs:label "Juliette's Location Dissemination Rule" ;
        air:pattern {
            :EVENT a rein:Request ;
                tami:data :DATA ;
                tami:recipient :REQUESTER .
        } ;
        air:description (:REQUESTER " is a friend of Juliette requesting " :DATA) ;
        air:assert { :EVENT air:compliant-with :JulietteLocationDissemPolicy . } ] .
	
:JulietteFOAFDissemPolicy a air:Policy ;
    air:rule [
        rdfs:label "Juliette's Friend-of-a-Friend Rule" ;
        air:pattern {
            :EVENT a rein:Request ;
                tami:data :DATA ;
                tami:recipient :REQUESTER .
            <http://www.pipian.com/rdf/tami/juliette.n3> log:semantics :FORMULA .
            :FORMULA log:includes { <http://www.pipian.com/rdf/tami/juliette.n3#juliette> foaf:knows :REQUESTER . } .
        } ;
        air:description (:REQUESTER " is a friend of Juliette requesting " :DATA) ;
        air:assert { :EVENT air:compliant-with :JulietteFOAFDissemPolicy . } ;
        air:alt [
            air:rule [
                air:pattern {
                    :EVENT a rein:Request ;
                        tami:data :DATA ;
                        tami:recipient :REQUESTER .
                    <http://www.pipian.com/rdf/tami/juliette.n3> log:semantics :FORMULA .
                    :FORMULA log:includes { <http://www.pipian.com/rdf/tami/juliette.n3#juliette> foaf:knows :FRIEND . } .
                    :FRIEND log:semantics :FRIENDFORMULA .
                    :FRIENDFORMULA log:includes { :FRIEND foaf:knows :REQUESTER . } .
                } ;
                air:description (:REQUESTER " is a friend of " :FRIEND ", who is a friend of Juliette, requesting " :DATA) ;
                air:assert { :EVENT air:compliant-with :JulietteFOAFDissemPolicy . } ] ] ] .

:JulietteSpammingDissemPolicy a air:Policy ;
    air:rule [
        rdfs:label "Juliette's Friend-of-a-Friend Spamming Rule" ;
        air:pattern {
            :EVENT a rein:Request ;
                tami:data :DATA ;
                tami:recipient :REQUESTER .
            :REQUESTER log:semantics :FORMULA .
            :FORMULA log:includes { :REQUESTER foaf:knows <http://www.pipian.com/rdf/tami/juliette.n3#juliette> . } .
        } ;
        air:description (:REQUESTER " has Juliette as a friend requesting " :DATA) ;
        air:assert { :EVENT air:compliant-with :JulietteSpammingDissemPolicy . } ] .
