// Add (returns true) or update (returns false) an attribute
        public bool AddOrUpdateAttribute(PhraseAttribute attr)
        {
            for (int ii = 0; ii < attributes.Count; ii++)
            {
                if (attributes[ii].GetType() == attr.GetType())
                {
                    attributes[ii] = attr;
                    return(false);
                }
            }

            attributes.Add(attr);
            return(true);
        }
        // Add (returns true) or update (returns false) an attribute
        public bool AddOrUpdateAttribute(PhraseAttribute attr)
        {
            for (int ii = 0; ii < attributes.Count; ii++)
                if (attributes[ii].GetType() == attr.GetType()) {
                    attributes[ii] = attr;
                    return false;
                }

            attributes.Add(attr);
            return true;
        }