-
Notifications
You must be signed in to change notification settings - Fork 9
/
topLevel.tex
28 lines (22 loc) · 2.13 KB
/
topLevel.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
\subsection {TopLevel}
\label{sec:TopLevel}
\sbol{TopLevel} is an abstract class that is extended by any \sbol{Identified} class that can be found at the top level of an SBOL document or file.
In other words, \sbol{TopLevel} objects are not nested inside any other object via \textit{composite aggregation} (represented by a filled diamond arrowhead on the UML diagrams).
Instead of nesting, composite \sbol{TopLevel} objects refer to subordinate \sbol{TopLevel} objects by their \sbol{IRI}s using \textit{shared aggregation} (represented by an open-faced/non-filled diamond arrowhead on the UML diagrams).
The \sbol{TopLevel} classes defined in this specification are \sbol{Sequence}, \sbol{Component}, \sbol{Model}, \sbol{Collection}, \sbol{CombinatorialDerivation}, \sbol{Implementation}, \sbol{Attachment}, \sbol{ExperimentalData}, \prov{Activity}, \prov{Agent}, \prov{Plan} (see \ref{uml:toplevel}).
Each of these classes is described in more detail below, except for the classes from the provenance ontology (PROV-O), which are described in \ref{sec:provenance}.
\begin{figure}[ht]
\begin{center}
\includegraphics[width=\textwidth]{uml/toplevel}
\caption[]{Classes that inherit from the \sbol{TopLevel} abstract class.}
\label{uml:toplevel}
\end{center}
\end{figure}
\subparagraph{The hasNamespace property}
\label{sec:hasNamespace}
A \sbol{TopLevel} object MUST have precisely one \sbol{hasNamespace} property, which contains a \sbol{URL} that defines the namespace portion of URLs for this object and any child objects.
If the IRI for the \sbol{TopLevel} object is a URL, then the URL of the \sbol{hasNamespace} property MUST prefix match that URL.
Note that the requirement for a \sbol{hasNamespace} property holds even for objects with IRIs that are not URLs, in order to allow them to be copied into datastores that use URLs. In this case, however, there is no prefix requirement.
\subparagraph{The hasAttachment property}
\label{sec:hasAttachment}
A \sbol{TopLevel} object can have zero or more \sbol{hasAttachment} properties, each of type IRI specifying an \sbol{Attachment} object. The \sbol{Attachment} class is described in more detail in~\ref{sec:Attachment}.