These are just a few example use cases, to give a feel for the topic. This is not meant to be a comprehensive list.
| Category | When | Feature | Description |
| content model | Canoga | contacts have principals | In the content model, any contact item can have an associated principal item, which is used to store sharing information. The additional info will include a Chandler sharing address, as well as things like lists of permissions you've granted that contact, and items you've shared with that contact. |
| content model | Canoga | list of contacts | A group contains a list of contacts. |
| content model | Canoga | contact in many groups | A contact can be in more than one group. |
| | Post-Canoga | sub-groups | A group can contain other groups (as sub-groups). |
| | Post-Canoga | nested sub-groups | A group can contain sub-groups, and those sub-groups can contain more sub-groups, and so on. |
| | Post-Canoga | multiple super-groups | A group can be a sub-group of more than one group. |
| content model | Canoga | only contacts | A group can contain only contact items and other group items. |
| content model | Canoga | groups are content items | "Group" is a sub-kind of "Content item", which means that you can do things like put a group in a collection, assign a group to a project, and have notes or conversations contained in the group. |
| content model | Canoga | specific email addresses | For each contact in a group, if the contact has more than one email address, the user can specify which of the email addresses should be used in the context of this group, and the data structure representing the group can know/remember which of the email addresses to use when sending email to the group. |
| content model | Canoga | specific sharing addresses | For each contact in a group, if the contact has more than one principal item, the group can know/remember which of the principal items should be used when sharing things with the group. |
| content model | Canoga | specific IM addresses | For each contact in a group, if the contact has more than one IM address, the group can know/remember which of the IM addresses should be used when using the group for IM (e.g. using the group as a buddy list, so that I can see the presence info for people in the group). |
| content model | Canoga | specific contact sections | For each contact in a group, if the contact has more than one contact section, the group can know/remember which of the contact sections should be the primary section representing the contact in that group. |
| content model | Never | dynamic groups | You cannot make "dynamic" groups, where membership in the group is determined by a query. |
| cognitive model | Canoga | groups = collections | The user is aware of differences between collections and groups. In the manual, and in the user's cognitive model, there are two separate concepts. You may or may not be able to use groups in many of the same ways you use collections. We'll resolve these UI design issues on a case-by-case basis: Can you put a group in a sidebar tray? (Probably) Can you bookmark a group? Can you add a contact to a group by drag-and-drop? Can you add a contact to a group by changing an attribute on the contact? |
| cognitive model | Canoga | groups = organizations | A group is different from a contact that represents an organization. A contact like "Eastside HMO" can be flagged as being an business or organization, by setting an "is company" attribute. That doesn't make the "My HMO" contact into a group. You can have a group called "Doctors in my HMO", but that group has no special relationship to the "Eastside HMO" contact. You cannot take a contact and use it as a group, or turn it into a group. If you have a Contact for "The Ewing Family", you can't then use that as a group and add Mary and Bo to the group. |
| actions on groups | Canoga | sharing a group | You can share a group. For example, you can create a group called "People in my department at work" and then share that group with your spouse. This needs some further thought. This might be tricky to do |
| actions on groups | Canoga | converting a collection | You take a collection of contacts and convert it into a group, but it is only possible to do this manually (for example, perhaps by dragging and dropping all the contacts from the collection into the group). |
| actions on groups | Canoga | converting a group | You can take a group of contacts and somehow convert it into a collection. There will be some UI affordance for this. |
| actions on groups | Canoga | groups behave like contacts | You can use a group in many of the same ways that you use a contact. You can send mail to a group (although we're not trying to make groups behave exactly like mail aliases, or be a substitute for them). You can see a history of the mail you've sent to a group. You can share something with a group. You can add the members of a group to your IM buddy list and see their presence info. |
| sharing id | Open Issue | Sharing ID | Will we have a unified namespace for IM and sharing? Is my "sharing id" the same thing as my IM id? We will resolve this as part of CanogaSharingDesign20040419 |
| sharing id | Open Issue | Sharing ID | Can a Contact have more than one sharing id? For example, a "home" address and a "work" address. We will resolve this as part of CanogaSharingDesign20040419 |
| | Open Issue | Unique addresses? | What if two contacts share the same email address? Do we mandate that two contacts can never share the same email address? Jabber ID? But same phone number is okay? We will resolve this as part of CanogaSharingDesign20040419 |
| | Open Issue | selecting an address | How do we select which communication channel in a Contact (IM, email, sharing) when there are multiple options (e.g. Jim home, Jim work, Jim beach house on Martha's Vinyard, Jim's account-for-travelling)? We will resolve this as part of CanogaSharingDesign20040419 |
| | Westwood | LDAP integration | LDAP integration |
| content model | Canoga | no "public" principal | There is no principal or contact called "public" or "world" or "everyone". Maybe you can share an item with everyone in the general public, but you can't go look at some "public" principal and see what items you've shared with "public". |
| permissions | Canoga | group permissions | When you share an item with a group, we associate the shared item and access permissions with the group itself, not just with each of the principals in the group. |
| permissions | Open Issue | resolving multiple sharing policies | Let's say you share calendar "Foo Cal" with group "Bar Group" using sharing policy A (e.g. read-write), and then you also share "Foo Cal" with the principal "Ziggy", with sharing policy B (e.g. read-only). If "Ziggy" is a member of "Bar Group", what sharing policy applies to "Ziggy"? Option 1 is to use just the sharing policy that you explicitly set for Ziggy, policy B. Option 2 is to use the most permissive union of the two policies. |
| | Canoga | @@@ | ... |
| | Canoga Waitlist | @@@ | ... |
| | Post-Canoga | @@@ | ... |
| | Open Issue | @@@ | ... |
| | Westwood | @@@ | ... |
| | Never | @@@ | ... |
| | Already done | @@@ | ... |
Right now we have a Kind for "Contact" up in the contacts parcel.xml file, in .../parcels/OSAF/contentmodel/contacts. But I'm guessing that's not where we're going to want to keep track of principals and access permissions. The repository code is going to have to be hard-coded to know about principals and access permissions, but it shouldn't have to know about the Contact Kind up in the end-user content model. Seems like we might want to have a Kind called "Principal" down in the core schema. But then how do we connect that with the notion of a Contact?
This is a place for posting comments. Anyone is welcome to contribute here, with any sort of comment