linked-art / linked.art

Development of a specification for linked data in museums, using existing ontologies and frameworks to build usable, understandable APIs
https://linked.art/
Other
91 stars 13 forks source link

Mapping Multiple Current Locations into single HumanMadeObject #543

Closed bluebinary closed 7 months ago

bluebinary commented 9 months ago

At the Getty (and I'm sure at other institutions) we have a need to be able to map multiple current locations into the same HumanMadeObject in the case where a single Object record in our collections management system (TMS in our case) represents multiple parts, and where some of the those parts are in one location, and other parts are in another location.

While the single Object record represents multiple separable parts, the multiple parts have not actually been catalogued separately into their own distinct collections management system Object records, and it is extremely unlikely that they ever will be due to there being scant data to make cataloguing the individual parts worthwhile as well as due to time and resource constraints.

As such we have single Object records in TMS representing multiple separable parts, with those single Object records being assigned multiple display locations as well as sometimes one or more storage locations so that staff can keep track of where all of the multiple parts catalogued under this single record are actually located.

From reading the current Linked.Art documentation, and from our discussion during the Linked.Art call on 12/13, it seems there are at least three possible solutions to this need:

There may also be other ways to accomplish this need, and workable, semantically valid alternatives are welcomed. The three discussed solutions listed above are illustrated below:

Revising the cardinality of current_location to hold multiple Place references rather than a single Place reference:

{
  "id": "object/1",
  "type": "HumanMadeObject",
  "_label": "(Single Object record representing multiple separable parts)",
  "current_location": [
    {
      "id": "place/1",
      "type": "Place",
      "_label": "Place #1"
    },
    {
      "id": "place/2",
      "type": "Place",
      "_label": "Place #2"
    },
    ...
  ]
}

Partitioning the HumanMadeObject:

{
  "id": "object/1",
  "type": "HumanMadeObject",
  "_label": "(Single Object record representing multiple separable parts)",
  "part": [
    {
      "type": "HumanMadeObject",
      "_label": "(Synthetic HumanMadeObject record to carry one of the current locations)",
      "current_location": {
        "id": "place/1",
        "type": "Place",
        "_label": "Place #1"
      }
    },
    {
      "type": "HumanMadeObject",
      "_label": "(Synthetic HumanMadeObject record to carry one of the current locations)",
      "current_location": {
        "id": "place/2",
        "type": "Place",
        "_label": "Place #2"
      },
      ...
    }
  ]
}

Partitioning the HumanMadeObject's current_location:

{
  "id": "object/1",
  "type": "HumanMadeObject",
  "_label": "(Single Object record representing multiple separable parts)",
  "current_location": {
    "type": "Place",
    "_label": "(Synthetic, partitioned Place record to carry each of the multiple current locations)",
    "part": [
      {
        "id": "place/1",
        "type": "Place",
        "_label": "Place #1"
      },
      {
        "id": "place/2",
        "type": "Place",
        "_label": "Place #2"
      },
     ...
    ]
  }
}

Feedback and thoughts on any of the above or suggestions for alternative ways to accomplish the same would be most welcome. This need isn't just specific to museum collections but very likely would also be of use for archival collections.

azaroth42 commented 7 months ago

Discussed on a call -- better option is to partition the object if at all possible, as tracking "this object is here and it's also here" doesn't really help anyone. Having the same thing in two places at once is also very weird (without partitioning)

Partitioning the place is interesting, but very artificial -- the two locations could be entirely different, and when the object moves again, the synthetic place disappears, which would be annoying to track. Compared to partitioning the object which is just better description.