static private PredicateProperty AddDefs(Rule rule) { PredicateProperty headPP = GetPredicateProperty(rule.head);; if (rule.body != null) { foreach (var p in rule.body.plist.ArgList) { if (!(p is Term)) { continue; } GetPredicateProperty((Term)p); } } return(headPP); }
public static RDFArgSpec GetAdef(PredicateProperty def, int argNum1Based, bool okToMake) { RDFArgSpec adef; lock (def.argDefs) { if (!def.argDefs.TryGetValue(argNum1Based, out adef)) { if (!okToMake) { return(null); } adef = def.argDefs[argNum1Based] = new RDFArgSpec(argNum1Based); adef.AddDomainType(def, argNum1Based + 1); } } return(adef); }
public static void DocumentTerm(Term term, bool varnamesOnly) { bool newlyCreated; PredicateProperty pp = GraphWithDef.GetPredDef(term.fname, term.Arity, out newlyCreated); int argNum = 0; foreach (Part part in term.ArgList) { argNum++; if (varnamesOnly) { if (!(part is Variable)) { continue; } } var argDef = GraphWithDef.GetAdef(pp, argNum, true); argDef.AddRangeTypeName(part.Text); } }
public static PredicateProperty GetPredDef(string predName, int arity, out bool newlyCreated) { PredicateProperty def; string key = Unsymbolize(predName);// +"_" + arity; lock (SharedGlobalPredDefs) { if (!SharedGlobalPredDefs.TryGetValue(key, out def)) { newlyCreated = true; string predClassName = "PredClass_" + key; SharedGlobalPredDefs[key] = def = new PredicateProperty(arity) { name = predName, keyname = key, classname = predClassName }; return(def); } } newlyCreated = false; return(def); }