SlideShare une entreprise Scribd logo
1  sur  50
SWORD 2.0 Supporting Full Deposit Lifecycles Richard Jones Cottage Labs richard@cottagelabs.com  http://cottagelabs.com
SWORD is a: Simple Web service Offering Repository Deposit What is SWORD? During the development of SWORD it was decided to keep the protocol as simple and lightweight  as possible.
SWORD is a: Simple Web service Offering Repository Deposit What is SWORD? A software interface that is accessible using http
SWORD is a: Simple Web service Offering Repository Deposit What is SWORD?
SWORD is a: Simple Web service Offering Repository Deposit What is SWORD? Agnostic: DSpace EPrints Fedora Intralibrary Zentity ???
SWORD is a: Simple Web service Offering Repository Deposit What is SWORD? Putting things INTO a repository
The purpose of SWORD is to: Provide an  interoperable   interface  that allows  deposits  to be  easily  made  into repositories . What is the purpose of SWORD?
Out of scope: Packaging Metadata Authentication Authorization The SWORD project
Deposit from a desktop client SWORD use cases e.g. DepositMO
Deposit to multiple repositories SWORD use cases e.g. OA-RJ Institutional repository Funder repository Subject-based repository
Deposit by lab equipment SWORD use cases
Repository to repository deposit SWORD use cases Institutional repository National repository
Publishing system / publisher to repository deposit SWORD use cases e.g. OJS client Bibapp client Publishing system (e.g. OJS) Long term storage repository
Research Information System to repository deposit SWORD use cases e.g. Bibapp client RePosit project Research Information System Long term storage repository
How does SWORD work?
There are different methods / verbs that we use when interacting with the web: GET ,[object Object],POST ,[object Object],PUT ,[object Object],DELETE ,[object Object],HTTP basics
SWORD is a  profile  of an existing standard Atom Publishing Protocol (AtomPub) AtomPub is for publishing content to the web AtomPub is designed to be extended AtomPub is used by other systems: GData (used by Google Docs etc), CMIS SWORD foundations
SWORD is a  profile  of an existing standard Atom Publishing Protocol (AtomPub) What does this mean? SWORD isn’t re-inventing the wheel AtomPub clients / APIs can be re-used SWORD foundations
[object Object]
Use that information to prepare and make a deposit Two step process
Ask the repository’s SWORD interface to describe itself This is done using a  Service Document A service document describes the contract between a user and a repository: what you must provide and what the repository will do in return Introducing: The Service Document
Request a service document from the repository HTTP GET  a service document ,[object Object]
Tells you what formats are supported for deposit
Tells you what will happen to your content How to request a Service Document
We have  retrieved  the Service Document We know  where  we can deposit We know  what   we can deposit We know  what will happen  to our deposit We have  created  a deposit package We perform the deposit… The second step
To perform a deposit: HTTP POST  a file to the deposit URL ,[object Object]
Content-Type: application/zip
Content-Disposition: filename=MyItem.zip
Packaging: http://purl.org/net/sword/packages/default  Performing a deposit
<entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content  type=&quot;application/zip&quot;   src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry>  Introducing: The Deposit Receipt
Is there anything else we can do? YES! Where SWORD 1.3 leaves off SWORD 2.0 begins… The deposit lifecycle is more complicated that fire-and-forget...
<entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content  type=&quot;application/zip&quot;   src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry>  Get a package of the item's entire content in our favourite format
<entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content  type=&quot;application/zip&quot;   src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry>  Add more content to the item by POSTing more files
<entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content  type=&quot;application/zip&quot;   src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry>  PUT new content over the old, or DELETE all the content
<entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content  type=&quot;application/zip&quot;   src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot;  href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry>  Ask the repository to describe the item, and the state it is in
You Deposit your money You get a Receipt Your Statement tells you what happened to your money since A Banking Analogy
Introducing: The SWORD Statement It tells you what files were produced when the repository unpackaged your deposit It tells you what new files have been added to your deposit (e.g. via format migration, mediated deposit, etc) It tells you where to get the package(s) you originally uploaded It tells you where in the workflow your item is (or any other state that it might be in).  For example, “under review” or “deleted”
<rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:ore=&quot;http://www.openarchives.org/ore/terms/&quot;> <rdf:Description rdf:about=&quot;http://localhost/edit-uri/43/d0&quot;> <ore:describes rdf:resource=&quot;http://localhost/agg-uri/43/d0&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/agg-uri/43/d0&quot;> <ore:isDescribedBy rdf:resource=&quot;http://localhost/edit-uri/43/d0&quot;/> <ore:aggregates rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:originalDeposit rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:state rdf:resource=&quot;http://purl.org/net/sword/state/archived&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/part-uri/43/d0/example.zip&quot;> <sword:packaging rdf:resource=&quot;http://purl.org/net/sword/package/default&quot;/> <sword:depositedOn>2011-02-24T19:50:04Z</sword:depositedOn> <sword:depositedBy>sword</sword:depositedBy> </rdf:Description> <rdf:Description rdf:about=&quot;http://purl.org/net/sword/state/archived&quot;> <sword:stateDescription> The work has passed through review and is now in the archive </sword:stateDescription> </rdf:Description> </rdf:RDF> Can be an OAI-ORE Resource Map
<rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:ore=&quot;http://www.openarchives.org/ore/terms/&quot;> <rdf:Description rdf:about=&quot;http://localhost/edit-uri/43/d0&quot;> <ore:describes rdf:resource=&quot;http://localhost/agg-uri/43/d0&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/agg-uri/43/d0&quot;> <ore:isDescribedBy rdf:resource=&quot;http://localhost/edit-uri/43/d0&quot;/> <ore:aggregates rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:originalDeposit rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:state rdf:resource=&quot;http://purl.org/net/sword/state/archived&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/part-uri/43/d0/example.zip&quot;> <sword:packaging rdf:resource=&quot;http://purl.org/net/sword/package/default&quot;/> <sword:depositedOn>2011-02-24T19:50:04Z</sword:depositedOn> <sword:depositedBy>sword</sword:depositedBy> </rdf:Description> <rdf:Description rdf:about=&quot;http://purl.org/net/sword/state/archived&quot;> <sword:stateDescription> The work has passed through review and is now in the archive </sword:stateDescription> </rdf:Description> </rdf:RDF> Tells me where to get my original package
<rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;  xmlns:ore=&quot;http://www.openarchives.org/ore/terms/&quot;> <rdf:Description rdf:about=&quot;http://localhost/edit-uri/43/d0&quot;> <ore:describes rdf:resource=&quot;http://localhost/agg-uri/43/d0&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/agg-uri/43/d0&quot;> <ore:isDescribedBy rdf:resource=&quot;http://localhost/edit-uri/43/d0&quot;/> <ore:aggregates rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:originalDeposit rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:state rdf:resource=&quot;http://purl.org/net/sword/state/archived&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/part-uri/43/d0/example.zip&quot;> <sword:packaging rdf:resource=&quot;http://purl.org/net/sword/package/default&quot;/> <sword:depositedOn>2011-02-24T19:50:04Z</sword:depositedOn> <sword:depositedBy>sword</sword:depositedBy> </rdf:Description> <rdf:Description rdf:about=&quot;http://purl.org/net/sword/state/archived&quot;> <sword:stateDescription> The work has passed through review and is now in the archive </sword:stateDescription> </rdf:Description> </rdf:RDF> Tells me what state my item is in
Interaction with SWORD is via XML documents XML is good for machine to machine interfaces Do users want to read / write XML? User friendly?
User friendly?
SWORD clients The answer?
Using the web: Do we read and write HTML? No! We use a web browser. An analogy
Three types of SWORD client: ,[object Object],SWORD clients
Online demo client
Desktop demo client
The Facebook SWORD deposit tool http://apps.facebook.com/swordapp/ Another example
Facebook client
Facebook client

