Categories
Art History Art Open Data

Google Books Art History

Don’t buy DRM-encumbered ebooks from Google.

But do download public domain ePub and PDF versions of old books on art and art history from them.

Modern art and living artists

The Art journal

The art of painting

Works of art and artists in England

The art of drawing in perspective

Colour, as a means of art

Precepts and observations on the art of colouring in landscape painting

British galleries of art

Catalogue / American Art Association, Anderson Galleries, inc., New York

The Italian schools of painting

The Picture Collector’s Manual: Alphabetical arrangement of scholars and masters and classification of subjects

A biographical history of the fine arts

And do look in the “Related Books” recommendations at the bottom of each page.

Categories
Art History Free Culture

A Comment On A Boing Boing Post

Boing Boing don’t seem to be publishing my comment on their post here –

http://www.boingboing.net/2010/12/02/1895-viennese-archet.html

It’s probably hit a link spam filter or something.

So here it is:

Scans of two dimensional images do not attract copyright in Germany –

https://secure.wikimedia.org/wikipedia/en/wiki/Image_copyright_%28Germany%29#Two-dimensional_Originals

Even if they did, doing so conflicts with the Europeana Public Domain Charter –

http://version1.europeana.eu/web/europeana-project/public-domain-charter-en

And they certainly don’t attract copyright in the US –

https://secure.wikimedia.org/wikipedia/en/wiki/Bridgeman_Art_Library_v._Corel_Corp.

The Creative Commons non-commerical licences are *not* friendly, they are non-free –

http://freedomdefined.org/FAQ#Why_isn.27t_a_Non-Commercial_restriction_considered_free.3F

And they are *copyright* licences. They cannot create restrictions on public domain works, which are out of copyright.

Alexander Ferdninand Wüst died in 1876, some time before 1895, and more than long enough ago for these images to definitely be in the public domain –

http://www.artnet.com/artist/554390/alexander-ferdinand-wust.html

Given all this, please consider using the correct CC tool for these wonderful images –

http://creativecommons.org/licenses/publicdomain

Categories
Art History Art Open Data

Exploring Art Data 5

Let’s look at some institutional data. We can scrape the Tate Galleries attendance figures from here and make a csv file of them. The first few lines of attendance.csv look like this:

"Year","Tate Britain","Tate Modern","Tate Liverpool","Tate St Ives","BHM","Total"
2009,1595000,4788000,523000,219000,N/A,7125000
2008,1587655,4647881,1035958,203700,N/A,7475194
2007,1533217,5236702,694228,243993,N/A,7708140
2006,1597359,4895073,556976,193700,46220,7289328
2005,1729692,3902017,666258,180771,43502,6522240

Now we can load the data into R and start working with the data:


## Read the csv file, N/A values and all, allowing spaces in column names attendance<-read.csv("attendance.csv", na.strings="N/A", check.names=FALSE) ## Give the BHM a more descriptive name names(attendance)[names(attendance) %in% c("BHM")]<-"Barbara Hepworth Museum" ## Get the years years<-attendance[,1] ## Get the individual site counts (last column is total) sites<-attendance[,2:(length(attendance) -1)]

We can draw a multiple line graph of the attendance figures:

## Create lists of line properties so we can use them in the graph and legend
line.types<-c("solid", "dashed", "dotted", "dotdash", "longdash", "twodash")
line.colours<-c("cyan", "blue", "purple", "red", "orange", "green")
## Suppress the y axis so we can draw one that doesn't use scientific notation
matplot(years, sites, type = "l", yaxt="n",
xlab="Year",ylab="Attendance",
col=line.colours, lty=line.types)
## Draw the y axis using full numbers rather than scientific notation
axis(2, axTicks(2), format(axTicks(2), scientific = F))
## Add a key to the lines
legend("topleft", names(sites), col=line.colours, lty=line.types)
## Title the graph
title(main="Tate Galleries Attendance 1980-2010")

attendance1.pngAnd we can use an area chart to show the combined attendance. It’s not the best way of examining information, but in this case it shows how the attendance figures stack up, literally:


