SlideShare a Scribd company logo
1 of 42
FEDORA
Selecting and Implementing an Open Source Digital Repository
Corey Keith
ckeith@loc.gov
Introduction
 History
 FEDORA Overview
 Object Oriented Principals
 LC’s Requirements
 LC’s Architecture
 Review
Pop Quiz
 XML
 OAIS
 METS
 FEDORA
 DSPACE
FEDORA History
 Continuing Research Project
– Cornell 1997
 Prototype Application
– University Virginia
 Fedora 1.0
– Open Source Release 2002
 Fedora 1.2
– Tomorrow!
Options, options, options
 Very few tools directly compete with
each other
 Many tools can be used to accomplish
similar behavior
 Many tools fulfill parts of the
functionality needed for a repository
 Roll your own solution
Why Fedora?
 Repository Architects & Developers
Excited 
 Object oriented approach to digital
objects
 Open Source Project
– Funded development (and support)
 Java Based
– Multiple HW Platforms
Flexible
 Integrates well with existing systems
– CGI Scripts
– Web Services
 Leaves most decisions to implementers
Extensible
 Again, no product can do it all
– Imaging, Audio, Transformations,
Courseware
 Easy to add new functionality to objects
 Embraces web services
 Open API’s
– Access
– Management
Digital Object
 What is the definition of a digital object?
–Documents, such as
articles, preprints, working
papers, technical reports,
conference papers
–Books
–Theses
–Data sets
–Computer programs
–Visualizations,
simulations, and other
models
–Multimedia publications
–Administrative records
–Published books
–Bibliographic datasets
–Images
–Audio files
–Video files
–Reformatted digital library
collections
–Learning objects
–Web pages
list taken from the dspace.org website
Repository Architecture
 Objects
 Behavior Definitions
 Behavior Mechanisms
 API
– Management
– Access
Object Oriented
 A software design method that models the
characteristics of abstract or real objects
using classes and objects.
 Proven Techniques for Software
Development
– Requirements gathering – Use Cases
• Developers speak to librarians and other stakeholders
 Facilitates reuse of functionality
 Design Patterns
 Not hacking Perl Scripts to make an
institutional repository
Object Oriented
 Data
– Metadata
• MODS – Descriptive
• METS – Structural
• MIX, etc – Technical
– Bit streams
• Actual Files – JPG, TIF, WAV, MP3, TEI, EAD
 Methods (Behaviors)
– Do stuff with the data
Object Oriented Concepts
 Classes
– Objects of the same type belong to a class
 Interfaces
– A contract defining behaviors a class of objects
will implement
 Encapsulation
– Behaviors operate on the data in an object
 Reflection
– Discover what interfaces and behaviors an object
implements
Image Objects
 Two File Image Object
– Data
• Hi Resolution Version: tif
• Low Resolution Version: jpg
 MrSID File Image Object
– Data
• MrSID File
Basic Image Interface
 getHighResolutionTIF
 getLowResolutionJPG
Basic Image Interface
Implementations
 Two File Image Object
– getHighResolutionTIF
• returns high resolution TIF
– getLowResolutionJPG
• returns low resolution JPG
 MrSID Image Object
– getHighResolutionTIF
• processes the MrSID file to return a high resolution TIF
file of the image
– getLowResolutionJPG
• processes the MrSID file to return a low resolution JPG
of the image
Sheet Music Object
 Data
– MODS Metadata
– Images of the pages (Image Objects)
– TEI encoded text of the lyrics (TEI Objects)
 Behaviors
– getPageImage(Pagenumber)
• Invoke the getLowResolutionJPG to return the image!
– getMODS
– getLyrics
Persistent ID (PID)
Behavior Definition
Metadata
SystemMetadata
DatastreamsData Object
Persistent ID (PID)
Service Binding
Metadata (WSDL)
SystemMetadata
Datastreams
Persistent ID (PID)
Disseminators
Datastreams
System Metadata
Behavior Mechanism Object
Behavior Definition Object
FEDORA’s Interface Implementation
graphics taken from presentations available at www.fedora.info
What is FEDORA?
 “Plumbing”
 Manage associations between objects
