Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test IIIF Manifests with Childless Divs #5141

Open
1 task
joncameron opened this issue Mar 29, 2023 · 5 comments
Open
1 task

Test IIIF Manifests with Childless Divs #5141

joncameron opened this issue Mar 29, 2023 · 5 comments

Comments

@joncameron
Copy link
Contributor

joncameron commented Mar 29, 2023

Description

Are childless divs against the spec? We should confirm and test to make sure that isn't the case after avalon-dev is updated to make sure these aren't getting stripped anymore.

As noted:
We discussed validating structural metadata in the endpoint at time of save, which would allow us to prevent the creation of childless divs in both the SME and XML editor for consistency sake, and would allow us to show a useful error message to users.

However, we are concerned about existing structural metadata that may have childless divs (or headings without timespans). In the current implementation, if that structural metadata is pulled up in the SME and then saved, those childless divs will be lost. If we implement a validation filter across both SME and XML editor, then that data will be lost (or have to be moved somewhere else) in both editors.

It would be helpful to have a survey of how / if this type of data is being saved into structural metadata.

In the short term, Chris has worked on testing a IIIF with childless range in structures section to determine if it is truly out of compliance with IIIF. It seems to be passing the validator and working in viewers, so if that goes well, the proposal is to revert the work in pull request #5113 and allow childless divs to be created. These should be able to be handled by the SME as the problem was with the IIIF manifest, now the SME?

Done Looks Like

  • Test manifests with childless divs generated by Avalon with other players/validators

Notes on testing

@cjcolvar
Copy link
Member

cjcolvar commented Mar 31, 2023

It looks like Ramp, Clover, and UV all handle childless divs fine.

I used a manifest from a cookbook recipe and manually added a childless div to it and put it in a web accessible space.
Ramp works fine
Clover works but doesn't show any structure
UV works in both UV3 and UV4; UV3 shows structure but the UV4 demo doesn't
https://uv-v3.netlify.app/#?c=&m=&s=&cv=&manifest=https%3A%2F%2Fmco-staging.dlib.india[…]f.io%2Fapi%2Fcookbook%2Frecipe%2F0026-toc-opera%2Frange%2F3
The manifest also validates using the IIIF presentation online validator: https://presentation-validator.iiif.io/

@cjcolvar
Copy link
Member

After #5145 was merged I created a new manifest from an item on avalon-dev and replaced the manifest used in the last comment.
Ramp worked fine
The manifest failed validation using the IIIF online validator but the errors were unrelated to the childless div.
I wasn't able to test clover or UV due to unrelated outstanding incompatibilities.

@masaball
Copy link
Contributor

masaball commented Mar 31, 2023

I was able to test an avalon-dev manifest against Clover and UV. The manifest worked in Clover, loading the media just fine but did not show structure. It failed in UV due to unrelated issues.

If anyone needs to test our manifests against Clover here is a gist of the iiif_canvas_presenter model that will generate manifests without the choice construction. Relevant methods are at lines 51, 68, and 82. I usually set quality to 'auto', but it should work fine to set a specific quality.

@cjcolvar
Copy link
Member

cjcolvar commented Apr 3, 2023

@masaball It looks like that gist reintroduces the code I removed in #5145. Does clover still work for you with those lines removed?

@masaball
Copy link
Contributor

masaball commented Apr 3, 2023

Thanks for catching that, I have adjusted the gist to not include the removed code. As discussed at standup, I tested directly from Avalon-dev where #5145 was in place. The discrepancy was from not thinking to pull and rebase my local instance before editing and uploading the file to gist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants