Microsoft have recently submitted US patent application 20090282325, entitled Sparklines in the Grid. My initial reaction, like many others in the data visualisation community, was one of anger at what appeared a blatant attempt by Microsoft to abuse the US patent system. However, I decided to examine the application more closely in order to attempt to discern what was actually going on.
One glaring omission from the application is any acknowledgement of Edward Tufte as the inventor of sparklines. His book, Beautiful Evidence, is the first documentation of the concept and terminology of sparklines, an excerpt of which can be read here. What makes the omission particularly odd is that the primary author of the application, Sam Radakovitz, has previously blogged about the sparkline feature of Excel 2010, where he readily acknowledges Edward Tufte as their inventor. This indicates that ignorance is clearly not the reason for the omission.
Another concern about the application is the vagueness of its title, "Sparklines in the Grid". As Edward Tufte has commented, "Every data table has a grid, sometimes invisible, sometimes with little ordered boxes. Nearly all typography has an underlying grid, so even a sparkline embedded in a sentence might qualify as a 'sparkline in a grid.'"[ref]. Most examples of sparkline use involve their being displayed in tables, see Tufte's original documentation of the concept, Wikipedia's illustrative example. It seems odd, then, that the application fails to mention that tables/grids have always been the primary use case for sparklines.
The general response from the team submitting the application has been that patent would be for use in Excel only; for example, the response Stephen Few received was "Microsoft is not trying to patent Sparklines, but instead an innovation that would allow Sparklines to work more effectively within the Excel environs." [ref]. However, this appears to be in direct conflict with a statement in the application regarding the generation of sparklines:
"In this example, the application is a spreadsheet application, such as Microsoft Excel® produced by Microsoft Corporation of Redmond, Wash. However, the generation and modification of sparklines also may be implemented in word processing applications, database applications, presentation applications, and other applications, whether the applications are network-based, host-based, or workstation-based."
One can only assume that this contradiction is the result of the application having gone through a more involved process at Microsoft and the statement coming directly from a project manager. Unfortunately, only the application matters.
A further search sparkline implementations specifically for Excel also throws up some results. Sparklines for Excel is a well-established, free plug-in for Excel 2003 and 2007. Sparklines can be generated using this plug-in by entering simple formulae in cells. This implementation differs from that outlined in the patent application, as, for example, the application details that sparklines will be generated by selecting a range of values before using a dialog box to configure the resulting sparkline. BonaVista Systems have a commercial product, MicroCharts, that has an Excel plug-in feature. Initially, this product appears to be very similar to that outlined in the application, but there are some small differences. For example, MicroCharts appears to render its sparklines using a font-based system that does not size itself based on the containing cell, where as the application indicates that sparklines will be rendered using a matrix-based system that scales based on "associated location", i.e. containing cell.
Bearing in mind that I am not trained in legalese and the number of other products I have considered is relatively small, it would appear that Microsoft may have a legitimate claim with this patent application. However, it does appear to have a disconcerting number of omissions and misstatements. Besides missing key information regarding the background of sparklines it also states "In the case of creating sparkline graphs, conventionally, sparklines are created manually" - a clear falsehood given the numerous existing examples of implementations that automatically generate sparklines.