Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add deleted events and workload breakdown support #27

Merged
merged 5 commits into from
Jan 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion CAOM.tex
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,9 @@ \subsection{Observation}

An Observation is the result of some activity to create data. Data acquisition by a
telescope creates a SimpleObservation, usually with one Plane describing the raw
data.
data. Processing that creates a new observation (e.g. by combining mutliple independent
observations into a single product) creates a DerivedObservation with a set of member
observations.

\subsection{Plane}

Expand All @@ -138,6 +140,14 @@ \subsection{Artifact}
An Artifact holds a reference to an externally stored resource: a file, a
database object (schema or table), a collection of files (directory), etc.

\subsection{ArtifactDescription}

An ArtifactDesciption is a human-readable description of an artifact. These
descriptions are intended to be shared across many artifacts curated by a single
operator; each artifact contains an optional reference to a description. The
primary intended use of these descriptions is to populate the description field
in a DataLink links response.

\subsection{Part}

A Part describes a logical subcomponent of an Artifact. For example, a single
Expand All @@ -153,6 +163,22 @@ \subsection{Chunk}

Note: Chunk is not shown in the UML diagrams. TBD: keep, deprecate or remove?

\subsection{DeletedObservationEvent}

Observation(s) are designed to support metadata sharing (synchronisation of instances
from a source site to a destination site). In some cases, observations are deleted at the
source site; in that case, the source site would create a DeletedObservationEvent with the same
entity identifier (Entity.id) and logical identifier (Observation.uri) so that other sites can
synchronise the event and perform the correct deletion locally.

\subsection{DeletedArtifactDescriptionEvent}

ArtifactDescription(s) are designed to support metadata sharing (synchronisation of instances
from a source site to a destination site). In some cases, descriptions are deleted at the
source site; in that case, the source site would create a DeletedArtifactDescriptionEvent with
the same entity identifier (Entity.id) and logical identifier (ArtifactDescription.uri) so that
other sites can synchronise the event and perform the correct deletion locally.

\subsection{Data Types}
Some of the classes in the model are intended to be used as data types (e.g. columns
types in a database and exposed as such in a TAP service).
Expand Down
32 changes: 32 additions & 0 deletions generated.tex
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ \section{Model: caom2 }
\textbf{multiplicity: 1} \newline
an identifier that resolves to the storage location of the artifact

\subsubsection{Artifact.uriBucket}
\textbf{vodml-id: Artifact.uriBucket} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:string}} \newline
\textbf{multiplicity: 1} \newline
short string of hexadecimal digits generated from the uri; the value is the first three characters of the hexadecimal representation of SHA-1 of the UTF-8 encoded URI value

\subsubsection{Artifact.productType}
\textbf{vodml-id: Artifact.productType} \newline
\textbf{type: \hyperref[sect:DataLinkSemantics]{caom2:DataLinkSemantics}} \newline
Expand Down Expand Up @@ -276,6 +282,26 @@ \section{Model: caom2 }
\textbf{multiplicity: 1} \newline
flag indicating the data quality

\subsection{DeletedArtifactDescriptionEvent}
\label{sect:DeletedArtifactDescriptionEvent}
an event signifiying that a previously persisted ArtifactDescription was deleted; this event can be synchronized to propagate deletions; the Entity.id of the event is equal to the Entity.id of the deleted observation and this identifier is used when performing deletions

\subsubsection{DeletedArtifactDescriptionEvent.uri}
\textbf{vodml-id: DeletedArtifactDescriptionEvent.uri} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:anyURI}} \newline
\textbf{multiplicity: 1} \newline
The logical identifier of the ArtifactDescription: the ArtifactDescription.uri value; this is for informational purposes only

\subsection{DeletedObservationEvent}
\label{sect:DeletedObservationEvent}
an event signifiying that a previously persisted Observation was deleted; this event can be synchronized to propagate deletions; the Entity.id of the event is equal to the Entity.id of the deleted observation and this identifier is used when performing deletions

\subsubsection{DeletedObservationEvent.uri}
\textbf{vodml-id: DeletedObservationEvent.uri} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:anyURI}} \newline
\textbf{multiplicity: 1} \newline
The logical identifier of the Observation: the Observation.uri value; this is for informational purposes only

\subsection{DerivedObservation}
\label{sect:DerivedObservation}
an observation derived from one or more observations (name and intent changed in CAOM-2.4)
Expand Down Expand Up @@ -530,6 +556,12 @@ \section{Model: caom2 }
\textbf{multiplicity: 1} \newline
unique logical identifier for this observation (NEW in CAOM-2.5)

\subsubsection{Observation.uriBucket}
\textbf{vodml-id: Observation.uriBucket} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:string}} \newline
\textbf{multiplicity: 1} \newline
short string of hexadecimal digits generated from the uri; the value is the first three characters of the hexadecimal representation of SHA-1 of the UTF-8 encoded URI value

