Mailing List Archive

[Zope-PTK] Discussions in PTK
There has been some discussion on the list about adapting various
discussion Products to the PTK. Paul and I have actually come up with
some tentative plans and ideas on this. I'd like to open a discussion
based on these ideas.

I'd like to first describe how two discussion products I am familiar
with are implemented, then discuss how I am considering applying these
concepts to the PTK, some of the features and abilities such concepts
would enable, and raise some questions I have about how it should be
implemented.

Confera (and presumably Squishdot?) used object containment to
structure forums and threads of responses. That is to say, the Confera
object contains posts, the posts contain replies, and the replies contain
additional replies.

The ZDiscussions Product (which is in lamentable condition) had the
advantage of the ZCatalog. (The ZDiscussion object itself _is_ a
ZCatalog.) Discussion items (posts, replies, potentially files, URLs,
whatever) were all contained by the ZDiscussions object directly. There
was no containment tree. The discussion structure was tracked by having
each item remember what it was in response to. The catalog can quickly
and easily answer questions like, "What objects are responses to this
object?" or "What items have so-and-so submitted?" to build thread-based,
author-based, or even content-based views of a discussion.

This is a very flexible design. It allowed the creation of another
Product based on ZDiscussions called ZDConfera, which used the ZDiscussion
engine but which was (theoretically at least, I don't know if anyone
tried) a drop-in replacement for Confera. It offered the same API as
Confera, and objects looked like they contained one another, but in fact
they didn't.

Now, with PTK, we have a global catalog. We can treat that like the
ZDiscussion object. With the simple addition of an 'in_reply_to'
attribute on PortalContent, we suddenly have the ability to make any PTK
object a reply to any other object, regardless of where it physically
exists in the PTK site. This offers some really cool possibilities, but
also raises some difficult questions.

Let's say I'm viewing something I want to comment on. I click
'Reply'. What do I see? It could well be the entire list of Wizards,
meaning I could reply with any sort of object I like. I can see many uses
for replying with, say, a Link, with a description like, "This server does
many of the same things yours does, it may be worth investigating." In
most cases, though, it seems as though it would be best to use the
Document object, or an object specifically designed for discussions which
could do things like quote the replied-to item, munge the title with a
'Re:', whatever.

Where do these objects go? I would like to keep everything owned by a
Member somewhere within their personal space (which is their Member
folder). Whether it's in the folder directly or in some 'Discussions'
sub-folder, I'm not sure, but this highlights a general Zope problem.
Once users can start creating discussion items, they are much more likely
to produce a LOT of objects than they were before. It is quite difficult
for a user to manage a large number of objects in Zope. I am actually
inclined to hide a user's discussion items in the 'My Stuff' interface.

If that's the path we take, I would provide a 'My Discussions'
interface. This interface would not only allow users to manage their
replies, but it would allow them to see at a glance what discussions they
are engaged in, and which ones have generated new replies. I don't know
about anyone else, but I can't stand it when I have to manually hunt for
threads I'm involved in, and look for new items each time I visit a site.

What about non-member posting? I guess there should be a designated
location for anonymous items. Any thoughts?

Another problem-- suddenly, my objects are dependant on objects other
people own! What if I reply to something, then the owner of that
something deletes it? Actually, this is not terrible. My item is still
available via the catalog. It simply becomes the new root of it's own
sub-discussion. There may be some other issues here to consider. This is
sort of related to the registry/glossary issue.

An semi-relevant idea occurs to me just now which might provide the
answer to these issues. Perhaps only items which are not 'published'
('published' meaning having gone through Review and been made publicly
available) should be delete-able. Then you could use the portal policy
hooks to require Reviewer approval to 'un-publish' an item if that item
has dependants. Let's say I see something really cool on Joe's PTK site,
and I want to put a link to it on my own site. I could create a
lightweight, dependant object of a type designed for just this purpose,
and I would then be reasonably confident that my link will not one day
suddenly be pointing at nothingness without someone having given it
consideration.

Now that I've mentioned reviewing, I should maybe mention how
reviewing fits into my idea of replies. Essentially, this is another
portal policy decision. You can determine in policy that all objects of a
particular type (ie, Reply) get approved automatically, or at least have a
review request automatically generated. This should receive some more
consideration, tho. The average reply-submitter will be less savvy than
the average object-creator. They shouldn't have to care about things like
requesting a review in most cases. They shouldn't even have to know this
stuff goes on.

