Knowledge sharing in virtual communities