Linked Art API: Type Structure

Introduction

Concepts, called Types, are a core part of the model and present in practically every resource description. They give access to external vocabularies, such as the Getty's Art and Architecture Thesaurus, in order to add classifications to entities described. As they are external entities, rather than the focus of the Linked Art documentation, they are only slightly more detailed than any other entity reference, allowing an additional meta-classification to be asserted about the Type.

The Type pattern is also used for more specific concept types:

Types are described in the base patterns of the model documentation, and examples are present for practically every class.

Property Definitions

Properties of Types

Property Name Datatype Requirement Description
id string Required The value MUST be a URI identifying the concept
type string Required The class of the concept, which MUST be one of the following values: "Type", "Currency", "Language", "Material", or "MeasurementUnit"
_label string Recommended A human readable label for the concept, intended for developers
classified_as array Recommended An array of json objects, each of which is a further classification of the concept and MUST follow these requirements for Type

Property Diagram

diagram

Incoming Properties

Types and other instances of concepts are typically found as the object of the following properties. This list is not exhaustive, but is intended to cover the likely cases.

Property Name Source Class Description
classified_as All Almost every entity can be classified as a Type
technique Activity Activities (of all sorts) can have a technique, which is modeled as a Type
motivated_by Activity Activities can also be motivated by a Type
about LinguisticObject, VisualItem Textual and Visual Works can have subjects, which are modeled as Types
assigned AttributeAssignment The classification of an object might be assigned as part of a documented Attribute Assignment
language LinguisticObject The language of linguistic content is modeled as a Language
currency MonetaryAmount The currency of a MonetaryAmount is modeled as a Currency
unit Dimension The unit of a Dimension is modeled as a MeasurementUnit
made_of Material The materials of a HumanMadeObject are modeled as Materials

Example

A painting is classified as a painting, which is in turn classified as a type of work.

{
  "@context": "https://linked.art/ns/v1/linked-art.json",
  "id": "https://linked.art/example/object/10",
  "type": "HumanMadeObject",
  "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"
        }
      ]
    }
  ]
}

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:#1010FF,fill:#96e0f6,rx:20px,ry:20px classDef literal stroke:black,fill:#f0f0e0; classDef classstyle stroke:black,fill:white; O1(object10) class O1 object; O1-- type -->O1_0[HumanMadeObject] class O1_0 classstyle; O2(aat:300033618) class O2 type; O2-- type -->O2_0[Type] class O2_0 classstyle; O2-- _label -->O2_3("''Painting''") class O2_3 literal; O3(aat:300435443) class O3 type; O3-- type -->O3_0[Type] class O3_0 classstyle; O3-- _label -->O3_3("''Type of Work''") class O3_3 literal; O2-- classified_as -->O3 O1-- classified_as -->O2
Other Representations: JSON-LD (raw) | JSON-LD (playground) | Turtle (raw) | Turtle (styled)

Extended Definition

If a Type is created by the publishing institution rather than referring to a commonly used, existing vocabulary, then it is useful to provide an extended description of the Type at the URI given in id. This is not part of the Linked Art API, but is provided as a recommendation.

When the URI of the Type is dereferenced as if it were an endpoint, then the following properties are also available in addition to those above.

Property Name Datatype Requirement Description
identified_by array Recommended An array of json objects, each of which is either a name of the Type and MUST follow the requirements for Name, or an identifier for the Type and MUST follow the requirements for Identifier
referred_to_by array Optional An array of json objects, each of which is a human readable statement about the Type and MUST follow the requirements for Statement
broader array Optional An array of json objects, each of which is a Type that the current Type is narrower than and MUST follow the requirements for an entity reference to a Type
member_of array Optional An array of json objects, each of which is a Set that the current Type is a member of and MUST follow the requirements for an entity reference to a Set

If an endpoint name is needed, then concept is recommended, resulting in a URIs similar to:

https://linked.art/example/concept/1

Extended Example

