Catalog (142)

IDDocumentUpdatedAnchorsSHA
agents/ag2-extraction-notesAG2 Extraction Notes
agents/ag2-extraction-notes.md
10/20/2018, 1:46:40 AM11e8d0072ebec1
asset-provenanceAsset Provenance
asset-provenance.md
10/20/2018, 1:46:40 AM41025c0acc117
closeout-notesAI-RSI one-click closeout notes
closeout-notes.md
10/20/2018, 1:46:40 AM21f560f6a8535
content-credibility-engineContent Credibility Engine
content-credibility-engine.md
10/20/2018, 1:46:40 AM8d9aa32358670
demo-scriptProduct Walkthrough — Shot List & Script (60–90s)
demo-script.md
10/20/2018, 1:46:40 AM2299b901ec583
deploymentDeployment — Vercel + Render
deployment.md
10/20/2018, 1:46:40 AM8822e08a991b9
development-roadmapMeta Museum Development Roadmap
development-roadmap.md
10/20/2018, 1:46:40 AM23624a8a089d72
development/aidd-tddAIDD + TDD Discipline
development/aidd-tdd.md
10/20/2018, 1:46:40 AM5cd0a0524525a
development/typescript-command-contractTypeScript Command Contract
development/typescript-command-contract.md
10/20/2018, 1:46:40 AM0e2c0fe337ff6
envEnvironment Variables
env.md
10/20/2018, 1:46:40 AM13d45d28b1acb7
evals/golden-museum-questionsGolden Eval Dataset: Complex Museum Questions
evals/golden-museum-questions.md
10/20/2018, 1:46:40 AM62876a2b5e78d
knowledge/concepts/llm-wiki-patternDefinition
knowledge/concepts/llm-wiki-pattern.md
10/20/2018, 1:46:40 AM01538a0b7d895
knowledge/concepts/meta-museum-knowledge-systemDefinition
knowledge/concepts/meta-museum-knowledge-system.md
10/20/2018, 1:46:40 AM0fb8615747115
knowledge/concepts/open-knowledge-formatDefinition
knowledge/concepts/open-knowledge-format.md
10/20/2018, 1:46:40 AM037e419de4736
knowledge/indexMeta Museum Knowledge Wiki
knowledge/index.md
10/20/2018, 1:46:40 AM38d2fe66d7442
knowledge/logMeta Museum Knowledge Wiki Log
knowledge/log.md
10/20/2018, 1:46:40 AM19f73157e299f
knowledge/schema/llm-wiki-maintainerPurpose
knowledge/schema/llm-wiki-maintainer.md
10/20/2018, 1:46:40 AM01bc0cde6fa1e
knowledge/sources/llm-wiki-pattern-noteSummary
knowledge/sources/llm-wiki-pattern-note.md
10/20/2018, 1:46:40 AM0db115d8fd7bf
knowledge/sources/open-knowledge-format-google-2026-06-12Summary
knowledge/sources/open-knowledge-format-google-2026-06-12.md
10/20/2018, 1:46:40 AM0a87b065f97db
linked-art/activity-stream-partner-quickstartActivityStreams Partner Quickstart
linked-art/activity-stream-partner-quickstart.md
10/20/2018, 1:46:40 AM96ea3aea16866
linked-art/activity-stream-profileMetaMuseum Linked Art Activity Stream Profile
linked-art/activity-stream-profile.md
10/20/2018, 1:46:40 AM6adb634532df8
linked-art/api/abstract-worksLinked Art API: Abstract Works
linked-art/api/abstract-works.md
7/6/2026, 12:00:00 AM7271315c08d2d
linked-art/api/bibliographyLinked Art: Bibliography
linked-art/api/bibliography.md
7/6/2026, 12:00:00 AM126d9d5160565a
linked-art/api/cdwa-mappingLinked Art: CDWA Mapping
linked-art/api/cdwa-mapping.md
7/6/2026, 12:00:00 AM9baaefda0cff6
linked-art/api/code-and-toolsLinked Art: Code And Tools
linked-art/api/code-and-tools.md
7/6/2026, 12:00:00 AM87d87b00c2f04
linked-art/api/conceptsLinked Art API: Concepts
linked-art/api/concepts.md
7/6/2026, 12:00:00 AM75c3b10a975bb
linked-art/api/design-principlesLinked Art API: Design Principles
linked-art/api/design-principles.md
7/6/2026, 12:00:00 AM103ff80e8696b0
linked-art/api/digital-objectsLinked Art API: Digital Objects
linked-art/api/digital-objects.md
7/6/2026, 12:00:00 AM889a21989333a
linked-art/api/discoveryLinked Art API: Discovery
linked-art/api/discovery.md
7/7/2026, 12:00:00 AM5407a0f6a9de4
linked-art/api/eventsLinked Art API: Events
linked-art/api/events.md
7/6/2026, 12:00:00 AM8cdb00a835694
linked-art/api/groupsLinked Art API: Groups
linked-art/api/groups.md
7/6/2026, 12:00:00 AM7abbb3e00ba19
linked-art/api/halLinked Art API: HAL
linked-art/api/hal.md
7/6/2026, 12:00:00 AM264c645e4c2ea6
linked-art/api/indexLinked Art API Reference Notes
linked-art/api/index.md
7/6/2026, 12:00:00 AM404ab73322251
linked-art/api/json-ld-considerationsLinked Art API: JSON-LD Considerations
linked-art/api/json-ld-considerations.md
7/6/2026, 12:00:00 AM7dc542f437a12
linked-art/api/json-schemasLinked Art API: JSON Schemas
linked-art/api/json-schemas.md
7/6/2026, 12:00:00 AM1657ed7e27b78b
linked-art/api/peopleLinked Art API: People
linked-art/api/people.md
7/6/2026, 12:00:00 AM700141f499e00
linked-art/api/physical-objectsLinked Art API: Physical Objects
linked-art/api/physical-objects.md
7/6/2026, 12:00:00 AM10b947ded689e6
linked-art/api/placesLinked Art API: Places
linked-art/api/places.md
7/6/2026, 12:00:00 AM75b00bba40010
linked-art/api/protocolLinked Art API: Protocol
linked-art/api/protocol.md
7/6/2026, 12:00:00 AM8d7f6c925ba69
linked-art/api/provenance-activitiesLinked Art API: Provenance Activities
linked-art/api/provenance-activities.md
7/6/2026, 12:00:00 AM18565a129b4074
linked-art/api/schema-abstract-workLinked Art API Schema: Abstract Work
linked-art/api/schema-abstract-work.md
7/6/2026, 12:00:00 AM720660a51677e
linked-art/api/schema-conceptLinked Art API Schema: Concept
linked-art/api/schema-concept.md
7/6/2026, 12:00:00 AM76a568b387d80
linked-art/api/schema-digital-objectLinked Art API Schema: Digital Object
linked-art/api/schema-digital-object.md
7/6/2026, 12:00:00 AM7750a7f2de6a7
linked-art/api/schema-eventLinked Art API Schema: Event
linked-art/api/schema-event.md
7/6/2026, 12:00:00 AM7ecc0b93c1ea6
linked-art/api/schema-groupLinked Art API Schema: Group
linked-art/api/schema-group.md
7/6/2026, 12:00:00 AM833ee6eb1355f
linked-art/api/schema-org-mappingLinked Art: Schema.org Mapping
linked-art/api/schema-org-mapping.md
7/6/2026, 12:00:00 AM10e5407dc8677d
linked-art/api/schema-personLinked Art API Schema: Person
linked-art/api/schema-person.md
7/6/2026, 12:00:00 AM87c1f64043517
linked-art/api/schema-physical-objectLinked Art API Schema: Human-Made Object
linked-art/api/schema-physical-object.md
7/6/2026, 12:00:00 AM9d0ab12e93755
linked-art/api/schema-placeLinked Art API Schema: Place
linked-art/api/schema-place.md
7/6/2026, 12:00:00 AM8f3340073270b
linked-art/api/schema-provenance-activityLinked Art API Schema: Provenance Activity
linked-art/api/schema-provenance-activity.md
7/6/2026, 12:00:00 AM8dd2fe5345a6a
linked-art/api/schema-setLinked Art API Schema: Set
linked-art/api/schema-set.md
7/6/2026, 12:00:00 AM82b48dd1a0cb1
linked-art/api/schema-textual-workLinked Art API Schema: Textual Work
linked-art/api/schema-textual-work.md
7/6/2026, 12:00:00 AM827f38ce348c4
linked-art/api/schema-visual-workLinked Art API Schema: Visual Work
linked-art/api/schema-visual-work.md
7/6/2026, 12:00:00 AM97dc44dd62a63
linked-art/api/searchLinked Art API: Search
linked-art/api/search.md
7/7/2026, 12:00:00 AM6fe2301e3ac01
linked-art/api/setsLinked Art API: Sets
linked-art/api/sets.md
7/6/2026, 12:00:00 AM717aaf803945c
linked-art/api/shared-activitiesLinked Art API: Shared Activities
linked-art/api/shared-activities.md
7/6/2026, 12:00:00 AM7de394280c803
linked-art/api/shared-concept-referencesLinked Art API: Shared Concept References
linked-art/api/shared-concept-references.md
7/6/2026, 12:00:00 AM8d1d6465ac086
linked-art/api/shared-digital-linksLinked Art API: Shared Digital Links
linked-art/api/shared-digital-links.md
7/6/2026, 12:00:00 AM6aa747ae005bf
linked-art/api/shared-dimensionsLinked Art API: Shared Dimensions
linked-art/api/shared-dimensions.md
7/6/2026, 12:00:00 AM7a6a512ce1f69
linked-art/api/shared-identifiersLinked Art API: Shared Identifiers
linked-art/api/shared-identifiers.md
7/6/2026, 12:00:00 AM70e518b8d88c5
linked-art/api/shared-monetary-amountsLinked Art API: Shared Monetary Amounts
linked-art/api/shared-monetary-amounts.md
7/6/2026, 12:00:00 AM7030dc129f2ca
linked-art/api/shared-namesLinked Art API: Shared Names
linked-art/api/shared-names.md
7/6/2026, 12:00:00 AM73da4d8a4c849
linked-art/api/shared-referencesLinked Art API: Shared References
linked-art/api/shared-references.md
7/6/2026, 12:00:00 AM822aa1cc20d4f
linked-art/api/shared-relationshipsLinked Art API: Shared Relationships
linked-art/api/shared-relationships.md
7/6/2026, 12:00:00 AM7af011a27832c
linked-art/api/shared-rightsLinked Art API: Shared Rights
linked-art/api/shared-rights.md
7/6/2026, 12:00:00 AM79975708ccd02
linked-art/api/shared-statementsLinked Art API: Shared Statements
linked-art/api/shared-statements.md
7/6/2026, 12:00:00 AM7f26889987779
linked-art/api/shared-structuresLinked Art API: Shared Structures
linked-art/api/shared-structures.md
7/6/2026, 12:00:00 AM69f6a99f012ad
linked-art/api/shared-timespansLinked Art API: Shared TimeSpans
linked-art/api/shared-timespans.md
7/6/2026, 12:00:00 AM7ea33d788e29b
linked-art/api/textual-worksLinked Art API: Textual Works
linked-art/api/textual-works.md
7/6/2026, 12:00:00 AM783115d01844b
linked-art/api/visual-worksLinked Art API: Visual Works
linked-art/api/visual-works.md
7/6/2026, 12:00:00 AM75c7225b0a261
linked-art/canonical-identifier-policyCanonical Identifier Policy
linked-art/canonical-identifier-policy.md
10/20/2018, 1:46:40 AM856bc7bc9ee2f
linked-art/conformance-matrixLinked Art 1.0 — Conformance Matrix
linked-art/conformance-matrix.md
10/20/2018, 1:46:40 AM53666a6671a7a
linked-art/external-activity-streamsExternal Activity Stream Candidates
linked-art/external-activity-streams.md
10/20/2018, 1:46:40 AM3756dbb91f85c
linked-art/Linked%20Art%20NotesLinked Art Notes.md
linked-art/Linked Art Notes.md
10/20/2018, 1:46:40 AM0aca66d51107b
linked-art/Linked%20Open%20Art%20Data%20Web%20App%20-%20Must-have%20Data%20SourcesLinked Open Art Data Web App (AI) — Must-have Data Sources
linked-art/Linked Open Art Data Web App - Must-have Data Sources.md
10/20/2018, 1:46:40 AM77b7d350fe8a0
linked-art/LinkedArtAppFeatures🏛️ Art Explorer: Linked Art Application & Ecosystem
linked-art/LinkedArtAppFeatures.md
10/20/2018, 1:46:40 AM14e23b890ecd2a
linked-art/LinkedArtChallengesLinkedArtChallenges.md
linked-art/LinkedArtChallenges.md
10/20/2018, 1:46:40 AM0d8c987070277
linked-art/LinkedArtCollaborationLinkedArtCollaboration.md
linked-art/LinkedArtCollaboration.md
10/20/2018, 1:46:40 AM114ccf63edef3
linked-art/LinkedArtDashboardLinkedArtDashboard.md
linked-art/LinkedArtDashboard.md
10/20/2018, 1:46:40 AM06d04d4b2bf79
linked-art/LinkedArtFeatureRoadmapFeature Roadmap for Linked Open Art Data Apps
linked-art/LinkedArtFeatureRoadmap.md
10/20/2018, 1:46:40 AM8ac10d8e79c20
linked-art/LinkedArtJobReadyLinkedArtJobReady.md
linked-art/LinkedArtJobReady.md
10/20/2018, 1:46:40 AM0c60b357bcb87
linked-art/LinkedArtModel1.0-ReferenceLinked Art Model 1.0 Reference (Round 1)
linked-art/LinkedArtModel1.0-Reference.md
10/20/2018, 1:46:40 AM344e6d48d474b3e
linked-art/LinkedArtPatternsLinkedArtPatterns.md
linked-art/LinkedArtPatterns.md
10/20/2018, 1:46:40 AM0d45bbbb02d70
linked-art/LinkedArtPRD🖼️ Product Requirements Document
linked-art/LinkedArtPRD.md
10/20/2018, 1:46:40 AM2091bc1f37307c
linked-art/LinkedArtRoadmapLinkedArtRoadmap.md
linked-art/LinkedArtRoadmap.md
10/20/2018, 1:46:40 AM0e52e71c6bd28
linked-art/LinkedArtSaaSLinkedArtSaaS.md
linked-art/LinkedArtSaaS.md
10/20/2018, 1:46:40 AM03d260738fb29
linked-art/LinkedArtSoftwareCode and Tools
linked-art/LinkedArtSoftware.md
10/20/2018, 1:46:40 AM89e8fef24aea9
linked-art/LinkedArtSOTAWebAppLinkedArt SOTA Web App — Master Build Specification
linked-art/LinkedArtSOTAWebApp.md
10/20/2018, 1:46:40 AM129a5f0baca89c6
linked-art/LinkedArtUnmetNeedsLinkedArtUnmetNeeds.md
linked-art/LinkedArtUnmetNeeds.md
10/20/2018, 1:46:40 AM0cb35fac29cc1
linked-art/LinkedArtUseCasesLinkedArtUseCases.md
linked-art/LinkedArtUseCases.md
10/20/2018, 1:46:40 AM05c572ce8e7f3
linked-art/LinkedArtWidgetsLinkedArtWidgets.md
linked-art/LinkedArtWidgets.md
10/20/2018, 1:46:40 AM0b39911c7d97d
linked-art/LinkedDesignLinkedDesign.md
linked-art/LinkedDesign.md
10/20/2018, 1:46:40 AM00a02240471e5
linked-art/LODEngineLODEngine.md
linked-art/LODEngine.md
10/20/2018, 1:46:40 AM0ef73426f80db
linked-art/LODPipelineLODPipeline.md
linked-art/LODPipeline.md
10/20/2018, 1:46:40 AM0fe95e61ed9da
linked-art/LODToolsLODTools.md
linked-art/LODTools.md
10/20/2018, 1:46:40 AM03167947fc4e4
linked-art/metahistorybook-prod-harvest-evidenceMetaHistoryBook Production Consumer Evidence
linked-art/metahistorybook-prod-harvest-evidence.md
10/20/2018, 1:46:40 AM131577a970c8b0
linked-art/metahistorybook-reciprocal-harvest-checklistMetaHistoryBook Reciprocal Harvest Checklist
linked-art/metahistorybook-reciprocal-harvest-checklist.md
10/20/2018, 1:46:40 AM506f00beacbe6
linked-art/partitioningLinked Art Graph Partitioning
linked-art/partitioning.md
10/20/2018, 1:46:40 AM3341aff71f753
linked-art/SPARQLSPARQL.md
linked-art/SPARQL.md
10/20/2018, 1:46:40 AM050e00ed51733
linked-art/VocabulariesVocabularies.md
linked-art/Vocabularies.md
10/20/2018, 1:46:40 AM0e0574a338aaa
linked-art/wikidataexplorer-consumer-evidenceWikidata Explorer ActivityStreams Consumer Evidence
linked-art/wikidataexplorer-consumer-evidence.md
10/20/2018, 1:46:40 AM2d2dee0ad49d3
linked-art/YaleLuxYaleLux.md
linked-art/YaleLux.md
10/20/2018, 1:46:40 AM074fd47fae749
meta-wiki-art-bridgeMeta Wiki Art Bridge (MediaWiki + Wikibase)
meta-wiki-art-bridge.md
10/20/2018, 1:46:40 AM77a43fb0c48b8
ops/activity-adoption-proofActivity Feed Adoption Proof Runbook
ops/activity-adoption-proof.md
10/20/2018, 1:46:40 AM8b3c1d8e3399b
ops/ag2-workerAG2 Worker and Bridge Runbook
ops/ag2-worker.md
10/20/2018, 1:46:40 AM950efcd4e3318
ops/auth-credential-rotationAuth credential rotation runbook
ops/auth-credential-rotation.md
10/20/2018, 1:46:40 AM476e3fc6daefa
ops/deployment-preflightDeployment Preflight Runbook
ops/deployment-preflight.md
10/20/2018, 1:46:40 AM597db694dd88b
ops/era-c-exit-gate-evidenceEra C Exit-Gate Evidence Pack
ops/era-c-exit-gate-evidence.md
10/20/2018, 1:46:40 AM64fdaaa29056a
ops/evidence-script-ownershipEvidence Script Ownership
ops/evidence-script-ownership.md
10/20/2018, 1:46:40 AM48432d0529cf4
ops/external-evidence-request-packExternal Evidence Request Pack
ops/external-evidence-request-pack.md
10/20/2018, 1:46:40 AM64d89c9ef0410
ops/go-live-checklistGo-Live & Evidence-Pipeline Checklist
ops/go-live-checklist.md
10/20/2018, 1:46:40 AM6621cddad10fb
ops/k6-slok6 SLO Load Test (SOTA §20.4)
ops/k6-slo.md
10/20/2018, 1:46:40 AM4328b5b3163d4
ops/kpi-evidenceSOTA §26 KPI Evidence Input
ops/kpi-evidence.md
10/20/2018, 1:46:40 AM7bc46be9b160e
ops/launch-reviewLaunch Review Packet
ops/launch-review.md
10/20/2018, 1:46:40 AM51d414c314ee3
ops/managed-linked-art-pilot-runbookManaged Linked Art Pilot Runbook
ops/managed-linked-art-pilot-runbook.md
10/20/2018, 1:46:40 AM15b2e939be7a87
ops/otel-localLocal OpenTelemetry Wiring (Tempo / Jaeger)
ops/otel-local.md
10/20/2018, 1:46:40 AM51ebbc3b33f92
ops/outbox-projectorTransactional Outbox Projector (Postgres -> Solr/GraphDB)
ops/outbox-projector.md
10/20/2018, 1:46:40 AM6e6c332598258
ops/procurement-readiness-packetProcurement Readiness Packet
ops/procurement-readiness-packet.md
10/20/2018, 1:46:40 AM9c5685e82cca7
ops/product-constraintsProduct Constraints Gate
ops/product-constraints.md
10/20/2018, 1:46:40 AM2471d6d54d4e3
ops/reconciliation-serviceReconciliation Service (C2)
ops/reconciliation-service.md
10/20/2018, 1:46:40 AM605162c313ea9
ops/review-goalsReview Goals Audit
ops/review-goals.md
10/20/2018, 1:46:40 AM3cc1459601a26
ops/search-graph-provisioningSolr 9 + GraphDB Provisioning
ops/search-graph-provisioning.md
10/20/2018, 1:46:40 AM6fc1b15279a84
ops/security-dr-drillPen Test Baseline + DR Drill Runbook
ops/security-dr-drill.md
10/20/2018, 1:46:40 AM3a766ef3e2afc
progress/2026-05-31/era-c-readiness-snapshotEra C Readiness Snapshot (May 31, 2026)
progress/2026-05-31/era-c-readiness-snapshot.md
10/20/2018, 1:46:40 AM39672614ceb53
progress/era-historyMeta Museum — Era Delivery History
progress/era-history.md
10/20/2018, 1:46:40 AM4776bd307557c2
providers/harvard-art-museumsHarvard Art Museums API Integration Plan
providers/harvard-art-museums.md
10/20/2018, 1:46:40 AM11fa8b980154f5
providers/louvre-collections-jsonLouvre Collections JSON Integration Plan
providers/louvre-collections-json.md
10/20/2018, 1:46:40 AM11775f91a8d813
providers/moma-open-dataMoMA Open Data Snapshot
providers/moma-open-data.md
10/20/2018, 1:46:40 AM3bcdd2d8a3e6b
providers/museumsvictoria-collections-apiMuseums Victoria Collections API Integration
providers/museumsvictoria-collections-api.md
10/20/2018, 1:46:40 AM7a5408e229cdc
providers/nga-open-dataNational Gallery of Art (NGA) Open Data Integration Plan
providers/nga-open-data.md
10/20/2018, 1:46:40 AM1151c4807c8de0
providers/princeton-art-museumPrinceton University Art Museum API Integration Plan
providers/princeton-art-museum.md
10/20/2018, 1:46:40 AM11c8823f65ee41
providers/rkd-knowledge-graphRKD Knowledge Graph Integration Plan
providers/rkd-knowledge-graph.md
10/20/2018, 1:46:40 AM162b4b42f2ad42
providers/smithsonian-open-accessSmithsonian Open Access Integration Plan
providers/smithsonian-open-access.md
10/20/2018, 1:46:40 AM12db1ffa4cab02
providers/vanda-collections-apiVictoria and Albert Museum (V&A) Collections API Integration Plan
providers/vanda-collections-api.md
10/20/2018, 1:46:40 AM11755d93972233
qualityQuality & Performance
quality.md
10/20/2018, 1:46:40 AM6174add040960
reconciliation/exhibition-literature-reconciliationExhibition + Literature Reconciliation (B6.1)
reconciliation/exhibition-literature-reconciliation.md
10/20/2018, 1:46:40 AM7054bcea75896
responsible-aiResponsible AI
responsible-ai.md
10/20/2018, 1:46:40 AM8f90006650821
risk-registerRisk Register
risk-register.md
10/20/2018, 1:46:40 AM471caef3f084e
roadmap-to-10Roadmap to 10/10
roadmap-to-10.md
7/12/2026, 12:00:00 AM88cc33f95a176
roadmapMeta Museum Roadmap
roadmap.md
7/21/2026, 12:00:00 AM178ec5cdf0f68b
rsi-wikiAI-RSI compounding wiki
rsi-wiki.md
10/20/2018, 1:46:40 AM8b64914fe6f20
wikibase-cloud-migration-checklistWikibase Cloud -> Self-Host Migration Checklist
wikibase-cloud-migration-checklist.md
10/20/2018, 1:46:40 AM12170657fcbf2b

    Current Document: Linked Art API: HAL

    Source updated 7/6/2026, 12:00:00 AM · SHA-256 4c645e4c2ea6 · 432 lines

    Canonical ID: linked-art/api/hal

    JSON for this doc:/api/docs/content?path=linked-art/api/hal.md

    Human link:/docs?doc=linked-art%2Fapi%2Fhal.md

    Canonical API endpoint:/api/docs/content?path=linked-art%2Fapi%2Fhal.md

    Sections (stable anchors):

    Linked Art API: HAL

    Last refreshed: 2026-07-06

    Source: Linked Art API 1.0 HAL and Linked Art relation documentation, published by the Linked Art Editorial Board under CC BY 4.0. These notes are derivative implementation guidance; upstream Linked Art remains authoritative.

    Purpose

    Linked Art records may include non-semantic API metadata in a `_links` object using JSON Hypertext Application Language, or HAL. These links help clients discover the current record, API/model versions, alternate representations, Change Discovery collections, and related search result pages without adding those navigation facts to the semantic RDF graph.

    This distinction matters in Meta Museum:

    • Linked Art graph assertions stay in the JSON-LD record.
    • Navigation and protocol affordances stay in `_links`.
    • Clients can follow links instead of inventing URI patterns or reverse relationships.
    • If a JSON-LD record is converted to RDF and reserialized, HAL metadata may disappear; code must not treat `_links` as semantic evidence.

    Core HAL Shape

    A minimal HAL block exposes `self`:

    
    {
      "_links": {
        "self": {
          "href": "https://example.org/linked_art/objects/1234"
        }
      }
    }
    

    Linked Art relation links use the `la` CURIE namespace:

    
    {
      "_links": {
        "self": {
          "href": "https://example.org/linked_art/objects/1234"
        },
        "curies": [
          {
            "name": "la",
            "href": "https://linked.art/api/rels/1/{rel}",
            "templated": true
          }
        ]
      }
    }
    

    Local extensions may add their own CURIEs, but Linked Art relation names should remain stable and documented.

    Linked Art defines three versioning links:

    • `la:modelVersion`: required. Points to the Linked Art model version used by the record.
    • `la:apiVersion`: required. Points to the Linked Art API version used by the response.
    • `la:localVersion`: optional. Points to local extension documentation.

    The official pattern uses link objects with a human-readable documentation `href` and a `name` in the form `v{major}.{minor}.{patch}`. Clients can compare major/minor versions to decide how much of the record they can process. Minor releases remain backwards compatible within the same major version; patch releases do not introduce new functionality.

    Alternate Representations And Collections

    HAL `alternate` links can point from JSON-LD to other representations of the same information:

    • HTML pages with `type: "text/html"`.
    • Turtle with `type: "text/turtle"`.
    • Other machine or human formats with their correct media type.

    The HAL `collection` link can point to a IIIF Change Discovery or similar synchronization collection so harvesters can discover dataset-level change surfaces from an individual record.

    Linked Art uses HAL heavily to advertise related searches. Instead of duplicating inverse relationships into every entity record, a publisher can expose a named relation link whose target returns a Search API `OrderedCollectionPage`.

    Example relation captured from the Linked Art relation docs:

    `activityUsedObject`

    • Relation URL: `https://linked.art/api/rels/1/activityusedobject/`
    • Class given: `HumanMadeObject`
    • Returns class: `Activity`
    • Relationship: activities that used the object
    • Example intent: from the Night Watch object record, follow the relation to activities such as conservation work that used the painting.

    The target should return activities, not object records, and should preserve the underlying Linked Art relationship semantics instead of presenting a generic "related items" bucket.

    `conceptInfluencedByObject`

    • Relation URL: `https://linked.art/api/rels/1/conceptinfluencedbyobject/`
    • Model basis: Creation and Influences
    • Class given: `HumanMadeObject`
    • Returns class: `Concept`
    • Relationship: concepts that were influenced by the object
    • Example intent: from the Night Watch object record, follow the relation to concept records such as the reception of the Night Watch in the 19th century.

    The target should return concept records influenced by the object, not generic subjects, classifications, or records merely associated with the object. This relation belongs to the Linked Art HAL/Search API layer; the semantic evidence should remain in normal Linked Art concept creation/influence fields.

    `objectPartOfObject`

    • Relation URL: `https://linked.art/api/rels/1/objectpartofobject/`
    • Model basis: Physical Object Parts
    • Class given: `HumanMadeObject`
    • Returns class: `HumanMadeObject`
    • Relationship: objects that are part of the object
    • Example intent: from the Night Watch object record, follow the relation to object records such as the frame of the Night Watch.

    The target should return physical object records that are structurally part of the current object. This is an inverse-discovery relation over explicit part/whole object semantics; it should not be broadened to any object that merely depicts, carries, references, or is associated with the current object.

    `objectProductionInfluencedByObject`

    • Relation URL: `https://linked.art/api/rels/1/objectproductioninfluencedbyobject/`
    • Model basis: Inspirations, Studies, or Copies
    • Class given: `HumanMadeObject`
    • Returns class: `HumanMadeObject`
    • Relationship: objects whose production was influenced by the object
    • Example intent: from the record for a painting that was copied, follow the relation to object records for copies whose production was influenced by the original.

    The target should return objects through their production activity's influence relationship, not every object that is visually similar, a copy candidate, or linked by a generic related-object assertion. This relation should be backed by explicit `produced_by.influenced_by` evidence or an equivalent Linked Art production-influence path.

    `groupFoundedByAgent`

    • Relation URL: `https://linked.art/api/rels/1/groupfoundedbyagent/`
    • Class given: `Agent`
    • Returns class: `Group`
    • Relationship: groups that were founded by the person or group
    • SPARQL basis: the returned group `crm:P95i_was_formed_by` a formation activity, and that formation activity `crm:P14_carried_out_by` the current agent.
    • Example intent: from the record for Katherine Dreier, Man Ray, or Marcel Duchamp, follow the relation to group records such as Societe Anonyme.

    The target should return groups whose `formed_by` activity was carried out by the current person or group. It should not return every group the agent joined, funded, curated, or influenced unless the formation activity itself carries the agent as `carried_out_by`.

    `objectCuratedByAgent`

    • Relation URL: `https://linked.art/api/rels/1/objectcuratedbyagent/`
    • Class given: `Agent`
    • Returns class: `HumanMadeObject`
    • Relationship: objects curated, looked after, or otherwise in the custody of the person or group
    • SPARQL basis: either the object is a member of a collection that was used for a curating activity carried out by the current agent, or the object has the current agent as current keeper.
    • Example intent: from the record for the Paintings Department of the Rijksmuseum, follow the relation to object records such as The Night Watch.

    The target may use either documented branch, but each returned object should be backed by explicit curation/custody evidence. It should not return objects merely associated with an agent through production, ownership, exhibition, subject matter, or generic related-record assertions.

    `objectEncounteredByAgent`

    • Relation URL: `https://linked.art/api/rels/1/objectencounteredbyagent/`
    • Class given: `Agent`
    • Returns class: `HumanMadeObject`
    • Relationship: objects that were discovered or encountered by the person or group
    • SPARQL basis: the returned object was encountered at an encounter activity, and that encounter or one of its parts was carried out by the current agent.
    • Example intent: from the record for O.C. Marsh, follow the relation to object records such as the Torosaurus holotype.

    The target should return objects through explicit `Encounter` evidence, including nested encounter parts where appropriate. It should not treat any acquisition, custody, excavation note, or place association as an encounter unless the Linked Art record actually models an encounter/discovery activity.

    `objectOwnedByAgent`

    • Relation URL: `https://linked.art/api/rels/1/objectownedbyagent/`
    • Class given: `Agent`
    • Returns class: `HumanMadeObject`
    • Relationship: objects currently owned by the person or group
    • SPARQL basis: the returned object is a `crm:E22_Human-Made_Object` with `crm:P52_has_current_owner` set to the current agent.
    • Example intent: from the record for the Rijksmuseum, follow the relation to object records such as The Night Watch.

    The target should return objects through explicit current ownership evidence. It should not include objects merely curated, kept, loaned, formerly owned, transferred through, or associated with the agent unless the record asserts the current owner relationship.

    `objectProducedByAgent`

    • Relation URL: `https://linked.art/api/rels/1/objectproducedbyagent/`
    • Class given: `Agent`
    • Returns class: `HumanMadeObject`
    • Relationship: objects produced, in whole or in part, by the person or group
    • SPARQL basis: the returned object was produced by a production activity, and that production or one of its parts was carried out by the current agent.
    • Example intent: from the record for Rembrandt, follow the relation to object records such as The Night Watch.

    The target should return objects through explicit production evidence, including production parts where appropriate. It should not return objects merely owned, curated, depicted, influenced by, or attributed to the agent unless the production activity itself carries the agent as `carried_out_by`.

    `objectProductionInfluencedByAgent`

    • Relation URL: `https://linked.art/api/rels/1/objectproductioninfluencedbyagent/`
    • Class given: `Agent`
    • Returns class: `HumanMadeObject`
    • Relationship: objects whose production was influenced by the person or group
    • SPARQL basis: the returned object was produced by a production activity, and that production activity `crm:P15_was_influenced_by` the current agent.
    • Example intent: from the record for Albert Bierstadt, follow the relation to prints of his works that were influenced by him but not necessarily produced by him.

    The target should return objects through explicit production-influence evidence. It should not return objects produced by the agent unless the production also records the agent as an influence, and it should not infer influence from visual similarity, subject matter, attribution, ownership, or generic related-record assertions.

    `setCreatedByAgent`

    • Relation URL: `https://linked.art/api/rels/1/setcreatedbyagent/`
    • Class given: `Agent`
    • Returns class: `Set`
    • Relationship: sets or collections created, in whole or in part, by the person or group
    • SPARQL basis: the returned set was created by a creation activity, and that creation activity `crm:P15_was_influenced_by` the current agent.
    • Example intent: from the record for O.C. Marsh, follow the relation to set records such as his archive.

    The target should return set or collection records through explicit creation/influence evidence. Because the supplied relation pattern uses influence on the creation activity, implementation tests should preserve that path and not silently replace it with generic membership, ownership, custody, or untyped archive associations.

    `workAboutAgent`

    • Relation URL: `https://linked.art/api/rels/1/workaboutagent/`
    • Class given: `Agent`
    • Returns class: `Work`
    • Relationship: works that are about or have a subject of the person or group
    • SPARQL basis: the returned work `crm:P129_is_about` the current agent.
    • Example intent: from the record for Abraham Lincoln, follow the relation to work records such as We are Lincoln Men: Abraham Lincoln and his Friends.

    The target should return intellectual work records whose subject/aboutness explicitly references the current person or group. It should not return works authored, owned, published, influenced by, or merely associated with the agent unless the work's `about` relationship itself points to that agent.

    `workAboutOrRepresentsAgent`

    • Relation URL: `https://linked.art/api/rels/1/workaboutorrepresentsagent/`
    • Class given: `Agent`
    • Returns class: `Work`
    • Relationship: works that are either about or depict the person or group
    • SPARQL basis: the returned work either `crm:P138_represents` the current agent or `crm:P129_is_about` the current agent.
    • Example intent: from the record for John Trumbull, follow the relation to visual items and texts that depict him, such as a bibliographic record or a self-portrait.

    The target should return work records through explicit aboutness or representation evidence. It should preserve the two branches separately in implementation logic so a textual subject match and a visual depiction match are both valid, while authorship, ownership, influence, publication, and generic association remain out of scope unless the work also uses `about` or `represents` for the current agent.

    `workCreatedByAgent`

    • Relation URL: `https://linked.art/api/rels/1/workcreatedbyagent/`
    • Class given: `Agent`
    • Returns class: `Work`
    • Relationship: works that were created, in whole or in part, by the person or group
    • SPARQL basis: the returned work was created by a creation activity, and that creation or one of its parts was `crm:P14_carried_out_by` the current agent.
    • Example intent: from the record for Andre Chastel, follow the relation to work records such as The Vatican Frescoes of Michelangelo.

    The target should return work records through explicit creation evidence, including nested creation parts where appropriate. It should not return works merely about, representing, owned by, published by, influenced by, or associated with the agent unless the creation activity itself carries the agent as `carried_out_by`.

    `workPublishedByAgent`

    • Relation URL: `https://linked.art/api/rels/1/workpublishedbyagent/`
    • Class given: `Agent`
    • Returns class: `Work`
    • Relationship: works that were published by the person or group
    • SPARQL basis: the returned work `crm:P16i_was_used_for` a publication activity, and that publication activity `crm:P14_carried_out_by` the current agent.
    • Example intent: from the record for Bloomsbury Publishing, follow the relation to work records such as Alias Grace.

    The target should return work records through explicit publication/use evidence. It should not return works merely created by, about, representing, owned by, influenced by, distributed by, or generically associated with the agent unless the modeled publication activity itself carries the agent as `carried_out_by`.

    `workRepresentsAgent`

    • Relation URL: `https://linked.art/api/rels/1/workrepresentsagent/`
    • Class given: `Agent`
    • Returns class: `Work`
    • Relationship: visual works that represent or depict the person or group
    • SPARQL basis: the returned work `crm:P138_represents` the current agent.
    • Example intent: from the record for Sarah Hope Harvey Trumbull, follow the relation to visual work records such as Sarah Trumbull with a Spaniel.

    The target should return visual work records through explicit representation evidence. It should not return textual works merely about the agent, works created by or published by the agent, or generic associations unless the work's `represents` relationship itself points to the current person or group.

    `activityTookPlaceAtPlace`

    • Relation URL: `https://linked.art/api/rels/1/activitytookplaceatplace/`
    • Model basis: Events and Activities
    • Class given: `Place`
    • Returns class: `Event`, `Activity`
    • Relationship: activities and events that took place at the place
    • SPARQL basis: the returned activity or event `took_place_at` the current place.
    • Example intent: from the record for New Haven, follow the relation to activity records such as the exhibition activity Life, Liberty and the Pursuit of Happiness.

    The target should return events and activities through explicit place evidence. It should not return objects currently located at the place, actors resident there, works about the place, or activities merely associated with a venue unless the event/activity record itself uses `took_place_at` for the current place.

    `agentActiveAtPlace`

    • Relation URL: `https://linked.art/api/rels/1/agentactiveatplace/`
    • Model basis: Active Dates
    • Class given: `Place`
    • Returns class: `Agent`
    • Relationship: people or groups who were active at the place
    • SPARQL basis: the returned person or group has modeled active-at evidence for the current place.
    • Example intent: from the record for Harlem, New York, follow the relation to agent records such as A. Philip Randolph.

    The target should return people and groups through explicit active-at evidence. It should not return agents merely born, died, resident, employed, exhibited, or associated at the place unless the actor profile models the place as part of the agent's active period or active-place evidence.

    Complete Upstream Relation Inventory

    The cloned Linked Art upstream mirror includes `linked.art/scripts/hal_links.tsv`, which currently lists 95 non-empty HAL relation-search names. This table captures the full local implementation checklist without treating every relation as live product behavior.

    | Category | Relation | Given | Returns | Relationship | Model Path |

    |---|---|---|---|---|---|

    | activity | `activityCausedByActivity` | Event,Activity | Event,Activity | | `` |

    | activity | `activityPartOfActivity` | Temporal | Temporal | | `/model/base/#parts` |

    | activity | `conceptCreationCausedByActivity` | Event,Activity | Concept | | `` |

    | activity | `conceptInfluencedByActivity` | Temporal | Concept | | `/model/concept/#creation-and-influences` |

    | activity | `objectDestructionCausedByActivity` | Event,Activity | HumanMadeObject | | `/model/object/production/#cause-of-destruction` |

    | activity | `objectProductionCausedByActivity` | Event,Activity | HumanMadeObject | productionCausedBy | `/model/object/production/#cause-of-production` |

    | activity | `personDeathCausedByActivity` | Event,Activity | Person | | `` |

    | activity | `setCreationCausedByActivity` | Event,Activity | Set | | `` |

    | activity | `workAboutActivity` | Temporal | Work | | `/model/object/aboutness/#subject` |

    | activity | `workAboutOrRepresentsActivity` | Temporal | Work | | `/model/object/aboutness/#subject` |

    | activity | `workCreationCausedByActivity` | Event,Activity | Work | | `` |

    | activity | `workRepresentsActivity` | Temporal | Work | | `/model/object/aboutness/#depiction` |

    | agent | `activityCarriedOutByAgent` | Agent | Activity | carriedOutBy | `/model/base/#events-and-activities /model/exhibition/#exhibition-activity` |

    | agent | `activityParticipantAgent` | Agent | Event, Activity | participant | `` |

    | agent | `agentMemberOfGroup` | Group | Agent | memberOf | `/model/actor/#organization-membership` |

    | agent | `conceptInfluencedByAgent` | Agent | Concept | influencedBy | `/model/concept/#creation-and-influences` |

    | agent | `groupFoundedByAgent` | Agent | Group | foundedBy | `/model/actor/#birth-and-death-formation-and-dissolution` |

    | agent | `objectCuratedByAgent` | Agent | HumanMadeObject | curatedBy | `/model/object/ownership/#custody` |

    | agent | `objectEncounteredByAgent` | Agent | HumanMadeObject | encounteredBy | `/model/object/production/#discovery-versus-production` |

    | agent | `objectOwnedByAgent` | Agent | HumanMadeObject | ownedBy | `/model/object/ownership/#ownership` |

    | agent | `objectProducedByAgent` | Agent | HumanMadeObject | producedBy | `/model/object/production/#base-production-activity` |

    | agent | `objectProductionInfluencedByAgent` | Agent | HumanMadeObject | productionInfluencedBy | `/model/object/production/#inspirations-studies-or-copies` |

    | agent | `setCreatedByAgent` | Agent | Set | createdBy | `/model/collection/#features` |

    | agent | `workAboutAgent` | Agent | Work | about | `/model/object/aboutness/#subject` |

    | agent | `workAboutOrRepresentsAgent` | Agent | Work | about / represents | `/model/object/aboutness/#subject` |

    | agent | `workCreatedByAgent` | Agent | Work | createdBy | `/model/document/#creation-and-publication` |

    | agent | `workPublishedByAgent` | Agent | Work | publishedBy | `/model/document/#creation-and-publication` |

    | agent | `workRepresentsAgent` | Agent | Work | represents | `/model/object/aboutness/#depiction` |

    | concept | `activityClassifiedAsConcept` | Concept | Temporal | classifiedAs | `/model/base/#types-and-classifications` |

    | concept | `agentClassifiedAsConcept` | Concept | Agent | classifiedAs | `/model/base/#types-and-classifications` |

    | concept | `conceptBroaderConcept` | Concept | Concept | broader | `/model/concept/#partitioning-versus-classification` |

    | concept | `conceptClassifiedAsConcept` | Concept | Concept | classifiedAs | `/model/concept/#partitioning-versus-classification` |

    | concept | `conceptInfluencedByConcept` | Concept | Concept | influencedBy | `/model/concept/#creation-and-influences` |

    | concept | `objectClassifiedAsConcept` | Concept | HumanMadeObject | classifiedAs | `/model/base/#types-and-classifications` |

    | concept | `objectMadeOfMaterial` | Material | HumanMadeObject | madeOf | `/model/object/physical/#materials` |

    | concept | `objectProductionTechniqueConcept` | Concept | HumanMadeObject | productionTechnique | `/model/object/production/#techniques-and-classifications` |

    | concept | `placeClassifiedAsConcept` | Concept | Place | classifiedAs | `/model/base/#types-and-classifications` |

    | concept | `setClassifiedAsConcept` | Concept | Set | classifiedAs | `/model/base/#types-and-classifications` |

    | concept | `workAboutConcept` | Concept | Work | about | `/model/object/aboutness/#subject` |

    | concept | `workAboutOrRepresentsConcept` | Concept | Concept | about / represents | `/model/object/aboutness/#subject` |

    | concept | `workClassifiedAsConcept` | Concept | Work | classifiedAs | `/model/base/#types-and-classifications` |

    | concept | `workCreationTechniqueConcept` | Concept | Work | creationTechnique | `` |

    | concept | `workLanguageLanguage` | Language | LinguisticObject | language | `/model/document/#core-features` |

    | concept | `workRepresentsConcept` | Concept | Work | represents | `/model/object/aboutness/#depiction` |

    | object | `activityUsedObject` | HumanMadeObject | Activity | used | `` |

    | object | `conceptInfluencedByObject` | HumanMadeObject | Concept | influencedBy | `/model/concept/#creation-and-influences` |

    | object | `objectPartOfObject` | HumanMadeObject | HumanMadeObject | objectPartOfObject | `/model/object/physical/#parts` |

    | object | `objectProductionInfluencedByObject` | HumanMadeObject | HumanMadeObject | productionInfluencedBy | `/model/object/production/#inspirations-studies-or-copies` |

    | object | `workAboutObject` | HumanMadeObject | Work | about | `/model/object/aboutness/#subject` |

    | object | `workAboutOrRepresentsObject` | HumanMadeObject | Work | about / represents | `/model/object/aboutness/#subject` |

    | object | `workRepresentsObject` | HumanMadeObject | Work | represents | `/model/object/aboutness/#depiction` |

    | place | `activityTookPlaceAtPlace` | Place | Event, Activity | tookPlaceAt | `/model/base/#events-and-activities` |

    | place | `agentActiveAtPlace` | Place | Agent | activeAt | `/model/actor/#active-dates` |

    | place | `agentBornOrFormedAtPlace` | Place | Agent | born / formed | `/model/actor/#birth-and-death-formation-and-dissolution` |

    | place | `agentDiedOrDissolvedAtPlace` | Place | Agent | died / dissolved | `/model/actor/#birth-and-death-formation-and-dissolution` |

    | place | `agentResidentAtPlace` | Place | Agent | residenceAt | `/model/actor/#residence-as-a-place` |

    | place | `conceptInfluencedByPlace` | Place | Concept | influencedBy | `/model/concept/#creation-and-influences` |

    | place | `groupActiveAtPlace` | Place | Group | activeAt | `/model/actor/#active-dates` |

    | place | `groupDissolvedAtPlace` | Place | Group | dissolvedAt | `/model/actor/#birth-and-death-formation-and-dissolution` |

    | place | `groupFormedAtPlace` | Place | Group | formedAt | `/model/actor/#birth-and-death-formation-and-dissolution` |

    | place | `objectCurrentPlace` | Place | HumanMadeObject | current | `/model/object/ownership/#location` |

    | place | `objectEncounteredAtPlace` | Place | HumanMadeObject | encounteredAt | `/model/object/production/#discovery-versus-production` |

    | place | `objectProducedAtPlace` | Place | HumanMadeObject | producedAt | `/model/object/production/#base-production-activity` |

    | place | `objectProductionInfluencedByPlace` | Place | HumanMadeObject | productionInfluencedBy | `/model/object/production/#inspirations-studies-or-copies` |

    | place | `personActiveAtPlace` | Place | Person | activeAt | `/model/actor/#active-dates` |

    | place | `personBornAtPlace` | Place | Person | bornAt | `/model/actor/#birth-and-death-formation-and-dissolution` |

    | place | `personDiedAtPlace` | Place | Person | diedAt | `/model/actor/#birth-and-death-formation-and-dissolution` |

    | place | `placePartOfPlace` | Place | Place | partOf | `/model/place/#core-information` |

    | place | `setCreatedAtPlace` | Place | Set | createdAt | `/model/collection/#features` |

    | place | `workAboutOrRepresentsPlace` | Place | Work | about / represents | `/model/object/aboutness/#subject` |

    | place | `workAboutPlace` | Place | Work | about | `/model/object/aboutness/#subject` |

    | place | `workCreatedAtPlace` | Place | Work | createdAt | `/model/document/#creation-and-publication` |

    | place | `workPublishedAtPlace` | Place | Work | publishedAt | `/model/document/#creation-and-publication` |

    | place | `workRepresentsPlace` | Place | Work | represents | `/model/object/aboutness/#depiction` |

    | set | `activityUsedSet` | Set | Activity | used | `/model/exhibition/#exhibition-activity` |

    | set | `conceptInfluencedBySet` | Set | Concept | influencedBy | `/model/concept/#creation-and-influences` |

    | set | `conceptMemberOfSet` | Set | Concept | memberOf | `/model/collection/#features` |

    | set | `entityMemberOfSet` | Set | Entity | memberOf | `/model/collection/#features` |

    | set | `objectMemberOfSet` | Set | HumanMadeObject | memberOf | `/model/collection/#features` |

    | set | `placeMemberOfSet` | Set | Place | memberOf | `/model/collection/#features` |

    | set | `setMemberOfSet` | Set | Set | memberOf | `/model/collection/#features` |

    | set | `temporalMemberOfSet` | Set | Temporal | memberOf | `/model/collection/#features` |

    | set | `workAboutOrRepresentsSet` | Set | Work | about / represents | `/model/object/aboutness/#subject` |

    | set | `workAboutSet` | Set | Work | about | `/model/object/aboutness/#subject` |

    | set | `workMemberOfSet` | Set | Work | memberOf | `/model/collection/#features` |

    | set | `workRepresentsSet` | Set | Work | represents | `/model/object/aboutness/#depiction` |

    | work | `activityUsedWork` | Work | Activity | used | `` |

    | work | `conceptInfluencedByWork` | Work | Concept | influencedBy | `/model/concept/#creation-and-influences` |

    | work | `objectCarriesWork` | LinguisticObject | HumanMadeObject | carries | `/model/document/#physical-objects-conceptual-texts` |

    | work | `objectProductionInfluencedByWork` | Work | HumanMadeObject | productionInfluencedBy | `/model/object/production/#inspirations-studies-or-copies` |

    | work | `objectShowsWork` | VisualItem | HumanMadeObject | shows | `/model/object/aboutness/#physical-object-and-visual-work` |

    | work | `workAboutOrRepresentsWork` | Work | Work | about / represents | `/model/object/aboutness/#subject` |

    | work | `workAboutWork` | Work | Work | about | `/model/object/aboutness/#subject` |

    | work | `workPartOfWork` | Work | Work | partOf | `/model/document/#structure` |

    | work | `workRepresentsWork` | Work | Work | represents | `/model/object/aboutness/#depiction` |

    Current Meta Museum Coverage

    Implemented today:

    • Public record/entity responses include HAL-style `_links.self`.
    • Responses advertise the Linked Art `la` CURIE namespace with the templated relation-doc URL `https://linked.art/api/rels/1/{rel}`.
    • Responses expose Linked Art API/model version affordances as HAL link objects with `href` and `name`.
    • Entity-role responses expose followable named relation-search `_links` for indexed usage predicates that already have result records, including `la:objectProducedByAgent`, `la:objectOwnedByAgent`, `la:objectCuratedByAgent`, `la:objectMemberOfSet`, `la:objectPartOfObject`, `la:objectCarriesWork`, `la:objectShowsWork`, `la:workAboutAgent`, `la:workRepresentsAgent`, `la:workAboutOrRepresentsAgent`, `la:activityCarriedOutByAgent`, `la:activityUsedObject`, `la:activityTookPlaceAtPlace`, `la:groupFoundedByAgent`, `la:objectEncounteredByAgent`, `la:agentActiveAtPlace`, `la:objectProductionInfluencedByAgent`, `la:objectProductionInfluencedByObject`, `la:objectProductionInfluencedByPlace`, `la:objectProductionInfluencedByWork`, `la:setCreatedByAgent`, `la:conceptInfluencedByObject`, `la:workCreatedByAgent`, and `la:workPublishedByAgent`.
    • `/api/relations` now publishes a first-class `OrderedCollection` catalog of supported relation-search definitions with relation URL, name, label, domain, range, and URI-template search target, so clients can discover relation families without starting from one entity record.
    • `/api/relations/{relation}?current={entity-uri}` returns a Linked Art JSON-LD `OrderedCollectionPage` for those indexed relation links, with explicit `relation`, `current`, `conforms_to`, and `partOf` metadata plus a `la:relationDefinition` HAL link.
    • Activity-centered relation indexing now materializes top-level and embedded activity evidence for carried-out-by agents, used human-made objects, and took-place-at places, returning Activity/Event summaries instead of flattening those relationships into object or actor records.
    • Formation, encounter, and active-place relation indexing now materializes `Group.formed_by.carried_out_by`, `HumanMadeObject.encountered_by.carried_out_by` including nested encounter `part[]`, and agent `active_at` place evidence, returning Group, HumanMadeObject, and Person/Group summaries through the documented HAL/Search API route.
    • Object-to-work relation indexing now materializes `HumanMadeObject.carries -> LinguisticObject` and `HumanMadeObject.shows -> VisualItem` evidence, returning the physical object summary from `la:objectCarriesWork` and `la:objectShowsWork` searches.
    • Production-influence, set-creation, concept-influence, and work aboutness/representation/creation/publication relation indexing now materializes `HumanMadeObject.produced_by.influenced_by` references to agents, objects, places, and works; `Set.created_by.carried_out_by`/`influenced_by`; `Type.created_by.influenced_by`; work `about`/`represents`; work `created_by.carried_out_by`; and publishing-classified work `used_for.carried_out_by` evidence through the same relation catalog and `OrderedCollectionPage` route. The combined `workAboutOrRepresentsAgent` page deduplicates works that both describe and depict the same current agent.
    • `/api/activity`, `/api/activity/collection`, and `/api/activity/page/{page}` provide ActivityStreams and IIIF Change Discovery-style synchronization surfaces.
    • Activity projections preserve semantic activity fields, including `used_specific_object` where modeled.

    Not complete yet:

    • The relation-search route is usage-index backed, so relation links appear only for predicates already materialized in entity usages. The full 95-name upstream relation inventory still needs breadth work for relations that are not yet indexed, including place/object/work/set/concept variants outside the currently indexed subset and other upstream relation families.
    • Relation catalog and target tests now prove twenty-four indexed paths are discoverable as relation definitions and return Search API `OrderedCollectionPage` results with relation/current metadata; each additional relation family still needs fixture-specific return-class tests.

    Test Ideas

    • Assert every Linked Art entity response emits `_links.self`, `curies`, `la:modelVersion`, and `la:apiVersion` with valid HAL link-object shapes.
    • Assert `/api/relations` exposes each implemented predicate as a relation definition with stable Linked Art relation URL, domain, range, and search template.
    • Assert `/api/relations/{relation}` pages include `relation`, `current`, `conforms_to`, `partOf`, `_links.self`, and `_links.la:relationDefinition` metadata.
    • Extend activity relation fixtures beyond the current carried-out-by, used-object, and took-place-at coverage to nested `part[]` activity cases and additional Activity/Event specializations.
    • Extend `la:conceptInfluencedByObject` fixtures beyond `Type.created_by.influenced_by` to any future full Concept endpoint classes and nested concept creation `part[]` patterns.
    • Add fixture data where a `HumanMadeObject` is part of another `HumanMadeObject`, then assert the whole-object response includes `la:objectPartOfObject` only when part records exist.
    • Follow the `la:objectPartOfObject` link and assert the response is an `OrderedCollectionPage` whose `orderedItems[]` are `HumanMadeObject` part records.
    • Extend `la:objectProductionInfluencedByObject`, `la:objectProductionInfluencedByPlace`, and `la:objectProductionInfluencedByWork` fixtures beyond direct production influence to nested production `part[]` patterns and additional normalized influence paths.
    • Extend `la:groupFoundedByAgent` fixtures beyond direct formation responsibility to nested formation `part[]` cases if upstream records use partitioned formation activities.
    • Add fixture data for both `object.member_of -> collection.used_for -> curating.carried_out_by` and `object.current_keeper`/current-custody branches, then assert the agent response includes `la:objectCuratedByAgent` only when curated/custodied object records exist.
    • Follow the `la:objectCuratedByAgent` link and assert the response is an `OrderedCollectionPage` whose `orderedItems[]` are `HumanMadeObject` records.
    • Extend `la:objectEncounteredByAgent` fixtures to cover provider records that put encounter evidence inside provenance wrappers rather than directly on `HumanMadeObject.encountered_by`.
    • Add fixture data where `HumanMadeObject.current_owner` references the current `Person` or `Group`, then assert the agent response includes `la:objectOwnedByAgent` only when owned object records exist.
    • Follow the `la:objectOwnedByAgent` link and assert the response is an `OrderedCollectionPage` whose `orderedItems[]` are `HumanMadeObject` records.
    • Add fixture data where an object's `produced_by` activity or nested production part is `carried_out_by` the current `Person` or `Group`, then assert the agent response includes `la:objectProducedByAgent` only when produced object records exist.
    • Follow the `la:objectProducedByAgent` link and assert the response is an `OrderedCollectionPage` whose `orderedItems[]` are `HumanMadeObject` records.
    • Extend `la:objectProductionInfluencedByAgent` fixtures to cover nested production `part[]` patterns and agent influence supplied through normalized authority references.
    • Extend `la:setCreatedByAgent` fixtures beyond direct set creation influence to nested creation `part[]` and `carried_out_by` cases.
    • Add fixture data where a `LinguisticObject`, `VisualItem`, or `PropositionalObject` `about` relationship references the current `Person` or `Group`, then assert the agent response includes `la:workAboutAgent` only when subject-work records exist.
    • Follow the `la:workAboutAgent` link and assert the response is an `OrderedCollectionPage` whose `orderedItems[]` are work records.
    • Extend `la:workAboutOrRepresentsAgent` fixtures across all work endpoint classes and future non-agent subject/representation variants.
    • Extend `la:workCreatedByAgent` fixtures across all work endpoint classes and nested creation `part[]` cases.
    • Extend `la:workPublishedByAgent` fixtures across all work endpoint classes and stricter publication-classification vocabulary variants.
    • Add fixture data where a visual work `represents` the current `Person` or `Group`, then assert the agent response includes `la:workRepresentsAgent` only when depicted-work records exist.
    • Follow the `la:workRepresentsAgent` link and assert the response is an `OrderedCollectionPage` whose `orderedItems[]` are visual work records.
    • Extend `la:agentActiveAtPlace` fixtures to cover Group records and any future normalized active-period shape beyond direct `active_at` place references.
    • Assert records with no matching used-object activities omit the relation link rather than returning an empty or misleading relation.
    • Keep HAL links out of semantic graph assertions and RDF-oriented record validation.

    AI/agent quick endpoints