rism-digital / muscat

🗂️ A Rails application for the inventory of handwritten and printed music scores
http://muscat-project.org
34 stars 16 forks source link

Works: Validation and format for 046 #1549

Open jenniferward opened 8 months ago

jenniferward commented 8 months ago

We have 046 in Works. Works has: $k, $l, $z

We have proposed the same field for Sources: https://github.com/rism-digital/muscat/issues/1151 https://www.loc.gov/marc/authority/ad046.html

Since Works is of a smaller scale, we could start thinking about format and validation.

Here are some of the kinds of dates from MWV:

Single year: 1842 Questionable year(s): 1838? | 1830er Jahre? Approximate dates: um 1825 oder später | um den 12. Mai 1820 | 1821, wohl August/September Inexact dates: Herbst 1820 | Anfang Juli 1820 Single date with year, month, day: 21. September 1832 Single date with year, month: Juni 1836 Terminus ante quem: bis 1827 | vor 1821 | bis ca. Mitte Mai 1845 | 10. September 1824 oder früher | zum 14. Juli 1833 Terminus post quem: nach 9. Juni 1836 | nach 1830 | nach Januar 1826 | Oktober 1830 oder später Date range: 1830-1844 | September 1835 bis 29. Oktober 1830 | zwischen 9. und 11. Mai 1820 | 16. Juni 1821 bis 18. August 1821 | 13./14. Juni 1830 Approximate date range: Ende Mai 1820/Anfang Juli 1820 | November/Dezember 1820 | Ende 1836 / 28. Februar 1837 | zweite Jahreshälfte 1819 bis spätestens Anfang 1820 | 1840er Jahre

How should we capture these? Generally I've been using $k and $l for year(s) and then the full date statement as in MWV in $z. https://muscat.rism.info/admin/works/32476 =046 ##$k1827$z1. November 1827 https://muscat.rism.info/admin/works/42453 =046 ##$k1819$l1820$zZweite Jahreshälfte 1819 bis spätestens Anfang 1820

ahankinson commented 8 months ago

ISO 8601 / EDTF should be the only acceptable form of dates, IMO.

lpugin commented 8 months ago

Weirdly enough, the MARC documentation reads

The date and time are recorded according to Representations of Dates and Times (ISO 8601) in the pattern yyyy, yyyy-mm, or yyyymmdd (4 for the year, 2 for the month, and 2 for the day) unless subfield $2 (Source of date) specifies another date scheme. 

But without -, that is not ISO 8601, is it?

ahankinson commented 8 months ago

https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch04s07.html#:~:text=ISO%208601%20allows%20hyphens%20to,%2DMMDD%20and%20YYYYMM%2DDD.&text=Calendar%20date%2C%20such%20as%202008,The%20hyphens%20are%20optional.

jenniferward commented 7 months ago

Linking to EDTF here for future reference: https://www.loc.gov/standards/datetime/

xhero commented 6 months ago

What should we do here?

lpugin commented 6 months ago

I would suggest to start validating $k with a regex matching yyyy or yyyy-mm or yyyy-mm-dd (all digits).

(I prefer it with hyphens, I think it makes it more readable and for that reason less error prone)

jenniferward commented 6 months ago

Maybe both $k and $l ? $k - Beginning or single date created (NR) $l - Ending date created (NR)