SlideShare a Scribd company logo
1 of 57
Download to read offline
Extending IIIF 3.0
2018 IIIF Conference, Washington DC
David Newbury, J. Paul Getty Trust
@workergnome
Extending IIIF 3.0 — David Newbury (@workergnome) 1
Triple-eye-eff.
The IIIF Presentation API is a data model
for arranging virtual canvases, annotating them
and providing descriptive content.
Extending IIIF 3.0 — David Newbury (@workergnome) 2
Triple-eye-eff.
I'm not going to talk about images.
I'm not going talk about arranging them.
Instead, I'm going to talk about metadata.
Extending IIIF 3.0 — David Newbury (@workergnome) 3
The Paintings, Puppies, & Pustules problem
What metadata standard handles meaning across these things?
Extending IIIF 3.0 — David Newbury (@workergnome) 4
We punted.
IIIF is presentational,
not semantic.
How it looks,
not what it means.
Extending IIIF 3.0 — David Newbury (@workergnome) 5
Properties for People
Words, generally.
Lots of words.
Extending IIIF 3.0 — David Newbury (@workergnome) 6
Properties for Software
Data that needs to be
interpreted by client so!ware.
Extending IIIF 3.0 — David Newbury (@workergnome) 7
Properties for Robots
Explaining to robots
what this all means.
(Yes, this is semantic. Shhhhh.)
Extending IIIF 3.0 — David Newbury (@workergnome) 8
What comes
out of the box?
Extending IIIF 3.0 — David Newbury (@workergnome) 9
Presentation Properties for People
label
A human readable label for the resource.
Extending IIIF 3.0 — David Newbury (@workergnome) 10
Presentation Properties for People
summary
A short textual summary of the resource.
Extending IIIF 3.0 — David Newbury (@workergnome) 11
Presentation Properties for People
requiredStatement
Text that MUST be displayed.
Extending IIIF 3.0 — David Newbury (@workergnome) 12
Presentation Properties for People
metadata
An list of label and value entries.
Extending IIIF 3.0 — David Newbury (@workergnome) 13
Presentation Properties for Software
navDate
A date that the client can use for navigation purposes.
Extending IIIF 3.0 — David Newbury (@workergnome) 14
Presentation Properties for Software
rights
A URL for a rights statement for the resource's content.
Extending IIIF 3.0 — David Newbury (@workergnome) 15
Presentation Properties for Software
homepage
A link to a web page that describes the "Real World Object".
Extending IIIF 3.0 — David Newbury (@workergnome) 16
Presentation Properties for Software
thumbnail
An content resource that represents this resource.
Extending IIIF 3.0 — David Newbury (@workergnome) 17
Presentation Properties for Software
logo
A small image that represents an individual or organization.
Extending IIIF 3.0 — David Newbury (@workergnome) 18
Presentation Properties for Software
posterCanvas
A Canvas-based summary of the resource.
Extending IIIF 3.0 — David Newbury (@workergnome) 19
That's all you get for embedded properties.
Extending IIIF 3.0 — David Newbury (@workergnome) 20
That's all you get for embedded properties.
You were hoping for more, weren't you.
Extending IIIF 3.0 — David Newbury (@workergnome) 21
Links & Linked Data
External resources & data.
Extending IIIF 3.0 — David Newbury (@workergnome) 22
Links for People
rendering
A non-IIIF representation
of the resource for humans--
though it might need special so!ware to view!
PDFs, OBJ files, ePub files
Extending IIIF 3.0 — David Newbury (@workergnome) 23
Links for People
{
"rendering": [{
"id": "https://example.org/1.pdf",
"type": "Text",
"format": "application/pdf",
"label": { "en": [ "PDF Rendering of Book" ] }
}]
}
Extending IIIF 3.0 — David Newbury (@workergnome) 24
Links for People
"label": Description for people.
"format": Description for so!ware.
Extending IIIF 3.0 — David Newbury (@workergnome) 25
Links for Robots
"seeAlso"
Related, external datasets.
TEI files, RDF data, XML files
Extending IIIF 3.0 — David Newbury (@workergnome) 26
Links for Robots
{
"seeAlso": [{
"id": "https://example.org/library/catalog/book1.xml",
"type": "Dataset",
"format": "text/xml",
"profile": "https://example.org/profiles/bibliographic"
}]
}
Extending IIIF 3.0 — David Newbury (@workergnome) 27
Links for Robots
"profile":
How your community's robots
recognize this data as relevant.
(your community has robots, right?)
Extending IIIF 3.0 — David Newbury (@workergnome) 28
Links for Software
"service"
External APIs that so!ware can interact with
for new functionality or information.
The Image API is common,
but there are others.
Extending IIIF 3.0 — David Newbury (@workergnome) 29
Links for Software
{
"service": [{
"id": "https://example.org/service",
"type": "Service",
"profile": "https://example.org/docs/service"
}]
}
Extending IIIF 3.0 — David Newbury (@workergnome) 30
Links for Robots
You need to know what the service does to use it.
Documentation should be available at the profile URL.
Extending IIIF 3.0 — David Newbury (@workergnome) 31
You want more?
(Never satisfied, are you?)
Extending IIIF 3.0 — David Newbury (@workergnome) 32
Annotations
Linking between resources via a motivation.
IIIF defines the painting & supplementing motivations,
the Web Annotation spec defines others.
(clients need to recognize them, though...)
Extending IIIF 3.0 — David Newbury (@workergnome) 33
Annotations
Annotations are the way to
provide custom content for people.
They're not very good at providing
content for so!ware, though.
Extending IIIF 3.0 — David Newbury (@workergnome) 34
Still not satisfied?
You really want custom, semantic,
machine-readable properties.
Even though IIIF doesn't do that.
Extending IIIF 3.0 — David Newbury (@workergnome) 35
Do what thou wilt.
Extending IIIF 3.0 — David Newbury (@workergnome) 36
Custom JSON properties.
Other properties are allowed...if a client discovers properties
that it does not understand, then it must ignore them.
IIIF lets you add new properties.
Extending IIIF 3.0 — David Newbury (@workergnome) 37
{
"@context": [
"http://www.w3.org/ns/anno.jsonld",
"http://iiif.io/api/presentation/3/context.json"
],
"id": "https://example.org/iiif/custom_props",
"type": "Manifest",
"lastModified": "2017-12-25"
...
}
Extending IIIF 3.0 — David Newbury (@workergnome) 38
Custom JSON properties.
If it’s only your manifests,
used by only your so!ware,
and nobody else ever uses it...
Then maybe it’s ok.
That's not very IIIF-y, though.
Extending IIIF 3.0 — David Newbury (@workergnome) 39
Problems with Custom JSON:
— I can't tell that you've used them.
— I can't guess what they mean.
— I might have used the same property.
— IIIF might use the same property.
Extending IIIF 3.0 — David Newbury (@workergnome) 40
The heart wants what it wants.
Extending IIIF 3.0 — David Newbury (@workergnome) 41
Fine. You win.
IIIF Extensions.
Extending IIIF 3.0 — David Newbury (@workergnome) 42
IIIF Extension best practices:
— Don't reuse existing property names
— Indicate you're using a custom property
— Use as few properties as possible
— Explain what they mean
— Share them with the community
Extending IIIF 3.0 — David Newbury (@workergnome) 43
JSON-LD Contexts
No one would accidentally reuse
{
"http://iiif.davidnewbury.com/lastModified": "2017-12-25"
}
But, man—
is it ugly.
Extending IIIF 3.0 — David Newbury (@workergnome) 44
JSON-LD Contexts
If I host a context.json file...
{
"@context": {
"@version": 1.1,
"lastModified": "http://iiif.davidnewbury.com/lastModified"
}
}
Extending IIIF 3.0 — David Newbury (@workergnome) 45
JSON-LD Contexts
...and include it into my manifest...
{
"@context": [
"http://iiif.davidnewbury.com/context.json",
"http://www.w3.org/ns/anno.jsonld",
"http://iiif.io/api/presentation/3/context.json"
],
"id": "https://example.org/iiif/book1/manifest",
"lastModified": "2017-12-25",
"type": "Manifest",
}
Extending IIIF 3.0 — David Newbury (@workergnome) 46
JSON-LD Contexts
...I can use the pretty name.
{
"@context": [
"http://iiif.davidnewbury.com/context.json",
"http://www.w3.org/ns/anno.jsonld",
"http://iiif.io/api/presentation/3/context.json"
],
"id": "https://example.org/iiif/book1/manifest",
"lastModified": "2017-12-25",
"type": "Manifest",
}
Extending IIIF 3.0 — David Newbury (@workergnome) 47
JSON-LD Contexts
JSON-LD Contexts do three things:
1. Map property names to URIs
2. Let so!ware know to look for new properties
3. Tell you who created the properties
Extending IIIF 3.0 — David Newbury (@workergnome) 48
Um...this didn't solve the problem of reusing properties.
Extending IIIF 3.0 — David Newbury (@workergnome) 49
JSON-LD Scoped Contexts
There are only so many good names.
A IIIF extension should only claim one property,
but many extensions need more than one.
Extending IIIF 3.0 — David Newbury (@workergnome) 50
JSON-LD Scoped Contexts
In JSON-LD 1.1, there's a way to define a context
that only applies within a particular property:
Scoped Contexts.
Extending IIIF 3.0 — David Newbury (@workergnome) 51
{
"@context": {
"@version": 1.1,
"lastModified": "http://iiif.davidnewbury.com/lastModified"
}}
can be used like
{
"@context": [
"http://iiif.davidnewbury.com/context.json"
"http://www.w3.org/ns/anno.jsonld",
"http://iiif.io/api/presentation/3/context.json"
],
"id": "https://example.org/iiif/book1/manifest",
"type": "Manifest",
"lastModified": "2017-12-25"
}
Extending IIIF 3.0 — David Newbury (@workergnome) 52
{
"@context": {
"@version": 1.1,
"navPlace": {
"@id" : "http://iiif.davidnewbury.com#navPlace",
"@context": {
"lat": "http://iiif.davidnewbury.com#lat",
"lng": "http://iiif.davidnewbury.com#lng"
}
}
}
}
Extending IIIF 3.0 — David Newbury (@workergnome) 53
{
"@context": [
"http://iiif.davidnewbury.com/context2.json"
"http://www.w3.org/ns/anno.jsonld",
"http://iiif.io/api/presentation/3/context.json"
],
"id": "https://example.org/iiif/book1/manifest",
"type": "Manifest",
"navPlace": {
"lat": 34.045,
"lng": -118.565
}
}
Extending IIIF 3.0 — David Newbury (@workergnome) 54
Documentation properties
— type
— profile
— label
Extending IIIF 3.0 — David Newbury (@workergnome) 55
This STILL didn't solve the problem of reusing properties.
Extending IIIF 3.0 — David Newbury (@workergnome) 56
The IIIF
Registries
Extending IIIF 3.0 — David Newbury (@workergnome) 57

