Linked Art in C#

Date samples

291 dates the parser reads, drawn from the corpus it is tested against, so this page cannot drift from the parser. The authored sets are shown in full, one theme at a time; the imported collections contribute one example of each shape of reading. Click any input to see its TimeSpan, timeline and C# in the playground.

BCE and deep time 20

Era words, astronomical year numbering (1 BCE = 0000, 500 BCE = -0499), BCE centuries (always strict: 5th century BCE = 500-401 BCE), ranges across the era boundary, and geological time counted back from 1950 (BP) or the present (taken as 2026 in tests). Expectations checked by hand under the default profile.

As writtenCanonicalYearsProfile
500 BC -0499 500 BCE single
500 BCE -0499 500 BCE single
500 B.C. -0499 500 BCE single
1 BC 0000 1 BCE single
AD 79 0079 79 single
79 CE 0079 79 single
c. 2500 BCE -2499~ 2500 BCE single
5th century BC century -5 500 BCE to 401 BCE single
1st century BCE century -1 100 BCE to 1 BCE single
late 5th century BC late century -5 433 BCE to 401 BCE single
2nd millennium BC millennium -2 2000 BCE to 1001 BCE single
480-479 BC -0479/-0478 480 BCE to 479 BCE single
27 BC - AD 14 -0026/0014 27 BCE to 14 single
ca. 450 - 400 BC -0449~/-0399 450 BCE to 400 BCE single
4.5 billion years ago 4.5 Ga ago 4550 Ma ago to 4450 Ma ago single
66 million years ago 66 Ma ago 66.5 Ma ago to 65.5 Ma ago single
10,000 BP 10000 years BP 8051 BCE single
c. 10 ka BP 10 ka BP~ 8551 BCE to 7551 BCE single
Late Pleistocene period:periodo-late-pleistocene 128 ka ago to 9051 BCE single
0 AD 0000 1 BCE single

Canonical expressions 18

Inputs already in canonical form (docs/canonical-expression.md), so they exercise the canonical strategy and the realiser end to end under the default profile. These are verified: they gate CI today, before the free-text grammar exists.

As writtenCanonicalYearsProfile
1984 1984 1984
1850~ 1850~ 1850
late 195X late 195X 1957 to 1959
century 19 century 19 1800 to 1899
q2 century 14 q2 century 14 1325 to 1349
century -5 century -5 500 BCE to 401 BCE
-0499 -0499 500 BCE
before 1850 before 1850 .. to 1849
1971/.. 1971/.. 1971 to ..
[1904,1905] [1904,1905] 1904 to 1905
1606/1669 1606/1669 1606 to 1669 pair
born 1850/died 1920 born 1850/died 1920 1850 to 1920
fl 1480/1510 fl 1480/1510 1480 to 1510
1945-24 1945-24 1945 to 1946
4.5 Ga ago 4.5 Ga ago 4550 Ma ago to 4450 Ma ago
undated undated
period:edo period:edo 1603 to 1868
1850 1850 1850 pair

Centuries, decades and bands 30

Ordinal centuries in several notations (14th century, C14, XIVth c., 1300s), the popular convention (19th century = 1800-1899), bands (early 0-33, mid 34-66, late 67-99 of a century; early 0-3, mid 3-6, late 7-9 of a decade; halves and quarters exact; beginning/end = first/last decade of a century), shared suffixes ('early - mid 13th century') and hedged bands. Expectations checked by hand under the default profile.

