Edges are used to represent matching data, like affinity scores, conflicts, custom quotas, etc. The Edge entity contains two main properties: head
and tail
and optionally a label
and weight
. Head
and tail
properties point to other entities in the system like a note, a group or a profile.
Notes are the main containers of data in OpenReview. Notes are used for submissions and comments such as reviews, meta reviews, decisions and public comments. They require an Invitation to be created and modified.
Notes can only have certain fields and have a specific format. Some of these fields are the same as other objects and some are specific to the Note object.
This is a unique value that identifies the Edge. The id
of an Edge is generated automatically. It is a random 7-14 character long string that can contain any of the following values:
The Creation Date or cdate
is a unix timestamp in milliseconds that can be set either in the past or in the future. It usually represents when the Edge was created.
The True Creation Date or tcdate
indicates the date in unix timestamp in milliseconds when the Edge is created. Unlike the cdate
, its value cannot be set or modified by the user and it is not displayed in the UI.
The Modification Date or mdate
shows when the Edge was last modified. The mdate
value is a unix timestamp in milliseconds that can be set either in the past or in the future.
The True Modification Date or tmdate
indicates the date in unix timestamp in milliseconds when the Edge is modified. Unlike the mdate
, its value cannot be set or modified by the user and it is not displayed in the UI.
The Deletion Date or ddate
is used to soft delete an Edge. This means that Edges with a ddate
value can be restored but will appear as deleted. The ddate
value is a unix timestamp in milliseconds that can be set either in the past or in the future.
The signatures
field indicates who created the Edge. Even though the field is an array of strings, only one item can be present in the signatures
field. Users can sign with different ids depending on their permissions.
The readers
field is an array with Group ids that indicates who can retrieve the Edge or see the Edge in the UI.
The nonreaders
field is an array with Group ids that indicates who cannot retrieve the Edge or see the Edge in the UI. This field is useful in case we want to use a group id in the readers
field that contains a member that we want to exclude from the readers
. In this case, we can specify the Group id of that user in the nonreaders
field.
The writers
field is an array with Group ids that indicates who can modify the Edge.
The head
field can contain a Note id or a Group id and connects it to the Note id or Group id defined in the tail
field. This field is always mandatory and cannot be empty.
The tail
field can contain a Note id or a Group id and connects it to the Note id or Group id defined in the head
field. This field is always mandatory and cannot be empty.
The tail
field can contain a Note id or a Group id and connects it to the Note id or Group id defined in the head
field. This field is always mandatory and cannot be empty.
The label
field contains a string that gives extra information to the Edge. This information can be used to classify Edges and differentiate them from other Edges that have the same Invitation, tail and head values.
The weight
field contains a number that defines the weight between two entities defined in head
and tail
.
The invitation
field contains the Invitation id that was used as template to create the Edge.
The tauthor
field contains the identity of the user that created the Edge. This property is only present when the user is writer of the Edge.
Notes can only have certain fields and have a specific format. Some of these fields are the same as other objects and some are specific to the Note object.
This is a unique value that identifies the Note. The id
of a Note is generated automatically. It is a random 7-14 character long string that can contain any of the following values:
Notes contain a number
field that is associated to the first Invitation that is used to create the Note. The number
value is added automatically and it is usually used to give a number id to submissions.
The Creation Date or cdate
is a unix timestamp in milliseconds that can be set either in the past or in the future. It usually represents when the Note was created.
The True Creation Date or tcdate
indicates the date in unix timestamp in milliseconds when the Note is created. Unlike the cdate
, its value cannot be set or modified by the user and it is not displayed in the UI.
The Modification Date or mdate
shows when the Note was last modified. The mdate
value is a unix timestamp in milliseconds that can be set either in the past or in the future.
The True Modification Date or tmdate
indicates the date in unix timestamp in milliseconds when the Note is modified. Unlike the mdate
, its value cannot be set or modified by the user and it is not displayed in the UI.
The Online Date or odate
is used to show when the Note first becomes public. The odate
value is a unix timestamp in milliseconds that can be set either in the past or in the future.
The Publication Date or pdate
is used to show when the Note that represents a submission is marked as Accepted. The pdate
value is a unix timestamp in milliseconds that can be set either in the past or in the future.
The Deletion Date or ddate
is used to soft delete an Note. This means that Notes with a ddate
value can be restored but will appear as deleted. The ddate
value is a unix timestamp in milliseconds that can be set either in the past or in the future.
The invitation
field contains the invitation id that was used to create the Note.
The signatures
field indicates who created the Note. Even though the field is an array of strings, only one item can be present in the signatures
field. Users can sign with different ids depending on their permissions.
The readers
field is an array with Group ids that indicates who can retrieve the Note or see the Note in the UI.
The nonreaders
field is an array with Group ids that indicates who cannot retrieve the Note or see the Note in the UI. This field is useful in case we want to use a group id in the readers
field that contains a member that we want to exclude from the readers
. In this case, we can specify the Group id of that user in the nonreaders
field.
The writers
field is an array with Group ids that indicates who can modify the Note.
The forum
field contains a Note id. When the Note id
field is equal to the forum
field, it indicates that the Note is a submission. Otherwise, it means that the Note is a comment to the submission. In other words, the forum
value indicates the forum the Note belongs to.
The replyto
contains a Note id. This field indicates what Note it is replying to. In other words, Notes that contain this field are comments in a forum.
The content
field is a JSON that can contain any field that is specified in the Invitation. The fields in content
should preferably only contain alphanumeric characters, underscores, and hyphens and have a max length of 80 characters.
Users can enter data into the system using an invitation. An invitation is roughly a template that indicates required and valid values that will be saved to the database. The invitation contains a list of fields that need to be completed by the user.
When modifying an Invitation's reply field, each field must be a valid JSON with a title and the following optional properties (with the exception of field type, which is required):
field type: the type of the field, which includes value(s), value(s)-regex, value-radio, value(s)-checkbox, value(s)-dropdown, value-file
description: a string describing how users should fill this field
order: a number representing the position in which the field will appear on the form
required: a boolean representing whether the field is required (true) or optional (false)
default: the default value of the field
markdown: a boolean representing whether Markdown is enabled for the field (only valid for value-regex field type)
You can have different types of fields:
value, values: string or array of strings; the value(s) cannot be modified by the user.
value-regex, values-regex: string or array of strings; the value entered by the user should pass the regex validation.
value-radio: string or array of strings; the user can only choose one option.
value-checkbox, values-checkbox: string or array of strings; the user can select one or more options.
value-dropdown, values-dropdown: array of strings; the user can select one or more options from a dropdown.
value-file: a valid JSON specifying the expected upload file type and size in MB; the user can upload one file.
The fileTypes field expects an array of strings specifying the permitted file types that the user can upload. Supported field types are pdf, csv, zip and mp4.