More Related Content

Similar to Extending IIIF 3.0

Digital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi Kaya
Digital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi KayaDigital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi Kaya
Digital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi KayaFuture Insights
 
GSoC 2017 Proposal - Chatbot for DBpedia
GSoC 2017 Proposal - Chatbot for DBpedia GSoC 2017 Proposal - Chatbot for DBpedia
GSoC 2017 Proposal - Chatbot for DBpedia Ram G Athreya
 
The LOD Gateway: Open Source Infrastructure for Linked Data
The LOD Gateway: Open Source Infrastructure for Linked DataThe LOD Gateway: Open Source Infrastructure for Linked Data
The LOD Gateway: Open Source Infrastructure for Linked DataDavid Newbury
 
RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)
RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)
RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)contest-theta360
 
Social Networking using ROR
Social Networking using RORSocial Networking using ROR
Social Networking using RORDhaval Patel
 
2013 10-03-semantics-meetup-s buxton-mark_logic_pub
2013 10-03-semantics-meetup-s buxton-mark_logic_pub2013 10-03-semantics-meetup-s buxton-mark_logic_pub
2013 10-03-semantics-meetup-s buxton-mark_logic_pubStephen Buxton
 
From Academic Library 2.0 to (Literature) Research 2.0
From Academic Library 2.0  to (Literature) Research 2.0From Academic Library 2.0  to (Literature) Research 2.0
From Academic Library 2.0 to (Literature) Research 2.0Michael Habib
 