This is getting long, I'd better wrap up. Just to allay any concerns,
while this scheme (I don't plan, I scheme) allows you to implement a
portal where anything can have or be a reply to anything else, it does not
REQUIRE that that be the case on your particular portal. Decisions like
"Who can reply to this?", "What can they reply with?" etc, are made by
portal policy hooks. What other sorts of things do you need to be able to
determine in policy? What situations does this scheme not address? Can
you see any other areas which may cause difficulty that I have not brought
up? What sort of interface requirements are there? I am hoping to see a
most vigorous discussion-discussion (meta-discussion?) so that I know I'm
on the right track before I attempt to implement anything.

Thanks for reading this far! I really do appreciate it.

Mike.

--
Mike Pelletier email: mike@digicool.com
Mild mannered software developer icq: 7127228
by day, super villain by night. phone: 519-884-2434
Re: [Zope-PTK] Discussions in PTK [ In reply to ]
Mike Pelletier wrote:
>
> Where do these objects go? I would like to keep everything owned by a
> Member somewhere within their personal space (which is their Member
> folder). Whether it's in the folder directly or in some 'Discussions'
> sub-folder, I'm not sure, but this highlights a general Zope problem.
> Once users can start creating discussion items, they are much more likely
> to produce a LOT of objects than they were before. It is quite difficult
> for a user to manage a large number of objects in Zope. I am actually
> inclined to hide a user's discussion items in the 'My Stuff' interface.

I don't think this scales -- "replies" need context (which is why I am quoting
the paragraph you wrote, after all) and don't really stand alone. I think
replies should be stored "with" their discussions; after all, a member who
wants to "reply" to a discussion with a document or a link can create one, and
then reference it in a reply.

In another sense, replies (and even discussions) don't really "belong" to the
poster, once they are "released" to the community; they ought to become
more-or-less permanent parts of the community's lore. I think the model of a
non-expiring NNTP server (Jon Udell's book has excellent examples of integrating
such servers with web and mail) is the right one for most "discussions". For
those which are "talkbacks" to a member-owned document, the replies really
"belong" to that document.

>
> If that's the path we take, I would provide a 'My Discussions'
> interface. This interface would not only allow users to manage their
> replies, but it would allow them to see at a glance what discussions they
> are engaged in, and which ones have generated new replies. I don't know
> about anyone else, but I can't stand it when I have to manually hunt for
> threads I'm involved in, and look for new items each time I visit a site.
>
> What about non-member posting? I guess there should be a designated
> location for anonymous items. Any thoughts?
>
> Another problem-- suddenly, my objects are dependant on objects other
> people own! What if I reply to something, then the owner of that
> something deletes it? Actually, this is not terrible. My item is still
> available via the catalog. It simply becomes the new root of it's own
> sub-discussion. There may be some other issues here to consider. This is
> sort of related to the registry/glossary issue.

This is the kind of issue I mean when I say that discussion-entries-as-property
don't work. "Your" reply loses almost all of its value without the context
provided by the original object. Honestly, I think that "promoting" the
discussion object out of the origniating member's folder and into a "common"
space makes sense for "pure" discussion items. It makes sense for the member to
keep a proxy in her local area for threads she initiates or participates in,
though (using the ZCatalog alone for this makes it hard to "kill" a thread;
deleting the proxy makes it easy).


Some-content-is-more-equal-than-others'ly,


Tres.
--
=========================================================
Tres Seaver tseaver@palladion.com 713-523-6582
Palladion Software http://www.palladion.com
Re: [Zope-PTK] Discussions in PTK [ In reply to ]
Tres Seaver wrote:
>
> Mike Pelletier wrote:
> >
> > Where do these objects go? I would like to keep everything owned by a
> > Member somewhere within their personal space (which is their Member
> > folder). Whether it's in the folder directly or in some 'Discussions'
> > sub-folder, I'm not sure, but this highlights a general Zope problem.
> > Once users can start creating discussion items, they are much more likely
> > to produce a LOT of objects than they were before. It is quite difficult
> > for a user to manage a large number of objects in Zope. I am actually
> > inclined to hide a user's discussion items in the 'My Stuff' interface.
>
> I don't think this scales -- "replies" need context (which is why I am quoting
> the paragraph you wrote, after all) and don't really stand alone. I think
> replies should be stored "with" their discussions; after all, a member who
> wants to "reply" to a discussion with a document or a link can create one, and
> then reference it in a reply.
>
> In another sense, replies (and even discussions) don't really "belong" to the
> poster, once they are "released" to the community; they ought to become
> more-or-less permanent parts of the community's lore. I think the model of a
> non-expiring NNTP server (Jon Udell's book has excellent examples of integrating
> such servers with web and mail) is the right one for most "discussions". For
> those which are "talkbacks" to a member-owned document, the replies really
> "belong" to that document.

I think that Mike covered these objections rather neatly by stating that
none of these decisions should be hard-wired into the system. Instead,
policy hooks would allow you to move a 'reply' to a common area upon
approval by a reviewer if you wish, or leave them in the users folder
but make sure that they do not have adequate permissions to delete them.

It is useful to remember, though, that some communities (most notably
the WELL) have always had a 'you own your own words' policy, where users
were explicitly given permission to delete their own postings if they so
chose. The PTK should come with certain default policies, certainly, but
everything should be 'instrumented' to allow any conceivable sort of
policy, even those that seem to be completely boneheaded to some.

You never know what sort of bizarre social experiment someone might come
up with, for example like giving your source code away, or something ;)

Michael Bernstein.