!7 concept DetectorEntry { S task; // e.g. "English vs German n=1000" S regexp; S result; } cmodule LanguageDetectionRegexps > DynCRUD { start { indexConceptFieldsCI(DetectorEntry, 'task, DetectorEntry, 'regexp); } // API void saveResult(S task, S regexp, S result) { cset(uniqCI DetectorEntry(+regexp, +task), +result); } // pairs of regexp + result LPairS regexpsForTask(S task) { ret map(conceptsWhereCI DetectorEntry(+task), e -> pair(e.regexp, e.result)); } }