As writtenCanonicalYearsProfile
19th century century 19 1800 to 1899 single
nineteenth century century 19 1800 to 1899 single
C19 century 19 1800 to 1899 single
19th c. century 19 1800 to 1899 single
XIXth century century 19 1800 to 1899 single
s. XIV century 14 1300 to 1399 single
1800s 18XX 1800 to 1899 single
1st century century 1 1 BCE to 99 single
21st century century 21 2000 to 2099 single
early 14th century early century 14 1300 to 1333 single
mid-14th century mid century 14 1334 to 1366 single
late 14th century late century 14 1367 to 1399 single
first half of the 14th century h1 century 14 1300 to 1349 single
2nd half 14th century h2 century 14 1350 to 1399 single
second quarter of the 14th century q2 century 14 1325 to 1349 single
last quarter of the 19th century q4 century 19 1875 to 1899 single
beginning of the 19th century beginning century 19 1800 to 1809 single
end of the 19th century end century 19 1890 to 1899 single
turn of the century unparsed single
early - mid 13th century early century 13/mid century 13 1200 to 1266 single
late 13th - early 14th century late century 13/early century 14 1267 to 1333 single
c. late 15th century late century 15~ 1467 to 1499 single
1950s 195X 1950 to 1959 single
the 1950's 195X 1950 to 1959 single
early 1950s early 195X 1950 to 1953 single
mid-1950s mid 195X 1953 to 1956 single
late 1950s late 195X 1957 to 1959 single
1900-10s 1900/191X 1900 to 1919 single
18th or 19th century [century 18,century 19] 1700 to 1899 single
17th-18th century century 17/century 18 1600 to 1799 single

Encoding damage and machine-shaped values 8

Strings whose date is sound but whose text was damaged on the way: mojibake apostrophes and dashes (a UTF-8 character read in another encoding, as in yearrange's '1750âs'), and date-column values written as eight digits with zeros for an unknown month or day ('18690000'). The normaliser repairs these before the grammar runs and says so in a note. Written 2026-10-17 after the first Claude interpreter run over the disputed yearrange entries read them the way a cataloguer would; expectations checked by hand under the default profile.

As writtenCanonicalYearsProfile
late 1750âs - early 1760âs late 175X/early 176X 1757 to 1763 single
1730âs early early 173X 1730 to 1733 single
c. 1750’s 175X~ 1750 to 1759 single
1750–1760 1750/1760 1750 to 1760 single
18690000 1869 1869 single
18690500 1869-05 1869 single
18690512 1869-05-12 1869 single
18691300 unparsed single

Lifecycles and floruit 24

Birth-death pairs in the forms found in authority files and catalogue headings ('1606-1669', 'b. 1850', 'd. 1920', '1606?-1669', '(1606-1669)'), floruit ('fl. 1480-1510', 'active 1920s'), and the pair/auto intents. Pair intent splits an interval into Begin (birth) and End (death); a single marked date gives one half; an unmarked single date is Partial. Expectations checked by hand.

As writtenCanonicalYearsProfile
1606-1669 1606/1669 1606 to 1669 pair
(1606-1669) 1606/1669 1606 to 1669 pair
1606?-1669 1606?/1669 1606 to 1669 pair
c. 1606-1669 1606~/1669 1606 to 1669 pair
1606- 1606/.. 1606 to .. pair
b. 1850 born 1850 1850 to .. pair
born 1850 born 1850 1850 to .. pair
d. 1920 died 1920 .. to 1920 pair
died c. 1920 died 1920~ .. to 1920 pair
† 1920 died 1920 .. to 1920 pair
* 1850 † 1920 born 1850/died 1920 1850 to 1920 pair
bapt. 1606 baptised 1606 1606 to .. pair
bur. 1669 buried 1669 .. to 1669 pair
fl. 1480-1510 fl 1480/1510 1480 to 1510 pair
flourished 1480 fl 1480 1480 pair
active 1920s fl 192X 1920 to 1929 pair
active c. 1500-1530 fl 1500~/1530 1500 to 1530 pair
fl. C14 fl century 14 1300 to 1399 pair
1850 1850 1850 pair
1606-1669 1606/1669 1606 to 1669 single
1606-1669 1606/1669 1606 to 1669
b. 1850 born 1850 1850 to ..
1669-1606 1669/1606 1606 to 1669 pair
1850-1920 1850/1920 1850 to 1920 pair

Records that date several parts separately 7

Numbered items, sheets, titled works and components of one object, each with its own date, separated by semicolons, sentences or enumerators like '(2)'. No single span is the answer, so the parser reads a set: the TimeSpan is the hull and each part is an alternative, flagged MultiPart. Edition and reproduction sentences are not parts and keep their own rule (the edition dates the object). Written 2026-10-17 after the first Claude interpreter run read the disputed yearrange lists this way; expectations checked by hand under the default profile (decade bands early 0-3, late 7-9).

As writtenCanonicalYearsProfile
(1) 1980, (2) 1977, (3) ca. 1970s. [1980,1977,197X~] 1970 to 1980 single
(1) and (2) ca. 1970s, (3) 1982. [197X~,1982] 1970 to 1982 single
Sheet 1; 1964. Sheet 2 and 3; ca. 1930s. [1964,193X~] 1930 to 1964 single
"Flower" in 1972. "Lake in Forest" in 1969. "Volcano Lake" ca. 1960s. [1972,1969,196X~] 1960 to 1972 single
Virgin, end of 5th century; Annunciation, 533-535; Saints, 705. [end century 5,0533/0535,0705] 490 to 705 single
1932. Printed 1963. 1963 1963 single
1850; 1850 1850 1850 single

French, German, Italian, Spanish, Dutch and Latin forms 44

Common cataloguing idioms in six languages, evaluated under the multilingual profile (all lexicons active, English first on conflicts). Expectations checked by hand under the default realisation policies; the lexicons themselves were written by the assistant from general knowledge and await a native cataloguer's review (see each lexicon's _provenance).

