Title (Goal)

As a developer, I want to retrieve the HTML or Javascript necessary for rendering a high-resolution image in a zoom-pan-rotate (aka z/p/r, zpr, “zipper”) given an image object identifier. 

Primary Actor

Developer 

Scope

 

Level

 

Author

 Elliot Metsger

Story (A paragraph or two describing what happens)

Given an identifier for an object in the repository that represents a high-resolution image, I'd like to retrieve an HTML or Javascript fragment that uses a 3rd-party image viewing service providing zoom, pan, and rotate features. 

My repository contains many different "image" objects across different collections.  Some of the images are derivatives, others are so-called master images.  Typically the master images are the highest resolution image available.  Because my repository has been operating for a long time, and because different collections have different requirements, my master images are in multiple formats.  

Despite the heterogeneity of image formats and collection requirements, the information architect has been able to successfully use a single content model to reflect the information in an image object.  Image objects are all members of the class myns:Image.

Some image binaries may be JPEG, some might be JPEG 2000, and some are probably in the venerable TIF format.  Some subset of the instances of myns:Image will have pyramidal TIFF master images.  This subset of myns:Image objects that contain pyramidal TIFF images are amenable to visualization with a ZPR-capable image server.  As a developer, I want to be able to select and bind the subset of myns:Image objects that contain pyramidal TIFF images to a service that provides ZPR capabilities.

1 Comment

  1. This is a prime example of where discovery-by-structural-type (instead of discovery-by-nominal-type) is important. By selecting services based on structural qualities of the resource in hand (e.g.

    resource hasChild _:image . _:image mimetype "image/tiff" .

    ) distinguishing among the various kinds of images is almost effortless. Doing that with discovery-by-nominal-type imposes a burden of maintenance as nominal types have to be created, applied, then reapplied over the resource lifetimes.