static S ai_postTriple(T3 triple) { // check, clean if (triple_anyPartNull(triple)) null; triple = trimTriple(triple); if (!ai_tripleAllowedToPost(triple)) fail("No"); // existing? if (ai_cache_hasTriple(triple)) null; // post handler? AI_PostHandler handler = ai_postHandler(); if (handler != null) ret handler.postTriple(triple); else { // post web the normal way Web web = webFromTriple(triple); postSoftwareMadeWeb(web); ret web.globalID; } } static S ai_postTriple(S a, S b, S c) { ret ai_postTriple(t3(a, b, c)); }