static L conceptsFromDump(S s) { new L> l; if (neq(first(javaTokC(s)), "[")) { for (S line : toLinesFullTrim(s)) { int i = line.indexOf(" - "); if (i > 0) { S id = trim(substring(line, 0, i)); if (!possibleGlobalID(id)) warn("no id: " + id); else l.add(ll(id, trim(substring(line, i+3)))); } } } else l = (L) safeUnstructure("[" + s + "]"); new L out; for (L x : l) { AIConcept c = unlisted(AIConcept); S id = makeNewID(get(x, 0)); cset(c, globalID := id, name := unnull(get(x, 1)), comment := unnull(get(x, 2))); out.add(c); } ret out; }