references and searches Re: [Kroupware] Kroupware RFC

Bernhard Reiter bernhard at intevation.de
Fri Apr 11 15:51:20 CEST 2003


On Friday 11 April 2003 11:17, Helge Hess wrote:
> Bernhard Reiter wrote:

> >>Obviously the IMAP4 uid isn't suitable for that because of the copying
> >>semantics. Do you use some special mail header field (msg-id ?) or
> >>internal key for locating an entry ?
> >
> > No. But I don't fully get the question.
>
> Yes, I think I explained not good enough what I mean. Consider you
> create an appointment record in a shared (group) folder. Now you add
> people from your shared contacts folder as participants to the
> appointment and save.
>
> In other words, you have created an association (a link for each
> contact) between the appointment and the contacts records participating
> in the appointment.
> If someone else opens the appointment, he can probably jump from the
> appointment record to the contact participating in the appointment by
> just clicking on the participant entry in the appointment viewer. Right ?

Not yet as the handling of calender and contact entries in
several distinct folders (including shared folders) is not implemented yet.

> So the appointment viewer needs to resolve the participant reference to
> the contact viewer and I would like to understand how this is accomplished.

The only concept known for this is the email address yet.
In some sense you can say that part of the design problem 
has been delayed and won't happen within the Kroupware project.

> > The E-Mail address is the reference link for most tasks.
>
> This makes some sense for a contact, but doesn't cover references to
> appointments, todos or notes. 

I didn't dig into the problem, but I expect RFC 2445 and the defined UID
to serve the purpose as referable identifier. 

> And how does the appointment viewer in
> KOrganizer know in what folder he needs to search for the email address ?
> So the email address isn't really sufficient for locating an exact entry
> and therefore would need quite some additional UI in each place
> attempting to resolve that reference.

Similiar situation in that we don't have full handling
of several folders with same information in place or fully designed.

> >>Is there a specific (and efficient)
> >>IMAP query to locate such an entry ?
> >
> > Cyrus imapd has an efficient way to find the file in question.
>
> How ? 

My answer was related to find a file with a given imap id
or file id.

> This should be documented in the RFC how references are resolved
> by the IMAP server ! Eg if you use the email address as a reference
> stored in the appointment, how do you locate that efficiently ?
>
> Since the email address of a contact is stored in the vcard content of
> the contact-email, all Cyrus can do in my understanding is a fulltext
> search over all contact bodies (probably thousands in a shared contact
> folder) which is hardly efficient.

The idea is that the Kolab server shall not do expensive operations.
So you are right it is a straightforward design to do the expensive
operations on the clients.

I've deleted some other lines from the email that seems to
stem from the same issue and should be clarified by now
with this email. (Otherwise I'd appreciate if you ask again.)


> >>If this is the case, I'm interested in your approach for dealing with
> >>that in the webclient. Were is the webclient going to store it's local
> >>cache ?
> >
> > The concept for a webclient is not finished yet.
>
> I'm interested in that since it should answer a lot of my questions
> above :-)

I can imagine. :-)
Me to, but my first goal is to successfully finish the Kroupware project.

> I thought about writing a Kolab webclient for fun, but the provided
> information isn't yet sufficient, that's why I'm asking. 

Yes and you are very welcome.
We try to publish and be helpful as much as we can.

> Seems like
> writing one is pretty complicated since the Kolab server itself does
> provide so little functionality in terms of reference resolution and
> searching :-(.

It is true that the client has to perfom many complicated operations.
This is deliberate as it puts power in the users hand and allows
for a very scalable solution trough a clean design.

> >>Does it use
> >>a Berkley DB for storing the attributes of an appointment ?
> >
> > I believe KOrganizer does not, but I'm not deeply into the KOrganizer
> > implementation details.
>
> I would be quite interested in how KOrganizer stores the local cache of
> an imap folder locally. Maybe this could be abstracted in a class
> library and reused for the webclient.

KMail is responsible for caching the imap folder.
Simple maildir files with KMail indices
check  ls -al  ~/.kde/share/apps/kmail/imap
But KOrganizer reads the contents, if you are interested in it,
you probably have to dig into the code a bit and then ask on the kde-pim list.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2231 bytes
Desc: signature
Url : http://mail.kde.org/pipermail/kroupware/attachments/20030411/7e2ac185/smime.bin


More information about the Kroupware mailing list