Thanks Chris, this really increased my understanding of the CMA. I had not separated the constraints on the persistence object (Fedora hasModel) from the constraints and assertions about the domain object (potentially rdf:type). Since these objects are not 1:1 the same thing in our system, the CMA had previous seemed to sort of "flatten out" out our domain model.
So my reservations are gone, but I still need to understand how the whole thing might fit together. skål, Greg Chris Wilper wrote: > Hi Kåre and Greg, > > Kåre said: > >> The previous CMODEL object property actually used rdf:type >> as it's URL, but the new Content Model Architecture has opted >> for a different approach, using the property "hasModel" in >> the fedora vocabulary. >> > > The decision not to use rdf:type in the CMA was deliberate, > and deserves some explanation. > > Going into the CMA design process, we made a couple basic > assumptions: > 1) Special Fedora objects should serve to identify and > describe content models. > 2) All objects in Fedora should be describable via > a content model. > > This means that even content model objects (our "classes") > are able to assert that they are in a content model. > You can see this in the demo content models -- each has > a "hasModel" relationship to the system-defined content > model for content models. > > Modeling this in OWL (and thus using rdf:type instead of > "hasModel") was certainly possible, but it quickly put us > in OWL-Full territory because classes cannot be instances > ("clinstances") otherwise. > > So we decided (no pun intended) to use "hasModel" without > tying this core CMA relationship to OWL for now, noting > that it doesn't preclude a future move of declaring "hasModel" > as a subproperty of rdf:type. Note that regardless of such a > move, since content models themselves are instances, we'd > already be in OWL-Full. > > Greg said: > >> My suggestion would simply be to make your rdf:type >> statements in the RELS-EXT datastream and leave the >> contentModel field alone. The reason is that I see no >> semantic benefit to using the contentModel property of >> the Fedora object, >> > > The "hasModel" relationship brings semantics to the party > that rdf:type doesn't -- it provides a standard way to > hook into a description of the "class" of Fedora Object > of which the referrer is a member. Among other useful > things, this information can be used to drive Fedora Object > validation all the way down to the bitstream format level. > > >> while on the other hand it imposes some limitations. >> First, your objects have single inheritance. >> > > I'm not sure what you mean by inheritance here, but > I just want to clarify in case there's any confusion: > > A) Fedora Objects can assert that they adhere to > multiple content models at once via multiple "hasModel" > relationships. The beta1 version of 3.0 was limited > in this regard. > B) As of 3.0, each content model is expected to be > self-contained. We have not defined or implemented > a "subclassing" feature whereby membership in one > content model implies membership in another. > > >> Second, we don't really know where the >> CMA is going in future releases, especially in terms >> of schema validation. >> > > We hope to have laid a solid foundation without precluding > the innovation that needs to happen in this area, but this > is an ongoing process. Where the CMA goes in future > releases depends on exactly these types of discussions. > > >> So in my humble opinion it is >> premature to tie yourself to that architecture. >> > > Hmmm.. I don't think it has to be an either/or thing. > > It is typically the case that there is a 1:1 relationship between a > persisted Fedora object and a domain object, but we shouldn't > forget that they're different things. When modeling such domain > objects in RDF/OWL, it seems that rdf:type is the right way to > go. But "hasModel" speaks more to the persistent nature of > the thing as a Fedora object. > > Cheers, > Chris > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Fedora-commons-developers mailing list Fedora-commons-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers