From aa5c1a0857fbea92554eccffafe42678ff103a78 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 12 Jul 2024 08:34:45 -0400 Subject: [PATCH 01/17] Create index.md --- recipe/ml-usage-tags/index.md | 87 +++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 recipe/ml-usage-tags/index.md diff --git a/recipe/ml-usage-tags/index.md b/recipe/ml-usage-tags/index.md new file mode 100644 index 000000000..0636ef2d2 --- /dev/null +++ b/recipe/ml-usage-tags/index.md @@ -0,0 +1,87 @@ +--- +title: IIIF ML/AI Usage Tags Recipe +id: +layout: recipe +tags: [rights, requiredStatement] +summary: "Ethical ML/AI Use Tags for IIIF Manifests" +viewers: + - Mirador + - UV +topic: + - text + - presentation +property: rights, requiredStatement +--- + +## Use Case + +Similar to the initiatives crafted by other content communities in efforts to limit the scraping of images and text using “noai” and “noimageai” meta HTML tags, users of the IIIF APIs may consider implementing a set of tags their IIIF manifests to help better regulate ML/AI content scraping and non-consented or attributed use of IIIF powered content in ML/AI applications. + +## Implementation Notes + +Use of these standardized ML/AI Usage tags in IIIF Manifests will always need to be paired with sophisticated, up-to-date DevOps and data security practices within the context of a repository environment. + +Recommendation to use a single applicable tag, based on the particular concerns associated with an asset's use in ML/AI applications. + +#### For humans, within [`requiredStatement`](https://iiif.io/api/presentation/3.0/#requiredstatement) + +```JSON +{ + "requiredStatement": { + "label": { "en": [ "No AI" ] }, + "value": { "en": [ "Material related to this IIIF Manifest should not be used for AI or ML training datasets." ] } + } +} +``` +```JSON +{ + "requiredStatement": { + "label": { "en": [ "No Image AI" ] }, + "value": { "en": [ "Image-based material related to this IIIF Manifest should not be used for AI or ML training datasets." ] } + } +} +``` +```JSON +{ + "requiredStatement": { + "label": { "en": [ "Regulated ML/AI Use Permitted - Attribution Required" ] }, + "value": { "en": [ "Material related to this IIIF Manifest may be used for AI or ML training datasets, as long as Standard Attribution of source content is maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced." ] } + } +} +``` +```JSON +{ + "requiredStatement": { + "label": { "en": [ "Regulated ML/AI Use Permitted - Consent Required" ] }, + "value": { "en": [ "Material related to this IIIF Manifest may be used for AI or ML training datasets, if Prior Written Consent is obtained from the source holding institution. Standard Attribution of source content must be maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced." ] } + } +} +``` + +#### For machines, within [`rights`](https://iiif.io/api/presentation/3.0/#rights) + +* URIs to be pursued for machineable interactions, pending further discussions within the IIIF and wider repository communities during Summer 2024 and onwards. + +#### Additional Considerations + +* Simple use cases (apply per manifest) versus complex uses casses (apply per item/canvas) + +* IIIF is an API based framework, geared to machine mediated interactions but: **IIIF resources are for humans** + +* As we, professionally and personally, decide to use or integrate ML/AI tools into our repositories, we need to keep in mind our curatorial legacies and the complex nature of our own content. + +* ML/AI technology will continue to shift over time and require diligent application and monitoring, for the rest of our professional lives. + +## Restrictions + +No known restrictions. + +## Example + +{% include manifest_links.html manifest="manifest.json" %} + +{% include jsonviewer.html src="manifest.json" config='data-line="30-39"' %} + +## Related Recipes + +* [Rights][0008] for demonstrating use of `rights` and `requiredStatement` From 647f7e18da7485a650b6a67025178d81c07825ee Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 12 Jul 2024 08:35:08 -0400 Subject: [PATCH 02/17] Create manifest.json --- recipe/ml-usage-tags/manifest.json | 78 ++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 recipe/ml-usage-tags/manifest.json diff --git a/recipe/ml-usage-tags/manifest.json b/recipe/ml-usage-tags/manifest.json new file mode 100644 index 000000000..fe3f61c36 --- /dev/null +++ b/recipe/ml-usage-tags/manifest.json @@ -0,0 +1,78 @@ +{ + "@context": "http://iiif.io/api/presentation/3/context.json", + "id": "{{ id.url }}", + "type": "Manifest", + "label": { + "en": [ + "Picture of Göttingen taken during the 2019 IIIF Conference" + ] + }, + "summary": { + "en": [ + "

