abstract and knn