See Google Doc for latest version, including WGBH mappings: https://docs.google.com/spreadsheets/d/1MGCyBBHYRRBGm2kxloI5PbtkuVODWxZDioFY01zBj_g/edit
https://github.com/ruby-rdf/rdf-vocab/blob/develop/lib/rdf/vocab/dc.rb
https://github.com/ruby-rdf/rdf-vocab/blob/develop/lib/rdf/vocab/ebucore.rb
https://github.com/ruby-rdf/rdf-vocab/blob/develop/lib/rdf/vocab/premis.rb
https://github.com/ruby-rdf/rdf-vocab/blob/develop/lib/rdf/vocab/prov.rb
https://github.com/ruby-rdf/rdf-vocab/blob/develop/lib/rdf/vocab/skos.rb
Model | Location | XML Heading | HD2 Heading | Multiple | Predicate in use | Suggested predicate | Indexed As |
---|---|---|---|---|---|---|---|
Work, FileSet, Physical Object | MODS | xpath('/mods/titleInfo/title').text Use Work title as fallback | Title | RDF::Vocab::EBUCore.title overrides CC:RequiredMetadata? | :stored_searchable, :sortable, :facetable | ||
FileSet | Barcode | Date.parse(xpath('/IU/Carrier/Parts/Part/Ingest/Date').text) | Date Generated | N | RDF::Vocab::EBUCore.dateDigitised | :stored_searchable, :sortable, :facetable | |
FileSet | FFPROBE | xpath('//ffprobe/format/@format_name').text | File Format | RDF::Vocab::EBUCore.hasFormat | :stored_searchable, :facetable | ||
FileSet | FFPROBE | xpath('//ffprobe/format/@format_long_name').text | File Format Long Name | RDF::Vocab::EBUCore.hasFileFormat | :stored_searchable, :facetable | ||
FileSet | FFPROBE | xpath('//ffprobe/streams/stream/@codec_type').collect { |i| i.text } | Codec Type | RDF::Vocab::EBUCore.hasMedium | :stored_searchable, :facetable | ||
FileSet | FFPROBE | xpath('//ffprobe/streams/stream/@codec_name').collect { |i| i.text } | Codec Name | RDF::Vocab::EBUCore.hasCodec | :stored_searchable, :facetable | ||
FileSet | FFPROBE | xpath('//ffprobe/streams/stream/@codec_long_name').collect { |i| i.text } | Codec Long Name | RDF::Vocab::EBUCore.codecName | :stored_searchable, :facetable | ||
FileSet | FFPROBE | xpath('//ffprobe/format/@duration').text.to_i | Duration | N | RDF::Vocab::EBUCore.duration | :stored_searchable, :sortable, :facetable | |
FileSet | FFPROBE | xpath('//ffprobe/format/@bit_rate').text.to_i | Bit Rate | N | RDF::Vocab::EBUCore.bitRate | :stored_searchable, :sortable, :facetable | |
FileSet | FFPROBE | xpath('//ffprobe/format/@filename') | File Name | RDF::Vocab::EBUCore.filename | ebucore:filename | ? | |
FileSet | FFPROBE | xpath('//ffprobe/format/@size').text.to_i | File Size | N | RDF::Vocab::EBUCore.fileSize | ebucore:fileSize | ? |
FileSet, Work, Physical Object | POD | xpath('//details/mdpi_barcode').text | Identifier | RDF::Vocab::EBUCore.identifier | :symbol | ||
FileSet | POD | xpath('//assignment/unit').text | Unit of Origin | RDF::Vocab::EBUCore.description | dcterms:provenance (DPLA MAP) | :stored_searchable, :facetable | |
FileSet | FFPROBE | tag key="comment" | Unit of Origin Statement | What is the purpose of storing this info? Unit of Origin is already stored elsewhere. If this is for search-only purposes and not facet, I would store it as ebucore:alternativeTitle | |||
FileSet | FFPROBE | tag key="description" | Alternative Unit of Origin Statement | ebucore:alternativeTitle (same as Unit of Origin Statement) | |||
Work | POD | xpath('//assignment/unit').text | Unit of Origin | RDF::Vocab::EBUCore.isOwnedBy | dcterms:provenance | :stored_searchable, :facetable | |
Work | Barcode XML | xpath('/IU/Carrier/Parts/DigitizingEntity').text | Digitized By | RDF::Vocab::EBUCore.hasCreator | :stored_searchable, :facetable | ||
Work | Barcode XML | xpath('/IU/Carrier/Parts/Part/Ingest/Created_by').collect { |i| i.text } | Digitized By Staff ID | RDF::Vocab::EBUCore.hasMetadataAttributor | :stored_searchable, :facetable | ||
Work | Barcode XML | DateTime.parse(xpath('/IU/Carrier/Parts/Part/Ingest/Date').text) | Date Digitized | RDF::Vocab::EBUCore.dateDigitised | :stored_searchable, :sortable, :facetable | ||
Work | Barcode XML | [noko.xpath('/IU/Carrier/Parts/Part/Ingest/Extraction_workstation/Manufacturer').text, | Extraction Workstation Information | RDF::Vocab::EBUCore.textualAnnotation | skos:note (prepend "Extraction workstation: ") | :stored_searchable, :facetable | |
Work | Barcode XML | Tape_playback_calibration_used | Playback Calibration | skos:note (prepend "Playback calibration: ") | |||
Work | Barcode XML | Part Side/Ingest/Comments or xpath('//Comments').text | Digitization Comments | RDF::Vocab::EBUCore.comments | :stored_searchable | ||
Work | Barcode XML | xpath('/IU/Carrier/Identifier').text | Original Media Identifier | RDF::Vocab::EBUCore.hasSource | :symbol | ||
Work | POD | xpath('//technical_metadata/format').text | Original Format | RDF::Vocab::EBUCore.hasFormat | :stored_searchable, :facetable | ||
Work | POD | xpath('//technical_metadata/recording_standard').text | Recording Standard | RDF::Vocab::EBUCore.hasStandard | :stored_searchable, :facetable | ||
Work | POD | tape_stock_brand | Tape Stock Brand | ebucore:Medium | |||
Work | POD | xpath('//technical_metadata/image_format').text | Image Format | RDF::Vocab::EBUCore.aspectRatio | :stored_searchable, :facetable | ||
Work | Barcode XML | xpath('/IU/Carrier/Definition').text | Definition | RDF::Vocab::EBUCore.hasVideoFormat | :stored_searchable, :facetable | ||
Work | Barcode XML | PhysicalCondition/Damage | Original Media Damage | skos:historyNote (maybe prepend "Original Media Damage: ") | |||
Work | Barcode XML | PhysicalCondition/PreservationProblem | Original Media Preservation Problem |
| skos:scopeNote (maybe prepend "Original Media Preservation Problem: ") | ||
Work | Barcode XML | QCStatus | QC Status | skos:changeNote (maybe prepend "QC Status: ") | |||
Work | Barcode XML | ManualCheck | Manual QC Check | skos:note (prepend "Manual QC Check: ") | |||
Work | Barcode XML | Encoder_manufacturer or Encoder/Manufacturer | Encoder Manufacturer | Combine Encoder Manufacturer, Model, and Serial Number into single property value - only used with TBC info; premis:hasHardwareOtherInformation | |||
Work | Barcode XML | Encoder_model or Encoder/Model | Encoder Model | --------------------- | |||
Work | Barcode XML | Encoder_serial_number or Encoder/SerialNumber | Encoder Serial Number | --------------------- | |||
Work | Barcode XML | AdDevices/Manufacturer or AD_manufacturer | AD Manufacturer | Combine AD Manufacturer, Model, and Serial Number into single property value - used for audio only; needs better heading without acronym; use premis:hasHardwareName | |||
Work | Barcode XML | AdDevices/Model or AD_model | AD Model | --------------------- | |||
Work | Barcode XML | AdDevices/SerialNumber or AD_serial_number | AD Serial Number | --------------------- | |||
Work | Barcode XML | Speed_used | Speed Used | ebucore:playbackSpeed | |||
Work | Barcode XML | TbcDevices/Manufacturer | TBC Manufacturer | Combine TBC Manufacturer, Model, and Serial Number in single property value - used for video only, always accompanied by Encoder info; needs better heading without acronym; use premis:hasHardwareName | |||
Work | Barcode XML | TbcDevices/Model | TBC Model | --------------------- | |||
Work | Barcode XML | TbcDevices/SerialNumber | TBC Serial Number | --------------------- | |||
Physical Object | Barcode XML | Thickness | Tape Thickness | ||||
Work | ? | totalPartNumber | Total Parts | RDF::Vocab::EBUCore.partTotalNumber | |||
FileSet | ? | partNumber | Part | RDF::Vocab::EBUCore.partNumber | |||
Work | |||||||
Data points that might need to be added
- Thickness (as in tape thickness) from Barcode XML
- Preamp equipment description from Barcode XML (saw this accompanying AD equipment so audio-only?)
- Work - ebucore:partTotalNumber (derived from file names in FileSets)
- FileSet - ebucore:partNumber (derived from file names in FileSets)
- AD, TBC, Encoder, Extraction, and Preamp info is actually tied to FileSet instead of Work (associated with each <Part> in Barcode XML) - this descriptive info and anything else tied to <Part> in Barcode XML should be moved to FileSet descriptive info and not kept at Work level
- February 13, 2017 meeting with Brian Wheeler - properties being added for IU side and issues to be considered
- Work
- group identifier -> skos:note “Group ID: [number]/[part]”
- catalog key -> http://id.loc.gov/vocabulary/identifiers/local “[catalog key number]”
- this can dynamically be turned into a link in the interface to connect either to Z39.50 call or IUCAT record
- encore:identifier is changing to have a value that is -> MDPI_barcode/date/timestamp (not a PURL)
- FileSet
- sending properties on File
- adding mimetype
- some things have multiple values and some things only have values when IU sends them and nothing comes from Memnon
- need way to track what has been ingested into preservation repo