Catalog Submission Overview
|  PDF
|
This server allows users to input catalog entries describing
neuroscience resources for the Neuroscience Information Framework
project. The tentative range of resources to be listed includes
online databases, research supply companies, and active research
laboratories. This server is a prototype built to aid development of
the NIF inventory. A more sophisticated interface will be built as
part of (optional) Phase II. Currently, entries can be submitted to
this server through either manually through an HTML form or by
software using XML.
In either case, submitting entries requires an account. One can be
applied for by entering a desired user name and password in the form
at lower left and clicking the "Sign up" button. Before doing so you
should first check that your lab or research group does not already
have an account. At the current stage, only NIF project member groups
are being given accounts.
The HTML form is intended for manual entry, and contains instructions
on the use of the various fields. It may be accessed through clicking
"HTML Form" under "Submit Entry" on the left hand navigation bar.
Before making an entry for a resource, you should first check to
make sure an entry does not already exist for it. This may be done by
utilizing the query
facilities on this server.
This server is also set up to accept submissions in XML, which is best
for import from existing catalog data. Ordinarily (see below), this
interface is accessed directly over HTTP by a software client other
than a browser. However, for testing purposes, a form is provided in
which an XML query can be edited and passed to the server for
processing. This is accessed by clicking "XML (Expert)" on the left.
The XML accepted conforms to the BrainML-X protocols (description,
and definition)
and the data model describing
the catalog entry format. A sample may be seen by clicking the "XML
(Expert)" link.
This sample has all fields filled in, however some of them are
optional. You can determine which ones either by looking at the model
definition (see above) or by checking the "Validate only" box and
submitting XML with various fields excluded.
Note that multiple entries can be included in one submission. Just
include multiple <nsci_resource_informal> tags
underneath the <catalog_submission> tag.
In order to POST XML directly to the server, authorization must be
obtained first. This is done by first sending a login
message to the server with the username and password of an account.
In return, the server will send an authorization key which
the agent should then submit along with the XML submission. In greater
detail, the process is as follows (see also here):
1) HTTP POST XML under parameter 'xml' to /catalog/login.do:
<login xmlns="urn:bml/brainml.org:internal/Protocols/3"
userID="USERNAME" password="PASSWORD" />
2) Response is like:
<login_response xmlns="urn:bml/brainml.org:internal/Protocols/3"
authKey="yBiBwKTVE9J2n5yrZsBGPc6qqwMh4LEK88G8BH0e" />
3) HTTP POST submission XML under parameter 'xml' to
/catalog/upload.do:
<catalog_submission xmlns="urn:bml/brainml.org:internal/Protocols/3"
userID="nif" authKey="yBiBwKTVE9J2n5yrZsBGPc6qqwMh4LEK88G8BH0e"
identifier="anythingYouWantHere">
<nsci_resource_informal>
(content -- see above)
</nsci_resource_informal>
<nsci_resource_informal>
...
</nsci_resource_informal>
...
</catalog_submission>
4) Response is like:
<catalog_acknowledgement xmlns="urn:bml/brainml.org:internal/Protocols/3"
userID="lni" identifier="whateverYouPutHereBefore" status="SUCCESS">
<submittedEntity type=
"urn:bml/brainml.org:internal/Protocols/3,nsci_resource_informal"
id="nif-nif-294"/>
<submittedEntity type=
"urn:bml/brainml.org:internal/Protocols/3,nsci_resource_informal"
id="nif-nif-300"/>
...
</catalog_acknowledgement>
Updates to existing entries may be done by either HTML form (click the
"Update Entry" link on the left) or over XML. For XML, the process is
similar to that for upload, with the following differences:
1) The URL /catalog/update.do is used instead of /catalog/upload.do.
2) The root tag is <catalog_update> instead of <catalog_submission>
3) The 'id' attribute of each submission component
(<nsci_resource_informal>) should be set to the id of the
entry being updated. (These are returned in both the XML and
HTML submission acknowledgements.)
It is possible to just validate the XML instead of actually submitting
it. This is done on the text-box web form by checking the "Validate
Only" checkbox. When accessing directly using HTTP POST, you can
either use '/validate.do' in place of
'/upload.do' or add 'validateOnly=true' to
the query string.