Talentbin Sales Deck
Talentbin Sales DeckTalentbin Sales Deck
Talentbin Sales DeckVishal Kumar
 
Talent Bin
Talent BinTalent Bin
Talent BinRyan Gum
 
IIIF: Discovery of Resources
IIIF: Discovery of ResourcesIIIF: Discovery of Resources
IIIF: Discovery of ResourcesRobert Sanderson
 
Reactive Data Access with Spring Data
Reactive Data Access with Spring DataReactive Data Access with Spring Data
Reactive Data Access with Spring DataVMware Tanzu
 
Metadata Provenance Tutorial at SWIB 13, Part 1
Metadata Provenance Tutorial at SWIB 13, Part 1Metadata Provenance Tutorial at SWIB 13, Part 1
Metadata Provenance Tutorial at SWIB 13, Part 1Kai Eckert
 
Open Data and News Analytics Demo
Open Data and News Analytics DemoOpen Data and News Analytics Demo
Open Data and News Analytics DemoOntotext
 
Business Schools 2.0
Business Schools 2.0Business Schools 2.0
Business Schools 2.0SealTree -
 

Similar to Extending IIIF 3.0 (20)

Digital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi Kaya
Digital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi KayaDigital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi Kaya
Digital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi Kaya
 
Digital Manuscripts Toolkit
Digital Manuscripts ToolkitDigital Manuscripts Toolkit
Digital Manuscripts Toolkit
 
