When describing the difference between MB and PDC datasets, the 2.6 spec says:
“For PDC, a group in the assembly that is […] a softlink represents a dataset index associated to its parent node.”
I don’t understand what this means. How can a softlink represent a dataset index? Surely the softlink points to a block group that is a sibling of the Assembly group, right?
PDC require that the block groups have an integer-valued Index attribute. Are these arbitrary, sequentially numbered from 0 in the order the groups are created in the file, or something else? There’s no indication of how they are used.
With the help of AI, I think I’ve since come to an understanding and can answer the questions.
When the VTKHDF file is read, the PDC blocks are loaded into an array of blocks with the Index attribute specifying which array slot a block is loaded into. Unused/empty slots are okay, but not ideal (you don’t want one block with an index of 4999 and get an array of size 5000 with the first 4999 slots empty). So generally the block Index values should be sequential from 0.
The documentation phrase “a softlink represents a dataset index associated to its parent node” means essentially that the reader follows the softlink to get the Indexvalue of its target; the index into the block array is what it needs. But this is an internal implementation detail that is irrelevant to a user of the format. From the user perspective the target block is the only meaningful thing.