Hyrax Metadata Ordering Call 2018-05-15

Connection Info:

4-5pm Eastern
https://iu.zoom.us/j/111989167

Notetaker: Juliet Hardesty

Attendees: jen youngRyan WickRyan JohnsonJuliet Hardesty

Agenda/Notes:

  • Demos/updates - Ryan Wick and sadie_roosa
    • Valkyrie/Figgy
      • https://wiki.duraspace.org/display/samvera/Data+Mapper+Working+Group+Retrospective

        https://github.com/samvera-labs/valkyrie/wiki/Supported-Data-Types

        https://github.com/pulibrary/figgy
        https://github.com/psu-libraries/cho

        Valkyrie as new middleware
        - metadata adapters: postgres, memory
        - storage adapters: fedora, disk, memory

        Store metadata in Fedora?
        Valkyrie README says no
        Data Mapper WG Retro says yes

        Assign predicates to properties?
        Data Mapper WG Retro says optional for Fedora, no for other backends

        Figgy metadata adapter is all postgres
        CHO metadata adapter is all postgres

        From README:
        attribute :authors, Valkyrie::Types::Array # Arrays are ordered

        https://github.com/pulibrary/figgy/blob/master/app/models/ephemera_box.rb
        attribute :member_ids, Valkyrie::Types::Array
        attribute :title, Valkyrie::Types::Set
        attribute :barcode, Valkyrie::Types::Set
        attribute :workflow_note, Valkyrie::Types::Array.member(WorkflowNote).optional

        https://github.com/pulibrary/figgy/blob/master/app/models/scanned_map.rb
        include Schema::Geo
        attribute :id, Valkyrie::Types::ID.optional
        attribute :member_ids, Valkyrie::Types::Array
        attribute :logical_structure, Valkyrie::Types::Array.member(Structure.optional).optional
        attribute :pending_uploads, Valkyrie::Types::Array.member(PendingUpload)
        attribute :workflow_note, Valkyrie::Types::Array.member(WorkflowNote).optional

        Valkyrie Shared Specs:
        https://github.com/samvera-labs/valkyrie/blob/master/lib/valkyrie/specs/shared_specs/persister.rb
        (shows current support for RDF and other data types, nesting, etc.)

      • Valkyrie is new middleware to talk to different backends so can have diff backends to talk to memory and storage/files
      • PostGres connection has metadata adapter - so Valkyrie supports set (unordered) and array (ordered) from PostGres; Figgy uses this in its code; workflowNote is an array, for example; scanned map with logical structure attribute that is array
        • so ordering of metadata fields works now if using PostGres
      • for Fedora as metadata adapter (not just storage adapter) - older docs from mapping working group say it's possible but current readme for Valkyrie doesnt include info on a metadata adapter for Fedora
      • Valkyrie code includes shared specs/tests to outline capabilities so any new adapter should pass all tests and this includes mixing types (array can contain text string or URI or language typing)
      • PostGres doesnt store data natively as RDF
      • assigning predicates to properties - says this is optional with Fedora and not supported with other backends (so you could have title in PostGres but not an associated property)
      • could export as RDF if you want
      • Hyrax 3 is the Valkyrization of Hyrax 
    • WGBH (from Sadie):
      • I was slated to show what WGBH is doing with our contributors, and so here's a graphic of our data model that shows Contributions as a child of an Asset. Our model is Asset-centric, where Assets don't have to belong to Series, but can. And were Assets don't have to have children (Instantiations or Contributions) but can. Let me know if you have any questions. I don't think this will weight very heavily on our recommendations to the Hyrax team, but I wanted to share since I said I would.
  • Report - https://docs.google.com/document/d/1bfCJsu7kTwjb2uu5D-TdKR_YFauMICkz4vnK59J7CZ0/edit?usp=sharing
    • Edits/additions
    • What do we recommend?
      • leaning towards ordered things as objects
      • Valkyrized solution seems most feasible
      • UCSD moving towards Hyrax
      • NU still using Fedora but might move towards Valkyrie since devs worked on sprints for it
      • For Hyrax 2 with Fedora, ordered things as objects won’t work as part of codebase
        • ActiveFedora does not deal with ordering
        • local implementation could use property as text list but code changes required and updating requires special update to text list property
      • For Hyrax 3, could work with database backend like PostGres but probably not Fedora (as we know it right now) 
  • Evaluation spreadsheet for reference: https://docs.google.com/spreadsheets/d/1J7-aGnSMnRQaV4MCmHW_Vr4gzEFn-S7v759XbYl-DUY/edit?usp=sharing
  • Criteria for ordered things - add this to report
    • be able to always get ordered information (via web app, console, export functionality)