[Design] Conceptual model for "stamping" (Modified by Mimi Yin)

Lisa Dusseault lisa at osafoundation.org
Sat Jan 22 08:23:21 PST 2005

Thanks Mimi, this page is great.  It filled in a lot of history and 
some concepts that I, too, was missing.


On Jan 21, 2005, at 3:21 PM, Mimi Yin wrote:

> Apologies, there was a typo in the URL, the correct one is:
> http://wiki.osafoundation.org/bin/view/Journal/StampingRevisited
> =====
> I'm going to stay out of the discussion about how the user's mental 
> model of stamping is actually implemented, but I'm going to try to 
> throw in yet another "from the user's perspective" explanation of 
> stamping in the context of extensibility in the hopes that it might 
> clarify things a bit.
> http://wiki.osafoundation.org/bin/view/Journal/StampingRevisted
> Again, I don't think this changes requirements for implementation. If 
> anything I think it reinforces our original thinking which is that 
> Stamping Kinds or Mixin Kinds, which I actually call Action Kinds on 
> the wiki page are a limited set and non-Mixin Kinds (aka Object Kinds) 
> will be far more prevalent. But perhaps both should be extensible, at 
> least in an ideal world.
> Mimi
> On Jan 21, 2005, at 12:09 PM, Phillip J. Eby wrote:
>> At 10:58 AM 1/21/05 -0800, Donn Denman wrote:
>>> In the multiple-items model, when you do a search for "Bob's 
>>> Wedding", you expect to see three items:
>> This depends a lot on what an "item" is.  Part of what I'm suggesting 
>> is that the things that go on a calendar or task list might not 
>> necessarily be "items" in the sense that you're saying.  For example, 
>> in Ecco, date field values are what go on the calendar; they're not 
>> independent "items".
>> So, it's possible to preserve a user model of single "item" without 
>> necessarily having single "objects" in the implementation.  Make 
>> sense?
>>> In the one-item model, when you do a search for "Bob's Wedding" you 
>>> only find one item as the result.  It's a single item which can 
>>> appear in several different places: in your mail box, in your task 
>>> list and on your calendar.
>> Right; I'm suggesting that those *appearances* may be more cleanly 
>> modeled using separate objects in the implementation.
>> Or to put it another way, a "user-visible content item" may be 
>> composed of more than one "repositority item" or "content API item".
>>> Can you make one model look like the other?  Sure, but you start 
>>> running into problems.  For instance in the multi-item model you can 
>>> chose to present all three items in a single view, so you see 
>>> exactly the same thing when you click on the Task as when you select 
>>> the calendar Event.  But this can confuse the user into thinking 
>>> there's only one item, when they really are three independent pieces 
>>> of information.
>> I'm not entirely clear what you mean here, but that's probably 
>> because I am working from a model that isn't "multi-item" in the same 
>> way you're saying here.
>> The problems that you experienced previously (if I understand them 
>> correctly) are a result of not *dividing* the responsibility between 
>> objects, but instead having overlapping responsibilities where more 
>> than one object had responsibility for a given item of data.
>>> Given a requirement to build the one-item stamping model, I think 
>>> morph-stamping works much better than link-stamping.  If you have 
>>> multiple-items at the Data Model level, it's going to be hard to 
>>> keep that from showing up at the Content Model level, and to the 
>>> user.
>> Only if you require all repository content to be user-visible, and I 
>> don't think that's currently an issue.  An entry on a calendar need 
>> not be the same thing as an item of kind "Event".  Rather, an Event 
>> would be a titled item that has an attribute referencing a calendar 
>> entry.  The calendar entry object encapsulates calendaring behavior; 
>> the Event represents the entry as a content item.
>> So, to implement a one-item stamping model with delegation, you 
>> simply have a "Note" type that has attributes for calendar entries, 
>> task entries, and transmission history.  These "entries" are *not* 
>> content items and have no title or body or anything of their own.  
>> They're just "entries" on the relevant lists that represent "putting" 
>> the original "item" on those lists.  The "Note" contains the actual 
>> content.
>> In this model, there is no changing of types between the N/E/T/M 
>> types, because there is only one actual type!  Everything else is 
>> just a stub referencing the Note that contains all the shared 
>> information.
>> If you search for "Bob's Wedding", you would only find one item - the 
>> note - because it's the only item that has any text for you to search 
>> on.
>>>> Then, as Mimi suggested, it isn't actually necessary to morph 
>>>> anything in order to accomplish the desired model; stamping is just 
>>>> adding a new item.
>>> Well this sounds like the multi-item user model!  Have we been 
>>> implementing the wrong user model?
>> I didn't say that, and neither did she.  She said:
>> """
>> In short, is it possible that we want to model Email-ness and 
>> Taskness as
>> attributes and only have Notes and Events as Kinds?
>> I'm not sure what kind of a mess this creates for other parts of the
>> application, but it answers some of these questions about stamping and
>> extensibility (as new Kinds are introduced to Chandler) in a tidy way.
>> """
>> Which sounds like opening up a question for further thought, not 
>> rejecting the previous model or definitely choosing a new one.
>> All I'm taking from her email is that arbitrary combinations of 
>> arbitrary kinds isn't a requirement, or expected to be one.
>> That is, that morphing is something specific to the 
>> email/task/event-ness of an item, and that items in general need to 
>> be added to a calendar or to-do list, and sent or received via email.
>> These four capabilities (add to calendar, add to todo, send, receive) 
>> are therefore common characteristics of a "user content item"; which 
>> does not necessarily imply that distinct user-visible kinds are 
>> needed just to model those abilities.
>> In other words, there's no need for "Events", just notes you can put 
>> on the calendar.  No need for "Tasks", just notes you can put on the 
>> to-do list.  No need for "Email", just notes that come and go by 
>> email.  This is, as I understand it, much closer to the single-item 
>> morphing model, and it's easier to say to someone "you can write down 
>> your thoughts and then put them on your calendar, to-do list, or send 
>> them out to people, or all three" than it is to say "you can write a 
>> note, and then you can change your mind and make it a calendar event 
>> and an e-mail."
>> Or, to put it another way, putting your notes on a to-do list or 
>> mailing them out are actual user goals, but the ideas of morphing and 
>> even "stamping" are concepts about *how* they might achieve that 
>> goal.
>> What's more, in the presence of other content types, it becomes more 
>> complex to explain how photos and blog entries "become" tasks while 
>> still being a photo or blog entry.  In fact, it's pure doubletalk 
>> when compared to just saying, "anything in Chandler can be put on 
>> your calendar or to-do list, or e-mailed".  Talking about changing 
>> kinds is just a distraction from the simple and uncontroversial idea 
>> of putting something on a list or calendar, or mailing it to 
>> somebody.
>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>> Open Source Applications Foundation "Design" mailing list
>> http://lists.osafoundation.org/mailman/listinfo/design
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> Open Source Applications Foundation "Design" mailing list
> http://lists.osafoundation.org/mailman/listinfo/design
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> Open Source Applications Foundation "Design" mailing list
> http://lists.osafoundation.org/mailman/listinfo/design

More information about the Design mailing list