InstrumentComponent

Package: 
Extends: 
Version: 
1
Is Abstract: 
yes
Is Pattern: 
no
Definition: 

InstrumentComponent is an abstract object which extends an Act (a type of Process Step). The purpose of InstrumentComponent is to provide a common parent for Capture (e.g., Question, Measure), Statement, and Instructions.

Explanatory Notes: 

InstrumentComponent acts as a substitution head (abstract) for semantically meaningful for objects that extend it and exist in an instrument.

Property: 
Relationship: 
NameTarget ObjectDescriptionSource cardinalityTarget cardinalityRelationship type
hasInstruction
An instrument compoment can have zero to many instructions
0..n
0..n
Aggregation
hasExternalAid
Any external object used to clarify, inform, or support the role of the instrument component
0..n
0..n
Aggregation

Stage:

Is extendable: 
Is property: 
0
RDF Mapping: 

Comments

By making ControlConstruct the parent of InstrumentControl, now a SimpleInstrument can order "captures" (including questions) using the process model to create skip logic. Because here InstrumentControl is self-referencing it appears that another way to construct skip logic may be to just use InstrumentControl. This seems "simple" in keeping with SimpleInstrument. However, it means there are multiple ways to specify flow control in a questionnaire. This probably isn't desirable. One recommendation is to eliminate the self-reference in InstrumentControl and create a SimpleInstrument view which only uses the Sequence ConstructControl. Semantically, this is equivalent to what the SimpleInstrument is currently able to represent using InstrumentControl: it can order the captures. However, it can't conditionally execute captures in a machine readable way. It can, on the other hand, use Statement to specify conditional logic. However, in this approach it is possible to proliferate instruments -- one that is human readable and uses statement and one that is machine readable and uses the process model.