Differences between revisions 10 and 11
Revision 10 as of 2008-08-25 15:08:52
Size: 7466
Editor: abr
Comment:
Revision 11 as of 2008-08-25 15:09:05
Size: 7451
Editor: abr
Comment:
Deletions are marked like this. Additions are marked like this.
Line 45: Line 45:
 Status:: Description needs review
 Status:: In progress

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
0.5md

Priority
6

Status
In progress

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:

  • Inheritance is not implemented, but two equally useful ways present themselves. Choosing the one that Fedora will use will help our system gain acceptance.
  • Arbitrary xml in DS-COMPOSITION, instead of SCHEMABINDINGS
  • rdf:type and a OWL Full to describe the relationsship model
  • Policy Relationships
  • The schemas for the Base objects datastreams must be decided and formalised.

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

DS-COMPOSITE

We use DS-COMPOSITE to store arbitrary metadata, as proposed. Fedora does not choke on it, and preserves it faithfully.

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.

  • A data object must have fedora-model:hasModel relations to all the Content models it implements.
  • A content model must have doms:extendsModel relations to it's direct parents.

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 three 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.

Given a data object D, examine the schema for the RELS-EXT datastream

  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

Document B should now be the schema for the object described in C. Make the changes you want in C, transform the rdf:type back into fedora-model:hasModel and store it as the RELS-EXT datastream.

Validate all the objects in the repository

  1. Use the triple store to find all content models in the system.
  2. For each content model C, follow the doms:extendsModel relation to construct the list of parent content models. Uniquify this list.
  3. From each content model in the list, extract the schema, if any, for the RELS-EXT datastream. Concatenate these schemas into an xml file.
  4. Use an xslt to transform any mention of doms:extendsModel in this schema into rdf:isSubclassOf
  5. For each data object in the repository, extract the RELS-EXT datastream in a document
  6. For each document, xslttransform the fedora-model:hasModel relation into rdf:type relation.
  7. Validate all these documents against the set of schemas.

Checklist For Working On An Action

The Life Cycle of an Action:

  • Assign people for action definition: Done at start of iteration status meeting. Fill out Assigned

  • Define the action: Describe information about what is to be done and how. Fill out Tasks Addressed and Time Estimated.

  • Review the definition: Get another project group member to review the action definition, and update it.

  • Assign people for action implementation: Done by project manager, usually the same persons who wrote the definition. Fill out Assigned and Prev assigned if new persons are assigned.

  • Implement the action: See details below

  • Review the action: Get another project group member to review what is implemented (code and documentation), and update it.

  • Finish the action: Change the status to "Finished" and update the "time used" field on the action page.

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

  • Update the state of the action to "In Progress" when you start working on it.
  • Check if the tasks addressed by this action have their status set to "In Progress". If that is not the case, then change the state of them.
  • Keep track of how much time that has been spent working on the action. If it addresses more than one task, then make a note on the action page about how much of the elapsed time that has been spent on the individual tasks. Hint: Continually updating the "Time used" field will make it easier for you.

  • Update the "Progress History" and documentation pages of each task addressed by this action when appropriate. This depends on the situation, but in general, the task pages should hold all important related information about the work done, experiences gathered, identified requirements and so on.

ActionDataModelFedora3 (last edited 2010-03-17 13:12:54 by localhost)