In this section we describe briefly the main relational data entities of the data model of Cytomine-Core using simplified entity relationship diagrams.
An overview of main data entities is given by the Figure below. The central Cytomine data object is the Project that contains User(s), an Ontology, Image(s), Annotation(s) within images, Software, and Properties that can attached to Projects, Images, and Annotations. Each resource is identified by a unique identifier (encoded in 64 bits). In addition, user activity data (such as user position and last connection) are stored in a non-relational database. Properties/Description/AttachedFile/Metadata can be associated to Projects, Images, and Annotations. Properties are key-value pairs, descriptions are rich text descriptions (in HTML), AttachedFile are any supplementary file (e.g. PDF), and Metadata.
AbstractImages are 2D images uploaded to a storage server and can be accessed through an ImageServer. ImageInstances are abstract images associated to a project. ImageInstances can be linked into ImageSequences (each image in an ImageSequence is then identified as a 3-tuple for additional dimensions: c for channels, z for slice, t for time) and associated with a project as ImageGroups (Figure 2.3).
Both human users and software need to authenticate and have access rights to given project(s) through authentication (Figure 2.4). A user is also associated with one or multiple user groups (superadmin, admin, user, guest) which determines actions he/she is allowed to perform: e.g. a guest user can visualize project contents but not edit existing objects and a regular user can view and edit all data in projects for which he has access rights. If a regular user is member of the admin role group, she/he can switch to this role and perform any operation on data from all projects.
An ontology is an editable list of terms with relations (Figure 2.5). A single project contains only a single ontology, but a given ontology can be associated with multiple projects. One or multiple terms of an ontology can be associated to any annotation in the project.
Annotations are geometrical objects (e.g. circle, rectangle, polygon, freehand, point) that can be drawn manually in Cytomine-WebUI by regular human users (UserAnnotations) or created by job instances (UserJobAnnotations). Each annotation is associated to one ImageInstance (i.e. it corresponds to a region of interest in an image). Additionally, a user can review Annotations created in an image and create ReviewedAnnotations that can be a mix of validated UserAnnotations or UserJobAnnotations (Figure 2.6).
Software is an object that can be associated with project(s) to run any processing commands. They can be described by a list of software parameters (name and value type). A job is a software instance with specific parameters values. A jobTemplate is a set of predefined parameter values for a given software. Jobs inherit access rights from the human user who invoked them ie. it is allowed to add/edit/delete the same resources (Figure 2.7).