Sharing data and knowledge from heterogeneous sources