Organization Objects
[Old draft] An approach to supporting interconnection: interfaces to indexes of object collections which provide stable references to the collection's changing organization.
[This is an old draft, flailing to describe some of the motive use cases for Spherical Database Characteristics and Invariants.]
Organization Objects are Namespaces for Managing Item Identity and Containment
Organization objects [would] provide contexts within which the identity (congruence) and containment relationships between constituent items are tracked, in order to provide for situation of items within the same and different spaces, tracking changes of object location for things like forwarding and event-based change notifications.
These ideas evolved from, among other things, my ZWiki structuring provisions and an old Organizing Content suite of proposals for the Zope Content Management Framework (CMF), on which Plone and other Zope-derived content management systems are based.
Identity/Congruence
The "same" items can have different aspects in different contexts.
- A person's contact info in work context vs. contact info in personal/home context
- Project resources - staff, documentation, funds, etc in support vs. development vs. marketing contexts
- various aspects of project progress - per subproject, per overall funding and schedule, etc
- Immediately contained within the same or different organization objects
- On the same or different station, and on an intermittently (eg, mobile) vs. always-connected station
- Having the same or different owners - someone who made a copy of someone else's item may not be privileged to get updates
- Etc.
- Where the contents of an item varies as the item develops
- As items can have different constituents in different contexts, they also can have different constituents at different times
- Version management could be provided - landmark versions, branching and merging, loose synchronization, etc - for any content
Organization Objects Are Responsible For Their Own Namespace
Organization objects are interfaces for external and internal connections to their contained items. They can maintain forwarding and expiration info about their constituents, or not. They maintain access policies and provide event registrations for updates about changes for, eg, synchronization. They are effectively executives responsible for maintaining the organization between their constituents and conveying that organization to the outside world. The conveyance is via network protocols.
Organization Objects Are, Themselves, Containable Items
The contextual spaces defined by organization objects are, themselves, subject to organization by containment within other organization objects. In this way they can provide for comprehensive organization of the networked world.
AspectAn object can have different salient characteristics (elements) in different contexts:SynchronizationMaintaining congruence of separate copies of an item can call for different regimes depending on both in-principle and physical tightness of coupling between the copies:VersioningProviding for tracking development of an object and divergence of variants