# USAGE : cwm --crypto --rdf|--n3 --n3 engine.n3 --think --filter="filter.n3" --rdf # USAGE : cwm --crypto --rdf http://dig.csail.mit.edu/2005/09/rein/examples/judy-req.rdf --n3 http://dig.csail.mit.edu/2005/09/rein/engine.n3 --think --filter="http://dig.csail.mit.edu/2005/09/rein/filter.n3" --rdf @keywords is, of, a. @prefix rdf: . @prefix rdfs: . @prefix owl: . @prefix log: . @prefix rein: . @prefix session: . @prefix : . # semantics of policy-language property @forAll RESOURCE, POLICY, LANG, META. { RESOURCE rein:policy POLICY. POLICY.log:semantics log:includes { POLICY rein:policy-language LANG } } => { POLICY rein:policy-language LANG }. # semantics of meta-policy property { POLICY rein:policy-language LANG. LANG.log:semantics log:includes { LANG rein:meta-policy META } } => { LANG rein:meta-policy META }. # if policy-lang does not have a meta-policy # load policy, policy-language and check whether # it infers that (requester access resource) is true @forAll REQ, WHO, RESOURCE, POLICY, LANG, ACCESS, F, G, WHO2. { REQ a rein:Request. REQ rein:requester WHO. REQ rein:resource RESOURCE. REQ rein:access ACCESS. RESOURCE rein:policy POLICY. POLICY rein:policy-language LANG. LANG.log:semantics log:notIncludes { [] rein:meta-policy [] }. ( REQ.log:semantics { RESOURCE rein:policy POLICY } { POLICY rein:policy-language LANG } POLICY.log:semantics LANG.log:semantics .log:semantics ) log:conjunction F. F log:conclusion G. } => { G :has :ans }. # if policy-lang does have a meta-policy # load meta policy and check whether # it infers that (requester access resource) is true @forAll REQ, WHO, RESOURCE, POLICY, LANG, META, ACCESS, F, G, WHO2. { REQ a rein:Request. REQ rein:requester WHO. REQ rein:resource RESOURCE. REQ rein:access ACCESS. RESOURCE rein:policy POLICY. POLICY rein:policy-language LANG. LANG rein:meta-policy META. ( REQ.log:semantics { RESOURCE rein:policy POLICY } { POLICY rein:policy-language LANG } { LANG rein:meta-policy META } META.log:semantics ) log:conjunction F. F log:conclusion G. } => { G :has :ans }. # result is obtained after filtering thru filter.n3 #ends