Previously-Held or Context-Specific Assertions

Table of Contents


Introduction

It is useful for research to have access to historical information, such as which artist was previously believed to be the creator of a work, or previous valuations of an object. The majority of use cases, however, are to get the current information. The assignment of attributes model allows for this additional information to be associated, without making every property a list of historical values.

This pattern is also used for context-specific assertions, such as when an object is given a label or description for the purposes of an exhibition or other event. This exhibition label does not replace the owning museum's title, but is useful for historical comparison and research purposes.

Assignment of Attributes

The AttributeAssignment class is an Activity, carried out by curators or researchers rather than by artists, that assigns information to resources in the model. This can be used to assign any property or relationship on any resource that can be the subject of such a property. The general Activity properties of carried_out_by, timespan and took_place_at are also available for when and where the assignment happened, and who made it. The timespan is the moment when the assignment took place, rather than the length of time that the assignment was held to be true by some audience.

The value of the assignment is given using assigned, and it can be any resource or value. The resource that the value is assigned to is given using the assigned_to property, and the relationship between them is given using assigned_property. Thus an AttributeAssignment can assign an Actor to a Production with the carried_out_by relationship, or a Name to an Actor with the identified_by relationship.

The example below demonstrates associating a previous title with an object.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/activity/8", 
  "type": "AttributeAssignment", 
  "assigned": {
    "id": "https://linked.art/example/name/10", 
    "type": "Name", 
    "content": "Previous Painting Title"
  }, 
  "carried_out_by": [
    {
      "id": "https://linked.art/example/person/15", 
      "type": "Person", 
      "_label": "Painting Curator"
    }
  ], 
  "timespan": {
    "id": "https://linked.art/example/time/8", 
    "type": "TimeSpan", 
    "begin_of_the_begin": "1804-05-19", 
    "end_of_the_end": "1804-05-19"
  }, 
  "assigned_property": "identified_by", 
  "assigned_to": {
    "id": "https://linked.art/example/object/10", 
    "type": "HumanMadeObject", 
    "_label": "Current Painting Title", 
    "classified_as": [
      {
        "id": "http://vocab.getty.edu/aat/300033618", 
        "type": "Type", 
        "_label": "Painting", 
        "classified_as": [
          {
            "id": "http://vocab.getty.edu/aat/300435443", 
            "type": "Type", 
            "_label": "Type of Work"
          }
        ]
      }, 
      {
        "id": "http://vocab.getty.edu/aat/300133025", 
        "type": "Type", 
        "_label": "Artwork"
      }
    ]
  }
}
graph TD classDef object stroke:black,fill:#E1BA9C,rx:20px,ry:20px; classDef actor stroke:black,fill:#FFBDCA,rx:20px,ry:20px; classDef type stroke:red,fill:#FAB565,rx:20px,ry:20px; classDef name stroke:orange,fill:#FEF3BA,rx:20px,ry:20px; classDef dims stroke:black,fill:#c6c6c6,rx:20px,ry:20px; classDef infoobj stroke:#907010,fill:#fffa40,rx:20px,ry:20px classDef timespan stroke:blue,fill:#ddfffe,rx:20px,ry:20px classDef place stroke:#3a7a3a,fill:#aff090,rx:20px,ry:20px classDef event stroke:blue,fill:#96e0f6,rx:20px,ry:20px classDef literal stroke:black,fill:#f0f0e0; classDef classstyle stroke:black,fill:white; O1(activity8) class O1 event; O1-- type -->O1_0[AttributeAssignment] class O1_0 classstyle; O2(name10) class O2 name; O2-- type -->O2_0[Name] class O2_0 classstyle; O2-- content -->O2_3("''Previous Painting Title''") class O2_3 literal; O1-- assigned -->O2 O3(person15) class O3 actor; O3-- type -->O3_0[Person] class O3_0 classstyle; O3-- _label -->O3_3("''Painting Curator''") class O3_3 literal; O1-- carried_out_by -->O3 O4(time8) class O4 timespan; O4-- type -->O4_0[TimeSpan] class O4_0 classstyle; O4-- begin_of_the_begin -->O4_3("''1804-05-19''") class O4_3 literal; O4-- end_of_the_end -->O4_4("''1804-05-19''") class O4_4 literal; O1-- timespan -->O4 O1-- assigned_property -->O1_7("''identified_by''") class O1_7 literal; O5(object10) class O5 object; O5-- type -->O5_0[HumanMadeObject] class O5_0 classstyle; O5-- _label -->O5_3("''Current Painting Title''") class O5_3 literal; O6(aat: 300033618) class O6 type; O6-- type -->O6_0[Type] class O6_0 classstyle; O6-- _label -->O6_3("''Painting''") class O6_3 literal; O7(aat: 300435443) class O7 type; O7-- type -->O7_0[Type] class O7_0 classstyle; O7-- _label -->O7_3("''Type of Work''") class O7_3 literal; O6-- classified_as -->O7 O5-- classified_as -->O6 O8(aat: 300133025) class O8 type; O8-- type -->O8_0[Type] class O8_0 classstyle; O8-- _label -->O8_3("''Artwork''") class O8_3 literal; O5-- classified_as -->O8 O1-- assigned_to -->O5

