Closed christopher-johnson closed 7 years ago
Implementation details only, no actual actionable story. Propose close.
From my perspective, this story has been actionable and productive. I have achieved a prototype and am now heavily into developing the potential of the Fedora API-X for extending image related services and discovery via HATEOAS and RDF service registries.
Once I have finished the last feature of the prototype (a TIFF to JP2 encoder using API-X), I will announce the docker composition on the IIIF mailing list.
Thank you for your assistance in clarifying the JSON-LD questions that have arisen in developing the manifest-service. You can close this story as those context issues have (more or less) been resolved and do not block me in any way.
As a reference, here is a link to my presentation in November at SWIB16 (where I met Simeon Warner)
I am implementing a Fedora 4 repository for manuscripts and museum objects with a data model that will be based on the Presentation 2.0 API. The objective is that having the data structured similarly will facilitate serialization of presentation objects directly from a SPARQL query. For example, a query could construct a presentation with arbitrary criteria, "
where <range r> sc:hasCanvases ?canvases
", so that only a specific part of the manuscript is presented.The functional complexity exists in developing SPARQL query methods that can iterate through a JSON-LD list RDF structure. For reference, the RDF representation of JSON-LD list for a IIIF sequence looks like this: <> sc:hasCanvases :c002 . :c002 rdf:first http://localhost:8080/fcrepo/rest/edition/00027/canvas/c001 . :c002 rdf:rest :c005 . :c005 rdf:first http://localhost:8080/fcrepo/rest/edition/00027/canvas/c002 . :c005 rdf:rest _:c008 . ... So any JSON-LD list is basically a chain of RDF blank nodes. I am not sure that there is anything that can be done from the IIIF perspective, but thinking forward, interoperability = embracing linked data semantics. Simply parsing the manifest as a normal JSON, seems to be the current client implementation approach. This may work, but certainly does not provide the flexibility and interoperability that the API is trying to achieve.
I have actually been able to construct a multiple canvas ordered IIIF manifest sequence from a SPARQL query. The output format of the manifest can be viewed here . So, I believe that this story is indeed possible. I see the concrete implementation of this as a "manifest generator" service that assembles, executes and delivers the manifest based on variable criteria.