Open Collections Protocol

Open Collections Protocol is a lightweight way to publish collections on the open web. A collection is treated as a first-class web resource with stable URLs.

The architectural model is LinkedCollections, and the domain-level discovery mechanism is Domain Collections Discovery (DCD).

1. Why this protocol exists

Many collections are trapped inside custom platforms, local databases, or one-off APIs. That makes long-term access and cross-institution discovery harder than it needs to be.

This protocol lowers that barrier by defining a simple published web surface based on HTTP and JSON.

2. Core model in simple terms

Web concept Protocol concept
WebsiteCollection
index.htmlcollection.json manifest
Web pageItem record
Image/fileMedia asset URL
Search engineCollection Indexer
BrowserCollection Browser

3. Summary-first publication

A manifest provides item summaries first. Detailed metadata and media are loaded only when needed.

Example collection manifest

{
  "id": "rotterdam-harbor",
  "title": "Rotterdam Harbor Collection",
  "items": [
    {
      "id": "map-123",
      "title": "Harbor map, 1898",
      "type": "image",
      "thumbnailUrl": "thumbs/123.jpg",
      "detailUrl": "items/123.json"
    }
  ]
}

Example item record

{
  "id": "map-123",
  "title": "Harbor map, 1898",
  "date": "1898",
  "assets": [
    {
      "role": "full",
      "url": "media/123.jpg",
      "mimeType": "image/jpeg"
    }
  ]
}

Example directory structure

/.well-known/collections.json
/collections/rotterdam/collection.json
/collections/rotterdam/items/123.json
/collections/rotterdam/media/123.jpg
/collections/rotterdam/thumbs/123.jpg

4. Domain discovery (DCD)

DCD is a small file at /.well-known/collections.json that declares which collections a domain considers authoritative.

Example domain discovery file

{
  "domain": "museum-example.org",
  "collections": [
    {
      "id": "rotterdam-harbor",
      "title": "Rotterdam Harbor Collection",
      "manifestUrl": "https://cdn.museum-example.org/collections/rotterdam/collection.json"
    }
  ]
}

5. Linked collections

A collection can reference other collections for federation and reuse.

Example linked collection entry

{
  "id": "north-sea-maps",
  "title": "North Sea Map Collections",
  "items": [
    {
      "id": "rotterdam-maps",
      "type": "collection",
      "url": "https://museum-a.org/collections/rotterdam/collection.json"
    },
    {
      "id": "antwerp-maps",
      "type": "collection",
      "url": "https://archive-b.be/collections/antwerp/collection.json"
    }
  ]
}

6. Tool ecosystem around the protocol

Typical tools include Collection Manager, Collection Browser, Collection Registry, and Collection Indexer.

Example architecture sketch

Domain
  |- /.well-known/collections.json (DCD)
  `- collection.json
      |- items/*.json
      `- media/*

Collection Registry + Collection Indexer / Collection Browser / Aggregator
  `- consume published URLs and build different experiences

7. Practical next steps