- Created new YAML files for audience size and audience type slots, defining their properties and annotations. - Added archived capacity slots including cubic meters, linear meters, item count, and descriptions, with appropriate URIs and ranges. - Introduced a template specificity slot for context-aware RAG filtering. - Consolidated capacity-related slots into a unified structure, including has_or_had_capacity, capacity_type, and capacity_value, with detailed descriptions and examples.
346 lines
9.9 KiB
YAML
346 lines
9.9 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/specificity_annotation
|
|
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
- ./SpecificityAnnotation
|
|
- ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17)
|
|
|
|
- ./TemplateSpecificityType
|
|
|
|
- ./TemplateSpecificityTypes
|
|
- ../enums/ImageProtocolEnum
|
|
- ../enums/IIIFComplianceLevelEnum
|
|
- ../slots/specificity_annotation
|
|
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
- ../slots/specificity_annotation
|
|
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
classes:
|
|
IIPImageServer:
|
|
is_a: DataServiceEndpoint
|
|
class_uri: hc:IIPImageServer
|
|
description: "Tiled image server endpoint for dynamic high-resolution image delivery.\n\n**Purpose:**\n\nModels image\
|
|
\ server endpoints that provide:\n- Deep zoom for high-resolution images\n- Tile-based delivery for smooth navigation\n\
|
|
- On-the-fly image manipulation (rotation, cropping, format conversion)\n- Efficient delivery of gigapixel images\n\n\
|
|
**Supported Protocols:**\n\n| Protocol | Description | Use Case |\n|----------|-------------|----------|\n| **IIP**\
|
|
\ | Internet Imaging Protocol | Legacy, widely deployed |\n| **IIIF Image** | International Image Interoperability Framework\
|
|
\ | Modern standard, interoperable |\n| **Zoomify** | Zoomify tile format | Common in heritage sector |\n| **DeepZoom**\
|
|
\ | Microsoft Deep Zoom | Seadragon viewers |\n\n**Example - Nationaal Archief IIP Server:**\n\n```yaml\niip_image_server:\n\
|
|
\ endpoint_name: \"Nationaal Archief Image Server\"\n base_url: \"https://service.archief.nl/iipsrv\"\n server_software:\
|
|
\ \"IIPImage\"\n supported_protocols:\n - IIP\n - Zoomify\n - IIIF_IMAGE\n iiif_compliance_level: LEVEL_1\n\
|
|
\ max_image_dimension: 10000\n supported_output_formats:\n - image/jpeg\n - image/png\n supports_region_extraction:\
|
|
\ true\n supports_rotation: true\n supports_quality_selection: true\n```\n\n**IIIF Image API Features:**\n\nIIIF Image\
|
|
\ API URL structure:\n`{scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}`\n\n\
|
|
- **region**: full, square, x,y,w,h, pct:x,y,w,h\n- **size**: full, max, w,, ,h, pct:n, w,h, !w,h\n- **rotation**: 0-360,\
|
|
\ with optional mirror (!)\n- **quality**: default, color, gray, bitonal\n- **format**: jpg, png, gif, webp, tif\n\n\
|
|
**See Also:**\n\n- IIIF Image API: https://iiif.io/api/image/\n- IIPImage Server: https://iipimage.sourceforge.io/\n"
|
|
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
|
|
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
|
|
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|