Difference between revisions of "PKC Workflow/Process"
Line 10: | Line 10: | ||
When describing a process in the macroscope, it is always a verb. The input/output is defined according to the function's specification. | When describing a process in the macroscope, it is always a verb. The input/output is defined according to the function's specification. | ||
Inputs - [Process] -> Outputs | Inputs - [Process] -> Outputs | ||
<graphviz> | |||
digraph G { | |||
input [URL="[[PKC Workflow/Input]]"]; | |||
process [URL="[[PKC Workflow/Process]]"]; | |||
output [URL="[[PKC Workflow/Output]]"]; | |||
input->process; | |||
process->output; | |||
} | |||
</graphviz> | |||
There are 2 possible reasons why the input/output might be incomplete: | There are 2 possible reasons why the input/output might be incomplete: | ||
Line 24: | Line 33: | ||
ad | ad | ||
Inputs - [Process] -> Outputs | Inputs - [Process] -> Outputs | ||
== Branch primitive == | == Branch primitive == | ||
[https://reference.wolfram.com/language/guide/FlowControl.html FlowControl primitives of Mathematica] | [https://reference.wolfram.com/language/guide/FlowControl.html FlowControl primitives of Mathematica] |
Revision as of 07:41, 23 August 2021
Note
When describing a process, it could be confusing as a process relates some inputs to outputs. The information entity such as Issue could mean either a process of issuing or the issue result presenting as a page.
When describing a process in the macroscope, it is always a verb. The input/output is defined according to the function's specification.
Inputs - [Process] -> Outputs
<graphviz> digraph G {
input [URL="PKC Workflow/Input"]; process [URL="PKC Workflow/Process"]; output [URL="PKC Workflow/Output"]; input->process; process->output;
} </graphviz>
There are 2 possible reasons why the input/output might be incomplete:
- Stateful functions which cause side effects or dependence on global variables: It is the trade-off when using functional representation. To stick to the functional representation style, we should think about how to reorganize the function so that it is closer to stateless.
- Not capturing the input/output that a function cares about: Ideally, every input/output should be captured at least in low precision (type system). But since there are complexity and obscurity when describing real-world knowledge, it is possible that the input/output is incomplete.
When describing the inner structure of a process, there are more kinds of modeling methods (we can see this in the complexity of programming). It is feasible to add more structure (corresponding to different semantics) but note that a compact structure (desired traits of knowledge representation) is preferable.
Loop primitive
In the simplest form, the process is the mapping of input to output. In addition, we add a Loop structure on top of it. See the LoopingConstructs Primitive in Mathematica Then, the diagram representing the function with loop will be:
ad Inputs - [Process] -> Outputs
Branch primitive
FlowControl primitives of Mathematica