A Generic Framework for Checking Semantic