61
Cultural Heritage Dates Understanding the provenance of an artwork. David Newbury @workergnome

Cultural Heritage Dates in Ruby

Embed Size (px)

Citation preview

Page 1: Cultural Heritage Dates in Ruby

Cultural Heritage DatesUnderstanding the provenance of an artwork.

David Newbury@workergnome

Page 2: Cultural Heritage Dates in Ruby

What is Art Tracks?

Art Tracks is a research projectat the Carnegie Museum of Art.

Page 3: Cultural Heritage Dates in Ruby

What is Art Tracks?

Art Tracks is a research projectat the Carnegie Museum of Art.

We're digitizing the history of ownership of art.

Page 4: Cultural Heritage Dates in Ruby

Oldest item

Vase

MESOPOTAMIAN, SUSA(C. 3000 BCE-2000 BCE)painted earthenware

Walter Read Hovey Collection

Page 5: Cultural Heritage Dates in Ruby

Newest item

My Heart Is Not Here My Heart'sin The Highlands Chasing The Deers

Rokni Haerizadeh (2013) gesso, ink, and watercolor on printed paper

The Henry L. Hillman Fund

Page 6: Cultural Heritage Dates in Ruby

Museums are full of art.Art is culture.

Art is also stuff.

Page 7: Cultural Heritage Dates in Ruby

Stuff has a history.

— Created by an artist

— Sold to collectors

— Given to children

— Sold at auctions

Eventually, it ends up at a museum.

Page 8: Cultural Heritage Dates in Ruby

The record of this is called

Provenance.

Page 9: Cultural Heritage Dates in Ruby

Provenance is a chain of ownership.

Every time a painting changes hands,it's a new link in that chain.

Page 10: Cultural Heritage Dates in Ruby

Water Lilies (Nymphéas)

Claude Oscar Monet [1840-1926]; Estate of Claude Oscar Monet; Michel Monet, son of the artist, Sorel Moussel, Dept. Eure et Loire, 1926 until 1950; Walter P. Chrysler, Jr. [1908-1988], New York, NY, 1950 until 1962; purchased by Museum, April 1962.

Page 11: Cultural Heritage Dates in Ruby

What Data?

Page 12: Cultural Heritage Dates in Ruby

The Person

NameBirthDeathLocation

Portrait of Isabella de' Cosimo I de Medici

C. 1570-1574Alessandro Allorioil on canvas (transferred from panel)

Gift of Mrs. Paul B. Ernst

Page 13: Cultural Heritage Dates in Ruby

The Transfer

Acquisition MethodDirect Transfer

Auction

Harry Shokler1942silkscreen on paper

Leisser Art Fund

Page 14: Cultural Heritage Dates in Ruby

Metadata

Stock numbersFootnotesPrimary ownership

Footed bowl

C. 1925OTTO LINDIG (GERMAN, 1895–1966)earthenware

Gift of Barry Friedman, Ltd.

Page 15: Cultural Heritage Dates in Ruby

Dates

AcquisitionDeacquisition

Persimmon (Kaki)

MAKI HAKU (JAPANESE, 1924–2000)woodcut with embossing on paper

Bequest of Dr. James B. Austin

Page 16: Cultural Heritage Dates in Ruby

Dates are not a thing

A date is a string representationof a particular moment of time.

...At a particular location.

...On earth.

Page 17: Cultural Heritage Dates in Ruby

Easy Date Problems:

12/4/2014: December 4th or April 12th?

Depends on your national standard. Don't do this.

ISO 8601 is what you want.

2014-12-04T00:00:00

Page 18: Cultural Heritage Dates in Ruby

Medium Date Problems:

2014-12-04T00:00:00:December 4th or December 3rd?

Depends on your location. Use UTC.

Time zones matter.

2014-12-04T00:00:00Z

Page 19: Cultural Heritage Dates in Ruby

Hard Date Problems:

October 6th, 1582

Exists in England. Doesn't exist in Italy.

Date.new(1582,10,5) # ArgumentError: invalid date

Date.new(1582,10,14,Date::ENGLAND) # <Date: 1582-10-14 ((2299170j,0s,0n),+0s,2361222j)>

fantastic trolling opportunity here for tests.

Page 20: Cultural Heritage Dates in Ruby

Harder Date Problems:

What year comes before 1 AD?

— 0 AD?

— 1 BCE?

St. George and the Dragon

YUGOSLAVIANC. 1500oil on panel

Gift of Dr. Walter Read Hovey

Page 21: Cultural Heritage Dates in Ruby

Choosing an Epoch

Page 22: Cultural Heritage Dates in Ruby

Unix TimeSeconds since 0h Jan 1, 1970

DateTime.new(2014,12,4,20,0,0).to_time.to_i # => 1417723200

Valid between December 13, 1901 and 19 January 2038.

Page 23: Cultural Heritage Dates in Ruby

GregorianThe way you learned dates in schoolvalid since Oct 15, 1582

DateTime.new(2014,12,4,20,0,0).to_s # => "2014-12-04T20:00:00+00:00"

Page 24: Cultural Heritage Dates in Ruby

Julian DayThe way Ruby represents datesdays since 12h Jan 1, 4713 BC

DateTime.new(2014,12,4,20,0,0).jd # => 2456996

Page 25: Cultural Heritage Dates in Ruby

Heliocentric Julian DayThe current day. On the sun.

Page 26: Cultural Heritage Dates in Ruby

Barycentric Julian DayThe current day. At the center of the solar system.

Page 27: Cultural Heritage Dates in Ruby

Dates in RubyMug

TOBIAS BAUER (GERMAN)1695-1705blown, gold-ruby glass w/silver-gilt mounts

DuPuy Fund

Page 28: Cultural Heritage Dates in Ruby

Time

— Based on (and implemented in) C

