diff --git a/docs/dcp2_system_design.rst b/docs/dcp2_system_design.rst index a9ad2d7..30f19ce 100644 --- a/docs/dcp2_system_design.rst +++ b/docs/dcp2_system_design.rst @@ -720,9 +720,13 @@ descriptors, one for metadata files and one for subgraphs. DSS version of the metadata file, converting it to this restricted ISO syntax. - A staging area may only contain exactly one entity object with a given - ``entity_id``. This precludes more than one version of any entity or - assigning the same ``entity_id`` to entities of different types. + Entity objects that share a given ``entity_id`` in a staging area must all + have the same ``entity_type``. This precludes assigning the same + ``entity_id`` to entities of different types, but allows several versions + of one entity to coexist in a non-delta staging area. A delta staging area, + on the other hand, must contain at most one object with a given + ``entity_id``, and therefore only one version of that entity. + The ``.remove`` suffix is used to request the removal of an entity. It can only be used in staging areas that have the ``is_delta`` property set to @@ -757,6 +761,10 @@ descriptors, one for metadata files and one for subgraphs. assigning the same ``entity_id`` to descriptors for file entities of different types. + Descriptor objects that share a given ``entity_id`` in a staging area must + all have the same ``entity_type``. A delta staging area may contain at most + one object with a given ``entity_id``. + - The object name of a data file is:: data/{file_name} @@ -800,6 +808,12 @@ descriptors, one for metadata files and one for subgraphs. ``links_id``. This precludes more than one version of any subgraph or using the same ``links_id`` in subgraphs for different projects. + Subgraph objects that share a given ``links_id`` in a staging area must all + have the same ``project_id``. This precludes assigning the same + ``links_id`` to subgraphs for different projects, but allows several + versions of one subgraph to coexist in a non-delta staging area. A delta + staging area, on the other hand, must contain at most one object with a + given ``links_id``, and therefore only one version of that subgraph. .. [#] The staging area URI is guaranteed to end in a slash.