Web 30 and RSS
Web 30 and RSSWeb 30 and RSS
Web 30 and RSS
 
GSoC 2017 Proposal - Chatbot for DBpedia
GSoC 2017 Proposal - Chatbot for DBpedia GSoC 2017 Proposal - Chatbot for DBpedia
GSoC 2017 Proposal - Chatbot for DBpedia
 
The LOD Gateway: Open Source Infrastructure for Linked Data
The LOD Gateway: Open Source Infrastructure for Linked DataThe LOD Gateway: Open Source Infrastructure for Linked Data
The LOD Gateway: Open Source Infrastructure for Linked Data
 
final ppt.pptx
final ppt.pptxfinal ppt.pptx
final ppt.pptx
 
final ppt.pptx
final ppt.pptxfinal ppt.pptx
final ppt.pptx
 
RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)
RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)
RICOH THETA x IoT Developers Contest : Cloud API Seminar (2nd installation)
 
Social Networking using ROR
Social Networking using RORSocial Networking using ROR
Social Networking using ROR
 
2013 10-03-semantics-meetup-s buxton-mark_logic_pub
2013 10-03-semantics-meetup-s buxton-mark_logic_pub2013 10-03-semantics-meetup-s buxton-mark_logic_pub
2013 10-03-semantics-meetup-s buxton-mark_logic_pub
 
From Academic Library 2.0 to (Literature) Research 2.0
From Academic Library 2.0  to (Literature) Research 2.0From Academic Library 2.0  to (Literature) Research 2.0
From Academic Library 2.0 to (Literature) Research 2.0
 
Talentbin Sales Deck
Talentbin Sales DeckTalentbin Sales Deck
Talentbin Sales Deck
 
Talent Bin
Talent BinTalent Bin
Talent Bin
 
IIIF: Discovery of Resources
IIIF: Discovery of ResourcesIIIF: Discovery of Resources
IIIF: Discovery of Resources
 
Reactive Data Access with Spring Data
Reactive Data Access with Spring DataReactive Data Access with Spring Data
Reactive Data Access with Spring Data
 
SDoW2010 keynote
SDoW2010 keynoteSDoW2010 keynote
SDoW2010 keynote
 
Semantic Web, e-commerce
Semantic Web, e-commerceSemantic Web, e-commerce
Semantic Web, e-commerce
 
Metadata Provenance Tutorial at SWIB 13, Part 1
Metadata Provenance Tutorial at SWIB 13, Part 1Metadata Provenance Tutorial at SWIB 13, Part 1
Metadata Provenance Tutorial at SWIB 13, Part 1
 
Open Data and News Analytics Demo
Open Data and News Analytics DemoOpen Data and News Analytics Demo
Open Data and News Analytics Demo
 
Business Schools 2.0
Business Schools 2.0Business Schools 2.0
Business Schools 2.0
 

More from David Newbury

Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Linked Data on a Budget
Linked Data on a BudgetLinked Data on a Budget
Linked Data on a BudgetDavid Newbury
 
USE ME: progressive integration of IIIF with new software services at the Getty
USE ME: progressive integration of IIIF with new software services at the GettyUSE ME: progressive integration of IIIF with new software services at the Getty
USE ME: progressive integration of IIIF with new software services at the GettyDavid Newbury
 
IIIF Across Platforms | IIIF Community Call, January 2021
IIIF Across Platforms | IIIF Community Call, January 2021IIIF Across Platforms | IIIF Community Call, January 2021
IIIF Across Platforms | IIIF Community Call, January 2021David Newbury
 
IIIF Canvases as First Class Citizens
IIIF Canvases as First Class CitizensIIIF Canvases as First Class Citizens
IIIF Canvases as First Class CitizensDavid Newbury
 