Picture taken by the IIIF Technical Coordinator

" + ] + }, + "rights": "http://creativecommons.org/licenses/by-sa/3.0/", + "requiredStatement": [ + { + "label": { + "en": [ + "Attribution" + ] + }, + "value": { + "en": [ + "Glen Robson, IIIF Technical Coordinator. CC BY-SA 3.0 " + ] + } + }, + { + "label": { + "en": [ + "Regulated ML/AI Use Permitted - Consent Required" + ] + }, + "value": { + "en": [ + "Material related to this IIIF Manifest may be used for AI or ML training datasets, if Prior Written Consent is obtained from the source holding institution. Standard Attribution of source content must be maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced." + ] + } + } + ], + "items": [ + { + "id": "{{ id.path }}/canvas/p1", + "type": "Canvas", + "height": 3024, + "width": 4032, + "items": [ + { + "id": "{{ id.path }}/page/p1/1", + "type": "AnnotationPage", + "items": [ + { + "id": "{{ id.path }}/annotation/p0001-image", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg", + "type": "Image", + "format": "image/jpeg", + "height": 3024, + "width": 4032, + "service": [ + { + "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen", + "profile": "level1", + "type": "ImageService3" + } + ] + }, + "target": "{{ id.path }}/canvas/p1" + } + ] + } + ] + } + ] +} From 6241c45a0694817e0d0380d447e2116481df19a6 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 12 Jul 2024 08:41:11 -0400 Subject: [PATCH 03/17] Update recipe folder to include issue number --- recipe/{ml-usage-tags => 0514-ml-usage-tags}/index.md | 0 recipe/{ml-usage-tags => 0514-ml-usage-tags}/manifest.json | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename recipe/{ml-usage-tags => 0514-ml-usage-tags}/index.md (100%) rename recipe/{ml-usage-tags => 0514-ml-usage-tags}/manifest.json (100%) diff --git a/recipe/ml-usage-tags/index.md b/recipe/0514-ml-usage-tags/index.md similarity index 100% rename from recipe/ml-usage-tags/index.md rename to recipe/0514-ml-usage-tags/index.md diff --git a/recipe/ml-usage-tags/manifest.json b/recipe/0514-ml-usage-tags/manifest.json similarity index 100% rename from recipe/ml-usage-tags/manifest.json rename to recipe/0514-ml-usage-tags/manifest.json From e0adaf264ee49f5bbad3d30ad474d668409b59b9 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 12 Jul 2024 10:14:32 -0400 Subject: [PATCH 04/17] Update manifest.json Remove errant brackets --- recipe/0514-ml-usage-tags/manifest.json | 138 ++++++++++++------------ 1 file changed, 68 insertions(+), 70 deletions(-) diff --git a/recipe/0514-ml-usage-tags/manifest.json b/recipe/0514-ml-usage-tags/manifest.json index fe3f61c36..874f6a5dc 100644 --- a/recipe/0514-ml-usage-tags/manifest.json +++ b/recipe/0514-ml-usage-tags/manifest.json @@ -1,78 +1,76 @@ { - "@context": "http://iiif.io/api/presentation/3/context.json", - "id": "{{ id.url }}", - "type": "Manifest", - "label": { - "en": [ - "Picture of Göttingen taken during the 2019 IIIF Conference" - ] - }, - "summary": { - "en": [ - "

Picture taken by the IIIF Technical Coordinator

" - ] - }, - "rights": "http://creativecommons.org/licenses/by-sa/3.0/", - "requiredStatement": [ - { - "label": { - "en": [ - "Attribution" - ] + "@context": "http://iiif.io/api/presentation/3/context.json", + "id": "{{ id.url }}", + "type": "Manifest", + "label": { + "en": [ + "Picture of Göttingen taken during the 2019 IIIF Conference" + ] + }, + "summary": { + "en": [ + "

Picture taken by the IIIF Technical Coordinator