As writtenCanonicalYearsProfile
XIVe siècle century 14 1300 to 1399 multilingual · single
vers 1850 1850~ 1850 multilingual · single
fin du XIXe siècle end century 19 1890 to 1899 multilingual · single
seconde moitié du XVIIe siècle h2 century 17 1650 to 1699 multilingual · single
entre 1870 et 1890 1870/1890 1870 to 1890 multilingual · single
12 mars 1850 1850-03-12 1850 multilingual · single
vers 500 av. J.-C. -0499~ 500 BCE multilingual · single
né en 1606 born 1606 1606 to .. multilingual · pair
s.d. undated multilingual · single
début du XXe siècle beginning century 20 1900 to 1909 multilingual · single
um 1850 1850~ 1850 multilingual · single
19. Jahrhundert century 19 1800 to 1899 multilingual · single
Anfang des 19. Jahrhunderts beginning century 19 1800 to 1809 multilingual · single
2. Hälfte 18. Jh. h2 century 18 1750 to 1799 multilingual · single
zwischen 1870 und 1890 1870/1890 1870 to 1890 multilingual · single
12. März 1850 1850-03-12 1850 multilingual · single
500 v. Chr. -0499 500 BCE multilingual · single
geb. 1606 born 1606 1606 to .. multilingual · pair
o.J. undated multilingual · single
spätes 16. Jahrhundert late century 16 1567 to 1599 multilingual · single
secolo XIV century 14 1300 to 1399 multilingual · single
sec. XIV century 14 1300 to 1399 multilingual · single
metà del XVI secolo mid century 16 1534 to 1566 multilingual · single
fine del XIX secolo end century 19 1890 to 1899 multilingual · single
tra il 1870 e il 1890 1870/1890 1870 to 1890 multilingual · single
circa 1850 1850~ 1850 multilingual · single
siglo XVI century 16 1500 to 1599 multilingual · single
s. XVI century 16 1500 to 1599 multilingual · single
hacia 1850 1850~ 1850 multilingual · single
finales del siglo XIX end century 19 1890 to 1899 multilingual · single
primera mitad del siglo XVII h1 century 17 1600 to 1649 multilingual · single
12 de marzo de 1850 1850-03-12 1850 multilingual · single
19e eeuw century 19 1800 to 1899 multilingual · single
eind 19e eeuw end century 19 1890 to 1899 multilingual · single
omstreeks 1850 1850~ 1850 multilingual · single
eerste helft 17e eeuw h1 century 17 1600 to 1649 multilingual · single
12 maart 1850 1850-03-12 1850 multilingual · single
werkzaam 1480-1510 fl 1480/1510 1480 to 1510 multilingual · single
saec. XIV century 14 1300 to 1399 multilingual · single
saec. XIV ex. end century 14 1390 to 1399 multilingual · single
s. xiv med. mid century 14 1334 to 1366 multilingual · single
anno 1485 1485 1485 multilingual · single
obiit 1669 died 1669 .. to 1669 multilingual · pair
sine anno undated multilingual · single