IIIF and Linked Open Data: LODLAM 2020
IIIF and Linked Open Data: LODLAM 2020IIIF and Linked Open Data: LODLAM 2020
IIIF and Linked Open Data: LODLAM 2020David Newbury
 
How to Fail Interdisciplinarily
How to Fail InterdisciplinarilyHow to Fail Interdisciplinarily
How to Fail InterdisciplinarilyDavid Newbury
 
Sharing Data Across Memory Institutions
Sharing Data Across Memory InstitutionsSharing Data Across Memory Institutions
Sharing Data Across Memory InstitutionsDavid Newbury
 
NDSR Learning Enrichment: Data Models and Linked Data
NDSR Learning Enrichment: Data Models and Linked DataNDSR Learning Enrichment: Data Models and Linked Data
NDSR Learning Enrichment: Data Models and Linked DataDavid Newbury
 
Fuzzy Dates & the Digital Humanities
Fuzzy Dates & the Digital HumanitiesFuzzy Dates & the Digital Humanities
Fuzzy Dates & the Digital HumanitiesDavid Newbury
 
Telling Stories with Data: Class Notes 2
Telling Stories with Data:  Class Notes 2Telling Stories with Data:  Class Notes 2
Telling Stories with Data: Class Notes 2David Newbury
 
Telling Stories With Data: Class 1
Telling Stories With Data: Class 1Telling Stories With Data: Class 1
Telling Stories With Data: Class 1David Newbury
 
21st Century Provenance: Lessons Learned Building Art Tracks
21st Century Provenance:  Lessons Learned Building Art Tracks21st Century Provenance:  Lessons Learned Building Art Tracks
21st Century Provenance: Lessons Learned Building Art TracksDavid Newbury
 
Art Tracks: From Provenance to Structured Data
Art Tracks: From Provenance to Structured DataArt Tracks: From Provenance to Structured Data
Art Tracks: From Provenance to Structured DataDavid Newbury
 
Linked Data: Worse is Better
Linked Data:  Worse is BetterLinked Data:  Worse is Better
Linked Data: Worse is BetterDavid Newbury
 
Art Tracks: A technical deep dive.
Art Tracks:  A technical deep dive.Art Tracks:  A technical deep dive.
Art Tracks: A technical deep dive.David Newbury
 
Using Linked Data: American Art Collaborative, Oct. 3, 2016
Using Linked Data:  American Art Collaborative, Oct. 3, 2016Using Linked Data:  American Art Collaborative, Oct. 3, 2016
Using Linked Data: American Art Collaborative, Oct. 3, 2016David Newbury
 
Data 101: Making Charts from Spreadsheets
Data 101: Making Charts from SpreadsheetsData 101: Making Charts from Spreadsheets
Data 101: Making Charts from SpreadsheetsDavid Newbury
 
IIIF For Small Projects
IIIF  For Small ProjectsIIIF  For Small Projects
IIIF For Small ProjectsDavid Newbury
 

More from David Newbury (20)

Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Linked Data on a Budget
Linked Data on a BudgetLinked Data on a Budget
Linked Data on a Budget
 
USE ME: progressive integration of IIIF with new software services at the Getty
USE ME: progressive integration of IIIF with new software services at the GettyUSE ME: progressive integration of IIIF with new software services at the Getty
USE ME: progressive integration of IIIF with new software services at the Getty
 
IIIF Across Platforms | IIIF Community Call, January 2021
IIIF Across Platforms | IIIF Community Call, January 2021IIIF Across Platforms | IIIF Community Call, January 2021
IIIF Across Platforms | IIIF Community Call, January 2021
 
IIIF Canvases as First Class Citizens
IIIF Canvases as First Class CitizensIIIF Canvases as First Class Citizens
IIIF Canvases as First Class Citizens
 
IIIF and Linked Open Data: LODLAM 2020
IIIF and Linked Open Data: LODLAM 2020IIIF and Linked Open Data: LODLAM 2020
IIIF and Linked Open Data: LODLAM 2020
 
How to Fail Interdisciplinarily
How to Fail InterdisciplinarilyHow to Fail Interdisciplinarily
How to Fail Interdisciplinarily
 
Sharing Data Across Memory Institutions
Sharing Data Across Memory InstitutionsSharing Data Across Memory Institutions
Sharing Data Across Memory Institutions
 