Other Representations: JSON-LD (Raw) | JSON-LD (Playground) | Turtle (Raw) | Turtle (Styled)

"Style Of" Attribution

There is a common special case of wanting to assign not an individual (e.g. Rembrandt) or a group with specific identity (Workshop of Rembrandt) to the production of an object, but simply to say that it was produced as if it had been produced by some other actor. This is traditionally recorded as being "in the style of" a known artist. It is not correct to say that Rembrandt carried out the production, but a search for objects attributed (loosely speaking) to Rembrandt should discover this object. The assessment of "style of" attribution is a judgement decision that might be changed later as new evidence of the actual creator comes to light.

The approach taken for this case is to use an AttributeAssignment that associates a Production activity that is influenced_by the artist and classified_as being in the "style of" (aat:300404285). This prevent systems from mistakenly infering that the actor carried_out the production, but is consistent with the overall pattern.

This would also apply to cases where there is a "workshop of", "studio of", "circle of" and similar attributions in which there is doubt that there really was such a group, and thus there is reluctance to give that hypothetical group an identity. Instead of using the "style of" aat concept, it would use "workshop of" (aat:300404274), or other attribution qualifiers from AAT.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/activity/9", 
  "type": "AttributeAssignment", 
  "assigned": {
    "id": "https://linked.art/example/activity/10", 
    "type": "Production", 
    "classified_as": [
      {
        "id": "http://vocab.getty.edu/aat/300404285", 
        "type": "Type", 
        "_label": "Style Of"
      }
    ], 
    "influenced_by": [
      {
        "id": "https://linked.art/example/person/16", 
        "type": "Person", 
        "_label": "Well Known Artist"
      }
    ]
  }, 
  "assigned_to": {
    "id": "https://linked.art/example/object/11", 
    "type": "HumanMadeObject", 
    "_label": "Example Painting", 
    "classified_as": [
      {
        "id": "http://vocab.getty.edu/aat/300033618", 
        "type": "Type", 
        "_label": "Painting", 
        "classified_as": [
          {
            "id": "http://vocab.getty.edu/aat/300435443", 
            "type": "Type", 
            "_label": "Type of Work"
          }
        ]
      }, 
      {
        "id": "http://vocab.getty.edu/aat/300133025", 
        "type": "Type", 
        "_label": "Artwork"
      }
    ]
  }, 
  "assigned_property": "produced_by", 
  "carried_out_by": [
    {
      "id": "https://linked.art/example/person/17", 
      "type": "Person", 
      "_label": "Painting Curator"
    }
  ]
}
graph TD classDef object stroke:black,fill:#E1BA9C,rx:20px,ry:20px; classDef actor stroke:black,fill:#FFBDCA,rx:20px,ry:20px; classDef type stroke:red,fill:#FAB565,rx:20px,ry:20px; classDef name stroke:orange,fill:#FEF3BA,rx:20px,ry:20px; classDef dims stroke:black,fill:#c6c6c6,rx:20px,ry:20px; classDef infoobj stroke:#907010,fill:#fffa40,rx:20px,ry:20px classDef timespan stroke:blue,fill:#ddfffe,rx:20px,ry:20px classDef place stroke:#3a7a3a,fill:#aff090,rx:20px,ry:20px classDef event stroke:blue,fill:#96e0f6,rx:20px,ry:20px classDef literal stroke:black,fill:#f0f0e0; classDef classstyle stroke:black,fill:white; O1(activity9) class O1 event; O1-- type -->O1_0[AttributeAssignment] class O1_0 classstyle; O2(activity10) class O2 event; O2-- type -->O2_0[Production] class O2_0 classstyle; O3(aat: 300404285) class O3 type; O3-- type -->O3_0[Type] class O3_0 classstyle; O3-- _label -->O3_3("''Style Of''") class O3_3 literal; O2-- classified_as -->O3 O4(person16) class O4 actor; O4-- type -->O4_0[Person] class O4_0 classstyle; O4-- _label -->O4_3("''Well Known Artist''") class O4_3 literal; O2-- influenced_by -->O4 O1-- assigned -->O2 O5(object11) class O5 object; O5-- type -->O5_0[HumanMadeObject] class O5_0 classstyle; O5-- _label -->O5_3("''Example Painting''") class O5_3 literal; O6(aat: 300033618) class O6 type; O6-- type -->O6_0[Type] class O6_0 classstyle; O6-- _label -->O6_3("''Painting''") class O6_3 literal; O7(aat: 300435443) class O7 type; O7-- type -->O7_0[Type] class O7_0 classstyle; O7-- _label -->O7_3("''Type of Work''") class O7_3 literal; O6-- classified_as -->O7 O5-- classified_as -->O6 O8(aat: 300133025) class O8 type; O8-- type -->O8_0[Type] class O8_0 classstyle; O8-- _label -->O8_3("''Artwork''") class O8_3 literal; O5-- classified_as -->O8 O1-- assigned_to -->O5 O1-- assigned_property -->O1_6("''produced_by''") class O1_6 literal; O9(person17) class O9 actor; O9-- type -->O9_0[Person] class O9_0 classstyle; O9-- _label -->O9_3("''Painting Curator''") class O9_3 literal; O1-- carried_out_by -->O9

