1. A computer-implemented process for automatically annotating a new image, comprising using a computing device to perform the following process actions: inputting a set of training images, wherein the new image is not in manually annotating each training image in with a vector of keyword annotations; partitioning into a plurality of semantic clusters of training images, wherein k is a variable which uniquely identifies each cluster, comprises training images that are semantically similar, and each training image is partitioned into a single cluster; for each semantic cluster of training images, learning a semantic distance function (SDF) f (k) for utilizing f (k) to compute a pair-wise feature-based semantic distance score between the new image and each training image in resulting in a set of pair-wise feature-based semantic distance scores for wherein each feature-based score in the set specifies a metric for an intuitive semantic distance between the new image and a particular training image in utilizing the set of pair-wise feature-based semantic distance scores for to generate a ranking list for wherein said list ranks each training image in according to its intuitive semantic distance from the new image, estimating a cluster association probability p(k) for wherein p(k) specifies a probability of the new image being semantically associated with and probabilistically propagating the vector of keyword annotations for each training image in to the new image, resulting in a cluster-specific vector w (k) of probabilistic annotations for the new image; and utilizing p(k) and w (k) for all the semantic clusters of training images to generate a vector w of final keyword annotations for the new image.