Using Externally Hosted IIIF Manifests with Viewers in Omeka-S

Hello,

I’m brand new to Omeka-S, and I’m trying to figure out workflow and “module infrastructure” for displaying objects from externally hosted IIIF presentation manifests in Omeka-S with Mirador or Universal Viewer.

In the README for the Omeka-S-module-IiifServer repository, it suggests you can load externally hosted presentation API manifests by setting the alternative manifest to a specific field like dcterms:hasFormat. I assume this means in the configuration setting for whatever viewer you want to use. I’ve tried doing this in Universal Viewer by setting Manifest property to Dublin Core : Has Format. I’ve also assumed (perhaps incorrectly) that I should add an item with metadata that includes a dcterms:hasFormat with a valid presentation manifest. For example, I added a sample object like this:

Title: Test
Has Format: https://damsssl.llgc.org.uk/iiif/2.0/4389767/manifest.json

In order to test this, I’ve added a Sample Page with a Universal Viewer block with an attachment to my Test item above.

When I view the page, Universal Viewer displays, but the canvases don’t. That’s because it’s loading this manifest:

https://tennessee.omeka.net/iiif/8/manifest

which loads this JSON:

{
	"@context": ["http://iiif.io/api/presentation/2/context.json", "http://wellcomelibrary.org/ld/ixif/0/context.json"],
	"@id": "https://tennessee.omeka.net/iiif/8/manifest",
	"@type": "sc:Manifest",
	"label": "Test",
	"license": "http://www.example.org/license.html",
	"attribution": "Provided by Example Organization",
	"related": {
		"@id": "https://tennessee.omeka.net/s/sample/item/8",
		"format": "text/html"
	},
	"seeAlso": {
		"@id": "https://tennessee.omeka.net/api/items/8",
		"format": "application/ld+json"
	},
	"metadata": [{
		"label": "Title",
		"value": "Test"
	}, {
		"label": "Has Format",
		"value": "https://damsssl.llgc.org.uk/iiif/2.0/4389767/manifest.json"
	}],
	"sequences": [{
		"@id": "https://tennessee.omeka.net/iiif/8/sequence/normal",
		"@type": "sc:Sequence",
		"label": "Unsupported extension. This manifest is being used as a wrapper for non-IIIF content (e.g., audio, video) and is unfortunately incompatible with IIIF viewers.",
		"compatibilityHint": "displayIfContentUnsupported",
		"canvases": [{
			"@id": "/iiif/ixif-message/canvas/c1",
			"@type": "sc:Canvas",
			"label": "Placeholder image",
			"thumbnail": "/modules/IiifServer/asset/img/thumbnails/placeholder-image.png?v=3.5.16",
			"width": 200,
			"height": 200,
			"images": [{
				"@id": "/iiif/ixif-message/imageanno/placeholder",
				"@type": "oa:Annotation",
				"motivation": "sc:painting",
				"resource": {
					"@id": "/iiif/ixif-message-0/res/placeholder",
					"@type": "dctypes:Image",
					"width": 200,
					"height": 200
				},
				"on": "/iiif/ixif-message/canvas/c1"
			}]
		}]
	}]
}

I’m obviously misunderstanding something here and not configuring this properly. The presentation manifest above is just displaying my dcterms:hasFormat, but not actually using it as the presentation manifest.

How do you display an object via an externally hosted IIIF presentation manifest in Omeka-S in either Mirador or Universal Viewer, and what modules do I need to do this? Do I just need Omeka-S-module-IiifServer and either Omeka-S-module-Mirador or Omeka-S-module-UniversalViewer. Finally, how do I add the object via the presentation manifest, and what did I misinterpret above?