Open multimeric opened 2 weeks ago
The fact that LabProcess
is explicitly defined as the execution of a LabProtocol
supports this change, I think.
I think this is related to #675. From the discussion in there, my understanding is that properties like protocolOutcome
are intended to describe the kind of outcome, not for the outcome of a specific protocol execution.
Moreover, yes, LabProcess
, currently under drafts, introduces the separation between protocol as plan an protocol as the execution of a plan.
As for the link between the two, the LabProcess
draft introduces the property executesLabProtocol
. While I understand the need for a specific property here, at the upper level, being LabProtocol
a subclass of schema:CreativeWork
, that link could be stated via schema:about
, or ^schema:subjectOf
.
I guess it might make sense to describe the abstract outcome, but I don't think it should be a CreativeWork
, since that's concrete.
If protocolOutcome
is intended as something like "the output of this is a treated sample", then it makes sense that its value is either a text or a subclass of CreativeWork
.
Then, LabProcess
will use result
to link an actual, concrete output for a protocol execution, and such output is related to the protocolOutcome
value as LabProcess
is related to LabProtocol
. That is, for both, we have the generic description level and the instantiation level, same as "Tesla Model T" and this "Tesla Model T, with number plate 123".
So, this part of modelling protocols and executions is fine to me.
LabProtocol
is built onHowTo
, which I think is a good choice. Notably,HowTo
does not describe an action that has happened, but rather a recipe or procedure by which something might happen. However, this model is broken byprotocolOutcome
, which points to an actual file that has been produced as a result of running the protocol.In an ideal world, I would like
CreateAction
to have a field likefollowing: HowTo
so that we can keepLabProtocol
abstract but haveCreateAction
be a concrete application of that protocol. It doesn't have such a field, but there are other ways to represent this using something like PROV.