Other Representations: JSON-LD (Raw) | JSON-LD (Playground) | Turtle (Raw) | Turtle (Styled)

Context Specific Assertions

The basic pattern for making an assertion within some context is to reuse the AttributeAssignment activity, and have it be part of some larger activity. A good example of this is the assignment of a particular title to a work during an Exhibition. This could equally be part of the larger cataloging activity of an organization, an art dealer taking inventory, or similar.

There are two relationships to note with this pattern. The first is that the broader activity has a part which is the AttributeAssignment. This gives some basic temporal context for the assignment. There is also in many cases a set of objects or other resources that provide additional context. In the Exhibition case, the set of objects and their labels in the exhibit is involved in the provision of the Name of the individual object.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/activity/11", 
  "type": "Activity", 
  "_label": "Example Exhibition", 
  "classified_as": [
    {
      "id": "http://vocab.getty.edu/aat/300054766", 
      "type": "Type", 
      "_label": "Exhibiting"
    }
  ], 
  "used_specific_object": [
    {
      "id": "https://linked.art/example/Set/4", 
      "type": "Set", 
      "member": [
        {
          "id": "https://linked.art/example/object/12", 
          "type": "HumanMadeObject", 
          "_label": "Real Painting Name"
        }
      ]
    }
  ], 
  "part": [
    {
      "id": "https://linked.art/example/activity/12", 
      "type": "AttributeAssignment", 
      "assigned": {
        "id": "https://linked.art/example/name/11", 
        "type": "Name", 
        "content": "Exhibition Specific Name"
      }, 
      "assigned_property": "identified_by", 
      "assigned_to": {
        "id": "https://linked.art/example/object/12", 
        "type": "HumanMadeObject", 
        "_label": "Real Painting Name", 
        "classified_as": [
          {
            "id": "http://vocab.getty.edu/aat/300033618", 
            "type": "Type", 
            "_label": "Painting", 
            "classified_as": [
              {
                "id": "http://vocab.getty.edu/aat/300435443", 
                "type": "Type", 
                "_label": "Type of Work"
              }
            ]
          }, 
          {
            "id": "http://vocab.getty.edu/aat/300133025", 
            "type": "Type", 
            "_label": "Artwork"
          }
        ]
      }, 
      "involved": [{"id": "https://linked.art/example/Set/4","type": "Set"}], 
      "carried_out_by": [
        {
          "id": "https://linked.art/example/person/18", 
          "type": "Person", 
          "_label": "A. Curator"
        }
      ]
    }
  ]
}
graph TD classDef object stroke:black,fill:#E1BA9C,rx:20px,ry:20px; classDef actor stroke:black,fill:#FFBDCA,rx:20px,ry:20px; classDef type stroke:red,fill:#FAB565,rx:20px,ry:20px; classDef name stroke:orange,fill:#FEF3BA,rx:20px,ry:20px; classDef dims stroke:black,fill:#c6c6c6,rx:20px,ry:20px; classDef infoobj stroke:#907010,fill:#fffa40,rx:20px,ry:20px classDef timespan stroke:blue,fill:#ddfffe,rx:20px,ry:20px classDef place stroke:#3a7a3a,fill:#aff090,rx:20px,ry:20px classDef event stroke:blue,fill:#96e0f6,rx:20px,ry:20px classDef literal stroke:black,fill:#f0f0e0; classDef classstyle stroke:black,fill:white; O1(activity11) class O1 event; O1-- type -->O1_0[Activity] class O1_0 classstyle; O1-- _label -->O1_4("''Example Exhibition''") class O1_4 literal; O2(aat: 300054766) class O2 type; O2-- type -->O2_0[Type] class O2_0 classstyle; O2-- _label -->O2_3("''Exhibiting''") class O2_3 literal; O1-- classified_as -->O2 O3(activity12) class O3 event; O3-- type -->O3_0[AttributeAssignment] class O3_0 classstyle; O4(name11) class O4 name; O4-- type -->O4_0[Name] class O4_0 classstyle; O4-- content -->O4_3("''Exhibition Specific Name''") class O4_3 literal; O3-- assigned -->O4 O3-- assigned_property -->O3_4("''identified_by''") class O3_4 literal; O5(object12) class O5 object; O5-- type -->O5_0[HumanMadeObject] class O5_0 classstyle; O5-- _label -->O5_3("''Real Painting Name''") class O5_3 literal; O6(aat: 300033618) class O6 type; O6-- type -->O6_0[Type] class O6_0 classstyle; O6-- _label -->O6_3("''Painting''") class O6_3 literal; O7(aat: 300435443) class O7 type; O7-- type -->O7_0[Type] class O7_0 classstyle; O7-- _label -->O7_3("''Type of Work''") class O7_3 literal; O6-- classified_as -->O7 O5-- classified_as -->O6 O8(aat: 300133025) class O8 type; O8-- type -->O8_0[Type] class O8_0 classstyle; O8-- _label -->O8_3("''Artwork''") class O8_3 literal; O5-- classified_as -->O8 O3-- assigned_to -->O5 O9(Set4) class O9 infoobj; O9-- type -->O9_0[Set] class O9_0 classstyle; O3-- involved -->O9 O10(person18) class O10 actor; O10-- type -->O10_0[Person] class O10_0 classstyle; O10-- _label -->O10_3("''A. Curator''") class O10_3 literal; O3-- carried_out_by -->O10 O1-- part -->O3 O9-- member -->O5 O1-- used_specific_object -->O9

