Thursday, October 13, 2005

posting vs DescriptorUnits

A Topic must always use a DescriptorUnit in the same Cabinet. This makes it easy to move Cabinets between Arks. But a copy of a Topic can be posted to another Cabinet. Access controls complicate things--the user requesting the post may not have permission to create a new DescriptorUnit in the destination Cabinet. Indeed, what we really want to do is to use the corrisponding DescriptorUnit in the destination Cabinet.

The flip side is that we probably want to allow DescriptorUnits to be reorganized and renamed. So we can't just match by Cabinet-relative pathname, its too restrictive. Instead, we want to establish a trans-Cabinet DescriptorUnit identity. And a Tag is looking like a great way to do this. The post operation can then look for a DescriptorUnit in the destination Cabinet which has the same value.

A few problems remain. First, we may change a DescriptorUnit enough that we want to change its identity--it is no longer the same DescriptorUnit that is in the other Cabinets. So we need to be able to change the identity.

Second, when we use post to make a copy of the DescriptorUnit in the same Cabinet, we probably want the new copy to have a different identity.

Third is the question of what to do when there is no matching DescriptorUnit. Currently, the post operation just drops the DescriptorUnit when doing a cross-Cabinet post. For now, we can continue this practice in this case.

As for the Tag name, well, we can just us DescriptorUnit. Currently this Tag takes only the value True. All we need to do is to provide a command which sets it to a unique identifier.

0 Comments:

Post a Comment

<< Home