[Volute] r4889 - trunk/projects/time-domain/time-series/note

Volute commit messages volutecommits at g-vo.org
Fri Apr 6 11:07:18 CEST 2018


Author: lmichel
Date: Fri Apr  6 11:07:18 2018
New Revision: 4889

Log:
LM contrib corrections pass#1

Modified:
   trunk/projects/time-domain/time-series/note/TSSerializationNote.pdf
   trunk/projects/time-domain/time-series/note/TSSerializationNote.tex
   trunk/projects/time-domain/time-series/note/laurent.tex

Modified: trunk/projects/time-domain/time-series/note/TSSerializationNote.pdf
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/projects/time-domain/time-series/note/TSSerializationNote.tex
==============================================================================
--- trunk/projects/time-domain/time-series/note/TSSerializationNote.tex	Fri Apr  6 09:18:06 2018	(r4888)
+++ trunk/projects/time-domain/time-series/note/TSSerializationNote.tex	Fri Apr  6 11:07:18 2018	(r4889)
@@ -6,7 +6,7 @@
 \lstloadlanguages{sh,make,[latex]tex}
 \lstset{flexiblecolumns=true,numberstyle=\small,showstringspaces=False,
   identifierstyle=\texttt,defaultdialect=[latex]tex,language=tex}
-
+\usepackage{makecell}
 \usepackage{todonotes}
 
 \usepackage[utf8]{inputenc}

Modified: trunk/projects/time-domain/time-series/note/laurent.tex
==============================================================================
--- trunk/projects/time-domain/time-series/note/laurent.tex	Fri Apr  6 09:18:06 2018	(r4888)
+++ trunk/projects/time-domain/time-series/note/laurent.tex	Fri Apr  6 11:07:18 2018	(r4889)
@@ -1,45 +1,47 @@
 \subsection{Laurent's approach}
 
-The VO-DML workflow is 2 folds 1) The model serialization in a \textit{vo-dml.xml} file (REC process currently close to the end) 2) the data mapping. 
+The VO-DML workflow is 2 folds 1) The model serialization in a \textit{model.vo-dml.xml} file (REC process currently close to complete) 2) the data mapping. 
 This last step consists in an XML bloc on the top of the VOTAble acting as a bridge between the model and the data. 
 So that, a client can easily build model instances by exploring that mapping bloc. 
-The VO-DML concepts are accepted by the community but the mapping syntax may appear as too complex making both data annotation process and VOTable parsing difficult.   
+The VO-DML concepts are endorsed by the community but the mapping syntax may appear as too complex making both data annotation process and VOTable parsing difficult.   
 
 \begin{itemize}
 \item VO-DML workflow ++
 \begin{itemize}
-\item Powerfull model serialization
+\item Enable to map any modelling feature
 \item Mapping block independent from the VOTable content
 \begin{itemize}
 \item No dependency with the VOTable schema
 \item Easiness to join data taken out from different tables
-\item Easy to skip for client not model aware
+\item Easy to skip for clients not model aware
 \end{itemize}
 \end{itemize}
 \item VO-DML workflow --
 \begin{itemize}
-\item Mapping syntax very chatty
-\item Coupling bewteen the mapping leaves and the VOTable data structure. For instance, the mapping has to change when a value is moved from a PARAM to a FIELD  
+\item Obscure and chatty mapping syntax
+\item Coupling bewteen the mapping leaves and the VOTable data structure. For instance, the mapping has to be changed when a value is moved from a PARAM to a FIELD  
 \end{itemize}
 \end{itemize}
 
-The present section explores an simplified mapping syntax relying on the strengths of the VO-DML workflow while facilitating the job of both data providers and data consumers.
+The present section explores a possible simplification of the mapping syntax relying on the strengths of the VO-DML workflow while targeting an easier job for both data providers and data consumers.
+The syntax baseline is designed to provide general-purpose clients (e.g. Aladin, JS widget  \dots) with nothing more than what they need, considering that more advanced clients could retrive in any case any model features within the model itself.
+This simplification could also improve the reliability of the data annotation process.
 This is not a complete proposal, but a proof of concept validated on TD data.
 
 \subsubsection{Mapping Syntax}
 \paragraph{Basics}
 The design of this  mapping syntax being not complete, we just describe here the outlines of this simplification and the features required to map the present sample of time domain data. 
 
-The VODML block keeps split in 3 sections as shown below.
+The <VODML> block keeps split in 3 sections as shown below.
 
 \smallskip 
 \scriptsize
 \begin{tabular}{|r|l|}
 
 \hline
