def add_owner_attribute(attribute)
      prop = property(attribute)
      otype = prop.type
      hash = local_owner_property_hash
      if hash.include?(otype) then
        oa = hash[otype]
        unless oa.nil? then
          raise MetadataError.new("Cannot set #{qp} owner attribute to #{attribute} since it is already set to #{oa}")
        end
        hash[otype] = prop
      else
        add_owner(otype, prop.inverse, attribute)
      end
    end
def add_owner_attribute(attribute)
      prop = property(attribute)
      otype = prop.type
      hash = local_owner_property_hash
      if hash.include?(otype) then
        oa = hash[otype]
        unless oa.nil? then
          raise MetadataError.new("Cannot set #{qp} owner attribute to #{attribute} since it is already set to #{oa}")
        end
        hash[otype] = prop
      else
        add_owner(otype, prop.inverse, attribute)
      end
    end
Adds the given attribute as an owner. This method is called when a new attribute is added that
 references an existing owner.

 @param [Symbol] attribute the owner attribute