Digital Integration

Table of Contents

Up: Model

Introduction

It is very unlikely that the descriptions provided in this model are the only digital representations of the resources that they describe. For building human readable representations, or just for linking to existing web pages, these other digital resources should be referenced.

Image

The most common scenario is if there are one or more images available of the object. This is described by using the representation property, which has a VisualItem as its value. The id of the image is the URI at which it is available, and additional properties to describe the image should also be given, such as a label and its media type (sometimes called a MIME type) in format. The digital image should be classified as such using aat:300215302.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/object/32", 
  "type": "HumanMadeObject", 
  "_label": "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"
    }
  ]
}
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(object32) class O1 object; O1-- type -->O1_0[HumanMadeObject] class O1_0 classstyle; O1-- _label -->O1_4("''Painting''") class O1_4 literal; 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 O4(aat:300133025) class O4 type; O4-- type -->O4_0[Type] class O4_0 classstyle; O4-- _label -->O4_3("''Artwork''") class O4_3 literal; O1-- classified_as -->O4
Other Representations: JSON-LD (Raw) | JSON-LD (Playground) | Turtle (Raw) | Turtle (Styled)

Home Page

Another very common scenario is that there is a web page about the object, perhaps managed by a collections management system. For humans, this page is much more useful than the data intended for machines. It can be referenced with the subject_of property, and points to a LinguisticObject which is classified_as a web page, or aat:300264578. As with digital images, the homepage should have a format of "text/html", the media type for HTML.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/object/33", 
  "type": "HumanMadeObject", 
  "_label": "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"
    }
  ], 
  "subject_of": [
    {
      "id": "http://example.org/collection/1/painting", 
      "type": "LinguisticObject", 
      "_label": "Homepage for Painting", 
      "classified_as": [
        {
          "id": "http://vocab.getty.edu/aat/300264578", 
          "type": "Type", 
          "_label": "Web Page"
        }, 
        {
          "id": "http://vocab.getty.edu/aat/300404670", 
          "type": "Type", 
          "_label": "Primary"
        }
      ], 
      "format": "text/html"
    }
  ]
}
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(object33) class O1 object; O1-- type -->O1_0[HumanMadeObject] class O1_0 classstyle; O1-- _label -->O1_4("''Painting''") class O1_4 literal; 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 O4(aat:300133025) class O4 type; O4-- type -->O4_0[Type] class O4_0 classstyle; O4-- _label -->O4_3("''Artwork''") class O4_3 literal; O1-- classified_as -->O4 O5(http://example.org/collection/1/painting) class O5 infoobj; O5-- type -->O5_0[LinguisticObject] class O5_0 classstyle; O5-- _label -->O5_3("''Homepage for Painting''") class O5_3 literal; O6(aat:300264578) class O6 type; O6-- type -->O6_0[Type] class O6_0 classstyle; O6-- _label -->O6_3("''Web Page''") class O6_3 literal; O5-- classified_as -->O6 O7(aat:300404670) class O7 type; O7-- type -->O7_0[Type] class O7_0 classstyle; O7-- _label -->O7_3("''Primary''") class O7_3 literal; O5-- classified_as -->O7 O5-- format -->O5_5("''text/html''") class O5_5 literal; O1-- subject_of -->O5
Other Representations: JSON-LD (Raw) | JSON-LD (Playground) | Turtle (Raw) | Turtle (Styled)

Other Pages

While the publishing organization might have a home page for their object as above, there are likely to be many other web pages about the object as well in different systems. These pages follow the same model of being a LinguisticObject, but instead use the referred_to_by property for the link.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/object/34", 
  "type": "HumanMadeObject", 
  "_label": "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"
    }
  ], 
  "referred_to_by": [
    {
      "id": "http://example.org/journal/article", 
      "type": "LinguisticObject", 
      "_label": "Webpage that discusses Painting, but is not its homepage", 
      "classified_as": [
        {
          "id": "http://vocab.getty.edu/aat/300264578", 
          "type": "Type", 
          "_label": "Web Page"
        }
      ], 
      "format": "text/html"
    }
  ]
}
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(object34) class O1 object; O1-- type -->O1_0[HumanMadeObject] class O1_0 classstyle; O1-- _label -->O1_4("''Painting''") class O1_4 literal; 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 O4(aat:300133025) class O4 type; O4-- type -->O4_0[Type] class O4_0 classstyle; O4-- _label -->O4_3("''Artwork''") class O4_3 literal; O1-- classified_as -->O4 O5(http://example.org/journal/article) class O5 infoobj; O5-- type -->O5_0[LinguisticObject] class O5_0 classstyle; O5-- _label -->O5_3("''Webpage that discusses Painting, but is not its homepage''") class O5_3 literal; O6(aat:300264578) class O6 type; O6-- type -->O6_0[Type] class O6_0 classstyle; O6-- _label -->O6_3("''Web Page''") class O6_3 literal; O5-- classified_as -->O6 O5-- format -->O5_5("''text/html''") class O5_5 literal; O1-- referred_to_by -->O5
Other Representations: JSON-LD (Raw) | JSON-LD (Playground) | Turtle (Raw) | Turtle (Styled)

IIIF

IIIF, the International Image Interoperability Framework, is an increasingly common way to make images and descriptions intended to be displayed to humans available. There are two primary alignments with the CRM model, which mirror the above Image and Web Page patterns.

IIIF Images

The IIIF Image API in CRM can be considered a VisualItem, even though it is a service for obtaining them, and can thus be referenced with the same representation property. In order to know that the URI is an Image API endpoint, it should not have a format and instead have a conforms_to property with the value "http://iiif.io/api/image". This follows the protocol pattern in IIIF Image Information documents.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/object/35", 
  "type": "HumanMadeObject", 
  "_label": "Sculpture", 
  "classified_as": [
    {
      "id": "http://vocab.getty.edu/aat/300047090", 
      "type": "Type", 
      "_label": "Sculpture", 
      "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"
    }
  ], 
  "representation": [
    {
      "id": "http://iiif.example.org/image/1", 
      "type": "VisualItem", 
      "_label": "IIIF Image API for Sculpture", 
      "conforms_to": [
        {
          "id": "http://iiif.io/api/image"
        }
      ]
    }
  ]
}
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(object35) class O1 object; O1-- type -->O1_0[HumanMadeObject] class O1_0 classstyle; O1-- _label -->O1_4("''Sculpture''") class O1_4 literal; O2(aat:300047090) class O2 type; O2-- type -->O2_0[Type] class O2_0 classstyle; O2-- _label -->O2_3("''Sculpture''") 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 O4(aat:300133025) class O4 type; O4-- type -->O4_0[Type] class O4_0 classstyle; O4-- _label -->O4_3("''Artwork''") class O4_3 literal; O1-- classified_as -->O4 O5(http://iiif.example.org/image/1) class O5 infoobj; O5-- type -->O5_0[VisualItem] class O5_0 classstyle; O5-- _label -->O5_3("''IIIF Image API for Sculpture''") class O5_3 literal; O6(http://iiif.io/api/image) O5-- conforms_to -->O6 O1-- representation -->O5
Other Representations: JSON-LD (Raw) | JSON-LD (Playground) | Turtle (Raw) | Turtle (Styled)

IIIF Manifests

The IIIF Presentation API in CRM can be considered an InformationObject that is about the object. The property used to refer to it from the art object is subject_of. It conformsTo the Presentation API URI, but can be given a format for JSON-LD that includes the context as a profile.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/object/36", 
  "type": "HumanMadeObject", 
  "_label": "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"
    }
  ], 
  "subject_of": [
    {
      "id": "http://iiif.example.org/presentation/1/manifest.json", 
      "type": "InformationObject", 
      "conforms_to": [
        {
          "id": "http://iiif.io/api/presentation"
        }
      ], 
      "format": "application/ld+json;profile=\"http://iiif.io/api/presentation/2/context.json\""
    }
  ]
}
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(object36) class O1 object; O1-- type -->O1_0[HumanMadeObject] class O1_0 classstyle; O1-- _label -->O1_4("''Painting''") class O1_4 literal; 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 O4(aat:300133025) class O4 type; O4-- type -->O4_0[Type] class O4_0 classstyle; O4-- _label -->O4_3("''Artwork''") class O4_3 literal; O1-- classified_as -->O4 O5(http://iiif.example.org/presentation/1/manifest.json) class O5 infoobj; O5-- type -->O5_0[InformationObject] class O5_0 classstyle; O6(http://iiif.io/api/presentation) O5-- conforms_to -->O6 O5-- format -->O5_4("''application/ld+json;profile="http://iiif.io/api/presentation/2/context.json"''") class O5_4 literal; O1-- subject_of -->O5
Other Representations: JSON-LD (Raw) | JSON-LD (Playground) | Turtle (Raw) | Turtle (Styled)