The main idea is, that instead of just type in the tags which pop in to your mind for every single file on your computer, you (or somebody else) will have to define a schema containing the tags which are relevant for this specific file type. This schema will have to be loaded into the metadata engine, so the metadata engine knows about this type of files. This means that every tag which are allowed to be associated which this file type, must be defined in the schema. Each of the tags defined in the schema must be associated with a data type. In Microsoft's implementation of WinFS only four basics data types exits and can be used in the schema from the beginning. The four predefined data types is:
To make prevent a lot of redundant data (and work by defining schemas) a schema definition can inherit the properties from other schemas.
If you take a look at the big picture of the schema based metadata system, it looks like something we have seen before: Object orientated programming language. We define an object which can inherit properties from previously defined types. The object can have properties either of simple types, or previously defined types.
This description was quite abstract, but to describe something similar to an object orientated programming language, is hard to do with out it is going to be abstract. To make it more clear and less abstract I will come with a couple of examples. In the following examples I will use a pseudo code fore the schema definition, and the schema definitions will be simplified to make it easier to understand.