My tags come from the profile and end up with their pure name in t_objectproperties. The fact that they are from a profile is stored in t_xref. (Well the way Sparx realized it is none I appreciate, but...) Using "Profile::Tag" in t_objectproperties looks like it would heavily irritate EA.
q.
As I indicated, I didn't do anything. Sparx did it! As I recall, you're not on v15 yet. I also didn't see this before (in the past, I thought, they "end up with their pure name"). Maybe it's something that has inadvertently crept in recently?
Anyway, further experiments have shown that:
5. Tag defined in Profile and referenced as an item "property" in the profile - attached to the item via Tag Property Window. Stored in t_objectproperties as <Tag Name> with a semi-unique GUID per instance. This is, essentially #3, but via a different route and will add a second instance of the "property" in the Element property window (which cannot normally be done).
Note also that if the Tag is defined as a property in more than one metatype, then the tag attached to that second metatype also has a semi-unique GUID. As we have previously described (in other posts), the first two "components" of the GUID are used to denote that the tag is a tag in a profile and defined for that metatype. The first component seems to identify the profile and the second the metatype. FWIW, I see this as a rather useful solution to the problem of identifying a profile tag solely within the instance itself. (Q, I couldn't find where in t_xref the profile is kept for a Tag - can you enlighten?)
The defect is (as usual) one of inconsistency. If we look at the 5 situations, we see that ONLY one places the profile name in the property (name) column. Qwerty says "Using "Profile::Tag" in t_objectproperties looks like it would heavily irritate EA." Well, obviously, it doesn't - since that's what's happening! But it SURELY irritates me and my queries!
Given that Sparx has taken to using the semi-unique (more correctly, "qualified") GUID to identify the source and mapping of the tag, why not "go the whole hog" and do it consistently?
It seems to me that the two-part qualification of the GUID is
a consistent pattern that can be applied to ALL tags in the following manner:
Each profile is assigned a unique profile component value. Each repository can be considered a "profile" for this purpose. Every repository has a general section which can correspond to the <All> metatype - assigned a unique value as per the profile metatype. Each profile (in effect) defines an <All> metatype when the tag is defined in the <TaggedValueTypes> section - unique value applied as per any other metatype. When the tag is defined/referenced in a specific metatype, a new metatype value is assigned as at present.
The Tag Property (name) is always set to the Tag name - without the profile. The profile name is a
chimera here. To the user, the rendered Tag/Property name should be the same and mean the same thing regardless of the source. If that is not the case, then we have bigger problems!
In my view, this change can be implemented "with no loss of generality",
and should be at the earliest opportunity!
Thoughts?
Paolo