and their interfaces
 Invoke behaviors from an interface
which an object subscribes
 Manages or references files
What FEDORA
currently does not do?
 “Digital Library in a Box”
– Requires integration and custom
development
 Prescribe the right way to do things
– Implementers are free to choose
– Best practices still being fleshed out
LC’s Requirements
 Complex Digital Objects
– Structurally
• METS structMap
– Rich descriptive metadata
• Exploiting MODS features
– relatedItem
Choosing Repository Software
 Fedora provides a foundation to build
on
 LC member of initial deployment team
 No other software is like FEDORA
– Except general purpose programming
languages
How LC is implementing
FEDORA
 Types of Digital Objects
– Sheet Music
– Scores
– Sound Recordings
– Compact Discs
– Manuscripts
– Photographs
– Websites
– “Collections”
 Less emphasis
– Intellectual output of university’s research faculty
METS Profiles
 Correlates well with classes of objects
 Articulates
– Structure of an object
– Metadata requirements
 METS documents conforming to
profiles are ingested into repository
– Atomization
– Behavior association
Architecture
 Fedora (Repository)
 Cocoon (Application Layer)
Fedora
Repository
System
web browser
cocoon
Fedora Service APIs
user
SIP vs AIP
 Complex digital objects are atomized into
small reusable objects upon ingest to
FEDORA
– Sheet Music METS Profile (SIP)
• Sheet music object (AIP)
– Structural metadata encoded in METS
– Descriptive encoded in MODS
• Image objects for each page (AIP)
– TIF and JPG Files
– Technical encoded in MIX
• TEI object for the lyrics (AIP)
– TEI File
Why this Architecture?
 Clean Separation of Concerns
– Logic: Makes it go!
– Content: From FEDORA
– Style: Web Designers
 Object not bound to display
– Repository is for preservation of metadata and
files not markup (HTML)
– Markup accomplished in cocoon layer
 Leverage use of METS structural metadata
 Performance: Cocoon Caching
User Interface Development
 Web Designers
– Relate to objects and behaviors
– Can develop in HTML for display
– XSLT
• Uses XML from repository to drive display
Other Pieces of the
Repository Puzzle
 Other open source tools
– Cocoon
• XML Publishing Framework
– Lucene
• Text Indexing and Search API
 Someone has to write software!
– Java to build Lucene indexes
– XSP searching
– More XSLT than you want to see
Digital Object Production
 How are we building these digital
objects?
– MySQL
– Cocoon
– XSLT
– Homegrown Java
• Technical metadata extraction
Cocoon
 XML Publishing Framework (Toolbox)
– Generate
• From files (or URLS)
• From databases
• From code (XSP, JSP, PHP)
– Transform
• XSLT
– Serialize
• XML, HTML, PDF, SVG, MIDI?
– Caching
XSLT
 Philosophy
– Get data into XML as early in the workflow
as possible
 Flexibility
– Easy to change logic in XSLT
– No need to recompile
 Performance Issues
Resources Needed for
FEDORA (Cheap)
 Hardware Requirements
– Minimal for experimentation
• Installs on Windows PC
• Packaged to get up and running quickly
• Demo set of objects
– Scales with hardware in a production
environment
Resources Needed for
FEDORA (Expensive)
 1 or More Developers
– 1: Kick the tires
– or More: Real production
 Application Architects
 Requirement Analysts
 Subject Matter Experts
– Articulate requirements
• Object Structure
• Descriptive Metadata
Summary
 Five Questions
– Who
– What
– When
– Why
– Where
Who
 Institutions with resources to do
software development
 Unique requirements for digital library
software
– Preexisting tools do not fit the need
 Need for integration of existing systems
into one management infrastructure
What
 Digital Library Plumbing
 Very general purpose
– Use it to build almost any digital library
application
When
 December 10th
Version 1.2
Why
 Robust Set of tools to build YOUR
repository
 User support high from FEDORA
development team
 Smart people working on hard problems
