Notes on Collections
I havent' finished thinknig about this so expect changes, i.e., I may answer some of my own questions.
User-visible collection types, according to Mimi
See
ItemCollectionDesign
- ad hoc - auto-named, openable in place, renamable
- generic - always user named, not openable in place
- mailbox
- calendar
- project
- spheres of life
- contact groups
Issues wrt user-visible collection kinds:
- do we distinguish a thread as a separate sub-kind or just via its name as an ad hoc collection?
- do we have a way for a user to construct a thrask? if so, how is it modeled?
- MimiYin 26 Apr 2004: As of right now, thrasks are constructed in the same way as ad-hoc collections. Users can insert Tasks, Calendar items and notes into Mail threads ad-hoc collections. Is a special workflow needed for thrasks?
- do we need a collection kind for just tasks or just notes?
- what are the spheres of life? work, home. are they modifiable?
- MimiYin 26 Apr 2004: Yes, spheres of life is vague right now. I was playing around with renaming it Categories with Home and Work as OOTB collections. But, categories is so generic and it's not clear how it's different from Projects. I think a quick brainstorm about use cases would be helpful.
- contact groups - I don't think these are modeled as collections, but we need to address this point.
- MimiYin 26 Apr 2004: Yes, there is also the sticky issue of how the notion of Contact Groups interacts with:
- Contacts associated with a particular collections (ie. Home, Project Foo, KKIE Calendar)
- Households (ie. The Smiths) which we might be able to model (user's mental model) as ad-hoc collections of contacts.
- we have to make a decision about the spheres of life attribute
Modeling collections
I think the model for collections in
KatieParlante20040421 is right as far as making Calendar, Project et al. subkinds of
QueryCollection
. This will permit construction of dynamically-populated calendars etc. based on query criteria, e.g., all events with Project = Foo.
It appears from the fragment that
SimpleCollection
is not used in defining Calendar, etc.
Issues and Questions:
Perhaps rename Calendar to
CalendarCollection
, Project to
ProjectCollection
?
Need to add Mailbox or
MailCollection
as parallel to Calendar and Project
Is the intent to populate the Members attribute of
QueryCollection
with itemrefs to the items which satisfied the query the last time it was evaluated?
Do we lose efficiency if we model collections which have no query, just explicit members, as
QueryCollections
?
We probably need to extend
QueryCollection
with a
DragDropPolicy
attribute. * I need to expand this point per notes I have written some where.
--
MitchKapor - 23 Apr 2004