Linked Art in C#

Profile advisor

Paste a column of dates from a collection and the advisor says which conventions the data uses, before anything is parsed. Each string is still parsed on its own; the advisor only recommends the profile to parse it under, and writes that profile out for you to review and save. Nothing you paste is stored.

Up to 20,000 lines; strings over 500 characters are skipped.

Or try a corpus sample: yearrange (museum catalogues) timetwister (US archives) Getty ULAN (artist dates) EDTF specification examples PMC (Paul Mellon Centre) outputs

timetwister (US archives) 91 analysed · via the service

Recommendations

Suggested profile

Nothing in the data called for a change from the default profile.

{
  "inherits": "default",
  "name": "suggested",
  "description": "Suggested by the profile advisor from 91 strings: nothing differed from the default. Review before use."
}

Vocabulary

KindWord or notationStringsFor example
Band wordsmid2 mid 1770's ca. mid 19th century
Band wordsearly1 early 1770's
Band wordslate1 late 1770's
Hedgesca2 ca. 1776 ca. mid 19th century
Hedgesapproximately1 Approximately July 4, 1776
Century notationsword2 ca. mid 19th century 17th century
Other languageses1 agosto 4 1776
Other languagesfr1 août 4 1776
Other languagesit1 agosto 4 1776

Shapes

ShapeStringsFor exampleWhy it matters
Numeric dates6 1776-07-04/1789-03-01 1789-03-01/1776-07-04 7/4/1776 Day, month and year as numbers.
Day-first evidence0A first number over 12, so it can only be a day.
Month-first evidence0A second number over 12, so the first is the month.
Two-digit years0Need a window to become four-digit years.
Bracketed2 [1776] [July 4, 1776] Inferred dates in MARC style.
Seasons11 Winter 1776 win. 1776 1776 Spring Need a hemisphere and a winter policy.
Undated0The text says there is no date.
Open ends2 1776 - 17-- Before, after, present, a trailing dash.
Decades7 1770's - 1780s 1770's - 1787 1776 - 1780's 1950s and the like; band words apply to them too.
Period words0Dynasties, reigns and named periods need period tables.

The same advice from code

The advisor is a library call and an endpoint on the dates API; the response carries these counts, the examples, the recommendations, the suggested profile and a Markdown rendering.

POST https://dates.linkedart.net/v1/advise
Content-Type: text/plain

early 19th century
ca. 1850
7/4/1776
var report = ProfileAdvisor.Analyse(File.ReadLines("dates.txt"));
Console.WriteLine(report.ToMarkdown());
File.WriteAllText("profiles/mine.json", report.SuggestedProfileJson("mine").ToJsonString(ParseProfile.JsonOptions));

Or from the repository: dotnet run --project tools/Corpus -- advise dates.txt.