object/catalog/1 matches the site
A copy of the exhibition catalog for the "Post-Impressionism: Cross-Currents in European and American Painting 1880-1906", at which Manet's "Spring" (from the Getty) and Cezanne's "Houses in Provence" (from the National Gallery) were exhibited, shows both works and carries its own text.
C#
public static HumanMadeObject Exhibition_Catalog_1()
{
var catalog = new HumanMadeObject()
.WithContext()
.WithId("https://linked.art/example/object/catalog/1")
.WithLabel("Copy of Exhibition Catalog")
.WithClassifiedAs(Aat.ExhibitionCatalog, Aat.TypeOfWork);
catalog.Shows = [
new VisualItem()
.WithId("https://linked.art/example/visual/spring")
.WithLabel("Visual Content of Spring"),
new VisualItem()
.WithId("https://linked.art/example/visual/houses")
.WithLabel("Visual Content of Houses in Provence")
];
catalog.Carries = [
new LinguisticObject()
.WithId("https://linked.art/example/text/catalogtext")
.WithLabel("Exhibition Catalog Text")
];
return catalog;
}
- Metatype classification The second argument classifies the first, not the object: WithClassifiedAs(Aat.Description, Aat.Statement) says this is a Description, and Description is a kind of Statement. The Plain C# form shows the nesting.
var humanMadeObject = new HumanMadeObject
{
Context = ["https://linked.art/ns/v1/linked-art.json"],
Id = "https://linked.art/example/object/catalog/1",
Label = "Copy of Exhibition Catalog",
Shows =
[
new VisualItem
{
Id = "https://linked.art/example/visual/spring",
Label = "Visual Content of Spring",
},
new VisualItem
{
Id = "https://linked.art/example/visual/houses",
Label = "Visual Content of Houses in Provence",
},
],
Carries =
[
new LinguisticObject
{
Id = "https://linked.art/example/text/catalogtext",
Label = "Exhibition Catalog Text",
},
],
ClassifiedAs =
[
new Type("http://vocab.getty.edu/aat/300026096", "Exhibition Catalog")
{
ClassifiedAs = [Aat.TypeOfWork],
},
],
};
Generated from the object the example builds: every property that is set, as object initialisers, with the vocabulary constants where a term is in the registry. The fluent helpers are a convenience, not a requirement; this form and the one as written produce the same JSON.
JSON from the C#
{
"@context": "https://linked.art/ns/v1/linked-art.json",
"id": "https://linked.art/example/object/catalog/1",
"type": "HumanMadeObject",
"_label": "Copy of Exhibition Catalog",
"shows": [
{
"id": "https://linked.art/example/visual/spring",
"type": "VisualItem",
"_label": "Visual Content of Spring"
},
{
"id": "https://linked.art/example/visual/houses",
"type": "VisualItem",
"_label": "Visual Content of Houses in Provence"
}
],
"carries": [
{
"id": "https://linked.art/example/text/catalogtext",
"type": "LinguisticObject",
"_label": "Exhibition Catalog Text"
}
],
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300026096",
"type": "Type",
"_label": "Exhibition Catalog",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300435443",
"type": "Type",
"_label": "Type of Work"
}
]
}
]
} JSON on linked.art
{
"@context": "https://linked.art/ns/v1/linked-art.json",
"id": "https://linked.art/example/object/catalog/1",
"type": "HumanMadeObject",
"_label": "Copy of Exhibition Catalog",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300026096",
"type": "Type",
"_label": "Exhibition Catalog",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300435443",
"type": "Type",
"_label": "Type of Work"
}
]
}
],
"shows": [
{
"id": "https://linked.art/example/visual/spring",
"type": "VisualItem",
"_label": "Visual Content of Spring"
},
{
"id": "https://linked.art/example/visual/houses",
"type": "VisualItem",
"_label": "Visual Content of Houses in Provence"
}
],
"carries": [
{
"id": "https://linked.art/example/text/catalogtext",
"type": "LinguisticObject",
"_label": "Exhibition Catalog Text"
}
]
} Comparison
The two documents are equivalent (property order ignored, array order significant).