{
  "@context": "https://linked.art/ns/v1/linked-art.json",
  "id": "https://linked.art/example/concept/0",
  "type": "Type",
  "_label": "GAN Art",
  "classified_as": [
    {
      "id": "http://vocab.getty.edu/aat/300435443",
      "type": "Type",
      "_label": "Type of Work"
    }
  ],
  "identified_by": [
    {
      "type": "Identifier",
      "classified_as": [
        {
          "id": "http://vocab.getty.edu/aat/300404621",
          "type": "Type",
          "_label": "Owner-Assigned Number"
        }
      ],
      "content": "186_gan_art"
    },
    {
      "type": "Name",
      "classified_as": [
        {
          "id": "http://vocab.getty.edu/aat/300404670",
          "type": "Type",
          "_label": "Primary Name"
        }
      ],
      "content": "Generative Adversarial Network (GAN) Generated Art",
      "language": [
        {
          "id": "http://vocab.getty.edu/aat/300388277",
          "type": "Language",
          "_label": "English"
        }
      ]
    }
  ],
  "referred_to_by": [
    {
      "type": "LinguisticObject",
      "classified_as": [
        {
          "id": "http://vocab.getty.edu/aat/300435416",
          "type": "Type",
          "_label": "Description",
          "classified_as": [
            {
              "id": "http://vocab.getty.edu/aat/300418049",
              "type": "Type",
              "_label": "Brief Text"
            }
          ]
        }
      ],
      "content": "The generation of art by a process of training a machine learning algorithm to create the art, and a second algorithm to classify it, and then picking the higest classified image."
    }
  ],
  "broader": [
    {
      "id": "http://vocab.getty.edu/aat/300069478",
      "type": "Type",
      "_label": "Computer Art"
    }
  ]
}

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:#1010FF,fill:#96e0f6,rx:20px,ry:20px classDef literal stroke:black,fill:#f0f0e0; classDef classstyle stroke:black,fill:white; O1(concept0) class O1 type; O1-- type -->O1_0[Type] class O1_0 classstyle; O1-- _label -->O1_4("''GAN Art''") class O1_4 literal; O2(aat:300435443) class O2 type; O2-- type -->O2_0[Type] class O2_0 classstyle; O2-- _label -->O2_3("''Type of Work''") class O2_3 literal; O1-- classified_as -->O2 O3( _ ) class O3 name; O3-- type -->O3_0[Identifier] class O3_0 classstyle; O4(aat:300404621) class O4 type; O4-- type -->O4_0[Type] class O4_0 classstyle; O4-- _label -->O4_3("''Owner-Assigned Number''") class O4_3 literal; O3-- classified_as -->O4 O3-- content -->O3_3("''186_gan_art''") class O3_3 literal; O1-- identified_by -->O3 O5( _ ) class O5 name; O5-- type -->O5_0[Name] class O5_0 classstyle; O6(aat:300404670) class O6 type; O6-- type -->O6_0[Type] class O6_0 classstyle; O6-- _label -->O6_3("''Primary Name''") class O6_3 literal; O5-- classified_as -->O6 O5-- content -->O5_3("''Generative Adversarial Network (GAN) Generated Art''") class O5_3 literal; O7(aat:300388277) class O7 type; O7-- type -->O7_0[Language] class O7_0 classstyle; O7-- _label -->O7_3("''English''") class O7_3 literal; O5-- language -->O7 O1-- identified_by -->O5 O8( _ ) class O8 infoobj; O8-- type -->O8_0[LinguisticObject] class O8_0 classstyle; O9(aat:300435416) class O9 type; O9-- type -->O9_0[Type] class O9_0 classstyle; O9-- _label -->O9_3("''Description''") class O9_3 literal; O10(aat:300418049) class O10 type; O10-- type -->O10_0[Type] class O10_0 classstyle; O10-- _label -->O10_3("''Brief Text''") class O10_3 literal; O9-- classified_as -->O10 O8-- classified_as -->O9 O8-- content -->O8_3("''The generation of art by a process of training a machine learning algorithm to create the art, and a second algorithm to classify it, and then picking the higest classified image.''") class O8_3 literal; O1-- referred_to_by -->O8 O11(aat:300069478) class O11 type; O11-- type -->O11_0[Type] class O11_0 classstyle; O11-- _label -->O11_3("''Computer Art''") class O11_3 literal; O1-- broader -->O11
Other Representations: JSON-LD (raw) | JSON-LD (playground) | Turtle (raw) | Turtle (styled)