cultural heritage dates in ruby

Post on 12-Jul-2015

241 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Cultural Heritage DatesUnderstanding the provenance of an artwork.

David Newbury@workergnome

What is Art Tracks?

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

What is Art Tracks?

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

We're digitizing the history of ownership of art.

Oldest item

Vase

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

Walter Read Hovey Collection

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

Museums are full of art.Art is culture.

Art is also stuff.

Stuff has a history.

— Created by an artist

— Sold to collectors

— Given to children

— Sold at auctions

Eventually, it ends up at a museum.

The record of this is called

Provenance.

Provenance is a chain of ownership.

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

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.

What Data?

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

The Transfer

Acquisition MethodDirect Transfer

Auction

Harry Shokler1942silkscreen on paper

Leisser Art Fund

Metadata

Stock numbersFootnotesPrimary ownership

Footed bowl

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

Gift of Barry Friedman, Ltd.

Dates

AcquisitionDeacquisition

Persimmon (Kaki)

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

Bequest of Dr. James B. Austin

Dates are not a thing

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

...At a particular location.

...On earth.

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

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

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.

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

Choosing an Epoch

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.

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"

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

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

Heliocentric Julian DayThe current day. On the sun.

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

Dates in RubyMug

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

DuPuy Fund

Time

— Based on (and implemented in) C

— Counts seconds from Unix Epoch

— Compatible with Unix and other languages

— Fast

Date && DateTime

— Written in Ruby

— Counts days from Julian Epoch

— Slower

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)>

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.

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

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

+0s

The offset in seconds from UTC time

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

2299161j

The day of the Gregorian Reform.

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

Precision

— January 1, 1900

— January 1900

— 1900

— the 1900s

— the 20th Century

What is the difference?

date_time_precision gem

https://github.com/Spokeo/date_time_precision

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

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

Persists via copy

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

new_year.precision=> 1

Needed to handle DECADE && CENTURY precision

year = DateTime.new(1755)

year.decade=> 1750

century = yearcentury.precision = DateTimePrecision::CENTURY

year.century=> 1700

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

OntologiesModeling the data.

...

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

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

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

Beginnings & Endings

George, 1950; Mary 1965.

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

John Doe, 1995

John Doe, by 1995

John Doe, after 1995

John Doe, until 1995

John Doe, until at least 1995

John Doe, until sometime before 1995

John Doe, in 1960

John Doe, 1950 until 2000

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

Why all this work?

Nazi War Crimes.

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

David Newbury@workergnome

top related