## Import the ggplot2 library so we can use ggplot library("ggplot2") ## To get an area plot, we need to flatten the data to year/museum/attendance attendance.expanded<-data.frame(Year=rep(years, ncol(sites)), Museum=rep(names(sites), each=length(years)), Attendance=unlist(sapply(names(sites), function(col) {sites[col]}, simplify=TRUE))) ## We use the levels of the Museum factor to order the areas and legend labels ## We do this by clculating the range of attendance at each museum and ordering ## the factor names based on that attendance.expanded$Museum<- factor(attendance.expanded$Museum, levels=names(sites)[order(sapply(names(sites), function(x){max(sites[x], na.rm=TRUE) - min(sites[x], na.rm=TRUE)}))]) ## A utility function to format numbers in English non-scientific format nonscientific<-function(x, ...) format(x, big.mark = ',', scientific = FALSE, ...) ## Plot the areas ggplot(attendance.expanded, aes(x=Year, y=Attendance)) + geom_area(aes(legend.title="Site", fill=Museum)) + ## Label the y axis in millions rather than scientific notation scale_y_continuous(formatter=nonscientific) + ## Specifying the breaks orders the legend properly scale_fill_brewer(palette=2, breaks=rev(levels(attendance.expanded$Museum))) + ## Set a nice title opts(title="Tate Galleries Attendance 1980-2010")

attendance2.png

Categories
Art Computing Art History Art Open Data Free Software Howto

Exploring Art Data 4

Let’s draw some more graphs.

Here’s the matrix of form and genre rendered graphically:

## Load the tab separated values for the table of artworks
artwork<-read.delim("./visual_art/artwork.tsv")
# Get rows with both genre and form
## This loses most of the data :-/
art<-artwork[artwork$art_genre != "" & artwork$art_form != "",
c("art_genre", "art_form")]
## Drop unused factors
art$art_genre<-as.factor(as.character(art$art_genre))
art$art_form<-as.factor(as.character(art$art_form))
## Get table
art.table<-table(art) ##as.table(ftable(art))
## Strip rows and columns where max < tolerance
tolerance<-3
art.table.cropped<-art.table[rowSums(art.table) >= tolerance,
colSums(art.table) >=tolerance]
## Print levelplot
## Levelplot is in the "lattice" library
library("lattice")
## Rotate x labels, and set colour scale to white/blue to improve readablity
levelplot(art.table.cropped, xlab="Genre", ylab="Form",
scales=list(x=list(rot=90)),
col.regions=colorRampPalette(c("white", "blue")))

levelplot.pngThe highest frequencies leap out of the graph. We should do a version without painting to look for subtleties in the rest of the data.

And here’s some of the basic frequencies from the data:


## Load the tab separated values for the table of artworks artwork<-read.delim("./visual_art/artwork.tsv") ## Function to plot a summary of the most frequent values topValuePlot<-function(values, numValues){ ## Get a count of the number of times each value name appears in the list values.summary<-summary(values) ## Draw a graph, allowing enough room for the rotated labels par(mar=c(10,4,1,1)) barplot(values.summary[1:numValues], las=2) } ## Artists topValuePlot(artwork$artist[artwork$artist != ""], 20) ## Subject topValuePlot(artwork$art_subject[artwork$art_subject != ""], 20)

artists.png

subjects.png
The dataset is clearly dominated by Western art.
Categories
Aesthetics Art Computing Art History Art Open Data Free Software Howto

Exploring Art History Data 2

Let’s see how art form and genre relate in the Freebase “Visual Art” dataset of artworks.

# read the artwork data
artwork<-read.delim("visual_art/artwork.tsv")
# Get rows with both genre and form
# This loses most of the data :-/
art<-artwork[artwork$art_genre != "" & artwork$art_form != "", c("art_genre", "art_form")]
# Drop unused factors
art$art_genre<-as.factor(as.character(art$art_genre))
art$art_form<-as.factor(as.character(art$art_form))
# Get table
art.table<-table(art) ##as.table(ftable(art))
# Strip rows and columns where max < tolerance
tolerance<-3
art.table.cropped<-art.table[rowSums(art.table) >= tolerance,colSums(art.table) >=tolerance]
# Print wide table (make sure you resize your terminal window)
options(width=240)
print.table(art.table.cropped)

                                  art_form