NDSR Learning Enrichment: Data Models and Linked Data
NDSR Learning Enrichment: Data Models and Linked DataNDSR Learning Enrichment: Data Models and Linked Data
NDSR Learning Enrichment: Data Models and Linked Data
 
Fuzzy Dates & the Digital Humanities
Fuzzy Dates & the Digital HumanitiesFuzzy Dates & the Digital Humanities
Fuzzy Dates & the Digital Humanities
 
Telling Stories with Data: Class Notes 2
Telling Stories with Data:  Class Notes 2Telling Stories with Data:  Class Notes 2
Telling Stories with Data: Class Notes 2
 
Telling Stories With Data: Class 1
Telling Stories With Data: Class 1Telling Stories With Data: Class 1
Telling Stories With Data: Class 1
 
21st Century Provenance: Lessons Learned Building Art Tracks
21st Century Provenance:  Lessons Learned Building Art Tracks21st Century Provenance:  Lessons Learned Building Art Tracks
21st Century Provenance: Lessons Learned Building Art Tracks
 
Art Tracks: From Provenance to Structured Data
Art Tracks: From Provenance to Structured DataArt Tracks: From Provenance to Structured Data
Art Tracks: From Provenance to Structured Data
 
Linked Data: Worse is Better
Linked Data:  Worse is BetterLinked Data:  Worse is Better
Linked Data: Worse is Better
 
Understanding D3
Understanding D3Understanding D3
Understanding D3
 
Art Tracks: A technical deep dive.
Art Tracks:  A technical deep dive.Art Tracks:  A technical deep dive.
Art Tracks: A technical deep dive.
 
Using Linked Data: American Art Collaborative, Oct. 3, 2016
Using Linked Data:  American Art Collaborative, Oct. 3, 2016Using Linked Data:  American Art Collaborative, Oct. 3, 2016
Using Linked Data: American Art Collaborative, Oct. 3, 2016
 
Data 101: Making Charts from Spreadsheets
Data 101: Making Charts from SpreadsheetsData 101: Making Charts from Spreadsheets
Data 101: Making Charts from Spreadsheets
 
IIIF For Small Projects
IIIF  For Small ProjectsIIIF  For Small Projects
IIIF For Small Projects
 

Recently uploaded

Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxMasterG
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...SOFTTECHHUB
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiRaviKumarDaparthi
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfdanishmna97
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...ScyllaDB
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewDianaGray10
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Paige Cruz
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxjbellis
 

Recently uploaded (20)

Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi Daparthi
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 

