It ought to be possible using a mixture of UAProf, accept headers, and media queries. But it's not. The data are inconsistent and unreliable.
Out of this frustration, a number of databases have been developed to track the capabilities of as many devices as possible. For the longest time, the most popular and accurate was WURFL - the Wireless Universal Resource FiLe.
Developed over the years by a community of volunteers, and lead by Luca Passani, it was an excellent tool. Mostly accurate, highly useful, and generally well regarded.
As is common in the Open Source world, some people were dissatisfied with WURFL - both with the data and the lack of a commercial version - so they forked the project. This is perfectly normal practice. You take the Open Source information, and you do what you want with it - making it fit your needs better.
(The specifics of who wanted what and why are probably best left to historians.)
Enter The Lawyers
In 2011, WURFL became ScientiaMobile - a company designed to profit from WURFL. Not unreasonable in my opinion. What they did, essentially, is fork WURFL and re-licence.
WURFL then became unsuitable for anyone wanting to contribute to or use future versions of it in a manner consistent with the original licence.
All of this is perfectly fine - it's what happens next which I find problematic.
ScientiaMobile claimed that OpenDDR was illegally using their copyrighted data:
On the 3th of January 2012 GitHub received a letter from ScientiaMobile requesting to remove from GitHub the repository OpenDDR-Resources. The letter claims that the repository contains material infringing Scientiamobile copyrighted work.
As the letter goes on to say that the original licence for WURFL specifically stated:
This project is open-source and is intended for developers working with the WAP environment. All the information listed here has been collected by many different people from many different countries. You are allowed to use WURFL in any of your applications, free or commercial. The only thing required is to make public any modification to this file, following the original spirit and idea of the creators of this project.
(My emphasis added).
So, what have OpenDDR done wrong according to ScientiaMobile? Nothing that I can see. They state:
we allege that the two files entitled "oddrVocabulary.xml" and "DeviceDataSource.xml" available in that directory infringe upon my client's copyright in WURFL.xml
Databases and Copyright
I'm not a lawyer (sorry mother!) so I find it a bit hard to understand exactly what's going on here.
The case has not yet concluded. But the opinion of the Advocate General is available.
As I understand it - and I may be wrong - there are three aspects to database copyright.
- Facts cannot be copyrighted.
- The structure of a database cannot be copyrighted unless it is sufficiently creative.
- "Sui generis" (a Latin phrase meaning "The lawyers are getting more expensive now!") It means that the work as a whole could be considered under copyright.
Undeniably, the contents of the WURFL database are facts. They are not subjective interpretations, nor are they creative works.
The structure of the database is an interesting one - there are only so many ways you can place this data into a file. One might be able to argue that the naming of the database tables and fields are creative and could be copyright. Although, as OpenDDR have done, one could change these in a derived version of the database.
Next, is the whole work subject to copyright? If a collection of football fixtures cannot be subject to copyright - how can a collection of device characteristics be?
Finally - even if the new version which ScientiaMobile have created is a copyrighted work, there can be no doubt that the original database was under a very permissive licence.
Taking Without Giving
The original WURFL was licensed as GPL. This means that if you took the code, modified it, and then distributed it - you had to publish those changed.
In the case of web services, the GPL doesn't consider offering a service through your website as distributing. Hence why WURFL decided to re-licence under the Affero GPL.
In a nutshell, AGPL is a strong copyleft, just like GPL, but with one big difference: using your WURFL application on a web server constitutes distributions and triggers the GPL copyleft provisions.
Now, is it wrong for companies like DeviceAtlas to take WURFL, improve it, and not contribute those changes back?
It may be a bit unfriendly, but there's nothing illegal about it. The original licence allowed for it. Even if it hadn't, it doesn't look like a database of facts can come under copyright.
Here's the kicker; OpenDDR were publishing all their changes to the WURFL database on GitHub!
So, as far as I can tell, OpenDDR are being accused of:
- Taking a database covered under GPL.
- Changing the data.
- Publishing the changes.
What exactly is the problem with that? Nothing!
The original WURFL was created by a community of volunteers who, we can assume, contributed data with the understanding that it was to be licensed openly.
Other companies took the WURFL data - which was not copyrighted - and began to sell access to it. They also improved the quality of the data without contributing back.
This angered Luca, so he decided to close future access to companies unless they paid ScientiaMobile. I don't think that's the best thing to do, but it was his decision to make.
What he cannot do, in my opinion, is retroactively change the licence and then go after anyone who uses an older version of the database. Even if he could, the database itself is not subject to copyright.
I'll leave the last word to Luca:
@edent Also, and very importantly, since WURFL is FOSS, you can always tweak the code to scratch your itch
— Luca Passani (@luca_passani) January 3, 2012
Conflict of Interest
I'm not a fan of Luca Passani - and he's not a fan of me. We've both been at the opposite ends of technical disputes in the past. I like to think that I have always behaved professionally and courteously, but I do not feel that Luca has reciprocated that respect. This may affect my judgement in this blog post.