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

Does Cantaloupe support the IIIF Presentation API? #48

Closed
imoutsatsos opened this issue Oct 8, 2016 · 4 comments
Closed

Does Cantaloupe support the IIIF Presentation API? #48

imoutsatsos opened this issue Oct 8, 2016 · 4 comments

Comments

@imoutsatsos
Copy link

Alex, greetings and thanks for this new entry to Java based image servers. I have been evaluating various image servers for digital microscopy in the biological sciences and I just discovered Cantaloupe. I will be giving it a spin in the next few days.

An important aspect of my work is the ability to display some image metadata along with the image. Many of the digital microscopy images have file names that encode some metadata. So, it would be useful to display the source file name along with each image. I understand that the IIIF Presentation API supports a rich set of annotations and metadata that can be displayed with each artifact.

Does Cantaloupe support the IIIF Presentation API? Are there any other mechanisms (not based on the Presentation API) to display such simple annotation? Any examples?

Thanks and best regards
Ioannis

@adolski
Copy link
Contributor

adolski commented Oct 10, 2016

Hello Ioannis,

Cantaloupe is strictly an image server, and implements the Image API only. My knowledge of the Presentation API is limited and I don't know if there are any out-of-the-box implementations, or image servers that support both the Image and Presentation APIs together.

It would depend on your use case, but probably the simplest alternative to using the Presentation API would be to not use any formal API, and instead just write some custom code to acquire and present your metadata. The Presentation API is relatively complex and may (or may not) be overkill for your purposes.

@imoutsatsos
Copy link
Author

Thanks Alex;

I got the same impression from my first reading of the Presentation API. It may be worth creating manifest files for fancy artifacts but not for every image that digital microscopy creates (and that is in the thousands!).

I have now installed Cantaloupe on a test server and tried a few basic operations using it. Really nice! It worked as advertised and it was simple to get up and running! Both FileSystemResolver and HttpResolver are easy to use. However, both seem to be limited to a single folder/URL prefix. I would like this prefix to be a parent folder, parent URL that I can further specify to navigate to multiple subfolders. Is this possible only using the ScriptLookupStrategy?

Thanks for your feedback
Best regards
Ioannis

@adolski
Copy link
Contributor

adolski commented Oct 10, 2016

I'm glad things are going well so far. With both of those resolvers, using BasicLookupStrategy, you are free to specify subfolders in the URL identifier. For example, if you have a folder structure like this:

folder/
    image1.jpg
    image2.jpg
    subfolder/
        image3.jpg

And FilesystemResolver.BasicLookupStrategy.path_prefix is set to folder/ -- you can use identifiers of image1.jpg, image2.jpg, and subfolder%2Fimage3.jpg in your URLs.

Same idea for HttpResolver.

%2F is, of course, a URL-encoded slash. If you are running behind a reverse proxy server that is not capable of passing these through without decoding them, you can choose a different character using the slash_substitute configuration key.

Hope this helps!

@imoutsatsos
Copy link
Author

Excellent. I had missed the URL-Encoded slash. Using it I can now access images in the sub-folders.
Thank you!
Ioannis

@adolski adolski closed this as completed Oct 11, 2016
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

2 participants