Named periods and regnal years 30

Period names resolved by the built-in tables (Japanese eras and periods, Chinese dynasties and reign periods, British periods and reigns, conventional archaeological periods), regnal years, and periods combined with bands, hedges and ranges. Expectations checked by hand against the tables under the default profile.

As writtenCanonicalYearsProfile
Edo period period:edo 1603 to 1868 single
Edo period:edo 1603 to 1868 single
江戸時代 period:edo 1603 to 1868 single
early Edo period early period:edo 1603 to 1692 single
Meiji period period:meiji 1868 to 1912 single
Meiji 27 period:meiji-27 1894 single
Meiji 27 (1894) period:meiji-27 1894 single
Shōwa 45 period:showa-45 1970 single
Heisei period:heisei 1989 to 2019 single
Reiwa period:reiwa 2019 to .. single
Kangxi period period:kangxi 1662 to 1722 single
Kangxi 12 period:kangxi-12 1673 single
Qianlong 60th year period:qianlong-60 1795 single
Ming dynasty period:ming 1368 to 1644 single
late Ming late period:ming 1553 to 1644 single
Ming - Qing dynasty period:ming/period:qing 1368 to 1912 single
Tang dynasty period:tang 618 to 907 single
Western Zhou period:western-zhou 1046 BCE to 771 BCE single
Victorian period:victorian 1837 to 1901 single
late Victorian late period:victorian 1882 to 1901 single
Regency period period:regency 1811 to 1820 single
George III period:george-iii 1760 to 1820 single
c. Georgian period:georgian~ 1714 to 1837 single
Roman Britain period:roman-britain 43 to 410 single
medieval period:medieval 1066 to 1485 single
Second World War period:second-world-war 1939 to 1945 single
Baroque unparsed single
Victoria 10 period:victoria 1837 to 1901 single
period:edo period:edo 1603 to 1868 single
Edo period, 18th century century 18 1700 to 1799 single

Open ends, relations, hedges and sets 36

Open-ended ranges, before/after/by/until/since/not before/not after, circa and question marks, 'or' sets, inverted ranges and undated markers. Default profile: an open bound is omitted ('before X' gives only end_of_the_end, ending a second before X; 'by X' includes X), hedges are flags only. Expectations checked by hand.

As writtenCanonicalYearsProfile
before 1850 before 1850 .. to 1849 single
after 1850 after 1850 1851 to .. single
by 1850 by 1850 .. to 1850 single
until 1850 until 1850 .. to 1850 single
since 1850 not-before 1850 1850 to .. single
not before 1850 not-before 1850 1850 to .. single
not after 1850 not-after 1850 .. to 1850 single
ante 1850 before 1850 .. to 1849 single
post-1945 after 1945 1946 to .. single
pre-war unparsed single
1971- 1971/.. 1971 to .. single
-1850 ../1850 .. to 1850 single
1971 - present 1971/.. 1971 to .. single
1971 onwards 1971/.. 1971 to .. single
between 1870 and 1890 1870/1890 1870 to 1890 single
1870 to 1890 1870/1890 1870 to 1890 single
1870/1890 1870/1890 1870 to 1890 single
1870–1890 1870/1890 1870 to 1890 single
1998-1902 1998/1902 1902 to 1998 single
1904 or 1905 [1904,1905] 1904 to 1905 single
1904 or 1905 or 1906 [1904,1905,1906] 1904 to 1906 single
c. 1850 1850~ 1850 single
circa 1850 1850~ 1850 single
about 1850 1850~ 1850 single
approximately 1850 1850~ 1850 single
1850? 1850? 1850 single
probably 1850 1850? 1850 single
c. 1850? 1850% 1850 single
n.d. undated single
undated undated single
s.d. undated single
no date undated single
unparsed single
? unparsed single
Winter 1945 1945-24 1945 to 1946 single
Spring 1890 1890-21 1890 single

