Hi Tim, I like the idea in general. I have some questions though:
If a user then queries and re-submits the object with minor changes (a common practice), we can detect whether any change was made to the "abuse-c:" attribute. If so, we can assume that the user intended to stop using inheritance for this attribute. But, if the user made other changes and kept the same "abuse-c:", then we can assume that inheritance is still desired.
Making assumptions is dangerous. Would this logic only be applied if inheritance is already in use? If not then the results could be surprising.
On the other hand it's very simple to opt-in for users who do want to use this. Just set up "admin-c:", "tech-c:" and "abuse-c:" on your ORGANISATION object, and resubmit your resource objects without these attributes to start using inheritance. Then when for example you want to remove one "admin-c:" you only need to change your ORGANISATION object and everything else will follow.
What would happen if inheritance is used and then admin-c or tech-c is removed from the ORGANISATION object? Would those attributes be considered mandatory when inheritance is used, or would the attributes automatically be set on the inheriting objects? I like adding such inheritance to the database, it would make common data structures a lot easier to maintain, but we should also be careful not to create unanticipated surprises for users :) Cheers, Sander