Hi Rick
Thanks for posting your work on the theory mailing list.
Please let's keep discussing the work here and not go offline too soon.
I am trying to understand the relation of your schema to the SNAP data model and schema we are working on. To this end I have created a UML version of it which I have attached as a JPG. I also attached three JPGs of the SNAP model as today updated on the theory wiki. The updates are not very involved, mainly some details refined and cleaned up.
Comparing your model with this latest version of the SNAP DM I think the following correspondences can be made (I am ignoring detailed differences in attributes etc) :
Rick's model SNAP model
ProgramType SNAPProtocol, SNAPSimulator SimulationType SNAPProject (1 below) RunType SNAPSimulation (1) CharacterisationAxisType Property (of ObjectType) (2 below) CharacterisationType Characterisation ParameterType InputParameter+ParameterSetting inputSnapshot InputDataset
Comments and questions:
Btw, I have for a while wanted to remove the inheritance of Resource from the SNAP data model, and done so in today's update. It is too restrictive I find. I think one can take a SNAP model instance and turn it into a Resource if one wants to register it, but that does not mean it "is a" resource in our model. There are more flexible ways of using existing models than always using inheritance. In particular the Content of Resource is very cumbersome. The SNAP model is supposed to describe the Content already.
4. You have InputParameter and ParameterSetting merged into 1,
ParameterType. Note that I have added an attribute "value", representing the
"xsd:string" inheritance in your ParameterType. In an earlier version of the
SNAP DM I had made the same choice for simplicity. However Franck LePetit
for example agrgued that redefining the list of parameters for his
simulation types would be very costly.
If one runs parameter studies with lists of 100s of parameters it is better
to have the parameters defined once on the Protocol (where they belong
really), and only add the parameter settings on the experiment. Problem is
that in XML this is often more involved, as one needs to somehow reference
the parameter that may not exists in the same XML document (so IDREF will
not work) etc etc.
Again, in one's particular database I can well see people choosing one or
the other. For the SNAP DM I have now chose for the more correct way.
5. You do not have TargetObjectType, TargetProcess, Algorithm, Physics, SNAPWebService. These were all introduced explicitly to support discovery (first 4) and execution (SNAPWebService) in the SNAP protocol.
All in all it seems though that the models are pretty compatible, with the
SNAP model being more general and comprehensive, as one should expect for a
model that needs general application.
For now I see your model as an alternative representation of (a subset of)
the information in the full model, that can have its particular application
area. In that it would be similar to similar models for example from
Patrizia Manzato and from the Horizon team (see the links in the "Existing
data models..." paragraph in
http://www.ivoa.net/twiki/bin/view/IVOA/IVOATheorySimulationDatamodel )
Hi,
After working to understand the current SNAP Data Model (in particular the current proposed XML Schema), I decided to distill it into a single document with fewer types. I've had some success, so I've post the Schema, and a sample instance document on the Twiki attached to the IVOATheorySimulationDatamodel page:
Schema
http://www.ivoa.net/internal/IVOA/IVOATheorySimulationDatamodel/Simulation.x
sd
Sample Instance
http://www.ivoa.net/internal/IVOA/IVOATheorySimulationDatamodel/SimulationIn
stance.xml
At the bottom of the page there are links screen shots of the elements and data types, which help to show they're relations.
This schema keeps the method of characterization as the SNAP model, by defining the axes up front (or, at the top), but is less abstract. It treats a simulation and its data as the results of running a program with defined input parameters, and does not try describe everything about the method and numerical representation. To me, these are things defined by the program (the software), and could be handled by defining separate VOResource for "Program" or "Software Project".
If this works looks interesting to anyone, I would be glad to write up a fuller description, any even put some documentation in the Schema and instance documents.
I plagiarized heavily from both them SNAP Data Model, and the Spectral Schema, so any credit should go to Gerard and the DAL, Data Modeling group, and annoyed comments sent my way.
--Rick