-   MODELS & References to all used models including imports \\
-   GLOBALS & Not implemented here \\   
-   TEMPLATES & \makecell[l]{One template per table} \\
+   <MODELS> & References to all referenced models (models + imports) \\
+   <GLOBALS> & Not implemented here \\   
+   <TEMPLATES> & \makecell[l]{One template per table} \\
 \hline
 \end{tabular}
 \normalsize
@@ -52,9 +54,9 @@
 \scriptsize
 \begin{tabular}{|r|l|}
 \hline
-   VALUE & \makecell[l]{Model leaf. It either points to a PARAM or a FIELD \\or it has its own value like a literal}  \\ \hline
-   INSTANCE & \makecell[l]{Denotes a class.\\ An INSTANCE is a tuple of elements which be either \\ VALUE, INSTANCE or COLLECTION}  \\ \hline
-   COLLECTION & \makecell[l]{Denotes a list or an array. \\ A collection can contain  be either \\ VALUE, INSTANCE or COLLECTION} \\\hline
+   <VALUE> & \makecell[l]{Model leaf. It either points to a PARAM or a FIELD \\or it has its own value like a literal}  \\ \hline
+   <INSTANCE> & \makecell[l]{Denotes a class.\\ An <INSTANCE> is a tuple of elements which can be either \\ <VALUE>, <INSTANCE> or <COLLECTION>}  \\ \hline
+   <COLLECTION> & \makecell[l]{Denotes a list or an array. \\ A collection can contain  be either \\ <VALUE>, <INSTANCE> or <COLLECTION>} \\\hline
 \end{tabular}
 \normalsize
 \smallskip 
@@ -66,33 +68,33 @@
 \begin{tabular}{|r|c|c|c|c|c|c|}
 \hline
     Attribute:     & \textbf{@dmrole} & \textbf{@dmtype} & \textbf{@ref} & \textbf{@tableref} & \textbf{@size} & \textbf{@value} \\ \hline
-   VALUE  & mand. & none & mand. if no @value & none & none & mand. if no @ref \\ \hline   
-   INSTANCE  & mand. & opt. & none & opt. & none & none \\ \hline  
-  COLLECTION  & mand. & none & none & none & opt & none \\ \hline
+   <VALUE>  & mand. & none & mand. if no @value & none & none & mand. if no @ref \\ \hline   
+   <INSTANCE>  & mand. & opt. & none & opt. & none & none \\ \hline  
+  <COLLECTION>  & mand. & none & none & none & opt & none \\ \hline
 
 \end{tabular}
 \normalsize
 \smallskip 
 
-\paragraph{VALUE}
-The @dmrole attribute is the one set in the VO-DML model. Other VO-DML attributes (e.g. dmtype) can be retrieved in the VO-DML file from both VALUE location and dmrole.
+\paragraph{<VALUE>}
+The @dmrole attribute is the one set in the VO-DML model. Other VO-DML attributes (e.g. @dmtype) can be retrieved in the VO-DML file from the location of the <VALUE> element and from its @dmrole.
 \begin{itemize}
-\item If a VALUE element has a @ref attribute but no @value, its value is taken out from the refered element of the table refered by the current TEMPLATES. The client must first search in the FIELDS, and then in the PARAMS. If the VALUE points onto a FIELD but without specified multiplicity, the client will take the values of the first row.
-\item If a VALUE element has a @value attribute but no @ref, the value of @value is taken.
-\item If a VALUE element has both @value and @ref, the client must first to solve @ref and then @value.
+\item If a <VALUE> element has a @ref attribute but no @value, its value is taken out from the refered element of the table refered by the current <TEMPLATES>. The client must first search in the <FIELD>, and then in the <PARAM>. If the <VALUE> element located out of a <COLLECTION> block points onto a <FIELD>, the client will take the values of the first row.
+\item If a <VALUE> element has a @value attribute but no @ref, the value of @value is taken.
+\item If a <VALUE> element has both @value and @ref, the client must first solve @ref and then @value.
 \end{itemize}
 
-\paragraph{INSTANCE}
+\paragraph{<INSTANCE>}
 The @dmrole attribute is the one set in the VO-DML model.
 \begin{itemize}
-\item An INSTANCE without @dmtype attribute matches the type set in the VO-DML file. Otherwise @dmtype can specify a subtype of the model one. This feature is used to support abstract classes.
-\item An INSTANCE with a @tableref is mapped in the TEMPLATES designated by @tableref and having the same @dmrole.
+\item An <INSTANCE> without @dmtype attribute matches the type set in the VO-DML file. Otherwise, @dmtype can specify a subtype of the dmtype read in the model. This feature is used to support abstract classes.
+\item An <INSTANCE> with a @tableref is mapped in the <TEMPLATES> designated by @tableref and having the same @dmrole.
 \end{itemize}
 
