diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml
index e49dd3f..d9e265e 100644
--- a/.github/workflows/preview.yml
+++ b/.github/workflows/preview.yml
@@ -18,7 +18,7 @@ on:
branches:
- master
- wd-v1.0
- - draft-0.1
+ - apps-review
- pr-1.0
jobs:
diff --git a/.gitignore b/.gitignore
index 5a8a6a2..fafef6c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -59,4 +59,4 @@ pom.xml.tag
trash/*
exercise*
-test-date
\ No newline at end of file
+test-date/*
\ No newline at end of file
diff --git a/doc/MANGO.tex b/doc/MANGO.tex
index 4cd9d21..58a9f88 100644
--- a/doc/MANGO.tex
+++ b/doc/MANGO.tex
@@ -207,8 +207,9 @@ \subsection{Requirements}
\item Multi-columns quantities
\begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
- \item MANGO must be able to provide an accurate description of properties which attributes are spread
- out on multiple columns (e.g. positions, errors).
+ \item MANGO needs to provide accurate description of multi-attribute properties (e.g. positions, errors).
+ Whether these are stored in separate columns and need to be linked back is an implementation detail
+ that it’s being taken care by MIVOT.
\item MANGO must be able to describe errors with the most common shapes (symmetric values, correlation
or covariance matrices, ellipses), all with different confidence levels.
Such complex quantities cannot be reconstructed from simple field descriptions, but with a model
@@ -225,11 +226,12 @@ \subsection{Requirements}
\item Connection of quantities :
\begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
- \item MANGO must be able to setup links between different properties of the same table.
+ \item MANGO must be able to setup links between different properties of the same MANGO object.
This can be relevant for instance for attaching detection likelihoods with source positions
or to tag properties with timestamps.
- \item MANGO must be able to link MANGO instances to each other, allowing for instance to connect one
- source with all of its detections.
+ \item MANGO must be able to link different objects. For example,
+ it should be possible to connect sources with their detections,
+ with both being represented as separate MANGO objects.
\end{itemize}
\end{itemize}
@@ -325,37 +327,28 @@ \subsubsection{Property Identification}
\subsubsection{MANGO and MIVOT: 2 Strategies for Structuring Tabular Data}
-MANGO is primarily used to organise tabular data provided by TAP services \citep{2019ivoa.spec.0927D}
-other DAL nodes (one of the reference implementation is based on a Vizier SCS).
-To achieve this, table rows must be linked to the model using MIVOT annotations.
-We propose two strategies for establishing this mapping:
-\begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
- \item Single Object per Row: Each table row is treated as a single object, a \texttt{MangoObject} instance.
- with its properties grouped within a container or dock.
- \item Scattered Independent Quantities: Each table row is considered as a collection of independent quantities.
-\end{itemize}
-\hfill \break
-
-MIVOT annotations support both approaches:
+MANGO is used to represent catalogue data which are typically provided in tabular
+form by TAP services \citep{2019ivoa.spec.0927D}
+or other DAL nodes (one of the reference implementation is based on a Vizier SCS).
+The linking between MANGO instances and table row elements is provided by MIVOT annotations.
+There are two possible strategies for establishing this mapping:
\begin{itemize}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
- \item MANGO as a Global View: This configuration enables full utilisation of the
- model's features. Properties can be interconnected, data rows can be identified
- and treated as individual entities (MANGO objects) that can be linked together to describe,
- for example, sources with their detections or orbiting systems.
- This approach allows for serialisation formats like XML or JSON, which often require
- a unique root.
- However, the annotation process might be slightly more complex due to additional class levels.
- \item MANGO as a Sparse Parameter View: In this simpler approach, the data mapping is a
- flat set of independent objects. Clients can iterate through these objects and process
+ \item \textit{MANGO as a Global View}: Each table row is treated as a single object,
+ a \texttt{MangoObject} instance.
+ Modelled quantities are then grouped within a container, the MANGO property dock.
+ This approach makes full use of the model's features.
+ Properties can be linked together to describe entities, such as sources and their detections,
+ or orbiting systems.
+ This approach allows serialisation formats such as XML or JSON, which require a unique root.
+ \item \textit{MANGO as a Sparse Parameter View}: Each table row is treated as a flat set of independent
+ model components (the MANGO properties).
+ Clients can iterate through these objects and process
the entities of interest individually.
- It's important to note that such a client could also handle data mapped to the full MANGO schema.
- The annotation process might be less complex on the server side.
\end{itemize}
-This document does not favour one approach over the other.
-The decision ultimately rests with the data providers.
-However, both options are based on the full-featured MANGO model.
+This standard does not favour one approach over the other.
+The decision ultimately rests with the implementers.
%\input{model.tex}
\input{model_toc.tex}
diff --git a/doc/Makefile b/doc/Makefile
index cd18a2d..3179e32 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -7,7 +7,7 @@ DOCNAME = MANGO
DOCVERSION = 1.0
# Publication date, ISO format; update manually for "releases"
-DOCDATE = 2025-08-07
+DOCDATE = 2025-12-18
# What is it you're writing: NOTE, WD, PR, REC, PEN, or EN
DOCTYPE = PR
diff --git a/doc/ivoatexmeta.tex b/doc/ivoatexmeta.tex
index d8fa292..1facd64 100644
--- a/doc/ivoatexmeta.tex
+++ b/doc/ivoatexmeta.tex
@@ -1,7 +1,7 @@
% GENERATED FILE -- edit this in the Makefile
\newcommand{\ivoaDocversion}{1.0}
-\newcommand{\ivoaDocdate}{2025-08-07}
-\newcommand{\ivoaDocdatecode}{20250807}
+\newcommand{\ivoaDocdate}{2025-12-18}
+\newcommand{\ivoaDocdatecode}{20251218}
\newcommand{\ivoaDoctype}{PR}
\newcommand{\ivoaDocname}{MANGO}
\renewcommand{\ivoaBaseURL}{https://www.ivoa.net/documents/MANGO}
diff --git a/doc/model.tex b/doc/model.tex
index 949e85c..1f62c1d 100644
--- a/doc/model.tex
+++ b/doc/model.tex
@@ -34,7 +34,7 @@ \section{Model: mango }
%\end{center}
%\end{figure}
- The purpose of MANGO, which stands for MO-del for AN-notating G-eneric O-objects, is to add an upper level of description to the tabular data of query responses. It allows metadata to be extended, complex quantities to be reconstructed from column values, and properties to be linked. It also allows to specify the origin af the data.
+ The purpose of MANGO is to provide a higher level of description for multi-attribute properties. When used with MIVOT annotations, it enables tabular data to be represented as structured objects. This enables the metadata representation to be improved and complex quantities to be reconstructed from column values. Modelled properties can be linked to each other. MANGO also enables the origin of the data to be specified.
\subsection{AssociatedMangoObject}
\label{sect:AssociatedMangoObject}
@@ -166,7 +166,7 @@ \section{Model: mango }
\textbf{vodml-id: DateTime.dateTime} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:datetime}} \newline
\textbf{multiplicity: 1} \newline
- The timestamp value is always given as a string. The way to process this string is given by the representation mode. It can represent an ISO date or a real value (e.g. for MJD mjd timestamps).
+ Data type for timestamps and their representation. Timestamps are modeled by a single value and a representation mode. There is no time scale associated with \texttt{mango:DateTime}. The scale is either imposed by the representation mode or defined by the time coordinate system relevant for the host object,
\subsection{EpochPosition}
@@ -184,13 +184,13 @@ \section{Model: mango }
\textbf{vodml-id: EpochPosition.longitude} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model: The longitude of the Point, as a Quantity with angular units (see \texttt{coords:LonLatPoint.lon}.
+ This parameter corresponds to the longitude as described by the \texttt{coords} data model: \textit{The longitude of the Point, as a Quantity with angular units} (see \texttt{coords:LonLatPoint.lon}). It is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:Position} but applied to the \texttt{mango:EpochPosition} context.
\subsubsection{EpochPosition.latitude}
\textbf{vodml-id: EpochPosition.latitude} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model: The latitude of the Point, as a Quantity with angular units (see \texttt{coords:LonLatPoint.lon}).
+ This parameter corresponds to the latitude as described by the \texttt{coords} data model: \textit{The latitude of the Point, as a Quantity with angular units} (see \texttt{coords:LonLatPoint.lat}). It is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model:
\subsubsection{EpochPosition.parallax}
\textbf{vodml-id: EpochPosition.parallax} \newline
@@ -202,19 +202,19 @@ \section{Model: mango }
\textbf{vodml-id: EpochPosition.radialVelocity} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:Coords.point} component of \texttt{meas:Velocity} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by the \texttt{coords} data model: The measured Velocity along of the radial axis (see \texttt{meas:Velocity.coord} in \cite{2022ivoa.spec.1004R}).
+ This parameter corresponds to the radial velocity as described by the \texttt{coords} data model: \textit{The measured Velocity along of the radial axis } (see \texttt{meas:Velocity.coord} in \cite{2022ivoa.spec.1004R}). It is a clone of the \texttt{coords:Coords.point} component of \texttt{meas:Velocity} but applied to the \texttt{mango:EpochPosition} context.
\subsubsection{EpochPosition.pmLongitude}
\textbf{vodml-id: EpochPosition.pmLongitude} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:ProperMotion} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model: Velocity along the longitude axis in angular distance per unit time (see \texttt{meas:ProperMotion.coord}).
+ This parameter corresponds to the proper motion longitude as described by the \texttt{coords} data model: \textit{Velocity along the longitude axis in angular distance per unit time} (see \texttt{meas:ProperMotion.coord}). It is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:ProperMotion} but applied to the \texttt{mango:EpochPosition} context.
\subsubsection{EpochPosition.pmLatitude}
\textbf{vodml-id: EpochPosition.pmLatitude} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:ProperMotion} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model: Velocity along the latitude axis in angular distance per unit time (see \texttt{meas:ProperMotion.coord}).
+ This parameter corresponds to the proper motion latitude as described by the \texttt{coords} data model: \textit{Velocity along the latitude axis in angular distance per unit time} (see \texttt{meas:ProperMotion.coord}). It is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:ProperMotion} but applied to the \texttt{mango:EpochPosition} context.
\subsubsection{EpochPosition.obsDate}
\textbf{vodml-id: EpochPosition.obsDate} \newline
@@ -222,8 +222,8 @@ \section{Model: mango }
\textbf{multiplicity: 1} \newline
Observation date expressed within the common time system if present. This attribute, if set, supersedes the epoch possibly given with the spatial coordinate system (see the above). Figure \ref{datetime} shows up the hierarchy of the primitive types representing the observation dates.
- \subsubsection{EpochPosition.pmCosLat\_applied}
- \textbf{vodml-id: EpochPosition.pmCosLat\_applied} \newline
+ \subsubsection{EpochPosition.pmCosLatApplied}
+ \textbf{vodml-id: EpochPosition.pmCosLatApplied} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:boolean}} \newline
\textbf{multiplicity: 1} \newline
It is common, though not universal, practice to quote longitudinal proper motion pre-multiplied by cos(latitude) so that the magnitude of the quantity is not affected by its longitudinal position. We do not constrain the value to one form or the other in this model. Instead, this flag enables providers to convey whether or not the factor has been applied (see \texttt{meas:ProperMotion.cosLat\_applied})
@@ -430,16 +430,11 @@ \section{Model: mango }
\label{sect:Property}
Class holder for a \textit{flavor} of property’ ie: there should be a Property subclass for each \textit{flavor} of Property being hosted. The property types are not limited to “physical or calculated” (eg: flags, assigned labels) This class specifies both type and role of the property, and hosts the property instance itself.
- \noindent \textbf{constraint} \newline
- \indent \textbf{detail: Property.One association at the time
- }\newline
-
-
\subsubsection{Property.semantics}
\textbf{vodml-id: Property.semantics} \newline
\textbf{type: \hyperref[sect:VocabularyTerm]{mango:VocabularyTerm}} \newline
\textbf{multiplicity: 0..1} \newline
- Reference to a semantic concept giving the nature of the property or of the set made of the property and its associated properties. The semantics field contains a URI for a concept that describes the meaning of the property. This attribute is intended to be machine-readable and to assist automated link selection, presentation, and usage. The value is always interpreted as a URI; relative URIs (Berners-Lee and Fielding et al., 2005) are completed using the base URI of the core DataLink vocabulary, http://www.ivoa.net/rdf/datalink/core. Terms from this vocabulary must always be written as relative URIs. This means that for concepts from the core vocabulary, the value in the semantics fieldz always starts with a hash. (datalink1.1). The semantics concept applies to a single property or to the set made of the property and its associated properties (e.g. position and flag).
+ Reference to a semantic concept giving the nature of the property or of the set made of the property and its associated properties. The semantics field contains a URI for a concept that describes the meaning of the property. This attribute is intended to be machine-readable and to assist automated link selection, presentation, and usage. The value is always interpreted as a URI; relative URIs (Berners-Lee and Fielding et al., 2005) are completed using the base URI of the core DataLink vocabulary, \url{http://www.ivoa.net/rdf/datalink/core}. Terms from this vocabulary must always be written as relative URIs. This means that for concepts from the core vocabulary, the value in the semantics fields always starts with a hash. (datalink1.1). The semantics concept applies to a single property or to the set made of the property and its associated properties (e.g. position and flag).
\subsubsection{Property.description}
\textbf{vodml-id: Property.description} \newline
@@ -525,7 +520,7 @@ \section{Model: mango }
\subsection{jd}
\label{sect:jd}
- Primitive type for observation dates expressed as a Julian Date (e.g. 25213).
+ Primitive type for observation dates expressed as a Julian Date (e.g. 2460895.1).
\subsection{FootprintSerialization}
\label{sect:FootprintSerialization}
diff --git a/doc/model_toc.tex b/doc/model_toc.tex
index 3bce9ea..55f6697 100644
--- a/doc/model_toc.tex
+++ b/doc/model_toc.tex
@@ -1,7 +1,7 @@
\pagebreak
\section{Model: mango}
- The purpose of MANGO, which stands for MO-del for AN-notating G-eneric O-objects, is to add an upper level of description to the tabular data of query responses. It allows metadata to be extended, complex quantities to be reconstructed from column values, and properties to be linked. It also allows to specify the origin af the data.
+ The purpose of MANGO is to provide a higher level of description for multi-attribute properties. When used with MIVOT annotations, it enables tabular data to be represented as structured objects. This enables the metadata representation to be improved and complex quantities to be reconstructed from column values. Modelled properties can be linked to each other. MANGO also enables the origin of the data to be specified.
\subsection{MangoObject}
\label{sect:MangoObject}
@@ -56,15 +56,12 @@ \section{Model: mango}
\subsection{Property}
\label{sect:Property}
Class holder for a \textit{flavor} of property’ ie: there should be a Property subclass for each \textit{flavor} of Property being hosted. The property types are not limited to “physical or calculated” (eg: flags, assigned labels) This class specifies both type and role of the property, and hosts the property instance itself.
- \noindent \textbf{constraint} \newline
- \indent \textbf{detail: Property.One association at the time
- }\newline
\subsubsection{Property.semantics}
\textbf{vodml-id: Property.semantics} \newline
\textbf{type: \hyperref[sect:VocabularyTerm]{mango:VocabularyTerm}} \newline
\textbf{multiplicity: 0..1} \newline
- Reference to a semantic concept giving the nature of the property or of the set made of the property and its associated properties. The semantics field contains a URI for a concept that describes the meaning of the property. This attribute is intended to be machine-readable and to assist automated link selection, presentation, and usage. The value is always interpreted as a URI; relative URIs (Berners-Lee and Fielding et al., 2005) are completed using the base URI of the core DataLink vocabulary, http://www.ivoa.net/rdf/datalink/core. Terms from this vocabulary must always be written as relative URIs. This means that for concepts from the core vocabulary, the value in the semantics fieldz always starts with a hash. (datalink1.1). The semantics concept applies to a single property or to the set made of the property and its associated properties (e.g. position and flag).
+ Reference to a semantic concept giving the nature of the property or of the set made of the property and its associated properties. The semantics field contains a URI for a concept that describes the meaning of the property. This attribute is intended to be machine-readable and to assist automated link selection, presentation, and usage. The value is always interpreted as a URI; relative URIs (Berners-Lee and Fielding et al., 2005) are completed using the base URI of the core DataLink vocabulary, \url{http://www.ivoa.net/rdf/datalink/core}. Terms from this vocabulary must always be written as relative URIs. This means that for concepts from the core vocabulary, the value in the semantics fields always starts with a hash. (datalink1.1). The semantics concept applies to a single property or to the set made of the property and its associated properties (e.g. position and flag).
\subsubsection{Property.description}
\textbf{vodml-id: Property.description} \newline
@@ -103,14 +100,13 @@ \section{Date Time Types}
\caption{datetime}
\label{datetime}
\end{figure}
-
\subsection{mjd}
\label{sect:mjd}
Primitive type for observation dates expressed as a Modified Julian Date (e.g. 60288.8).
\subsection{jd}
\label{sect:jd}
- Primitive type for observation dates expressed as a Julian Date (e.g. 25213).
+ Primitive type for observation dates expressed as a Julian Date (e.g. 2460895.1).
\subsection{year}
\label{sect:year}
@@ -120,21 +116,8 @@ \section{Date Time Types}
\label{sect:iso}
Primitive type for observation dates expressed as an ISO Date (e.g. "2025-08-07T09:29:14").
-\section{Epoch Position Property}
-The emergence of missions such as Gaia \citep{2018A&A...616A...1G}, which are capable of
-observing objects over long periods of time with very high astrometric accuracy,
-combined with great spectroscopic capabilities, making it possible to link star 3D positions
-with 3D velocities, thus defining a 6-dimensional astrometric solution,
-tagged with the epoch when the parameters were set.
-
-The enormous scientific impact of this mission justifies the fact that the MANGO \texttt{EpochPostion}
-components are all based on these astrometric parameters and the way in which they are correlated.
-
-This has resulted in a set of 23 parameters, which might lead
-to a very complex model, difficult to use in practice.
-For this reason, the parameters have been split in 3 flat subsets (position, correlations, errors)
- in order to facilitate the annotation process and the job of the clients
-that have to interpret them.
+\section{Epoch Position Properties}
+
\subsection{EpochPosition}
\begin{figure}[h]
\includegraphics[width=1.0\textwidth]{../model/EpochPosition.png}
@@ -148,13 +131,13 @@ \section{Epoch Position Property}
\textbf{vodml-id: EpochPosition.longitude} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model: The longitude of the Point, as a Quantity with angular units (see \texttt{coords:LonLatPoint.lon}.
+ This parameter corresponds to the longitude as described by the \texttt{coords} data model: \textit{The longitude of the Point, as a Quantity with angular units} (see \texttt{coords:LonLatPoint.lon}). It is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:Position} but applied to the \texttt{mango:EpochPosition} context.
\subsubsection{EpochPosition.latitude}
\textbf{vodml-id: EpochPosition.latitude} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model: The latitude of the Point, as a Quantity with angular units (see \texttt{coords:LonLatPoint.lon}).
+ This parameter corresponds to the latitude as described by the \texttt{coords} data model: \textit{The latitude of the Point, as a Quantity with angular units} (see \texttt{coords:LonLatPoint.lat}). It is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model:
\subsubsection{EpochPosition.parallax}
\textbf{vodml-id: EpochPosition.parallax} \newline
@@ -166,19 +149,19 @@ \section{Epoch Position Property}
\textbf{vodml-id: EpochPosition.radialVelocity} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:Coords.point} component of \texttt{meas:Velocity} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by the \texttt{coords} data model: The measured Velocity along of the radial axis (see \texttt{meas:Velocity.coord} in \cite{2022ivoa.spec.1004R}).
+ This parameter corresponds to the radial velocity as described by the \texttt{coords} data model: \textit{The measured Velocity along of the radial axis } (see \texttt{meas:Velocity.coord} in \cite{2022ivoa.spec.1004R}). It is a clone of the \texttt{coords:Coords.point} component of \texttt{meas:Velocity} but applied to the \texttt{mango:EpochPosition} context.
\subsubsection{EpochPosition.pmLongitude}
\textbf{vodml-id: EpochPosition.pmLongitude} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:ProperMotion} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model: Velocity along the longitude axis in angular distance per unit time (see \texttt{meas:ProperMotion.coord}).
+ This parameter corresponds to the proper motion longitude as described by the \texttt{coords} data model: \textit{Velocity along the longitude axis in angular distance per unit time} (see \texttt{meas:ProperMotion.coord}). It is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:ProperMotion} but applied to the \texttt{mango:EpochPosition} context.
\subsubsection{EpochPosition.pmLatitude}
\textbf{vodml-id: EpochPosition.pmLatitude} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:RealQuantity}} \newline
\textbf{multiplicity: 1} \newline
- This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:ProperMotion} but applied to the \texttt{mango:EpochPosition} context. It matches the description given by \texttt{coords} data model: Velocity along the latitude axis in angular distance per unit time (see \texttt{meas:ProperMotion.coord}).
+ This parameter corresponds to the proper motion latitude as described by the \texttt{coords} data model: \textit{Velocity along the latitude axis in angular distance per unit time} (see \texttt{meas:ProperMotion.coord}). It is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:ProperMotion} but applied to the \texttt{mango:EpochPosition} context.
\subsubsection{EpochPosition.obsDate}
\textbf{vodml-id: EpochPosition.obsDate} \newline
@@ -186,8 +169,8 @@ \section{Epoch Position Property}
\textbf{multiplicity: 1} \newline
Observation date expressed within the common time system if present. This attribute, if set, supersedes the epoch possibly given with the spatial coordinate system (see the above). Figure \ref{datetime} shows up the hierarchy of the primitive types representing the observation dates.
- \subsubsection{EpochPosition.pmCosLat\_applied}
- \textbf{vodml-id: EpochPosition.pmCosLat\_applied} \newline
+ \subsubsection{EpochPosition.pmCosLatApplied}
+ \textbf{vodml-id: EpochPosition.pmCosLatApplied} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:boolean}} \newline
\textbf{multiplicity: 1} \newline
It is common, though not universal, practice to quote longitudinal proper motion pre-multiplied by cos(latitude) so that the magnitude of the quantity is not affected by its longitudinal position. We do not constrain the value to one form or the other in this model. Instead, this flag enables providers to convey whether or not the factor has been applied (see \texttt{meas:ProperMotion.cosLat\_applied})
@@ -315,7 +298,10 @@ \section{Epoch Position Property}
Position error; can be an \texttt{Ellipse} or a \texttt{Symmetrical2D}.
\section{Photometric and Spectroscopic Properties}
-
+This section brings together all the classes that model
+brightness and color of the observed sources.
+The definition of the photometric calibrations and the
+photometric filters are imported from \texttt{PhotDM}.
\subsection{Brightness}
\label{sect:Brightness}
Observed brightness of the \texttt{MangoObject}. The purpose of this property is to gather a brightness value with its error and the its photometric calibration The distinction between fluxes and magnitudes is made by the unit. The photometric calibration is modeled by the \texttt{Phot} data model (1.1).
@@ -385,13 +371,13 @@ \section{Photometric and Spectroscopic Properties}
\subsection{ColorDefinition}
\label{sect:ColorDefinition}
Enumeration of the different types of colors supported by the model.
- \noindent \underline{Enumeration Literals}
+ \newline \newline \noindent \underline{Enumeration Literals}
\vspace{-\parsep}
\small
\begin{itemize}
- \item[\textbf{ColorIndex}]: \textbf{vodml-id:} ColorDefinition.ColorIndex \newline
+ \item \textbf{ColorIndex}: \textbf{vodml-id:} ColorDefinition.ColorIndex \newline
\textbf{description:} Difference of magnitudes: typically $M_B - M_v$
- \item[\textbf{HardnessRatio}]: \textbf{vodml-id:} ColorDefinition.HardnessRatio \newline
+ \item \textbf{HardnessRatio}: \textbf{vodml-id:} ColorDefinition.HardnessRatio \newline
\textbf{description:} Normalized ratio of fluxes: $(F_{EB2} - F_{EB1}) / (F_{EB2} + F_{EB1})$
\end{itemize}
\normalsize
@@ -476,36 +462,6 @@ \section{Other Properties}
\textbf{multiplicity: 1} \newline
Free text description of the allowed value for a \texttt{Status}
- \subsection{BitField}
-
- \subsection{DataLink}
- \label{sect:DataLink}
- This property describes static links pointing to some external data. This allows services that do not implement DataLink services to expose linked data as flattened DataLink (1.1) responses.
-
- \subsubsection{DataLink.content\_type}
- \textbf{vodml-id: DataLink.content\_type} \newline
- \textbf{type: \hyperref[sect:ivoa]{ivoa:string}} \newline
- \textbf{multiplicity: 1} \newline
- mime type of the content the link returns (see DataLink 1.1)
-
- \subsubsection{DataLink.access\_url}
- \textbf{vodml-id: DataLink.access\_url} \newline
- \textbf{type: \hyperref[sect:ivoa]{ivoa:anyURI}} \newline
- \textbf{multiplicity: 1} \newline
- contains an URL for downloading a single resource. There is no restriction on the type of resource accessed by the links.
-
- \subsubsection{DataLink.content\_qualifier}
- \textbf{vodml-id: DataLink.content\_qualifier} \newline
- \textbf{type: \hyperref[sect:ivoa]{ivoa:string}} \newline
- \textbf{multiplicity: 1} \newline
- Gives the nature of the thing or service that is returned by the link. The value is always interpreted as a URI. If the access\_url references a data product, the content\_qualifier field should define its product type . In this case the content qualifier value always starts with a hash completing the \url{http://www.ivoa.net/rdf/datalink/product-type} base URI. For \texttt{MangoObject} not linking to data products, content\_qualifier’s interpretation will be different, and the default vocabulary will be inappropriate. Full concept URIs will have to be used in this case. (DataLink 1.1)
-
- \subsubsection{DataLink.local\_semantics}
- \textbf{vodml-id: DataLink.local\_semantics} \newline
- \textbf{type: \hyperref[sect:ivoa]{ivoa:string}} \newline
- \textbf{multiplicity: 1} \newline
- Allows for identification of corresponding rows for different IDs in the same DataLink service where the combination of semantics, content\_type and content\_qualifier is not sufficient to identify them (see DataLink 1.1).
-
\subsection{Footprint}
\label{sect:Footprint}
Description of the spatial extent of the MANGO object (e.g. for dust clouds). Footprint is serialized as a string. \begin{itemize} \item The supported serialization modes are listed in the \texttt{FootprintSerialization} enumeration. \item If the space coordinate system is not embedded in the serialization mode, it can be defined by the \texttt{spaceSys} reference. \end{itemize}
@@ -531,15 +487,15 @@ \section{Other Properties}
\subsection{FootprintSerialization}
\label{sect:FootprintSerialization}
Enumeration of the supported serialization modes for the footprints
- \noindent \underline{Enumeration Literals}
+ \newline \newline \noindent \underline{Enumeration Literals}
\vspace{-\parsep}
\small
\begin{itemize}
- \item[\textbf{SMOC}]: \textbf{vodml-id:} FootprintSerialization.SMOC \newline
+ \item \textbf{SMOC}: \textbf{vodml-id:} FootprintSerialization.SMOC \newline
\textbf{description:} Label indicating that the footprint has been serialized as a SMOC \citep{2022ivoa.spec.0727F}. SMOC should be in equatorial ICRS. This overrides the attached space coordinate system (\texttt{spaceSys} reference). When using this serialisation, \texttt{spaceSys} can be ignored.
- \item[\textbf{STC-S}]: \textbf{vodml-id:} FootprintSerialization.STC-S \newline
+ \item \textbf{STC-S}: \textbf{vodml-id:} FootprintSerialization.STC-S \newline
\textbf{description:} Label indicating that the footprint has been serialized as a STC-S string (see \url{https://www.ivoa.net/documents/STC-S/20130917/index.html}). SMOC should be in equatorial ICRS. This overrides the attached space coordinate system (\texttt{spaceSys} reference). When using this serialisation, \texttt{spaceSys} can be ignored.
- \item[\textbf{POLYGON}]: \textbf{vodml-id:} FootprintSerialization.POLYGON \newline
+ \item \textbf{POLYGON}: \textbf{vodml-id:} FootprintSerialization.POLYGON \newline
\textbf{description:} Label indicating that the footprint has been serialized as a polygon as defined in \cite{2017ivoa.spec.0517D} section 3.3.7. Using the polygon serialization requires the space coordinate system to be defined.
\end{itemize}
\normalsize
diff --git a/doc/tap.tex b/doc/tap.tex
index 66a1781..576ed0d 100644
--- a/doc/tap.tex
+++ b/doc/tap.tex
@@ -39,18 +39,5 @@ \subsection{Storing MANGO Catalogs in TAP}
Once these are available, the mapper module can use 1) and 3) to get the properties to be included
in the response and 2) to build the mapping block.
-\subsection{ \emph{MANGOCore} Table}
-
-MANGO could also be used as a convenient way to find out what properties are available for the tables being served,
-or which tables come with the desired properties (e.g. give me all tables with both proper motion and G magnitude).
-
-This could be achieved with a \emph{MANGOCore} table located in the \emph{ivoa} schema.
-This table would have one rows per exposed table and one (or more) columns per exposed property.
-The fact that the MANGO properties are exposed as open collections complicated the definition
-of the \emph{MANGOCore} table, and at some point it will be necessary to choose which property
-to expose (or not) with this table.
-This \emph{MANGOCore} implementation topic is beyond the scope of the present document but the concept
-is another valuable use of MANGO.
-
diff --git a/doc/usecase_gaia.tex b/doc/usecase_gaia.tex
index aec597f..03f3631 100644
--- a/doc/usecase_gaia.tex
+++ b/doc/usecase_gaia.tex
@@ -1,4 +1,4 @@
-Gaia mission is producing the largest and more precise 3D map of our galaxy.
+Gaia mission is producing the largest and most precise 3D map of our galaxy.
Gaia core solution is able to solve the astrometric solution of more than 1
billion sources by complex models and algorithms \citep{2012A&A...538A..78L}.
diff --git a/doc/usecases.tex b/doc/usecases.tex
index 173f5e8..2472e11 100644
--- a/doc/usecases.tex
+++ b/doc/usecases.tex
@@ -1,4 +1,4 @@
-The main purpose of MANGO is to add an upper description level to the tabular data of query responses.
+The main purpose of MANGO is to add an higher description level to the tabular data of query responses.
MANGO is not designed to replace the meta-data already present in query responses, but on the contrary,
to provide a model-aware layer with structured classes to interpret them and exploit them in client applications.
@@ -9,7 +9,7 @@
%All the use-cases summarized below are detailed in appendix.
\subsubsection{GAIA}
-The GAIA mission is producing the largest and more precise 3D map of our galaxy.
+The GAIA mission is producing the largest and most precise 3D map of our galaxy.
The GAIA Astrometric Core Solution is able to provide the astrometry of more than 1
billion sources by complex models and algorithms \citep{2012A&A...538A..78L}.
Using a minimization problem approach, different detections identified on
@@ -216,9 +216,6 @@ \subsubsection{Client Use-cases}
This usage shows that MANGO must be designed in a way that individual measurements or quantities
can easily be identified as such and manipulated independently of the whole instance.
-This document does not recommend one approach over another.
-This is a matter for the data providers to decide.
-
\subsubsection{Xmatch tool }
The basic cross-match of two astronomical tables consists in associating pairs of sources -- one
from each table -- fulfilling a given angular distance based criterion.
diff --git a/implementations/datalink.xml b/implementations/datalink.xml
index 588ecd4..e0ed3fc 100644
--- a/implementations/datalink.xml
+++ b/implementations/datalink.xml
@@ -43,7 +43,7 @@
+ value="https://www.ivoa.net/rdf/datalink/core#derivation" />
diff --git a/implementations/gaia_with_mivot.xml b/implementations/gaia_with_mivot.xml
index bf9ef1d..7ec672d 100644
--- a/implementations/gaia_with_mivot.xml
+++ b/implementations/gaia_with_mivot.xml
@@ -197,7 +197,7 @@
-
+
@@ -210,7 +210,7 @@
-
+
diff --git a/mivot/mango/mango.EpochPosition.xml b/mivot/mango/mango.EpochPosition.xml
index 9a7a1b5..4284324 100644
--- a/mivot/mango/mango.EpochPosition.xml
+++ b/mivot/mango/mango.EpochPosition.xml
@@ -68,7 +68,7 @@ In some cases the errors might conflict with the correlations:
-
+
diff --git a/model/EpochPosition.png b/model/EpochPosition.png
index 46a5213..a7129f4 100644
Binary files a/model/EpochPosition.png and b/model/EpochPosition.png differ
diff --git a/model/mango.xmi b/model/mango.xmi
index 9484ac2..8fd6d47 100644
--- a/model/mango.xmi
+++ b/model/mango.xmi
@@ -1,558 +1,550 @@
-
-
-
-
-
+
+
+
+
+
-
- The purpose of MANGO, which stands for MO-del for AN-notating G-eneric O-objects, is to add an upper level of description to the tabular data of query responses. It allows metadata to be extended, complex quantities to be reconstructed from column values, and properties to be linked. It also allows to specify the origin af the data.
+
+ The purpose of MANGO is to provide a higher level of description for multi-attribute properties.
+When used with MIVOT annotations, it enables tabular data to be represented as structured objects.
+This enables the metadata representation to be improved and complex quantities to be reconstructed from column values. Modelled properties can be linked to each other. MANGO also enables the origin of the data to be specified.
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
<Enter note text here>
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
Root class of the model. MANGO instances are meant of be Source instances.
A source is something with an identifier and two docks: one for the parameters and one for the associated data.
-
-
+
+
Composition link pointing on all parameters attached to the source.
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
Unique identifier for a Source.
The uniqueness of that identifier is not managed by the model.
The format is free.
-
-
+
+
-
-
+
+
-
-
+
+
Class for associated data referenced by an URL
-
-
-
+
+
+
Mime type of the URL
-
-
+
+
Web endpoint
-
-
+
+
-
-
+
+
Reference to another MANGO instance that is part of the associated data.
-
-
+
+
Composition link pointing on one MANGO instance associated with the source.
-
-
+
+
Reference to a semantic concept giving the nature of the associated data.
As long as the vocabulary is not set, the possible values of this attribute are given by the LinkSemantic enumeration.
-
-
+
+
Free text description of the associated data
-
-
+
+
-
-
+
+
Reference to a particular measure of the Source.
This class is used to specify the type of the measure as well as its role.
-
-
+
+
<Enter note text here>
-
-
+
+
-
-
+
+
Reference to a semantic concept giving the nature of the parameter
As long as the vocabulary is not set, the possible values of this attribute are given by the ParamSemantic enumeration.
-
+
-
-
+
+
Free text description of the measure
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
Class grouping all parameters needed to define an object position at a given epoch. The space coordinate system is common to all attributes to insure the consistance between all of the instance parameters.
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class for the error attached to a EpochPosition. The component in this class represent the errors of individual parameters as well as errors due to the parameter correlations.
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
Root (abstract) class of the errors that can be attached to a MA?GO property. The class inherit from \texttt{meas:uncertainty} in order to be usable in the context of properties based on \texttt{Measures} classes.
-
-
+
+
Confidence level of the error, expressed in \sigma.
-
+
-
-
+
+
Symetrical error for 1D parameter.
-
-
-
+
+
+
Error amplitude.
-
-
+
+
Elliptical errror for 2D parameters such as the sky positions.
-
-
-
+
+
+
Half of the ellipse major axis.
-
-
+
+
Half of the ellipse minor axis.
-
-
+
+
Angle between the North Polar Cape (NCP) and the major axis. This angle must be positive taking into account that angles are positive from North to the East. The angle has its own unit.
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
Difference of mangnitudes: typically $M_B - M_v$
-
-
+
+
Normalized ratio of fluxes: $(F_{EB2} - F_{EB1}) / (F_{EB2} + F_{EB1})$
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
<Enter note text here>s
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
Reference article for the MANGO source
-
-
+
+
Article editor name
-
-
+
+
Bibcode or DOI of the reference article
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
License or Copyright text
-
-
+
+
Licence URI following the regostry practice. This should come from SPDX \url{https://spdx.org/licenses}. Creatives Commons (\url{https://creativecommons.org}) are also accepted.
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/model/property.png b/model/property.png
index 26b5191..0f127fe 100644
Binary files a/model/property.png and b/model/property.png differ
diff --git a/utils/processTOC.py b/utils/processTOC.py
index 8db7b75..a9d2450 100644
--- a/utils/processTOC.py
+++ b/utils/processTOC.py
@@ -17,6 +17,18 @@
vodml_path = os.path.join(base_path, "vo-dml")
desc_path = os.path.join(vodml_path, "sections")
+def format_enum(text):
+ """
+ The original XSLT writes enum literals out of the box
+ This feature is override here.
+ """
+ print("Push enum literals back in the box")
+ formatted_text = ""
+ pattern = r"\\item\[(.*)\]"
+ replacement = r"\\item \1"
+ formatted_text = (re.sub(pattern, replacement, text))
+ return formatted_text.replace("\\noindent \\underline", "\\newline \\newline \\noindent \\underline")
+
def extract_title(string):
"""
return the (sub)section title extracted from the Latex tag
@@ -60,6 +72,8 @@ def get_content(searched_title):
if "subsub" in line:
current_content += "\n"
current_content += f" {line}\n"
+
+
return current_content
def save_current_toc():
@@ -112,6 +126,7 @@ def main():
new_text += " \\subsection{" + subsection + "}\n"
new_text += get_content(subsection.strip()) + "\n"
+ new_text = format_enum(new_text)
# save the new document
print(f"Write rearranged document in {tex_omodel_path}")
with open(tex_omodel_path, "w") as output:
diff --git a/utils/toc.json b/utils/toc.json
index 8e40312..ad3415c 100644
--- a/utils/toc.json
+++ b/utils/toc.json
@@ -11,7 +11,7 @@
"year": {},
"iso": {}
},
- "Epoch Position Property (added)": {
+ "Epoch Position Properties (added)": {
"EpochPosition": {},
"EpochPositionCorrelations": {},
"EpochPositionErrors": {}
@@ -30,8 +30,6 @@
"Status": {},
"StatusValues": {},
"StatusValue": {},
- "BitField": {},
- "DataLink": {},
"Footprint": {},
"FootprintSerialization": {}
},
diff --git a/vo-dml/desc.mango.vo-dml.xml b/vo-dml/desc.mango.vo-dml.xml
index 0187170..96322ae 100644
--- a/vo-dml/desc.mango.vo-dml.xml
+++ b/vo-dml/desc.mango.vo-dml.xml
@@ -1,13 +1,15 @@
mango
- The purpose of MANGO, which stands for MO-del for AN-notating G-eneric O-objects, is to add an upper level of description to the tabular data of query responses. It allows metadata to be extended, complex quantities to be reconstructed from column values, and properties to be linked. It also allows to specify the origin af the data.
+ The purpose of MANGO is to provide a higher level of description for multi-attribute properties.
+When used with MIVOT annotations, it enables tabular data to be represented as structured objects.
+This enables the metadata representation to be improved and complex quantities to be reconstructed from column values. Modelled properties can be linked to each other. MANGO also enables the origin of the data to be specified.
Mango
Laurent Michel, Fran??ois Bonnarel, Gilles Landais, Mireille Louys, Marco Molinaro, Jesue Salgado
1.0
0.0
- 2025-08-07T10:20:59
+ 2025-12-11T13:52:24
ivoa
http://www.ivoa.net/xml/VODML/IVOA-v1.vo-dml.xml
@@ -31,7 +33,8 @@
year
year
- Primitive type for observation dates expressed as a year (e.g. 2015.5).
+ Primitive type for observation dates expressed as a year (e.g. 2015.5).
+
ivoa:datetime
@@ -40,7 +43,8 @@
iso
iso
- Primitive type for observation dates expressed as an ISO Date (e.g. "2025-08-07T09:29:14").
+ Primitive type for observation dates expressed as an ISO Date (e.g. "2025-08-07T09:29:14").
+
ivoa:datetime
@@ -49,7 +53,8 @@
mjd
mjd
- Primitive type for observation dates expressed as a Modified Julian Date (e.g. 60288.8).
+ Primitive type for observation dates expressed as a Modified Julian Date (e.g. 60288.8).
+
ivoa:datetime
@@ -58,7 +63,8 @@
jd
jd
- Primitive type for observation dates expressed as a Julian Date (e.g. 25213).
+ Primitive type for observation dates expressed as a Julian Date (e.g. 2460895.1).
+
ivoa:datetime
@@ -167,9 +173,12 @@ The list of supported values could be extended in the future with new endorsed \
DateTime.dateTime
dateTime
- The timestamp value is always given as a string.
-The way to process this string is given by the representation mode.
-It can represent an ISO date or a real value (e.g. for MJD mjd timestamps).
+ Data type for timestamps and their representation.
+Timestamps are modeled by a single value and a representation mode.
+There is no time scale associated with \texttt{mango:DateTime}.
+The scale is either imposed by the representation mode or defined by the
+time coordinate system relevant for the host object,
+
ivoa:datetime
@@ -362,10 +371,6 @@ them (see DataLink 1.1).
The property types are not limited to “physical or calculated” (eg: flags, assigned labels)
This class specifies both type and role of the property, and hosts the property instance itself.
-
- One association at the time
-
-
Property.semantics
semantics
@@ -377,11 +382,12 @@ This attribute is intended to be machine-readable and to assist automated link s
presentation, and usage.
The value is always interpreted as a URI; relative URIs (Berners-Lee and
Fielding et al., 2005) are completed using the base URI of the core DataLink
-vocabulary, http://www.ivoa.net/rdf/datalink/core. Terms from this
-vocabulary must always be written as relative URIs. This means that for
-concepts from the core vocabulary, the value in the semantics fieldz always
+vocabulary, \url{http://www.ivoa.net/rdf/datalink/core}. Terms from this
+vocabulary must always be written as relative URIs.
+This means that for concepts from the core vocabulary, the value in the semantics fields always
starts with a hash. (datalink1.1).
-The semantics concept applies to a single property or to the set made of the property and its associated properties (e.g. position and flag).
+The semantics concept applies to a single property or to the set made of the property and
+its associated properties (e.g. position and flag).
mango:VocabularyTerm
@@ -779,10 +785,11 @@ In some cases the errors might conflict with the correlations:
EpochPosition.longitude
longitude
- This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position}
+ This parameter corresponds to the longitude as described by the \texttt{coords} data model:
+\textit{The longitude of the Point, as a Quantity with angular units} (see \texttt{coords:LonLatPoint.lon}).
+It is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:Position}
but applied to the \texttt{mango:EpochPosition} context.
-It matches the description given by \texttt{coords} data model:
-The longitude of the Point, as a Quantity with angular units (see \texttt{coords:LonLatPoint.lon}.
+
ivoa:RealQuantity
@@ -794,10 +801,11 @@ The longitude of the Point, as a Quantity with angular units (see \texttt{coords
EpochPosition.latitude
latitude
- This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position}
+ This parameter corresponds to the latitude as described by the \texttt{coords} data model:
+\textit{The latitude of the Point, as a Quantity with angular units} (see \texttt{coords:LonLatPoint.lat}).
+It is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position}
but applied to the \texttt{mango:EpochPosition} context.
It matches the description given by \texttt{coords} data model:
-The latitude of the Point, as a Quantity with angular units (see \texttt{coords:LonLatPoint.lon}).
ivoa:RealQuantity
@@ -823,10 +831,10 @@ The latitude of the Point, as a Quantity with angular units (see \texttt{coords:
EpochPosition.radialVelocity
radialVelocity
- This parameter is a clone of the \texttt{coords:Coords.point} component of \texttt{meas:Velocity}
+ This parameter corresponds to the radial velocity as described by the \texttt{coords} data model:
+\textit{The measured Velocity along of the radial axis } (see \texttt{meas:Velocity.coord} in \cite{2022ivoa.spec.1004R}).
+It is a clone of the \texttt{coords:Coords.point} component of \texttt{meas:Velocity}
but applied to the \texttt{mango:EpochPosition} context.
-It matches the description given by the \texttt{coords} data model:
-The measured Velocity along of the radial axis (see \texttt{meas:Velocity.coord} in \cite{2022ivoa.spec.1004R}).
ivoa:RealQuantity
@@ -839,10 +847,10 @@ The measured Velocity along of the radial axis (see \texttt{meas:Velocity.coord}
EpochPosition.pmLongitude
pmLongitude
- This parameter is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:ProperMotion}
+ This parameter corresponds to the proper motion longitude as described by the \texttt{coords} data model:
+\textit{Velocity along the longitude axis in angular distance per unit time} (see \texttt{meas:ProperMotion.coord}).
+It is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:ProperMotion}
but applied to the \texttt{mango:EpochPosition} context.
-It matches the description given by \texttt{coords} data model:
-Velocity along the longitude axis in angular distance per unit time (see \texttt{meas:ProperMotion.coord}).
ivoa:RealQuantity
@@ -855,10 +863,10 @@ Velocity along the longitude axis in angular distance per unit time (see \texttt
EpochPosition.pmLatitude
pmLatitude
- This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:ProperMotion}
+ This parameter corresponds to the proper motion latitude as described by the \texttt{coords} data model:
+\textit{Velocity along the latitude axis in angular distance per unit time} (see \texttt{meas:ProperMotion.coord}).
+It is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:ProperMotion}
but applied to the \texttt{mango:EpochPosition} context.
-It matches the description given by \texttt{coords} data model:
-Velocity along the latitude axis in angular distance per unit time (see \texttt{meas:ProperMotion.coord}).
ivoa:RealQuantity
@@ -885,8 +893,8 @@ Figure \ref{datetime} shows up the hierarchy of the primitive types representing
- EpochPosition.pmCosLat_applied
- pmCosLat_applied
+ EpochPosition.pmCosLatApplied
+ pmCosLatApplied
It is common, though not universal, practice to quote longitudinal proper motion pre-multiplied
by cos(latitude) so that the magnitude of the quantity is not affected by its longitudinal position.
We do not constrain the value to one form or the other in this model. Instead, this flag enables
diff --git a/vo-dml/desc/desc.DateTime.dateTime.txt b/vo-dml/desc/desc.DateTime.dateTime.txt
index 32a1d14..bb369cc 100644
--- a/vo-dml/desc/desc.DateTime.dateTime.txt
+++ b/vo-dml/desc/desc.DateTime.dateTime.txt
@@ -1,3 +1,5 @@
-The timestamp value is always given as a string.
-The way to process this string is given by the representation mode.
-It can represent an ISO date or a real value (e.g. for MJD mjd timestamps).
\ No newline at end of file
+Data type for timestamps and their representation.
+Timestamps are modeled by a single value and a representation mode.
+There is no time scale associated with \texttt{mango:DateTime}.
+The scale is either imposed by the representation mode or defined by the
+time coordinate system relevant for the host object,
diff --git a/vo-dml/desc/desc.DateTime.desc b/vo-dml/desc/desc.DateTime.desc
new file mode 100644
index 0000000..cf91b99
--- /dev/null
+++ b/vo-dml/desc/desc.DateTime.desc
@@ -0,0 +1,6 @@
+Data type for timestamps and their representation.
+Timestamps are modeled by a single value and a representation mode.
+There is no time scale associated with \texttt{mango:DateTime}.
+The scale is either imposed by the representation mode or defined by the
+time coordinate system relevant for the host object,
+usually an instance of \texttt{mango:EpochPosition}.
diff --git a/vo-dml/desc/desc.EpochPosition.latitude.txt b/vo-dml/desc/desc.EpochPosition.latitude.txt
index e72a917..2fed79f 100644
--- a/vo-dml/desc/desc.EpochPosition.latitude.txt
+++ b/vo-dml/desc/desc.EpochPosition.latitude.txt
@@ -1,4 +1,5 @@
-This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position}
+This parameter corresponds to the latitude as described by the \texttt{coords} data model:
+\textit{The latitude of the Point, as a Quantity with angular units} (see \texttt{coords:LonLatPoint.lat}).
+It is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position}
but applied to the \texttt{mango:EpochPosition} context.
It matches the description given by \texttt{coords} data model:
-The latitude of the Point, as a Quantity with angular units (see \texttt{coords:LonLatPoint.lon}).
diff --git a/vo-dml/desc/desc.EpochPosition.longitude.txt b/vo-dml/desc/desc.EpochPosition.longitude.txt
index d75ba04..e398321 100644
--- a/vo-dml/desc/desc.EpochPosition.longitude.txt
+++ b/vo-dml/desc/desc.EpochPosition.longitude.txt
@@ -1,4 +1,4 @@
-This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:Position}
+This parameter corresponds to the longitude as described by the \texttt{coords} data model:
+\textit{The longitude of the Point, as a Quantity with angular units} (see \texttt{coords:LonLatPoint.lon}).
+It is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:Position}
but applied to the \texttt{mango:EpochPosition} context.
-It matches the description given by \texttt{coords} data model:
-The longitude of the Point, as a Quantity with angular units (see \texttt{coords:LonLatPoint.lon}.
\ No newline at end of file
diff --git a/vo-dml/desc/desc.EpochPosition.pmCosLat_applied.txt b/vo-dml/desc/desc.EpochPosition.pmCosLatApplied.txt
similarity index 100%
rename from vo-dml/desc/desc.EpochPosition.pmCosLat_applied.txt
rename to vo-dml/desc/desc.EpochPosition.pmCosLatApplied.txt
diff --git a/vo-dml/desc/desc.EpochPosition.pmLatitude.txt b/vo-dml/desc/desc.EpochPosition.pmLatitude.txt
index 9dbcce0..c7cd81b 100644
--- a/vo-dml/desc/desc.EpochPosition.pmLatitude.txt
+++ b/vo-dml/desc/desc.EpochPosition.pmLatitude.txt
@@ -1,4 +1,4 @@
-This parameter is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:ProperMotion}
+This parameter corresponds to the proper motion latitude as described by the \texttt{coords} data model:
+\textit{Velocity along the latitude axis in angular distance per unit time} (see \texttt{meas:ProperMotion.coord}).
+It is a clone of the \texttt{coords:LonLatPoint.lat} component of \texttt{meas:ProperMotion}
but applied to the \texttt{mango:EpochPosition} context.
-It matches the description given by \texttt{coords} data model:
-Velocity along the latitude axis in angular distance per unit time (see \texttt{meas:ProperMotion.coord}).
diff --git a/vo-dml/desc/desc.EpochPosition.pmLongitude.txt b/vo-dml/desc/desc.EpochPosition.pmLongitude.txt
index ca7ca74..3d4217c 100644
--- a/vo-dml/desc/desc.EpochPosition.pmLongitude.txt
+++ b/vo-dml/desc/desc.EpochPosition.pmLongitude.txt
@@ -1,4 +1,4 @@
-This parameter is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:ProperMotion}
+This parameter corresponds to the proper motion longitude as described by the \texttt{coords} data model:
+\textit{Velocity along the longitude axis in angular distance per unit time} (see \texttt{meas:ProperMotion.coord}).
+It is a clone of the \texttt{coords:LonLatPoint.lon} component of \texttt{meas:ProperMotion}
but applied to the \texttt{mango:EpochPosition} context.
-It matches the description given by \texttt{coords} data model:
-Velocity along the longitude axis in angular distance per unit time (see \texttt{meas:ProperMotion.coord}).
diff --git a/vo-dml/desc/desc.EpochPosition.radialVelocity.txt b/vo-dml/desc/desc.EpochPosition.radialVelocity.txt
index cc180e1..a277d2b 100644
--- a/vo-dml/desc/desc.EpochPosition.radialVelocity.txt
+++ b/vo-dml/desc/desc.EpochPosition.radialVelocity.txt
@@ -1,4 +1,4 @@
-This parameter is a clone of the \texttt{coords:Coords.point} component of \texttt{meas:Velocity}
+This parameter corresponds to the radial velocity as described by the \texttt{coords} data model:
+\textit{The measured Velocity along of the radial axis } (see \texttt{meas:Velocity.coord} in \cite{2022ivoa.spec.1004R}).
+It is a clone of the \texttt{coords:Coords.point} component of \texttt{meas:Velocity}
but applied to the \texttt{mango:EpochPosition} context.
-It matches the description given by the \texttt{coords} data model:
-The measured Velocity along of the radial axis (see \texttt{meas:Velocity.coord} in \cite{2022ivoa.spec.1004R}).
diff --git a/vo-dml/desc/desc.Property.semantics.txt b/vo-dml/desc/desc.Property.semantics.txt
index 31b7a6a..6d55e21 100644
--- a/vo-dml/desc/desc.Property.semantics.txt
+++ b/vo-dml/desc/desc.Property.semantics.txt
@@ -6,8 +6,9 @@ This attribute is intended to be machine-readable and to assist automated link s
presentation, and usage.
The value is always interpreted as a URI; relative URIs (Berners-Lee and
Fielding et al., 2005) are completed using the base URI of the core DataLink
-vocabulary, http://www.ivoa.net/rdf/datalink/core. Terms from this
-vocabulary must always be written as relative URIs. This means that for
-concepts from the core vocabulary, the value in the semantics fieldz always
+vocabulary, \url{http://www.ivoa.net/rdf/datalink/core}. Terms from this
+vocabulary must always be written as relative URIs.
+This means that for concepts from the core vocabulary, the value in the semantics fields always
starts with a hash. (datalink1.1).
-The semantics concept applies to a single property or to the set made of the property and its associated properties (e.g. position and flag).
\ No newline at end of file
+The semantics concept applies to a single property or to the set made of the property and
+its associated properties (e.g. position and flag).
\ No newline at end of file
diff --git a/vo-dml/desc/desc.iso.txt b/vo-dml/desc/desc.iso.txt
index 5bc6c88..03c88d6 100644
--- a/vo-dml/desc/desc.iso.txt
+++ b/vo-dml/desc/desc.iso.txt
@@ -1 +1 @@
-Primitive type for observation dates expressed as an ISO Date (e.g. "2025-08-07T09:29:14").
\ No newline at end of file
+Primitive type for observation dates expressed as an ISO Date (e.g. "2025-08-07T09:29:14").
diff --git a/vo-dml/desc/desc.jd.txt b/vo-dml/desc/desc.jd.txt
index 0585291..0315f24 100644
--- a/vo-dml/desc/desc.jd.txt
+++ b/vo-dml/desc/desc.jd.txt
@@ -1 +1 @@
-Primitive type for observation dates expressed as a Julian Date (e.g. 2460895.1).
\ No newline at end of file
+Primitive type for observation dates expressed as a Julian Date (e.g. 2460895.1).
diff --git a/vo-dml/desc/desc.mjd.txt b/vo-dml/desc/desc.mjd.txt
index 8909f0a..d94eb9f 100644
--- a/vo-dml/desc/desc.mjd.txt
+++ b/vo-dml/desc/desc.mjd.txt
@@ -1 +1 @@
-Primitive type for observation dates expressed as a Modified Julian Date (e.g. 60288.8).
\ No newline at end of file
+Primitive type for observation dates expressed as a Modified Julian Date (e.g. 60288.8).
diff --git a/vo-dml/desc/desc.year.txt b/vo-dml/desc/desc.year.txt
index 4524a1c..c14d769 100644
--- a/vo-dml/desc/desc.year.txt
+++ b/vo-dml/desc/desc.year.txt
@@ -1 +1 @@
-Primitive type for observation dates expressed as a year (e.g. 2015.5).
\ No newline at end of file
+Primitive type for observation dates expressed as a year (e.g. 2015.5).
diff --git a/vo-dml/mango.png b/vo-dml/mango.png
index 78f6574..3662d0a 100644
Binary files a/vo-dml/mango.png and b/vo-dml/mango.png differ
diff --git a/vo-dml/mango.vo-dml.xml b/vo-dml/mango.vo-dml.xml
index 9031bcf..77caf3f 100644
--- a/vo-dml/mango.vo-dml.xml
+++ b/vo-dml/mango.vo-dml.xml
@@ -3,14 +3,16 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ivoa.net/xml/VODML/v1 http://www.ivoa.net/xml/VODML/vo-dml-v1.xsd">
mango
- The purpose of MANGO, which stands for MO-del for AN-notating G-eneric O-objects, is to add an upper level of description to the tabular data of query responses. It allows metadata to be extended, complex quantities to be reconstructed from column values, and properties to be linked. It also allows to specify the origin af the data.
+ The purpose of MANGO is to provide a higher level of description for multi-attribute properties.
+When used with MIVOT annotations, it enables tabular data to be represented as structured objects.
+This enables the metadata representation to be improved and complex quantities to be reconstructed from column values. Modelled properties can be linked to each other. MANGO also enables the origin of the data to be specified.
Mango
Laurent Michel, Fran??ois Bonnarel, Gilles Landais, Mireille Louys, Marco Molinaro, Jesue Salgado
1.0
0.0
- 2025-08-07T10:20:59
+ 2025-12-11T13:52:24
ivoa
http://www.ivoa.net/xml/VODML/IVOA-v1.vo-dml.xml
@@ -365,10 +367,6 @@ As long as the vocabulary is not set, the possible values of this attribute are
Property
Reference to a particular measure of the Source.
This class is used to specify the type of the measure as well as its role.
-
- One association at the time
-
-
Property.semantics
semantics
@@ -832,8 +830,8 @@ As long as the vocabulary is not set, the possible values of this attribute are
- EpochPosition.pmCosLat_applied
- pmCosLat_applied
+ EpochPosition.pmCosLatApplied
+ pmCosLatApplied
TODO : Missing description : please, update your UML model asap.
diff --git a/vo-dml/sections/Date_Time_Types.txt b/vo-dml/sections/Date_Time_Types.txt
index 05d2b06..f075043 100644
--- a/vo-dml/sections/Date_Time_Types.txt
+++ b/vo-dml/sections/Date_Time_Types.txt
@@ -5,4 +5,4 @@ types that cover the most commonly used serialisations of observation dates (see
\includegraphics[width=0.7\textwidth]{../model/date.png}
\caption{datetime}
\label{datetime}
-\end{figure}
+\end{figure}
\ No newline at end of file
diff --git a/vo-dml/sections/Epoch_Position_Property.txt b/vo-dml/sections/Epoch_Position_Property.txt
index e84b38d..56f29d1 100644
--- a/vo-dml/sections/Epoch_Position_Property.txt
+++ b/vo-dml/sections/Epoch_Position_Property.txt
@@ -1,8 +1,7 @@
-The emergence of missions such as Gaia \citep{2018A&A...616A...1G}, which are capable of
-observing objects over long periods of time with very high astrometric accuracy,
-combined with great spectroscopic capabilities, making it possible to link star 3D positions
-with 3D velocities, thus defining a 6-dimensional astrometric solution,
-tagged with the epoch when the parameters were set.
+Missions such as Gaia \citep{2018A&A...616A...1G} enable long-term observation of sources.
+It provides very high astrometric accuracy and robust spectroscopic capabilities.
+These features together make it possible to link the three-dimensional positions of objects with their three-dimensional velocities.
+This creates a six-dimensional astrometric solution tagged with the epoch at which the parameters were set.
The enormous scientific impact of this mission justifies the fact that the MANGO \texttt{EpochPostion}
components are all based on these astrometric parameters and the way in which they are correlated.
diff --git a/vo-dml/sections/Photometric_Properties.txt b/vo-dml/sections/Photometric_and_Spectroscopic_Properties.txt
similarity index 52%
rename from vo-dml/sections/Photometric_Properties.txt
rename to vo-dml/sections/Photometric_and_Spectroscopic_Properties.txt
index 938402c..efac73e 100644
--- a/vo-dml/sections/Photometric_Properties.txt
+++ b/vo-dml/sections/Photometric_and_Spectroscopic_Properties.txt
@@ -1,3 +1,4 @@
-This section brings together all the classes that model the photometric properties.
+This section brings together all the classes that model
+brightness and color of the observed sources.
The definition of the photometric calibrations and the
photometric filters are imported from \texttt{PhotDM}.
\ No newline at end of file