22
NBN:URN Generator and NBN:URN Generator and Resolver Resolver ERPANET Workshop on Persistent ERPANET Workshop on Persistent Identifiers Identifiers Cork, 17-18 June, 2004. Cork, 17-18 June, 2004. Ádám Horváth Ádám Horváth National Széchényi Library National Széchényi Library Hungary Hungary

NBN:URN Generator and Resolver

Embed Size (px)

Citation preview

NBN:URN Generator and NBN:URN Generator and ResolverResolver

ERPANET Workshop on Persistent ERPANET Workshop on Persistent IdentifiersIdentifiers

Cork, 17-18 June, 2004.Cork, 17-18 June, 2004.

Ádám HorváthÁdám Horváth

National Széchényi LibraryNational Széchényi Library

HungaryHungary

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

ContentsContents

PreparationPreparation

ProtocolProtocol

Design principlesDesign principles

NBN:URN generationNBN:URN generation

NBN:URN resolutionNBN:URN resolution

The web interfaceThe web interface

Technical backgroundTechnical background

Intended usersIntended users

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

PreparationPreparation

Looked for persistent identifierLooked for persistent identifier– URN was chosenURN was chosen

Studied the relevant standardsStudied the relevant standards

http://http://wwwwww..uriuri..netnet//Studied the existing implementationsStudied the existing implementations– FinnishFinnish– NorwegianNorwegian– GermanGerman

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

ProtocolProtocol

THTTP protocol (RFC 2169)THTTP protocol (RFC 2169) Implemented featuresImplemented features– N2LN2L– N2LSN2LS– L2NL2N

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

Design principlesDesign principles

SimplicitySimplicity– User friendly generationUser friendly generation– Administration freeAdministration free

ReliabilityReliability– The uniqueness of URN is guaranteedThe uniqueness of URN is guaranteed– Only the owner of the document can Only the owner of the document can

request a URNrequest a URN

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

The owner of the documentThe owner of the document

Who is the owner?Who is the owner?– Who has the right to write into the Who has the right to write into the

documentdocumentAdvantagesAdvantages– SimpleSimple– Can be automatedCan be automated– There is no problem with passwordsThere is no problem with passwords

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

Requesting URN - Step 1 Requesting URN - Step 1

HTTP requestHTTP request– http://nbn.oszk.hu/GetNBN?url=http://solanum.oszk.hu/proba.html

The server checksThe server checks– Does the document exist?Does the document exist?– Is it an HTML document?Is it an HTML document?– Is there already a URN for this document?Is there already a URN for this document?– Has anyone placed a transaction for it?Has anyone placed a transaction for it?

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

AnswerAnswer– The server places the requestThe server places the request– OK:0:urn:nbn:hu-3006tid:3291d4fcf5b5fce1d0

– Error:-9: Error message

Requesting URN - Step 1 (cont’d) Requesting URN - Step 1 (cont’d)

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

Writing the URN into the document Writing the URN into the document – It is the requester’s taskIt is the requester’s task– <head>

...<meta name="dc.identifier”

scheme="urn”content="urn:nbn:hu-3006">...

</head>

Requesting URN - Step 2Requesting URN - Step 2

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

Finalizing the requestFinalizing the request– http://nbn.oszk.hu/GetNBN?url=http://solanum.oszk.hu/proba.html&urn=urn:nbn:hu-3006&tid=3291d4fcf5b5fce1d0

Requesting URN - Step 3Requesting URN - Step 3

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

The server checksThe server checks– Has the request already been placedHas the request already been placed– Does the document existDoes the document exist– Is it an HTML documentIs it an HTML document– Does it contain the URNDoes it contain the URN

AnswerAnswer– OKOK– Error messageError message

Requesting URN - Step 3 (cont’d)Requesting URN - Step 3 (cont’d)

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

N2L (URN to URL)N2L (URN to URL)– HTTP requestHTTP request

• http://nbn.oszk.hu/N2L?urn:nbn:hu-3006

– HTTP coded answerHTTP coded answer• 303 (SEE OTHER): redirects to the appropriate URL.

• 404 (NOT FOUND): if the URN does not exist

Resolving URNResolving URN

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

L2N (URL to URN)L2N (URL to URN)– HTTP requestHTTP request

• http://nbn.oszk.hu/L2N?http://solanum.oszk.hu/proba.html

– HTTP coded answerHTTP coded answer• Text (eg. urn:nbn:hu-3006).

• 404 ( FOUND): if it does not exist.

Resolving URN (cont’d)Resolving URN (cont’d)

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

N2Ls (URN to URLs)N2Ls (URN to URLs)– HTTP requestHTTP request

• http://nbn.oszk.hu/N2Ls? urn:nbn:hu-3006

– HTTP coded answerHTTP coded answer• HTML page with a list of URLs

• text/uri-list MIME type (if explicitly requested).

• 404 ( FOUND): if it does not exist.

Resolving URN (cont’d)Resolving URN (cont’d)

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

Changing the URN - URL assignmentChanging the URN - URL assignment– This is also a three step processThis is also a three step process• The document must exist in both the old and the The document must exist in both the old and the

new URLnew URL

Deleting the URN - URL assignmentDeleting the URN - URL assignment– This is also a three step processThis is also a three step process• The document itself can only be deleted after the The document itself can only be deleted after the

deletion of the URN - URL assignmentdeletion of the URN - URL assignment

Other functionsOther functions

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

Request and modification for dynamic Request and modification for dynamic pagespages– http://nbn.oszk.hu/GetNBN?url=http://solanum.oszk.hu/proba.html&nocheck=1

ServerServer– Does not check the existence of the Does not check the existence of the

documentdocument

Other functions (cont’d)Other functions (cont’d)

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

Bulk generation of URN’s is also Bulk generation of URN’s is also possiblepossible– Sample scripts written in Python are Sample scripts written in Python are

provided for the usersprovided for the users

Other functions (cont’d)Other functions (cont’d)

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

The functions can be invoked from a The functions can be invoked from a web interfaceweb interface– Test request is also possibleTest request is also possible– The interface is bilingual: Hungarian and The interface is bilingual: Hungarian and

EnglishEnglishThe web interface also contains The web interface also contains

background material: user guide, the background material: user guide, the source of the application, sample script source of the application, sample script etc.etc.

Web interfaceWeb interface

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

PHP for the interfacePHP for the interfaceJava servlets for the functionsJava servlets for the functionsPostgreSql is the databasePostgreSql is the database It is an open source applicationIt is an open source application

Technical backgroundTechnical background

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

HungariansHungarians– How can we ensure thisHow can we ensure this• Only the Hungarian interface works on the Only the Hungarian interface works on the

production databaseproduction database• The English interface works on the development The English interface works on the development

database. The purpose of the English interface is database. The purpose of the English interface is to make our results more widely available.to make our results more widely available.

Intended usersIntended users

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

Copies of the same object should have the Copies of the same object should have the same URNsame URN

Different versions of the same object, e.g. Different versions of the same object, e.g. in MS Word and HTML shall have different in MS Word and HTML shall have different URNs.URNs.

If an object is changed, a new URN only If an object is changed, a new URN only needs to be assigned if the intellectual needs to be assigned if the intellectual content of the object changes. Editorial content of the object changes. Editorial changes (e.g. changes to fonts etc.) do changes (e.g. changes to fonts etc.) do not necessitate a change of URN.not necessitate a change of URN.

Guidelines for the requestGuidelines for the request

NBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám HorváthNBN:URN Generator and Resolver - ERPANET Workshop, Cork - Ádám Horváth

[email protected]@oszk.hu

Thank you for your attentionThank you for your attention