-
Notifications
You must be signed in to change notification settings - Fork 0
/
proposalManagement.vodsl
117 lines (86 loc) · 4.79 KB
/
proposalManagement.vodsl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*
* created on 20 Oct 2021 // The review side of the proposal.
*/
model proposalManagement (0.5) "The data model for managing the proposal review process. Intended to work for phase 1"
author "Paul Harrison"
title "Proposal Management"
include "../../../build/tmp/IVOA-v1.0.vodsl" // note that this is auto generated from dependencies during build
include "../../../build/tmp/Coords-v1.0.vodsl" // this is a case where recursive import would be better - https://github.com/ivoa/vo-dml/issues/7 - here stc is really only used in the proposaldm
include "proposaldm.vodsl"
otype OfferedCycles { //TODO this is temporary idea for a "containing object" for the whole review - need to think this out more, not really necessary
cycles : ProposalCycle @+ as composition "";
}
otype ProposalCycle "Defines collection of resources and proposals for a particular observing season" {
observatory references proposal:Observatory "";
^title: ivoa:string "a human readable description of the cycle";
submissionDeadline : ivoa:datetime "the date by which observing proposals must be submitted to be considered for this cycle";
observationSessionStart : ivoa:datetime "the start date of the observing cycle";
observationSessionEnd: ivoa:datetime "the end date of the observing cycle";
observingModes: proposal:ObservingMode @+ as composition "the possible observing modes offered in the cycle";
availableResources : AvailableResources as composition "";
possibleGrades : AllocationGrade @+ as composition "The possible grades that can be allocated for this cycle";
tac : TAC as composition "The time allocation committee";
submittedProposals : SubmittedProposal @* as composition "the proposals that have been submitted in this cycle";
allocatedProposals : AllocatedProposal @* as composition "the proposals that have been successful and allocated time";
}
otype Reviewer "assigned to review the proposal" {
person references proposal:Person "the person taking on the reviewer role";
}
enum TacRole "A role within the timeAllocation committee" { // FIXME - don;t think that this really reflects the roles - either Chair or not is the only real distinction
TechnicalReviewer "",
ScienceReviewer "",
Chair ""
}
otype CommitteeMember "a member of the TAC " {
member references Reviewer "the member"; //IMPL reviewer could be outside the TAC
role: TacRole "";
}
otype TAC "time allocation committee"
{
members : CommitteeMember @+ as composition "members of the committee";
}
otype SubmittedProposal "an instance of a proposal that has been submitted" {
proposal references proposal:ObservingProposal "the proposal that was submitted"; //note although this is a reference, the proposal is "frozen" when submitted.
submissionDate : ivoa:datetime "the date that the proposal was submitted";
successful : ivoa:boolean "the proposal can go on to allocation";
reviewsCompleteDate : ivoa:datetime "the date when all the proposals are due";
reviews : ProposalReview @+ as composition "the reviews";
}
otype AllocatedProposal "an instance of a proposal that is allocated observing time" {
submitted references SubmittedProposal "the proposal";
allocation : AllocatedBlock @+ as ordered composition "what is allocated to the proposal";
}
otype ProposalReview "A review of a proposal" {
reviewer references Reviewer "the reviewer making this review";
comment: ivoa:string "Description";
score : ivoa:real "the review score";
technicalFeasibility: ivoa:boolean "is the proposal technically feasible";
reviewDate: ivoa:datetime "the date that the review is submitted";
}
otype ResourceType "a type of resource " {
name : ivoa:string "the name of the resource type";
unit : ivoa:string "";
}
//TODO is the idea of a "resource" too general?
otype Resource "A resource that will be consumed by allocating an observation from a proposal" {
type references ResourceType "the type of the resource";
amount : ivoa:real "The amount of the resource";
}
otype AvailableResources "The list of resources that are available" {
resources : Resource @* as ordered composition ""; // TODO need to ensure that each resource type can occur only once.
}
otype AllocationGrade "The final grade given by the TAC" {
/*
* the idea of this is to be able to define classes of allocation that have differing priorities of actually being observed.
*/
name : ivoa:string "the name of the grade";
description : ivoa:string "what this grade means";
}
otype ResourceBlock "A block of resources that can be allocated"
{
mode references proposal:ObservingMode "";
resource : Resource as composition "the amount of resource";
}
otype AllocatedBlock -> ResourceBlock "A block of resources that have been allocated" {
grade references AllocationGrade "";
}