Skip to content

Powerful and versatile command-line tool for managing OpenReview venues

License

Notifications You must be signed in to change notification settings

ad-freiburg/ortler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ortler

Ortler is a powerful and versatile command-line tool for managing OpenReview venues. It provides commands for syncing venue data to a local cache, managing committee recruitment, tracking submissions, and sending emails via the OpenReview API. It is named after OpenReview and a beautiful mountain in the Alps.

image

Quickstart

Installation and updates

# Install with pipx (recommended)
pipx install ortler

# Get latest version
pipx upgrade ortler

# Or install in editable mode for development
git clone [email protected]:ad-freiburg/ortler.git
cd ortler
pipx install -e .

# Get latest version from git:w
git pull

Configuration

Create a .env file with your OpenReview credentials (see .env.example):

OPENREVIEW_API_URL=https://api2.openreview.net
[email protected]
OPENREVIEW_PASSWORD=your-password
OPENREVIEW_VENUE_ID=Your/Venue/ID
OPENREVIEW_IMPERSONATE_GROUP=Your/Venue/ID
MAIL_FROM=Your Choice <[email protected]>

If you want to use ortler mail with --recipients-from-sparql-query, you also need to and provide the API of a SPARQL endpoint (e.g., QLever), and a username and password in case that endpoint requires authentication:

QLEVER_LINK_API=https://qlever.dev/api/link/
QLEVER_QUERY_API=https://qlever.dev/api/...
QLEVER_QUERY_API_USERNAME=username
QLEVER_QUERY_API_PASSWORD=password

If you want to use commands that require a language model (like ortler ai-review), you also need to provide an API key for that model:

OPENAI_API_KEY=your-openai-api-key

Usage

ortler --help                  # Show all commands
ortler COMMAND --help          # Show help for a specific command

Commands

update

Sync venue data from OpenReview to a local cache. The cache enables fast queries and RDF export without repeated API calls.

# Incremental update (only fetch changes since last update)
ortler update

# Preview what would be updated
ortler update --dry-run

# Force re-fetch of all submissions
ortler update --recache submissions

# Force re-fetch of all profiles with publications
ortler update --recache profiles-with-publications

# Force re-fetch only of the specified profiles
ortler update --profiles ~John_Doe1 ~Jane_Doe2

# Force re-fetch of everything
ortler update --recache all

dump

Export all cached data as RDF (Turtle format) for use with SPARQL engines like QLever.

# Output to stdout
ortler dump

# Output to file
ortler dump --output data.ttl

The RDF output includes triples for the following; just run it and inspect if yourself, Turtle is quite readable for humans:

  • Committee members (reviewers, area chairs, senior area chairs) with roles and status
  • Submissions with titles, abstracts, authors, and status
  • Profile data including affiliations and publications

recruitment

Manage committee membership (reviewers, area chairs, senior area chairs).

# Search for a user and show their group memberships
ortler recruitment --search [email protected]
ortler recruitment --search ~John_Doe1

# Add users to the reviewer pool
ortler recruitment --role pc --add invited [email protected] [email protected]

# Remove a user from the invited list
ortler recruitment --role pc --remove invited [email protected]

# Set reduced review load for a member
ortler recruitment --role pc --set-reduced-load ~John_Doe1 2

Roles: pc (reviewers), spc (area chairs), ac (senior area chairs)

mail

Send emails via the OpenReview API. Emails are defined in a file with headers and body separated by a blank line.

# Preview email without sending
ortler mail message.txt --dry-run

# Send to a test recipient first
ortler mail message.txt --test-run ~Your_Profile1

# Send emails with recipients from a SPARQL query
ortler mail message.txt --recipients-from-sparql-query QUERY_HASH

Example email file; the {{name}} placeholder will be replaced with the recipient's first name if that information is available, otherwise the full name. If the Cc is provided, a single email is sent to that address, with the list of recipients, a link to the SPARQL query, and the mail body.

To: ~Recipient_Profile1 ~Recipient_Profile2 ...
Subject: Your subject line
Cc: ...
Reply-To: ...

Dear {{name}},

This is an email from the `ortler` tool, we hope that you like it!

Best regards,

The robots from the future

Example with SPARQL query; the {{name}} placeholder will be replaced just like above; the list of recipients is determined by the first column of the query result, where all values are profile IRIs; other columns of the result can be used as additional placeholders in the email body, where, for example, {{titles}} will be replaced by the content of the ?titles variable.

# Query: https://qlever.dev/name-of-endpoint/QUERY_HASH
To: (will be replaced by profile IDs from query result)
Subject: Your submissions
Cc: ...
Reply-To: ...

Dear {{name}},

You have submitted the following papers, just so you know:

{{titles}}

Best regards ...

Other Commands

Run ortler --help to see all available commands and ortler COMMAND --help for details on each command.

About

Powerful and versatile command-line tool for managing OpenReview venues

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages