Invalid exported manifest (v2+v3)
I made some annotations on
https://www.goudatijdmachine.nl/omeka/iiif/2/13/manifest but when I export these as manifest they seem to be invalid. The v2 version
https://www.goudatijdmachine.nl/omeka/files/iiif/manifest_liiive_v2.json doesn’t show the image (in theseusviewer.org) and no annotations. The v3 version
https://www.goudatijdmachine.nl/omeka/files/iiif/manifest_liiive_v3.json doens’t show the image but does show the presence of annotations (with invalid annotation target).
Log in to comment and vote
Comments8
Alice Tweedy McGrath
Jan 10, 2025
My issue is similar. I have tried using the exported manifests as v2 and v3 but both times I get a ‘failed to fetch’ error (also using Theseus)
v3: https://alicemcgrath.digital.brynmawr.edu/images/iiif/a-o-v3.json
v2: https://alicemcgrath.digital.brynmawr.edu/images/iiif/a-o-v2.json
I was ultimately able to get results using Workbench when I published the annotations as a separate list and added a reference to that list (manifest:
https://atmcgrath.github.io/melon/manifests/angel-0-l.json annotation list:
https://atmcgrath.github.io/melon/annotations/angel-annotations.json
). Two annotations load, but one has an “invalid target”. This is ok as a workaround, but if the exported manifests with annotations worked that would be much easier! Do you have documentation for how to make that work? Thanks!
Rainer Simon
Jan 11, 2025
Hi Alice,
I looked into the problem. There are two separate issues: first, the “failed to fetch” one.
That, actually, is not a problem with the manifests. It’s a problem with how you are serving them. There’s a built-in security mechanism in every browser that blocks applications served on one domain (e.g. theseusviewer.org) to access content from other domains (e.g. alicemcgrath.digital…). To make this work, you’d have to enable a specific server configuration (called CORS) on alicemcgrath.digital.brynmawr.edu. Without it, every viewer (Glycerine, Theseus, Mirador, liiive,…) will fail to fetch the manifest.
The reason you can load from atmcgrath.github.io has, in fact, nothing to do with separating the annotations. It’s simply because Github does have the CORS setting enabled by default. Therefore, the simplest solution would be to move your manifest to Github directly, and they should load just fine.
Rainer Simon
Jan 11, 2025
The second issue, I’m not sure about. But I think what you have done is to split the manifest into a v2 Presentation manifest and a v3 annotation list, which might not work in combination. But I can’t reproduce your “invalid target” error directly. Which viewer did you see that in?
Rainer Simon
Jan 11, 2025
A quick update to the second issue: there was a bug on my end which produced broken targets for ellipse annotations. That’s now fixed!
If you re-export the manifest from liiive, and put it on Github, it should now work in other viewers.
Alice Tweedy McGrath
Jan 14, 2025
Hi, Simon, thanks for pointing that out! I don’t think the CORS thing is the whole issue, however — I actually had previously tried on github and the exports still weren’t working. take a look at these two, which I just exported today:
- https://atmcgrath.github.io/melon/manifests/liiive-v2.json
https://atmcgrath.github.io/melon/manifests/liiive-v3.json
V3 works fine in theseus (but not mirador), v2 doesn’t load the image or annotations in either.
Rainer Simon
Jan 15, 2025
Hi Alice,
thanks for the additional troubleshooting - and sorry for the hassle!
It looks like there are several smaller issues, working together unfavorably… I’m on it.
Some seem to stem from liiive’s built in v2-to-v3 manifest conversion. I’m using an official utility from IIIF commons for the conversion, which still seems to have a few issues. I’m already in touch with the IIIF folks about identifying and sorting them out. Meanwhile, I disabled the option to download a v2 manifest from liiive, for as long as those issues aren’t sorted out.
Another, unrelated issue, seems to be that Mirador has a few gaps when it comes to annotations support. First, I noticed that annotations won’t appear if the don’t have a
motivationfield set. I added amotivation: “commenting“now to liiive exports. That makes them appear in the Mirador annotation list.Additionally, however, it looks like Mirador is only able to display rectangle shapes. But not polygons or ellipses. I found this issue on their Github which, alas, has not been responded to. Again, I’m going to get in touch with them and see whether there’s something they can do.
For the time being, I’ll focus on getting things to work well in Theseus and Glycerine, both of which seem to display all annotation shapes just fine.
Last but not least: because of the problems with the v2/v3 conversion utility, manifest that are originally imported into liiive as v2 manifests may have issues as well. Again – I’m working on it! But for now, the only truly safe way to get annotations from liiive display fine in other viewers is to:
Import a v3 manifest
Annotate in liiive
Export a v3 manifest
This way, you’re never passing the brittle v2/v3 conversion path.
Rainer Simon
Dec 23, 2024
Hm, sorry for that. I’ll investigate what the problem is. The manifest is actually serialized with one of the default IIIF implementations. But something seems to be off with the polygon annotations on my end. I’ll report back soon!
Rainer Simon
Dec 23, 2024
Hi @Bob Coret,
I just pushed an update to liiive, which fixes bug in my serialization of SVG targets. Exporting a v3 Presentation Manifest should now work. (That’s regardless of whether you imported a v2 or v3 manifest.)
Exporting a v2 manifest may still need a bit of troubleshooting. Internally, everything gets converted to v3 first, and the “downgrade” back from v3 to v2 isn’t quite working yet, I think. But I’m on it!