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
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers