This is the text of a message I sent to RonDuPlain
. It describes how to query the NRAOpapers! front-end.
- 05 Dec 2008
I will try to explain how you can get JSON from the NRAOpapers front end.
search-run.php?mode=simple/complex&... -> redirect to search-result.shtml&searchId=NNN
search-result.php?searchId=NNN&... -> json
paper.php?paperId=ZZZ -> json (or xml or html)
Less brief explanation follows below:
The form (or forms) on this page can be used to construct a query:
These forms will submit to:
The simple search uses a MySQL fulltext index, so it matches words,
etc. Making a query for that by hand is pretty straight forward. You can
use this as a template:
keywords-mode can be ANY/ALL/EXACT
keywords allows "quoted terms" and -negations
authors-mode can be ANY/ALL
authors allows "quoted terms" and -negations
Off hand, I think I made it so you can leave off fields you don't use,
but its been a while so I could be mistaken.
For the complex form, you may find it useful to use the form to build a
query and then use firebug to see the submission (which otherwise
vanishes in a puff of redirect).
The complex form allows more field specific queries, here is the breakdown:
... is a sequence of queries made up of 5 fields:
search-combinator0 can be AND/OR
search-negator0 can be NOT (or nothing)
search-field0 can be one of the fields seen in the select box on search.shtml
search-op0 can be one of the operators seen in the select box on search.shtml
search-parameter0 can be 0 or more operands depending on the operator
You can then combine those with search-combinator1, search-negator1, etc.
On submitting either request, you will get a redirect to search-result.shtml#searchId=NNN&paperId= or to no-result.php
Save NNN. Now you can query search-result.php?searchId=NNN&n=..., parameters:
order=one of these
start=row number, defaults to 0
n=how many rows, the maximum is 1000 right now, but that can be changed
The searchId is expired after 1 hour with no activity.
The results are JSON, I guess they should be self explanatory.
You can also query paper.php?paperId=ZZZ&as=json/xml/html
If you have any questions, don't hesitate to ask. You can also poke around the
source if you prefer: