See Data wrangling, feature engineering, and dada for more on this.
Because size calculations all start with measurements in centimeters, area figures are in square centimeters and volume in cubic centimeters.
Queries that return information about individual works usually include OPTIONAL { ?s owl:sameAs ?url } because the MoMA URL for a work take you right to their individual page about it. (OPTIONAL because they're not always there.)
All queries assume these prefix declarations:
PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX r: <http://rdvocab.info/ElementsGr2/> PREFIX rdaGr2: <http://RDVocab.info/ElementsGr2/> PREFIX ci: <http://www.cidoc-crm.org/cidoc-crm/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX m: <http://rdfdata.org/models/moma/>
SELECT ?title ?area ?artist ?url
WHERE {
?work m:heightCm ?height;
m:widthCm ?width ;
rdfs:label ?title ;
m:classification "Painting" ;
dc:creator ?artist ;
OPTIONAL { ?work owl:sameAs ?url }
BIND(?height * ?width AS ?area)
}
ORDER BY DESC(?area)
LIMIT 1
| title | area | artist | url |
|---|---|---|---|
| F-111 | 798972.24 | James Rosenquist | http://www.moma.org/collection/works/79805 |
SELECT ?title ?area ?artist ?url
WHERE {
?work m:classification "Photograph" ;
m:heightCm ?height;
m:widthCm ?width ;
rdfs:label ?title ;
owl:sameAs ?url ;
dc:creator ?artist .
BIND(?height * ?width AS ?area)
}
ORDER BY DESC(?area)
LIMIT 1
| title | area | artist | url |
|---|---|---|---|
| 11 | 232257.60 | Mariah Robertson | http://www.moma.org/collection/works/163921 |
SELECT ?title ?volume ?artist ?url
WHERE {
?work m:heightCm ?height;
m:widthCm ?width ;
m:depthCm ?depth ;
rdfs:label ?title ;
dc:creator ?artist .
OPTIONAL {?work owl:sameAs ?url }
BIND(?height * ?width * ?depth AS ?volume)
}
ORDER BY DESC(?volume)
LIMIT 1
| title | volume | artist | url |
|---|---|---|---|
| Stations | 1418631250.000 | Bill Viola | http://www.moma.org/collection/works/81737 |
This one used a subquery.
SELECT ?nationality (COUNT(?nationality) AS ?artistCount)
WHERE {
SELECT DISTINCT ?artist ?nationality
WHERE {
?work m:classification "Painting" ;
dc:creator ?artist ;
rdaGr2:countryAssociatedWithThePerson ?nationality .
}
}
GROUP BY ?nationality
ORDER BY desc(?artistCount)
| nationality | artistCount |
|---|---|
| American | 494 |
| French | 89 |
| German | 56 |
| British | 46 |
| Italian | 41 |
| Russian | 18 |
| Argentine | 17 |
| Japanese | 16 |
| Brazilian | 14 |
| Belgian | 13 |
| Canadian | 13 |
| Spanish | 13 |
| Dutch | 12 |
| Mexican | 12 |
| Swiss | 11 |
| Polish | 9 |
| Austrian | 8 |
| Cuban | 8 |
| Australian | 7 |
| Israeli | 6 |
| Indian | 5 |
| Peruvian | 5 |
| Colombian | 4 |
| Haitian | 4 |
| Danish | 3 |
| Hungarian | 3 |
| Swedish | 3 |
| Venezuelan | 3 |
| Chilean | 2 |
| Croatian | 2 |
| Icelandic | 2 |
| Iranian | 2 |
| Irish | 2 |
| Korean | 2 |
| Turkish | 2 |
| Uruguayan | 2 |
| Yugoslav | 2 |
| Zimbabwean | 2 |
| Bolivian | 1 |
| Congolese | 1 |
| Czech | 1 |
| Ghanaian | 1 |
| Guatemalan | 1 |
| Guyanese | 1 |
| Moroccan | 1 |
| Nicaraguan | 1 |
| Norwegian | 1 |
| Romanian | 1 |
| South | 1 |
| Sudanese | 1 |
| Tanzanian | 1 |
| Ukrainian | 1 |
| born | 1 |
Note the comment about the HAVING statement.
SELECT ?nationality (round(AVG(?area)) AS ?averageArea)(
count(?work) AS ?paintings)
WHERE {
?work m:classification "Painting" ;
m:heightCm ?height;
m:widthCm ?width ;
rdaGr2:countryAssociatedWithThePerson ?nationality .
BIND(?height * ?width AS ?area)
}
GROUP BY ?nationality
# We'll consider fewer than 11 paintings to
# be an unrepresentative sample.
HAVING(?paintings > 10)
ORDER BY DESC(?averageArea)
| nationality | averageArea | paintings |
|---|---|---|
| American | 28244 | 1098 |
| German | 23503 | 123 |
| British | 22791 | 78 |
| Japanese | 22703 | 22 |
| Italian | 21889 | 77 |
| Swiss | 21538 | 19 |
| Canadian | 19415 | 13 |
| Argentine | 18665 | 19 |
| Spanish | 16155 | 96 |
| French | 14209 | 327 |
| Brazilian | 13224 | 15 |
| Austrian | 12761 | 13 |
| Mexican | 12341 | 28 |
| Cuban | 10423 | 11 |
| Belgian | 9813 | 35 |
| Dutch | 8277 | 35 |
| Polish | 7448 | 15 |
| Russian | 6758 | 32 |
Now you can see why the owl:samAs property is optional (and why I created my own URIs to represent the works instead of just using the MoMA ones—because they don't all have them).
SELECT ?workFinishDate ?title ?artist ?medium ?url
WHERE {
?work m:workFinishDate ?workFinishDate ;
rdfs:label ?title ;
ci:P2_has_type ?medium ;
dc:creator ?artist .
OPTIONAL { ?work owl:sameAs ?url }
}
ORDER BY ?workFinishDate
LIMIT 5
| workFinishDate | title | artist | medium | url |
|---|---|---|---|---|
| 1600 | Woman | unknown | Double warp silk brocade | |
| 1768 | Coffee Pot and Lid | Josiah Wedgwood | Black basalt with glazed interior | http://www.moma.org/collection/works/91975 |
| 1768 | Demitasse Cup and Saucer | Josiah Wedgwood | Black basalt with glazed interior | http://www.moma.org/collection/works/91977 |
| 1768 | Partial Coffee and Tea Service | Josiah Wedgwood | Black basalt with glazed interior | http://www.moma.org/collection/works/2767 |
| 1768 | Sugar Bowl | Josiah Wedgwood | Black basalt with glazed interior | http://www.moma.org/collection/works/91978 |
Without DISTINCT, each would have been listed on a new row for each painting that they had.
SELECT DISTINCT ?artist ?birthYear
WHERE {
?work m:classification "Painting" ;
dc:creator ?artist ;
rdaGr2:dateOfBirth ?birthYear .
}
ORDER BY desc(?birthYear)
LIMIT 5
| artist | birthYear |
|---|---|
| 1984 | Adam Pendleton |
| 1983 | Ryan Sullivan |
| 1982 | Alex Israel |
| 1981 | Tauba Auerbach |
| 1980 | Kerstin Brätsch, Adele Röder |