1. A method for obtaining contextually related instances using one or more different functionality modules, comprising: a) providing to a system comprising at least one server a plurality of different functionality modules and a graph mapping a plurality of contextual relations among a plurality of instance types, each said functionality module being associated with at least one of said plurality of contextual relations in said graph and configured for providing at least one instance of a respective type; b) receiving a query defining contextual linkage between at least one known instance and at least one requested instance from a client connected to said system via a network, said at least one known instance is not directly associated with a type of said requested instance; c) identifying, by said system, a match between said contextual linkage and a sub-graph of said graph, said sub-graph being associated with a group of said plurality of functionality modules; and d) dividing said query to a number of single step queries; e) iteratively executing at least some of said number of single step queries by said system, wherein one of said number of single step queries includes a first member of said group with said at least one known instance for obtaining at least one intermediate instance and another of said number of single step queries includes a second member of said group with said at least one intermediate instance for obtaining said at least one requested instance; f) responding to said received query with said obtained at least one requested Instance; wherein said functionality module implements at least one of a web service and a code script; wherein members of said group are executed in an order matching dependencies in said sub graph.