CrossRef Annual Member Meeting Implementation Workshop September 26, 2002
CrossRef Annual Member Meeting Implementation Workshop Agenda 9:00 - 9:05 Introduction - Chuck Koscher 9: :00 Implementation Practices at American Physical Society Mark Doyle, APS 10:00 -10:45 The Implementation of the new CrossRef System Georgios Papadopoulos, CEO Atypon 10: :00 Coffee Break 11: :45 The New CrossRef XML Schema Bruce D. Rosenblum, Inera Inc. 11: :00 Member Access Pages - Chuck Koscher 12: :15 Guidelines and Coding Examples - Chuck Koscher 12:15 - ? Open Discussion
CrossRef Annual Member Meeting Implementation Workshop System Site - Member Pages
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop
CrossRef Annual Member Meeting Implementation Workshop Guidelines OpenURL query problems and deposits, there is no DOI: in a DOI value Deposits 2 or more deposits can be running simultaneously, A temp file is created using the HTTP fname parameter … prevents two files with the same name from being deposited at the same time Queries Try to avoid many requests with only one query (group in 10+) Upload very large (1000+) queries using asynchronous query interface OpenURL Query Format DON’T : id=doi: /(ASCE) (2002)15:4(125) Reduce dependence on mddb.xml pre-filtering, submit more queries DO : id= /(ASCE) (2002)15:4(125) XSD, operation=doXSDMDUpload : DTD, operation=doMDUpload
CrossRef Annual Member Meeting Implementation Workshop Programming - Perl #!/usr/bin/perl -w use strict; use LWP::UserAgent; use URI::Escape; require my $h = $h->header('Content-Type' => 'application/x-www-form-urlencoded'); my $user=“XXXX"; my $pass=“yyyyy"; my $query=" |||50|16|4713|||1| …. my $verysafe = uri_escape($query, "| \n"); Query as an HTTP POST
CrossRef Annual Member Meeting Implementation Workshop my $user_agent = new LWP::UserAgent; $user_agent->agent(“Your agent name".$user_agent->agent); $user_agent->timeout(360); my $req = new 'POST', ' /query/xref.cgi', $h; $req->content("usr=$user&pwd=$pass&db=mddb&qdata=$query"); # Send query to the server my $response; $response = $user_agent->request($req); Query as an HTTP POST cont. Programming - Perl
CrossRef Annual Member Meeting Implementation Workshop Programming - Java import HTTPClient.*; import java.net.*; … public class doDeposits { HTTPClient.NVPair[] uploadOpts = new HTTPClient.NVPair[2]; HTTPClient.NVPair[] uploadFileOpts = new HTTPClient.NVPair[1]; uploadOpts[0] = new HTTPClient.NVPair ("operation","doMDUpload"); uploadOpts[1] = new HTTPClient.NVPair ("area","live"); uploadFileOpts[0] = new HTTPClient.NVPair ("fname",XMLFile); HTTPClient.NVPair[] ct_hdr = new HTTPClient.NVPair[1]; byte[] uploadBytes; Deposit as an HTTP POST
CrossRef Annual Member Meeting Implementation Workshop Down load sample code from our site HTTPClient.HTTPConnection httpConn = new HTTPClient.HTTPConnection (host,port); uploadBytes = HTTPClient.Codecs.mpFormDataEncode (uploadOpts,uploadFileOpts,ct_hdr); HTTPClient.CookieModule.setCookiePolicyHandler(null); HTTPClient.HTTPResponse httpResp = null; httpResp = httpConn.Post ("/servlet/deposit?login_id=" + username + "&login_passwd=" + password,uploadBytes,ct_hdr); …. Programming - Java Requires HTTPClient.jar Deposit as an HTTP POST cont
CrossRef Annual Member Meeting Implementation Workshop Programming - VB Set WinHttpReq = New WinHttpRequest (need winhttp50sdk.exe) WinHttpReq.SetTimeouts 0, 60000, 60000, WinHttpReq.Open "GET", _ " + username.Text + _ "&pwd=" + password.Text + "&area=" + area + "&fuzzy=true&type=" + _ “operation + "&qdata=" + qData”, False WinHttpReq.Send results = WinHttpReq.ResponseText Query as an HTTP GET
CrossRef Annual Member Meeting Implementation Workshop Programming - VB Set WinHttpReq = New WinHttpRequest (need winhttp50sdk.exe) WinHttpReq.SetTimeouts 0, 60000, 60000, WinHttpReq.Open "POST", " False WinHttpReq.SetRequestHeader "Pragma", "no-cache" WinHttpReq.SetRequestHeader "Content-Type", "multipart/form-data; boundary= d " formData = formData + " d " + vbCrLf formData = formData + "Content-Disposition: form-data; name=" + Chr(34) + "login_id" + Chr(34) + vbCrLf formData = formData + vbCrLf formData = formData + username.Text + vbCrLf WinHttpReq.Send formData HTML.DocumentHTML = WinHttpReq.ResponseText Deposit as an HTTP POST
CrossRef Annual Member Meeting Implementation Workshop CrossRef Client Application
CrossRef Annual Member Meeting Implementation Workshop CrossRef Client Application
CrossRef Annual Member Meeting Implementation Workshop CrossRef Technical Working Group Join the TWG !!! Monthly teleconferences Mailing list Mail list archives available on Planning an ‘in-person’ TWG for later this year