---
# System prepended metadata

title: 'Policy 1 : a PublicAccess only gets to see the'

---

@prefix : <urn:example:> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

# Policy 1 : a PublicAccess only gets to see the 
# foaf:name and foaf:email
(_:Login _:S _:name _:email) log:onNegativeSurface {
    () log:onAccessSurface {
        _:Login a :PublicAccess .
    } .

    _:S a foaf:Person .
    _:S foaf:name _:name .
    _:S foaf:email _:email .

    () log:onNegativeSurface {
        # We write the triples on a result surface
        () log:onResultSurface {
            _:S foaf:name _:name {| log:ohyeah :Policy_1 |} .
            _:S foaf:email _:email {| log:ohyeah :Policy_1 |} . 
        } .
    } .
} {| :name :Policy_1 |} .

# ~(A ^ ~B)   ->   A => B