Where
 www.fedora.info
Questions

More Related Content

Similar to Fedora

Linked Data from a Digital Object Management System
Linked Data from a Digital Object Management SystemLinked Data from a Digital Object Management System
Linked Data from a Digital Object Management SystemUldis Bojars
 
Applied Deep Learning with Spark and Deeplearning4j
Applied Deep Learning with Spark and Deeplearning4jApplied Deep Learning with Spark and Deeplearning4j
Applied Deep Learning with Spark and Deeplearning4jDataWorks Summit
 
Systems, processes & how we stop the wheels falling off
Systems, processes & how we stop the wheels falling offSystems, processes & how we stop the wheels falling off
Systems, processes & how we stop the wheels falling offWellcome Library
 
Autopsy 3.0 - Open Source Digital Forensics Conference
Autopsy 3.0 - Open Source Digital Forensics ConferenceAutopsy 3.0 - Open Source Digital Forensics Conference
Autopsy 3.0 - Open Source Digital Forensics ConferenceBasis Technology
 
New Persistence Features in Spring Roo 1.1
New Persistence Features in Spring Roo 1.1New Persistence Features in Spring Roo 1.1
New Persistence Features in Spring Roo 1.1Stefan Schmidt
 
A machine learning and data science pipeline for real companies
A machine learning and data science pipeline for real companiesA machine learning and data science pipeline for real companies
A machine learning and data science pipeline for real companiesDataWorks Summit
 
Hypatia for dlf 2011
Hypatia for dlf 2011Hypatia for dlf 2011
Hypatia for dlf 2011DLFCLIR
 
Cochrane von Suchodoletz File Creation, Rendering and Formats
Cochrane von Suchodoletz File Creation, Rendering and FormatsCochrane von Suchodoletz File Creation, Rendering and Formats
Cochrane von Suchodoletz File Creation, Rendering and FormatsFuture Perfect 2012
 
Analytics with unified file and object
Analytics with unified file and object Analytics with unified file and object
Analytics with unified file and object Sandeep Patil
 
Entity framework introduction sesion-1
Entity framework introduction   sesion-1Entity framework introduction   sesion-1
Entity framework introduction sesion-1Usama Nada
 
Hibernate in XPages
Hibernate in XPagesHibernate in XPages
Hibernate in XPagesToby Samples
 

Similar to Fedora (20)

Linked Data from a Digital Object Management System
Linked Data from a Digital Object Management SystemLinked Data from a Digital Object Management System
Linked Data from a Digital Object Management System
 
Fedora
FedoraFedora
Fedora
 
Applied Deep Learning with Spark and Deeplearning4j
Applied Deep Learning with Spark and Deeplearning4jApplied Deep Learning with Spark and Deeplearning4j
Applied Deep Learning with Spark and Deeplearning4j
 
Systems, processes & how we stop the wheels falling off
Systems, processes & how we stop the wheels falling offSystems, processes & how we stop the wheels falling off
Systems, processes & how we stop the wheels falling off
 
Autopsy 3.0 - Open Source Digital Forensics Conference
Autopsy 3.0 - Open Source Digital Forensics ConferenceAutopsy 3.0 - Open Source Digital Forensics Conference
Autopsy 3.0 - Open Source Digital Forensics Conference
 
New Persistence Features in Spring Roo 1.1
New Persistence Features in Spring Roo 1.1New Persistence Features in Spring Roo 1.1
New Persistence Features in Spring Roo 1.1
 
Characterization of CDROMs for Emulation-based Access. Klaus Rechert, Thomas ...
Characterization of CDROMs for Emulation-based Access. Klaus Rechert, Thomas ...Characterization of CDROMs for Emulation-based Access. Klaus Rechert, Thomas ...
Characterization of CDROMs for Emulation-based Access. Klaus Rechert, Thomas ...
 
Presentation on GNM-DMS
Presentation on GNM-DMS Presentation on GNM-DMS
Presentation on GNM-DMS
 
Lecture17.ppt
Lecture17.pptLecture17.ppt
Lecture17.ppt
 
