Title: An Introduction to Data Modeling with Fedora
1An Introduction toData Modeling with Fedora
- Thorny Staples
- Fedora Commons, Inc.
2Fedora Abstractions
- Data objects
- Content models
- Behaviors of objects
- Policies about objects
- Relationships among objects
3(No Transcript)
4A data object is one unit of content
Persistent ID
DC
RELS-EXT
Reserved Datastreams
AUDIT
POLICY
1
2
Custom Datastreams (any type, any number)
n
5Content Models
- Create classes of data objects
- Expressed as Cmodel objects
- A Cmodel object defines the number and types of
data streams for objects of that class - A Cmodel object binds to service objects to
enable appropriate behaviors to be inherited by
data objects
6Optional Object Behaviors
- Data objects can have different views or
transformations - Sets of abstract behaviors that different kinds
of objects can subscribe to - Corresponding sets of services that specific
objects can execute - The business logic is hidden behind an
abstraction
7Service Definition Object
service subscription
Cmodel Object
service contract
data contract
Data Objects
Web Service
Service Mechanism Object
8A behavior call is a URL that contains
Object PID SDef Name Method Name
For example http//lib.va.edu/fedora/get/xxx1/sd
ef1/getThumb Can also add parameter and a
date-time stamp to access earlier versions of
the object
9Policies
- Machine enforceable expressions of rules, what
they are applied to and who they affect. - Who is affected can be defined in different
authorization sources, such as LDAP services - Rules can be as simple as allow or deny.
- Rules are applied to objects as a whole, any
datastream, or a dissemination, as well as each
API call and more.
10(No Transcript)
11Historical Census Object
- 1870 Aggregate Census file of the US
- A character data representation of the dataset is
the master - It has a datastream that is used to access an SQL
database that is only accessible through the
object - The SQL data can always be rebuilt from the
character data - It has a DDI codebook which has descriptive and
structural metadata about the object
12Relationships Among Objects
- Describes adjacency relationships among objects
- RDF data of the form
- PID typeOfRelationship relatedObjectPID
- Can used to assemble aggregations of objects
13Content Modeling Styles
- Atomistic objects have a small number of
datastreams that are each expressions of the
whole, with relationships to other objects - Many objects
- Much more flexible
- Compound objects usually include many
datastreams, including information about the
whole and its parts - Forces a mixture semantics of whole and parts
- More difficult to take advantage of the Fedora
abstractions cleanly
14Book Objects
- XML file is the main datastream that represents
the book as a whole - Using the atomistic approach, a book with 400
pages would be 401 objects - Using the compound approach, 1 object with as
many as 1201 datastreams for image files and the
book file - Example
15Objects Representing Aggregations
- Creating parent objects for complex resources
- Representing explicit collections
- Representing implicit collections
- Creating digital surrogates for physical entities
16Explicit Aggregations
- The parent aggregation object has explicit
references to the PIDs of its children - These references can be relationships listed in
the objects Rels-Ext datastream - Or they can be PIDs embedded in an XML datastream
that gives a more descriptive context and can
explicitly order them - Example
17Implicit Aggregations
- One object that represents the aggregation as a
whole - information about its meaning
- Rules for how to find the members
- Any number of objects can assert an isMemberOf
relationship to the PID of the aggregation
18Collections can be expressed as implicit
aggregations
isMemberOfCollection
isMemberOfCollection
Resource Index
isMemberOfCollection
Collection Object