More Adventures in WinFS
So tonight I'm sitting down pondering the schema of a comic-book collection in WinFS.
Some things are very clear to me. For example, a "publisher" is an organization, and WinFS already provides a Contacts.Organization type. It provides everything I need to record a publisher, so I don't even need to subclass it (although I might, just in case).
A "creator" (a writer, artist etc) is usually a person, but sometimes they're credited as organizations. Perhaps Creator should derive from the more generic System.Contact, or perhaps there's a better way to do that.
A "title" (a collection of issues published under the same name) is a bit trickier. In Comicster right now, a title is a first-class citizen. However, the more I think about it ... is a title just a link between a publisher and an issue? I mean, sure, it provides a few extra details, like the year it began publication, but in the end it's just a link. Title could derive from Storage.Link.
I've done some readings in the SDK help file about how to define WinFS custom types (it's an XML schema). All I have to do now is learn the ins and outs of the esoterica like defining links between types, and collections etc.
This is really exciting. It's a bold step into a new kind of development ... really blurring the line between databases and file storage. I'll keep you posted!

Comments
# crucible
3/02/2006 8:45 AM
remember kids, databases and file storage is exciting!
actually thinking about what you wrote about Title makes sense... I started wondering about writers/tracers/etc... but they all come under Issue.
what about creator, or any random blurb people want to say about the run as a whole?
do you have a section under each character for who was the creator, and what changes they went through/who was responsible?
ala The Amazing Gliding Spiderman! - JMS.
maybe I should use this comicster of which you oft speak.
# crucible
3/02/2006 8:47 AM
Thinking again, Creator would be a link too... hmmm...
# mabster
3/02/2006 8:50 AM
Well, Creator is a type of contact (it could be a Person, like JMS, or an Organization, like Comicraft).
The thing that links a Creator to an Issue, though, is what I have called a Credit. And Credit derives from Storage.Link. It also introduces a new property (called "Details" for now) which details what that credit was (eg "Writer", "Penciller etc).