SlideShare une entreprise Scribd logo
1  sur  33
IIIF without an image
server? No problem!
Simeon Warner (Cornell)
https://orcid.org/0000-0002-7970-7855
2017 IIIF Conference, The Vatican
8 June 2017
Who are you?
1. Who has used IIIF in some form already?
2. Who feels they understand the distinction
between the IIIF Image and Presentation
APIs?
3. Who understands the contents of an IIIF
Image API “info.json” file (response to
Image Information Request)?
http://iiif.io/api/image/2.1/
http://iiif.io/api/presentation/2.1/
Punchline: You can use IIIF
applications on images and manifests
that are simply static files on a web-
server
In this talk I will focus on doing this to
support the Image API, support for
manifests and other Presentation API
JSON files is trivial
IIIF Image API “level 0” compliance
Every Image API info.json must have the compliance
level specified in the profile:
Values are defined in the Image API Compliance
document: http://iiif.io/api/image/2.1/compliance/
“level 0” means
Only the following parameter values are supported:
• region=“full” except for tiles generates
according to the tiles values
• size=“full” except for values in sizes or tiles
generated according to the tiles values
• rotation=0
• quality=“default”
• format=“jpg”
But this is enough to pan and zoom.
IIIF Image API to support viewers
• The 90% (or is it 99%?) use-case for the IIIF Image API
is driving tile-based rich pan and zoom viewers
• The most popular IIIF viewers are currently the
Universal Viewer and Mirador
• Both of these viewers are based around the
OpenSeadragon viewer library
• ...so, to support these viewers one needs to cater
for the needs of OpenSeadragon
What does OpenSeadragon need?
[07/Jun/2017 05:32:44] "GET /starfish/info.json HTTP/1.1”
[07/Jun/2017 05:32:44] "GET /starfish/full/375,/0/default.jpg HTTP/1.1”
[07/Jun/2017 05:32:44] "GET /starfish/full/750,/0/default.jpg HTTP/1.1”
[07/Jun/2017 05:33:31] "GET /starfish/0,0,2048,2048/1024,/0/default.jpg
HTTP/1.1”
[07/Jun/2017 05:33:31] "GET /starfish/0,2048,2048,1952/1024,/0/default.jpg
HTTP/1.1”
[07/Jun/2017 05:33:32] "GET /starfish/2048,0,952,2048/476,/0/default.jpg
HTTP/1.1”
[07/Jun/2017 05:33:32] "GET
/starfish/2048,2048,952,1952/476,/0/default.jpg HTTP/1.1”
[07/Jun/2017 05:33:32] "GET
/starfish/1024,1024,1024,1024/1024,/0/default.jpg HTTP/1.1”
[07/Jun/2017 05:33:32] "GET
/starfish/1024,2048,1024,1024/1024,/0/default.jpg HTTP/1.1”
[07/Jun/2017 05:34:17] "GET /starfish/0,1024,1024,1024/1024,/0/default.jpg
info.json
small full
tiles
Tile requests
OpenSeadragon uses the width and scaleFactors
values in the tiles parameter to generate tile
requests:
There is some fiddly arithmetic to deal with partial
tiles at the lower and right edges of the image. This is
described in http://iiif.io/api/image/2.1/#a-
implementation-notes
Scaled full region requests
The dirty secret here is that OpenSeadragon does not
follow the scaled sizes declared in the sizes
parameter.
Instead it requests a set of images scaled by factors of
two. One must generate tiles in these sizes with care
to replicate the rounding, see
https://github.com/zimeon/iiif/blob/v1.0.4/iiif/static.py#L82-L89
A static tile generator
https://github.com/zimeon/iiif/tree/master/demo-static
Tile generation
./iiif_static.py --write-html demo-static -d demo-static -t 1024
testimages/starfish.jpg
iiif_static.py: source file: testimages/starfish.jpg
iiif.static: demo-static / starfish/0,0,1024,1024/1024,/0/default.jpg
iiif.static: demo-static / starfish/0,1024,1024,1024/1024,/0/default.jpg
iiif.static: demo-static / starfish/0,2048,1024,1024/1024,/0/default.jpg
iiif.static: demo-static / starfish/0,3072,1024,928/1024,/0/default.jpg
…
iiif.static: demo-static / starfish/2048,2048,952,1952/476,/0/default.jpg
iiif.static: demo-static / starfish/full/750,/0/default.jpg
iiif.static: demo-static / starfish/full/750,1000 -> starfish/full/750,
iiif.static: demo-static / starfish/full/375,/0/default.jpg
iiif.static: demo-static / starfish/full/375,500 -> starfish/full/375,
…
iiif.static: demo-static / starfish/full/1,1 -> starfish/full/1,
iiif.static: demo-static / starfish/info.json
iiif.static: Writing HTML to demo-static
iiif.static: demo-static / starfish.html
Local demo
Serve info.json, tiles
and OpenSeadragon
from local test server
Usual OpenSeadragon
experience
How many tiles will there be? And
how big will they be?
• There will be approximately ¼ as many tiles at the
second zoom level than the first, 1/16 at the second
etc. and the sum of this series 1 + ¼ + 1/16 ... = 4/3
• Thus we can estimate the number of tiles:
ceil( ceil(width/tilesize)*ceil(height/tilesize) * 4/3)
• The total size of the tiles will likely be similar to the
original image size (assuming the same level of
compression; starting from TIFF tiles will likely be
much smaller than the original)
CORS: Access-Control-Allow-Origin
“Servers should send the Access-Control-Allow-Origin
header with the value * in response to information
requests. The syntax is shown below and is described
in the CORS specification. This header is required in
order to allow the JSON responses to be used by Web
applications hosted on different servers.”
Access-Control-Allow-Origin: *
You can get away without CORS only if the JavaScript
client is served from the same host as the images, and
thus the images are not reusable.
CORS setup
Apache instructions along with the
IIIF Image API specification
http://iiif.io/api/annex/notes/apache/#enabling-
cors
Also easy to enable on AWS S3
(screenshot) and other services
https://docs.aws.amazon.com/AmazonS3/latest/
dev/cors.html
Pick name and location
AWS S3 hosting setup
Nothing under properties
Make publicly readable
Review, confirm
Set up static website
hosting
Base URL of site
Default document paths
Bucket and website
exist but not public
documents
Need to set up a user
(preferably using AWS
IAM system and assign
permissions to update
bucket, record key and
secret
...takes a few screens
and a little reading...
And set up CORS on bucket.
Gotcha: You’ll only see the Access-
Control-Allow-Origin in responses
requests with an Origin header, e.g.:
> curl -H "Access-Control-Request-Method: GET" -
H "Origin: http://example.com" -I http://iiif-static-
demo.s3-website.us-east-
2.amazonaws.com/vatlib/info.json
HTTP/1.1 200 OK
...
x-amz-request-id: 102493024334B199
Date: Wed, 07 Jun 2017 23:15:59 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, HEAD
Vary: Origin, Access-Control-Request-Headers,
Access-Control-Request-Method
Last-Modified: Wed, 07 Jun 2017 18:14:17 GMT
ETag: "da7fba981e2fd060c5b93a5d243895e8"
Content-Type: application/json
Content-Length: 1040
Server: AmazonS3
Generate tiles and copy to S3
iiif_static.py -p http://iiif-static-demo.s3-website.us-
east-2.amazonaws.com -d tmp --write-html=tmp --
include-osd --extra=full/106, vatlib.jpg
aws s3 sync tmp s3://iiif-static-demo --grants
read=uri=http://acs.amazonaws.com/groups/global/Al
lUsers
Image info.json:
http://iiif-static-demo.s3-website.us-east-
2.amazonaws.com/vatlib/info.json
Manually created a simple manifest:
http://iiif-static-demo.s3-website.us-east-
2.amazonaws.com/manifest.json
Same simple OpenSeadragon demo
Same as previous
demo running on
local machine
BUT can now refer
to image and
Presentation API
manifest...
Enter manifest URI, then shows on list
Mirador demo site
http://projectmirador.org/demo/ ,
select “Replace Object”
Selecting the object brings up the
image in Mirador
... with all the usual pan, zom, etc.
UV load fails (endlessly spinning icon)
because the JavaScript is HTTPS, image
information and tiles are HTTP 
Unfortunately, one has to use CloudFront to
get HTTPS on an S3 website
HTTPS and mixed-content
• All of the IIIF specs work over either HTTP
or HTTPS (though you shouldn’t use
authentication with HTTP)
• BUT, plain HTTP and HTTPS do not play
well together, see e.g. https://www.jack-
reed.com/2017/05/23/the-case-for-serving-your-iiif-
content-over-https.html
• “IIIF ceases to be interoperable if you
don't make all your resources available
over HTTPS, because you're effectively
denying access to secure clients” @tomcrane
the bottom line (literally) is:
HTTPS – Just do it!
Static IIIF A/V – yes!
• Current work toward IIIF A/V support (see:
https://github.com/IIIF/iiif-
av/blob/master/source/api/av/index.md ) imagines
most base functionality, supporting many of our
current use cases, being provided through “level-0”
implementation
• Common web video standards such as MPEG-DASH
and HLS provide flexible access to time-ranges etc.
through indexing schemes and simple byte-range
requests that are part of ordinary web servers
(including cloud services such as S3).
• Current understanding is that an equivalent of
“info.json” will be required to allow auth with A/V
That’s all
folks...
Questions
?
photo: View from Institutum Patristicum
Augustinianum conference center

Contenu connexe

Tendances

[All-in-one2016] ゲノム配列と蛋白質立体構造の統合的検索とモデリング
[All-in-one2016] ゲノム配列と蛋白質立体構造の統合的検索とモデリング[All-in-one2016] ゲノム配列と蛋白質立体構造の統合的検索とモデリング
[All-in-one2016] ゲノム配列と蛋白質立体構造の統合的検索とモデリングDNA Data Bank of Japan center
 
Как редактировать Google карты
Как редактировать Google картыКак редактировать Google карты
Как редактировать Google картыOleg Kostyukevich
 
Workplace Applications of Virtual Reality
Workplace Applications of Virtual RealityWorkplace Applications of Virtual Reality
Workplace Applications of Virtual RealityCharles Palmer
 
최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용
최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용
최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용Tae wook kang
 
Introduction to Virtual Reality
Introduction to Virtual RealityIntroduction to Virtual Reality
Introduction to Virtual RealityKAVITHADEVICS
 
Comp4010 lecture3-AR Technology
Comp4010 lecture3-AR TechnologyComp4010 lecture3-AR Technology
Comp4010 lecture3-AR TechnologyMark Billinghurst
 

Tendances (7)

[All-in-one2016] ゲノム配列と蛋白質立体構造の統合的検索とモデリング
[All-in-one2016] ゲノム配列と蛋白質立体構造の統合的検索とモデリング[All-in-one2016] ゲノム配列と蛋白質立体構造の統合的検索とモデリング
[All-in-one2016] ゲノム配列と蛋白質立体構造の統合的検索とモデリング
 
Как редактировать Google карты
Как редактировать Google картыКак редактировать Google карты
Как редактировать Google карты
 
Workplace Applications of Virtual Reality
Workplace Applications of Virtual RealityWorkplace Applications of Virtual Reality
Workplace Applications of Virtual Reality
 
최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용
최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용
최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용
 
Introduction to Virtual Reality
Introduction to Virtual RealityIntroduction to Virtual Reality
Introduction to Virtual Reality
 
Comp4010 lecture3-AR Technology
Comp4010 lecture3-AR TechnologyComp4010 lecture3-AR Technology
Comp4010 lecture3-AR Technology
 
Lecture 9 AR Technology
Lecture 9 AR TechnologyLecture 9 AR Technology
Lecture 9 AR Technology
 

Similaire à IIIF without an image server? No problem!

[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Esri Nederland
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titaniumNaga Harish M
 
Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumTechday7
 
VRE Cancer Imaging BL RIC Workshop 22032011
VRE Cancer Imaging BL RIC Workshop 22032011VRE Cancer Imaging BL RIC Workshop 22032011
VRE Cancer Imaging BL RIC Workshop 22032011djmichael156
 
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API OverviewFrédéric Harper
 
[rwdsummit2012] Adaptive Images in Responsive Web Design
[rwdsummit2012] Adaptive Images in Responsive Web Design[rwdsummit2012] Adaptive Images in Responsive Web Design
[rwdsummit2012] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[cssdevconf] Adaptive Images in RWD
[cssdevconf] Adaptive Images in RWD[cssdevconf] Adaptive Images in RWD
[cssdevconf] Adaptive Images in RWDChristopher Schmitt
 
Cloud Computing and HTML5, 2010
Cloud Computing and HTML5, 2010Cloud Computing and HTML5, 2010
Cloud Computing and HTML5, 2010Moullet
 
Developing iPhone and iPad apps that leverage Windows Azure
Developing iPhone and iPad apps that leverage Windows AzureDeveloping iPhone and iPad apps that leverage Windows Azure
Developing iPhone and iPad apps that leverage Windows AzureSimon Guest
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
Flutter movie apps tutor
Flutter movie apps tutorFlutter movie apps tutor
Flutter movie apps tutorHerry Prasetyo
 
[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web Design[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
Browser Extensions for Web Hackers
Browser Extensions for Web HackersBrowser Extensions for Web Hackers
Browser Extensions for Web HackersMark Wubben
 

Similaire à IIIF without an image server? No problem! (20)

[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design
 
Html5
Html5Html5
Html5
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titanium
 
Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator Titanium
 
VRE Cancer Imaging BL RIC Workshop 22032011
VRE Cancer Imaging BL RIC Workshop 22032011VRE Cancer Imaging BL RIC Workshop 22032011
VRE Cancer Imaging BL RIC Workshop 22032011
 
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
 
[rwdsummit2012] Adaptive Images in Responsive Web Design
[rwdsummit2012] Adaptive Images in Responsive Web Design[rwdsummit2012] Adaptive Images in Responsive Web Design
[rwdsummit2012] Adaptive Images in Responsive Web Design
 
[cssdevconf] Adaptive Images in RWD
[cssdevconf] Adaptive Images in RWD[cssdevconf] Adaptive Images in RWD
[cssdevconf] Adaptive Images in RWD
 
HTML 5
HTML 5HTML 5
HTML 5
 
Cloud Computing and HTML5, 2010
Cloud Computing and HTML5, 2010Cloud Computing and HTML5, 2010
Cloud Computing and HTML5, 2010
 
Developing iPhone and iPad apps that leverage Windows Azure
Developing iPhone and iPad apps that leverage Windows AzureDeveloping iPhone and iPad apps that leverage Windows Azure
Developing iPhone and iPad apps that leverage Windows Azure
 
Html5
Html5Html5
Html5
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
Intro to appcelerator
Intro to appceleratorIntro to appcelerator
Intro to appcelerator
 
Web Apps
Web AppsWeb Apps
Web Apps
 
HTML5와 모바일
HTML5와 모바일HTML5와 모바일
HTML5와 모바일
 
Flutter movie apps tutor
Flutter movie apps tutorFlutter movie apps tutor
Flutter movie apps tutor
 
[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web Design[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web Design
 
Browser Extensions for Web Hackers
Browser Extensions for Web HackersBrowser Extensions for Web Hackers
Browser Extensions for Web Hackers
 

Plus de Simeon Warner

Questioning Authority Lookup Service: Linking the Data
Questioning Authority Lookup Service: Linking the DataQuestioning Authority Lookup Service: Linking the Data
Questioning Authority Lookup Service: Linking the DataSimeon Warner
 
OCFL: A Shared Approach to Preservation Persistence
OCFL: A Shared Approach to Preservation PersistenceOCFL: A Shared Approach to Preservation Persistence
OCFL: A Shared Approach to Preservation PersistenceSimeon Warner
 
The Oxford Common File Layout: A common approach to digital preservation
The Oxford Common File Layout: A common approach to digital preservationThe Oxford Common File Layout: A common approach to digital preservation
The Oxford Common File Layout: A common approach to digital preservationSimeon Warner
 
Welcome to the FOLIO Community
Welcome to the FOLIO CommunityWelcome to the FOLIO Community
Welcome to the FOLIO CommunitySimeon Warner
 
Sinopia & FOLIO: Bridging the gap to linked data cataloging
Sinopia & FOLIO: Bridging the gap to linked data cataloging Sinopia & FOLIO: Bridging the gap to linked data cataloging
Sinopia & FOLIO: Bridging the gap to linked data cataloging Simeon Warner
 
FOLIO and Linked Data
FOLIO and Linked DataFOLIO and Linked Data
FOLIO and Linked DataSimeon Warner
 
IIIF Technical Specification Status Update
IIIF Technical Specification Status UpdateIIIF Technical Specification Status Update
IIIF Technical Specification Status UpdateSimeon Warner
 
Don't bold the field name!
Don't bold the field name!Don't bold the field name!
Don't bold the field name!Simeon Warner
 
Samvera and IIIF 2018
Samvera and IIIF 2018Samvera and IIIF 2018
Samvera and IIIF 2018Simeon Warner
 
Oxford Common File Layout (OCFL)
Oxford Common File Layout (OCFL)Oxford Common File Layout (OCFL)
Oxford Common File Layout (OCFL)Simeon Warner
 
From Open Annotations to W3C Web Annotations (and the impact on IIIF Present...
From Open Annotations to W3C Web Annotations (and the impact on IIIF Present...From Open Annotations to W3C Web Annotations (and the impact on IIIF Present...
From Open Annotations to W3C Web Annotations (and the impact on IIIF Present...Simeon Warner
 
Introduction to the IIIF Presentation API (@SWIB17)
Introduction to the IIIF Presentation API (@SWIB17)Introduction to the IIIF Presentation API (@SWIB17)
Introduction to the IIIF Presentation API (@SWIB17)Simeon Warner
 
Introduction to the International Image Interoperability Framework (IIIF)
Introduction to the International Image Interoperability Framework (IIIF)Introduction to the International Image Interoperability Framework (IIIF)
Introduction to the International Image Interoperability Framework (IIIF)Simeon Warner
 
From Open Access to Open Standards, (Linked) Data and Collaborations
From Open Access to Open Standards, (Linked) Data and CollaborationsFrom Open Access to Open Standards, (Linked) Data and Collaborations
From Open Access to Open Standards, (Linked) Data and CollaborationsSimeon Warner
 
Mind the gap! Reflections on the state of repository data harvesting
Mind the gap! Reflections on the state of repository data harvestingMind the gap! Reflections on the state of repository data harvesting
Mind the gap! Reflections on the state of repository data harvestingSimeon Warner
 
ORCID & other Person iDs
ORCID & other Person iDsORCID & other Person iDs
ORCID & other Person iDsSimeon Warner
 
Who's the Author? Identifier soup - ORCID, ISNI, LC NACO and VIAF
Who's the Author? Identifier soup - ORCID, ISNI, LC NACO and VIAFWho's the Author? Identifier soup - ORCID, ISNI, LC NACO and VIAF
Who's the Author? Identifier soup - ORCID, ISNI, LC NACO and VIAFSimeon Warner
 

Plus de Simeon Warner (20)

Questioning Authority Lookup Service: Linking the Data
Questioning Authority Lookup Service: Linking the DataQuestioning Authority Lookup Service: Linking the Data
Questioning Authority Lookup Service: Linking the Data
 
OCFL: A Shared Approach to Preservation Persistence
OCFL: A Shared Approach to Preservation PersistenceOCFL: A Shared Approach to Preservation Persistence
OCFL: A Shared Approach to Preservation Persistence
 
The Oxford Common File Layout: A common approach to digital preservation
The Oxford Common File Layout: A common approach to digital preservationThe Oxford Common File Layout: A common approach to digital preservation
The Oxford Common File Layout: A common approach to digital preservation
 
Welcome to the FOLIO Community
Welcome to the FOLIO CommunityWelcome to the FOLIO Community
Welcome to the FOLIO Community
 
Sinopia & FOLIO: Bridging the gap to linked data cataloging
Sinopia & FOLIO: Bridging the gap to linked data cataloging Sinopia & FOLIO: Bridging the gap to linked data cataloging
Sinopia & FOLIO: Bridging the gap to linked data cataloging
 
FOLIO and Linked Data
FOLIO and Linked DataFOLIO and Linked Data
FOLIO and Linked Data
 
OCFL v1.0
OCFL v1.0OCFL v1.0
OCFL v1.0
 
IIIF Technical Specification Status Update
IIIF Technical Specification Status UpdateIIIF Technical Specification Status Update
IIIF Technical Specification Status Update
 
LKG Editor Dev
LKG Editor DevLKG Editor Dev
LKG Editor Dev
 
Don't bold the field name!
Don't bold the field name!Don't bold the field name!
Don't bold the field name!
 
Samvera and IIIF 2018
Samvera and IIIF 2018Samvera and IIIF 2018
Samvera and IIIF 2018
 
Oxford Common File Layout (OCFL)
Oxford Common File Layout (OCFL)Oxford Common File Layout (OCFL)
Oxford Common File Layout (OCFL)
 
ORCID @ Cornell
ORCID @ CornellORCID @ Cornell
ORCID @ Cornell
 
From Open Annotations to W3C Web Annotations (and the impact on IIIF Present...
From Open Annotations to W3C Web Annotations (and the impact on IIIF Present...From Open Annotations to W3C Web Annotations (and the impact on IIIF Present...
From Open Annotations to W3C Web Annotations (and the impact on IIIF Present...
 
Introduction to the IIIF Presentation API (@SWIB17)
Introduction to the IIIF Presentation API (@SWIB17)Introduction to the IIIF Presentation API (@SWIB17)
Introduction to the IIIF Presentation API (@SWIB17)
 
Introduction to the International Image Interoperability Framework (IIIF)
Introduction to the International Image Interoperability Framework (IIIF)Introduction to the International Image Interoperability Framework (IIIF)
Introduction to the International Image Interoperability Framework (IIIF)
 
From Open Access to Open Standards, (Linked) Data and Collaborations
From Open Access to Open Standards, (Linked) Data and CollaborationsFrom Open Access to Open Standards, (Linked) Data and Collaborations
From Open Access to Open Standards, (Linked) Data and Collaborations
 
Mind the gap! Reflections on the state of repository data harvesting
Mind the gap! Reflections on the state of repository data harvestingMind the gap! Reflections on the state of repository data harvesting
Mind the gap! Reflections on the state of repository data harvesting
 
ORCID & other Person iDs
ORCID & other Person iDsORCID & other Person iDs
ORCID & other Person iDs
 
Who's the Author? Identifier soup - ORCID, ISNI, LC NACO and VIAF
Who's the Author? Identifier soup - ORCID, ISNI, LC NACO and VIAFWho's the Author? Identifier soup - ORCID, ISNI, LC NACO and VIAF
Who's the Author? Identifier soup - ORCID, ISNI, LC NACO and VIAF
 

Dernier

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

IIIF without an image server? No problem!

  • 1. IIIF without an image server? No problem! Simeon Warner (Cornell) https://orcid.org/0000-0002-7970-7855 2017 IIIF Conference, The Vatican 8 June 2017
  • 2. Who are you? 1. Who has used IIIF in some form already? 2. Who feels they understand the distinction between the IIIF Image and Presentation APIs? 3. Who understands the contents of an IIIF Image API “info.json” file (response to Image Information Request)? http://iiif.io/api/image/2.1/ http://iiif.io/api/presentation/2.1/
  • 3. Punchline: You can use IIIF applications on images and manifests that are simply static files on a web- server In this talk I will focus on doing this to support the Image API, support for manifests and other Presentation API JSON files is trivial
  • 4. IIIF Image API “level 0” compliance Every Image API info.json must have the compliance level specified in the profile: Values are defined in the Image API Compliance document: http://iiif.io/api/image/2.1/compliance/
  • 5. “level 0” means Only the following parameter values are supported: • region=“full” except for tiles generates according to the tiles values • size=“full” except for values in sizes or tiles generated according to the tiles values • rotation=0 • quality=“default” • format=“jpg” But this is enough to pan and zoom.
  • 6. IIIF Image API to support viewers • The 90% (or is it 99%?) use-case for the IIIF Image API is driving tile-based rich pan and zoom viewers • The most popular IIIF viewers are currently the Universal Viewer and Mirador • Both of these viewers are based around the OpenSeadragon viewer library • ...so, to support these viewers one needs to cater for the needs of OpenSeadragon
  • 7. What does OpenSeadragon need? [07/Jun/2017 05:32:44] "GET /starfish/info.json HTTP/1.1” [07/Jun/2017 05:32:44] "GET /starfish/full/375,/0/default.jpg HTTP/1.1” [07/Jun/2017 05:32:44] "GET /starfish/full/750,/0/default.jpg HTTP/1.1” [07/Jun/2017 05:33:31] "GET /starfish/0,0,2048,2048/1024,/0/default.jpg HTTP/1.1” [07/Jun/2017 05:33:31] "GET /starfish/0,2048,2048,1952/1024,/0/default.jpg HTTP/1.1” [07/Jun/2017 05:33:32] "GET /starfish/2048,0,952,2048/476,/0/default.jpg HTTP/1.1” [07/Jun/2017 05:33:32] "GET /starfish/2048,2048,952,1952/476,/0/default.jpg HTTP/1.1” [07/Jun/2017 05:33:32] "GET /starfish/1024,1024,1024,1024/1024,/0/default.jpg HTTP/1.1” [07/Jun/2017 05:33:32] "GET /starfish/1024,2048,1024,1024/1024,/0/default.jpg HTTP/1.1” [07/Jun/2017 05:34:17] "GET /starfish/0,1024,1024,1024/1024,/0/default.jpg info.json small full tiles
  • 8. Tile requests OpenSeadragon uses the width and scaleFactors values in the tiles parameter to generate tile requests: There is some fiddly arithmetic to deal with partial tiles at the lower and right edges of the image. This is described in http://iiif.io/api/image/2.1/#a- implementation-notes
  • 9. Scaled full region requests The dirty secret here is that OpenSeadragon does not follow the scaled sizes declared in the sizes parameter. Instead it requests a set of images scaled by factors of two. One must generate tiles in these sizes with care to replicate the rounding, see https://github.com/zimeon/iiif/blob/v1.0.4/iiif/static.py#L82-L89
  • 10. A static tile generator https://github.com/zimeon/iiif/tree/master/demo-static
  • 11. Tile generation ./iiif_static.py --write-html demo-static -d demo-static -t 1024 testimages/starfish.jpg iiif_static.py: source file: testimages/starfish.jpg iiif.static: demo-static / starfish/0,0,1024,1024/1024,/0/default.jpg iiif.static: demo-static / starfish/0,1024,1024,1024/1024,/0/default.jpg iiif.static: demo-static / starfish/0,2048,1024,1024/1024,/0/default.jpg iiif.static: demo-static / starfish/0,3072,1024,928/1024,/0/default.jpg … iiif.static: demo-static / starfish/2048,2048,952,1952/476,/0/default.jpg iiif.static: demo-static / starfish/full/750,/0/default.jpg iiif.static: demo-static / starfish/full/750,1000 -> starfish/full/750, iiif.static: demo-static / starfish/full/375,/0/default.jpg iiif.static: demo-static / starfish/full/375,500 -> starfish/full/375, … iiif.static: demo-static / starfish/full/1,1 -> starfish/full/1, iiif.static: demo-static / starfish/info.json iiif.static: Writing HTML to demo-static iiif.static: demo-static / starfish.html
  • 12. Local demo Serve info.json, tiles and OpenSeadragon from local test server Usual OpenSeadragon experience
  • 13. How many tiles will there be? And how big will they be? • There will be approximately ¼ as many tiles at the second zoom level than the first, 1/16 at the second etc. and the sum of this series 1 + ¼ + 1/16 ... = 4/3 • Thus we can estimate the number of tiles: ceil( ceil(width/tilesize)*ceil(height/tilesize) * 4/3) • The total size of the tiles will likely be similar to the original image size (assuming the same level of compression; starting from TIFF tiles will likely be much smaller than the original)
  • 14. CORS: Access-Control-Allow-Origin “Servers should send the Access-Control-Allow-Origin header with the value * in response to information requests. The syntax is shown below and is described in the CORS specification. This header is required in order to allow the JSON responses to be used by Web applications hosted on different servers.” Access-Control-Allow-Origin: * You can get away without CORS only if the JavaScript client is served from the same host as the images, and thus the images are not reusable.
  • 15. CORS setup Apache instructions along with the IIIF Image API specification http://iiif.io/api/annex/notes/apache/#enabling- cors Also easy to enable on AWS S3 (screenshot) and other services https://docs.aws.amazon.com/AmazonS3/latest/ dev/cors.html
  • 16. Pick name and location AWS S3 hosting setup
  • 20. Set up static website hosting
  • 21. Base URL of site Default document paths
  • 22. Bucket and website exist but not public documents
  • 23. Need to set up a user (preferably using AWS IAM system and assign permissions to update bucket, record key and secret ...takes a few screens and a little reading...
  • 24. And set up CORS on bucket. Gotcha: You’ll only see the Access- Control-Allow-Origin in responses requests with an Origin header, e.g.: > curl -H "Access-Control-Request-Method: GET" - H "Origin: http://example.com" -I http://iiif-static- demo.s3-website.us-east- 2.amazonaws.com/vatlib/info.json HTTP/1.1 200 OK ... x-amz-request-id: 102493024334B199 Date: Wed, 07 Jun 2017 23:15:59 GMT Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, HEAD Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method Last-Modified: Wed, 07 Jun 2017 18:14:17 GMT ETag: "da7fba981e2fd060c5b93a5d243895e8" Content-Type: application/json Content-Length: 1040 Server: AmazonS3
  • 25. Generate tiles and copy to S3 iiif_static.py -p http://iiif-static-demo.s3-website.us- east-2.amazonaws.com -d tmp --write-html=tmp -- include-osd --extra=full/106, vatlib.jpg aws s3 sync tmp s3://iiif-static-demo --grants read=uri=http://acs.amazonaws.com/groups/global/Al lUsers Image info.json: http://iiif-static-demo.s3-website.us-east- 2.amazonaws.com/vatlib/info.json Manually created a simple manifest: http://iiif-static-demo.s3-website.us-east- 2.amazonaws.com/manifest.json
  • 26. Same simple OpenSeadragon demo Same as previous demo running on local machine BUT can now refer to image and Presentation API manifest...
  • 27. Enter manifest URI, then shows on list Mirador demo site http://projectmirador.org/demo/ , select “Replace Object”
  • 28. Selecting the object brings up the image in Mirador
  • 29. ... with all the usual pan, zom, etc.
  • 30. UV load fails (endlessly spinning icon) because the JavaScript is HTTPS, image information and tiles are HTTP  Unfortunately, one has to use CloudFront to get HTTPS on an S3 website
  • 31. HTTPS and mixed-content • All of the IIIF specs work over either HTTP or HTTPS (though you shouldn’t use authentication with HTTP) • BUT, plain HTTP and HTTPS do not play well together, see e.g. https://www.jack- reed.com/2017/05/23/the-case-for-serving-your-iiif- content-over-https.html • “IIIF ceases to be interoperable if you don't make all your resources available over HTTPS, because you're effectively denying access to secure clients” @tomcrane the bottom line (literally) is: HTTPS – Just do it!
  • 32. Static IIIF A/V – yes! • Current work toward IIIF A/V support (see: https://github.com/IIIF/iiif- av/blob/master/source/api/av/index.md ) imagines most base functionality, supporting many of our current use cases, being provided through “level-0” implementation • Common web video standards such as MPEG-DASH and HLS provide flexible access to time-ranges etc. through indexing schemes and simple byte-range requests that are part of ordinary web servers (including cloud services such as S3). • Current understanding is that an equivalent of “info.json” will be required to allow auth with A/V
  • 33. That’s all folks... Questions ? photo: View from Institutum Patristicum Augustinianum conference center

Notes de l'éditeur

  1. I will describe in a few slides the use of IIIF image viewers over "level0" static image tiles hosted on a simple web server (such as a Amazon S3 static website), and note that this will also be possible with IIIF A/V in the future. I'll then run through a quick canned-demo of tile generation and then UV and Mirador using these tiles