person/bol/1 matches the site
Ferdinand Bol was a student of Rembrandt.
C#
public static Person Bol_Student_of_Rembrandt()
{
var bol = new Person()
.WithContext()
.WithId("https://linked.art/example/person/bol/1")
.WithLabel("Ferdinand Bol");
bol.IdentifiedBy = [new Name("Ferdinand Bol").AsPrimaryName()];
bol.AttributedBy = [
new AttributeAssignment()
{
IdentifiedBy = [new Name("Student Of").WithClassifiedAs(Aat.DisplayName)],
Assigned = [
new Person()
.WithId("https://linked.art/example/person/rembrandt")
.WithLabel("Rembrandt")
]
}
];
return bol;
}
- Role shortcuts AsPrimaryName, AsAccessionNumber and AsSystemAssignedNumber each add a single classification, with the AAT terms Primary Name, Accession Number and System Number.
var person = new Person
{
Context = ["https://linked.art/ns/v1/linked-art.json"],
Id = "https://linked.art/example/person/bol/1",
Label = "Ferdinand Bol",
IdentifiedBy =
[
new Name("Ferdinand Bol")
{
ClassifiedAs = [Aat.PrimaryName],
},
],
AttributedBy =
[
new AttributeAssignment
{
IdentifiedBy =
[
new Name("Student Of")
{
ClassifiedAs = [Aat.DisplayName],
},
],
Assigned =
[
new Person
{
Id = "https://linked.art/example/person/rembrandt",
Label = "Rembrandt",
},
],
},
],
};
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/person/bol/1",
"type": "Person",
"_label": "Ferdinand Bol",
"identified_by": [
{
"type": "Name",
"content": "Ferdinand Bol",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300404670",
"type": "Type",
"_label": "Primary Name"
}
]
}
],
"attributed_by": [
{
"type": "AttributeAssignment",
"identified_by": [
{
"type": "Name",
"content": "Student Of",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300404669",
"type": "Type",
"_label": "Display Title"
}
]
}
],
"assigned": [
{
"id": "https://linked.art/example/person/rembrandt",
"type": "Person",
"_label": "Rembrandt"
}
]
}
]
} JSON on linked.art
{
"@context": "https://linked.art/ns/v1/linked-art.json",
"id": "https://linked.art/example/person/bol/1",
"type": "Person",
"_label": "Ferdinand Bol",
"identified_by": [
{
"type": "Name",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300404670",
"type": "Type",
"_label": "Primary Name"
}
],
"content": "Ferdinand Bol"
}
],
"attributed_by": [
{
"type": "AttributeAssignment",
"identified_by": [
{
"type": "Name",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300404669",
"type": "Type",
"_label": "Display Title"
}
],
"content": "Student Of"
}
],
"assigned": [
{
"id": "https://linked.art/example/person/rembrandt",
"type": "Person",
"_label": "Rembrandt"
}
]
}
]
} Comparison
The two documents are equivalent (property order ignored, array order significant).