private Name ExtractPropertyFromToM(Name property, List<Name> ToMList, string argumentName)
{
if (property.GetFirstTerm() != TOM_NAME)
return property;
if (property.NumberOfTerms != 3)
throw new ArgumentException("The property name contains a invalid Theory of the Mind");
var pers = property.GetNTerm(1);
var prop = property.GetNTerm(2);
AssetToMList(ToMList,pers,argumentName);
return ExtractPropertyFromToM(prop, ToMList, argumentName);
}