static L wordNet(S word, O... _) { optPar bool verbose; new L out; for (LS li : html_contentsOfLIs(wordNet_rawPage(word))) { new WordNet w; w.word = htmlDecode(stringContentsOfFirstContainerTag(li, "b")); w.wordType = deRoundBracket(trimJoin(contentsOfContainerTag(first(findContainerTagWithParams(li, "a", class := "pos"))))); w.examples = htmlDecode(deRoundBracket(trim(stringContentsOfFirstContainerTag(li, "i")))); S raw = join(dropContainerTags(cloneList(li))); w.description = htmlDecode(deRoundBracket(dropLeadingCommas(trim(raw)))); w.synonyms = new L; for (LS a : findContainerTag(li, "a")) if (nempty(tagParam(li, "href"))) w.synonyms.add(htmlDecode(contentsOfContainerTag(a))); if (verbose) print(w); out.add(w); } ret out; }