Hi Rafael, Jeffrey,
This is cool! Having just read the webmention spec I wonder about the
use of an IIIF service to specify the endpoint, it seems a rather
IIIF-specific way to specify the endpoint. Maybe this is necessary
because the mechanisms specified [1] for conveying endpoint (HTTP Link
Header, <link> or <a>) are either HTML specific or rely on HTTP headers
(and I'm perpetually confused about when they will or won't be available
to JavaScript clients...). Perhaps a point of feedback for Rob to give
is the question of whether there should be other standard ways of
specifying endpoint in non-HTML sources, or is it just HTTP header?
Also, from long and sometimes painful experience with trackbacks on
arXiv.org, you might want to consider an automated check that the source
refers to the target. This has proved our most effective anti-spam check.
Cheers,
Simeon
[1]
https://www.w3.org/TR/webmention/#sender-discovers-receiver-webmention-endpoint
> service accepts POST requests with two fields, /source/ and /target/.
> The value for each field MUST be a URI. The service validates the
> request by checking that the required POST parameters are set, that the
> values are valid URIs and that the target exists on e-codices. If all
> criteria are met, it responds with an HTTP status code of 202
> ("Accepted") and adds the webmention request to a queue. If the request
> is not valid, it responds with a 400 ("Bad Request") and a corresponding
> message such as "required parameters missing" or "target does not exist"
> etc.
>
> The reason why the response code is 202 and not the standard 200 ("OK")
> is that webmention requests should be processed asynchronously to
> prevent DoS attacks as described here:
>
https://github.com/converspace/webmention/. This is also why – upon
> receipt of the request – all I do is validating the target and adding
> them to a queue.
>
> Does this make sense so far? If yes, please go ahead and send some
> requests to the webmention service.
>
> The next steps to implement on our side then, I think, will be the
> following:
>
> * Notify admins of new webmention requests
> * Add a UI for admins to process the webmention requests
> * Illegitimate requests can be deleted from the queue without being
> processed – these are highly unlikely to occur as we only accept
> requests for valid targets (only manifests, for now)
> * The processing of each webmention request will be somehow triggered
> (automatically or manually) and the processing would look something
> like this:
> o GET the source of the webmention
> o Determine the type of the source (range, search within,
> annotation, etc.)
> o Check the type of the target (manifest or canvas)
> o Remove the webmention request from the queue and add a record to
> a DB table or JSON file etc. with source, target, source type,
> target type and a timestamp
> o Let admins approve the use (display) of the "supplement" (range
> list, annotation etc.) in the front-end UI
> o If an admin approved the use of the supplement, the front-end UI
> (e.g. the viewer) would display a range list as a table of
> contents or an annotation for a canvas or a search input field
> for a "search within" service
>
> Another thing we could do with the "supplement" is adding it back (or
> linking it) to the original manifest, for example if it was a "search
> within" service, we could just add it as another service at manifest
> level. If we receive multiple range lists from different sources,
> however, it gets a bit complicated and I am not sure if it would make
> sense to put these back into the manifest. The advantage, if we added
> them, would be that when opening the manifest in a IIIF viewer such as
> Mirador the supplement data would be available in the form of a table of
> contents etc. I think if we were to link to these external "supplements"
> in the manifest, they should be clearly labelled as "external" or
> similar, so that clients could decide whether to show original content
> only or include external content.
>
> Let me know what you think. All feedback is welcome!
>
> Thanks,
> Rafael
>
> --
> -- You received this message because you are subscribed to the
> IIIF-Discuss Google group. To post to this group, send email to
>
iiif-d...@googlegroups.com. To unsubscribe from this group, send
> email to
iiif-discuss...@googlegroups.com. For more options,
> visit this group at
https://groups.google.com/d/forum/iiif-discuss?hl=en
> ---
> You received this message because you are subscribed to the Google
> Groups "IIIF Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
iiif-discuss...@googlegroups.com
> <mailto:
iiif-discuss...@googlegroups.com>.
> For more options, visit
https://groups.google.com/d/optout.