Shape annotation by semi-supervised clustering