alexduryee/timetwister spec 5

One example of each shape of reading among the 8 verified entries from this collection.

As writtenCanonicalYearsProfile
1776, 1789, 1812 1776/1812 1776 to 1812 archive-us · single
July 1776 - August 1789, 1812 - 1820, 1900 1776-07/1900 1776 to 1900 archive-us · single
4 & 5 july 1776 1776-07-04/1776-07-05 1776 archive-us · single
july and august 1776 1776-07/1776-08 1776 archive-us · single
ca. mid 19th century mid century 19~ 1834 to 1866 archive-us · single

jeresig/node-yearrange test data 40

One example of each shape of reading among the 351 verified entries from this collection.

As writtenCanonicalYearsProfile
after 1926 after 1926 1927 to .. catalogue-quarters · single
1936 or earlier. not-after 1936 .. to 1936 catalogue-quarters · single
19thC(late) late century 19 1875 to 1899 catalogue-quarters · single
20thC(early) early century 20 1900 to 1924 catalogue-quarters · single
Japanese, Edo period, 19th century century 19/period:edo 1800 to 1868 catalogue-quarters · single
1847 (1852) 1847/1852 1847 to 1852 catalogue-quarters · single
19thC(mid) mid century 19 1840 to 1859 catalogue-quarters · single
Japanese, Edo period–Meiji era period:edo/period:meiji 1603 to 1912 catalogue-quarters · single
Japanese, Meiji era, beginning of 20th century beginning century 20/period:meiji 1900 to 1912 catalogue-quarters · single
Originally in 1837-38, this is a re-carved edition in ca. 1940-50. 1940~/1950~ 1940 to 1950 catalogue-quarters · single
Originally in 1856-58, this is probably in mid 20th C. mid century 20? 1940 to 1959 catalogue-quarters · single
Originally in late 1830s, this edition ca. early 20th C. early century 20~ 1900 to 1924 catalogue-quarters · single
1855 (Meiji edition) period:meiji 1868 to 1912 catalogue-quarters · single
Ca. 1936 or earlier. not-after 1936~ .. to 1936 catalogue-quarters · single
Japanese, Meiji era, late 19th to early 20th century late century 19/period:meiji 1875 to 1912 catalogue-quarters · single
Pre 1950. before 1950 .. to 1949 catalogue-quarters · single
18690000 1869 1869 catalogue-quarters · single
Originally ca. 1833, this is a re-carved edition probably in late 20th C. late century 20? 1975 to 1999 catalogue-quarters · single
The series was published originally in 1829. This edition was made probably in early Meiji period. early period:meiji? 1868 to 1880 catalogue-quarters · single
20 Century reproduction of 1829-33 print century 20 1900 to 1999 catalogue-quarters · single
ca. 19–20th century century 19~/century 20 1800 to 1999 catalogue-quarters · single
Original date was unknown but ca. Bunka era (1804-18), this is a re-carved edition in ca. 1900. 1804/1900~ 1804 to 1900 catalogue-quarters · single
Originally 1832-33, this was re-carved in ca. 1950s. 195X~ 1950 to 1959 catalogue-quarters · single
1806 or early 1801-02 [1806,early 1801/1802] 1801 to 1806 catalogue-quarters · single
Meiji/early 20th century period:meiji/early century 20 1868 to 1924 catalogue-quarters · single
Late Edo - Meiji period. late period:edo/period:meiji 1802 to 1912 catalogue-quarters · single
Japanese, Meiji era, 20th century century 20/period:meiji 1900 to 1912 catalogue-quarters · single
"lamp" made in 1956. Others ca. 1970s. [1956,197X~] 1956 to 1979 catalogue-quarters · single
December 1743 or January 1744 [1743-12,1744-01] 1743 to 1744 catalogue-quarters · single
Second half of the 1850s. h2 185X 1855 to 1859 catalogue-quarters · single
Originally in 1797. This edition was probably in Meiji-Taisho period. period:meiji?/period:taisho 1868 to 1926 catalogue-quarters · single
Late 1830 - 1840. late 183X/1840 1837 to 1840 catalogue-quarters · single
1300 s - 1400 s c. 13XX/14XX~ 1300 to 1499 catalogue-quarters · single
winter 1883 1883-24 1883 to 1884 catalogue-quarters · single
1950's (early printing) 195X 1950 to 1959 catalogue-quarters · single
Late Meiji Period late period:meiji 1899 to 1912 catalogue-quarters · single
Meiji/Taisho Period period:meiji/period:taisho 1868 to 1926 catalogue-quarters · single
Late Meiji to Taisho Period late period:meiji/period:taisho 1899 to 1926 catalogue-quarters · single
Originally ca. 1834. This edition was made probably in 1930s. 193X? 1930 to 1939 catalogue-quarters · single
9th–10th century century 9/century 10 800 to 999 catalogue-quarters · single