Lecture17 (1).ppt
Lecture17 (1).pptLecture17 (1).ppt
Lecture17 (1).ppt
 
Lecture17.ppt
Lecture17.pptLecture17.ppt
Lecture17.ppt
 
Quick and dirty islandora
Quick and dirty islandoraQuick and dirty islandora
Quick and dirty islandora
 
A machine learning and data science pipeline for real companies
A machine learning and data science pipeline for real companiesA machine learning and data science pipeline for real companies
A machine learning and data science pipeline for real companies
 
Hypatia for dlf 2011
Hypatia for dlf 2011Hypatia for dlf 2011
Hypatia for dlf 2011
 
Cochrane von Suchodoletz File Creation, Rendering and Formats
Cochrane von Suchodoletz File Creation, Rendering and FormatsCochrane von Suchodoletz File Creation, Rendering and Formats
Cochrane von Suchodoletz File Creation, Rendering and Formats
 
Analytics with unified file and object
Analytics with unified file and object Analytics with unified file and object
Analytics with unified file and object
 
Entity framework introduction sesion-1
Entity framework introduction   sesion-1Entity framework introduction   sesion-1
Entity framework introduction sesion-1
 
Digital Library Software
Digital Library SoftwareDigital Library Software
Digital Library Software
 
Hibernate in XPages
Hibernate in XPagesHibernate in XPages
Hibernate in XPages
 
big data ppt.ppt
big data ppt.pptbig data ppt.ppt
big data ppt.ppt
 

More from Dr. Ahmed Al Zaidy

Chapter 14 Exploring Object-based Programming
Chapter 14 Exploring Object-based ProgrammingChapter 14 Exploring Object-based Programming
Chapter 14 Exploring Object-based ProgrammingDr. Ahmed Al Zaidy
 
Chapter 13 Programming for web forms
Chapter 13 Programming for web formsChapter 13 Programming for web forms
Chapter 13 Programming for web formsDr. Ahmed Al Zaidy
 
Chapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheetsChapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheetsDr. Ahmed Al Zaidy
 
Chapter 11 Working with Events and Styles
Chapter 11 Working with Events and StylesChapter 11 Working with Events and Styles
Chapter 11 Working with Events and StylesDr. Ahmed Al Zaidy
 
Chapter 10 Exploring arrays, loops, and conditional statements
Chapter 10 Exploring arrays, loops, and conditional statementsChapter 10 Exploring arrays, loops, and conditional statements
Chapter 10 Exploring arrays, loops, and conditional statementsDr. Ahmed Al Zaidy
 
Chapter 9 Getting Started with JavaScript
Chapter 9 Getting Started with JavaScriptChapter 9 Getting Started with JavaScript
Chapter 9 Getting Started with JavaScriptDr. Ahmed Al Zaidy
 
Chapter 8 Enhancing a website with multimedia
Chapter 8 Enhancing a website with multimediaChapter 8 Enhancing a website with multimedia
Chapter 8 Enhancing a website with multimediaDr. Ahmed Al Zaidy
 
Chapter 7 Designing a web form
Chapter 7 Designing a web formChapter 7 Designing a web form
Chapter 7 Designing a web formDr. Ahmed Al Zaidy
 
Chapter 6 Working with Tables and Columns
Chapter 6 Working with Tables and ColumnsChapter 6 Working with Tables and Columns
Chapter 6 Working with Tables and ColumnsDr. Ahmed Al Zaidy
 
Chapter 5 Designing for the mobile web
Chapter 5 Designing for the mobile webChapter 5 Designing for the mobile web
Chapter 5 Designing for the mobile webDr. Ahmed Al Zaidy
 
Chapter 4 Graphic Design with CSS
Chapter 4 Graphic Design with CSSChapter 4 Graphic Design with CSS
Chapter 4 Graphic Design with CSSDr. Ahmed Al Zaidy
 
Chapter 3 Designing a Page Layout
Chapter 3 Designing a Page LayoutChapter 3 Designing a Page Layout
Chapter 3 Designing a Page LayoutDr. Ahmed Al Zaidy
 
