Effective Partitioning Of Rdf Data For Distributed Query Answering