1. A computer implemented method of allowing entities to cooperate for implementing at least one process, the method being part of a computer system, comprising: (a) producing objects by at least one entity; (b) associating each of the objects with at least one semantic term, said associating done by the at least one entity; (c) allocating a tuple to each of the at least one semantic terms, the tuple containing information provided by each of the objects corresponding to a meaning of the at least one semantic term, allowing the tuple to be found in at least one tuple space; (d) storing and retrieving information in the form of the tuple; e) using the tuple to represent each of the objects involved in the at least one process, wherein at least one tuple type is registered by the at least one entity; (f) representing conditions, under which the at least one entity can produce at least one of the objects by using at least one tuple template, the at least one tuple template generated by the at least one entity; (g) associating the at least one tuple template and the tuple with the at least one semantic term to form a type; (h) indicating the at least one semantic term in any order to represent a goal of the at least one process; and (i) generating streams representing chains of events composed of sequential events which terminate at the tuple corresponding to each of the at least one semantic terms.