diff --git a/build.gradle.kts b/build.gradle.kts
index 2ebabe6..63514d4 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -27,6 +27,7 @@ vodml {
outputDocDir.set(layout.projectDirectory.dir("std/generated"))
outputSiteDir.set(layout.projectDirectory.dir("docs/generated"))
+
}
/* uncomment this if not using the eclipse vodsl plugin to edit the vodsl
diff --git a/src/main/vo-dml/proposalManagement.vo-dml.xml b/src/main/vo-dml/proposalManagement.vo-dml.xml
index 3564cce..b407b8b 100644
--- a/src/main/vo-dml/proposalManagement.vo-dml.xml
+++ b/src/main/vo-dml/proposalManagement.vo-dml.xml
@@ -9,7 +9,7 @@
Proposal Management
Paul Harrison
0.6
- 2024-10-21T12:03:07Z
+ 2024-10-21T12:24:05Z
null
IVOA-v1.0.vo-dml.xml
@@ -25,6 +25,21 @@
proposaldm.vo-dml.xml
not known
+
+ InstrumentKind
+ InstrumentKind
+
+
+ InstrumentKind.continuum
+ continuum
+
+
+
+ InstrumentKind.spectroscopic
+ spectroscopic
+
+
+
TacRole
TacRole
@@ -45,6 +60,389 @@
+
+ Observatory
+ Observatory
+ An organisation that can perform astronomical observations
+
+ proposal:Organization
+
+
+ Observatory.telescopes
+ telescopes
+ the telescopes that the observatory controls
+
+ proposalManagement:Telescope
+
+
+ 1
+ -1
+
+
+
+ Observatory.instruments
+ instruments
+ the instruments that are available for the telescopes
+
+ proposalManagement:Instrument
+
+
+ 1
+ -1
+
+
+
+ Observatory.backends
+ backends
+ the backends that exist
+
+ proposalManagement:Backend
+
+
+ 1
+ -1
+
+
+
+ Observatory.arrays
+ arrays
+ any arrays of telescopes that typically operate together
+
+ proposalManagement:TelescopeArray
+
+
+ 0
+ -1
+
+
+
+
+ ObservingPlatform
+ ObservingPlatform
+ base type of a telescope or array of telescopes
+
+
+ Telescope
+ Telescope
+
+
+ proposalManagement:ObservingPlatform
+
+
+ Telescope.name
+ name
+ telescope name
+
+ ivoa:string
+
+
+ 1
+ 1
+
+
+
+ Telescope.wikiId
+ wikiId
+ the wikidata id for the Telescope
+
+ proposal:WikiDataId
+
+
+ 0
+ 1
+
+
+
+ Telescope.location
+ location
+ the location of the telescope
+
+ coords:RealCartesianPoint
+
+
+ 1
+ 1
+
+
+
+
+ TelescopeArrayMember
+ TelescopeArrayMember
+
+
+ TelescopeArrayMember.telescope
+ telescope
+
+
+ proposalManagement:Telescope
+
+
+ 1
+ 1
+
+
+
+
+ TelescopeArray
+ TelescopeArray
+ a set of telescopes that are operated together for an observation
+
+ proposalManagement:ObservingPlatform
+
+
+ TelescopeArray.name
+ name
+ the array name
+
+ ivoa:string
+
+
+ 1
+ 1
+
+
+
+ TelescopeArray.arrayMembers
+ arrayMembers
+ the telescopes that make up the array
+
+ proposalManagement:TelescopeArrayMember
+
+
+ 1
+ -1
+
+
+
+
+ Instrument
+ Instrument
+ An instrument that can be attached to a telescope - e.g. CCD, Radio Receiver
+
+ Instrument.name
+ name
+ the instrument name - human readable
+
+ ivoa:string
+
+
+ 1
+ 1
+
+
+
+ Instrument.description
+ description
+ short human readable description
+
+ ivoa:string
+
+
+ 0
+ 1
+
+
+
+ Instrument.wikiId
+ wikiId
+ the wikidata id for the Instrument
+
+ proposal:WikiDataId
+
+
+ 0
+ 1
+
+
+
+ Instrument.reference
+ reference
+ a URL that points to a more detailed description of the instrument
+
+ ivoa:anyURI
+
+
+ 0
+ 1
+
+
+
+ Instrument.kind
+ kind
+ the kind of instrument
+
+ proposalManagement:InstrumentKind
+
+
+ 1
+ 1
+
+
+
+
+ Filter
+ Filter
+ Available filters /bandpasses for intruments
+
+ Filter.name
+ name
+ human readable name
+
+ ivoa:string
+
+
+ 1
+ 1
+
+
+
+ Filter.description
+ description
+ human readable description
+
+ ivoa:string
+
+
+ 1
+ 1
+
+
+
+ Filter.frequencyCoverage
+ frequencyCoverage
+ the frequency range that the instrument covers
+
+ proposal:SpectralWindowSetup
+
+
+ 1
+ 1
+
+
+
+
+ Backend
+ Backend
+ a processing backend /pipeline- e.g. correlator
+
+ Backend.name
+ name
+ the backend name
+
+ ivoa:string
+
+
+ 1
+ 1
+
+
+
+ Backend.parallel
+ parallel
+ is capable of being run at same time as other backends
+
+ ivoa:boolean
+
+
+ 1
+ 1
+
+
+
+
+ ObservingModeConfiguration
+ ObservingModeConfiguration
+ A particular observation combination that is possible
+
+ ObservingModeConfiguration.telescope
+ telescope
+
+
+ proposalManagement:ObservingPlatform
+
+
+ 1
+ 1
+
+
+
+ ObservingModeConfiguration.instrument
+ instrument
+
+
+ proposalManagement:Instrument
+
+
+ 1
+ 1
+
+
+
+ ObservingModeConfiguration.filter
+ filter
+ The filter or frequency response that
+
+ proposalManagement:Filter
+
+
+ 1
+ 1
+
+
+
+ ObservingModeConfiguration.backend
+ backend
+
+
+ proposalManagement:Backend
+
+
+ 1
+ 1
+
+
+
+
+ ObservingMode
+ ObservingMode
+ a configuration that has been chosen to observe with.
+
+ ObservingMode.name
+ name
+ human readable name for the mode
+
+ ivoa:string
+
+
+ 1
+ 1
+
+
+
+ ObservingMode.description
+ description
+ human readable description
+
+ ivoa:string
+
+
+ 1
+ 1
+
+
+
+ ObservingMode.configuration
+ configuration
+
+
+ proposalManagement:ObservingModeConfiguration
+
+
+ 1
+ 1
+
+
+
ProposalCycle
ProposalCycle
@@ -54,7 +452,7 @@
observatory
- proposal:Observatory
+ proposalManagement:Observatory
1
@@ -114,7 +512,7 @@
observingModes
the possible observing modes offered in the cycle
- proposal:ObservingMode
+ proposalManagement:ObservingMode
1
@@ -266,7 +664,7 @@
mode
The observing mode
- proposal:ObservingMode
+ proposalManagement:ObservingMode
1
@@ -560,7 +958,7 @@
mode
- proposal:ObservingMode
+ proposalManagement:ObservingMode
1
diff --git a/src/main/vo-dml/proposaldm.vo-dml.xml b/src/main/vo-dml/proposaldm.vo-dml.xml
index 3c8bd4a..42d125f 100644
--- a/src/main/vo-dml/proposaldm.vo-dml.xml
+++ b/src/main/vo-dml/proposaldm.vo-dml.xml
@@ -12,7 +12,7 @@
Proposal
Paul Harrison
0.6
- 2024-10-21T12:09:40Z
+ 2024-10-21T12:21:58Z
null
IVOA-v1.0.vo-dml.xml
@@ -66,21 +66,6 @@
co-investigator
-
- InstrumentKind
- InstrumentKind
-
-
- InstrumentKind.continuum
- continuum
-
-
-
- InstrumentKind.spectroscopic
- spectroscopic
-
-
-
TextFormats
TextFormats
@@ -539,389 +524,6 @@
-
- Observatory
- Observatory
- An organisation that can perform astronomical observations
-
- proposal:Organization
-
-
- Observatory.telescopes
- telescopes
- the telescopes that the observatory controls
-
- proposal:Telescope
-
-
- 1
- -1
-
-
-
- Observatory.instruments
- instruments
- the instruments that are available for the telescopes
-
- proposal:Instrument
-
-
- 1
- -1
-
-
-
- Observatory.backends
- backends
- the backends that exist
-
- proposal:Backend
-
-
- 1
- -1
-
-
-
- Observatory.arrays
- arrays
- any arrays of telescopes that typically operate together
-
- proposal:TelescopeArray
-
-
- 0
- -1
-
-
-
-
- ObservingPlatform
- ObservingPlatform
- base type of a telescope or array of telescopes
-
-
- Telescope
- Telescope
-
-
- proposal:ObservingPlatform
-
-
- Telescope.name
- name
- telescope name
-
- ivoa:string
-
-
- 1
- 1
-
-
-
- Telescope.wikiId
- wikiId
- the wikidata id for the Telescope
-
- proposal:WikiDataId
-
-
- 0
- 1
-
-
-
- Telescope.location
- location
- the location of the telescope
-
- coords:RealCartesianPoint
-
-
- 1
- 1
-
-
-
-
- TelescopeArrayMember
- TelescopeArrayMember
-
-
- TelescopeArrayMember.telescope
- telescope
-
-
- proposal:Telescope
-
-
- 1
- 1
-
-
-
-
- TelescopeArray
- TelescopeArray
- a set of telescopes that are operated together for an observation
-
- proposal:ObservingPlatform
-
-
- TelescopeArray.name
- name
- the array name
-
- ivoa:string
-
-
- 1
- 1
-
-
-
- TelescopeArray.arrayMembers
- arrayMembers
- the telescopes that make up the array
-
- proposal:TelescopeArrayMember
-
-
- 1
- -1
-
-
-
-
- Instrument
- Instrument
- An instrument that can be attached to a telescope - e.g. CCD, Radio Receiver
-
- Instrument.name
- name
- the instrument name - human readable
-
- ivoa:string
-
-
- 1
- 1
-
-
-
- Instrument.description
- description
- short human readable description
-
- ivoa:string
-
-
- 0
- 1
-
-
-
- Instrument.wikiId
- wikiId
- the wikidata id for the Instrument
-
- proposal:WikiDataId
-
-
- 0
- 1
-
-
-
- Instrument.reference
- reference
- a URL that points to a more detailed description of the instrument
-
- ivoa:anyURI
-
-
- 0
- 1
-
-
-
- Instrument.kind
- kind
- the kind of instrument
-
- proposal:InstrumentKind
-
-
- 1
- 1
-
-
-
-
- Filter
- Filter
- Available filters /bandpasses for intruments
-
- Filter.name
- name
- human readable name
-
- ivoa:string
-
-
- 1
- 1
-
-
-
- Filter.description
- description
- human readable description
-
- ivoa:string
-
-
- 1
- 1
-
-
-
- Filter.frequencyCoverage
- frequencyCoverage
- the frequency range that the instrument covers
-
- proposal:SpectralWindowSetup
-
-
- 1
- 1
-
-
-
-
- Backend
- Backend
- a processing backend /pipeline- e.g. correlator
-
- Backend.name
- name
- the backend name
-
- ivoa:string
-
-
- 1
- 1
-
-
-
- Backend.parallel
- parallel
- is capable of being run at same time as other backends
-
- ivoa:boolean
-
-
- 1
- 1
-
-
-
-
- ObservingModeConfiguration
- ObservingModeConfiguration
- A particular observation combination that is possible
-
- ObservingModeConfiguration.telescope
- telescope
-
-
- proposal:ObservingPlatform
-
-
- 1
- 1
-
-
-
- ObservingModeConfiguration.instrument
- instrument
-
-
- proposal:Instrument
-
-
- 1
- 1
-
-
-
- ObservingModeConfiguration.filter
- filter
- The filter or frequency response that
-
- proposal:Filter
-
-
- 1
- 1
-
-
-
- ObservingModeConfiguration.backend
- backend
-
-
- proposal:Backend
-
-
- 1
- 1
-
-
-
-
- ObservingMode
- ObservingMode
- a configuration that has been chosen to observe with.
-
- ObservingMode.name
- name
- human readable name for the mode
-
- ivoa:string
-
-
- 1
- 1
-
-
-
- ObservingMode.description
- description
- human readable description
-
- ivoa:string
-
-
- 1
- 1
-
-
-
- ObservingMode.configuration
- configuration
-
-
- proposal:ObservingModeConfiguration
-
-
- 1
- 1
-
-
-
Justification
Justification
diff --git a/src/main/vodsl/proposalManagement.vodsl b/src/main/vodsl/proposalManagement.vodsl
index 2cf779c..9c1d91c 100644
--- a/src/main/vodsl/proposalManagement.vodsl
+++ b/src/main/vodsl/proposalManagement.vodsl
@@ -10,13 +10,92 @@
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"
+
+ //IMPL - this and related objects should probably be in the "Management" model.
+ otype Observatory -> proposal:Organization "An organisation that can perform astronomical observations" {
+
+ telescopes : Telescope @+ as composition "the telescopes that the observatory controls";
+ instruments : Instrument @+ as composition "the instruments that are available for the telescopes";
+ backends : Backend @+ as composition "the backends that exist";
+ arrays: TelescopeArray @* as composition "any arrays of telescopes that typically operate together";
+
+ }
+
+ abstract otype ObservingPlatform "base type of a telescope or array of telescopes"
+ {
+
+ }
+
+ otype Telescope -> ObservingPlatform "" {
+ name : ivoa:string "telescope name";
+ wikiId : proposal:WikiDataId @? "the wikidata id for the Telescope"; //IMPL this is just an idea to have a reference outside this database
+
+ location : coords:RealCartesianPoint "the location of the telescope" ;
+ }
+
+ otype TelescopeArrayMember "" {
+ telescope references Telescope "";
+ }
+
+ otype TelescopeArray -> ObservingPlatform "a set of telescopes that are operated together for an observation" { // IMPL might not be necessary with ObservingConfiguration doing the same sort of thing.
+ name : ivoa:string "the array name";
+ arrayMembers: TelescopeArrayMember @+ as composition "the telescopes that make up the array";
+ }
+
+
+
+ enum InstrumentKind { //IMPL is this extensive enough to be useful?
+ continuum,
+ spectroscopic
+ }
+
+ otype Instrument "An instrument that can be attached to a telescope - e.g. CCD, Radio Receiver"{
+ name : ivoa:string "the instrument name - human readable";
+ description: ivoa:string @? "short human readable description";
+ wikiId : proposal:WikiDataId @? "the wikidata id for the Instrument";
+ reference : ivoa:anyURI @? " a URL that points to a more detailed description of the instrument";
+ kind : InstrumentKind "the kind of instrument";
+ }
+
+ otype Filter "Available filters /bandpasses for intruments " {
+ name : ivoa:string "human readable name";
+ description: ivoa:string "human readable description";
+ frequencyCoverage : proposal:SpectralWindowSetup "the frequency range that the instrument covers";
+ }
+
+ otype Backend "a processing backend /pipeline- e.g. correlator" {
+ name : ivoa:string "the backend name";
+ parallel : ivoa:boolean "is capable of being run at same time as other backends";
+
+ }
+
+ /* Note that when presenting these configurations in the GUI they probably need to be decomposed into combo boxes that display each set of possibilities of each member one after another
+ limited by the remaining possible choices having selected those above */
+ otype ObservingModeConfiguration "A particular observation combination that is possible" {
+ telescope references ObservingPlatform "";
+ instrument references Instrument "";
+ filter:Filter as composition "The filter or frequency response that ";
+ backend references Backend "";
+ }
+
+ otype ObservingMode "a configuration that has been chosen to observe with." {
+ name: ivoa:string "human readable name for the mode";
+ description: ivoa:string "human readable description";
+ configuration references ObservingModeConfiguration "";
+ // IMPL could add an arbitrary "options" here.
+ }
+
+
+
+
+
otype ProposalCycle "Defines collection of resources and proposals for a particular observing season" {
- observatory references proposal:Observatory "";
+ observatory references 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";
+ observingModes: 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";
@@ -49,7 +128,7 @@
otype ObservationConfiguration "the configuration of an observation specific to a submission to a particular cycle" {
observation @+ references proposal:Observation "";
- mode references proposal:ObservingMode "The observing mode"; //IMPL this is what allows the observation to be tied to multiple observatories.
+ mode references ObservingMode "The observing mode"; //IMPL this is what allows the observation to be tied to multiple observatories.
}
otype SubmittedProposal "an instance of a proposal that has been submitted" {
@@ -103,7 +182,7 @@
otype ResourceBlock "A block of resources that can be allocated"
{
- mode references proposal:ObservingMode "";
+ mode references ObservingMode "";
resource : Resource as composition "the amount of resource";
}
diff --git a/src/main/vodsl/proposaldm.vodsl b/src/main/vodsl/proposaldm.vodsl
index 3fbac0a..e39dbc6 100644
--- a/src/main/vodsl/proposaldm.vodsl
+++ b/src/main/vodsl/proposaldm.vodsl
@@ -76,81 +76,7 @@ observations, although the intention is that information about targets etc. coul
}
- //IMPL - this and related objects should probably be in the "Management" model.
- otype Observatory -> Organization "An organisation that can perform astronomical observations" {
-
- telescopes : Telescope @+ as composition "the telescopes that the observatory controls";
- instruments : Instrument @+ as composition "the instruments that are available for the telescopes";
- backends : Backend @+ as composition "the backends that exist";
- arrays: TelescopeArray @* as composition "any arrays of telescopes that typically operate together";
-
- }
-
- abstract otype ObservingPlatform "base type of a telescope or array of telescopes"
- {
-
- }
-
- otype Telescope -> ObservingPlatform "" {
- name : ivoa:string "telescope name";
- wikiId : WikiDataId @? "the wikidata id for the Telescope"; //IMPL this is just an idea to have a reference outside this database
-
- location : coords:RealCartesianPoint "the location of the telescope" ;
- }
-
- otype TelescopeArrayMember "" {
- telescope references Telescope "";
- }
-
- otype TelescopeArray -> ObservingPlatform "a set of telescopes that are operated together for an observation" { // IMPL might not be necessary with ObservingConfiguration doing the same sort of thing.
- name : ivoa:string "the array name";
- arrayMembers: TelescopeArrayMember @+ as composition "the telescopes that make up the array";
- }
-
-
-
- enum InstrumentKind { //IMPL is this extensive enough to be useful?
- continuum,
- spectroscopic
- }
-
- otype Instrument "An instrument that can be attached to a telescope - e.g. CCD, Radio Receiver"{
- name : ivoa:string "the instrument name - human readable";
- description: ivoa:string @? "short human readable description";
- wikiId : WikiDataId @? "the wikidata id for the Instrument";
- reference : ivoa:anyURI @? " a URL that points to a more detailed description of the instrument";
- kind : InstrumentKind "the kind of instrument";
- }
-
- otype Filter "Available filters /bandpasses for intruments " {
- name : ivoa:string "human readable name";
- description: ivoa:string "human readable description";
- frequencyCoverage : SpectralWindowSetup "the frequency range that the instrument covers";
- }
-
- otype Backend "a processing backend /pipeline- e.g. correlator" {
- name : ivoa:string "the backend name";
- parallel : ivoa:boolean "is capable of being run at same time as other backends";
-
- }
-
- /* Note that when presenting these configurations in the GUI they probably need to be decomposed into combo boxes that display each set of possibilities of each member one after another
- limited by the remaining possible choices having selected those above */
- otype ObservingModeConfiguration "A particular observation combination that is possible" {
- telescope references ObservingPlatform "";
- instrument references Instrument "";
- filter:Filter as composition "The filter or frequency response that ";
- backend references Backend "";
- }
-
- otype ObservingMode "a configuration that has been chosen to observe with." {
- name: ivoa:string "human readable name for the mode";
- description: ivoa:string "human readable description";
- configuration references ObservingModeConfiguration "";
- // IMPL could add an arbitrary "options" here.
- }
-
-
+
enum TextFormats "acceptable text formats for document submission"{ //IMPL this list is up for debate
latex "LaTeX using standard document style" ,//IMPL document sytle to be specified
rst "restructured text",
diff --git a/src/test/java/org/ivoa/dm/proposal/prop/EmerlinExample.java b/src/test/java/org/ivoa/dm/proposal/prop/EmerlinExample.java
index a9ab20b..c9dd7a1 100644
--- a/src/test/java/org/ivoa/dm/proposal/prop/EmerlinExample.java
+++ b/src/test/java/org/ivoa/dm/proposal/prop/EmerlinExample.java
@@ -13,7 +13,7 @@
import java.util.stream.Stream;
import static org.ivoa.dm.proposal.management.ProposalCycle.createProposalCycle;
-import static org.ivoa.dm.proposal.prop.Observatory.createObservatory;
+import static org.ivoa.dm.proposal.management.Observatory.createObservatory;
import static org.ivoa.dm.proposal.prop.SpectralWindowSetup.createSpectralWindowSetup;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -66,7 +66,7 @@ public EmerlinExample () {
final TelescopeArray eMERLIN = new TelescopeArray("e-MERLIN",
Stream.of(telescopes).map(t -> new TelescopeArrayMember(t)).collect(Collectors.toList()));
final TelescopeArray eMERLINReduced = new TelescopeArray("e-MERLIN (reduced)",
- Stream.of(telescopes).filter(t -> !notK.contains(t.name)).map(t -> new TelescopeArrayMember(t)).collect(Collectors.toList()));
+ Stream.of(telescopes).filter(t -> !notK.contains(t.getName())).map(t -> new TelescopeArrayMember(t)).collect(Collectors.toList()));
observatory = createObservatory(obs -> {
obs.address = "on earth";
obs.ivoid = new Ivorn("ivo://obs/anobs");
diff --git a/src/test/java/org/ivoa/dm/proposal/prop/LCOExample.java b/src/test/java/org/ivoa/dm/proposal/prop/LCOExample.java
index 4f7df7c..8fecb3e 100644
--- a/src/test/java/org/ivoa/dm/proposal/prop/LCOExample.java
+++ b/src/test/java/org/ivoa/dm/proposal/prop/LCOExample.java
@@ -4,7 +4,7 @@
*/
import static org.ivoa.dm.proposal.management.ProposalCycle.createProposalCycle;
-import static org.ivoa.dm.proposal.prop.Observatory.createObservatory;
+import static org.ivoa.dm.proposal.management.Observatory.createObservatory;
import java.util.Arrays;
import java.util.stream.Collectors;
@@ -14,9 +14,16 @@
import org.ivoa.dm.proposal.management.AllocatedProposal;
import org.ivoa.dm.proposal.management.AllocationGrade;
import org.ivoa.dm.proposal.management.AvailableResources;
+import org.ivoa.dm.proposal.management.Backend;
+import org.ivoa.dm.proposal.management.Instrument;
+import org.ivoa.dm.proposal.management.Observatory;
+import org.ivoa.dm.proposal.management.ObservingMode;
import org.ivoa.dm.proposal.management.Resource;
import org.ivoa.dm.proposal.management.ResourceType;
import org.ivoa.dm.proposal.management.SubmittedProposal;
+import org.ivoa.dm.proposal.management.Telescope;
+import org.ivoa.dm.proposal.management.TelescopeArray;
+import org.ivoa.dm.proposal.management.TelescopeArrayMember;
/**
*