USING MACHINE LEARNING AND ROUTING PROTOCOLS FOR OPTIMIZING DISTRIBUTED SPARQL QUERIES IN COLLABORATION