data2health / contributor-attribution-model

A simple data model to represent contributions made by agents to research artifacts
3 stars 0 forks source link

Specifyig dates of contributions #16

Open mbrush opened 5 years ago

mbrush commented 5 years ago

The Contribution object model model provides startDate and endDate attributes to allow precise reporting of the time period during which the contribution occurred. The recommendation is that implementations wishing to specify a single time can simply report the date and/or time that the contribution ended, using the endDate attribute. An alternative approach of specifying the same value as the start and end date is discouraged.

Thought on this? And how strong of language should we use here (MUST / MUST NOT, or SHOULD / SHOULD NOT).

@mellybelly please comment.

mbrush commented 5 years ago

Related: on the Artifact object model, we provide dateCreated and dateModified attributes to explicitly capture these important dates in an Artifact's life cycle.

While these could be inferred from Contributions made to the Artifact, we felt them important to call out directly for a few reasons. One is that these dates represent fundamental and important information, and we may want to record this independent of when a specific contribution was made by an agent who created it. Consider a case where the contributing agent is not known, only a creation date - we would likely not allow creation of a ‘Contribution’ object without an agent.

Also, consider that an agent may make contributions to an artifact over a period of days, weeks, or months. There may be many Contribution objects for a single artifact where different agents play creator roles, each with different dates. The separate dateCreated/Modified attributes lets us clearly state when the artifact was initially "called done" e.g. published, released, etc), which may be different than the date(s) that 'creators' made their contributions.

This may be trying to put too fine a point on things, but if this is a potential use case/situation we might encounter, the proposal here is one way to deal with it.

(a) these are important enough characteristics that we wanted to allow them to be called out directly/explicitly, and (b) it may not always be straight-forward to determing the precise creation / modification date from Contributions (e.g.

mellybelly commented 5 years ago

One could have only one date and then have a second property for duration, so that the simple use case could use only a simple single date?

In the current model, a single date would either infer unknown start date OR the same start date and end date (which would usually be wrong).

If you keep current model, I would lean toward having an unknown start date and explaining to user that the end date is what will be populated.

mellybelly commented 5 years ago

preference is to leave as is ;-)

mellybelly commented 5 years ago

feel like the creation/modified data attributes on artifact might make things too complex. maybe this is an implementation detail?

Could add those as optional attributes I suppose.

mbrush commented 5 years ago

Had another idea for how to flexibly capture date of a contribution. The current model has startDate and endDate hanging from the Contribution, and recommends the convention of using only endDate if the user wants to specify a single date. Another option is to have a single date attribute with two options for the data type of its value:

  1. dateTime - if the user wants to indicate a single date and/or time on that date when the contribution was made.
  2. interval - we could create 'interval' as a complex data type with its own attributes (intervalStart and intervalEnd), which take dateTimes as values . If a user wants to more precisely capture the start and end time of their contribution, they would use this pattern.

Pro: makes data more intuitive to read (bypasses confusion of seeing an endDate but no startDate in the data.

Con: harder to query for dates of contributions - given the irregularity (e.g. the actual date a contribution was completed could live in two places)