Combining self-organisation, context-awareness and semantic reasoning: the case of resource discovery in opportunistic networks