Is has_process_part too restrictive?
The definition of object property has_process_part is:
x has_process_part y iff x and y are instances of Process, such that y occurs during the temporal interval of x, and y either provides an input to x or receives an output of x, or both.
The text I've emphasized implies a controller/worker process model. Does a pipeline fit this model? I would consider the process that starts the pipeline to have all members of the pipeline as parts, but intermediate pipeline processes don't communicate with the process that starts them. What, then, are the inputs or outputs that x provides to or receives from part y of a pipeline?
This definition can also include the client/server model. A client provides input to a server and receives output from it. That doesn't seem right. The client and server are otherwise completely independent processes. The client process, like my instance of Firefox, can be part of many processes during its lifetime. Yet the parent property, has part, says that it holds across all times for occurrents.
My conception of process parthood has to do with invocation. If process x starts process y, then x has_process_part y. (I'll ignore orphan processes for now.) If has_process_part is not intended to capture this, how would I model it using CCO?
I agree.
Suppose there's a manufacturing process A, during which some widgets are forged and then cooled. Both the forging process and the cooling processes are parts of the manufacturing process A--they occur within A's temporal interval--but I wouldn't intuitively say that the forging is an input of the manufacturing process, it's an input to the next process part, the cooling process.
Re the second part of the definition, what input would the forging process receive from the manufacturing process? We could say that it receives the raw material, but what about the first process part of the manufacturing process (when the raw materials first arrive at a factory off a truck), what is that process receiving if it's the first process of the larger manufacturing process?
(Since we're using BFO relations now, the above scenario is avoided by using 'has occurent part' but this should still be clarified)