art_genre                          Drawing Fresco Installation art Metalworking Painting Photography Relief Sculpture Tapestry
Abstract art                           2      0                6            0       36           0      0         5        0
Allegory                               0      0                0            0        7           0      0         0        0
Animal Painting                        0      0                0            0       14           0      0         0        0
Christian art                          0      0                0            0        1           0      0         1        0
Christian art,History painting         0      0                0            0        2           0      0         0        0
Decorative art                         0      0                0            6        0           0      3         0        4
Fantastic art                          0      0                0            0        4           0      0         0        0
Genre painting                         0      0                0            0      120           0      0         0        0
Genre painting,Landscape art           0      0                0            0        4           0      0         0        0
History painting                       0     10                0            0      207           0      0         0        0
History painting,Landscape art         0      0                0            0        3           0      0         0        0
History painting,Religious image       0      0                0            0        3           0      0         0        0
Landscape art                          0      0                0            0      169           1      0         0        0
Landscape art,Genre painting           0      0                0            0        7           0      0         0        0
Landscape art,Marine art               0      0                0            0        3           0      0         0        0
Marine art                             0      0                0            0       34           1      0         0        0
Marine art,History painting            0      0                0            0        4           0      0         0        0
Marine art,Landscape art               0      0                0            0        3           0      0         0        0
Monument                               0      0                0            0        0           0      0         8        0
Portrait                               2      1                0            0      230           5      0         0        0
Religious image                        0      0                0            0        4           0      0         0        0
Religious image,History painting       0      0                0            0        4           0      0         0        0
Still life                             0      0                0            0       35           0      0         0        0

This time painting rather than photography has suspiciously more entries than any other medium, as more paintings than any other medium have genre information in the dataset.

Categories
Art Art Computing Art History Art Open Data Free Software Howto Projects

Exploring Art History Data 1

Freebase have a section of visual art data: here.

You can download an archive of the data: here.

Expanding the archive gives you the data as tab-separated files:

$ ls visual_art
art_acquisition_method.tsv artwork.tsv
art_owner.tsv color.tsv
art_period_movement.tsv visual_art_form.tsv
art_series.tsv visual_art_genre.tsv
art_subject.tsv visual_artist.tsv
artwork_location_relationship.tsv visual_art_medium.tsv
artwork_owner_relationship.tsv

Loading up R, we can parse the files and check some of the features of the data:

$ R --quiet
> artwork<-read.delim("./visual_art/artwork.tsv")

> artwork<-read.delim("./visual_art/artwork.tsv") > names(artwork) [1] "name" "id" "artist" [4] "date_begun" "date_completed" "art_form" [7] "media" "period_or_movement" "art_genre" [10] "dimensions_meters" "art_subject" "edition_of" [13] "editions" "locations" "owners" [16] "belongs_to_series" > artists<-artwork$artist[artwork$artist != ""] > summary(artists)[1:20] Henri Matisse John Gutmann Pablo Picasso 72 66 66 Ferdinando Ongania Vincent van Gogh Caravaggio 57 57 49 Raphael Claude Monet Dr. William J. Pierce 48 44 42 Alexander Girard Tina Modotti Martin Kippenberger 37 37 36 Alvin Langdon Coburn Thomas Annan Robert Adams 31 31 30 Paul Cézanne Edward Weston Martin Venezky 29 28 28 Paul Klee Willi Kunz 28 28 > media<-artwork$media[artwork$media != ""] > summary(media)[1:20] Gelatin silver print Oil paint Canvas,Oil paint 1110 897 429 Oil paint,Canvas offset lithograph Albumen print 429 221 185 Bronze Photogravure chromogenic print 138 127 104 Acrylic paint Synthetic polymer paint Ink 82 69 67 Graphite Screen-printing Wood 61 57 55 Daguerreotype Mixed Media Oil paint,Panel 39 39 37 Panel,Oil paint Marble 35 30 > gelatin_silver_print_artworks<-artwork[artwork$media == "Gelatin silver print" & artwork$artist != "",] > summary(gelatin_silver_print_artworks$artist)[1:20] Dr. William J. Pierce John Gutmann 78 41 34 Robert Adams Ilse Bing Edward Weston 30 27 26 Walker Evans Tina Modotti Dorothea Lange 20 19 18 Lee Friedlander Lewis Hine Garry Winogrand 16 16 14 Henry Wessel Nicholas Nixon Ansel Adams 13 13 12 Harry Callahan Pirkle Jones Arnold Genthe 11 11 10 Bill Brandt Lewis Baltz 10 10

A couple of quick checks of the data show that it has some biases relative to mainstream art history, with more photography and photographers than you might expect. And there are several different entries for oil painting, which have skewed the numbers. This is interesting data, but about the dataset rather than about art more generally at the moment. Perhaps art history data will be as useful for institutional critique as for historical research.