by Jon Udell

WinFS: The grand schema of things

analysis
Jul 16, 20043 mins

Microsoft manager gets to the heart of key Longhorn pillar 

Quentin Clark is director of program management for WinFS (Windows File System). We asked him to comment on a range of WinFS issues and especially on the relationship between WinFS and XML.

IW: WinFS has one notion of types and queries, and XML has another. How do we reconcile these worlds?

QC: Consider a Word document in WinFS. It has a WinFS type, Document, with properties like Author and Title. But that WinFS type will also include an XML data type.

IW: So I’ll be able to use XPath or maybe XQuery to query that XML data type?

QC: Yes, we’re leveraging Yukon’s XPath/XQuery capability. That gives you a lot of power. You can walk up to WinFS and issue XPath queries into items that have XML data types, and then we can go and reason over those things. One thing we’re struggling with now — it’s an open design issue — is what our ability will be to give people the opportunity to do metadata handling on XML that’s just sitting in a file stream.

IW: Is the relational engine the only way to maintain control over the managed metadata?

QC: It’s just a fact that there are more things we can do with a normal scalar property — a thing that has a column of its own inside the SQL engine — than we can with do some piece of XML deep inside a data type. Can I find things inside XML data types? You bet. Can I build rules around that? Yes. But if the user

right-clicks in the shell because they want to add a column that displays the proposal ID, how easy will that be if the thing is buried inside an XML data type?

IW: Given an XML schema, it seems that automated mapping should be possible.

QC: My dream here is to allow developer tools to build extensions to WinFS types, point them at XSDs [XML Schema Descriptions] they’ve created in Office, and wire things up automatically. That’s where I want to land. What we get done by Beta 1 or RTM [release to manufacturing] is open to debate. But the basic support for metadata handlers looking into file streams and putting things up into the query space — all that is very much baked and committed.

IW: What’s the relationship between WinFS and Yukon?

QC: Nobody has built an XML store that has the level of scale, performance, or capabilities of today’s relational stores. It’s true, as you say, that database vendors are now supporting XML. A really good and deep integration of XML into a relational database gives you the best of both worlds. So the data engine at the heart of both Yukon and WinFS — the thing that’s breaking apart queries, doing optimizations, storing B-trees — is common, though not the same version.