1. A method of determining a semantic relationship, comprising: using a processor to perform cluster analysis using at least a portion of a source content; and using the processor to use a result of the cluster analysis to determine the semantic relationship between two or more content elements comprising the source content; wherein performing cluster analysis includes determining a set of first order differences each first order difference corresponding to a physical distance between adjacent content elements as positioned within the source content; ordering the set of first order differences into a prescribed order; determining a set of second order differences by computing for each first order difference a corresponding second order difference corresponding to a difference between that first order difference and a next nearest first order difference in the ordered set of first order differences; ordering the set of second order differences; and determining based at least in part on a cluster analysis of the ordered set of second order differences a number of levels into which content elements comprising the source content are organized; wherein the cluster analysis is performed separately on the horizontal spacing between the elements from the vertical spacing between the elements.