public static bool IsUnknown(object unifiable) { if (IsNullOrEmpty(unifiable)) { return(true); } if (IsIncomplete(unifiable)) { return(true); } string ss = Unifiable.ToStringLValue(unifiable); string s = " " + ss.Replace("_", " ").Replace("-", " ") + " "; bool b = s.Contains("unknown") || s.Contains("unrec") || s.Contains("unnam") || s.Contains("unseen") || s.Contains("default") || s.Contains(" some") || s.Contains("*") || s.Contains(" _ ") || s.Contains(" nothing ") || s.Contains("undefine") || s.Contains("$"); if (b) { return(true && !s.Contains(" in ") && !s.Contains(" at ") && !s.Contains(" on ")); } if (unifiable is Unifiable) { if (!((Unifiable)unifiable).IsWildCard) { return(false); } return(true); } return(false); //switch (s) //{ // case "": // return true; // case "unknown": // return true; // case "nothing": // return true; // case "*": // return true; // case "_": // return true; // case "undefined": // return true; // default: // return false; //} }