Other Representations: JSON-LD (Raw) | JSON-LD (Playground) | Turtle (Raw) | Turtle (Styled)

Inferred Data

Some assertions, or even entire resources, are computationally inferred from other data rather than being evidenced in primary source literature or history. It is useful to tag these resources as such, so that they can be treated appropriately when it comes to research making use of them: if the underlying data has errors, these errors will have been propogated to this resource.

The way that this can be signalled in the data is to add the "computer-generated" concept aat:300202389 to the resource in the classified_as field.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/activity/13", 
  "type": "Activity", 
  "_label": "Inferred Activity", 
  "classified_as": [
    {
      "id": "http://vocab.getty.edu/aat/300202389", 
      "type": "Type", 
      "_label": "Computer Generated"
    }
  ], 
  "carried_out_by": [
    {
      "id": "https://linked.art/example/actor/2", 
      "type": "Actor", 
      "_label": "Performer of inferred activity"
    }
  ]
}
graph TD classDef object stroke:black,fill:#E1BA9C,rx:20px,ry:20px; classDef actor stroke:black,fill:#FFBDCA,rx:20px,ry:20px; classDef type stroke:red,fill:#FAB565,rx:20px,ry:20px; classDef name stroke:orange,fill:#FEF3BA,rx:20px,ry:20px; classDef dims stroke:black,fill:#c6c6c6,rx:20px,ry:20px; classDef infoobj stroke:#907010,fill:#fffa40,rx:20px,ry:20px classDef timespan stroke:blue,fill:#ddfffe,rx:20px,ry:20px classDef place stroke:#3a7a3a,fill:#aff090,rx:20px,ry:20px classDef event stroke:blue,fill:#96e0f6,rx:20px,ry:20px classDef literal stroke:black,fill:#f0f0e0; classDef classstyle stroke:black,fill:white; O1(activity13) class O1 event; O1-- type -->O1_0[Activity] class O1_0 classstyle; O1-- _label -->O1_4("''Inferred Activity''") class O1_4 literal; O2(aat: 300202389) class O2 type; O2-- type -->O2_0[Type] class O2_0 classstyle; O2-- _label -->O2_3("''Computer Generated''") class O2_3 literal; O1-- classified_as -->O2 O3(actor2) class O3 actor; O3-- type -->O3_0[Actor] class O3_0 classstyle; O3-- _label -->O3_3("''Performer of inferred activity''") class O3_3 literal; O1-- carried_out_by -->O3

Other Representations: JSON-LD (Raw) | JSON-LD (Playground) | Turtle (Raw) | Turtle (Styled)