Wolfram Language

Umfassenderer Zugang zur Knowledgebase

Kunstwerke im Museum of Modern Art

Das Museum of Modern Art (MoMA) pflegt einen unter https://github.com/MuseumofModernArt/collection öffentlich zugänglichen Datensatz mit detaillierter Information zum Bestand des Museums. In diesem Beispiel können Sie einen benutzerdefinierten Entity-Store auf Basis dieser Daten nutzen, um die Dimensionen der MoMa-Gemälde sowie die Lebensdauer ihrer Künstler zu untersuchen.

Laden Sie zuerst den Entity-Store aus einem ResourceObject.

In[1]:=
Click for copyable input
momaStore = ResourceData[ ResourceObject[ Association[ "Name" -> "Museum of Modern Art Holdings and Artists", "UUID" -> "38f47cc0-667d-4988-8ebe-6c1bef23fdc6", "ResourceType" -> "DataResource", "Version" -> "1.0.0", "Description" -> "Holdings and artists of The Museum of Modern \ Art", "ContentSize" -> Association["EntityStore" -> 0], "ContentElements" -> {"EntityStore"}]]]
Out[1]=

Registrieren Sie den Store für diese Sitzung.

In[2]:=
Click for copyable input
PrependTo[$EntityStores, momaStore];

Ermitteln Sie eine Liste von Eigenschaften der Kunstwerke aus dem Entity-Store mithilfe des "MoMAHolding"-Entitätentyps.

In[3]:=
Click for copyable input
EntityProperties["MoMAHolding"]
Out[3]=

Ermitteln Sie eine Liste von Eigenschaftswerten für ein bestimmtes Objekt.

In[4]:=
Click for copyable input
DeleteMissing[ EntityValue[Entity["MoMAHolding", "79802"], "PropertyAssociation" ]] // Take[#, 15] &
Out[4]=

Erstellen Sie ein Histogram mit dem Fertigstellungsdatum aller Werke im MoMA.

In[5]:=
Click for copyable input
DateHistogram[ DeleteMissing[EntityValue["MoMAHolding", "CompletionDate"]]]
Out[5]=

Machen Sie eine Aufstellung der Werktypen in der Sammlung.

In[6]:=
Click for copyable input
TextGrid[SortBy[ Tally[EntityValue["MoMAHolding", EntityProperty["MoMAHolding", "Classification"]]], Last] // Reverse, Dividers -> All, Background -> {Automatic, {{LightBlue, None}}}, Alignment -> {{Left, Decimal}, Automatic}]

Rufen Sie die MoMA-Gemälde mit implizit definierten Entitätsklassen ab.

In[7]:=
Click for copyable input
paintings = EntityClass[ "MoMAHolding", {EntityProperty["MoMAHolding", "Classification"] -> "Painting"}];

Visualisieren Sie die Verteilung des Bildformats und der Fläche aller Gemälde. At default binning width, the distribution of aspect ratios appears to be trimodal.

In[8]:=
Click for copyable input
Table[Histogram[EntityValue[paintings, prop], PlotLabel -> prop], {prop, {EntityProperty["MoMAHolding", "AspectRatio"], EntityProperty["MoMAHolding", "Area"]}}]
Out[8]=

Ermitteln Sie nun mithilfe des "MoMAArtist"-Entitätentyps eine Liste von Eigenschaften in Zusammenhang mit Künstlern.

In[9]:=
Click for copyable input
EntityProperties["MoMAArtist"]
Out[9]=

Sehen Sie sich die Eigenschaften für den Künstler Vincent van Gogh als eine "PropertyAssociation" an.

In[10]:=
Click for copyable input
EntityValue[ Entity["MoMAArtist", "Vincent van Gogh"], "PropertyAssociation"]
Out[10]=

Visualisieren Sie die Verteilung der Werke pro MoMA-Künstler.

In[11]:=
Click for copyable input
Histogram[ Length /@ EntityValue["MoMAArtist", "MoMAPieces"], {"Log", 20}]
Out[11]=

Wenn Sie sich für die durchschnittliche Lebensdauer verstorbener Künstler interessieren (die in einem Museum moderner Kunst verglichen mit der Lebenserwartung der augestellten Künstler relativ kurz ist, da nur die in jungem Alter Vestorben herangezogen werden), extrahieren Sie zuerst jene Künstler, die sowohl ein Geburts- als auch Sterbejahr haben, und berechnen Sie die durchschnittliche Lebensdauer.

In[12]:=
Click for copyable input
deceasedArtists = Select[EntityList["MoMAArtist"], AllTrue[# /@ {"BirthDate", "DeathDate"}, DateObjectQ] &];
In[13]:=
Click for copyable input
Mean[DateDifference[#["BirthDate"], #["DeathDate"], "Year"] & /@ deceasedArtists] // N
Out[13]=

Erstellen Sie Collagen zufällig ausgewählter MoMA-Kunstwerke aus jedem Jahrzehnt des zwanzigsten Jahrhunderts.

Den kompletten Wolfram Language-Input zeigen
In[14]:=
Click for copyable input
decadePieces = KeySelect[ GroupBy[Take[RandomEntity["MoMAHolding", 2000], 500], Floor[#1["CompletionDate"]["Year"], 10] &], Between[{1900, 2000 - 1}]];
In[15]:=
Click for copyable input
makePolygon[ year_ -> artworks_] := {Texture[ ImageCollage[ URLExecute[#["ThumbnailURL"]] & /@ Select[artworks, \[Not] MissingQ[#["ThumbnailURL"]] &, UpTo[8]]]], Lighting -> {{"Directional", White, {{0, year - 2, 0}, {0, year, 0}}}}, Opacity[.75], Polygon[{{-1, year/10, -1}, {1, year/10, -1}, {1, year/10, 1}, {-1, year/10, 1}}, VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]};
In[16]:=
Click for copyable input
Graphics3D[makePolygon /@ Normal[decadePieces], Axes -> True, AxesEdge -> {None, {1, 0}, None}, Ticks -> {None, Table[{190 + i, StringJoin["19", ToString[i], "0's"]}, {i, 0, 9}], None}, ImageSize -> Large]
Out[16]=

Verwandte Beispiele