Hi all, in the light of the recently approved fragid mechanism I started (again) thinking about the practicality of optional ids in our spec.
While I am OK with optional ids on segments (and ignorables) because segments share their uniqueness scope with inlines and their ids are actually no use unless canResegment is set to "no";
I believe that we have now an issue with optional ids on groups and notes or at least on groups.
Notes seemed so important that they now have a potentially unlimited number of id uniqueness scopes but their id is optional.
Does not seem a big issue, because if you need to reference a note you simply assign an id to it and you can reference it, right?
Not really, actually the referencing will still fail if the note is on a group without an id.
This is all still solvable, you could for instance say that enrichers assigning note ids must ensure that the parent group has an id and add it if it is missing. However, now you are forcing a simple enricher that was just supposed to ad prose comments in a simplest possible way to check for existence of ids on parent group elements and this is a conditional behavior because notes added to files and units do not need to perform this check, as these parents have their ids required.
Now the same complication is repeated for every module that has elements allowed on group.
Therefore I strongly recommend that id on group is made REQUIRED.
Further, I believe that also note ids should be required.
If note ids remain optional, I would at least add a Warning on the note element and in the fragid section that agents might need to add note ids in case they want to reference them.
Also all module owners should review the uniqueness scopes in their modules those that have no ids should consider adding preferably required ids to their most important elements.
LRC | CNGL | LT-Web | CSIS
University of Limerick, Ireland