— Counts seconds from Unix Epoch

— Compatible with Unix and other languages

— Fast

Page 29: Cultural Heritage Dates in Ruby

Date && DateTime

— Written in Ruby

— Counts days from Julian Epoch

— Slower

Page 30: Cultural Heritage Dates in Ruby

Internal Implementation

if you #inspect a DateTime:

DateTime.new(2014,12,4,20,0,0).inspect # <DateTime: 2014-12-04T20:00:00+00:00 ((2456996j,72000s,0n),+0s,2299161j)>

Page 31: Cultural Heritage Dates in Ruby

DateTime: 2014-12-04T20:00:00+00:00 ((2456996j,72000s,0n),+0s,2299161j)

2014-12-04T20:00:00+00:00

the current time in ISO 8601.

Page 32: Cultural Heritage Dates in Ruby

DateTime: 2014-12-04T20:00:00+00:00 ((2456996j,72000s,0n),+0s,2299161j)

2456996j The number of days since the Julian Epoch

+

72000s some number of seconds

+

0n some number of nanoseconds

Page 33: Cultural Heritage Dates in Ruby

DateTime: 2014-12-04T20:00:00+00:00 ((2456996j,72000s,0n), +0s ,2299161j)

+0s

The offset in seconds from UTC time

Page 34: Cultural Heritage Dates in Ruby

DateTime: 2014-12-04T20:00:00+00:00 ((2456996j,72000s,0n),+0s, 2299161j )

2299161j

The day of the Gregorian Reform.

Page 35: Cultural Heritage Dates in Ruby

Imprecise Data.Computers hate imprecision.

Apr. 27, 1978

ON KAWARA (JAPANESE, 1932–2014)1978Liquitex on canvas

A. W. Mellon Acquisition Endowment Fund and Carnegie International Acquisition Fund

Page 36: Cultural Heritage Dates in Ruby

Precision

— January 1, 1900

— January 1900

— 1900

— the 1900s

— the 20th Century

What is the difference?

Page 37: Cultural Heritage Dates in Ruby

date_time_precision gem

https://github.com/Spokeo/date_time_precision

Extends Ruby Date, Time, and DateTime to include the notion of date precision.

Page 38: Cultural Heritage Dates in Ruby

require 'date_time_precision

year = DateTime.new(1990)=> #<DateTime: 1990-01-01T00:00:00+00:00 ((2447893j,0s,0n),+0s,2299161j)>

year.precision => 1 # or DateTimePrecision::YEAR

year.day?=> false

year.year?=> true

Page 39: Cultural Heritage Dates in Ruby

Persists via copy

new_year = year=> #<DateTime: 1990-01-01T00:00:00+00:00 ((2447893j,0s,0n),+0s,2299161j)>

new_year.precision=> 1

Page 40: Cultural Heritage Dates in Ruby

Needed to handle DECADE && CENTURY precision

year = DateTime.new(1755)

year.decade=> 1750

century = yearcentury.precision = DateTimePrecision::CENTURY

year.century=> 1700

Page 41: Cultural Heritage Dates in Ruby

Custom Extensions for Date#earliest && Date#latest

year = Date.new(1755)

year.earliest=> Wed, 01 Jan 1755year.latest=> Wed, 31 Dec 1755

century = Date.new(1800)century.precision = DateTimePrecision::CENTURY

century.earliest=> Wed, 01 Jan 1800century.latest=> Sun, 31 Dec 1899

Page 42: Cultural Heritage Dates in Ruby

OntologiesModeling the data.

Page 43: Cultural Heritage Dates in Ruby

...

What is the CIDOC CRM

The CIDOC Conceptual Reference Model (CRM) provides definitions and a formal structure for describing the implicit and explicit concepts and relationships used in cultural heritage documentation.

— http://www.cidoc-crm.org

Page 44: Cultural Heritage Dates in Ruby

A Timeline represents the entire history of ownership of a single work.

Page 45: Cultural Heritage Dates in Ruby

A Period is a single period in time representing an single owner of a work.

Page 46: Cultural Heritage Dates in Ruby

Beginnings & Endings

Page 47: Cultural Heritage Dates in Ruby

George, 1950; Mary 1965.

Page 48: Cultural Heritage Dates in Ruby

George, by 1960 until sometime after 1962; Mary, in 1970.

Page 49: Cultural Heritage Dates in Ruby

John Doe, 1995

Page 50: Cultural Heritage Dates in Ruby

John Doe, by 1995

Page 51: Cultural Heritage Dates in Ruby

John Doe, after 1995

Page 52: Cultural Heritage Dates in Ruby

John Doe, until 1995

Page 53: Cultural Heritage Dates in Ruby

John Doe, until at least 1995

Page 54: Cultural Heritage Dates in Ruby

John Doe, until sometime before 1995

Page 55: Cultural Heritage Dates in Ruby

John Doe, in 1960

Page 56: Cultural Heritage Dates in Ruby

John Doe, 1950 until 2000

Page 57: Cultural Heritage Dates in Ruby

require 'museum_provenance'

text = "sold December 1936 to Robert Doe, Pittsburgh"period = MuseumProvenance::Period.new() puts period.parse_time_string(text)# => sold to Robert Doe, Pittsburgh

puts period.beginning.to_s# => December 1936

puts period.beginning.earliest# => 1936-12-01

puts period.beginning.latest# => 1936-12-31

puts period.ending.to_s# => nil

Page 58: Cultural Heritage Dates in Ruby

Why all this work?

Page 59: Cultural Heritage Dates in Ruby

Nazi War Crimes.

Page 60: Cultural Heritage Dates in Ruby
Page 61: Cultural Heritage Dates in Ruby

Thank You.https://github.com/cmoa/museum_provenance

David Newbury@workergnome