Places

Table of Contents


Introduction

Places are a foundational aspect of the model. Events and activities occur at both a time and a place, objects of all sizes have locations, and people and organizations have associated locations where they reside or are otherwise associated with. Places are extents in space, independent of time or what may or may not be present in that space. For built works such as architecture and works that are fixed in location due to their media (a cave drawing for example), Place is a defining characteristic.

Places also form a core integration point with Geographical Information Systems (GIS) and map based user interfaces. By aligning with these other systems, we enable better usability and interactivity with our data.

Core Information

All of the core information for resources is available for Place, including identifiers, classifications, labels, names, statements and so forth.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/place/9", 
  "type": "Place", 
  "_label": "Los Angeles, CA", 
  "identified_by": [
    {
      "id": "https://linked.art/example/name/18", 
      "type": "Name", 
      "content": "Los Angeles"
    }
  ], 
  "classified_as": [
    {
      "id": "http://vocab.getty.edu/aat/300008389", 
      "type": "Type", 
      "_label": "City"
    }
  ]
}
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(place9) class O1 place; O1-- type -->O1_0[Place] class O1_0 classstyle; O1-- _label -->O1_4("''Los Angeles, CA''") class O1_4 literal; O2(name18) class O2 name; O2-- type -->O2_0[Name] class O2_0 classstyle; O2-- content -->O2_3("''Los Angeles''") class O2_3 literal; O1-- identified_by -->O2 O3(aat: 300008389) class O3 type; O3-- type -->O3_0[Type] class O3_0 classstyle; O3-- _label -->O3_3("''City''") class O3_3 literal; O1-- classified_as -->O3

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

Partitioning

While it is recommended that external gazeteer systems be used for recording the spatial hierarchy of Places, it is useful to be able to position historical locations within their larger geospatial context. This uses the same partitioning pattern as all other classes in the model.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/place/10", 
  "type": "Place", 
  "_label": "Ancient City", 
  "classified_as": [
    {
      "id": "http://vocab.getty.edu/aat/300008389", 
      "type": "Type", 
      "_label": "City"
    }
  ], 
  "part_of": [
    {
      "id": "https://linked.art/example/place/11", 
      "type": "Place", 
      "_label": "Ancient Province", 
      "classified_as": [
        {
          "id": "http://vocab.getty.edu/aat/300000774", 
          "type": "Type", 
          "_label": "Province"
        }
      ]
    }
  ]
}
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(place10) class O1 place; O1-- type -->O1_0[Place] class O1_0 classstyle; O1-- _label -->O1_4("''Ancient City''") class O1_4 literal; O2(aat: 300008389) class O2 type; O2-- type -->O2_0[Type] class O2_0 classstyle; O2-- _label -->O2_3("''City''") class O2_3 literal; O1-- classified_as -->O2 O3(place11) class O3 place; O3-- type -->O3_0[Place] class O3_0 classstyle; O3-- _label -->O3_3("''Ancient Province''") class O3_3 literal; O4(aat: 300000774) class O4 type; O4-- type -->O4_0[Type] class O4_0 classstyle; O4-- _label -->O4_3("''Province''") class O4_3 literal; O3-- classified_as -->O4 O1-- part_of -->O3

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

Geospatial Extent

In order to plot the extent of the place on a map, or calculate the geospatial overlap of places, it is useful to have a geometry that describes the place's boundaries in the real world. This could be very detailed or a simple bounding box within which the place fits. It could even be a center point and a radius.

This is handled by the Geometry class, an extension to the core ontology. The Geometry has a value, similar to a LinguisticObject, which records the machine-readable description of the spatial extent. It has a format (for example GeoJSON or WKT), and is expressed in terms of a geospatial reference system such as Latitude/Longitude.

Fixme

top = Place()
top._label = "New Zealand"
top.classified_as = instances['nation']
geom = Geometry()
geom.content = "POLYGON((165.74 -33.55, -179.96 -33.55, -179.96 -47.8, 165.74 -47.8, 165.74 -33.55))"
iso13249 = InformationObject()
iso13249._label = "ISO/IEC 13249-3:2016"
geom.conforms_to = iso13249
top.identified_by = geom
system = CoordinateSystem()
system._label = "WGS 84"

Buildings and Locations

It is easy to confuse places with the constructions that exist at the place. While rare, there are situations when buildings are moved between locations. The building, just like a painting, is thus modeled as an object that has a current location in space. Activities take place in the place, rather than in the object. The granularity of the place compared to the building may be different due to underlying data management.

{
  "@context": "https://linked.art/ns/v1/linked-art.json", 
  "id": "https://linked.art/example/object/63", 
  "type": "HumanMadeObject", 
  "_label": "Example Building", 
  "classified_as": [
    {
      "id": "http://vocab.getty.edu/aat/300004792", 
      "type": "Type", 
      "_label": "Building"
    }
  ], 
  "current_location": {
    "id": "https://linked.art/example/place/12", 
    "type": "Place", 
    "_label": "Location of Example Building", 
    "classified_as": [
      {
        "id": "http://vocab.getty.edu/aat/300008077", 
        "type": "Type", 
        "_label": "City Block"
      }
    ]
  }
}
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(object63) class O1 object; O1-- type -->O1_0[HumanMadeObject] class O1_0 classstyle; O1-- _label -->O1_4("''Example Building''") class O1_4 literal; O2(aat: 300004792) class O2 type; O2-- type -->O2_0[Type] class O2_0 classstyle; O2-- _label -->O2_3("''Building''") class O2_3 literal; O1-- classified_as -->O2 O3(place12) class O3 place; O3-- type -->O3_0[Place] class O3_0 classstyle; O3-- _label -->O3_3("''Location of Example Building''") class O3_3 literal; O4(aat: 300008077) class O4 type; O4-- type -->O4_0[Type] class O4_0 classstyle; O4-- _label -->O4_3("''City Block''") class O4_3 literal; O3-- classified_as -->O4 O1-- current_location -->O3

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