-
Notifications
You must be signed in to change notification settings - Fork 27
Description
There are several existing platforms that could be used to gather useful annotations for PhysioNet datasets. This needs a lot more thought, but as a rough idea it would be good to develop a general API that:
- allows an external platform to request a data file for annotation, perhaps along with associated metadata (details to be determined, but this might include existing annotations).
- allows the external platform to submit a structured annotation back to PhysioNet.
Metadata profile for an annotation
The structure of the annotation will need to be developed. At minimum, the metadata should probably include:
- name/id of the annotation platform
- name/id of the user on the platform
- name/id of the record being annotated
- the annotation
- the time when the annotation was made.
Metadata profile for an annotation task
One of the major challenges is understanding how the API can be made generalizable across PhysioNet, ideally to support multiple data types and modalities (images, waveforms, notes, etc). It feels like the annotation task will require a formal definition that would state things like:
- which files are to be annotated and the file type.
- a human-readable description of the annotation task (e.g. "The task is to label each R wave peak in the ECG recordings" or "The task is to draw a bounding box around pacemakers in the X-rays."
- a machine readable description of the annotation task that can be used by the annotation tool to render the task appropriately.
Providing an interface for the annotation functionality
Annotation tasks may be driven by the research question, and there may be multiple annotation tasks for a single dataset. We need to come up with a simple way of allowing PhysioNet users to propose and implement an annotation task. My suggestion is that we do this with the use of a new "annotation" project type (see #1032).
Summary of tasks
So in summary, some good first steps might be to:
- Design a metadata profile for a generalizable annotation. We can probably reuse or build on the format used by existing annotation platforms that we have looked at.
- Design a metadata profile for an annotation task.
- Review whether using the existing project functionality (Add "Annotation task" or "Labeling task" project type #1032) could be modified to allow a new project type to be used for defining tasks and storing annotations.
- Design the API!