[jdev] Implementing searchable jabber profiles

Jeremy Lunn jeremy at austux.net
Mon Jan 3 04:44:06 CST 2005


Looking into some options for Jabber Australia
(http://www.jabber.org.au/).

>From the very beginning we were planning to implement JUD with a
web-based frontend.  Though a year and a half later it still hasn't
happened and there are some obstacles.

First of all, vcards are quite limiting for what we want to do.  For
example, we'd like our search facility to act as a friend finder.  There
are many things, such as age/gender/interests missing from JEP-0054 that
we'd need for that.  Though I notice that clients such as Podium and
JAJC implement fields such as Gender and Marital Status.

Jabberd 2 is even further limiting.  It only uses these fields in the
database:
+------------------+------------+------+-----+---------+
| Field            | Type       | Null | Key | Default |
+------------------+------------+------+-----+---------+
| collection-owner | text       |      | PRI |         |
| object-sequence  | bigint(20) |      | MUL | NULL    | auto_increment
| fn               | text       | YES  |     | NULL    |
| nickname         | text       | YES  |     | NULL    |
| url              | text       | YES  |     | NULL    |
| tel              | text       | YES  |     | NULL    |
| email            | text       | YES  |     | NULL    |
| title            | text       | YES  |     | NULL    |
| role             | text       | YES  |     | NULL    |
| bday             | text       | YES  |     | NULL    |
| desc             | text       | YES  |     | NULL    |
| n-given          | text       | YES  |     | NULL    |
| n-family         | text       | YES  |     | NULL    |
| adr-street       | text       | YES  |     | NULL    |
| adr-extadd       | text       | YES  |     | NULL    |
| adr-locality     | text       | YES  |     | NULL    |
| adr-region       | text       | YES  |     | NULL    |
| adr-pcode        | text       | YES  |     | NULL    |
| adr-country      | text       | YES  |     | NULL    |
| org-orgname      | text       | YES  |     | NULL    |
| org-orgunit      | text       | YES  |     | NULL    |
+------------------+------------+------+-----+---------+

I don't even know if this is a full implementation of vcard-temp, though
it certainly doesn't allow for multiple telephone numbers, etc.  Though,
perhaps the least we can do is hack in some extra fields (like the
Pandion ones).  I don't know about interests though, since no clients
would seem to have implemented this?

The next problem is with JUD (e.g. users-agent).  We could probably set
it up to search user vcards, though users need the ability to remove
themselves.  If we keep a table separate for JUD, then can we have
Jabberd2 update it when users change their vcard?  OTOH, perhaps we'd be
better off to have a basic JUD record that links to the vcards.  The
only thing is, we then can't have users from other servers registering
with our JUD (i.e. if we want it to be country-wide).

In the end we want it all integrated, so the users 'profile' is their
profile and so they don't have to update it in several different places
(e.g. vcard/JUD/forums).  

Anyone got any suggestions?

All in all, profiles in Jabber is something that will be hitting the
tablesoon anyway.  So guess we might see some changes.

Thanks,

Jeremy

-- 
Jeremy Lunn
Melbourne, Australia
http://www.jabber.org.au/ - the next generation of Instant Messaging.



More information about the JDev mailing list