Paul Mellon Centre pipeline outputs (pmc-2 branch) 9

One example of each shape of reading among the 91 verified entries from this collection.

As writtenCanonicalYearsProfile
2019 2019 2019 single
c2005 2005~ 2005 single
2000-2005 2000/2005 2000 to 2005 single
[c 1960s-c 1970s] 196X~/197X~ 1960 to 1979 single
[c 1940s-1953] 194X~/1953 1940 to 1953 single
[1950s-2000s] 195X/200X 1950 to 2009 single
Apr-May 1903 1903-04/1903-05 1903 single
8 May 1944-19 Aug 1946 1944-05-08/1946-08-19 1944 to 1946 single
1 August 1876-[c 2016] 1876-08-01/2016~ 1876 to 2016 single

py_datetime prototype tests 20

One example of each shape of reading among the 37 verified entries from this collection.

As writtenCanonicalYearsProfile
1920s-1950s 192X/195X 1920 to 1959 library · single
1971 1971 1971 library · single
[17_] 17XX 1700 to 1799 library · single
1948 to early 1950's 1948/early 195X 1948 to 1954 library · single
1945-53 1945/1953 1945 to 1953 library · single
late 13th century - early 14th century late century 13/early century 14 1250 to 1349 library · single
early 15th century early century 15 1400 to 1449 library · single
c1543 1543~ 1543 library · single
[late 12th century] late century 12 1150 to 1199 library · single
[late 14th century] - [mid 15th century] late century 14/mid century 15 1350 to 1474 library · single
1950s 195X 1950 to 1959 library · single
early - mid 13th century early century 13/mid century 13 1200 to 1274 library · single
mid - late 13th century mid century 13/late century 13 1225 to 1299 library · single
mid 1920s - late 1920s mid 192X/late 192X 1922 to 1929 library · single
13/11/08 1908-11-13 1908 library · single
c.1878-79 1878~/1879~ 1878 to 1879 library · single
c.late 1870s - 1920s late 187X~/192X 1875 to 1929 library · single
(1989?) 1989? 1989 library · single
July 2010 2010-07 2010 library · single
1898 (original drawing by Lethaby) c.1900 (traced by John Brandon-Jones) 1898/1900~ 1898 to 1900 library · single

Every row is a verified corpus entry that passes under the current parser (0.2.0). Something it reads wrongly? Open it in the playground and use the trainer, or file an issue with the input and what it should mean.