Provides guidance as to how to determine 'Resource Equivalence' (when two Resources are related to the same thing).
Identity and Equality
- Identical: Two objects are identical if all their properties are equal, and they cannot be distinguished
- Equal: Two objects are equal if their identifying characteristics are equal.
- Equivalent: Two objects are equivalent if their properties are different, but it is known that they refer to the same real world concept
Guidance, to be added to Core Principles
The rules for determining when matching identifiers can lead to certainty about equivalence of the objects being compared are unclear.
xxxxxxx wording below is v3 specific, needs rewording, more discussion xxxxxxxxxx
Role identifiers can be considered to refer to identical role objects IFF:
- There are II values on each of the roles that are equivalent according to the II equivalence definition
- Both IIs declare the scope property
- Both scope properties are one of OBJ, VER or VIEW (they need not be the same on both instances)
In all other circumstances, object equivalence cannot be safely assumed without specific knowledge of the implementation environment, no matter how many other attributes are compared. (It may still be possible to achieve "high probability matches" with less information.)
For example, the ISO country codes might be used to "identify" both country codes (geographic region) and nation codes (political organization). However, the geographic entity object of type X is not equivalent to the nation entity object of type X.
Models may contain 'Act References', 'Role References'. These objects are rather minimalistic in nature, they contain an ID, no code attribute, and a generic classCode/moodCode. In this situation the ID really has to be a single Act instance (OBJ, VER, VIEW). If the ID is a business identifier the reference object won't be very useful.
It is tempting to look at the OID of the coding system, and if it is equal to (for example) the OID of the ISO Country coding system, to state that the code is an appellation (i.e. that the code is an identifier with scope OBJ).
At the universal level this however isn't true. For example, the ISO country codes might be used to "identify" both Country entities (geographic region) as well as Nation entities (political organization). However, the geographic entity object of type X is not equivalent to the nation entity object of type X.
Whilst one may not be able to deduce whether or not a code is an appellation at the universal level it is very likely that one is able to do so within a single project/context. Within a specific context one will be aware that (for example) Country entities are never used. In that case the codeSystem OID for the ISO Country coding system implies that the code always has the appellation characteristic.