" + ] + }, + "rights": "http://creativecommons.org/licenses/by-sa/3.0/", + "requiredStatement": { + "label": { + "en": [ + "Attribution" + ] + }, + "value": { + "en": [ + "Glen Robson, IIIF Technical Coordinator. CC BY-SA 3.0 " + ] + } }, - "value": { - "en": [ - "Glen Robson, IIIF Technical Coordinator. CC BY-SA 3.0 " - ] - } - }, - { - "label": { - "en": [ - "Regulated ML/AI Use Permitted - Consent Required" - ] + { + "label": { + "en": [ + "Regulated ML/AI Use Permitted - Consent Required" + ] + }, + "value": { + "en": [ + "Material related to this IIIF Manifest may be used for AI or ML training datasets, if Prior Written Consent is obtained from the source holding institution. Standard Attribution of source content must be maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced." + ] + } }, - "value": { - "en": [ - "Material related to this IIIF Manifest may be used for AI or ML training datasets, if Prior Written Consent is obtained from the source holding institution. Standard Attribution of source content must be maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced." - ] - } - } - ], - "items": [ - { - "id": "{{ id.path }}/canvas/p1", - "type": "Canvas", - "height": 3024, - "width": 4032, - "items": [ - { - "id": "{{ id.path }}/page/p1/1", - "type": "AnnotationPage", - "items": [ + "items": [ + { + "id": "{{ id.path }}/canvas/p1", + "type": "Canvas", + "height": 3024, + "width": 4032, + "items": [ { - "id": "{{ id.path }}/annotation/p0001-image", - "type": "Annotation", - "motivation": "painting", - "body": { - "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg", - "type": "Image", - "format": "image/jpeg", - "height": 3024, - "width": 4032, - "service": [ + "id": "{{ id.path }}/page/p1/1", + "type": "AnnotationPage", + "items": [ { - "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen", - "profile": "level1", - "type": "ImageService3" + "id": "{{ id.path }}/annotation/p0001-image", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg", + "type": "Image", + "format": "image/jpeg", + "height": 3024, + "width": 4032, + "service": [ + { + "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen", + "profile": "level1", + "type": "ImageService3" + } + ] + }, + "target": "{{ id.path }}/canvas/p1" } - ] - }, - "target": "{{ id.path }}/canvas/p1" + ] } - ] - } - ] - } - ] + ] + } + ] } From d166158d57ad0a1a9f956bd9d7b63f4374156372 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 12 Jul 2024 10:42:08 -0400 Subject: [PATCH 05/17] Update manifest.json Object structure change for validation --- recipe/0514-ml-usage-tags/manifest.json | 33 +++++++++---------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/recipe/0514-ml-usage-tags/manifest.json b/recipe/0514-ml-usage-tags/manifest.json index 874f6a5dc..8eb0a0058 100644 --- a/recipe/0514-ml-usage-tags/manifest.json +++ b/recipe/0514-ml-usage-tags/manifest.json @@ -14,29 +14,18 @@ }, "rights": "http://creativecommons.org/licenses/by-sa/3.0/", "requiredStatement": { - "label": { - "en": [ - "Attribution" - ] - }, - "value": { - "en": [ - "Glen Robson, IIIF Technical Coordinator. CC BY-SA 3.0 " - ] - } - }, - { - "label": { - "en": [ - "Regulated ML/AI Use Permitted - Consent Required" - ] - }, - "value": { - "en": [ - "Material related to this IIIF Manifest may be used for AI or ML training datasets, if Prior Written Consent is obtained from the source holding institution. Standard Attribution of source content must be maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced." - ] - } + "label": { + "en": [ + "Regulated ML/AI Use Permitted - Consent Required" + ] }, + "value": { + "en": [ + "Material related to this IIIF Manifest may be used for AI or ML training datasets, if Prior Written Consent is obtained from the source holding institution. Standard Attribution of source content must be maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced.", + "Attribution: Glen Robson, IIIF Technical Coordinator. CC BY-SA 3.0 " + ] + } + }, "items": [ { "id": "{{ id.path }}/canvas/p1", From 77074aadd4fe0c30c2f93f8b41279dfdba79e65f Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 12 Jul 2024 10:57:19 -0400 Subject: [PATCH 06/17] Update index.md Correct topic for validation; update line references as needed for manifest.json changes --- recipe/0514-ml-usage-tags/index.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/recipe/0514-ml-usage-tags/index.md b/recipe/0514-ml-usage-tags/index.md index 0636ef2d2..a32dd0e07 100644 --- a/recipe/0514-ml-usage-tags/index.md +++ b/recipe/0514-ml-usage-tags/index.md @@ -7,9 +7,7 @@ summary: "Ethical ML/AI Use Tags for IIIF Manifests" viewers: - Mirador - UV -topic: - - text - - presentation +topic: property property: rights, requiredStatement --- @@ -80,7 +78,7 @@ No known restrictions. {% include manifest_links.html manifest="manifest.json" %} -{% include jsonviewer.html src="manifest.json" config='data-line="30-39"' %} +{% include jsonviewer.html src="manifest.json" config='data-line="16-28"' %} ## Related Recipes From 507c14055a5cb82d5fa03ba115460a2ce48565ad Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:01:57 -0400 Subject: [PATCH 07/17] Update index.md --- recipe/0514-ml-usage-tags/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0514-ml-usage-tags/index.md b/recipe/0514-ml-usage-tags/index.md index a32dd0e07..178b8b377 100644 --- a/recipe/0514-ml-usage-tags/index.md +++ b/recipe/0514-ml-usage-tags/index.md @@ -7,7 +7,7 @@ summary: "Ethical ML/AI Use Tags for IIIF Manifests" viewers: - Mirador - UV -topic: property +topic: note property: rights, requiredStatement --- From b1fcc6a7b0041d36d4165018d119bb7f70becc7f Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:21:05 -0400 Subject: [PATCH 08/17] Update index.md --- recipe/0514-ml-usage-tags/index.md | 51 ++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/recipe/0514-ml-usage-tags/index.md b/recipe/0514-ml-usage-tags/index.md index 178b8b377..3e2ef5325 100644 --- a/recipe/0514-ml-usage-tags/index.md +++ b/recipe/0514-ml-usage-tags/index.md @@ -13,7 +13,7 @@ property: rights, requiredStatement ## Use Case -Similar to the initiatives crafted by other content communities in efforts to limit the scraping of images and text using “noai” and “noimageai” meta HTML tags, users of the IIIF APIs may consider implementing a set of tags their IIIF manifests to help better regulate ML/AI content scraping and non-consented or attributed use of IIIF powered content in ML/AI applications. +Similar to the initiatives crafted by other content communities in efforts to limit the scraping of images and text using “noai” and “noimageai” meta HTML tags, users of the IIIF APIs may consider implementing a set of tags/usage statements their IIIF manifests to help better regulate ML/AI content scraping and non-consented or attributed use of IIIF powered content in ML/AI applications. ## Implementation Notes @@ -21,13 +21,28 @@ Use of these standardized ML/AI Usage tags in IIIF Manifests will always need to Recommendation to use a single applicable tag, based on the particular concerns associated with an asset's use in ML/AI applications. +### Using `rights` statement URIs sourced from Wikidata + +The examples shown here reference the Wikidata Items URIs for the different statements. As described in the [IIIF Presentation 3.0 `rights` property](https://iiif.io/api/presentation/3.0/#rights) related to `@context` requirements, and using the [Profiles Registry](https://iiif.io/api/registry/profiles/), you need to add the specified Profile URI for the Wikidata items to the `context` property at the beginning of your IIIF Manifest: + +```JSON +{ + "@context": [ + "https://www.wikidata.org/entity/Q115365241", + "http://iiif.io/api/presentation/3/context.json" + ] +} +``` + +Please also see the [goals statement on Stable URIs Development and Maintenance in the Ethical ML/AI Usage Tags Project Repository](https://github.com/alliomeria/ethical_ml_usage_tags/blob/main/README.md#stable-uris-development-and-maintenance) for information about the longer term plans regarding related URIs. + #### For humans, within [`requiredStatement`](https://iiif.io/api/presentation/3.0/#requiredstatement) ```JSON { "requiredStatement": { "label": { "en": [ "No AI" ] }, - "value": { "en": [ "Material related to this IIIF Manifest should not be used for AI or ML training datasets." ] } + "value": { "en": [ "Material related to this Digital Object should not be used for AI or ML training datasets." ] } } } ``` @@ -35,7 +50,7 @@ Recommendation to use a single applicable tag, based on the particular concerns { "requiredStatement": { "label": { "en": [ "No Image AI" ] }, - "value": { "en": [ "Image-based material related to this IIIF Manifest should not be used for AI or ML training datasets." ] } + "value": { "en": [ "Image-based material related to this Digital Object should not be used for AI or ML training datasets." ] } } } ``` @@ -43,7 +58,7 @@ Recommendation to use a single applicable tag, based on the particular concerns { "requiredStatement": { "label": { "en": [ "Regulated ML/AI Use Permitted - Attribution Required" ] }, - "value": { "en": [ "Material related to this IIIF Manifest may be used for AI or ML training datasets, as long as Standard Attribution of source content is maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced." ] } + "value": { "en": [ "material related to this Digital Object may be used for AI or ML training datasets, as long as Standard Attribution of source Digital Object Title and URL is maintained and referenced publicly for the ML/AI dataset." ] } } } ``` @@ -51,14 +66,36 @@ Recommendation to use a single applicable tag, based on the particular concerns { "requiredStatement": { "label": { "en": [ "Regulated ML/AI Use Permitted - Consent Required" ] }, - "value": { "en": [ "Material related to this IIIF Manifest may be used for AI or ML training datasets, if Prior Written Consent is obtained from the source holding institution. Standard Attribution of source content must be maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced." ] } + "value": { "en": [ "Material related to this Digital Object may be used for AI or ML training datasets, if Prior Written Consent is obtained from the Source Holding Institution and Standard Attribution is maintained and referenced publicly." ] } } } ``` #### For machines, within [`rights`](https://iiif.io/api/presentation/3.0/#rights) -* URIs to be pursued for machineable interactions, pending further discussions within the IIIF and wider repository communities during Summer 2024 and onwards. +* No AI +```JSON +{ "rights": "https://www.wikidata.org/wiki/Q127515163" } + +``` + +* No Image AI +```JSON +{ "rights": "https://www.wikidata.org/wiki/Q127516405" } + +``` + +* Regulated ML/AI Use Permitted - Attribution Required +```JSON +{ "rights": "https://www.wikidata.org/wiki/Q127516763" } + +``` + +* Regulated ML/AI Use Permitted - Consent Required +```JSON +{ "rights": "https://www.wikidata.org/wiki/Q127518037" } + +``` #### Additional Considerations @@ -78,7 +115,7 @@ No known restrictions. {% include manifest_links.html manifest="manifest.json" %} -{% include jsonviewer.html src="manifest.json" config='data-line="16-28"' %} +{% include jsonviewer.html src="manifest.json" config='data-line="15-28"' %} ## Related Recipes From 19ebd3a24d0464aba056e3986f3dfe915ee8e393 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:23:17 -0400 Subject: [PATCH 09/17] Update manifest.json --- recipe/0514-ml-usage-tags/manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/0514-ml-usage-tags/manifest.json b/recipe/0514-ml-usage-tags/manifest.json index 8eb0a0058..baa13f3a9 100644 --- a/recipe/0514-ml-usage-tags/manifest.json +++ b/recipe/0514-ml-usage-tags/manifest.json @@ -12,7 +12,7 @@ "