Contenu connexe

Tendances

Interoperability Fundamentals: SWORD 2
Interoperability Fundamentals: SWORD 2Interoperability Fundamentals: SWORD 2
Interoperability Fundamentals: SWORD 2Adrian Stevenson
 
Linux Administration Tutorial | Configuring A DNS Server In 10 Simple Steps |...
Linux Administration Tutorial | Configuring A DNS Server In 10 Simple Steps |...Linux Administration Tutorial | Configuring A DNS Server In 10 Simple Steps |...
Linux Administration Tutorial | Configuring A DNS Server In 10 Simple Steps |...Edureka!
 
Securing Apache Web Servers
Securing Apache Web ServersSecuring Apache Web Servers
Securing Apache Web Serverswebhostingguy
 
HTTP/3 is next generation HTTP
HTTP/3 is next generation HTTPHTTP/3 is next generation HTTP
HTTP/3 is next generation HTTPDaniel Stenberg
 
Minerva: Drill Storage Plugin for IPFS
Minerva: Drill Storage Plugin for IPFSMinerva: Drill Storage Plugin for IPFS
Minerva: Drill Storage Plugin for IPFSBowenDing4
 
Adobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAdobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAndrew Khoury
 
How to build Debian packages
How to build Debian packages How to build Debian packages
How to build Debian packages Priyank Kapadia
 
