The Structure Service is part of the DLCS Roadmap. Proof-of-concept and ‘alpha’ services are in progress.
The Search Service can search free text and annotations across any object within the DLCS. However, the Search Service only knows limited information about the structure of collections within the DLCS. Typically for any text or annotation the Search Service will know that it is associated with a particular image, and may know that that image is within a particular multi-image object (letter, book, manuscript, set of views of a sculpture, etc).
More powerful applications of search can be built if the information that the Search Service indexes can be combined with services that know richer information about the structure of digital objects, and of digital collections.
For example, being able to make queries like:
Show me all of the issues of ‘The Times’ newspaper where ‘Charles Darwin’ occurs.
Show me all of the objects tagged with date ‘1914’ in X institution’s collection of militaria.
Show me all of the issues of ‘Chemist and Druggist’ that mention ‘radium.’
Show me all of the letters in a particular archival collection tagged with the author ‘Isaac Newton.’
Depends on knowing not just something about the content on a particular page, or within a particular object, but also the position of that item within a particular collection and item structure. The potentially complex structural relationships between members of large or very large collections of objects — and the ability to aggregate and disaggregate them — are key to many search and discovery uses.
The DLCS will have (see Roadmap) a separate Structure Service which operates alongside the Search Service to return information about collection membership, and the structural relationships between objects and collections.
The core function of the Structure Service is to assist the Search Service in filtering queries or results to return just those items required to satisfy complex queries like the examples above.
The Structure Service will comprise three services:
The Structure Ingest service is a IIIF-aware service that can accept as input IIIF Presentation API Collections (which may contain other collections) or Manifests and ‘crawl’ those objects discovering their structure.
Indexes the output of the Structure Ingest in a database for persistence, and to drive search.
Given a URI for an object (IIIF Collection, Manifest, etc.) the Structure Service returns a list of all of the URIs that are part of that object which can be used to filter or modify Search Service queries/results.
The Structure Service will be optimised for working with large ‘graph’-like datasets.
The ‘alpha’ phase of development on the Structure Service is also exploring using the Structure Index and Structure Ingest services to retrieve and index semantic metadata (‘seeAlsos’) linked from IIIF Presentation API objects.