NOTE: The Evaluation services were initially introduced as the Competition services
Table of Contents |
---|
Overview
...
Synapse Evaluations are constructed around three primary objects: Evaluation , Participant, and Submission. These objects are defined by eponymous JSON schema files in the Synapse Repository Services. The UMLet file used to generate the following image is available here.
...
- ID - unique ID for the Evaluation
- eTag - optimistic concurrency flag; changes with each update
- ownerID - principal ID of the owner of the Evaluation
- name
- description
- contentSource - ID of the data source (e.g. entity) for the Evaluation (string)
status - enum describing the state of the Evaluation, one of: PLANNED, OPEN, CLOSED, COMPLETED
Participant
Immutable object to represent a single user participating in an Evaluation. Evaluations can have many users, and users can participate in many Evaluations.
- ownerID - principal ID of the Participant
- evaluationID
- createdOn - join date
Submission
Immutable object to represent an entity submission to a Evaluation. A participant can create many Submissions for a given Evaluation.
...
- submissionID
- eTag - optimistic concurrency flag; changes with each update
- status - enum describing the state of the Submission, one of: OPEN, CLOSED, SCORED, INVALID
- score - numerical score for this Submission (double between 0 and 1)
- report - String describing this Submission and/or its scoring. May contain additional scoring information, error logs, etc.
- annotations - Annotations object containing user-defined key-value annotations. Note: The contents of the annotations are mirrored to a second set of tables optimized for querying, as discussed here.
SubmissionBundle
Bundle object containing a Submission and its accompanying SubmissionStatus.
SubmissionStatusBatch
Used to upload a collection of Submission updates at once.
REST API
Evaluation
URL | HTTP Type | Description |
---|---|---|
/evaluation | POST | Create a new Evaluation |
/evaluation/{evaluationId} | GET | Get a Evaluation |
/evaluation/{evaluationId} | PUT | Update a Evaluation |
/evaluation/{evaluationId} | DELETE | Delete a Evaluation |
/evaluation | GET | Batch Get Evaluations (Paginated) |
/evaluation/count | GET | Get the number of Evaluations |
/evaluation/name/{name} | GET | Find a Evaluation by name Note that the name must be URL-encoded |
/evaluation/available | GET | Get the paginated list of Evaluations which the user has joined as a participant. |
Participant
URL | HTTP Type | Description |
---|---|---|
/evaluation/{evaluationId}/participant | POST | Join as a Participant in a Evaluation * |
/evaluation/{evaluationId}/participant/{principalId} | POST | Add another user as a Participant in a Evaluation . *Requires admin rights on the Evaluation . |
/evaluation/{evaluationId}/participant/{principalId} | GET | Get a Participant |
/evaluation/{evaluationId}/participant/{principalId} | DELETE | Delete a Participant |
/evaluation/{evaluationId}/participant/ | GET | Batch get Participants for a given Evaluation(Paginated) Optional request parameters: |
/evaluation/{evaluationId}/participant/count | GET | Get the number of Participants in a given Evaluation |
...
Submission
URL | HTTP Type | Description |
---|---|---|
/evaluation/submission?etag=<etag> | POST | Create a new Submission (and corresponding SubmissionStatus object). Required request parameter: |
/evaluation/submission/{submissionId} | GET | Get a Submission |
/evaluation/submission/{submissionId}/status | GET | Get the status of a Submission |
/evaluation/submission/{submissionId}/status | PUT | Update the status of a Submission. |
/evaluation/submission/{submissionId} | DELETE | Delete a Submission. Requires admin rights on the Evaluation. |
/evaluation/{evaluationId}/submission/ /evaluation/{evaluationId}/submission/bundle/ | GET | Batch get my Submissions/SubmissionBundles for a given Evaluation. Optional request parameters: |
/evaluation/{evaluationId}/submission/all /evaluation/{evaluationId}/submission/status/all /evaluation/{evaluationId}/submission/bundle/all | GET | Batch get Submissions/SubmissionStatuses/SubmissionBundles for a given Evaluation. Optional request parameters: |
/evaluation/submission/{submissionId}/file/{fileHandleId} | GET | Get a temporary pre-signed URL to a File contained within a specified Submission. Optional request parameter: |
/evaluation/{evaluationId}/submission/count | GET | Get the number of Submissions for a given Evaluation. |
...