Extending IIIF 3.0

  • 1. Extending IIIF 3.0 2018 IIIF Conference, Washington DC David Newbury, J. Paul Getty Trust @workergnome Extending IIIF 3.0 — David Newbury (@workergnome) 1
  • 2. Triple-eye-eff. The IIIF Presentation API is a data model for arranging virtual canvases, annotating them and providing descriptive content. Extending IIIF 3.0 — David Newbury (@workergnome) 2
  • 3. Triple-eye-eff. I'm not going to talk about images. I'm not going talk about arranging them. Instead, I'm going to talk about metadata. Extending IIIF 3.0 — David Newbury (@workergnome) 3
  • 4. The Paintings, Puppies, & Pustules problem What metadata standard handles meaning across these things? Extending IIIF 3.0 — David Newbury (@workergnome) 4
  • 5. We punted. IIIF is presentational, not semantic. How it looks, not what it means. Extending IIIF 3.0 — David Newbury (@workergnome) 5
  • 6. Properties for People Words, generally. Lots of words. Extending IIIF 3.0 — David Newbury (@workergnome) 6
  • 7. Properties for Software Data that needs to be interpreted by client so!ware. Extending IIIF 3.0 — David Newbury (@workergnome) 7
  • 8. Properties for Robots Explaining to robots what this all means. (Yes, this is semantic. Shhhhh.) Extending IIIF 3.0 — David Newbury (@workergnome) 8
  • 9. What comes out of the box? Extending IIIF 3.0 — David Newbury (@workergnome) 9
  • 10. Presentation Properties for People label A human readable label for the resource. Extending IIIF 3.0 — David Newbury (@workergnome) 10
  • 11. Presentation Properties for People summary A short textual summary of the resource. Extending IIIF 3.0 — David Newbury (@workergnome) 11
  • 12. Presentation Properties for People requiredStatement Text that MUST be displayed. Extending IIIF 3.0 — David Newbury (@workergnome) 12
  • 13. Presentation Properties for People metadata An list of label and value entries. Extending IIIF 3.0 — David Newbury (@workergnome) 13
  • 14. Presentation Properties for Software navDate A date that the client can use for navigation purposes. Extending IIIF 3.0 — David Newbury (@workergnome) 14
  • 15. Presentation Properties for Software rights A URL for a rights statement for the resource's content. Extending IIIF 3.0 — David Newbury (@workergnome) 15
  • 16. Presentation Properties for Software homepage A link to a web page that describes the "Real World Object". Extending IIIF 3.0 — David Newbury (@workergnome) 16
  • 17. Presentation Properties for Software thumbnail An content resource that represents this resource. Extending IIIF 3.0 — David Newbury (@workergnome) 17
  • 18. Presentation Properties for Software logo A small image that represents an individual or organization. Extending IIIF 3.0 — David Newbury (@workergnome) 18
  • 19. Presentation Properties for Software posterCanvas A Canvas-based summary of the resource. Extending IIIF 3.0 — David Newbury (@workergnome) 19
  • 20. That's all you get for embedded properties. Extending IIIF 3.0 — David Newbury (@workergnome) 20
  • 21. That's all you get for embedded properties. You were hoping for more, weren't you. Extending IIIF 3.0 — David Newbury (@workergnome) 21
  • 22. Links & Linked Data External resources & data. Extending IIIF 3.0 — David Newbury (@workergnome) 22
  • 23. Links for People rendering A non-IIIF representation of the resource for humans-- though it might need special so!ware to view! PDFs, OBJ files, ePub files Extending IIIF 3.0 — David Newbury (@workergnome) 23
  • 24. Links for People { "rendering": [{ "id": "https://example.org/1.pdf", "type": "Text", "format": "application/pdf", "label": { "en": [ "PDF Rendering of Book" ] } }] } Extending IIIF 3.0 — David Newbury (@workergnome) 24
  • 25. Links for People "label": Description for people. "format": Description for so!ware. Extending IIIF 3.0 — David Newbury (@workergnome) 25
  • 26. Links for Robots "seeAlso" Related, external datasets. TEI files, RDF data, XML files Extending IIIF 3.0 — David Newbury (@workergnome) 26
  • 27. Links for Robots { "seeAlso": [{ "id": "https://example.org/library/catalog/book1.xml", "type": "Dataset", "format": "text/xml", "profile": "https://example.org/profiles/bibliographic" }] } Extending IIIF 3.0 — David Newbury (@workergnome) 27
  • 28. Links for Robots "profile": How your community's robots recognize this data as relevant. (your community has robots, right?) Extending IIIF 3.0 — David Newbury (@workergnome) 28
  • 29. Links for Software "service" External APIs that so!ware can interact with for new functionality or information. The Image API is common, but there are others. Extending IIIF 3.0 — David Newbury (@workergnome) 29
  • 30. Links for Software { "service": [{ "id": "https://example.org/service", "type": "Service", "profile": "https://example.org/docs/service" }] } Extending IIIF 3.0 — David Newbury (@workergnome) 30
  • 31. Links for Robots You need to know what the service does to use it. Documentation should be available at the profile URL. Extending IIIF 3.0 — David Newbury (@workergnome) 31
  • 32. You want more? (Never satisfied, are you?) Extending IIIF 3.0 — David Newbury (@workergnome) 32
  • 33. Annotations Linking between resources via a motivation. IIIF defines the painting & supplementing motivations, the Web Annotation spec defines others. (clients need to recognize them, though...) Extending IIIF 3.0 — David Newbury (@workergnome) 33
  • 34. Annotations Annotations are the way to provide custom content for people. They're not very good at providing content for so!ware, though. Extending IIIF 3.0 — David Newbury (@workergnome) 34
  • 35. Still not satisfied? You really want custom, semantic, machine-readable properties. Even though IIIF doesn't do that. Extending IIIF 3.0 — David Newbury (@workergnome) 35
  • 36. Do what thou wilt. Extending IIIF 3.0 — David Newbury (@workergnome) 36
  • 37. Custom JSON properties. Other properties are allowed...if a client discovers properties that it does not understand, then it must ignore them. IIIF lets you add new properties. Extending IIIF 3.0 — David Newbury (@workergnome) 37
  • 38. { "@context": [ "http://www.w3.org/ns/anno.jsonld", "http://iiif.io/api/presentation/3/context.json" ], "id": "https://example.org/iiif/custom_props", "type": "Manifest", "lastModified": "2017-12-25" ... } Extending IIIF 3.0 — David Newbury (@workergnome) 38
  • 39. Custom JSON properties. If it’s only your manifests, used by only your so!ware, and nobody else ever uses it... Then maybe it’s ok. That's not very IIIF-y, though. Extending IIIF 3.0 — David Newbury (@workergnome) 39
  • 40. Problems with Custom JSON: — I can't tell that you've used them. — I can't guess what they mean. — I might have used the same property. — IIIF might use the same property. Extending IIIF 3.0 — David Newbury (@workergnome) 40
  • 41. The heart wants what it wants. Extending IIIF 3.0 — David Newbury (@workergnome) 41
  • 42. Fine. You win. IIIF Extensions. Extending IIIF 3.0 — David Newbury (@workergnome) 42
  • 43. IIIF Extension best practices: — Don't reuse existing property names — Indicate you're using a custom property — Use as few properties as possible — Explain what they mean — Share them with the community Extending IIIF 3.0 — David Newbury (@workergnome) 43
  • 44. JSON-LD Contexts No one would accidentally reuse { "http://iiif.davidnewbury.com/lastModified": "2017-12-25" } But, man— is it ugly. Extending IIIF 3.0 — David Newbury (@workergnome) 44
  • 45. JSON-LD Contexts If I host a context.json file... { "@context": { "@version": 1.1, "lastModified": "http://iiif.davidnewbury.com/lastModified" } } Extending IIIF 3.0 — David Newbury (@workergnome) 45
  • 46. JSON-LD Contexts ...and include it into my manifest... { "@context": [ "http://iiif.davidnewbury.com/context.json", "http://www.w3.org/ns/anno.jsonld", "http://iiif.io/api/presentation/3/context.json" ], "id": "https://example.org/iiif/book1/manifest", "lastModified": "2017-12-25", "type": "Manifest", } Extending IIIF 3.0 — David Newbury (@workergnome) 46
  • 47. JSON-LD Contexts ...I can use the pretty name. { "@context": [ "http://iiif.davidnewbury.com/context.json", "http://www.w3.org/ns/anno.jsonld", "http://iiif.io/api/presentation/3/context.json" ], "id": "https://example.org/iiif/book1/manifest", "lastModified": "2017-12-25", "type": "Manifest", } Extending IIIF 3.0 — David Newbury (@workergnome) 47
  • 48. JSON-LD Contexts JSON-LD Contexts do three things: 1. Map property names to URIs 2. Let so!ware know to look for new properties 3. Tell you who created the properties Extending IIIF 3.0 — David Newbury (@workergnome) 48
  • 49. Um...this didn't solve the problem of reusing properties. Extending IIIF 3.0 — David Newbury (@workergnome) 49
  • 50. JSON-LD Scoped Contexts There are only so many good names. A IIIF extension should only claim one property, but many extensions need more than one. Extending IIIF 3.0 — David Newbury (@workergnome) 50
  • 51. JSON-LD Scoped Contexts In JSON-LD 1.1, there's a way to define a context that only applies within a particular property: Scoped Contexts. Extending IIIF 3.0 — David Newbury (@workergnome) 51
  • 52. { "@context": { "@version": 1.1, "lastModified": "http://iiif.davidnewbury.com/lastModified" }} can be used like { "@context": [ "http://iiif.davidnewbury.com/context.json" "http://www.w3.org/ns/anno.jsonld", "http://iiif.io/api/presentation/3/context.json" ], "id": "https://example.org/iiif/book1/manifest", "type": "Manifest", "lastModified": "2017-12-25" } Extending IIIF 3.0 — David Newbury (@workergnome) 52
  • 53. { "@context": { "@version": 1.1, "navPlace": { "@id" : "http://iiif.davidnewbury.com#navPlace", "@context": { "lat": "http://iiif.davidnewbury.com#lat", "lng": "http://iiif.davidnewbury.com#lng" } } } } Extending IIIF 3.0 — David Newbury (@workergnome) 53
  • 55. Documentation properties — type — profile — label Extending IIIF 3.0 — David Newbury (@workergnome) 55
  • 56. This STILL didn't solve the problem of reusing properties. Extending IIIF 3.0 — David Newbury (@workergnome) 56
  • 57. The IIIF Registries Extending IIIF 3.0 — David Newbury (@workergnome) 57