A Conceptual Clustering Algorithm for Semantic Data Models