-\paragraph{COLLECTION}
-The @dmrole attribute is the one set in the VO-DML model. A the COLLECTION elements must have the same type. The number elements in a collection is specified the @size attribute.
+\paragraph{<COLLECTION>}
+The @dmrole attribute is the one set in the VO-DML model. All <COLLECTION> elements must have the same dmtype. The number of elements in a collection is specified the @size attribute.
 \begin{itemize}
-\item A COLLECTION without @size attribute contains one instance of each element mapped (see example below)
+\item A <COLLECTION> without @size attribute contains one instance of each element mapped (see example below)
 \tiny 
 \begin{lstlisting}[language=xml]
 <collection dmrole='Axes'>
@@ -108,7 +110,7 @@
 \end{lstlisting}
 \normalsize
 
-\item A COLLECTION with a @size attribute contains as many instances of the mapped element as requested by @size. To be consistant, when @size is set, COLLECTION must contain only one mapped entity. If @size equals to * or -1, the collection is populated as long as there is incoming data. This is for instance the case when the COLLECTION maps photometric points read row per row in a table.
+\item A <COLLECTION> with a @size attribute contains as many instances of the mapped elements as requested by @size. To be consistant, when @size is set, <COLLECTION> must have one unique child containing only one mapped entity. 
 \tiny  
 \begin{lstlisting}[language=xml]
 <collection dmrole='Points' size='-1'>
@@ -116,22 +118,26 @@
         .....
     </instance>
 </collection>
+
 \end{lstlisting}
 \normalsize
+If @size equals to * or -1, the collection is populated as long as data are available. For instance, this is the case when the <COLLECTION> maps photometric points which are read row per row in the table.
 \end{itemize}
 
 \subsubsection{Workflow}
 The model used for these serializations, designed with Modelio 3.5, has been presented at (ref ivoa). This serialization has also been tested with SparseCube but the outcomes are less advanced.
-This demonstrator used for the serialization of the data sample relies on 2 specific Python tools especially developped but which can be seen as seeds for further developments.
+This demonstrator used for the serialization of the data sample relies on 2 specific Python tools developed onj this occasion but possibly reusable as seeds for further developments.
 
 \begin{itemize}
-\item \textit{transform.py} reads a VO-DML model and genererates a single VODML block with unresolved references. The tool supports directives specifying which classes must be used in replacement of the abstract ones. The VODML block must be inserted by hand in the VOtable to be annotated. It must be split in multiple TEMPLATES if data are spread out on muliple tables. The references to actual FIELD and PARAM must also be set by hand.
+\item \textit{transform.py} reads a VO-DML model and genererates a single <VODML> block with unresolved references. The tool supports directives specifying which classes must be used in replacement of the abstract ones. The <VODML> block must be inserted by hand in the VOtable to be annotated. It must be split in multiple <TEMPLATES> if data are spread out on muliple tables. The references to actual <FIELD> and <PARAM> must also be set by hand.
 
-\item \textit{transform.py} is a basic client which plots the timeseries from the VOTable. The key point is that  \textit{transform.py} is able, to some extent, to read any VOTable mapped with the model.
+\item \textit{transform.py} is a basic client which plots the annotated timeseries. The key point is that  \textit{transform.py} is able, to some extent, to read any VOTable mapped with the model.
 
 \end{itemize}
 
 \subsubsection{Conclusions and Prospects}
-This approach confirms the power and versatility of the VO-DML workflow since it doesn't use any feature external to the VODML modeling effort. The main outcome is that a client knowing a model is by construction able to read VOTable annotated with that model. There no need to adapt the client code to specific data collection as long as they are are not too much exotic. The added value of the light syntax sketched here is the same outcomes can be reached with more compact and more readable annotations. This opens the way for light clients such as JavaScript widgets which could have difficulties to process hundreds of XML lines each time they have to parse a VOTable.
+This approach confirms the power and versatility of the VO-DML workflow since it doesn't use any feature external to the VO-DML ecosystem. The main outcome is that clients knowing a model are able by construction to read VOTables annotated with that model. There no need to adapt the client code to specific data collection as long as they are are not too much exotic. 
+The added value of the light syntax sketched here is that the same outcomes can be reached with more compact and more readable annotations. 
+This opens the way for light clients such as JavaScript widgets which could have difficulties to process hundreds of XML lines each time they have to parse a VOTable.
  
 


More information about the Volutecommits mailing list