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

Getty ULAN (artist dates) 180 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 180 strings: nothing differed from the default. Review before use."
}

Vocabulary

KindWord or notationStringsFor example
Band wordsearly2 Scottish gentleman, born early 17th century Italian draughtsman, early 19th century
Band wordsmid2 French illuminator, active mid-15th century French illuminator act. mid 15th century
Hedgesca20 artist ca. 1400-1467 German painter, ca. 1440-after 1470 Italian illuminator, active ca. 1440-1460
Hedgesc1 Dutch artist, c.1610-p.1635
Hedgescirca1 British artist, circa 1710-1771
Century notationsword43 Italian artist, 15th century Dutch artist, 15th century German artist, 15th/16th century

Shapes

ShapeStringsFor exampleWhy it matters
Numeric dates0Day, 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.
Bracketed0Inferred dates in MARC style.
Seasons0Need a hemisphere and a winter policy.
Undated0The text says there is no date.
Open ends9 French painter, 1919- British artist, 1919- New Zealand artist, 1919- Before, after, present, a trailing dash.
Decades01950s 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.