I saw my first demo of Microsoft’s Cairo OFS (Object File System) back in 1993. It was briefly unveiled at the Professional Developers Conference that year, and then shelved. This month I installed the beta version of its successor, WinFS.
OFS was, and WinFS is, a storage architecture that marries the conventional file system with database characteristics such as strong data types, explicit relationships, and structured queries. The goal is to enable us not only to find documents, contacts and messages more easily, but to remix them on the fly to create context-sensitive and task-appropriate views.
There have been many changes in the years between Cairo and WinFS. The foundation technologies, for example, have grown up. The NTFS file system and SQL Server are reliable veterans; the .Net common language runtime and Windows’ XML infrastructure have reached adulthood; SQL Server’s CLR and XML aspects are maturing. That’s why WinFS lead architect Quentin Clark says this time around the project involves more integration than invention.
The intervening years have also shifted our focus from the PC to the network and from personal to social computing. Most of the documents, contacts and messages that I need to find and organise live primarily in the network. This gives me convenient access from anywhere and connects my stuff to other people’s stuff.
My blog, functioning as my outboard brain, is both a personal repository and a nexus of connections involving me, close collaborators and serendipitous acquaintances. My email doesn’t yet work the same way, but I suspect that it soon will. Blogs, wikis and social tagging have shown us that group intelligence, amplified by nothing more than linking and search, can manage flows of information more effectively than most of us would have dared to dream.
WinFS at first glance seems antithetical to this approach. It prescribes a formal taxonomy of data types. That taxonomy can be extended, but only by WinFS-savvy developers, and only in WinFS-aware applications. The benefit of this scheme is that applications which once had to invent their own custom storage mechanisms will now be able to leverage the system-wide database and reuse not only standard types but also the extended types they share in common.
Beyond the handful of standard types, though, I’m not sure where all those extensions are going to come from. Developers have always tried, and so far always failed, to define reusable objects that meet the needs of knowledge workers in the real world.
Meanwhile, in the era of social computing, we’re learning to watch for the patterns that emerge as people interact in information-rich contexts, and then pave those cow paths. The first WinFS-aware applications, which will be personal information managers with hooks for sharing and synchronisation, won’t align with this strategy.
These WinFS applications will, however, enable you to pave your own cow paths, for example by storing and reusing queries. Nobody can know how people will ultimately want to share these contexts among WinFS clients in a peer-to-peer fashion, on WinFS servers when they emerge, and on the global XML web. So, I hope Microsoft will come to see WinFS not only as a platform for developers, but also as an environment in which users can do simple things that yield powerful social effects.