Oracle Database on Docker
Oracle Database on DockerOracle Database on Docker
Oracle Database on DockerFranck Pachot
 

Tendances (18)

SWORD: An Overview
SWORD: An OverviewSWORD: An Overview
SWORD: An Overview
 
Interoperability Fundamentals: SWORD 2
Interoperability Fundamentals: SWORD 2Interoperability Fundamentals: SWORD 2
Interoperability Fundamentals: SWORD 2
 
Linux Administration Tutorial | Configuring A DNS Server In 10 Simple Steps |...
Linux Administration Tutorial | Configuring A DNS Server In 10 Simple Steps |...Linux Administration Tutorial | Configuring A DNS Server In 10 Simple Steps |...
Linux Administration Tutorial | Configuring A DNS Server In 10 Simple Steps |...
 
Securing Apache Web Servers
Securing Apache Web ServersSecuring Apache Web Servers
Securing Apache Web Servers
 
HTTP/3 for everyone
HTTP/3 for everyoneHTTP/3 for everyone
HTTP/3 for everyone
 
curl better
curl bettercurl better
curl better
 
curl roadmap 2020
curl roadmap 2020curl roadmap 2020
curl roadmap 2020
 
REST in AEM
REST in AEMREST in AEM
REST in AEM
 
Apache Web Server Setup 4
Apache Web Server Setup 4Apache Web Server Setup 4
Apache Web Server Setup 4
 
Apache Web Server Setup 1
Apache Web Server Setup 1Apache Web Server Setup 1
Apache Web Server Setup 1
 
HTTP/3 is next generation HTTP
HTTP/3 is next generation HTTPHTTP/3 is next generation HTTP
HTTP/3 is next generation HTTP
 
ZN27112015
ZN27112015ZN27112015
ZN27112015
 
Fluentd and WebHDFS
Fluentd and WebHDFSFluentd and WebHDFS
Fluentd and WebHDFS
 
Minerva: Drill Storage Plugin for IPFS
Minerva: Drill Storage Plugin for IPFSMinerva: Drill Storage Plugin for IPFS
Minerva: Drill Storage Plugin for IPFS
 
Adobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAdobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office Hours
 
How to build Debian packages
How to build Debian packages How to build Debian packages
How to build Debian packages
 
Caching
CachingCaching
Caching
 
Oracle Database on Docker
Oracle Database on DockerOracle Database on Docker
Oracle Database on Docker
 

Similaire à Sword v2 at UKCoRR

Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis PlatformLeigh Dodds
 
Making sense of users' Web activities
Making sense of users' Web activitiesMaking sense of users' Web activities
Making sense of users' Web activitiesMathieu d'Aquin
 