Chapter 2 Getting Started with CSS
Chapter 2 Getting Started with CSSChapter 2 Getting Started with CSS
Chapter 2 Getting Started with CSSDr. Ahmed Al Zaidy
 
Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5Dr. Ahmed Al Zaidy
 
testing throughout-the-software-life-cycle-section-2
testing throughout-the-software-life-cycle-section-2testing throughout-the-software-life-cycle-section-2
testing throughout-the-software-life-cycle-section-2Dr. Ahmed Al Zaidy
 
Chapter 14 Business Continuity
Chapter 14 Business ContinuityChapter 14 Business Continuity
Chapter 14 Business ContinuityDr. Ahmed Al Zaidy
 
Chapter 13 Vulnerability Assessment and Data Security
Chapter 13 Vulnerability Assessment and Data SecurityChapter 13 Vulnerability Assessment and Data Security
Chapter 13 Vulnerability Assessment and Data SecurityDr. Ahmed Al Zaidy
 

More from Dr. Ahmed Al Zaidy (20)

Chapter 14 Exploring Object-based Programming
Chapter 14 Exploring Object-based ProgrammingChapter 14 Exploring Object-based Programming
Chapter 14 Exploring Object-based Programming
 
Chapter 13 Programming for web forms
Chapter 13 Programming for web formsChapter 13 Programming for web forms
Chapter 13 Programming for web forms
 
Chapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheetsChapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheets
 
Chapter 11 Working with Events and Styles
Chapter 11 Working with Events and StylesChapter 11 Working with Events and Styles
Chapter 11 Working with Events and Styles
 
Chapter 10 Exploring arrays, loops, and conditional statements
Chapter 10 Exploring arrays, loops, and conditional statementsChapter 10 Exploring arrays, loops, and conditional statements
Chapter 10 Exploring arrays, loops, and conditional statements
 
Chapter 9 Getting Started with JavaScript
Chapter 9 Getting Started with JavaScriptChapter 9 Getting Started with JavaScript
Chapter 9 Getting Started with JavaScript
 
Chapter 8 Enhancing a website with multimedia
Chapter 8 Enhancing a website with multimediaChapter 8 Enhancing a website with multimedia
Chapter 8 Enhancing a website with multimedia
 
Chapter 7 Designing a web form
Chapter 7 Designing a web formChapter 7 Designing a web form
Chapter 7 Designing a web form
 
Chapter 6 Working with Tables and Columns
Chapter 6 Working with Tables and ColumnsChapter 6 Working with Tables and Columns
Chapter 6 Working with Tables and Columns
 
Chapter 5 Designing for the mobile web
Chapter 5 Designing for the mobile webChapter 5 Designing for the mobile web
Chapter 5 Designing for the mobile web
 
Chapter 4 Graphic Design with CSS
Chapter 4 Graphic Design with CSSChapter 4 Graphic Design with CSS
Chapter 4 Graphic Design with CSS
 
Chapter 3 Designing a Page Layout
Chapter 3 Designing a Page LayoutChapter 3 Designing a Page Layout
Chapter 3 Designing a Page Layout
 
Chapter 2 Getting Started with CSS
Chapter 2 Getting Started with CSSChapter 2 Getting Started with CSS
Chapter 2 Getting Started with CSS
 
Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5
 
Integer overflows
Integer overflowsInteger overflows
Integer overflows
 
testing throughout-the-software-life-cycle-section-2
testing throughout-the-software-life-cycle-section-2testing throughout-the-software-life-cycle-section-2
testing throughout-the-software-life-cycle-section-2
 
Fundamental of testing
Fundamental of testingFundamental of testing
Fundamental of testing
 
Chapter 15 Risk Mitigation
Chapter 15 Risk MitigationChapter 15 Risk Mitigation
Chapter 15 Risk Mitigation
 
Chapter 14 Business Continuity
Chapter 14 Business ContinuityChapter 14 Business Continuity
Chapter 14 Business Continuity
 
