Action decide Data Model with respect to Fedora 3

Assigned
KFC + ABR + EK

Prev assigned

Tasks adressed
["TaskA.2.2"],["TaskA.2.1"]

Time estimated
8md

Time used
0md

Priority
6

Status
Description needs review

Iteration
11

Notes

The Fedora 3 Data Model seems to indicate a different datamodel to what we expected, and this has impact on how we should define the final DOMS data model. This needs to be decided, and soon, so MjĂžlner knows how our final datamodel looks.

The issues we have identified so far:

The purpose of this action is to establish how key concepts, mainly inheritance, should be implemented, and formalise the DOMS base collection. We should start manipulating the Fedora developers into accepting our wishes, mainly by emails to their mailinglists.

The product should be a datamodel description, and the foxml object for the Base collection.

Progress

Inheritance and rdf:type

It is a great priority to be able to describe the datamodel in OWL lite. To be able to do this, we propose the following system.

In a content model, we use OWL to describe the contents of the RELS-EXT datastream of it's subscribing data objects. We make no attempts to describe the contents of the RELS-EXT datastream of the content models. The fedora-model:hasModel relations will not be expressed in this OWL schema.

There are two typical scenarios where you want to construct the complete schema for RELS-EXT datastream

Given a content model C , make a new object

  1. For the content model C, follow the doms:extendsModel relation to construct the list of parent content models. Uniquify this list.
  2. From each content model in the list, extract the schema, if any, for the RELS-EXT datastream. Concatenate these schemas into an xml file.
  3. Use an xslt to transform any mention of doms:extendsModel in this schema into rdf:isSubclassOf
  4. Construct a new rdf individual of type C. Use the schema to find the required and the possible relations. Populate the individual.
  5. Transform the rdf:type relation in the individual into a fedora-model:hasModel relation to each of the classes from the schema.

Validate all the objects in the repository

Constructing the real schema for a data object's RELS-EXT datastream goes like this.

  1. Construct the list of content models for A thus:
    1. Follow all the fedora-model:hasModel relations of A, and construct a list AL of content models for A.
    2. For each content model B in the list AL, follow the doms:extendsModel relations, to construct a set AG of content models for A.
    3. Compare AG and AL. If they do not contain exactly the same models, there is a problem
  2. Construct the schema from the content models thus:
    1. For each content model in AL, find the schema, if any, for the RELS-EXT datastream.
    2. Concatenate these schemas to a xml document B
    3. Use a xslt to transform the doms:extendsType objectproperties into rdf:isSubclassOf
    4. Take the RELS-EXT datastream from the data object, and store it in a document C.
    5. Use a xslt to transfrom the doms:hasModel relation into rdf:type

Checklist For Working On An Action

The Life Cycle of an Action:

Please make sure that you address the below issues, when working on an action: