Open DavidFichtmueller opened 1 month ago
Hi David, thanks for pointing out this issue. We have been struggling with this particular case for a bit. In general, we tried to align with TDWG and in particular LTC. This means the structure ods:hasXxx
(without the s
) for arrays of objects. See for example: ltc:hasTaxon. If we put an s
behind our terms, that would break convention on that part. However, looking at several other naming conventions, this is a structure generally used. I will make the appropriate changes. To summarize, this would make four cases:
ods:xxx
-> for strings/numbersods:isXXX
-> for booleansods:hasXXX
-> for single nested objectods:hasXXXs
-> for array of nested objectsHowever, I propose that we would then add a fifth case:
ods:xxxs
-> an array of strings/numbers
I would have to do a full check, at the moment I know there is one term which will change ods:language
-> ods:languages
Feel free to provide additional comments, in the meantime I will start implementing these changes.
Regards, Sam
This is a useful change to add the s for language, since it is an array. However you might not want to add this particular rule to the naming convention chapter in the introduction, because of the two ods elements citationRemarks and assertionRemarks. Both being single strings and aligned to the different
Suggestion
From the section about the naming convention:
The last sentence causes several issues. Not only does it break with common semantic web naming conventions (classes in upper case, properties in lower case), but more importantly, it causes two different terms (the class and the property pointing to a single instance of this class) to have the same URI and become thus undistinguishable to a computer. Also of the 7 object properties with a single instance of a class for the Digital Specimen FDO, only 4 follow this convention.
Our recommendation would be to change the naming convention to the following rules:
Allow for meaningful exceptions to this rule, to clarify some use cases, e.g. the alternative solution mentioned from #168 would then be ods:hasRelatedIdentifers.
The terms effected by this change would be:
[^1]: Lets hope we never need a sheep or deer class. [^2]: these properties could also get more descriptive names as described in the meaningful exception clause [^3]: with the plural as it is currently defined, also see #170