A logic program consists of facts (as Rules (2) and (3)) and rules (as Rules (4) and (5)), each of which is terminated by a period ‘.’. The connectives ‘:-’ and ‘,’ can be read as if and and, respectively. Rule (4) defines ua(R, U)to represent that user(U) is assigned to role(R) while rule (5) defines n_ua(R, U) to represent that user(U) is not assigned to role(R). Rule (6) defines pa(R, P) to represent that per(P) is assigned to role(R) while rule (7) defines n_pa(R, P) to represent that per(P) is not assigned to role(R). Rules (8)–(10)