\subsubsection{Observation.metaRelease}
\textbf{vodml-id: Observation.metaRelease} \newline
\textbf{type: \hyperref[sect:ivoa]{ivoa:datetime}} \newline
Expand Down
78 changes: 77 additions & 1 deletion src/main/resources/CAOM-current-vodml.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
<title>Common Archive Observation Model</title>
<author>Patrick Dowler, Canadian Astronomy Data Centre</author>
<version>2.5</version>
<lastModified>2024-08-15T18:00:00</lastModified>
<lastModified>2024-12-16T18:00:00</lastModified>

<import>
<name>ivoa</name>
Expand Down Expand Up @@ -460,6 +460,54 @@
</attribute>
</objectType>

<objectType>
<vodml-id>DeletedArtifactDescriptionEvent</vodml-id>
<name>DeletedArtifactDescriptionEvent</name>
<description>an event signifiying that a previously persisted ArtifactDescription was deleted;
this event can be synchronized to propagate deletions; the Entity.id of the event
is equal to the Entity.id of the deleted observation and this identifier is used
when performing deletions</description>
<extends>
<vodml-ref>caom2:Entity</vodml-ref>
</extends>
<attribute>
<vodml-id>DeletedArtifactDescriptionEvent.uri</vodml-id>
<name>uri</name>
<description>The logical identifier of the ArtifactDescription: the ArtifactDescription.uri
value; this is for informational purposes only</description>
<datatype>
<vodml-ref>ivoa:anyURI</vodml-ref>
</datatype>
<multiplicity>
<minOccurs>1</minOccurs>
<maxOccurs>1</maxOccurs>
</multiplicity>
</attribute>
</objectType>
<objectType>
<vodml-id>DeletedObservationEvent</vodml-id>
<name>DeletedObservationEvent</name>
<description>an event signifiying that a previously persisted Observation was deleted;
this event can be synchronized to propagate deletions; the Entity.id of the event
is equal to the Entity.id of the deleted observation and this identifier is used
when performing deletions</description>
<extends>
<vodml-ref>caom2:Entity</vodml-ref>
</extends>
<attribute>
<vodml-id>DeletedObservationEvent.uri</vodml-id>
<name>uri</name>
<description>The logical identifier of the Observation: the Observation.uri value; this
is for informational purposes only</description>
<datatype>
<vodml-ref>ivoa:anyURI</vodml-ref>
</datatype>
<multiplicity>
<minOccurs>1</minOccurs>
<maxOccurs>1</maxOccurs>
</multiplicity>
</attribute>
</objectType>
<objectType abstract="true">
<vodml-id>Observation</vodml-id>
<name>Observation</name>
Expand Down Expand Up @@ -492,6 +540,20 @@
<maxOccurs>1</maxOccurs>
</multiplicity>
</attribute>
<attribute>
<vodml-id>Observation.uriBucket</vodml-id>
<name>uriBucket</name>
<description>short string of hexadecimal digits generated from the uri; the value is
the first three characters of the hexadecimal representation of SHA-1 of the UTF-8 encoded
URI value</description>
<datatype>
<vodml-ref>ivoa:string</vodml-ref>
</datatype>
<multiplicity>
<minOccurs>1</minOccurs>
<maxOccurs>1</maxOccurs>
</multiplicity>
</attribute>
<attribute>
<vodml-id>Observation.metaRelease</vodml-id>
<name>metaRelease</name>
Expand Down Expand Up @@ -954,6 +1016,20 @@
<maxOccurs>1</maxOccurs>
</multiplicity>
</attribute>
<attribute>
<vodml-id>Artifact.uriBucket</vodml-id>
<name>uriBucket</name>
<description>short string of hexadecimal digits generated from the uri; the value is
the first three characters of the hexadecimal representation of SHA-1 of the UTF-8 encoded
URI value</description>
<datatype>
<vodml-ref>ivoa:string</vodml-ref>
</datatype>
<multiplicity>
<minOccurs>1</minOccurs>
<maxOccurs>1</maxOccurs>
</multiplicity>
</attribute>
<attribute>
<vodml-id>Artifact.productType</vodml-id>
<name>productType</name>
Expand Down
Binary file modified src/main/resources/draft-CAOM-2.5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/uml/CAOM.zargo
Binary file not shown.
Binary file modified src/uml/CAOM1core.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/uml/CAOM4entities.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 5 additions & 3 deletions src/uml/merge-uml-pngs.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#!/bin/bash

## only changes
pushd src/main/resources
magick CAOM1core.png CAOM2datatypes.png CAOM4entities.png CAOM5vocabularies.png \
-append draft-CAOM-2.5.png

pushd src/uml

magick CAOM1core.png CAOM2datatypes.png CAOM3vocabularies.png CAOM4entities.png \
-append ../main/resources/draft-CAOM-2.5.png
popd

Loading