From 6a065323f452a02ed6fb6516506d831cff91ff98 Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Wed, 25 Mar 2026 14:53:22 +0000 Subject: [PATCH 1/7] Adding new v4 validator --- .github/workflows/validate.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/validate.yml diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 000000000..5d49638ec --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,23 @@ +name: validate + +on: + pull_request: + workflow_dispatch: + +jobs: + validate: + runs-on: ubuntu-latest + env: + BUNDLE_WITH: test jekyll_plugins + SITE_ID: 'cookbook' # which iiif site this is + URL: 'https://preview.iiif.io' + + steps: + - name: Check out this repository + uses: actions/checkout@v5 + + - name: Run IIIF validator + uses: IIIF/presentation-validator@v4 + with: + directory: source/presentation/4.0/example/ + version: "4.0" \ No newline at end of file From dc87229930290a6077f25ce45d63fa9c6c9b9a65 Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Wed, 25 Mar 2026 15:11:06 +0000 Subject: [PATCH 2/7] Fixing duration --- source/presentation/4.0/example/uc07_duration_composite.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/presentation/4.0/example/uc07_duration_composite.json b/source/presentation/4.0/example/uc07_duration_composite.json index 2e44a2554..81dd2294b 100644 --- a/source/presentation/4.0/example/uc07_duration_composite.json +++ b/source/presentation/4.0/example/uc07_duration_composite.json @@ -10,7 +10,7 @@ "label": { "en": [ "Side A: 99 Luftballons - 10min duration" ] }, "width": 100, "height": 100, - "duration": 36000, + "duration": 600, "items": [ { "id": "https://iiif.io/api/presentation/4.0/example/uc07_audio/canvas/1/page/1", From 7de660ec1e599163d46c782c135696fce70cabd0 Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Wed, 25 Mar 2026 18:07:36 +0000 Subject: [PATCH 3/7] Update validate.yml Using main validator --- .github/workflows/validate.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 5d49638ec..cf5b02354 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v5 - name: Run IIIF validator - uses: IIIF/presentation-validator@v4 + uses: IIIF/presentation-validator@main with: directory: source/presentation/4.0/example/ - version: "4.0" \ No newline at end of file + version: "4.0" From 87b91c49f0a461d0319cb633a1d31bf9eddc13d3 Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Wed, 25 Mar 2026 23:38:04 +0000 Subject: [PATCH 4/7] Fixing target by turning it into an object --- source/presentation/4.0/example/uc06_canvas_in_scene.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/presentation/4.0/example/uc06_canvas_in_scene.json b/source/presentation/4.0/example/uc06_canvas_in_scene.json index 8f83ab5e8..a72177d3f 100644 --- a/source/presentation/4.0/example/uc06_canvas_in_scene.json +++ b/source/presentation/4.0/example/uc06_canvas_in_scene.json @@ -54,7 +54,10 @@ "width": 800, "height": 800 }, - "target": "https://iiif.io/api/presentation/4.0/example/uc06/canvas/chessboard" + "target": { + "id": "https://iiif.io/api/presentation/4.0/example/uc06/canvas/chessboard", + "type": "Canvas" + } } ] } From 31421a417e9320e13b8e9e33875f2ebb47dc3f41 Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Tue, 31 Mar 2026 00:06:25 +0100 Subject: [PATCH 5/7] Adding the sub scene information --- .../4.0/example/uc06_scene_in_scene.json | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/source/presentation/4.0/example/uc06_scene_in_scene.json b/source/presentation/4.0/example/uc06_scene_in_scene.json index 1442451aa..0a25c691b 100644 --- a/source/presentation/4.0/example/uc06_scene_in_scene.json +++ b/source/presentation/4.0/example/uc06_scene_in_scene.json @@ -19,7 +19,34 @@ "motivation": [ "painting" ], "body": { "id": "https://iiif.io/api/presentation/4.0/example/uc06/scene/1", - "type": "Scene" + "type": "Scene", + "label": { + "en": [ + "Chess Pawn" + ] + }, + "items": [ + { + "id": "https://iiif.io/api/presentation/4.0/example/uc06/scene/1/page/1", + "type": "AnnotationPage", + "items": [ + { + "id": "https://iiif.io/api/presentation/4.0/example/uc06/3d/anno/1", + "type": "Annotation", + "motivation": ["painting"], + "body": { + "id": "https://fixtures.iiif.io/3d/thomas_flynn/chess/Pawn_black.glb", + "type": "Model", + "format": "model/gltf-binary" + }, + "target": { + "id": "https://iiif.io/api/presentation/4.0/example/uc06/scene/1", + "type": "Scene" + } + } + ] + } + ] }, "target": { "id": "https://iiif.io/api/presentation/4.0/example/uc06/scene/parent/anno/1/specificResource/1", From cc896b6591ecf14beb3f2dce54e4c2c305b57f83 Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Thu, 2 Apr 2026 22:28:17 +0100 Subject: [PATCH 6/7] Fixing chessboard image --- source/presentation/4.0/example/uc06_canvas_in_scene.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/presentation/4.0/example/uc06_canvas_in_scene.json b/source/presentation/4.0/example/uc06_canvas_in_scene.json index a72177d3f..41daf3b53 100644 --- a/source/presentation/4.0/example/uc06_canvas_in_scene.json +++ b/source/presentation/4.0/example/uc06_canvas_in_scene.json @@ -48,11 +48,11 @@ "type": "Annotation", "motivation": [ "painting" ], "body": { - "id": "https://fixtures.iiif.io/3d/chess/chessboard.jpg", + "id": "https://fixtures.iiif.io/3d/thomas_flynn/chess/chessboard.png", "type": "Image", - "format": "image/jpeg", - "width": 800, - "height": 800 + "format": "image/png", + "width": 1024, + "height": 1024 }, "target": { "id": "https://iiif.io/api/presentation/4.0/example/uc06/canvas/chessboard", From b33eb652a0def770c51af493307e418bdea8e9a5 Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Thu, 2 Apr 2026 23:07:53 +0100 Subject: [PATCH 7/7] Making hdr links to actual files --- source/presentation/4.0/example/uc06_audio_with_3d.json | 2 +- source/presentation/4.0/example/uc06_multiple_3d_objects.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/presentation/4.0/example/uc06_audio_with_3d.json b/source/presentation/4.0/example/uc06_audio_with_3d.json index 7443e9528..36f9e7edc 100644 --- a/source/presentation/4.0/example/uc06_audio_with_3d.json +++ b/source/presentation/4.0/example/uc06_audio_with_3d.json @@ -256,7 +256,7 @@ "type": "ImageBasedLight", "label": { "en": [ "Image-Based Light" ] }, "environmentMap": { - "id": "https://iiif.io/api/presentation/4.0/example/uc06/light/3/environment.hdr", + "id": "https://fixtures.iiif.io/3d/polyhaven/spruit_sunrise_4k.hdr", "type": "Image", "format": "image/vnd.radiance", "profile": "equirectangular" diff --git a/source/presentation/4.0/example/uc06_multiple_3d_objects.json b/source/presentation/4.0/example/uc06_multiple_3d_objects.json index c48c5b7ae..826c8e321 100644 --- a/source/presentation/4.0/example/uc06_multiple_3d_objects.json +++ b/source/presentation/4.0/example/uc06_multiple_3d_objects.json @@ -139,7 +139,7 @@ "type": "ImageBasedLight", "label": { "en": [ "Image-Based Light" ] }, "environmentMap": { - "id": "https://iiif.io/api/presentation/4.0/example/uc06/light/3/environment.hdr", + "id": "https://fixtures.iiif.io/3d/polyhaven/spruit_sunrise_4k.hdr", "type": "Image", "format": "image/vnd.radiance", "profile": "equirectangular"