shared semantic for rule