static S getSingularFromWordHippo(S word) { word = tolower(word); SS hippoSingulars = pairsToMap((L>) scanStructureLog(#1011041, "singulars")); try answer hippoSingulars.get(word); S html = loadPage("https://www.wordhippo.com/what-is/the-singular-of/" + urlencode(word) + ".html"); S pat = "The singular form of " + word + " is"; int i = indexOfIC(html, pat); if (i < 0) { print("no singular: " + html); null; } i += l(pat); int j = indexOf(html, "", i); if (j < 0) null; S singular = trim(dropTags(substring(html, i, j))); logStructure(#1011041, "singulars", pair(word, singular)); ret singular; }