Making Repository Easier With SWORD
Making Repository Easier With SWORDMaking Repository Easier With SWORD
Making Repository Easier With SWORDAdrian Stevenson
 
Sword Or2008 Julieallinson
Sword Or2008 JulieallinsonSword Or2008 Julieallinson
Sword Or2008 JulieallinsonJulie Allinson
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)Paul James
 
REST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in MainzREST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in MainzAlessandro Nadalin
 
Adriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI TalkAdriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI Talkaldur999
 
GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009marpierc
 
Catacomb Apachecon Fast Feather 2008
Catacomb Apachecon Fast Feather 2008Catacomb Apachecon Fast Feather 2008
Catacomb Apachecon Fast Feather 2008Markus Litz
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API07.pallav
 
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...Crossref
 

Similaire à Sword v2 at UKCoRR (20)

Introduction to SDshare
Introduction to SDshareIntroduction to SDshare
Introduction to SDshare
 
Sword Crig 2007 12 06
Sword Crig 2007 12 06Sword Crig 2007 12 06
Sword Crig 2007 12 06
 
Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis Platform
 
RESTful design
RESTful designRESTful design
RESTful design
 
Making sense of users' Web activities
Making sense of users' Web activitiesMaking sense of users' Web activities
Making sense of users' Web activities
 
Cocoon OSGi CocoonGT2007
Cocoon OSGi CocoonGT2007Cocoon OSGi CocoonGT2007
Cocoon OSGi CocoonGT2007
 
Making Repository Easier With SWORD
Making Repository Easier With SWORDMaking Repository Easier With SWORD
Making Repository Easier With SWORD
 
Sword Bl 0903[1]
Sword Bl 0903[1]Sword Bl 0903[1]
Sword Bl 0903[1]
 
Sword Or2008 Julieallinson
Sword Or2008 JulieallinsonSword Or2008 Julieallinson
Sword Or2008 Julieallinson
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)
 
REST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in MainzREST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in Mainz
 
Web services - REST and SOAP
Web services - REST and SOAPWeb services - REST and SOAP
Web services - REST and SOAP
 
Adriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI TalkAdriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI Talk
 
GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009
 
Catacomb Apachecon Fast Feather 2008
Catacomb Apachecon Fast Feather 2008Catacomb Apachecon Fast Feather 2008
Catacomb Apachecon Fast Feather 2008
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
 
WWW and HTTP
WWW and HTTPWWW and HTTP
WWW and HTTP
 
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
 
Web Scraping with PHP
Web Scraping with PHPWeb Scraping with PHP
Web Scraping with PHP
 
RESTFul IDEAS
RESTFul IDEASRESTFul IDEAS
RESTFul IDEAS
 

Dernier

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Dernier (20)

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

