1 2002 crossref annual member meeting implementation workshop september 26, 2002
TRANSCRIPT
2002 CrossRef Annual Member Meeting Implementation Workshop 1
Implementation WorkshopSeptember 26, 2002
2002 CrossRef Annual Member Meeting Implementation Workshop 2
Agenda
9:00 - 9:05 Introduction - Chuck Koscher
9:05 - 10: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:45 - 11:00 Coffee Break
11:00 - 11:45 The New CrossRef XML Schema Bruce D. Rosenblum, Inera Inc.
11:45 - 12:00 Member Access Pages - Chuck Koscher
12:00 - 12:15 Guidelines and Coding Examples - Chuck Koscher
12:15 - ? Open Discussion
2002 CrossRef Annual Member Meeting Implementation Workshop 16
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:10.1061/(ASCE)0893-1321(2002)15:4(125)
Reduce dependence on mddb.xml pre-filtering, submit more queries
DO : id=10.1061/(ASCE)0893-1321(2002)15:4(125)
XSD, operation=doXSDMDUpload : DTD, operation=doMDUpload
2002 CrossRef Annual Member Meeting Implementation Workshop 17
Programming - Perl
#!/usr/bin/perl -wuse strict;use LWP::UserAgent;use URI::Escape;require HTTP::Headers;
my $h = HTTP::Headers->new;$h->header('Content-Type' => 'application/x-www-form-urlencoded'); my $user=“XXXX";my $pass=“yyyyy";my $query="00218561|||50|16|4713|||1| ….
my $verysafe = uri_escape($query, "| \n");
Query as an HTTP POST
2002 CrossRef Annual Member Meeting Implementation Workshop 18
my $user_agent = new LWP::UserAgent;$user_agent->agent(“Your agent name".$user_agent->agent);$user_agent->timeout(360);
my $req = new HTTP::Request 'POST', 'http://mddb2.crossref.org /query/xref.cgi', $h;$req->content("usr=$user&pwd=$pass&db=mddb&qdata=$query");
# Send query to the servermy $response;$response = $user_agent->request($req);
Query as an HTTP POST cont.
Programming - Perl
2002 CrossRef Annual Member Meeting Implementation Workshop 19
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
2002 CrossRef Annual Member Meeting Implementation Workshop 20
http://mddb2.crossref.org/doc/samples.zip
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
http://www.innovation.ch/java/HTTPClient/
Requires HTTPClient.jar
Deposit as an HTTP POST cont
2002 CrossRef Annual Member Meeting Implementation Workshop 21
Programming - VB
Set WinHttpReq = New WinHttpRequest (need winhttp50sdk.exe)
WinHttpReq.SetTimeouts 0, 60000, 60000, 300000
WinHttpReq.Open "GET", _ "http://mddb2.crossref.org/query/xref.cgi?usr=" + username.Text + _ "&pwd=" + password.Text + "&area=" + area + "&fuzzy=true&type=" + _ “operation + "&qdata=" + qData” , False
WinHttpReq.Send
results = WinHttpReq.ResponseText
Query as an HTTP GET
2002 CrossRef Annual Member Meeting Implementation Workshop 22
Programming - VB
Set WinHttpReq = New WinHttpRequest (need winhttp50sdk.exe)
WinHttpReq.SetTimeouts 0, 60000, 60000, 300000
WinHttpReq.Open "POST", "http://mddb2.crossref.org/servlet/deposit", FalseWinHttpReq.SetRequestHeader "Pragma", "no-cache" WinHttpReq.SetRequestHeader "Content-Type", "multipart/form-data; boundary=-------------------------7d23583220204" formData = formData + "---------------------------7d23583220204" + vbCrLfformData = formData + "Content-Disposition: form-data; name=" + Chr(34) + "login_id" + Chr(34) + vbCrLfformData = formData + vbCrLfformData = formData + username.Text + vbCrLf
WinHttpReq.Send formData HTML.DocumentHTML = WinHttpReq.ResponseText
Deposit as an HTTP POST
2002 CrossRef Annual Member Meeting Implementation Workshop 23
CrossRef Client Applicationhttp://www.crossref.org/vbclient.zip
2002 CrossRef Annual Member Meeting Implementation Workshop 24
CrossRef Client Applicationhttp://www.crossref.org/vbclient.zip
2002 CrossRef Annual Member Meeting Implementation Workshop 25
CrossRef Technical Working Group
Join the TWG !!!
Monthly teleconferences
Mailing list [email protected]
Mail list archives available on www.crossref.org
Planning an ‘in-person’ TWG for later this year