glam/schemas/20251121/linkml/modules/classes/IIPImageServer.yaml
kempersc 4034c2a00a Refactor schema slots across multiple classes to improve consistency and clarity
- Removed unused slots from TaxonomicAuthority, TechnicalFeature, TelevisionArchive, TentativeWorldHeritageSite, Threat, TimeSpan, Title, TradeRegister, TradeUnionArchive, TradeUnionArchiveRecordSetType, TransferEvent, UNESCODomain, UnitIdentifier, UniversityArchive, UnspecifiedType, UserCommunity, Venue, Vereinsarchiv, Verlagsarchiv, VerlagsarchivRecordSetType, Version, Verwaltungsarchiv, VideoAnnotationTypes, VideoAudioAnnotation, VideoFrame, VideoPost, VideoSubtitle, VideoTextContent, Warehouse, WebArchive, WebClaim, WebClaimsBlock, WebLink, WebPortal, WebPortalTypes, WomensArchives, WordCount, WorldHeritageSite, WritingSystem, and XPathScore.
- Introduced new slot is_or_was_retrieved_at for tracking data retrieval timestamps.
2026-01-31 00:28:09 +01:00

331 lines
9.5 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
- ../enums/IIIFComplianceLevelEnum
- ../enums/ImageProtocolEnum
- ../metadata
- ../slots/has_or_had_score
- ../slots/specificity_annotation
- ./DataServiceEndpoint
- ./SpecificityAnnotation
- ./TemplateSpecificityScore
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ./Image
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
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types: "['*']"