Difference between revisions of "PKC Workflow/Process"
(→Note) |
|||
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 | ||
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. | |||
== Graph representation == | |||
<graphviz> | <graphviz> | ||
digraph G { | digraph G { | ||
Line 19: | Line 29: | ||
} | } | ||
</graphviz> | </graphviz> | ||
== Loop primitive == | == Loop primitive == |
Revision as of 07:42, 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
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.
Graph representation
<graphviz> digraph G {
input [URL="PKC Workflow/Input"]; process [URL="PKC Workflow/Process"]; output [URL="PKC Workflow/Output"]; input->process; process->output;
} </graphviz>
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