Chapter 13 Vulnerability Assessment and Data Security
Chapter 13 Vulnerability Assessment and Data SecurityChapter 13 Vulnerability Assessment and Data Security
Chapter 13 Vulnerability Assessment and Data Security
 

Recently uploaded

GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 

Recently uploaded (20)

GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 

Fedora

  • 1. FEDORA Selecting and Implementing an Open Source Digital Repository Corey Keith ckeith@loc.gov
  • 2. Introduction  History  FEDORA Overview  Object Oriented Principals  LC’s Requirements  LC’s Architecture  Review
  • 3. Pop Quiz  XML  OAIS  METS  FEDORA  DSPACE
  • 4. FEDORA History  Continuing Research Project – Cornell 1997  Prototype Application – University Virginia  Fedora 1.0 – Open Source Release 2002  Fedora 1.2 – Tomorrow!
  • 5. Options, options, options  Very few tools directly compete with each other  Many tools can be used to accomplish similar behavior  Many tools fulfill parts of the functionality needed for a repository  Roll your own solution
  • 6. Why Fedora?  Repository Architects & Developers Excited   Object oriented approach to digital objects  Open Source Project – Funded development (and support)  Java Based – Multiple HW Platforms
  • 7. Flexible  Integrates well with existing systems – CGI Scripts – Web Services  Leaves most decisions to implementers
  • 8. Extensible  Again, no product can do it all – Imaging, Audio, Transformations, Courseware  Easy to add new functionality to objects  Embraces web services  Open API’s – Access – Management
  • 9. Digital Object  What is the definition of a digital object? –Documents, such as articles, preprints, working papers, technical reports, conference papers –Books –Theses –Data sets –Computer programs –Visualizations, simulations, and other models –Multimedia publications –Administrative records –Published books –Bibliographic datasets –Images –Audio files –Video files –Reformatted digital library collections –Learning objects –Web pages list taken from the dspace.org website
  • 10. Repository Architecture  Objects  Behavior Definitions  Behavior Mechanisms  API – Management – Access
  • 11. Object Oriented  A software design method that models the characteristics of abstract or real objects using classes and objects.  Proven Techniques for Software Development – Requirements gathering – Use Cases • Developers speak to librarians and other stakeholders  Facilitates reuse of functionality  Design Patterns  Not hacking Perl Scripts to make an institutional repository
  • 12. Object Oriented  Data – Metadata • MODS – Descriptive • METS – Structural • MIX, etc – Technical – Bit streams • Actual Files – JPG, TIF, WAV, MP3, TEI, EAD  Methods (Behaviors) – Do stuff with the data
  • 13. Object Oriented Concepts  Classes – Objects of the same type belong to a class  Interfaces – A contract defining behaviors a class of objects will implement  Encapsulation – Behaviors operate on the data in an object  Reflection – Discover what interfaces and behaviors an object implements
  • 14. Image Objects  Two File Image Object – Data • Hi Resolution Version: tif • Low Resolution Version: jpg  MrSID File Image Object – Data • MrSID File
  • 15. Basic Image Interface  getHighResolutionTIF  getLowResolutionJPG
  • 16. Basic Image Interface Implementations  Two File Image Object – getHighResolutionTIF • returns high resolution TIF – getLowResolutionJPG • returns low resolution JPG  MrSID Image Object – getHighResolutionTIF • processes the MrSID file to return a high resolution TIF file of the image – getLowResolutionJPG • processes the MrSID file to return a low resolution JPG of the image
  • 17. Sheet Music Object  Data – MODS Metadata – Images of the pages (Image Objects) – TEI encoded text of the lyrics (TEI Objects)  Behaviors – getPageImage(Pagenumber) • Invoke the getLowResolutionJPG to return the image! – getMODS – getLyrics
  • 18. Persistent ID (PID) Behavior Definition Metadata SystemMetadata DatastreamsData Object Persistent ID (PID) Service Binding Metadata (WSDL) SystemMetadata Datastreams Persistent ID (PID) Disseminators Datastreams System Metadata Behavior Mechanism Object Behavior Definition Object FEDORA’s Interface Implementation graphics taken from presentations available at www.fedora.info
  • 19. What is FEDORA?  “Plumbing”  Manage associations between objects and their interfaces  Invoke behaviors from an interface which an object subscribes  Manages or references files
  • 20. What FEDORA currently does not do?  “Digital Library in a Box” – Requires integration and custom development  Prescribe the right way to do things – Implementers are free to choose – Best practices still being fleshed out
  • 21. LC’s Requirements  Complex Digital Objects – Structurally • METS structMap – Rich descriptive metadata • Exploiting MODS features – relatedItem
  • 22. Choosing Repository Software  Fedora provides a foundation to build on  LC member of initial deployment team  No other software is like FEDORA – Except general purpose programming languages
  • 23. How LC is implementing FEDORA  Types of Digital Objects – Sheet Music – Scores – Sound Recordings – Compact Discs – Manuscripts – Photographs – Websites – “Collections”  Less emphasis – Intellectual output of university’s research faculty
  • 24. METS Profiles  Correlates well with classes of objects  Articulates – Structure of an object – Metadata requirements  METS documents conforming to profiles are ingested into repository – Atomization – Behavior association
  • 25. Architecture  Fedora (Repository)  Cocoon (Application Layer) Fedora Repository System web browser cocoon Fedora Service APIs user
  • 26. SIP vs AIP  Complex digital objects are atomized into small reusable objects upon ingest to FEDORA – Sheet Music METS Profile (SIP) • Sheet music object (AIP) – Structural metadata encoded in METS – Descriptive encoded in MODS • Image objects for each page (AIP) – TIF and JPG Files – Technical encoded in MIX • TEI object for the lyrics (AIP) – TEI File
  • 27. Why this Architecture?  Clean Separation of Concerns – Logic: Makes it go! – Content: From FEDORA – Style: Web Designers  Object not bound to display – Repository is for preservation of metadata and files not markup (HTML) – Markup accomplished in cocoon layer  Leverage use of METS structural metadata  Performance: Cocoon Caching
  • 28. User Interface Development  Web Designers – Relate to objects and behaviors – Can develop in HTML for display – XSLT • Uses XML from repository to drive display
  • 29.
  • 30. Other Pieces of the Repository Puzzle  Other open source tools – Cocoon • XML Publishing Framework – Lucene • Text Indexing and Search API  Someone has to write software! – Java to build Lucene indexes – XSP searching – More XSLT than you want to see
  • 31. Digital Object Production  How are we building these digital objects? – MySQL – Cocoon – XSLT – Homegrown Java • Technical metadata extraction
  • 32. Cocoon  XML Publishing Framework (Toolbox) – Generate • From files (or URLS) • From databases • From code (XSP, JSP, PHP) – Transform • XSLT – Serialize • XML, HTML, PDF, SVG, MIDI? – Caching
  • 33. XSLT  Philosophy – Get data into XML as early in the workflow as possible  Flexibility – Easy to change logic in XSLT – No need to recompile  Performance Issues
  • 34. Resources Needed for FEDORA (Cheap)  Hardware Requirements – Minimal for experimentation • Installs on Windows PC • Packaged to get up and running quickly • Demo set of objects – Scales with hardware in a production environment
  • 35. Resources Needed for FEDORA (Expensive)  1 or More Developers – 1: Kick the tires – or More: Real production  Application Architects  Requirement Analysts  Subject Matter Experts – Articulate requirements • Object Structure • Descriptive Metadata
  • 36. Summary  Five Questions – Who – What – When – Why – Where
  • 37. Who  Institutions with resources to do software development  Unique requirements for digital library software – Preexisting tools do not fit the need  Need for integration of existing systems into one management infrastructure
  • 38. What  Digital Library Plumbing  Very general purpose – Use it to build almost any digital library application
  • 40. Why  Robust Set of tools to build YOUR repository  User support high from FEDORA development team  Smart people working on hard problems

Editor's Notes

  1. Supports a variety of xslt engines