clean semantic