1. A method comprising: crawling, by one or more processors, electronic learning materials stored at least temporarily in one or more non-transitory storage media; extracting, by the one or more processors, structural information from the electronic learning materials; extracting, by the one or more processors, knowledge points from the electronic learning materials; inferring, by the one or more processors, hierarchy and dependency relationships between the knowledge points; aligning, by the one or more processors, one or more of the knowledge points with one or more of the learning materials; and generating, by the one or more processors, a domain knowledge structure including the extracted knowledge points organized at least partially according to the inferred hierarchy and dependency relationships and including the aligned learning materials.