BioSchemas / specifications

Issue tracker, technical wiki, and example markup
https://bioschemas.org
54 stars 52 forks source link

`LabProtocol` conflates an abstract protocol and an execution of that protocol #677

Open multimeric opened 2 weeks ago

multimeric commented 2 weeks ago

LabProtocol is built on HowTo, 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 by protocolOutcome, 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 like following: HowTo so that we can keep LabProtocol abstract but have CreateAction 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.

multimeric commented 2 weeks ago

The fact that LabProcess is explicitly defined as the execution of a LabProtocol supports this change, I think.

marco-brandizi commented 5 days ago

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.

multimeric commented 5 days ago

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.

marco-brandizi commented 4 days ago

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.