1. A method for routing data through a network based on semantics of content of the data being routed wherein the network comprises a plurality of routers, comprising: configuring the plurality of routers to route data packets through the network based on the semantics of the content of the data packets by receiving a plurality of semantic profiles at one or more of the routers, the semantic profiles including information that identifies consumers' interests in receiving content of a given description, operating on the semantic profiles received at one of a plurality of routers to identify areas of overlapping interests of consumers, aggregating the semantic profiles using the identified areas of overlapping interests, and propagating the aggregated semantic profiles to other ones of the plurality of routers; routing a data packet through the network by making comparisons between at least the semantic content included in the data packet and the semantic content of the aggregated semantic profiles received from other routers; and forwarding the data packet to at least one of the plurality of routers or to the content consumer when there is a match of the semantic content.