||This article needs additional citations for verification. (December 2011)|
WURFL (Wireless Universal Resource FiLe) is a community effort focused on mobile device detection. WURFL is a set of proprietary application programming interfaces (APIs) and an XML configuration file which contains information about device capabilities and features for a variety of mobile devices. Until version 2.2, WURFL was released under an "open source / public domain" license. Prior to version 2.2, device information was contributed by developers around the world and the WURFL was updated frequently, reflecting new wireless devices coming on the market. In June 2011, the founder of the WURFL project, Luca Passani, and Steve Kamerman, the author of Tera-WURFL, a popular PHP WURFL API, formed ScientiaMobile, Inc to provide commercial mobile device detection support and services using WURFL. As of August 30, 2011, the ScientiaMobile WURFL APIs are licensed under a dual-license model, using the AGPL license for non-commercial use and a proprietary commercial license. The current version of the WURFL database itself is no longer open source.
Problem of device fragmentation
The desktop web-channel, which is primarily divided up between a handful of browsers, relies on HTML as its markup, and content written as HTML can be expected to be visible to most users of a web-based channel via one of the standard browsers (Internet Explorer, Mozilla Firefox, Safari, Opera, and so on). Software updates for desktop browsers are frequently made and widely distributed.
Unlike the desktop web-channel, there is a tremendous amount of fragmentation in the mobile device-channel. Markup can be WML, HTML, HDML, XHTML Mobile Profile, etc. In addition, unlike a standard desktop web-channel, a wireless-device channel will vary on screen size, ability to support client side scripting, ability to support various image formats, and even color. Because the markup is generally sent directly to the phone, there is no opportunity for a central server to "fix" or adapt to browser limitations or defects. Software updates for mobile browsers are rare.
There have been several approaches to this problem, including developing very primitive content and hoping it works on a variety of devices, limiting support to a small subset of devices or bypassing the browser solution altogether and developing a Java ME or BREW client application.
WURFL solves this by allowing development of content pages using abstractions of page elements (buttons, links and textboxes for example). At run time, these are converted to the appropriate, specific markup types for each device. In addition, the developer can specify other content decisions be made at runtime based on device specific capabilities and features (which are all in the WURFL).
The WURFL contains over 500 capabilities for each device, that are broken up into 30 groups. A complete listing of available capabilities is available from the WURFL documentation page. There is an online WURFL test site called Tera-WURFL Explorer that allows one to look up the capabilities of devices based on their user agents and browse through the devices in the current WURFL file.
The August 29, 2011 update of WURFL included a new set of licensing terms. These terms set forth a number of licenses under which WURFL could be used. The free version of the license does not allow derivative works, and prevents direct access to the wurfl.xml file. As a result of the "no-derivates" clause, users are no longer permitted to add new device capabilities to the WURFL file either directly or through the submissions of "patches". A commercial license is required to utilize third-party API's with the WURFL Repository.
On January 3, 2012, ScientiaMobile filed a DMCA takedown notice against the open-source device database OpenDDR that contains data from a previous version of WURFL. According to OpenDDR, these data were available under GPL.
On March 22, 2012 it was announced by Matthew Weier O'Phinney that Zend Framework would be dropping support for WURFL as of version 1.12. This was due to the licence change which makes it incompatible with the Zend Framework's licensing as the new licensing now requires that you "open-source the full source code of your web site, irrespective of the fact that you may modify the WURFL API or not."
- Hatem (February 11, 2007). "WURFL, Wireless Universal Resource File". phpmagazine.net. Retrieved December 29, 2011. "WURFL is an open source project which aims to collect information regarding wireless devices' configurations, capabilities and features. [...] The file is XML formatted [...]"
- Wong, Richard (March 4, 2010). "In Mobile, Fragmentation is Forever. Deal With It.". TechCrunch. Retrieved December 29, 2011. "WURFL— wireless universal resource file—an open source project; a “config file that contains all info on every wireless device on earth”"
- WURFL August release announcement , August 30, 2011,accessed September 17, 2011.
- Krishna Guda, CEO, ScientiaMobile, Inc "WURFL Team Launches ScientiaMobile", June 6, 2011, accessed June 27, 2011.
- Terence Eden: WURFL and database copyright, 2012-01-06
- ...due to a change in licensing by the WURFL project -- the free version is now AGPL -- we're dropping the WURFL adapter from Zend_Http_UserAgent...
- The AGPL license demands that you open-source the full source code of your web site, irrespective of the fact that you may modify the WURFL API or not.