UAProfs
I like WURFL, but I also very much like the idea of the manufacturers themselves keeping their own handset profile XML files up to date. I ran across this again while looking at a Nokia XHTML-MP document and did a Google and found this great UAProf resource over at Source02:
Nokia
A list of the locations of all the available Nokia Devices'Â UAProfs is at http://nds.nokia.com/uaprof/uaprof_list.txt
Panasonic
Available at http://mobileinternet.panasonicbox.com/Uaprof/<dev number>/<release number>.xml eg http://mobileinternet.panasonicbox.com/UAprof/GD87/R1.xml for the Panasonic GD87
RIM
Blackberry http://www.blackberry.net/go/mobile/profiles/uaprof/5810/3.2.1.rdf
Sagem
Sagem UA Profs are stored at http://extranet.sagem.com/UAProfile/<id>.xml eg http://extranet.sagem.com/UAProfile/823252.xml is UA the UAProf for Sagem-X3
Samsung
All the available profiles are listed at http://wap.samsungmobile.com/uaprof/SUWON.xml and http://wap.samsungmobile.com/uaprof/GUMI.xml
Sharp
Stored at http://sharp-mobile.com/UAprof/device.xml for example Sharp GX-10: http://sharp-mobile.com/UAprof/GX10.xml
Siemens
Stored at Siemens http://communication-market.siemens.de/UAProf/<device>.xml  For example, Siemens S55: http://communication-market.siemens.de/UAProf/S55_00.xml
Other Resources (you may need to register at some of thes sites)
Introduction to User Agent Profile from Nokia  Â
Openwave developer resource about UA Prof.
DELI
DELI it is an open source project available from http://delicon.sourceforge.net/ that that allows Java servlets to resolve HTTP requests containing delivery context information from CC/PP or
Technical Report from HP about technical detail of UA Prof and C/PP
These sites seem very up to date. Here's an example of Nokia's 7610 profile document. It's in RDF (urgh) but it seems quite complete and very accurate. I know that Cocoon uses DELI, and I know that Cocoon is used in production at Vodafone and other big mobile carriers, so this is something to take seriously. The combination of real-world usage and the fact that the manufacturers themselves are maintaining these documents is really quite compelling, no?
Now the question is, "How do you use these damn things efficiently?" Think about a website getting hammered by thousands of handsets per minute. I'm going to have to have some big-honkin data-structure in memory and check against it for every request - or at least per session. It seems like a great way to slow your mobile website down to a crawl. I guess I'll have to look at how Cocoon uses DELI and see if there's any secrets to learn there.
-Russ