references and searches Re: [Kroupware] Kroupware RFC
Helge Hess
helge.hess at skyrix.com
Fri Apr 11 12:17:37 CEST 2003
Sorry, I accidently pressed send in my previous mail before finishing
the text ...
Bernhard Reiter wrote:
>>Two more general questions for understanding the design:
> I'll try to answer as much as I can.
Thanks :-)
>>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 ?
So the appointment viewer needs to resolve the participant reference to
the contact viewer and I would like to understand how this is accomplished.
Hm, I wonder whether this can be understood :-) Please tell me, if you
still don't get what I lined out.
> 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. 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.
> Then each single entry has an imap number.
Yes, but the IMAP-ID is volatile since each modification to a contact
record results in a new one and therefore isn't suitable for persistent
references.
>>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 ? 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.
>>How does the current interface (eg the appointment editor) deal with the
>>case that a record was duplicated on conflict ?
> If the appointment is fresh, than two concurrent ones will be creates
> because it is possible to have two appointments at the same time.
I'm not referring to the appointment itself, see above, but with
references to it the participants stored in the contact folder.
> If the appointment is the same we plan to have a resolving dialog.
>
>>Does any single GUI
>>component resolving a reference need to deal with the fact that the
>>query may return multiple objects and provide proper resolution GUI ?
>
> No as one event as one imap number.
Please see above, I'm talking about resolving references between
messages, not about the reference of the messages which is already
opened in an editor/viewer (I understand the copy-design of that).
For example if you use the email address as a reference to a contact,
all places wanting to resolve it (eg the appointment viewer, the task
viewer, the contact viewer itself for associated contacts and for each
client), will need to have some "resolving and search dialog" and
functionality.
>>b) What is the general strategy of dealing with queries ?
> The KDE Kolab client should have a full cache of the interesting
> calender entries. Thus it is performing searches locally.
OK.
>>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 thought about writing a Kolab webclient for fun, but the provided
information isn't yet sufficient, that's why I'm asking. Seems like
writing one is pretty complicated since the Kolab server itself does
provide so little functionality in terms of reference resolution and
searching :-(.
>>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.
best regards,
Helge
--
__________________________________________________________________
Helge Hess Email: helge.hess at skyrix.com
SKYRIX Software AG Tel: +49-391-6623-0
Universitaetsplatz 12 Fax: +49-391-6623-599
39104 Magdeburg, Germany Internet: http://www.skyrix.com
__________________________________________________________________
Exchange your Exchange http://developer.skyrix.com/
__________________________________________________________________
More information about the Kroupware
mailing list