set flag hotwire_here. // share ISpec interface with sub-modules static JavaXClassLoader hotwire_makeClassLoader(L files) { ClassLoader cl = myClassLoader(); ret new JavaXClassLoaderWithParent2(null, files, cl, parseClassesToShareList(smartBot_sharedClasses())); } static ISpec owner, ispec; static ThreadLocal ai_postTriple_verified; static void ai_spec_init() { O c = creator(); if (owner == null) owner = (ISpec) getOpt(c, 'ispec); ispec = owner; if (c != null) copyFields(c, mc(), 'ai_postTriple_verified); ai_prepLoadFunctions(); } static void ai_alternativeSmartBot() { } static Lock aiLock() { ret owner.aiLock(); } static bool ai_cache_hasTriple(T3 t) { ret ai_cache_hasTriple(t.a, t.b, t.c); } static bool ai_cache_hasTriple(S a, S b, S c) { ret owner.ai_cache_hasTriple(a, b, c); } static S ai_postTriple(T3 t) { ret ai_postTriple(t.a, t.b, t.c); } static S ai_postTriple(S a, S b, S c) { ret owner.ai_postTriple(a, b, c); } static S ai_setMaker(S maker) { ret owner.ai_setMaker(maker); } static L allIndexedFullTerms() { ret owner.allIndexedFullTerms(); } static L ai_texts_verified(S a, S b, S c) { ret owner.ai_texts_verified(a, b, c); } static S ai_text(S a, S b, S c) { ret owner.ai_text(a, b, c); } static S ai_text(T3 t) { ret ai_text(t.a, t.b, t.c); } static MultiMap dwlw_fullNodeIndex_ci() { fail("Shouldn't call"); } static Web ai_blob(S word, bool verified) { ret owner.ai_blob(word, verified); } static L ai_index_search_dollarX(S a, S b, S c) { ret owner.ai_index_search_dollarX(a, b, c); } static L indexedNodes(S s) { ret owner.indexedNodes(s); } static L indexedWebs(S s) { ret owner.indexedWebs(s); } static Set ai_invalidatedWebs() { ret owner.ai_invalidatedWebs(); } svoid ai_invalidatedWebs_cache_put(GlobalID a, GlobalID b) { owner.ai_invalidatedWebs_cache_put(a, b); } static MultiMap cachedNodeIndex2() { ret owner.cachedNodeIndex2(); } static Web ai_getWeb(S id) { ret owner.ai_getWeb(id); } static Web ai_getWeb(GlobalID id) { ret owner.ai_getWeb(str(id)); } static void ai_setSubSpace(AI_SubSpace subSpace) { owner.ai_setSubSpace(subSpace); } static AI_SubSpace ai_currentSubSpace() { ret owner.ai_currentSubSpace(); } static Set ai_mainIndexKeys() { ret owner.ai_mainIndexKeys(); } static TripleIndex tripleIndex() { ret owner.tripleIndex(); } static void ai_removeWeb(Web web) { owner.ai_removeWeb(web); } static L virtualNodeIndices() { ret owner.virtualNodeIndices(); } static bool ai_enabled() { ret owner.ai_enabled(); } static bool ai_useThoughtSpaces() { ret owner.ai_useThoughtSpaces(); } static bool ai_inTripleMode() { ret owner.ai_inTripleMode(); } static AbstractThoughtSpace currentThoughtSpace() { ret owner.currentThoughtSpace(); } static AbstractThoughtSpace thoughtSpace() { ret currentThoughtSpace(); } static A thoughtSpace(A ts) { ret owner.thoughtSpace(ts); } static void ai_markMemoryDirty() { owner.ai_markMemoryDirty(); } static bool ai_isMemoryDirty() { ret owner.ai_isMemoryDirty(); }