Sword v2 at UKCoRR

  • 1. SWORD 2.0 Supporting Full Deposit Lifecycles Richard Jones Cottage Labs richard@cottagelabs.com http://cottagelabs.com
  • 2. SWORD is a: Simple Web service Offering Repository Deposit What is SWORD? During the development of SWORD it was decided to keep the protocol as simple and lightweight as possible.
  • 3. SWORD is a: Simple Web service Offering Repository Deposit What is SWORD? A software interface that is accessible using http
  • 4. SWORD is a: Simple Web service Offering Repository Deposit What is SWORD?
  • 5. SWORD is a: Simple Web service Offering Repository Deposit What is SWORD? Agnostic: DSpace EPrints Fedora Intralibrary Zentity ???
  • 6. SWORD is a: Simple Web service Offering Repository Deposit What is SWORD? Putting things INTO a repository
  • 7. The purpose of SWORD is to: Provide an interoperable interface that allows deposits to be easily made into repositories . What is the purpose of SWORD?
  • 8. Out of scope: Packaging Metadata Authentication Authorization The SWORD project
  • 9. Deposit from a desktop client SWORD use cases e.g. DepositMO
  • 10. Deposit to multiple repositories SWORD use cases e.g. OA-RJ Institutional repository Funder repository Subject-based repository
  • 11. Deposit by lab equipment SWORD use cases
  • 12. Repository to repository deposit SWORD use cases Institutional repository National repository
  • 13. Publishing system / publisher to repository deposit SWORD use cases e.g. OJS client Bibapp client Publishing system (e.g. OJS) Long term storage repository
  • 14. Research Information System to repository deposit SWORD use cases e.g. Bibapp client RePosit project Research Information System Long term storage repository
  • 15. How does SWORD work?
  • 16.
  • 17. SWORD is a profile of an existing standard Atom Publishing Protocol (AtomPub) AtomPub is for publishing content to the web AtomPub is designed to be extended AtomPub is used by other systems: GData (used by Google Docs etc), CMIS SWORD foundations
  • 18. SWORD is a profile of an existing standard Atom Publishing Protocol (AtomPub) What does this mean? SWORD isn’t re-inventing the wheel AtomPub clients / APIs can be re-used SWORD foundations
  • 19.
  • 20. Use that information to prepare and make a deposit Two step process
  • 21. Ask the repository’s SWORD interface to describe itself This is done using a Service Document A service document describes the contract between a user and a repository: what you must provide and what the repository will do in return Introducing: The Service Document
  • 22.
  • 23. Tells you what formats are supported for deposit
  • 24. Tells you what will happen to your content How to request a Service Document
  • 25. We have retrieved the Service Document We know where we can deposit We know what we can deposit We know what will happen to our deposit We have created a deposit package We perform the deposit… The second step
  • 26.
  • 30. <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content type=&quot;application/zip&quot; src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry> Introducing: The Deposit Receipt
  • 31. Is there anything else we can do? YES! Where SWORD 1.3 leaves off SWORD 2.0 begins… The deposit lifecycle is more complicated that fire-and-forget...
  • 32. <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content type=&quot;application/zip&quot; src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry> Get a package of the item's entire content in our favourite format
  • 33. <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content type=&quot;application/zip&quot; src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry> Add more content to the item by POSTing more files
  • 34. <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content type=&quot;application/zip&quot; src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry> PUT new content over the old, or DELETE all the content
  • 35. <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot; xmlns:sword=http://purl.org/net/sword/> <title>My Deposit</title> <id>info:something:1</id> <updated>2008-08-18T14:27:08Z</updated> <summary type=&quot;text&quot;>A summary</summary> <generator uri=&quot;http://myrepository.ac.uk/engine&quot; version=&quot;1.0&quot;/> <content type=&quot;application/zip&quot; src=&quot;http://myrepository.ac.uk/geography-collection/deposit1.zip&quot;/> <sword:packaging>http://purl.org/net/sword/package/default</sword:packaging> <link rel=&quot;edit&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.atom&quot; /> <link rel=&quot;edit-media&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit&quot; /> <link rel=&quot;http://purl.net/sword/terms/statement&quot; href=&quot;http://www.myrepository.ac.uk/geography-collection/my_deposit.rdf&quot; /> </entry> Ask the repository to describe the item, and the state it is in
  • 36. You Deposit your money You get a Receipt Your Statement tells you what happened to your money since A Banking Analogy
  • 37. Introducing: The SWORD Statement It tells you what files were produced when the repository unpackaged your deposit It tells you what new files have been added to your deposit (e.g. via format migration, mediated deposit, etc) It tells you where to get the package(s) you originally uploaded It tells you where in the workflow your item is (or any other state that it might be in). For example, “under review” or “deleted”
  • 38. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:ore=&quot;http://www.openarchives.org/ore/terms/&quot;> <rdf:Description rdf:about=&quot;http://localhost/edit-uri/43/d0&quot;> <ore:describes rdf:resource=&quot;http://localhost/agg-uri/43/d0&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/agg-uri/43/d0&quot;> <ore:isDescribedBy rdf:resource=&quot;http://localhost/edit-uri/43/d0&quot;/> <ore:aggregates rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:originalDeposit rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:state rdf:resource=&quot;http://purl.org/net/sword/state/archived&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/part-uri/43/d0/example.zip&quot;> <sword:packaging rdf:resource=&quot;http://purl.org/net/sword/package/default&quot;/> <sword:depositedOn>2011-02-24T19:50:04Z</sword:depositedOn> <sword:depositedBy>sword</sword:depositedBy> </rdf:Description> <rdf:Description rdf:about=&quot;http://purl.org/net/sword/state/archived&quot;> <sword:stateDescription> The work has passed through review and is now in the archive </sword:stateDescription> </rdf:Description> </rdf:RDF> Can be an OAI-ORE Resource Map
  • 39. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:ore=&quot;http://www.openarchives.org/ore/terms/&quot;> <rdf:Description rdf:about=&quot;http://localhost/edit-uri/43/d0&quot;> <ore:describes rdf:resource=&quot;http://localhost/agg-uri/43/d0&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/agg-uri/43/d0&quot;> <ore:isDescribedBy rdf:resource=&quot;http://localhost/edit-uri/43/d0&quot;/> <ore:aggregates rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:originalDeposit rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:state rdf:resource=&quot;http://purl.org/net/sword/state/archived&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/part-uri/43/d0/example.zip&quot;> <sword:packaging rdf:resource=&quot;http://purl.org/net/sword/package/default&quot;/> <sword:depositedOn>2011-02-24T19:50:04Z</sword:depositedOn> <sword:depositedBy>sword</sword:depositedBy> </rdf:Description> <rdf:Description rdf:about=&quot;http://purl.org/net/sword/state/archived&quot;> <sword:stateDescription> The work has passed through review and is now in the archive </sword:stateDescription> </rdf:Description> </rdf:RDF> Tells me where to get my original package
  • 40. <rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:ore=&quot;http://www.openarchives.org/ore/terms/&quot;> <rdf:Description rdf:about=&quot;http://localhost/edit-uri/43/d0&quot;> <ore:describes rdf:resource=&quot;http://localhost/agg-uri/43/d0&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/agg-uri/43/d0&quot;> <ore:isDescribedBy rdf:resource=&quot;http://localhost/edit-uri/43/d0&quot;/> <ore:aggregates rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:originalDeposit rdf:resource=&quot;http://localhost/part-uri/43/d0/example.zip&quot;/> <sword:state rdf:resource=&quot;http://purl.org/net/sword/state/archived&quot;/> </rdf:Description> <rdf:Description rdf:about=&quot;http://localhost/part-uri/43/d0/example.zip&quot;> <sword:packaging rdf:resource=&quot;http://purl.org/net/sword/package/default&quot;/> <sword:depositedOn>2011-02-24T19:50:04Z</sword:depositedOn> <sword:depositedBy>sword</sword:depositedBy> </rdf:Description> <rdf:Description rdf:about=&quot;http://purl.org/net/sword/state/archived&quot;> <sword:stateDescription> The work has passed through review and is now in the archive </sword:stateDescription> </rdf:Description> </rdf:RDF> Tells me what state my item is in
  • 41. Interaction with SWORD is via XML documents XML is good for machine to machine interfaces Do users want to read / write XML? User friendly?
  • 43. SWORD clients The answer?
  • 44. Using the web: Do we read and write HTML? No! We use a web browser. An analogy
  • 45.
  • 48. The Facebook SWORD deposit tool http://apps.facebook.com/swordapp/ Another example
  • 51. Facebook client The application performs the packaging (metadata + file)
  • 53.
  • 54. SWORD 2.0 Clients/Servers Clients PHP (+ Facebook) Java Python Ruby (+ Bibapp) Servers DSpace EPrints Fedora
  • 55. SWORD 2.0 Timeline November – February Consultation and development of a draft profile and internet drafts March – May Client and Server Development
  • 56. Original slides by Stuart Lewis stuart@swordapp.org Additional SWORD 2.0 material by Richard Jones richard@cottagelabs.com The SWORD project http://swordapp.org/ Funded by JISC http://www.jisc.ac.uk/ Licence Creative commons Credits