Open mikeapp opened 9 years ago
I'm afraid we've gotten a bit ahead of ourselves, but we're making due. I envy Tom, who can "look ahead" to having all preliminary questions resolved. We know a lot more about this now. Look forward to a post to the list with more detail.
The current work on transcription has been based on a dynamic store. We've been using this as a proxy for a persistent "layer" and "list" across all canvases. We are looking for any otherContent lists and will displaying them in the UI, but right now we have no fixture manifests with any otherContent using a within field. To develop toward this issue in the way originally intended, we need two kinds of supporting resources:
What is this relationship? Right now the dynamic annotation endpoint is not a service in IIIF terms; it's just a mirage created by a particular configuration of Mirador that makes it send a search request on every page turn. What is the IIIF-sanctioned equivalent of this behaviour? How can a manifest instruct Mirador to do this (or should it)? How can a client retrieve a list from otherContent and then persist an addition to that list?
As far as we know, no such server exists to support this activity, and the specification does not discuss this kind of exchange between lists and annotations. CRUD via REST has not been hashed out for manifests, and I haven't heard it discussed for annotation lists. At best it can be hacked together and the UI can be as decoupled as possible from the underlying shim of guesses. This is what we have done, treating the search response on the page turn as the authoritative "list" (which ought to come form otherContent, but there is no way to connect the two because of requirement 2, above, not being met by any known software) that is assumed to be "within" its own layer with the "label" and "description" passed in as configuration options for Mirador.
If you want a standards based answer to 2, it would be to associate an LDP DirectContainer with an AnnotationList as the membership resource. Fedora4 already implements DirectContainers, and Triannon uses Containers to store Annotations ... but there would be some changes needed to get it to work in practice, and we've more than used up our Triannon development time for this calendar year.
I could build a prototype given a few days, but as you say, we haven't discussed CUD (R is easy) for anything in the IIIF space, and Annotations only in the W3C space, so I'm not sure of the value of such a prototype.
Our intent is to generate manifests whose otherContent
points to lists managed in our annotation store.
Our annotation store allows creation/addition of an annotation to a specific list by specifying the list's URI in the within
property. I'm sure that there are other approaches one could take, but this is simple and reasonably consistent with the data returned when the annotation is requested.
That will work with what we've created. Can individual annotations have a within property?
It looks as though the ten-thousand-rooms examples provide a within property.
But much of the discussion this assumes that lists or layers exist at all, which is not required by the specs as far as I can tell. The only thing an annotation needs to have a relationship to a manifest is a URI value (currently a canvas id) assigned to the annotations "on" property. The only thing the client needs to make that relationship meaningful to the user is 1) an endpoint and 2) a way to query by annotations' "on" property.
The work we did this week was based on the above use case, which is what we have to work with, and which will continue to exist even when more robust server-side software is available.
-Shaun
On Fri, Aug 7, 2015 at 2:07 AM, aeschylus notifications@github.com wrote:
That will work with what we've created. Can individual annotations have a within property?
— Reply to this email directly or view it on GitHub https://github.com/IIIF/mirador/issues/589#issuecomment-128607995.
Individual annotations can have a within
property. The Search API will provide a means of locating all annotations for a Canvas. From an individual Annotation is will be possible to follow the graph up to the Layer(s), if they exist. The Layers allow for conveniences in the UI, but I agree that they (and presumably even AnnotationLists, once Search is available) are not a requirement.
Hello,
Is there any way now to do this? presently we are serving iiif annotationLists with their within
property set to a layer object. In manifest, for each canvas, in it's otherContent
array, we have references to multiple annotationLists, each list having their own within
property setted to different layer. like, machine_inferred layer, user_space_layer, etc. now is there any interface to enable/disable specific layers? on Layers tab in sidebar, only image manipulation layers are being listed as of now.
When AnnotationLists are loaded, dereference the Layers they are a member of (via
within
). This will enable a display of the the Layer label/description in the "Text" side panel.