Picture taken by the IIIF Technical Coordinator

" ] }, - "rights": "http://creativecommons.org/licenses/by-sa/3.0/", + "rights": "https://www.wikidata.org/wiki/Q127518037", "requiredStatement": { "label": { "en": [ @@ -21,7 +21,7 @@ }, "value": { "en": [ - "Material related to this IIIF Manifest may be used for AI or ML training datasets, if Prior Written Consent is obtained from the source holding institution. Standard Attribution of source content must be maintained for the ML/AI dataset. Original URL of source IIIF manifest must be maintained and referenced.", + "Material related to this Digital Object may be used for AI or ML training datasets, if Prior Written Consent is obtained from the Source Holding Institution and Standard Attribution is maintained and referenced publicly.", "Attribution: Glen Robson, IIIF Technical Coordinator. CC BY-SA 3.0 " ] } From 5c93302f56dec347c8a400d93f6bde2f77a24faa Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:25:59 -0400 Subject: [PATCH 10/17] Update manifest.json Context update (: --- recipe/0514-ml-usage-tags/manifest.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipe/0514-ml-usage-tags/manifest.json b/recipe/0514-ml-usage-tags/manifest.json index baa13f3a9..acec76d55 100644 --- a/recipe/0514-ml-usage-tags/manifest.json +++ b/recipe/0514-ml-usage-tags/manifest.json @@ -1,5 +1,8 @@ { - "@context": "http://iiif.io/api/presentation/3/context.json", + "@context": [ + "https://www.wikidata.org/entity/Q115365241", + "http://iiif.io/api/presentation/3/context.json" + ], "id": "{{ id.url }}", "type": "Manifest", "label": { From 6ddfc4e9007fa6a24a67f5acab565424236e6ba9 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:23:25 -0400 Subject: [PATCH 11/17] Update manifest.json Return to normal @context --- recipe/0514-ml-usage-tags/manifest.json | 1 - 1 file changed, 1 deletion(-) diff --git a/recipe/0514-ml-usage-tags/manifest.json b/recipe/0514-ml-usage-tags/manifest.json index acec76d55..c2cb81ba0 100644 --- a/recipe/0514-ml-usage-tags/manifest.json +++ b/recipe/0514-ml-usage-tags/manifest.json @@ -1,6 +1,5 @@ { "@context": [ - "https://www.wikidata.org/entity/Q115365241", "http://iiif.io/api/presentation/3/context.json" ], "id": "{{ id.url }}", From eff85e403df64534d894428b6dbc7b0615fb2ba6 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:51:33 -0400 Subject: [PATCH 12/17] Update index.md Update statements related to Wikidata, rights, registries --- recipe/0514-ml-usage-tags/index.md | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/recipe/0514-ml-usage-tags/index.md b/recipe/0514-ml-usage-tags/index.md index 3e2ef5325..a9683ac74 100644 --- a/recipe/0514-ml-usage-tags/index.md +++ b/recipe/0514-ml-usage-tags/index.md @@ -23,18 +23,9 @@ Recommendation to use a single applicable tag, based on the particular concerns ### Using `rights` statement URIs sourced from Wikidata -The examples shown here reference the Wikidata Items URIs for the different statements. As described in the [IIIF Presentation 3.0 `rights` property](https://iiif.io/api/presentation/3.0/#rights) related to `@context` requirements, and using the [Profiles Registry](https://iiif.io/api/registry/profiles/), you need to add the specified Profile URI for the Wikidata items to the `context` property at the beginning of your IIIF Manifest: +The examples shown here reference the Wikidata URIs for the different statements. As described in the [IIIF Presentation 3.0 `rights` property](https://iiif.io/api/presentation/3.0/#rights), currently URIs should be sourced from Creative Commons or RightsStatements.org. For URIs that do not reference either of these sources, the [`extensions`](https://iiif.io/api/presentation/3.0/#46-linked-data-context-and-extensions) mechanism using a source found in one of the [IIIF Registry of Known Extensions](https://iiif.io/api/registry/) can also be used. Wikidata is included in the [Profiles Registry](https://iiif.io/api/registry/profiles/). -```JSON -{ - "@context": [ - "https://www.wikidata.org/entity/Q115365241", - "http://iiif.io/api/presentation/3/context.json" - ] -} -``` - -Please also see the [goals statement on Stable URIs Development and Maintenance in the Ethical ML/AI Usage Tags Project Repository](https://github.com/alliomeria/ethical_ml_usage_tags/blob/main/README.md#stable-uris-development-and-maintenance) for information about the longer term plans regarding related URIs. +Please see the [goals statement on Stable URIs Development and Maintenance in the Ethical ML/AI Usage Tags Project Repository](https://github.com/alliomeria/ethical_ml_usage_tags/blob/main/README.md#stable-uris-development-and-maintenance) for information about the longer term plans regarding related URIs. When those stable URIs are finalized, a proposal will be made to add to the [Rights Registry](https://iiif.io/api/registry/rights/). #### For humans, within [`requiredStatement`](https://iiif.io/api/presentation/3.0/#requiredstatement) From a5bb15909c69cc8b9977713e7231bf411b039194 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:53:05 -0400 Subject: [PATCH 13/17] Update preview.yml To sidestep validation error, per Glen --- .github/workflows/preview.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 79e41ad02..41bb47bc3 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -71,7 +71,7 @@ jobs: pip install -r scripts/requirements.txt - name: validate - run: scripts/validate.sh + # run: scripts/validate.sh - name: add URL to config run: .github/bin/addURL.sh From 5b34696c1decb20e783bc160b0f0f3066c1b30d4 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:56:53 -0400 Subject: [PATCH 14/17] Update preview.yml remove indentation --- .github/workflows/preview.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 41bb47bc3..de010d6bc 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -71,7 +71,7 @@ jobs: pip install -r scripts/requirements.txt - name: validate - # run: scripts/validate.sh +# run: scripts/validate.sh - name: add URL to config run: .github/bin/addURL.sh From 191ec3215f5379b5fbf41ac97b4ccf7243d897ab Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 19 Jul 2024 12:01:10 -0400 Subject: [PATCH 15/17] Update preview.yml both lines (: --- .github/workflows/preview.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index de010d6bc..36d624717 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -70,8 +70,8 @@ jobs: python -m pip install --upgrade pip pip install -r scripts/requirements.txt - - name: validate -# run: scripts/validate.sh +# - name: validate +# run: scripts/validate.sh - name: add URL to config run: .github/bin/addURL.sh From 4253edcf3a46228956f553cf2eef078a8759d3ba Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 19 Jul 2024 12:26:54 -0400 Subject: [PATCH 16/17] Update index.md Bump down JSON snippets for `rights` --- recipe/0514-ml-usage-tags/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipe/0514-ml-usage-tags/index.md b/recipe/0514-ml-usage-tags/index.md index a9683ac74..5c72737e3 100644 --- a/recipe/0514-ml-usage-tags/index.md +++ b/recipe/0514-ml-usage-tags/index.md @@ -65,24 +65,28 @@ Please see the [goals statement on Stable URIs Development and Maintenance in th #### For machines, within [`rights`](https://iiif.io/api/presentation/3.0/#rights) * No AI + ```JSON { "rights": "https://www.wikidata.org/wiki/Q127515163" } ``` * No Image AI + ```JSON { "rights": "https://www.wikidata.org/wiki/Q127516405" } ``` * Regulated ML/AI Use Permitted - Attribution Required + ```JSON { "rights": "https://www.wikidata.org/wiki/Q127516763" } ``` * Regulated ML/AI Use Permitted - Consent Required + ```JSON { "rights": "https://www.wikidata.org/wiki/Q127518037" } From ae28788597665ac25af5b6e4347a1159e7f392c8 Mon Sep 17 00:00:00 2001 From: Allison Sherrick <67483756+alliomeria@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:28:07 -0400 Subject: [PATCH 17/17] Update index.md - Adjust order or rights & requiredStatement - Add more detailed information about the URIs, potential current & potential future machinable, and notes detailed the Example shown --- recipe/0514-ml-usage-tags/index.md | 70 +++++++++++++++--------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/recipe/0514-ml-usage-tags/index.md b/recipe/0514-ml-usage-tags/index.md index 5c72737e3..861d96e29 100644 --- a/recipe/0514-ml-usage-tags/index.md +++ b/recipe/0514-ml-usage-tags/index.md @@ -13,21 +13,49 @@ property: rights, requiredStatement ## Use Case -Similar to the initiatives crafted by other content communities in efforts to limit the scraping of images and text using “noai” and “noimageai” meta HTML tags, users of the IIIF APIs may consider implementing a set of tags/usage statements their IIIF manifests to help better regulate ML/AI content scraping and non-consented or attributed use of IIIF powered content in ML/AI applications. +Similar to the initiatives crafted by other communities of practice in efforts to limit the scraping of images and text using “noai” and “noimageai” meta HTML tags, users of the IIIF APIs may consider implementing a set of tags/statements in their IIIF manifests to help better regulate ML/AI content scraping and non-consented or attributed use of IIIF powered content in ML/AI applications. ## Implementation Notes -Use of these standardized ML/AI Usage tags in IIIF Manifests will always need to be paired with sophisticated, up-to-date DevOps and data security practices within the context of a repository environment. +Use of these standardized ML/AI Usage tags/statements in IIIF Manifests will always need to be paired with sophisticated, up-to-date DevOps and data security practices within the context of a repository environment. -Recommendation to use a single applicable tag, based on the particular concerns associated with an asset's use in ML/AI applications. +Recommendation is to use a single applicable tag/statement, based on the particular concerns associated with an asset's use in ML/AI applications. ### Using `rights` statement URIs sourced from Wikidata -The examples shown here reference the Wikidata URIs for the different statements. As described in the [IIIF Presentation 3.0 `rights` property](https://iiif.io/api/presentation/3.0/#rights), currently URIs should be sourced from Creative Commons or RightsStatements.org. For URIs that do not reference either of these sources, the [`extensions`](https://iiif.io/api/presentation/3.0/#46-linked-data-context-and-extensions) mechanism using a source found in one of the [IIIF Registry of Known Extensions](https://iiif.io/api/registry/) can also be used. Wikidata is included in the [Profiles Registry](https://iiif.io/api/registry/profiles/). +The examples shown here reference the Wikidata URIs for the different statements. As described in the [IIIF Presentation 3.0 `rights` property](https://iiif.io/api/presentation/3.0/#rights), URIs should be sourced from Creative Commons or RightsStatements.org. For URIs that do not reference either of these sources, the [`extensions`](https://iiif.io/api/presentation/3.0/#46-linked-data-context-and-extensions) mechanism using a source found in one of the [IIIF Registry of Known Extensions](https://iiif.io/api/registry/) can also be used. Wikidata is included in the [Profiles Registry](https://iiif.io/api/registry/profiles/). Please see the [goals statement on Stable URIs Development and Maintenance in the Ethical ML/AI Usage Tags Project Repository](https://github.com/alliomeria/ethical_ml_usage_tags/blob/main/README.md#stable-uris-development-and-maintenance) for information about the longer term plans regarding related URIs. When those stable URIs are finalized, a proposal will be made to add to the [Rights Registry](https://iiif.io/api/registry/rights/). -#### For humans, within [`requiredStatement`](https://iiif.io/api/presentation/3.0/#requiredstatement) +Aside from providing a link reference which typically leads to a static webpage that describes a license/statement in greater detail, a machineable outcome of the usage of Creative Commons or RightsStatement.org URIs within the `rights` property is the display of the corresponding license/statement icon or badge within one of the standard IIIF viewers (as shown in the example below). In the future, there may be ways to extend the machineable outcomes associated with these ML/AI Usage tags/statements (or other `rights` values) in ways that direct responses to machine-mediated interactions. + +#### For machines, within [`rights`](https://iiif.io/api/presentation/3.0/#rights) + +* No AI + +```JSON +{ "rights": "https://www.wikidata.org/wiki/Q127515163" } +``` + +* No Image AI + +```JSON +{ "rights": "https://www.wikidata.org/wiki/Q127516405" } +``` + +* Regulated ML/AI Use Permitted - Attribution Required + +```JSON +{ "rights": "https://www.wikidata.org/wiki/Q127516763" } +``` + +* Regulated ML/AI Use Permitted - Consent Required + +```JSON +{ "rights": "https://www.wikidata.org/wiki/Q127518037" } +``` + +#### For humans (public display), within [`requiredStatement`](https://iiif.io/api/presentation/3.0/#requiredstatement) ```JSON { @@ -62,36 +90,6 @@ Please see the [goals statement on Stable URIs Development and Maintenance in th } ``` -#### For machines, within [`rights`](https://iiif.io/api/presentation/3.0/#rights) - -* No AI - -```JSON -{ "rights": "https://www.wikidata.org/wiki/Q127515163" } - -``` - -* No Image AI - -```JSON -{ "rights": "https://www.wikidata.org/wiki/Q127516405" } - -``` - -* Regulated ML/AI Use Permitted - Attribution Required - -```JSON -{ "rights": "https://www.wikidata.org/wiki/Q127516763" } - -``` - -* Regulated ML/AI Use Permitted - Consent Required - -```JSON -{ "rights": "https://www.wikidata.org/wiki/Q127518037" } - -``` - #### Additional Considerations * Simple use cases (apply per manifest) versus complex uses casses (apply per item/canvas) @@ -108,6 +106,8 @@ No known restrictions. ## Example +The [IIIF 3.0 Specs](https://iiif.io/api/presentation/3.0/) restrict `rights` to a single value string format, and `requiredStatement` to a single value JSON Object. The example shown below uses a singe applicable ML/AI Usage statement Wikidata URI in `rights`, paired with a set of two human-readable `value` statements (one for ML/AI usage and one for a standard Creative Commons reference) in `requiredStatement` (structured as a single JSON object). + {% include manifest_links.html manifest="manifest.json" %} {% include jsonviewer.html src="manifest.json" config='data-line="15-28"' %}