Extends migration to all class types (museums, libraries, galleries, etc.) New slots added to class_metadata_slots.yaml: - RiC-O: rico_record_set_type, rico_organizational_principle, rico_has_or_had_holder, rico_note - Multilingual: label_de, label_es, label_fr, label_nl, label_it, label_pt - Scope: scope_includes, scope_excludes, custodian_only, organizational_level, geographic_restriction - Notes: privacy_note, preservation_note, legal_note Migration script now handles 30+ annotation types. All migrated schemas pass linkml-validate. Total: 387 class files now use proper slots instead of annotations.
380 lines
12 KiB
YAML
380 lines
12 KiB
YAML
id: https://nde.nl/ontology/hc/class/IIPImageServer
|
|
name: iip_image_server
|
|
title: IIPImageServer Class
|
|
prefixes:
|
|
linkml: https://w3id.org/linkml/
|
|
hc: https://nde.nl/ontology/hc/
|
|
dcat: http://www.w3.org/ns/dcat#
|
|
dcterms: http://purl.org/dc/terms/
|
|
schema: http://schema.org/
|
|
iiif: http://iiif.io/api/image/3#
|
|
xsd: http://www.w3.org/2001/XMLSchema#
|
|
imports:
|
|
- linkml:types
|
|
- ../metadata
|
|
- ./DataServiceEndpoint
|
|
- ../slots/protocol
|
|
- ../slots/class_metadata_slots
|
|
classes:
|
|
IIPImageServer:
|
|
is_a: DataServiceEndpoint
|
|
class_uri: hc:IIPImageServer
|
|
description: |
|
|
Tiled image server endpoint for dynamic high-resolution image delivery.
|
|
|
|
**Purpose:**
|
|
|
|
Models image server endpoints that provide:
|
|
- Deep zoom for high-resolution images
|
|
- Tile-based delivery for smooth navigation
|
|
- On-the-fly image manipulation (rotation, cropping, format conversion)
|
|
- Efficient delivery of gigapixel images
|
|
|
|
**Supported Protocols:**
|
|
|
|
| Protocol | Description | Use Case |
|
|
|----------|-------------|----------|
|
|
| **IIP** | Internet Imaging Protocol | Legacy, widely deployed |
|
|
| **IIIF Image** | International Image Interoperability Framework | Modern standard, interoperable |
|
|
| **Zoomify** | Zoomify tile format | Common in heritage sector |
|
|
| **DeepZoom** | Microsoft Deep Zoom | Seadragon viewers |
|
|
|
|
**Example - Nationaal Archief IIP Server:**
|
|
|
|
```yaml
|
|
iip_image_server:
|
|
endpoint_name: "Nationaal Archief Image Server"
|
|
base_url: "https://service.archief.nl/iipsrv"
|
|
server_software: "IIPImage"
|
|
supported_protocols:
|
|
- IIP
|
|
- Zoomify
|
|
- IIIF_IMAGE
|
|
iiif_compliance_level: LEVEL_1
|
|
max_image_dimension: 10000
|
|
supported_output_formats:
|
|
- image/jpeg
|
|
- image/png
|
|
supports_region_extraction: true
|
|
supports_rotation: true
|
|
supports_quality_selection: true
|
|
```
|
|
|
|
**IIIF Image API Features:**
|
|
|
|
IIIF Image API URL structure:
|
|
`{scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}`
|
|
|
|
- **region**: full, square, x,y,w,h, pct:x,y,w,h
|
|
- **size**: full, max, w,, ,h, pct:n, w,h, !w,h
|
|
- **rotation**: 0-360, with optional mirror (!)
|
|
- **quality**: default, color, gray, bitonal
|
|
- **format**: jpg, png, gif, webp, tif
|
|
|
|
**See Also:**
|
|
|
|
- IIIF Image API: https://iiif.io/api/image/
|
|
- IIPImage Server: https://iipimage.sourceforge.io/
|
|
attributes:
|
|
base_url:
|
|
slot_uri: dcat:endpointURL
|
|
description: |
|
|
Base URL of the image server.
|
|
|
|
Example: "https://service.archief.nl/iipsrv"
|
|
range: uri
|
|
required: true
|
|
server_software:
|
|
slot_uri: schema:softwareVersion
|
|
description: |
|
|
Image server software in use.
|
|
|
|
Common software:
|
|
- IIPImage: Open-source, supports IIP, IIIF, Zoomify
|
|
- Loris: Python IIIF image server
|
|
- Cantaloupe: Java IIIF server
|
|
- Digilib: Java image server
|
|
- RAIS: Rust IIIF server
|
|
|
|
Example: "IIPImage"
|
|
range: string
|
|
server_version:
|
|
slot_uri: schema:version
|
|
description: |
|
|
Version of the image server software.
|
|
|
|
Example: "1.1"
|
|
range: string
|
|
supported_protocols:
|
|
slot_uri: dcterms:conformsTo
|
|
description: |
|
|
Image delivery protocols supported.
|
|
|
|
Values from DataServiceProtocolEnum:
|
|
- IIP: Internet Imaging Protocol
|
|
- IIIF_IMAGE: IIIF Image API
|
|
- ZOOMIFY: Zoomify tiles
|
|
- DEEPZOOM: Microsoft Deep Zoom
|
|
|
|
Example: ["IIP", "IIIF_IMAGE", "ZOOMIFY"]
|
|
range: ImageProtocolEnum
|
|
multivalued: true
|
|
required: true
|
|
iiif_image_api_version:
|
|
slot_uri: iiif:apiVersion
|
|
description: |
|
|
IIIF Image API version supported (if IIIF enabled).
|
|
|
|
Current version: 3.0
|
|
Legacy versions: 2.1, 2.0, 1.1, 1.0
|
|
|
|
Example: "3.0"
|
|
range: string
|
|
iiif_compliance_level:
|
|
slot_uri: dcterms:conformsTo
|
|
description: |
|
|
IIIF Image API compliance level (if IIIF enabled).
|
|
|
|
Levels define mandatory features:
|
|
- LEVEL_0: Basic (fixed sizes only)
|
|
- LEVEL_1: Region, size, rotation
|
|
- LEVEL_2: Full Image API features
|
|
|
|
Example: LEVEL_1
|
|
range: IIIFComplianceLevelEnum
|
|
iiif_context_url:
|
|
slot_uri: schema:additionalType
|
|
description: |
|
|
IIIF context URL for JSON-LD.
|
|
|
|
Example: "http://iiif.io/api/image/3/context.json"
|
|
range: uri
|
|
max_image_dimension:
|
|
slot_uri: schema:maxValue
|
|
description: |
|
|
Maximum image dimension (width or height) that can be served.
|
|
|
|
Larger images may be available but capped in delivery.
|
|
|
|
Example: 10000
|
|
range: integer
|
|
max_area:
|
|
slot_uri: schema:maxValue
|
|
description: |
|
|
Maximum total pixel area that can be served in one request.
|
|
|
|
Prevents server overload on very large images.
|
|
|
|
Example: 100000000 (100 megapixels)
|
|
range: integer
|
|
tile_size:
|
|
slot_uri: schema:size
|
|
description: |
|
|
Default tile size in pixels.
|
|
|
|
Most servers use 256 or 512 pixel tiles.
|
|
|
|
Example: 512
|
|
range: integer
|
|
supported_input_formats:
|
|
slot_uri: dcterms:format
|
|
description: |
|
|
Source image formats the server can read.
|
|
|
|
Common: TIFF, JPEG 2000, Pyramid TIFF
|
|
|
|
Example: ["image/tiff", "image/jp2"]
|
|
range: string
|
|
multivalued: true
|
|
supported_output_formats:
|
|
slot_uri: dcterms:format
|
|
description: |
|
|
Output formats the server can deliver.
|
|
|
|
Example: ["image/jpeg", "image/png", "image/webp"]
|
|
range: string
|
|
multivalued: true
|
|
required: true
|
|
supports_region_extraction:
|
|
slot_uri: iiif:regionByPx
|
|
description: |
|
|
Whether the server supports extracting arbitrary image regions.
|
|
|
|
IIIF: region parameter (x,y,w,h or pct:x,y,w,h)
|
|
IIP: RGN parameter
|
|
range: boolean
|
|
supports_rotation:
|
|
slot_uri: iiif:rotation
|
|
description: |
|
|
Whether the server supports image rotation.
|
|
|
|
IIIF supports 0-360 degrees and mirroring.
|
|
range: boolean
|
|
supports_mirroring:
|
|
slot_uri: schema:additionalProperty
|
|
description: |
|
|
Whether the server supports horizontal mirroring.
|
|
|
|
IIIF: ! prefix on rotation (e.g., !0 for mirror only)
|
|
range: boolean
|
|
supports_quality_selection:
|
|
slot_uri: iiif:quality
|
|
description: |
|
|
Whether the server supports quality/color mode selection.
|
|
|
|
IIIF qualities: default, color, gray, bitonal
|
|
range: boolean
|
|
supported_qualities:
|
|
slot_uri: iiif:quality
|
|
description: |
|
|
Quality modes supported.
|
|
|
|
Example: ["default", "color", "gray", "bitonal"]
|
|
range: string
|
|
multivalued: true
|
|
supports_info_json:
|
|
slot_uri: schema:additionalProperty
|
|
description: |
|
|
Whether the server provides IIIF info.json for images.
|
|
|
|
info.json contains image metadata (dimensions, tiles, features).
|
|
range: boolean
|
|
info_json_url_pattern:
|
|
slot_uri: hydra:template
|
|
description: |
|
|
URL pattern for retrieving IIIF info.json.
|
|
|
|
Example: "{base_url}/iiif/{identifier}/info.json"
|
|
range: string
|
|
fcgi_path:
|
|
slot_uri: schema:additionalProperty
|
|
description: |
|
|
FastCGI path for IIPImage servers.
|
|
|
|
Common: "/iipsrv/iipsrv.fcgi" or "/fcgi-bin/iipsrv.fcgi"
|
|
|
|
Example: "/iipsrv/iipsrv.fcgi"
|
|
range: string
|
|
image_identifier_pattern:
|
|
slot_uri: hydra:template
|
|
description: |
|
|
Pattern for image identifiers.
|
|
|
|
IIPImage uses FIF parameter with filesystem path.
|
|
IIIF uses URL-encoded identifiers.
|
|
|
|
Example (IIP): "FIF=/path/to/{archive}/{uuid}.tif"
|
|
Example (IIIF): "{base_url}/iiif/{identifier}"
|
|
range: string
|
|
cors_enabled:
|
|
slot_uri: schema:additionalProperty
|
|
description: |
|
|
Whether CORS is enabled for browser access.
|
|
|
|
Essential for JavaScript-based viewers.
|
|
range: boolean
|
|
example_iiif_url:
|
|
slot_uri: schema:workExample
|
|
description: |
|
|
Example IIIF Image API URL.
|
|
|
|
Example: "https://service.archief.nl/iiif/2/uuid:12345/full/1000,/0/default.jpg"
|
|
range: uri
|
|
example_iip_url:
|
|
slot_uri: schema:workExample
|
|
description: |
|
|
Example IIP request URL.
|
|
|
|
Example: "https://service.archief.nl/iipsrv?FIF=/path/image.tif&WID=1000&CVT=jpeg"
|
|
range: uri
|
|
slot_usage:
|
|
protocol:
|
|
description: |
|
|
Primary protocol. Use supported_protocols for full list.
|
|
specificity_annotation:
|
|
range: SpecificityAnnotation
|
|
inlined: true
|
|
template_specificity:
|
|
range: TemplateSpecificityScores
|
|
inlined: true
|
|
comments:
|
|
- Essential for delivering high-resolution heritage images
|
|
- IIIF provides best interoperability with modern viewers
|
|
- IIPImage is most common open-source server in heritage sector
|
|
see_also:
|
|
- https://iiif.io/api/image/3.0/
|
|
- https://iipimage.sourceforge.io/
|
|
- https://github.com/loris-imageserver/loris
|
|
slots:
|
|
- specificity_annotation
|
|
- template_specificity
|
|
enums:
|
|
ImageProtocolEnum:
|
|
description: |
|
|
Image delivery protocols supported by image servers.
|
|
permissible_values:
|
|
IIP:
|
|
description: |
|
|
Internet Imaging Protocol.
|
|
|
|
Original tiled image protocol.
|
|
Parameters: FIF, WID, HEI, RGN, QLT, CVT
|
|
IIIF_IMAGE:
|
|
description: |
|
|
IIIF Image API.
|
|
|
|
Modern standard for interoperable image delivery.
|
|
URL structure: {server}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}
|
|
ZOOMIFY:
|
|
description: |
|
|
Zoomify tile format.
|
|
|
|
Pyramid tiles in folders: TileGroup0/, TileGroup1/...
|
|
Properties in ImageProperties.xml
|
|
DEEPZOOM:
|
|
description: |
|
|
Microsoft Deep Zoom format.
|
|
|
|
Pyramid tiles with .dzi descriptor file.
|
|
Common with OpenSeadragon viewer.
|
|
DJATOKA:
|
|
description: |
|
|
Djatoka JPEG 2000 image server.
|
|
|
|
Legacy LoC image server, deprecated in favor of IIIF.
|
|
IIIFComplianceLevelEnum:
|
|
description: |
|
|
IIIF Image API compliance levels.
|
|
|
|
Higher levels support more features.
|
|
permissible_values:
|
|
LEVEL_0:
|
|
description: |
|
|
Level 0 - Basic.
|
|
|
|
Only supports predefined image sizes listed in info.json.
|
|
No region extraction, rotation limited.
|
|
|
|
Minimum viable IIIF implementation.
|
|
LEVEL_1:
|
|
description: |
|
|
Level 1 - Intermediate.
|
|
|
|
Supports:
|
|
- Region by pixel and percentage
|
|
- Size by width, height, or percentage
|
|
- 0 and 90 degree rotation
|
|
- Default quality
|
|
|
|
Most common compliance level.
|
|
LEVEL_2:
|
|
description: |
|
|
Level 2 - Full.
|
|
|
|
Supports all Level 1 features plus:
|
|
- Arbitrary rotation (0-360)
|
|
- Mirroring
|
|
- All quality modes (color, gray, bitonal)
|
|
- Multiple output formats
|
|
|
|
Full Image API implementation.
|