Closed mark-dce closed 9 years ago
Blocked until #150 is completed
Unblocked. I believe this is all done except copyrightDate, dateValid and dateModified. DC.date is being used for mods:dateOther, so we can't use that for a keyDate. I don't believe there is any reason we need to persist the keyDate.
Agreed - we do not need to persist keyDate - I was trying to express that by saying
Ignore key date and use the following algorithm in #153 to determine sort and faceting dates.
The third example was meant to speak to the idea of "unknown" dates being mapped to DC.created with a timeSpan prefLabel. keyDate was thrown in specifically to show that it's being disregarded:
<mods:dateOther keyDate="yes">Unknown</mods:dateOther>
In order to provide sufficient flexibility to express exact and inexact dates, use the Europeana Data Model Timespan class. Use the 'beginning_is_qualified_by" and "ending_is_qualified_by" predicates to identify
Store the machine readable key date in extendedDate format in DC:date Store the EDM encoded date in the appropriate predicate as follows
RDF::DC.dateAcceptedRDF::DC.dateSubmittedIf the source MODS record has more than one node per date type (created, issued, accepted, copyrighted, submitted), duplicate the respective predicates and build multiple graph nodes.
If the source MODS record has a text node, map it to a skos:prefLabel element
If the source MODS has point="start" map to edm:begin, if the source MODS has a point="end" map to edm:end. If the source MODS does not specify a point, map the date to edm:begin and leave edm:end blank
If the source MODS record has a date qualifier(s), map the date qualifier(s) to cdm:P79F.beginning_is_qualified_by (begin) and cdm:P80F.end_is_qualified_by (end) - expected values are ['approximate', 'inferred', 'questionable']
Ignore key date and use the following algorithm in #153 to determine sort and faceting dates.
EXAMPLE MAPPINGS
EXAMPLE 1
maps to RDF
EXAMPLE 2
maps to RDF
EXAMPLE 3
maps to RDF
EXAMPLE 4
maps to RDF
REFERENCES: EDM Timespan (narrative): http://labs.europeana.eu/api/record/#edm-timespan EDM Timespan (definition): https://github.com/europeana/corelib/wiki/EDMObjectTemplatesProviders#edmTimespan EDM Timespan (example - search for edm:TimeSpan): http://pro.europeana.eu/files/Europeana_Professional/Share_your_data/Technical_requirements/EDM_Documentation/EDM_Mapping_Guidelines_v2.2.pdf Ruby RDF DC vocab: https://github.com/ruby-rdf/rdf/blob/develop/lib/rdf/vocab/dc.rb HYDRA RDF MODS vocab: https://github.com/projecthydra-labs/rdf-vocab/blob/master/lib/rdf-vocab/vocab/mods.rb