This is an interesting discussion here and yes, we can not solve all problems with Guid’s.
For me it is clear, that a property needs a technical key, that identfies the property itself. Without this key, we will not have a reliable and automated usage of properties.
The key can be human readable and/or machine readable, but it should never change its value over the life cycle of a property.
In a discussion over at GitHub I worked with the two ways.
Name of PSet: Pset_TransportElementCommon
Name of property: CapacityPeople
See this link to view the complete PSet.
The unique key in human readable notation would be this: Pset_TransportElementCommon.CapacityPeople. This key is also machine readable. This key must be the combined key of the PSet and the property. The name CapacityPeople is only unique within the PSet Pset_TransportElementCommon.
The GUID is only machine readable and should never be exposed to users. The GUID is unique also without the name of the PSet.
In my opinion, even the notation Pset_TransportElementCommon.CapacityPeople should not be exposed to end users. They should work with the translated term in their language, or if not exists in englisch language.
See all available languages here.
So, the end user should see this: capacity people
(no Pascal case, with space in between)
And the end user shoul see the definition: Capacity of the transportation element measured in numbers of person. This ensures, that the end user understand the semantic meaning of capacity people and put in the correct value, according the the definition.
The desicion if to use a human readable notation and/or a machine readable notation is related to this question:
“Will the name of the property ever change?”
If you say “no, never, really never ever”, then you are good to go with the human readable notation. If, for some reason, you cannot answer this question, or if you have to say “Yes, that might be the case at some time”, then you should go the way with the machine readable notation. IMHO buildingSMART goes a dual way as of today and that is a point of confusion, but it is not bad, since it it easy to keep the keys in sync as long as the answer stays “No”.
I am looking forward to your feedback.