SlideShare a Scribd company logo
1 of 31
Download to read offline
STANFORD UNIVERSITY LIBRARIES
Annotations as Linked Data
with Fedora4 and Triannon
(A Real Use Case for RDF!)
C O D E 4 L I B 2015
PO R T L A N D , OR
FE B R U A R Y 11
Rob Sanderson / azaroth@stanford.edu / @azaroth42
Naomi Dushay / ndushay@stanford.edu
STANFORD UNIVERSITY LIBRARIES
Annotations as Linked Data
with Fedora4 and Triannon
(A Real Use Case for RDF!)
C O D E 4 L I B 2015
PO R T L A N D , OR
FE B R U A R Y 11
Rob Sanderson / azaroth@stanford.edu / @azaroth42
Naomi Dushay / ndushay@stanford.edu
Where are the Dragons?
:(
Triannon:
Putting the Dragons Back in Portland
since sometime last week
Requirements:
•  Create and manage tags/annotations in any client or environment
•  Retrieve tags/annotations to display in any client
•  With the identifiers of Works, not of catalog views
Need:
•  A model for annotations
•  A format to serialize them into
•  A protocol to transfer the serializations between systems
•  Implementations!
JSON Annotation Format
{!
"@context": "http://www.w3.org/ns/oa-context-20130208.json",!
"@id": "http://www.example.org/annotations/1",!
"@type": "oa:Annotation”,!
"motivatedBy":"oa:commenting",!
"hasBody": {!
"@type": "cnt:ContentAsText",!
"chars": "Portland is somewhere here. Also Dragons",!
"format": "text/plain"!
},!
"hasTarget": "http://purl.stanford.edu/bd136jk4522#xywh=..."!
} !
JSON-LD Annotation Format
{!
"@context": "http://www.w3.org/ns/oa-context-20130208.json",!
"@id": "http://www.example.org/annotations/1",!
"@type": "oa:Annotation”,!
"motivatedBy":"oa:commenting",!
"hasBody": {!
"@type": "cnt:ContentAsText",!
"chars": "Portland is somewhere here. Also Dragons",!
"format": "text/plain"!
},!
"hasTarget": "http://purl.stanford.edu/bd136jk4522#xywh=..."!
} !
JSON-LD Annotation Format
{!
"@context": "http://www.w3.org/ns/oa-context-20130208.json",!
"@id": "http://www.example.org/annotations/1",!
"@type": "oa:Annotation”,!
"motivatedBy":"oa:commenting",!
"hasBody": {!
"@type": "cnt:ContentAsText",!
"chars": "Portland is somewhere here. Also Dragons",!
"format": "text/plain"!
},!
"hasTarget": "http://purl.stanford.edu/bd136jk4522#xywh=..."!
} !
Dirty not-so-secret time...
RDF Annotation Format
{!
"@context": "http://www.w3.org/ns/oa-context-20130208.json",!
"@id": "http://www.example.org/annotations/1",!
"@type": "oa:Annotation”,!
"motivatedBy":"oa:commenting",!
"hasBody": {!
"@type": "cnt:ContentAsText",!
"chars": "Portland is somewhere here. Also Dragons",!
"format": "text/plain"!
},!
"hasTarget": "http://purl.stanford.edu/bd136jk4522#xywh=..."!
} !
It's actually RDF, following the Open Annotation model
Open Annotation
http://www.openannotation.org/spec/core/
http://www.w3.org/TR/annotation-model/ (beta)
Annotation Management: LDP
Reality is More Complex
In Reality ...
•  Multiple resources to manage, each requires a POST
•  Binary or external resources with descriptions tricky
•  Multiple JSON-LD contexts complex (IIIF, OA, ...)
Want:
•  Ease of use/implementation for annotation client
•  Ability to swap back-end to other LDP system
•  Integration with Rails environment
•  Search with Solr (easy) not SPARQL (less easy)
Triannon
Triannon plus Solr
Triannon: Implementation Goals
•  Rapid Development
•  Modular
•  Re-Usable
•  Deployable
•  Maintainable
Triannon: Rails Engine Gem
REST over HTTP
Create POST jsonld, turtle, rdfxml
Read GET "
Update PUT/PATCH "
Delete DELETE (id)
Model ActiveRecord ActiveModel LDP
View (for apps and developers) jsonld, turtle, rdfxml
Controller
http://github.com/sul-dlss/triannon
It’s the Graph, Baby!
Rails App (SearchWorks)
ActiveTriples
ld4l-open_annotation_rdf
triple store
(in memory)
RDF
SearchWorks: Create, Update, Delete
Triannon
id
html
form
jsonld from
RDF::Graph
Client App: Search and Display
Triannon SolrClient App
http://triannon-solr/by_target?url=purl.stanford.edu/bd136jk4522
'response'=>{'numFound'=>3,'start'=>0,'maxScore'=>1.0,'docs'=>[
{
'id'=>'98206ec8-4def-44b8-b190-648d8224ce1c’,
'anno_jsonld'=>'{"@context":"http://www.w3.org/ns/oa.jsonld","@graph":
[{"@id":"_:g70038924372700","@type":["dctypes:Text","cnt:ContentAsText"], "format":"text/plain”,
"chars":"Portland is somewhere here. Also Dragons”},{"@id":"https://
triannon-dev.stanford.edu/annotations/98206ec8-4def-44b8-
b190-648d8224ce1c","@type":"oa:Annotation","hasBody":"_:g70038924372700","hasTarget":"http://
purl.stanford.edu/bd136jk4522","motivatedBy":"oa:commenting"}]}',
...},
{
'id'=>'f691b921-6f54-415b-9dfb-0d017f0d8ada',
...
Rails App (SearchWorks)
ActiveTriples
ld4l-open_annotation_rdf
triple store
(in memory)
RDF
SearchWorks: Read and Display
•  Easy Access to Relevant Info from jsonld
•  Rapid Development
•  Modular
•  Maintainable
Triannon Solr
jsonld as
RDF::Graph
Search for
annos
LDP API
Fedora 4Solr
CRUD
Search /
Read
CRUDCUD
Client
Application
Client
Application
Client Application
Triannon
STANFORD UNIVERSITY LIBRARIES
Thank You!
February 11th, 2015
azaroth@stanford.edu
ndushay@stanford.edu

More Related Content

What's hot

Get on the Linked Data Web!
Get on the Linked Data Web!Get on the Linked Data Web!
Get on the Linked Data Web!
Armin Haller
 

What's hot (20)

Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDF
 
Developing Linked Data and Semantic Web-based Applications (Expotec 2015)
Developing Linked Data and Semantic Web-based Applications (Expotec 2015)Developing Linked Data and Semantic Web-based Applications (Expotec 2015)
Developing Linked Data and Semantic Web-based Applications (Expotec 2015)
 
New member webinar 052418
New member webinar 052418New member webinar 052418
New member webinar 052418
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQL
 
Todd davis facebook sourcing
Todd davis facebook sourcingTodd davis facebook sourcing
Todd davis facebook sourcing
 
Dublin Core In Practice
Dublin Core In PracticeDublin Core In Practice
Dublin Core In Practice
 
Federated Query Formulation and Processing through BioFed
Federated Query Formulation and Processing through BioFedFederated Query Formulation and Processing through BioFed
Federated Query Formulation and Processing through BioFed
 
A Semantic Data Model for Web Applications
A Semantic Data Model for Web ApplicationsA Semantic Data Model for Web Applications
A Semantic Data Model for Web Applications
 
DLF 2015 Presentation, "RDF in the Real World."
DLF 2015 Presentation, "RDF in the Real World." DLF 2015 Presentation, "RDF in the Real World."
DLF 2015 Presentation, "RDF in the Real World."
 
Fedora Migration Considerations
Fedora Migration ConsiderationsFedora Migration Considerations
Fedora Migration Considerations
 
Re-using Media on the Web: Media fragment re-mixing and playout
Re-using Media on the Web: Media fragment re-mixing and playoutRe-using Media on the Web: Media fragment re-mixing and playout
Re-using Media on the Web: Media fragment re-mixing and playout
 
Usage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application ScenariosUsage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application Scenarios
 
RDFa Tutorial
RDFa TutorialRDFa Tutorial
RDFa Tutorial
 
Matt Grove - Sourcing Round Table - Talent42 2015
Matt Grove - Sourcing Round Table - Talent42 2015Matt Grove - Sourcing Round Table - Talent42 2015
Matt Grove - Sourcing Round Table - Talent42 2015
 
Linked Data Tutorial
Linked Data TutorialLinked Data Tutorial
Linked Data Tutorial
 
Crossref XML and tools for small publishers (EASE Conference 2018)
Crossref XML and tools for small publishers (EASE Conference 2018)Crossref XML and tools for small publishers (EASE Conference 2018)
Crossref XML and tools for small publishers (EASE Conference 2018)
 
Get on the Linked Data Web!
Get on the Linked Data Web!Get on the Linked Data Web!
Get on the Linked Data Web!
 
Linked Data for Czech Legislation
Linked Data for Czech LegislationLinked Data for Czech Legislation
Linked Data for Czech Legislation
 
Semantic Web
Semantic WebSemantic Web
Semantic Web
 
Saveface - Save your Facebook content as RDF data
Saveface - Save your Facebook content as RDF dataSaveface - Save your Facebook content as RDF data
Saveface - Save your Facebook content as RDF data
 

Viewers also liked

Erika Pricyla Cerino HernáNdez
Erika Pricyla Cerino HernáNdezErika Pricyla Cerino HernáNdez
Erika Pricyla Cerino HernáNdez
guest1cc234
 
Dit Heb Je Nog Nooit Gezien
Dit Heb Je Nog Nooit GezienDit Heb Je Nog Nooit Gezien
Dit Heb Je Nog Nooit Gezien
guest6964ce
 

Viewers also liked (20)

IIIF: The Advantages of APIs
IIIF: The Advantages of APIsIIIF: The Advantages of APIs
IIIF: The Advantages of APIs
 
IIIF: Discovery of Resources
IIIF: Discovery of ResourcesIIIF: Discovery of Resources
IIIF: Discovery of Resources
 
Introduction to IIIF
Introduction to IIIFIntroduction to IIIF
Introduction to IIIF
 
Linked Data Best Practices and BibFrame
Linked Data Best Practices and BibFrameLinked Data Best Practices and BibFrame
Linked Data Best Practices and BibFrame
 
Brief Introduction to Linked Data
Brief Introduction to Linked DataBrief Introduction to Linked Data
Brief Introduction to Linked Data
 
W3C Web Annotation WG Update (I Annotate 2016)
W3C Web Annotation WG Update (I Annotate 2016)W3C Web Annotation WG Update (I Annotate 2016)
W3C Web Annotation WG Update (I Annotate 2016)
 
IIIF Overview for Linked Data Exhibitions
IIIF Overview for Linked Data ExhibitionsIIIF Overview for Linked Data Exhibitions
IIIF Overview for Linked Data Exhibitions
 
Community Challenges for Practical Linked Open Data - Linked Pasts keynote
Community Challenges for Practical Linked Open Data - Linked Pasts keynoteCommunity Challenges for Practical Linked Open Data - Linked Pasts keynote
Community Challenges for Practical Linked Open Data - Linked Pasts keynote
 
Poster RDAP13: A Workflow for Depositing to a Research Data Repository: A Cas...
Poster RDAP13: A Workflow for Depositing to a Research Data Repository: A Cas...Poster RDAP13: A Workflow for Depositing to a Research Data Repository: A Cas...
Poster RDAP13: A Workflow for Depositing to a Research Data Repository: A Cas...
 
Open Repositories 2014: Crowdsourced Transcription via IIIF
Open Repositories 2014: Crowdsourced Transcription via IIIFOpen Repositories 2014: Crowdsourced Transcription via IIIF
Open Repositories 2014: Crowdsourced Transcription via IIIF
 
IIIF: Shared Canvas 2.0
IIIF: Shared Canvas 2.0IIIF: Shared Canvas 2.0
IIIF: Shared Canvas 2.0
 
IIIF and JSON-LD: LODLAM Training Day
IIIF and JSON-LD: LODLAM Training DayIIIF and JSON-LD: LODLAM Training Day
IIIF and JSON-LD: LODLAM Training Day
 
Niso Annotation Webinar
Niso Annotation WebinarNiso Annotation Webinar
Niso Annotation Webinar
 
Erika Pricyla Cerino HernáNdez
Erika Pricyla Cerino HernáNdezErika Pricyla Cerino HernáNdez
Erika Pricyla Cerino HernáNdez
 
SharedCanvas: A Collaborative Model for Medieval Manuscript Layout Dissemina...
SharedCanvas: A Collaborative Model for Medieval Manuscript Layout Dissemina...SharedCanvas: A Collaborative Model for Medieval Manuscript Layout Dissemina...
SharedCanvas: A Collaborative Model for Medieval Manuscript Layout Dissemina...
 
Dit Heb Je Nog Nooit Gezien
Dit Heb Je Nog Nooit GezienDit Heb Je Nog Nooit Gezien
Dit Heb Je Nog Nooit Gezien
 
Python Web Interaction
Python Web InteractionPython Web Interaction
Python Web Interaction
 
NLLC 2011: Memento, Open Annotation, SharedCanvas
NLLC 2011: Memento, Open Annotation, SharedCanvasNLLC 2011: Memento, Open Annotation, SharedCanvas
NLLC 2011: Memento, Open Annotation, SharedCanvas
 
W3C Open Annotation: Status and Use Cases
W3C Open Annotation: Status and Use CasesW3C Open Annotation: Status and Use Cases
W3C Open Annotation: Status and Use Cases
 
IIIF Foundational Specifications
IIIF Foundational SpecificationsIIIF Foundational Specifications
IIIF Foundational Specifications
 

Similar to Annotations as Linked Data with Fedora4 and Triannon

2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
Josef Petrák
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic Web and Linked DataAn introduction to Semantic Web and Linked Data
An introduction to Semantic Web and Linked Data
Gabriela Agustini
 
W3C Tutorial on Semantic Web and Linked Data at WWW 2013
W3C Tutorial on Semantic Web and Linked Data at WWW 2013W3C Tutorial on Semantic Web and Linked Data at WWW 2013
W3C Tutorial on Semantic Web and Linked Data at WWW 2013
Fabien Gandon
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic  Web and Linked DataAn introduction to Semantic  Web and Linked Data
An introduction to Semantic Web and Linked Data
Gabriela Agustini
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n Bolts
Rinke Hoekstra
 

Similar to Annotations as Linked Data with Fedora4 and Triannon (20)

Linked Open Data
Linked Open DataLinked Open Data
Linked Open Data
 
Aall denver 2010
Aall denver 2010Aall denver 2010
Aall denver 2010
 
Linked Open Data for Libraries
Linked Open Data for LibrariesLinked Open Data for Libraries
Linked Open Data for Libraries
 
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
 
Ld4 l triannon
Ld4 l triannonLd4 l triannon
Ld4 l triannon
 
Introduction to RDF Data Model
Introduction to RDF Data ModelIntroduction to RDF Data Model
Introduction to RDF Data Model
 
Semantic Web introduction
Semantic Web introductionSemantic Web introduction
Semantic Web introduction
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic Web and Linked DataAn introduction to Semantic Web and Linked Data
An introduction to Semantic Web and Linked Data
 
W3C Tutorial on Semantic Web and Linked Data at WWW 2013
W3C Tutorial on Semantic Web and Linked Data at WWW 2013W3C Tutorial on Semantic Web and Linked Data at WWW 2013
W3C Tutorial on Semantic Web and Linked Data at WWW 2013
 
An introduction to Semantic Web and Linked Data
An introduction to Semantic  Web and Linked DataAn introduction to Semantic  Web and Linked Data
An introduction to Semantic Web and Linked Data
 
Creating Web APIs with JSON-LD and RDF
Creating Web APIs with JSON-LD and RDFCreating Web APIs with JSON-LD and RDF
Creating Web APIs with JSON-LD and RDF
 
Sem webmaubeuge
Sem webmaubeugeSem webmaubeuge
Sem webmaubeuge
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n Bolts
 
ontology.ppt
ontology.pptontology.ppt
ontology.ppt
 
Making Use of the Linked Open Data Services for OpenAIRE (DI4R 2016 tutorial ...
Making Use of the Linked Open Data Services for OpenAIRE (DI4R 2016 tutorial ...Making Use of the Linked Open Data Services for OpenAIRE (DI4R 2016 tutorial ...
Making Use of the Linked Open Data Services for OpenAIRE (DI4R 2016 tutorial ...
 
RDFa Introductory Course Session 2/4 How RDFa
RDFa Introductory Course Session 2/4 How RDFaRDFa Introductory Course Session 2/4 How RDFa
RDFa Introductory Course Session 2/4 How RDFa
 
How RDFa works
How RDFa worksHow RDFa works
How RDFa works
 
Publishing data on the Semantic Web
Publishing data on the Semantic WebPublishing data on the Semantic Web
Publishing data on the Semantic Web
 
Bio ontologies and semantic technologies
Bio ontologies and semantic technologiesBio ontologies and semantic technologies
Bio ontologies and semantic technologies
 
Linked Open Data: A simple how-to
Linked Open Data: A simple how-toLinked Open Data: A simple how-to
Linked Open Data: A simple how-to
 

More from Robert Sanderson

More from Robert Sanderson (20)

Understanding Linked Art
Understanding Linked ArtUnderstanding Linked Art
Understanding Linked Art
 
LUX - Cross Collections Cultural Heritage at Yale
LUX - Cross Collections Cultural Heritage at YaleLUX - Cross Collections Cultural Heritage at Yale
LUX - Cross Collections Cultural Heritage at Yale
 
Zoom as a Paradigm for Linked Open Usable Data
Zoom as a Paradigm for Linked Open Usable DataZoom as a Paradigm for Linked Open Usable Data
Zoom as a Paradigm for Linked Open Usable Data
 
Provenance and Uncertainty in Linked Art
Provenance and Uncertainty in Linked ArtProvenance and Uncertainty in Linked Art
Provenance and Uncertainty in Linked Art
 
Data is our Product: Thoughts on LOD Sustainability
Data is our Product: Thoughts on LOD SustainabilityData is our Product: Thoughts on LOD Sustainability
Data is our Product: Thoughts on LOD Sustainability
 
A Perspective on Wikidata: Ecosystems, Trust, and Usability
A Perspective on Wikidata: Ecosystems, Trust, and UsabilityA Perspective on Wikidata: Ecosystems, Trust, and Usability
A Perspective on Wikidata: Ecosystems, Trust, and Usability
 
Linked Art: Sustainable Cultural Knowledge through Linked Open Usable Data
Linked Art: Sustainable Cultural Knowledge through Linked Open Usable DataLinked Art: Sustainable Cultural Knowledge through Linked Open Usable Data
Linked Art: Sustainable Cultural Knowledge through Linked Open Usable Data
 
Illusions of Grandeur: Trust and Belief in Cultural Heritage Linked Open Data
Illusions of Grandeur: Trust and Belief in Cultural Heritage Linked Open DataIllusions of Grandeur: Trust and Belief in Cultural Heritage Linked Open Data
Illusions of Grandeur: Trust and Belief in Cultural Heritage Linked Open Data
 
Structural Metadata in RDF (IS575)
Structural Metadata in RDF (IS575)Structural Metadata in RDF (IS575)
Structural Metadata in RDF (IS575)
 
Sanderson CNI 2020 Keynote - Cultural Heritage Research Data Ecosystem
Sanderson CNI 2020 Keynote - Cultural Heritage Research Data EcosystemSanderson CNI 2020 Keynote - Cultural Heritage Research Data Ecosystem
Sanderson CNI 2020 Keynote - Cultural Heritage Research Data Ecosystem
 
Tiers of Abstraction and Audience in Cultural Heritage Data Modeling
Tiers of Abstraction and Audience in Cultural Heritage Data ModelingTiers of Abstraction and Audience in Cultural Heritage Data Modeling
Tiers of Abstraction and Audience in Cultural Heritage Data Modeling
 
The Importance of being LOUD
The Importance of being LOUDThe Importance of being LOUD
The Importance of being LOUD
 
Introduction to Linked Art Model
Introduction to Linked Art ModelIntroduction to Linked Art Model
Introduction to Linked Art Model
 
Standards and Communities: Connected People, Consistent Data, Usable Applicat...
Standards and Communities: Connected People, Consistent Data, Usable Applicat...Standards and Communities: Connected People, Consistent Data, Usable Applicat...
Standards and Communities: Connected People, Consistent Data, Usable Applicat...
 
Strong Opinions, Weakly Held
Strong Opinions, Weakly HeldStrong Opinions, Weakly Held
Strong Opinions, Weakly Held
 
IIIF Discovery Walkthrough
IIIF Discovery WalkthroughIIIF Discovery Walkthrough
IIIF Discovery Walkthrough
 
Linked Art: An Art Museum Profile for CIDOC-CRM
Linked Art: An Art Museum Profile for CIDOC-CRMLinked Art: An Art Museum Profile for CIDOC-CRM
Linked Art: An Art Museum Profile for CIDOC-CRM
 
Euromed2018 Keynote: Usability over Completeness, Community over Committee
Euromed2018 Keynote: Usability over Completeness, Community over CommitteeEuromed2018 Keynote: Usability over Completeness, Community over Committee
Euromed2018 Keynote: Usability over Completeness, Community over Committee
 
Linked Art - Our Linked Open Usable Data Model
Linked Art - Our Linked Open Usable Data ModelLinked Art - Our Linked Open Usable Data Model
Linked Art - Our Linked Open Usable Data Model
 
EuropeanaTech Keynote: Shout it out LOUD
EuropeanaTech Keynote: Shout it out LOUDEuropeanaTech Keynote: Shout it out LOUD
EuropeanaTech Keynote: Shout it out LOUD
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 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
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 

Annotations as Linked Data with Fedora4 and Triannon

  • 1. STANFORD UNIVERSITY LIBRARIES Annotations as Linked Data with Fedora4 and Triannon (A Real Use Case for RDF!) C O D E 4 L I B 2015 PO R T L A N D , OR FE B R U A R Y 11 Rob Sanderson / azaroth@stanford.edu / @azaroth42 Naomi Dushay / ndushay@stanford.edu
  • 2. STANFORD UNIVERSITY LIBRARIES Annotations as Linked Data with Fedora4 and Triannon (A Real Use Case for RDF!) C O D E 4 L I B 2015 PO R T L A N D , OR FE B R U A R Y 11 Rob Sanderson / azaroth@stanford.edu / @azaroth42 Naomi Dushay / ndushay@stanford.edu
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Where are the Dragons? :(
  • 12. Triannon: Putting the Dragons Back in Portland since sometime last week Requirements: •  Create and manage tags/annotations in any client or environment •  Retrieve tags/annotations to display in any client •  With the identifiers of Works, not of catalog views Need: •  A model for annotations •  A format to serialize them into •  A protocol to transfer the serializations between systems •  Implementations!
  • 13. JSON Annotation Format {! "@context": "http://www.w3.org/ns/oa-context-20130208.json",! "@id": "http://www.example.org/annotations/1",! "@type": "oa:Annotation”,! "motivatedBy":"oa:commenting",! "hasBody": {! "@type": "cnt:ContentAsText",! "chars": "Portland is somewhere here. Also Dragons",! "format": "text/plain"! },! "hasTarget": "http://purl.stanford.edu/bd136jk4522#xywh=..."! } !
  • 14. JSON-LD Annotation Format {! "@context": "http://www.w3.org/ns/oa-context-20130208.json",! "@id": "http://www.example.org/annotations/1",! "@type": "oa:Annotation”,! "motivatedBy":"oa:commenting",! "hasBody": {! "@type": "cnt:ContentAsText",! "chars": "Portland is somewhere here. Also Dragons",! "format": "text/plain"! },! "hasTarget": "http://purl.stanford.edu/bd136jk4522#xywh=..."! } !
  • 15. JSON-LD Annotation Format {! "@context": "http://www.w3.org/ns/oa-context-20130208.json",! "@id": "http://www.example.org/annotations/1",! "@type": "oa:Annotation”,! "motivatedBy":"oa:commenting",! "hasBody": {! "@type": "cnt:ContentAsText",! "chars": "Portland is somewhere here. Also Dragons",! "format": "text/plain"! },! "hasTarget": "http://purl.stanford.edu/bd136jk4522#xywh=..."! } ! Dirty not-so-secret time...
  • 16. RDF Annotation Format {! "@context": "http://www.w3.org/ns/oa-context-20130208.json",! "@id": "http://www.example.org/annotations/1",! "@type": "oa:Annotation”,! "motivatedBy":"oa:commenting",! "hasBody": {! "@type": "cnt:ContentAsText",! "chars": "Portland is somewhere here. Also Dragons",! "format": "text/plain"! },! "hasTarget": "http://purl.stanford.edu/bd136jk4522#xywh=..."! } ! It's actually RDF, following the Open Annotation model
  • 19. Reality is More Complex
  • 20. In Reality ... •  Multiple resources to manage, each requires a POST •  Binary or external resources with descriptions tricky •  Multiple JSON-LD contexts complex (IIIF, OA, ...) Want: •  Ease of use/implementation for annotation client •  Ability to swap back-end to other LDP system •  Integration with Rails environment •  Search with Solr (easy) not SPARQL (less easy)
  • 23. Triannon: Implementation Goals •  Rapid Development •  Modular •  Re-Usable •  Deployable •  Maintainable
  • 24. Triannon: Rails Engine Gem REST over HTTP Create POST jsonld, turtle, rdfxml Read GET " Update PUT/PATCH " Delete DELETE (id) Model ActiveRecord ActiveModel LDP View (for apps and developers) jsonld, turtle, rdfxml Controller http://github.com/sul-dlss/triannon
  • 25.
  • 27. Rails App (SearchWorks) ActiveTriples ld4l-open_annotation_rdf triple store (in memory) RDF SearchWorks: Create, Update, Delete Triannon id html form jsonld from RDF::Graph
  • 28. Client App: Search and Display Triannon SolrClient App http://triannon-solr/by_target?url=purl.stanford.edu/bd136jk4522 'response'=>{'numFound'=>3,'start'=>0,'maxScore'=>1.0,'docs'=>[ { 'id'=>'98206ec8-4def-44b8-b190-648d8224ce1c’, 'anno_jsonld'=>'{"@context":"http://www.w3.org/ns/oa.jsonld","@graph": [{"@id":"_:g70038924372700","@type":["dctypes:Text","cnt:ContentAsText"], "format":"text/plain”, "chars":"Portland is somewhere here. Also Dragons”},{"@id":"https:// triannon-dev.stanford.edu/annotations/98206ec8-4def-44b8- b190-648d8224ce1c","@type":"oa:Annotation","hasBody":"_:g70038924372700","hasTarget":"http:// purl.stanford.edu/bd136jk4522","motivatedBy":"oa:commenting"}]}', ...}, { 'id'=>'f691b921-6f54-415b-9dfb-0d017f0d8ada', ...
  • 29. Rails App (SearchWorks) ActiveTriples ld4l-open_annotation_rdf triple store (in memory) RDF SearchWorks: Read and Display •  Easy Access to Relevant Info from jsonld •  Rapid Development •  Modular •  Maintainable Triannon Solr jsonld as RDF::Graph Search for annos
  • 30. LDP API Fedora 4Solr CRUD Search / Read CRUDCUD Client Application Client Application Client Application Triannon
  • 31. STANFORD UNIVERSITY LIBRARIES Thank You! February 11th, 2015 azaroth@stanford.edu ndushay@stanford.edu