ISO-TC211 / StandardsTracker

This GitHub repository lets you - our users - log and track issues that you find with our standards and other document. Tag the issue with the standard or standards effected; we will assign it to the relevant group(s) within TC 211.
11 stars 0 forks source link

Constraint in MD_MaintenanceInformation (ISO 19115-1) #423

Open jetgeo opened 2 years ago

jetgeo commented 2 years ago

From user @rmalyankar, ref HMMG issue 49 :

The constraint in MD_MaintenanceInformation (Fig. 10 of ISO 19115-1, and Table B.6) says at least one of maintenanceAndUpdateFrequency or userDefinedMaintenanceFrequency must be present: {count (maintenanceAndUpdateFrequency + userDefinedMaintenanceFrequency) >0}.

This should be updated to include maintenanceDate, that is, either

{count (maintenanceAndUpdateFrequency + userDefinedMaintenanceFrequency + maintenanceDate) >0}, or changed to replace maintenanceAndUpdateFrequency (a codelist type) with the CI_Date (date/date-time) type maintenanceDate: {count (userDefinedMaintenanceFrequency + maintenanceDate) >0} The reason: is to make MD_MaintenanceInformation more useful for the purpose of automatic checking for updates:

Only userDefinedMaintenanceFrequency and maintenanceDate are useful for automated maintenance, (the values in the MD_MaintenanceFrequencyCode codelist are too nebulous to use for the purposes of automatic checking for updates). Having only one of userDefinedMaintenanceFrequency and maintenanceDate is sufficient for automated processing. If maintenanceDate or userDefinedMaintenanceFrequency is encoded, the codelist value in maintenanceAndUpdateFrequency is redundant for automated processing (it may be useful for human viewing, though it would need to be validated in comparison to the period or date encoded in userDefinedMaintenanceFrequency and maintenanceDate).

ejbleys commented 1 year ago

For consideration at next review: One could consider two different maintenanceDate(s) dateOfLastMaintenance [1..1] (which might be creation if there has been no additional maintenance) dateOfPlannedMaintenance [0..*] That should allow the existing constraint could hold