Skip to content

Composite search scenarios #111

Description

@scossu

I am considering using Elucidate to store image analysis annotations (not IIIF related), e.g. from color palette extraction processes.

A couple of limitations I have come across so far are related to how I would search for these annotations once stored (or before they are stored, to know if they exist already).

Given the following sample annotation that defines two palette sets extracted from a single image:

{
        "@context": "http://www.w3.org/ns/anno.jsonld",
        "id": "https://dummy.getty.edu/anno/my-palette-01",
        "type": "Annotation",
        "body": [
             {
                 "type": "TextualBody",
                 "format": "application/json",
                 "value": "<JSON data>",
                 "purpose": "https://data.getty.edu/local/thesaurus/purposes/low_contrast_palette"
            },
            {
                 "type": "TextualBody",
                 "format": "application/json",
                 "value": "<JSON data>",
                 "purpose": "https://data.getty.edu/local/thesaurus/purposes/high_contrast_palette"
            }
        ],
        "target": "https://media.getty.edu/iiif/image/77902e8c-f844-4956-8f56-186aa2f59e05",
        "motivation": "https://data.getty.edu/local/thesaurus/motivations/image_analysis#histogram"
    }

I would like to:

  • Know in advance if an annotation with a target of https://media.getty.edu/iiif/image/77902e8c-f844-4956-8f56-186aa2f59e05 and a motivation of https://data.getty.edu/local/thesaurus/motivations/image_analysis#histogram already exists, and if it does, obtain its URL (so that I can let Elucidate generate the id of the annotation);
  • Find all annotations with a body with a purpose of https://data.getty.edu/local/thesaurus/purposes/low_contrast_palette.

From what I read form the documentation, I can only search by either target or motivation, not by both. For my specific purpose I got around this limitation by crafting the URI myself based on these two parameters and using PUT to create or replace the resource; but that wouldn't work if I wanted to back out from overwriting.

Mathmos seems to be more oriented at IIIF Search API compatibility, which is focused on free-text content search, while Elucidate seems to have more semantic/structural querying capabilities. Is this something that either one can support (from this latest assumption, I would guess Elucidate would be the more appropriate place)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions