- 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.
331 lines
9.5 KiB
YAML
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: "['*']"
|