Difference between revisions of "PKC Workflow/Process"
(51 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
# [[PKC Workflow/System Verification|System Verification by TLA+]] | |||
# [[PKC Workflow/Jenkins Integration|Jenkins Integration]] | |||
# [[PKC Workflow/Docker Registry|Docker Registry]] | |||
# [[PKC Workflow/Meeting and Communication|Meeting and Communication]] | # [[PKC Workflow/Meeting and Communication|Meeting and Communication]] | ||
# [[PKC Workflow/Issues| | # [[PKC Workflow/Issues|Issues]] | ||
# [[PKC Workflow/Updates|Updates | # [[PKC Workflow/Updates|Updates]] | ||
# [[All activities]] | # [[All activities|All activities]] | ||
<noinclude> | <noinclude> | ||
When describing a process, it could be confusing as a process relates some inputs to outputs. The [[information entity]] such as [[PKC Workflow/Issues|Issue]] could mean either a process of issuing or the issue result presenting as a page. | When describing a process, it could be confusing as a process relates some inputs to outputs. The [[information entity]] such as [[PKC Workflow/Issues|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. | When describing a process in the macroscope, it is always a verb. The input/output is defined according to the function's specification. | ||
<graphviz> | |||
digraph G { | |||
rankdir=LR | |||
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]]. | # [[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]]. | # 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 == | ||
In the simplest form, the process is the mapping of input to output. To describe the recurring event in the project, we add a Loop structure on top of it. See the [https://reference.wolfram.com/language/guide/LoopingConstructs.html LoopingConstructs Primitive] in Mathematica | |||
The diagram representing the function with loop will be: | |||
* (Need to specify the LISP processing language, which is its origin) | |||
* Everything is a list | |||
<graphviz> | |||
digraph G { | |||
rankdir=LR | |||
input [URL="[[PKC Workflow/Input]]"]; | |||
process [URL="[[PKC Workflow/Process]]"]; | |||
output [URL="[[PKC Workflow/Output]]"]; | |||
input->process; | |||
process->process [label="recursive"]; | |||
process->output; | |||
} | |||
</graphviz> | |||
== State == | |||
In a process, there are data generated alongside but isn't intended to serve as the output or expose outside the process. In programming, it corresponds to [https://reference.wolfram.com/language/tutorial/ModularityAndTheNamingOfThings.html Module and Localization]. In [[PKC Workflow]], the following pages serve as this kind of localized resource. | |||
# [[PKC Workflow/Meeting and Communication|Meeting and Communication]] | |||
# [[PKC Workflow/Issues|Issue]] | |||
# [[All activities|Activities]] | |||
# [[PKC Workflow/Updates|Updates and reports]] | |||
== Subprocess == | |||
[[wikipedia:Modular programming|Modular programming]] is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality. A Process in [[Logic Model]] could be divided into SubModels. [[How Logic model relates with SubModels]] | |||
All the submodels in [[PKC Workflow]]: | |||
=== System Verification === | |||
{{LogicModel | |||
|name = PKC Workflow/System Verification | |||
}} | |||
=== Jenkins Integration === | |||
{{LogicModel | |||
|name = PKC Workflow/Jenkins Integration | |||
}} | |||
=== Docker Registry === | |||
{{LogicModel|name=PKC Workflow/Docker Registry}} | |||
</noinclude> | </noinclude> |
Latest revision as of 04:32, 30 August 2021
- System Verification by TLA+
- Jenkins Integration
- Docker Registry
- Meeting and Communication
- Issues
- Updates
- All activities
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. <graphviz> digraph G {
rankdir=LR 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
In the simplest form, the process is the mapping of input to output. To describe the recurring event in the project, we add a Loop structure on top of it. See the LoopingConstructs Primitive in Mathematica The diagram representing the function with loop will be:
- (Need to specify the LISP processing language, which is its origin)
- Everything is a list
<graphviz> digraph G {
rankdir=LR input [URL="PKC Workflow/Input"]; process [URL="PKC Workflow/Process"]; output [URL="PKC Workflow/Output"]; input->process; process->process [label="recursive"]; process->output;
} </graphviz>
State
In a process, there are data generated alongside but isn't intended to serve as the output or expose outside the process. In programming, it corresponds to Module and Localization. In PKC Workflow, the following pages serve as this kind of localized resource.
Subprocess
Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality. A Process in Logic Model could be divided into SubModels. How Logic model relates with SubModels All the submodels in PKC Workflow:
System Verification
Logic Model (PKC Workflow/System Verification) Template:LogicModel 08 30, 2021 | ||||||
---|---|---|---|---|---|---|
| ||||||
| ||||||
|
Jenkins Integration
Logic Model (PKC Workflow/Jenkins Integration) Template:LogicModel 08 30, 2021 | ||||||
---|---|---|---|---|---|---|
| ||||||
| ||||||
|
Docker Registry
Logic Model (PKC Workflow/Docker Registry) Template:LogicModel 08 30, 2021 | ||||||
---|---|---|---|---|---|---|
| ||||||
| ||||||
|