Data Retrieval for API 1 Venues
Submissions
To get all 'active' submissions for a double-blind venue , pass your venue's blind submission invitation into get_all_notes.
submissions = client.get_all_notes(
invitation="Your/Venue/ID/-/Blind_Submission"
)To get all submissions for a double-blind venue regardless of their status (active, withdrawn or desk rejected), pass your venue's submission invitation to get_all_notes().
submissions = client.get_all_notes(
invitation="Your/Venue/ID/-/Submission"
)As a program organizer, to get only the "accepted" submissions for double-blind venues, query using the Blind submission invitation and include 'directReplies' and 'original' in the details.
# Double-blind venues
submissions = client.get_all_notes(invitation = 'Your/Venue/ID/-/Blind_Submission', details='directReplies,original')
blind_notes = {note.id: note for note in submissions}
all_decision_notes = []
for submission_id, submission in blind_notes.items():
all_decision_notes = all_decision_notes + [reply for reply in submission.details["directReplies"] if reply["invitation"].endswith("Decision")]
accepted_submissions = []
for decision_note in all_decision_notes:
if 'Accept' in decision_note["content"]['decision']:
accepted_submissions.append(blind_notes[decision_note['forum']].details['original'])As a program organizer, to get only the "accepted" submissions, query using the Submission invitation and include 'directReplies' in the details.
Parameters you can use when querying API 1 notes.
Reviews
To get all reviews for a double-blind venue, you can do the following:
Get all submissions for your venue. You can do this by passing your venue's submission invitation into get_all_notes. You should also pass in details = "directReplies" to obtain any notes that reply to each submission.
2. For each submission, add any replies with the Official Review invitation to a list of Reviews.
3. The list reviews now contains all of the reviews for your venue.
To get all reviews for a single-blind venue, you can do the following:
Get all submissions for your venue. You can do this by passing your venue's submission invitation into get_all_notes. You should also pass in details = "directReplies" to obtain any notes that reply to each submission.
2. For each submission, add any replies with the Official Review invitation to a list of Reviews.
3. The list reviews now contains all of the reviews for your venue.
Exporting data
Say you want to export all of the reviews for a given venue into a csv file.
If you have not done so, you will need to install and instantiate the openreview-py client.
Retrieve all of the Reviews into a
reviewsobject following the instructions here.Next, get the super review invitation. This is the overall review invitation which each of the Paper#/-/Official_Review invitations are based off of, and it follows the format Venue/ID/-/Official_Review.
Generate a list of the fields in the content in the Review invitation. For reference, this is what the default review invitation content looks like in JSON:
so we would expect a list like ["title", "review", "rating", "confidence"]. This is how we get the list:
If you haven't already, import csv. Then iterate through the list of reviews stored in 'reviews' and for each one, append the values associated to the keys in your keylist. If a value does not exist for that key, put an empty string in its place.
There should now be a csv of exported reviews in the directory in which you are working.
Adding submission information to the exported csv (both API2 and API1)
You may also want to know which submission each review is associated with. You can get the forum of each review, which corresponds to the forum page of its associated submission. For example, if a review's forum is aBcDegh, you could find that submission at https://openreview.net/forum?id=aBcDegh. To create a csv that includes the review forums, do this:
Adding reviewer information to the exported csv (both API2 and API1)
You may also want to know the profile information of the reviewer associated with a review. First, create a mapping between the Reviewer ID (anonymous) and Profile ID:
Then you can use this map to find the profile ID of the reviewer for a review:
If you want additional information about the reviewer, you can get their profile using the Profile ID (see How to Get Profiles and Their Relations for more guidance).
Last updated
Was this helpful?