{"id":"linked-art/api/schema-physical-object","relativePath":"linked-art/api/schema-physical-object.md","title":"Linked Art API Schema: Human-Made Object","markdown":"# Linked Art API Schema: Human-Made Object\n\n**Last refreshed:** 2026-07-06\n\nSource: [Physical Object schema docs](https://linked.art/api/1.0/schema_docs/object/) and [object.json](https://linked.art/api/1.0/schema/object.json), part of Linked Art API 1.0, published under [CC BY 4.0](http://creativecommons.org/licenses/by/4.0/). This is a project summary; the upstream schema is authoritative.\n\n## Purpose\n\nThe Physical Object schema describes `crm:E22_Human-Made_Object`: a human-made object, a part of one, or a natural object whose value is imbued through interaction with human culture. In Linked Art API terms this is the core `HumanMadeObject` endpoint shape.\n\nRelated upstream references:\n\n- [Physical Object API endpoint](https://linked.art/api/1.0/endpoint/physical_object/)\n- [Object model documentation](https://linked.art/model/object/)\n\n## Top-Level Constraints\n\n- Schema type: object.\n- CRM class: `crm:E22_Human-Made_Object`.\n- Additional top-level properties are not allowed.\n- `@context`: required.\n- `id`: required URI string for the entity.\n- `type`: required class string. The practical Linked Art class is `HumanMadeObject`.\n- `_label`: required developer-facing human-readable label.\n\n## Permitted Top-Level Fields\n\n- `identified_by`: array of `Name` or `Identifier` structures.\n- `classified_as`: array of `Type` structures that classify this object.\n- `referred_to_by`: array of embedded statements or textual references about the object.\n- `equivalent`: array of compact references to equivalent identities.\n- `representation`: array of embedded `VisualItem` structures linked through digital objects.\n- `member_of`: array of `Set` references.\n- `subject_of`: array of embedded `LinguisticObject` web pages or digital objects focused on this object.\n- `attributed_by`: array of `AttributeAssignment` structures relating another entity to this object.\n- `dimension`: array of `Dimension` structures.\n- `made_of`: array of `Material` references.\n- `part_of`: compact reference to another `HumanMadeObject` of which this object is part.\n- `current_owner`: array of `Person` or `Group` references.\n- `current_custodian`: array of `Person` or `Group` references, if different from owner.\n- `current_permanent_custodian`: array of `Person` or `Group` references for normal custody when current custody differs.\n- `current_location`: `Place` reference for current location.\n- `current_permanent_location`: `Place` reference for normal permanent location when current location differs.\n- `held_or_supported_by`: physical object reference for the object that holds, contains, or supports this object.\n- `used_for`: array of activities in which this object was used.\n- `shows`: array of `VisualItem` references shown by the object.\n- `carries`: array of `LinguisticObject` references carried by the object.\n- `produced_by`: production activity for the object.\n- `destroyed_by`: destruction event for the object.\n- `removed_by`: array of part-removal activities in which this object was removed from another object.\n- `encountered_by`: array of encounter activities in which this object was found, discovered, or encountered.\n- `modified_by`: array of modification activities in which this object was modified.\n- `changed_ownership_through`: array of acquisition activities in which ownership changed.\n\n## Embedded Structures Highlighted By The Schema\n\n`identified_by` items can be:\n\n- `Name` structures, with required `type` and `content`, plus optional `_label`, nested `identified_by`, `referred_to_by`, `classified_as`, `language`, and `part`.\n- `Identifier` structures, following the shared identifier pattern.\n\n`referred_to_by` items are embedded `LinguisticObject` statements:\n\n- `type`: required.\n- `content`: required.\n- `_label`, `identified_by`, `classified_as`, `referred_to_by`, `language`, and `format` are allowed.\n\n`representation` items are embedded `VisualItem` structures:\n\n- `type`: required.\n- `_label`, `identified_by`, `classified_as`, `referred_to_by`, and `digitally_shown_by` are allowed.\n- Nested digital objects can carry `access_point`, `format`, and `conforms_to`.\n\n`made_of` items reference `Material` concepts:\n\n- `id`: required.\n- `type`: required.\n- `_label` and `equivalent` are allowed.\n\n`part_of`, `held_or_supported_by`, and current object containment references point to other `HumanMadeObject` records and should remain object references, not display strings.\n\n## Current State Fields\n\nThe schema separates current legal, custody, and location state:\n\n- `current_owner`: current title holder.\n- `current_custodian`: current keeper if different from owner.\n- `current_permanent_custodian`: normal keeper when current custody is temporary.\n- `current_location`: current place.\n- `current_permanent_location`: normal place when current location is temporary.\n- `held_or_supported_by`: current physical holder, container, or support object.\n\nThis distinction is important for exhibitions, loans, storage moves, and archival containment.\n\n## Lifecycle And Provenance Activity Shapes\n\nThe schema uses activity/event structures for object lifecycle and provenance:\n\n- `produced_by`: production or creation of the object.\n- `destroyed_by`: destruction event.\n- `removed_by`: part-removal activities, including a `diminished` reference to the object from which this object was removed.\n- `encountered_by`: encounter, find, or discovery activity.\n- `modified_by`: modification activities.\n- `changed_ownership_through`: acquisition activities, including `transferred_title_from` and `transferred_title_to`.\n- `used_for`: activities in which the object was used.\n\nThese activity structures support the normal Linked Art activity fields: `type`, `_label`, `identified_by`, `classified_as`, `referred_to_by`, `took_place_at`, `timespan`, `caused_by`, `carried_out_by`, `used_specific_object`, `influenced_by`, `technique`, `during`, `after`, `before`, and `part_of`.\n\n## Content Relationships\n\nThe schema keeps physical carriers separate from content:\n\n- `shows` references `VisualItem` content shown by the object.\n- `carries` references `LinguisticObject` content carried by the object.\n- `representation` references digital or visual surrogates of the object.\n\nThese must not be collapsed into object identity or image URL fields.\n\n## Meta Museum Notes\n\nMeta Museum already treats `HumanMadeObject` as the central carrier record shape. Existing records and tests preserve object identity, equivalents, dimensions, materials, production, ownership, custody, location, part relationships, visual content, linguistic content, provenance activities, and current state without flattening them into display-only text.\n\nThis expanded schema adds the endpoint-level validation target for object exports: required identity fields, no unexpected top-level properties, explicit current state fields, object/content/digital separation, and lifecycle/provenance activity evidence.\n\n## Test Ideas\n\n- Validate representative `HumanMadeObject` records against `object.json`.\n- Assert `@context`, `id`, `type`, and `_label` are present.\n- Assert unknown top-level properties fail schema validation.\n- Preserve `made_of`, `dimension`, `part_of`, and `held_or_supported_by`.\n- Preserve `current_owner`, `current_custodian`, `current_permanent_custodian`, `current_location`, and `current_permanent_location` as distinct fields.\n- Preserve `shows`, `carries`, and `representation` as separate carrier/content/surrogate relationships.\n- Preserve `produced_by`, `destroyed_by`, `removed_by`, `encountered_by`, `modified_by`, `used_for`, and `changed_ownership_through` activity evidence.\n","sections":[{"level":2,"heading":"Purpose","anchor":"purpose"},{"level":2,"heading":"Top-Level Constraints","anchor":"top-level-constraints"},{"level":2,"heading":"Permitted Top-Level Fields","anchor":"permitted-top-level-fields"},{"level":2,"heading":"Embedded Structures Highlighted By The Schema","anchor":"embedded-structures-highlighted-by-the-schema"},{"level":2,"heading":"Current State Fields","anchor":"current-state-fields"},{"level":2,"heading":"Lifecycle And Provenance Activity Shapes","anchor":"lifecycle-and-provenance-activity-shapes"},{"level":2,"heading":"Content Relationships","anchor":"content-relationships"},{"level":2,"heading":"Meta Museum Notes","anchor":"meta-museum-notes"},{"level":2,"heading":"Test Ideas","anchor":"test-ideas"}],"html":"<h1 id=\"linked-art-api-schema-human-made-object\">Linked Art API Schema: Human-Made Object</h1>\n<p><strong>Last refreshed:</strong> 2026-07-06</p>\n<p>Source: <a href=\"https://linked.art/api/1.0/schema_docs/object/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">Physical Object schema docs</a> and <a href=\"https://linked.art/api/1.0/schema/object.json\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">object.json</a>, part of Linked Art API 1.0, published under <a href=\"http://creativecommons.org/licenses/by/4.0/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">CC BY 4.0</a>. This is a project summary; the upstream schema is authoritative.</p>\n<h2 id=\"purpose\">Purpose</h2>\n<p>The Physical Object schema describes `crm:E22_Human-Made_Object`: a human-made object, a part of one, or a natural object whose value is imbued through interaction with human culture. In Linked Art API terms this is the core `HumanMadeObject` endpoint shape.</p>\n<p>Related upstream references:</p>\n<ul><li><a href=\"https://linked.art/api/1.0/endpoint/physical_object/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">Physical Object API endpoint</a></li><li><a href=\"https://linked.art/model/object/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"doc-link\">Object model documentation</a></li></ul>\n<h2 id=\"top-level-constraints\">Top-Level Constraints</h2>\n<ul><li>Schema type: object.</li><li>CRM class: `crm:E22_Human-Made_Object`.</li><li>Additional top-level properties are not allowed.</li><li>`@context`: required.</li><li>`id`: required URI string for the entity.</li><li>`type`: required class string. The practical Linked Art class is `HumanMadeObject`.</li><li>`_label`: required developer-facing human-readable label.</li></ul>\n<h2 id=\"permitted-top-level-fields\">Permitted Top-Level Fields</h2>\n<ul><li>`identified_by`: array of `Name` or `Identifier` structures.</li><li>`classified_as`: array of `Type` structures that classify this object.</li><li>`referred_to_by`: array of embedded statements or textual references about the object.</li><li>`equivalent`: array of compact references to equivalent identities.</li><li>`representation`: array of embedded `VisualItem` structures linked through digital objects.</li><li>`member_of`: array of `Set` references.</li><li>`subject_of`: array of embedded `LinguisticObject` web pages or digital objects focused on this object.</li><li>`attributed_by`: array of `AttributeAssignment` structures relating another entity to this object.</li><li>`dimension`: array of `Dimension` structures.</li><li>`made_of`: array of `Material` references.</li><li>`part_of`: compact reference to another `HumanMadeObject` of which this object is part.</li><li>`current_owner`: array of `Person` or `Group` references.</li><li>`current_custodian`: array of `Person` or `Group` references, if different from owner.</li><li>`current_permanent_custodian`: array of `Person` or `Group` references for normal custody when current custody differs.</li><li>`current_location`: `Place` reference for current location.</li><li>`current_permanent_location`: `Place` reference for normal permanent location when current location differs.</li><li>`held_or_supported_by`: physical object reference for the object that holds, contains, or supports this object.</li><li>`used_for`: array of activities in which this object was used.</li><li>`shows`: array of `VisualItem` references shown by the object.</li><li>`carries`: array of `LinguisticObject` references carried by the object.</li><li>`produced_by`: production activity for the object.</li><li>`destroyed_by`: destruction event for the object.</li><li>`removed_by`: array of part-removal activities in which this object was removed from another object.</li><li>`encountered_by`: array of encounter activities in which this object was found, discovered, or encountered.</li><li>`modified_by`: array of modification activities in which this object was modified.</li><li>`changed_ownership_through`: array of acquisition activities in which ownership changed.</li></ul>\n<h2 id=\"embedded-structures-highlighted-by-the-schema\">Embedded Structures Highlighted By The Schema</h2>\n<p>`identified_by` items can be:</p>\n<ul><li>`Name` structures, with required `type` and `content`, plus optional `_label`, nested `identified_by`, `referred_to_by`, `classified_as`, `language`, and `part`.</li><li>`Identifier` structures, following the shared identifier pattern.</li></ul>\n<p>`referred_to_by` items are embedded `LinguisticObject` statements:</p>\n<ul><li>`type`: required.</li><li>`content`: required.</li><li>`_label`, `identified_by`, `classified_as`, `referred_to_by`, `language`, and `format` are allowed.</li></ul>\n<p>`representation` items are embedded `VisualItem` structures:</p>\n<ul><li>`type`: required.</li><li>`_label`, `identified_by`, `classified_as`, `referred_to_by`, and `digitally_shown_by` are allowed.</li><li>Nested digital objects can carry `access_point`, `format`, and `conforms_to`.</li></ul>\n<p>`made_of` items reference `Material` concepts:</p>\n<ul><li>`id`: required.</li><li>`type`: required.</li><li>`_label` and `equivalent` are allowed.</li></ul>\n<p>`part_of`, `held_or_supported_by`, and current object containment references point to other `HumanMadeObject` records and should remain object references, not display strings.</p>\n<h2 id=\"current-state-fields\">Current State Fields</h2>\n<p>The schema separates current legal, custody, and location state:</p>\n<ul><li>`current_owner`: current title holder.</li><li>`current_custodian`: current keeper if different from owner.</li><li>`current_permanent_custodian`: normal keeper when current custody is temporary.</li><li>`current_location`: current place.</li><li>`current_permanent_location`: normal place when current location is temporary.</li><li>`held_or_supported_by`: current physical holder, container, or support object.</li></ul>\n<p>This distinction is important for exhibitions, loans, storage moves, and archival containment.</p>\n<h2 id=\"lifecycle-and-provenance-activity-shapes\">Lifecycle And Provenance Activity Shapes</h2>\n<p>The schema uses activity/event structures for object lifecycle and provenance:</p>\n<ul><li>`produced_by`: production or creation of the object.</li><li>`destroyed_by`: destruction event.</li><li>`removed_by`: part-removal activities, including a `diminished` reference to the object from which this object was removed.</li><li>`encountered_by`: encounter, find, or discovery activity.</li><li>`modified_by`: modification activities.</li><li>`changed_ownership_through`: acquisition activities, including `transferred_title_from` and `transferred_title_to`.</li><li>`used_for`: activities in which the object was used.</li></ul>\n<p>These activity structures support the normal Linked Art activity fields: `type`, `_label`, `identified_by`, `classified_as`, `referred_to_by`, `took_place_at`, `timespan`, `caused_by`, `carried_out_by`, `used_specific_object`, `influenced_by`, `technique`, `during`, `after`, `before`, and `part_of`.</p>\n<h2 id=\"content-relationships\">Content Relationships</h2>\n<p>The schema keeps physical carriers separate from content:</p>\n<ul><li>`shows` references `VisualItem` content shown by the object.</li><li>`carries` references `LinguisticObject` content carried by the object.</li><li>`representation` references digital or visual surrogates of the object.</li></ul>\n<p>These must not be collapsed into object identity or image URL fields.</p>\n<h2 id=\"meta-museum-notes\">Meta Museum Notes</h2>\n<p>Meta Museum already treats `HumanMadeObject` as the central carrier record shape. Existing records and tests preserve object identity, equivalents, dimensions, materials, production, ownership, custody, location, part relationships, visual content, linguistic content, provenance activities, and current state without flattening them into display-only text.</p>\n<p>This expanded schema adds the endpoint-level validation target for object exports: required identity fields, no unexpected top-level properties, explicit current state fields, object/content/digital separation, and lifecycle/provenance activity evidence.</p>\n<h2 id=\"test-ideas\">Test Ideas</h2>\n<ul><li>Validate representative `HumanMadeObject` records against `object.json`.</li><li>Assert `@context`, `id`, `type`, and `_label` are present.</li><li>Assert unknown top-level properties fail schema validation.</li><li>Preserve `made_of`, `dimension`, `part_of`, and `held_or_supported_by`.</li><li>Preserve `current_owner`, `current_custodian`, `current_permanent_custodian`, `current_location`, and `current_permanent_location` as distinct fields.</li><li>Preserve `shows`, `carries`, and `representation` as separate carrier/content/surrogate relationships.</li><li>Preserve `produced_by`, `destroyed_by`, `removed_by`, `encountered_by`, `modified_by`, `used_for`, and `changed_ownership_through` activity evidence.</li></ul>","updatedAt":"2026-07-06T00:00:00.000Z","checksum":"d0ab12e937557b0aee5eba609e7f8196e53c416b6200ec8269d3fbc27dcb6a60","checksumPrefix":"d0ab12e93755","anchorCount":9,"lineCount":134,"rawUrl":"/api/docs/content?path=linked-art%2Fapi%2Fschema-physical-object.md","htmlUrl":"/docs?doc=linked-art%2Fapi%2Fschema-physical-object.md","apiUrl":"/api/docs/content?path=linked-art%2Fapi%2Fschema-physical-object.md"}