Introduction to Persistent Identifiers Summary Definition of persistent identifiers Which objects – physical / digital Proliferation of identifiers What do identifiers allow us to do The challenge of real persistence Social contracts Present, real examples Course on persistent identifiers, Madrid (Spain) Revolution and Web Services Kevin Richards Software Developer Landcare Research February 8th, 2012
Introduction This presentation explains some standard web service protocols used when resolving persistent identifiers This session is presented by Kevin Richards, Software Developer, at Land Research in New Zealand.
Summary Resolution and Web Services HTTP resolution SOAP, WSDL, REST LSID resolution Linked Data and redirects
Actionability (associated services) A desired property of Persistent Identifiers Resolve Get metadata Get data Other functions (eg generate ID)
HTTP Resolution Basic URI IDs E.g. http://data.examplecollection.org/specimen/12921 Real example: http://data.landcareresearch.co.nz/image/66Y Uses well known, very stable HTTP protocol HTTP GET Headers eg content-type Used by URI and PURL identifiers Firebug/hurl.it demo here
SOAP, WSDL Simple Object Access Protocol XML based Enables functional calls over HTTP, RPC (Remote Procedure Calls), analagous to HTTP verbs (eg GET) Uses WSDL, Web Service Description Language, to describe functions and object types Used by LSID resolution
SOAP example <definitions xmlns:tns=http://www.omg.org/LSID/2003/DataServiceHTTPBindings> <binding name="LSIDMetadataHTTPBinding" type="sns:LSIDMetadataServicePortType"> <http:binding verb="GET" /> <operation name="getMetadata"> <http:operation location="" /> <input> <http:urlEncoded/> </input> <output> <mime:multipartRelated> <mime:part> <mime:content part="metadata-attachment" type="application/octet-stream" /> </mime:part> </mime:multipartRelated> </output> </operation> </binding> </definitions>
REST Representational State Transfer Uses built in HTTP functionality for simplicity GET POST DELETE PUT Encouraged by Linked Data community for linked data URIs and functionality c.f. SOAP – SOAP always uses GET and hides detail in the XML
LSID Resolution E.g. urn:lsid:indexfungorum.org:names:213645 3 step process DNS lookup of LSID authority, SRV record (service record) Get LSID functions available for the LSID Retrieve the data, or metadata, for the LSID lsid.indexfungorum.org:80 Authority WSDL file describing HTTP resolution endpoint http://lsid.indexfungorum.org/authority/?lsid=urn:lsid:indexfungorum.org:names:213645 http://lsid.indexfungorum.org/authority/metadata/?lsid=urn:lsid:indexfungorum.org:names:213645 Show ipni example 12345-1
Linked Data and Redirects Linked data theory is that the URI is the ID for the physical object, so a redirect is done to obtain the data/metadata 303 redirect E.g. http://www.example.org/specimen/10fc9784-b30f-48ed-8db5-ff65a2a9934e redirects (HTTP 303 response) to http://www.example.org/specimen/10fc9784-b30f-48ed-8db5-ff65a2a9934e.rdf Show vapor example again, show diagram of specimen, what is on the specimen, different components, all possibly need different ids
Rewrites A common way to redirect from the identifer to the location of the resource Most web servers support it Apache mod rewrite IIS rewrites
Summary/conclusions Actionability of Persistent Identifiers Basic HTTP resolution SOAP, WSDL to implement RPC functionality for identifiers REST for basic HTTP based functionality LSID resolution 3 step process, DNS lookup, authority WSDL request, get data/metadata Linked Data HTTP 303 redirect to data / metadata for the physical object
Introduction to Persistent Identifiers Summary Definition of persistent identifiers Which objects – physical / digital Proliferation of identifiers What do identifiers allow us to do The challenge of real persistence Social contracts Present, real examples Course on persistent identifiers, Madrid (Spain) Revolution and Web Services Kevin Richards Software Developer Landcare Research February 8th, 2012