1. A method of constructing an ontology from data, the ontology comprising concepts and relationships between certain of those concepts, and the ontology having a defined structure, the method comprising: using the data, constructing, by one or more processors, a lexical graph, wherein: the lexical graph comprises a plurality of nodes and a plurality of edges; each node of the lexical graph corresponds to one or more data terms; each edge of the lexical graph is a connection between two different nodes; and the lexical graph further comprises statistical information relating to the data terms; selecting, by the one or more processors, as the concepts of the ontology, nodes in the lexical graph that correspond to prominent data terms; wherein the step of selecting, as the concepts of the ontology, nodes in the lexical graph corresponding to prominent data terms comprises: for each node in the lexical graph, determining a weight of significance; and identifying as a node that corresponds to a prominent data term, those nodes that have a weight of significance greater than or equal to a first predetermined threshold value; grouping, by the one or more processors, into one or more groups, the concepts, each group comprising one or more concepts and the grouping comprises performing a community-detection process based on structural similarity of nodes in the lexical graph; based on the one or more groups and the statistical information, detecting, by the one or more processors, relationships between the concepts; and using a formal ontological specification, the concepts, and the relationships between those concepts, defining, by the one or more processors, the structure of the ontology.
8. A method according to claim 1 wherein detecting relationships between the concepts comprises: selecting a set of concepts; and determining the transitive closure of the selected set of concepts.