linked-art / linked.art

Development of a specification for linked data in museums, using existing ontologies and frameworks to build usable, understandable APIs
https://linked.art/
Other
91 stars 13 forks source link

What URI does conform_to link to for IIIF? #578

Closed azaroth42 closed 4 months ago

azaroth42 commented 6 months ago

Propose that references for conforms_to for IIIF APIs should be to the API with the major version number, not a particular major.minor (too many of them, potentially), nor the context (doesn't make sense for the Image API, or potential future binary APIs), nor the specific HTML document (worse than major.minor as there's also the potential for patches).

Thus they would be to:

and so on. If you follow these you end up at the most recent version's HTML page. IIIF could enable content negotiation so that if you ask for JSON-LD you end up at the context instead.

Currently Yale and Getty do it differently, and neither follow the current documentation.

aisaac commented 5 months ago

Could we actually just get rid of any version number? (and represent that, if needed, in another property that indicates the compliance level, as was done in the Europeana Data Model)

julsraemy commented 5 months ago

@aisaac Meaning it would always redirect to the latest specification? Which property is used in EDM for the compliance level (or version)?

azaroth42 commented 5 months ago

The use of the version number (somehow) is to allow folks to have both v2 and v3 (and v4 in the foreseeable future) at different URIs and all referenced from the same record.

It could be split into API + version in a separate field somehow, but at the moment it's pretty easy in that you just put the URI in conforms_to, which becomes an external reference (like access_point): https://linked.art/model/digital/#iiif-manifests

If we were to have a version-of-a-spec, then we'd need an intermediate resource to be version-of-a-spec and then then reference to the spec, something like:

"conforms_to": [
  {
    "type": "InformationObject",
    "identified_by": [{
        "type": "Identifier",
        "classified_as": [{"id": "aat:version-number", "type": "Type", "_label": "version number"}],
        "content": "3.0"
    }]
    "conceptually_part_of": {
      "id": "https://iiif.io/api/presentation",
      "type": "InformationObject"
    }
  }
]

Which seems unnecessarily verbose to me.

aisaac commented 5 months ago

@julsraemy the EDM pattern can be seen at https://europeana.atlassian.net/wiki/spaces/EF/pages/2189262875/IIIF+in+EDM+pattern . There's no redirection at play, it's really about using dc:conformsTo in the most general way, and letting these who want to go into the detail of the version, get the detailed information elsewhere - either in the separate doap:implements that is aside the conformsTo (and which includes the level of compliance as well), or in the info.json.

To all, the assumption is that there's a range of basic re-users/searchers of data who want to get the info that a given resource is a IIIF one, before diving into the detail (if they ever need to dive in the detail as the IIIF tool they use could well make this transparent).

The versioned URI does not make it impossible to fulfill this basic need. One can play with wildcards, if a suitable index is built on top of the data. But it is an impediment (not to mention that URIs should be opaque and thus not wildcarded like any mundane string, right? ;-) ).

It's not that we judge that the advanced need doesn't serve being fulfilled, it's just that we prefer not to hamper fulfilling the basic one. Btw the 'nested' representation by @azaroth42 would be quite unacceptable, with it in mind.

Important note: as I'm writing this I realise that the EDM IIIF profile still uses a combination of properties that's not in line with the IIIF v3 context. I think now the idea is rather to use dcterms:conformsTo with the URIs that include the levels of compliance. So doap:implement should be used for indicating compliance with "IIIF" at a more general level. anyway, this merely amounts to swapping the properties, the main message (having one property for the simple, general compliance) doesn't change.

In any case maybe the pattern at https://linked.art/model/digital/#iiif-manifests (and the proposal here) should be adapted too?

azaroth42 commented 5 months ago

I recall from 9 years ago: https://github.com/IIIF/api/issues/558#issuecomment-170408142 :D

azaroth42 commented 5 months ago