Data Structures Content Modeling - Islandora · Compound vs Atomistic Modeling A compound object...

Post on 25-May-2020

3 views 0 download

Transcript of Data Structures Content Modeling - Islandora · Compound vs Atomistic Modeling A compound object...

Content Modeling /Data Structures

Nigel Banks

Fedora Object - Structure

Fedora Object Types● Data Object● Content Model Object● *Service Definition Object● *Service Deployment Object

* Typically not used by Islandora.

Content Model - Structure

Content Model - Architecture

What’s Content Model aka CModel● Characterizes a class of digital objects

○ Data; Coupled with○ Behavior

● Implicit vs Explicit => Behavoir / Data○ What’s explicitly permitted, excluded, or required?○ What’s expected but not formally defined○ DS-COMPOSITE-MODEL is Explicit

● Categorizes your entire repository

Fedora Content Model Definition-- A container for the Content Model document which is a formal model that characterizes a class of digital objects. It can also provide a model of the relationships which are permitted, excluded, or required between groups of digital objects. -- All digital objects in Fedora including Data, SDef, SDep, and CModel objects are organized into classes by the CModel object.Fedora Content Model Definition

Uses of Content Models● Object typing● Object validation● Object creation● Service / behavoir binding ● Community sharing / interoperability

Islandora & Content ModelsIslandora Drupal 6● Fedora CModel is

extended with the ISLANDORACM datastream

● ISLANDORACM defines datastreams/mimetypes, actions on ingest, display of content, etc.

Islandora Drupal 7● Uses: DS-COMPOSITE-

MODEL○ Restricts Datastreams

● Actions / Forms are abstract out and stored in Drupal and launched by code in Drupal or via microservices.

Grouping by Data / BehavoirConsider this: An object that requires the same # and types of Datastreams; but● It has different behavoirs (display / search, etc)● and / or● Users / Services interpret it’s data differently

Should it have a different content model?

How to Model your Models?● Should you mix them? Should objects have multiple

CModels● Should you use Inheritance? Should CModels have

other CModels as types?● Single Types? Should you create distict types and not

use inheritance or mixins?● Should you make types do double duty and function as

two seperate things? NO!Well it depends.

Compound vs Atomistic ModelingA compound object has multiple content-bearing datastreams in a single object• eg. a book object that includes many page datastreams.

An atomistic object has one or more child objects which are related back to the parent atomistic object.• eg. a book object with multiple child page objects

Islandora Book SP: Example

A more Atomistic Approach

Case Study: Modeling GIS Data“I have 5Tb of GIS data. Can you help me?”

Dataset consists of 500 ZIP files where each ZIP file includes:● One XML file in ESRI format.

Case Study: Additional requirements● A display of the ZIP file manifest● A preview image that represents the content of the

package● A KML representation of the package● An option for download

Case Study: Questions I would ask● Can you describe your dataset and those that might use

it? ● How will they interact with the data? ● Search access points? ● Will all of it accessible? ● Are there any IP issues associated with the data? ● How long does the data need to be stewarded?● Should we Crosswalk metadata to an open or common

standard?

Questions?