A method of providing a content guide identifying a spatial relationship between the elements in the content guide, the method performed by a controller, the method comprising: a. receiving, by the controller, electronic program guide data, wherein the received electronic program guide data is displayed on a first display device; b. parsing the received electronic program guide data to identify a plurality of programs listed in the electronic program guide and data corresponding to program description attributes for the identified programs; characterized in that the method further comprises: c. determining the relationship between each identified program based on an identified set of attributes wherein the relationship between two programs is determined as a spatial distance, said determining comprising, for each program, calculating a distance vector as a weighted sum of corresponding attribute values for the identified set of attributes, and calculating a spatial distance between programs based on a Euclidean distance between their distance vectors; d. generating at least one cluster including more closely related programs of the plurality of identified programs based on the determined spatial distances; e. generating, by a user interface display processor a user interface display image representing a clustered content guide and including the at least one generated cluster, wherein the spatial Euclidean distances between programs are visually displayed enabling the user to view the relationship of the plurality of programs, wherein the user interface display image includes a sliding bar enabling the user to selectively determine in real-time a weight value of a selected attribute, enabling to view a corresponding change in real time of the spatial Euclidean distances between the programs of the at least one generated cluster, the clustered content guide displayed on a second display device, the second display device having a browser for navigating to a webserver of an internet interface of the user interface display processor. a. receiving, by the controller, electronic program guide data, wherein the received electronic program guide data is displayed on a first display device; b. parsing the received electronic program guide data to identify a plurality of programs listed in the electronic program guide and data corresponding to program description attributes for the identified programs; c. determining the relationship between each identified program based on an identified set of attributes wherein the relationship between two programs is determined as a spatial distance, said determining comprising, for each program, calculating a distance vector as a weighted sum of corresponding attribute values for the identified set of attributes, and calculating a spatial distance between programs based on a Euclidean distance between their distance vectors; d. generating at least one cluster including more closely related programs of the plurality of identified programs based on the determined spatial distances; e. generating, by a user interface display processor a user interface display image representing a clustered content guide and including the at least one generated cluster, wherein the spatial Euclidean distances between programs are visually displayed enabling the user to view the relationship of the plurality of programs, wherein the user interface display image includes a sliding bar enabling the user to selectively determine in real-time a weight value of a selected attribute, enabling to view a corresponding change in real time of the spatial Euclidean distances between the programs of the at least one generated cluster, the clustered content guide displayed on a second display device, the second display device having a browser for navigating to a webserver of an internet interface of the user interface display processor.